Models and Languages for Coordination and Orchestration IMT

  • Slides: 45
Download presentation
Models and Languages for Coordination and Orchestration IMT- Institutions Markets Technologies - Alti Studi

Models and Languages for Coordination and Orchestration IMT- Institutions Markets Technologies - Alti Studi Lucca WS Technologies II WSDL Roberto Bruni Dipartimento di Informatica Università di Pisa 1

Roberto Bruni @ IMT Lucca 16 March 2005 Contents n n WSDL Some Java

Roberto Bruni @ IMT Lucca 16 March 2005 Contents n n WSDL Some Java tools Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 2

Roberto Bruni @ IMT Lucca 16 March 2005 Contents n n WSDL Some Java

Roberto Bruni @ IMT Lucca 16 March 2005 Contents n n WSDL Some Java tools Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 3

Roberto Bruni @ IMT Lucca 16 March 2005 What is the Story so Far?

Roberto Bruni @ IMT Lucca 16 March 2005 What is the Story so Far? n With UDDI (and SOAP) we know how to find and discover new services n n as if we looked at the yellow pages What can we do with discovered services? n should we contact the service provider and ask for technical support in programming the right SOAP calls? n n Instead, the provider should prepare a unambiguous description of the WS to be exposed n n Institutions Markets Technologies IMT No, this would be a waste of time for both us and the provider! automatically downloadable, understandable, and usable for connecting to the specific WS WSDL fixes the standard for such description Models and Languages for Coordination and Orchestration 4

Roberto Bruni @ IMT Lucca 16 March 2005 n WSDL is an XML-based language

Roberto Bruni @ IMT Lucca 16 March 2005 n WSDL is an XML-based language for the description of Web Services n n Web Services Description Language (WSDL) (and the methods to access them) A WSDL document is just a particular XML document n n n Institutions Markets Technologies IMT it resides in a file with suffix. wsdl it can be checked for validity against the WSDL Schema it describes how to "interface with" and use WS … and also the binding protocol to access WS it is a bit complex for human beings but it is unambiguous for a machine Models and Languages for Coordination and Orchestration 5

Roberto Bruni @ IMT Lucca 16 March 2005 The Seven Elements of WSDL n

Roberto Bruni @ IMT Lucca 16 March 2005 The Seven Elements of WSDL n Essentially, WSDL documents consist of 7 key elements n n message types (data structures) messages n basic units of communication between WS and clients n n operations n n n IMT associations between interfaces and concrete protocols / data formats endpoints (called ports in WSDL v 1) n Institutions Markets Technologies logical groups of operations representing abstract services bindings n n sequences of messages related to a single action interfaces (called port types in WSDL v 1) n n typed data to be communicated as a single logical transmission associations between interface bindings and network addresses services (collections of endpoints) Models and Languages for Coordination and Orchestration 6

Roberto Bruni @ IMT Lucca 16 March 2005 n A View at WSDL Hierarchical

Roberto Bruni @ IMT Lucca 16 March 2005 n A View at WSDL Hierarchical Structure <definitions> n n n <types> <message> <interface> n <operation> n n <binding> <service> n Institutions Markets Technologies IMT <input> <output> <endpoint> Models and Languages for Coordination and Orchestration 7

Roberto Bruni @ IMT Lucca 16 March 2005 Types n A type is the

Roberto Bruni @ IMT Lucca 16 March 2005 Types n A type is the most basic WSDL element n n n a type can correspond to n n n completely analogous to a Schema document (. xsd) XML Schema are in fact used for defining message types a struct, in C a class with variables but without methods, in Java types are necessary to describe the main elements and parameters in a method call Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 8

Roberto Bruni @ IMT Lucca 16 March 2005 Example: the Class Address. java public

Roberto Bruni @ IMT Lucca 16 March 2005 Example: the Class Address. java public class Address { public String name; public String address 1; public String address 2; public String city; public String state; public String zip; } public class My. Class{ public void my. Method(Address my. Address){ //do something } } Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 9

Roberto Bruni @ IMT Lucca 16 March 2005 The Schema address. xsd URI of

Roberto Bruni @ IMT Lucca 16 March 2005 The Schema address. xsd URI of the <xsd: schema target. Namespace="…/address. xsd" xmlns: xsd="http: //www. w 3. org/2001/XMLSchema" xmlns: addr="…/address. xsd"> <xsd: element name="address" type="addr: address. Type" /> Schema current namespace <xsd: complex. Type name="address. Type"> <xsd: sequence> <xsd: element name="name" type="xsd: string"/> <xsd: element name="address 1" type="xsd: string"/> <xsd: element name="address 2" type="xsd: string"/> <xsd: element name="city" type="xsd: string"/> <xsd: element name="state" type="xsd: string"/> <xsd: element name="zip" type="xsd: string"/> </xsd: sequence> the elements must appear </xsd: complex. Type> </xsd: schema> in the specified order Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 10

Roberto Bruni @ IMT Lucca 16 March 2005 Example: address. xsd with Anonymous Types

Roberto Bruni @ IMT Lucca 16 March 2005 Example: address. xsd with Anonymous Types URI of Schema <xsd: schema target. Namespace="…/address. xsd" xmlns: xsd="http: //www. w 3. org/2001/XMLSchema"> <xsd: element name="address"> <xsd: complex. Type> <xsd: sequence> <xsd: element name="name" type="xsd: string"/> <xsd: element name="address 1" type="xsd: string"/> <xsd: element name="address 2" type="xsd: string"/> <xsd: element name="city" type="xsd: string"/> <xsd: element name="state" type="xsd: string"/> <xsd: element name="zip" type="xsd: string"/> </xsd: sequence> </xsd: complex. Type> </xsd: element> Only if address. Type is not </xsd: schema> used elsewhere Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 11

Roberto Bruni @ IMT Lucca 16 March 2005 Example: valid XML document for address.

Roberto Bruni @ IMT Lucca 16 March 2005 Example: valid XML document for address. xsd <address> <name>Arthur Fonzarelli</name> <address 1>123 W. Wisconsin</address 1> <address 2>Apt. 4</address 2> <city>Milwaukee</city> <state>WI</state> <zip>53222</zip> </address> Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 12

Roberto Bruni @ IMT Lucca 16 March 2005 The Type address in WSDL I

Roberto Bruni @ IMT Lucca 16 March 2005 The Type address in WSDL I <? xml version="1. 0"? > <wsdl: definitions name=“Address. Type” target. Namespace=“…/address. Type. wsdl” xmlns: tns=“…/address. Type. wsdl” xmlns: wsdl=“http: //schemas. xmlsoap. org/wsdl/”> <wsdl: types> <xsd: schema target. Namespace=“…/address. Type. wsdl” xmlns: xsd=“http: //www. w 3. org/2001/XMLSchema”> <xsd: element name="Address"> <xsd: complex. Type> <all> disregards the order of elements <xsd: all> <xsd: element name="name" type="xsd: string"/> <xsd: element name="address 1" type="xsd: string"/> <xsd: element name="address 2" type="xsd: string"/> <xsd: element name="city" type="xsd: string"/> <xsd: element name="state" type="xsd: string"/> Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 13

Roberto Bruni @ IMT Lucca 16 March 2005 The Type address in WSDL II

Roberto Bruni @ IMT Lucca 16 March 2005 The Type address in WSDL II <!-- ============= (segue) ============= --> <xsd: element name="zip" type="xsd: string"/> </xsd: all> </xsd: complex. Type> </xsd: element> </xsd: schema> </wsdl: types> </wsdl: definitions> Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 14

Roberto Bruni @ IMT Lucca 16 March 2005 Messages n On the contrary of

Roberto Bruni @ IMT Lucca 16 March 2005 Messages n On the contrary of types, messages do not have an immediate analogy with Java. . . n n so we will push it. . . Imagine a setting where any method can have three parameters at most n WSDL relies on such assumption n n (input, output and a third one, fault, for exception handling) Thus we must group the parameters of methods n this is what messages are for! n Institutions Markets Technologies IMT they have a sub-component part for each parameter Models and Languages for Coordination and Orchestration 15

Roberto Bruni @ IMT Lucca 16 March 2005 Example: a Message public void order(Address

Roberto Bruni @ IMT Lucca 16 March 2005 Example: a Message public void order(Address ship. To, Address bill. TO){ //do something } <? xml version="1. 0"? > <wsdl: definitions …> + <wsdl: types> <!-- ========== Aggiungiamo un messaggio ========== --> <wsdl: message name="purchase"> <wsdl: part name="bill. To" element="tns: address"/> type="tns: address. Type" <wsdl: part name="ship. To" element="tns: address"/> </wsdl: message> alternatively </wsdl: definitions> Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 16

Roberto Bruni @ IMT Lucca 16 March 2005 Operations n wsdl: operation is probably

Roberto Bruni @ IMT Lucca 16 March 2005 Operations n wsdl: operation is probably the simplest WSDL element n it correspond to an abstract method in Java n but, as said, it has some limitation n n three parameters at most: input, output, fault essentially there are four main different kinds of operations n one-way n n request/response n n IMT (from the service to the client) solicit/response n Institutions Markets Technologies (request from the client and response back from the service) notification n n (from the client to the service) (message from the service and response from the client) Models and Languages for Coordination and Orchestration 17

Roberto Bruni @ IMT Lucca 16 March 2005 One-way Operations n In general, operations

Roberto Bruni @ IMT Lucca 16 March 2005 One-way Operations n In general, operations are described by the element wsdl: operation that can contain one or more messages n n (wsdl: input, wsdl: output, wsdl: fault) In one-way operations, only the input element is allowed n Institutions Markets Technologies IMT ex. <? xml version="1. 0"? > <wsdl: definitions …> + <wsdl: types> <wsdl: message name="purchase"> … </wsdl: message> <wsdl: operation name="submit. Purchase"> <wsdl: input message="tns: purchase" /> </wsdl: operation> </wsdl: definitions> Models and Languages for Coordination and Orchestration 18

Roberto Bruni @ IMT Lucca 16 March 2005 Request/Response Operations n Both input and

Roberto Bruni @ IMT Lucca 16 March 2005 Request/Response Operations n Both input and output are defined n n Institutions Markets Technologies IMT optionally, an additional fault element ex. <? xml version="1. 0"? > <wsdl: definitions …> <wsdl: types> … </wsdl: types> <wsdl: message name="purchase"> … </wsdl: message> <wsdl: operation name="submit. Purchase"> <wsdl: input message="tns: purchase" /> <wsdl: output message="tns: confirmation" /> <wsdl: fault message="tns: fault. Message" /> </wsdl: operation> </wsdl: definitions> Models and Languages for Coordination and Orchestration 19

Roberto Bruni @ IMT Lucca 16 March 2005 Notification Operations n n Converse of

Roberto Bruni @ IMT Lucca 16 March 2005 Notification Operations n n Converse of one-way operations only output message is allowed n example: n Institutions Markets Technologies IMT for notifying the client about the current status of the order <? xml version="1. 0"? > <wsdl: definitions …> <wsdl: types> … </wsdl: types> <wsdl: message name="tracking. Information"> … </wsdl: message> <wsdl: operation name="delivery. Status"> <wsdl: output message="tns: tracking. Information" /> </wsdl: operation> </wsdl: definitions> Models and Languages for Coordination and Orchestration 20

Roberto Bruni @ IMT Lucca 16 March 2005 Solicit/Response Operations n Useful when a

Roberto Bruni @ IMT Lucca 16 March 2005 Solicit/Response Operations n Useful when a service needs some information from the client n example: n construction of a site with variable bandwidth <? xml version="1. 0"? > <wsdl: definitions …> <wsdl: types> … </wsdl: types> <wsdl: message name="bandwidth. Request"> … </wsdl: message> <wsdl: operation name="client. Query"> <wsdl: output message="tns: bandwidth. Request" /> <wsdl: input message="tns: bandwidth. Info" /> <wsdl: fault message="tns: fault. Message" /> </wsdl: operation> </wsdl: definitions> Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 21

Roberto Bruni @ IMT Lucca 16 March 2005 Interfaces (Port Types) n n For

Roberto Bruni @ IMT Lucca 16 March 2005 Interfaces (Port Types) n n For the moment we have only surveyed standalone operations but all the operations make sense only when considered within a port type n What is a “port type”? n n W 3 C: “it defines a group of abstract operations and their corresponding abstract messages” it is equivalent to a Java interface n n Institutions Markets Technologies IMT (in WSDL v 2, port types are called interfaces) Syntactically, it is defined by an element wsdl: interface (wsdl: port. Type in WSDL v 1) n which contains one or more wsdl: operation elements Models and Languages for Coordination and Orchestration 22

Roberto Bruni @ IMT Lucca 16 March 2005 Example: Interface <? xml version="1. 0"?

Roberto Bruni @ IMT Lucca 16 March 2005 Example: Interface <? xml version="1. 0"? > <wsdl: definitions …> <wsdl: types> … </wsdl: types> <wsdl: message name="purchase"> … </wsdl: message> <wsdl: port. Type name="submit. Purchase. Type"> <wsdl: operation name="submit. Purchase"> <wsdl: input message="tns: purchase" /> </wsdl: operation> </wsdl: port. Type> </wsdl: definitions> Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 23

Roberto Bruni @ IMT Lucca 16 March 2005 Binding n For the moment we

Roberto Bruni @ IMT Lucca 16 March 2005 Binding n For the moment we have just considered "abstract" elements n upon receiving a <wsdl: interface> we have all the information on how to use it n n To instantiate the interface we must provide the information that are necessary to interact with it n in particular: n n n but we cannot create a direct instance which transport method will the interface use? which communication format are we going to use? The binding defines all details that are needed Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 24

Roberto Bruni @ IMT Lucca 16 March 2005 SOAP Binding on HTTP I <?

Roberto Bruni @ IMT Lucca 16 March 2005 SOAP Binding on HTTP I <? xml version="1. 0"? > <wsdl: definitions name="purchase. Example" target. Namespace="…/purchase. Example. wsdl" xmlns: tns="…/purchase. Example. wsdl" xmlns: soap="http: //schemas. xmlsoap. org/wsdl/soap" xmlns: wsdl="http: //schemas. xmlsoap. org/wsdl/"> <!-- Types --> <wsdl: types> … </wsdl: types> <!-- MESSAGES --> <wsdl: message name="purchase. Message"> … </wsdl: message> <!– PORT TYPES --> <wsdl: port. Type name="purchase. Type"> <!-- == OPERATIONS == --> <wsdl: operation name="purchase. Operation"> <wsdl: input message=“tns: purchase. Message” /> </wsdl: operation> Institutions </wsdl: port. Type> Markets Technologies IMT Models and Languages for Coordination and Orchestration 25

Roberto Bruni @ IMT Lucca 16 March 2005 SOAP Binding on HTTP II <!--

Roberto Bruni @ IMT Lucca 16 March 2005 SOAP Binding on HTTP II <!-- ============= (segue) ============= --> <!-- BINDING --> They are different! <wsdl: binding name="purchase. Binding" type="tns: purchase. Type"> HTTP <soap: binding style="document" transport="http: //schemas. xmlsoap. org/soap/http" /> <wsdl: operation name="tns: purchase. Operation"> <wsdl: input> <soap: body use="literal" /> </wsdl: input> </wsdl: operation> </wsdl: binding> </wsdl: definitions> ex. SOAP, HTTP e SMTP Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 26

Roberto Bruni @ IMT Lucca 16 March 2005 Endpoints (Ports) n Once defined the

Roberto Bruni @ IMT Lucca 16 March 2005 Endpoints (Ports) n Once defined the binding to the transport protocol we can link the method call to a specific IP address n n the binding defined the communication protocol, but not the address of the machine hosting the service sych information is given by the element wsdl: endpoint n n (called wsdl: port in WSDL v 1) An endpoint contains n n n Institutions Markets Technologies IMT a name a binding a network address Models and Languages for Coordination and Orchestration 27

Roberto Bruni @ IMT Lucca 16 March 2005 Example: Going Further on Previous Example

Roberto Bruni @ IMT Lucca 16 March 2005 Example: Going Further on Previous Example <!-- ============= (segue) ============= --> <!-- BINDING --> <wsdl: binding name=“purchase. Binding” type=“tns: purchase. Type”> <soap: binding style=“document” transport=“…/http” /> <wsdl: operation name=“tns: purchase. Operation”> <wsdl: input> <soap: body use=“literal” /> </wsdl: input> </wsdl: operation> </wsdl: binding> <!-- PORTS --> <wsdl: port name=“Purchase_Service. Port” binding=“tns: purchase. Binding”> <soap: address location=“http: //www. fluidimagination. com: 8080/soap/servlet/rpcrouter” /> </wsdl: port> </wsdl: definitions> Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 28

Roberto Bruni @ IMT Lucca 16 March 2005 Services n Now we have all

Roberto Bruni @ IMT Lucca 16 March 2005 Services n Now we have all ingredients n the only thing left is to combine them in a single offert n n analogous to a whole Java class The element wsdl: service is the very first element exposed to the interest of users who get the. wsdl document n n Institutions Markets Technologies IMT it groups all endpoints it allows the server to check if the services really supports all the required operations Models and Languages for Coordination and Orchestration 29

Roberto Bruni @ IMT Lucca 16 March 2005 Example: for the Last Time <!--

Roberto Bruni @ IMT Lucca 16 March 2005 Example: for the Last Time <!-- ============= (segue) ============= --> <!-- BINDING --> <wsdl: binding name=“purchase. Binding” type=“tns: purchase. Type”> … </wsdl: binding> <!-- SERVICES --> <wsdl: service name=“Purchase_Service”> <documentation>blah</documentation> <wsdl: port binding=“tns: purchase. Binding” name=“Purchase_Service. Port”> <soap: address location=“…” /> </wsdl: port> </wsdl: service> </wsdl: definitions> full example Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 30

Roberto Bruni @ IMT Lucca 16 March 2005 Summary WSDL v 1 Java types

Roberto Bruni @ IMT Lucca 16 March 2005 Summary WSDL v 1 Java types classes without methods messages parameters, return value, errors port types and operations interfaces bindings remote communication protocol remote classes services and ports Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 31

Roberto Bruni @ IMT Lucca 16 March 2005 n A WSDL v 2 Example:

Roberto Bruni @ IMT Lucca 16 March 2005 n A WSDL v 2 Example: Great. H Hotel Reservation I Hotel Great. H is located in a remote island n n n Institutions Markets Technologies IMT for years it has been relying on fax/phone reservations now, even though the facilities and prices at Great. H are better than what its competitor offers, Great. H notices that its competitor is getting more customers than Great. H after research, Great. H realizes that this is because the competitor offers a Web service that permits travel agent reservation systems to reserve rooms directly over the Internet Models and Languages for Coordination and Orchestration 32

Roberto Bruni @ IMT Lucca 16 March 2005 n A WSDL v 2 Example:

Roberto Bruni @ IMT Lucca 16 March 2005 n A WSDL v 2 Example: Great. H Hotel Reservation II Great. H then wants to build a reservation Web service with the following functionalities: n Check. Availability n n n the client must specify a check-in date, a check-out date, and room type the Web service will provide the room rate if such a room is available If any input data is invalid, the service should return an error The service will accept a check. Availability message and return a check. Availability. Response or invalid. Data. Fault message Make. Reservation n n Institutions Markets Technologies IMT the client must provide a name, address, and credit card information the service will return a confirmation number if the reservation is successful the service will return an error message if the credit card number or any other data field is invalid The service will accept a make. Reservation message and return a make. Reservation. Response or invalid. Credit. Card. Fault message. Models and Languages for Coordination and Orchestration 33

Roberto Bruni @ IMT Lucca 16 March 2005 n n Great. H knows that

Roberto Bruni @ IMT Lucca 16 March 2005 n n Great. H knows that later the WS will need to support transactions and secured transmission but initially we consider the implementation of only minimal functionality n n A WSDL v 2 Example: Great. H Hotel Reservation III to simplify the example, we will consider only the Check. Availability operation Great. H. wsdl Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 34

Roberto Bruni @ IMT Lucca 16 March 2005 n WSDL complements the UDDI standard

Roberto Bruni @ IMT Lucca 16 March 2005 n WSDL complements the UDDI standard by providing a uniform way of describing n n the abstract interface and protocol bindings of arbitrary network services Next, we try to clarify the relationship between the two n n Using WSDL in a UDDI Registry describe how WSDL can be used in UDDI business service descriptions WSDL service descriptions can be structured in multiple ways n Institutions Markets Technologies IMT if the reusable information is separated from the information that is specific to a given service instance, the use of WSDL and UDDI together becomes particularly simple Models and Languages for Coordination and Orchestration 35

Roberto Bruni @ IMT Lucca 16 March 2005 n Authoring UDDI Service Descriptions I

Roberto Bruni @ IMT Lucca 16 March 2005 n Authoring UDDI Service Descriptions I The first step is to create the WSDL service interface definition n Typically, industry groups will define a set of service types, and describe them with one or more service interface definition WSDL documents The service interface definition will include service interfaces and protocol bindings, and will be made publicly available The WSDL service interface definitions are then registered as a special kind of UDDI t. Models, called “wsdl. Spec t. Models” n Institutions Markets Technologies IMT the overview. Doc field in each new t. Model will point to the corresponding WSDL document Models and Languages for Coordination and Orchestration 36

Roberto Bruni @ IMT Lucca 16 March 2005 n Authoring UDDI Service Descriptions II

Roberto Bruni @ IMT Lucca 16 March 2005 n Authoring UDDI Service Descriptions II Next, programmers will build services that conform to the industry standard service definitions n n n either manually or using appropriate UDDI-aware tooling, programmers will retrieve the t. Model description of the industry standard definition following the overview. Doc link they will obtain the corresponding WSDL document WSDL-aware tooling, in turn, can help generate an implementation n Institutions Markets Technologies IMT (that supports the standard interfaces and bindings) Models and Languages for Coordination and Orchestration 37

Roberto Bruni @ IMT Lucca 16 March 2005 n Authoring UDDI Service Descriptions III

Roberto Bruni @ IMT Lucca 16 March 2005 n Authoring UDDI Service Descriptions III Finally, the new service must be deployed and registered in the UDDI repository n either manually or using WSDL/UDDI-aware tooling, a UDDI business. Service data structure is n n n Institutions Markets Technologies IMT created, and then registered Typically when using WSDL/UDDI-aware tools, some type of “deployment descriptor” document will be generated at that same time Models and Languages for Coordination and Orchestration 38

Roberto Bruni @ IMT Lucca 16 March 2005 Import Element n The <import location=".

Roberto Bruni @ IMT Lucca 16 March 2005 Import Element n The <import location=". . . "> element in WSDL allows the separation of elements of service description into two parts n n n Typically, information common to a certain category of business services, such as n n n service interface definition (SInt) service implementation definition (SImp) message formats, port. Types (abstract interfaces), and protocol bindings, are included in the reusable portion (SInt), while information pertaining to a particular service endpoint (i. e. , port definition) is included in the other portion (SImp) Within the context of UDDI, n Institutions Markets Technologies IMT we will be concerned only with the reusable portion Models and Languages for Coordination and Orchestration 39

Roberto Bruni @ IMT Lucca 16 March 2005 n WSDL and UDDI: Monolithic Approach

Roberto Bruni @ IMT Lucca 16 March 2005 n WSDL and UDDI: Monolithic Approach Relevant UDDI Structures: n business. Service n binding. Template n n t. Model, aka service type definition n Institutions Markets Technologies IMT how and where the service is accessed it specifies a network endpoint address (in the access. Point element) and a stack of t. Models describing the service one t. Model. Instance. Info inside the t. Model. Instance. Details element for each relevant t. Model one for each interface/port. Type classified using uddi-org: types taxonomy, as being of type "wsdl. Spec" must have an overview. Doc whose overview. URL points to the WSDL document defining the interface/port. Type Models and Languages for Coordination and Orchestration 40

Roberto Bruni @ IMT Lucca 16 March 2005 Institutions Markets Technologies IMT Sketch of

Roberto Bruni @ IMT Lucca 16 March 2005 Institutions Markets Technologies IMT Sketch of business. Service Structure <business. Service> (. . . ) <binding. Templates> <binding. Template> (. . . ) <access. Point url. Type="http"> http: //www. etc. com/ </access. Point> <t. Modelnstance. Details> <t. Modelnstance. Info t. Model. Key=". . . "> </t. Modelnstance. Info> (. . . ) </t. Modelnstance. Details> </binding. Template> (. . . ) </binding. Templates> </business. Service> Models and Languages for Coordination and Orchestration 41

Roberto Bruni @ IMT Lucca 16 March 2005 Example: t. Model <t. Model authorized.

Roberto Bruni @ IMT Lucca 16 March 2005 Example: t. Model <t. Model authorized. Name=". . . " operator=". . . " t. Model. Key=". . . "> <name>Stock. Quote Service</name> <description xml: lang="en"> WSDL description of a standard stock quote service interface </description> <overview. Doc> WSDL document containing the definition of the interface <description xml: lang="en">WSDL source document. </description> <overview. URL>http: //stockquote-definitions/stq. wsdl</overview. URL> </overview. Doc> <category. Bag> <keyed. Reference t. Model. Key="uuid: C 1 ACF 26 D-9672 -4404 -9 D 70 -39 B 756 E 62 AB 4" key. Name="uddi-org: types" key. Value="wsdl. Spec"/> </category. Bag> classified with type "wsdl. Spec" </t. Model> Institutions Markets Technologies IMT according to the uddi-org: types taxonomy Models and Languages for Coordination and Orchestration 42

Roberto Bruni @ IMT Lucca 16 March 2005 Example: business. Service <business. Service business.

Roberto Bruni @ IMT Lucca 16 March 2005 Example: business. Service <business. Service business. Key=". . . " service. Key=". . . "> <name>Stock. Quote. Service</name> <description> (. . . ) </description> <binding. Templates> <binding. Template> (. . . ) <access. Point url. Type="http"> http: //example. com/stockquote network endpoint address </access. Point> <t. Modelnstance. Details> <t. Modelnstance. Info t. Model. Key=". . . "> reference to the t. Model </t. Modelnstance. Info> in the previous slide <t. Modelnstance. Details> </binding. Templates> </business. Service> Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 43

Roberto Bruni @ IMT Lucca 16 March 2005 n The Monolithic approach can be

Roberto Bruni @ IMT Lucca 16 March 2005 n The Monolithic approach can be replaced by an expanded modelling that encompasses the n n n WSDL and UDDI: Modular Approach flexibility and reusability of WSDL n fine grain "taxonomy-zation" of WSDL artefacts n n n port. Type/interface binding service n Institutions Markets Technologies IMT port/endpoint Models and Languages for Coordination and Orchestration 44

Roberto Bruni @ IMT Lucca 16 March 2005 Modular Mapping: Overview Institutions Markets Technologies

Roberto Bruni @ IMT Lucca 16 March 2005 Modular Mapping: Overview Institutions Markets Technologies IMT Models and Languages for Coordination and Orchestration 45