Web Service CompositionWeb ServicesWeb Services (2)OverviewSlide 5Web Service Composition (2)Basic RequirementsStandardsBPEL4WSBPEL - OverviewBPEL - Process OverviewBPEL - Process ModelsBPEL - ActivitiesBPEL - Containers and PartnersBPEL - CodeBPEL - OthersBPEL – Example ProcessWSCIWSCI - ActionsWSCI - SnippetBPMLSummarySlide 23Some Open/Closed Source EnginesDiscussionWeb Service CompositionPrepared byRobert MaFebruary 5, 2007ECE 1770 –Web Service CompositionWeb ServicesConsider the following set of web servicesECE 1770 –Web Service CompositionWeb Services (2)What about between organizations?ECE 1770 –Web Service CompositionOverviewBusinesses today requires to quickly adapt to customer needs and market conditionsEAI and B2B interactions (through web services)Needs to be flexible internally and externallyWithout a common set of standard, each organization is left to build their own set of proprietary business protocolsLeaving little flexibility for true web services collaborationECE 1770 –Web Service CompositionWeb Service CompositionDefinition:Provides an open, standards-based approach for connecting web services together to create higher-level business processes.Standards are designed to reduce the complexity required to compose web services, hence reducing time and costs, and increase overall efficiency in businessesECE 1770 –Web Service CompositionWeb Service Composition (2)ECE 1770 –Web Service CompositionBasic RequirementsAbility to invoke services in a asynchronous mannerAchieve reliability, scalability, and adaptability required by Today’s IT environmentManage exception and transactional integrityStudies shown nearly 80% of the time spent in building business processes are spent in exception managementProvide dynamic, flexible, and adaptable frameworkProvide a clear separation between the process logic and the web services usedAble to compose higher-level services from existing processesECE 1770 –Web Service CompositionStandardsBPEL4WS (a.k.a. BPEL) – Business Process Execution Language for Web ServicesIBM and MicrosoftWSCI – Web Services Choreography InterfaceSun, SAP, BEA, and IntalioBPML – Business Process Management LanguageBPMI.org (chartered by Intarlio, Sterling Commerce, Sun, CSC, and others)ECE 1770 –Web Service CompositionBPEL4WSXML-Based languageIt describes the control logic for web services coordination in a business processInterpreted and executed by a BPEL engineECE 1770 –Web Service CompositionBPEL - OverviewUse Web Services Standard as a base1. Every BPEL is exposed as a web service using WSDL. And the WSDL describes the public entry and exit points of the process2. Interacts through WSDL interfaces with external web services3. WSDL data types are used to describe information flow within the BPEL processECE 1770 –Web Service CompositionBPEL - Process OverviewECE 1770 –Web Service CompositionBPEL - Process ModelsProvides support for two business process modelsExecutableModels the behavior of participants in a specific business interaction, a private workflowAbstractBusiness protocols in BPEL, specify the public message exchanges between partiesECE 1770 –Web Service CompositionBPEL - ActivitiesBasic Activities: Interacts with external services <invoke>, <receive>, and <reply>Structured Activities: Internal process control flowsequential flow, conditional branching, looping, and etc.ECE 1770 –Web Service CompositionBPEL - Containers and PartnersContainersData exchanges in the message flowe.g. WSDL messageTypePartnersAny services that the process invokes OR any services that the invokes the process<partners><partner name=”buyer” … myRole=”agent”/><partner name=”supplier” … myRole=”requestor” partnerRole=”supplier”/></partners><containers><container name=”request” messageType=”tns:orderRequest”/><container name=”response” messageType=”tns:orderResponse”/></containers>ECE 1770 –Web Service CompositionBPEL - CodeA sequence<sequence><receive partner=”buyer” … operation=”sendOrder” container=”request”/><invoke partner=”supplier” … operation=”request” container=”order”/><reply partner=”buyer” … operation=”response” container=”proposal”/></sequence>ECE 1770 –Web Service CompositionBPEL - OthersTransactions and ExceptionsBuilding on top of WS-Coordination and WS-Transaction specificationsTransactionA set of activities can be grouped in a single transaction through the <scope> tagCan specify compensation handlers (rollback) if there is an errorException HandlingThrough the use of throw and catch (similar to Java)ECE 1770 –Web Service CompositionBPEL – Example ProcessECE 1770 –Web Service CompositionWSCIXML-based languageDefines the choreography describing the messages between web services that participate in a collaborative exchangeOnly describes the observable behavior between web servicesNo single controlling process managing the interactionECE 1770 –Web Service CompositionWSCI - ActionsActions <action> represents a unit of work and would typically map to a specific WSDL operationWSDL describes the entry points of each serviceWSCI describes the interactions among these operationsExternal services are invoked through <call> tagSupports transaction and exception handlingECE 1770 –Web Service CompositionWSCI - Snippet<process name=”Purchase” instantiation=”message”><sequence><action name=”ReceiveOrder” role=”Agent” operation=”tns:Order”></action><action name=”Confirm” role=”Agent” operation=”tns:Confirm”><correlate correlation=”tns:ordered”/><call process=”tns:Purchase”/></action></sequence></process>Note: this WSCI is from the perspective of the “Agent”, there would also be WSCI file for other parties in the processECE 1770 –Web Service CompositionBPMLXML-based languageIncorporates WSCI into the standardWSCI used to describe public interactionsBPML used to develop private logic implementations Provides similar process flow constructs and activities as BPELTransactional support and exception handlingECE 1770 –Web Service CompositionSummaryBPEL and BPML focuses on creation of business processesDescribe an executable process from the partner’s perspectiveWSCI focuses on public
View Full Document