Web Services Technology Stack WSDL and UDDI Shahram
Web Services Technology Stack (WSDL and UDDI) Shahram Esmaeilsabzali (sesmaeil@mail. student. math. uwaterloo. ca)
What we will cover • WSDL and its elements • UDDI registries and APIs • A Web service using ASP. NET and C#
Web services conceptual stack Other business rules Web Services Flow Language (WSFL, XLANG and … ) Universal Description, Discovery and Integration (UDDI) Web Services Description Language (WDSL) Simple Object Access Protocol (SOAP) Extensible Markup Language (XML) Common Internet Protocols (TCP/IP, HTTP, … ) Core Emergi ng
WSDL • Defined in a joint effort by Ariba, IBM and Microsoft • An XML format for describing Web Services interfaces as collection of ports – WSDL = IDL + Binding + Service location • IDL: types and operations • Binding: how to access via protocol (E. g. SOAP, HTTP POST or HTTP GET) • Location: Where to connect to the Web service • WSDL works over multiple protocols and technologies using extensibility elements
WSDL Elements • Abstract Elements: – Types: Data type Definition – Messages: Format of Data being communicated – Operations: Description of an action – Port types: set of operations • Concrete Elements: – Bindings: a concrete protocol and data format specification for a particular port type – Ports: a single endpoint defined as combination of Binding+ Network address – Services: a collection of related ports (endpoints)
WSDL Elements Relationship Abstract Reusable Elements Concrete Elements
Types • Encloses data type definitions that are building blocks of exchanged messages • W 3 C XML Schema as canonical type system – Also allows type systems other than XML Schema to be added via extensibility elements
Messages • Messages consist of one or more logical parts • part name is a unique name among all other parts of a message • Each part is associated with a type or Element – Parts are a flexible mechanism for describing the logical abstract content of a message – Using XML Schema as type system, WSDL uses: • Element: Refers to an XML Schema element • Type: Refers to an XML Schema simple or complex type
Example • “Exchange. Rate” C# class is exposed as an ASP. NET Web Service by simply Placing the below C# code in a. asmx file. This file is then put in a directory of an ASP. NET web application (Simple scenario)
Example
Port. Type • Port Types are set of operations and the messages involved • WSDL has four transmission primitives (operations): – One-way – Request-response – Solicit-response – Notification
One-way Operation • The endpoint receives a message • They are the simplest mechanism, and it is supported only by MIME protocol (HTTP based protocols are two-way)
Request-response • The endpoint receives a message, and sends a correlated message • input element: abstract request message • output element: abstract response message • fault element: optional abstract error message
Solicit-response operation • The endpoint sends a message, and receives a correlated message • Output: Abstract solicit request message • Input: Abstract response message • fault element: optional abstract error message
Notification Operation • The endpoint receives a message
WSDL Elements Relationship Abstract Reusable Elements Concrete Elements
Binding – A binding defines message format and protocol details for operations and messages defined by a particular port. Type
Ports – A port defines an individual endpoint by specifying a single address for a binding. – Ports are building blocks of Web services – Within a Service they have the following relationships: • None of ports communicate with each other (WSDL specification requirement) • Several ports could implement a single port. Type • ports can be examined by consumer for checking their desired operations
Service • A service groups a set of related ports together
Example
Import element • Import element allows the separation of elements in a WSDL document • It is a good practice to have at least two separate WSDL documents: “Service interface definition” and “Service implementation definition” • Using Import, introduces features for reusability and abstract interface definitions like object oriented programming • Multiple businesses may implement and advertise the same WSDL interface and service requesters could effectively search for their desired service
Web services conceptual stack Other business rules Web Services Flow Language (WSFL, XLANG and … ) Universal Description, Discovery and Integration (UDDI) Web Services Description Language (WDSL) Simple Object Access Protocol (SOAP) Extensible Markup Language (XML) Common Internet Protocols (TCP/IP, HTTP, … ) Core Emergi ng
What is UDDI? • UDDI defines a set of services supporting the description and discovery of: • Businesses, organizations, and other Web services providers (White Pages) • Web services which businesses make available (Yellow Pages) • Technical interfaces which may be used to access those Web services (Green Pages) • UDDI is based on a set of web standards including HTTP, XML Schema, WSDL and SOAP, and is supported by many companies (HP, IBM, Microsoft and …)
What is UDDI? • UDDI specification provides a platformindependent way of describing, discovering and integrating Web services using Internet • UDDI Infrastructure is appropriate for both public and private Web Services-based environments • UDDI data is hosted by nodes which could be collected, using replication mechanism, to form UDDI registries • UDDI provides a set of APIs for inquiring and manipulating UDDI elements
UDDI core data structures • All Data structures are XML based • Many UDDI data structures including the four core data structures are accessed via unique identifiers that are either generated by registries or by the publisher itself • UDDI core data structures support mechanisms for electronic signatures ( XML-Signature syntax )
UDDI t. Model • Technical models or t. Models are essential UDDI elements used to represent unique concepts, constructs or metadata • t. Models are represented by their unique keys • t. Models are extensibility means for UDDI • t. Models are reusable entities which can be referenced by other entities like binding. Templates • The binding. Templates referencing the same t. Models are said to have the same “technical fingerprints” • Their typical applications are in WSDL definition, dynamic categorization and search systems (identifier. Bags and Category. Bags) • t. Models can be used to extend existing categorization and search systems for entities
UDDI business. Entity structure • Each business. Entity contains descriptive information about a business or organization and, through its contained business. Service entities, information about the services that it offers. • identifier. Bag element allows business. Entity structures to be identified according to published identifier systems (E. g. DUNS numbers), the systems themselves are registered t. Models elements • The category. Bag contains a predefined list of business categorization that each describes a specific business aspect of the business. Entity. Examples of categories are industry, product category or geographic regions
UDDI business. Services structure • The business. Service structure represents a logical service and contains descriptive information in business terms. A business. Service is the logical child of a single business. Entity • A business. Service may be projected to other business. Entities by reference instead of containment. Projections to the same service can be made in any number of business entities. • binding. Templates is a list of technical descriptions for the Web services.
UDDI binding. Template Structure • Technical descriptions of Web services are provided by binding. Template entities. • The access. Point element is an URI, typically a URL, representing the network address of the Web service being described. There are four types of accesspoints: • – endpoint (Network address of Web service) – binding. Template – hosting. Director – WSDL Deployment t. Model. Instance. Details element contains the “technical fingerprint” of the Web service. During an inquiry, interested parties can use this information to look for binding. Template entities that contain a specific fingerprint or partial fingerprint.
UDDI APIs • UDDI APIs are programmatic tools for querying and manipulating UDDI registry data • UDDI APIs are exposed as SOAP messages over HTTP or HTTPS • UDDI APIs are categorized to six groups: • Inquiry APIs: Locates and obtains details of UDDI data • Publishing APIs: Publishes and updates UDDI data • Security APIs: Requests and discards authentication data • Custody transfer APIs: Transfers ownership of elements • Subscription APIs: provides clients with information about changes in UDDI data • Value set APIs: Checks the validity of referenced t. Models
Some UDDI APIs • Inquiry API – Find things • • • find_business find_service find_binding find_t. Model find_related. Businesses – Get Details about things • • • get_business. Detail get_service. Detail get_binding. Detail get_t. Model. Detail get_operational. Info • Publishers API – Save things • • • add_publisher. Assertions set_publisher. Assertions save_business save_service save_binding save_t. Model – Delete things • • • delete_business delete_service delete_binding delete_t. Model delete_publisher. Assertion – Query things • get_assertion. Status. Report • get_publisher. Assertions • get_registered. Info
Example
How does it work? Service Provider (5) Execute Service (SOAP) (1) Publish (WSDL) (3) Retrieve Service Description (WSDL) UDDI (0) Create the Web Service Requester (2) Find Service and Retrieve its address (UDDI) (4) Create Proxy class
Web services and Proxy classes • Proxy classes are generated according to WSDL information to call the Web services on behalf of the service requesters • Proxy classes hide the complexity of dealing with SOAP, XML and network protocols • Once Proxy classes are generated, they are compiled (in this case to a. NET DLL file) and can be used by other programs • Some proxy classes settings can be modified at run -time; so for example, if the location of a Web service is changed proxy class is not required to be regenerated
Accessing a Web Service with ASP. NET page
Web Services future • While Web services have focused on technological foundations for implementing simple Web services, they are not sufficient for using Web services in critical business application, the following are important areas of research in Web services : – Web Services Composition – mechanisms for Web Services work flow and coordination – comprehensive security solutions – Web services transactions Other business rules Web Services Flow Language (WSFL, XLANG and …) Universal Description, Discovery and Integration (UDDI) Web Services Description Language (WDSL) Simple Object Access Protocol (SOAP) Extensible Markup Language (XML) Common Internet Protocols (TCP/IP, HTTP, … ) Core Emergi ng
A comparison CBD technologies • No standard format for data exchange and encoding • RPC mechanisms • IDL • Registry information • Partly platform independent and usually extremely tightly -coupled • Complex transfer and conversation protocols • CDB paradigm Provides solutions for wide area of applications WS technologies • Uniform encoding mechanism XML • SOAP • WSDL • UDDI • Platform neutral, highly loose -coupled and cross- platform technology • Using easy open-standard protocols • Existing WS technology is suitable for rather simple applications
- Slides: 37