• 290 likes • 996 Views
CmpE494 - Service Oriented Architectures. Web Services Conversation Language. (WSCL). Instructor: PINAR Yolum Presented by: ILIR Bojaxhiu. December 28, 2005. Objectives. ..Why do we need WSCL? Where is WSCL used? What is WSCL? What does WSCL do? Elements of a WSCL Specification
E N D
CmpE494 - Service Oriented Architectures Web Services Conversation Language (WSCL) Instructor: PINAR Yolum Presented by: ILIR Bojaxhiu December 28, 2005
Objectives • ..Why do we need WSCL? • Where is WSCL used? • What is WSCL? • What does WSCL do? • Elements of a WSCL Specification • Extending WSCL..
..Why do we need WSCL? • A typical Web service will require its operations to be invoked in a certain order to progress the interaction through to completion. • Web services must expose computer-readable descriptions of how they should be used • We need a standard way of describing dependencies between operations • WSCL Defines WS Abstract Interface
What is WSCL? • The first technology submitted to a standards body for describing the interactive behavioral aspects of a Web service (By HP, May 2001) • The interaction between the consumer and provider of a service is achieved through XML document exchange • WSCL is used to orchestrate the various message exchanges that occur at each stage of the conversation • WSCL conversation definitions are themselves XML documents
What does WSCL do? • Provides a means for: • declaring the types of messages that are exchanged • specifying the type of interaction that a message is used in (e.g. one-way, or bilateral) • specifying the transition conditions that allow the conversation to progress from one interaction to the next.
Elements of a WSCL Specification • WSCL Spec. has 4 main elements - Document types - Interactions - Transitions - Conversations
Document types • Specify the types (schemas) of XML documents the service can accept and transmit in the course of a conversation. • Types :InboundXMLDocument OutboundXMLDocument • Ex:<InboundXMLDocument hrefSchema="http://foo.org/PurchaseOrderRQ.xsd" id="PurchaseOrderRQ“> </InboundXMLDocument>
Interactions • Model the actions of the conversation as document exchanges between two participants • Five types of interactions supported in WSCL: • Send- service sends out an outbound document • Receive - service receives an inbound document • SendReceive- service sends out an outbound document and then expects to receive an inbound document in reply • ReceiveSend - service receives an inbound document and then sends out an outbound document • Empty- does not contain any documents exchanged, but is used only for modeling the start and end of a conversation
Interactions (Example) • One-Way Interactions <Interaction interactionType="Receive" id="LoginRegInput"> <InboundXMLDocument id="LoginRequestData" hrefSchema=http://foo.org/LoginRequestData.xsd /> </Interaction> • Two-Way Interactions <Interaction interactionType="SendReceive" id="Payment"> <OutboundXMLDocument id="Invoice" hrefSchema="http://foo.org/InvoiceRS.xsd"> </OutboundXMLDocument> <InboundXMLDocument id="Payment" hrefSchema="http://foo.org/Payment.xsd"> </InboundXMLDocument> </Interaction>
Transitions • Used to specify: • the ordering relationships between interactions • specifies a source interaction • a destination interaction • a document type of the source interaction as an additional condition for the transition(optionally)
Transitions (Example) • A conversation can proceed from one interaction to another as allowed by the permissible sequencing defined in the transition elements. <Transition> <SourceInteraction href="Login"/> <DestinationInteraction href="Purchase"/> <SourceInteractionConditionhref="ValidLoginRS"/> </Transition>
Conversations • List all the interactions and transitions that make up the conversation • Include: • initialInteraction and finalInteraction • name – the name of the conversation • version(optional) – the version of the conversation. • targetNamespace(optional) – the namespace of this conversation as it should be used when elements of this conversation are referenced in other XML documents. • hrefSchema(optional) – the URL of the file containing this conversation definition. • description(optional)
Conversations • <?xml version="1.0" encoding="UTF-8"?> <Conversation name="StoreFrontServiceConversation" version="1.01“xmlns="http://www.w3.org/2002/02/wscl10" initialInteraction="Start" finalInteraction="End" targetNamespace="http://example.com/conversations/ StoreFront101“hrefSchema="http://example.com/ schema_files/StoreFront101.wscl" description="Conversation for a Store Front Service" > <ConversationInteractions> list of all the interactions </ConversationInteractions> <ConversationTransitions> list of all the transitions </ConversationTransitions> </Conversation>
Initial and Final Interactions • Part of defining the possible ordering of interactions is the specification of the first and last interactions of a conversation. • initialInteraction - references the ID of the first interaction to be executed in the conversation. • finalInteraction - references the ID of the last interaction to be executed in the conversation. • There might be more than one interaction with which the conversation can start or end.
Ex: Purchase Conversation Definition Start Arrow = Transition Oval = Interaction initialInteraction Login <ReceiveSend> InvalidLoginRS ValidLoginRS Purchase <ReceiveSend> PurchaseAcceptRS OutOfStockRS InvalidPaymentRS Shipping <Send> fnitialInteraction End
Extending WSCL.. • The WSCL specification contains the smallest possible set of elements and attributes to describe conversations. • Possible extensions: • Defining document types that have non-XML content (e.g. binary attachments) • Multi-party conversations with three or more participants or roles • Expressing timeouts and other quality of service characteristics of individual interactions