250 likes | 344 Views
Web Service Composition. Prepared by Robert Ma February 5, 2007. Web Services. Consider the following set of web services. Web Services (2). What about between organizations?. Overview. Businesses today requires to quickly adapt to customer needs and market conditions
E N D
Web Service Composition Prepared by Robert Ma February 5, 2007
Web Services • Consider the following set of web services ECE 1770 –Web Service Composition
Web Services (2) • What about between organizations? ECE 1770 –Web Service Composition
Overview • Businesses today requires to quickly adapt to customer needs and market conditions • EAI and B2B interactions (through web services) • Needs to be flexible internally and externally • Without a common set of standard, each organization is left to build their own set of proprietary business protocols • Leaving little flexibility for true web services collaboration ECE 1770 –Web Service Composition
Web Service Composition • Definition: • 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 businesses ECE 1770 –Web Service Composition
Web Service Composition (2) ECE 1770 –Web Service Composition
Basic Requirements • Ability to invoke services in a asynchronous manner • Achieve reliability, scalability, and adaptability required by Today’s IT environment • Manage exception and transactional integrity • Studies shown nearly 80% of the time spent in building business processes are spent in exception management • Provide dynamic, flexible, and adaptable framework • Provide a clear separation between the process logic and the web services used • Able to compose higher-level services from existing processes ECE 1770 –Web Service Composition
Standards • BPEL4WS (a.k.a. BPEL) – Business Process Execution Language for Web Services • IBM and Microsoft • WSCI – Web Services Choreography Interface • Sun, SAP, BEA, and Intalio • BPML – Business Process Management Language • BPMI.org (chartered by Intarlio, Sterling Commerce, Sun, CSC, and others) ECE 1770 –Web Service Composition
BPEL4WS • XML-Based language • It describes the control logic for web services coordination in a business process • Interpreted and executed by a BPEL engine ECE 1770 –Web Service Composition
BPEL - Overview • Use Web Services Standard as a base • Every BPEL is exposed as a web service using WSDL. And the WSDL describes the public entry and exit points of the process • Interacts through WSDL interfaces with external web services • WSDL data types are used to describe information flow within the BPEL process ECE 1770 –Web Service Composition
BPEL - Process Overview ECE 1770 –Web Service Composition
BPEL - Process Models • Provides support for two business process models • Executable • Models the behavior of participants in a specific business interaction, a private workflow • Abstract • Business protocols in BPEL, specify the public message exchanges between parties ECE 1770 –Web Service Composition
BPEL - Activities • Basic Activities: • Interacts with external services • <invoke>, <receive>, and <reply> • Structured Activities: • Internal process control flow • sequential flow, conditional branching, looping, and etc. ECE 1770 –Web Service Composition
BPEL - Containers and Partners • Containers • Data exchanges in the message flow • e.g. WSDL messageType • Partners • Any 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 Composition
BPEL - Code • A 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 Composition
BPEL - Others • Transactions and Exceptions • Building on top of WS-Coordination and WS-Transaction specifications • Transaction • A set of activities can be grouped in a single transaction through the <scope> tag • Can specify compensation handlers (rollback) if there is an error • Exception Handling • Through the use of throw and catch (similar to Java) ECE 1770 –Web Service Composition
BPEL – Example Process ECE 1770 –Web Service Composition
WSCI • XML-based language • Defines the choreography describing the messages between web services that participate in a collaborative exchange • Only describes the observable behavior between web services • No single controlling process managing the interaction ECE 1770 –Web Service Composition
WSCI - Actions • Actions <action> represents a unit of work and would typically map to a specific WSDL operation • WSDL describes the entry points of each service • WSCI describes the interactions among these operations • External services are invoked through <call> tag • Supports transaction and exception handling ECE 1770 –Web Service Composition
WSCI - 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 process ECE 1770 –Web Service Composition
BPML • XML-based language • Incorporates WSCI into the standard • WSCI used to describe public interactions • BPML used to develop private logic implementations • Provides similar process flow constructs and activities as BPEL • Transactional support and exception handling ECE 1770 –Web Service Composition
Summary • BPEL and BPML focuses on creation of business processes • Describe an executable process from the partner’s perspective • WSCI focuses on public message exchanges between web services • Each participant in message exchange defines a WSCI interface ECE 1770 –Web Service Composition
Summary ECE 1770 –Web Service Composition
Some Open/Closed Source Engines • BPEL • IBM • WebSphere Process Server + WebSphere Integration Developer • $5014 for a 12-month license • Microsoft • BizTalk Server • Standard Ed. for $8499 USD and Enterprise Ed. for $29999 USD • http://www.microsoft.com/biztalk/howtobuy/default.mspx • Open Source • Twister • $0 • Eclipse - SOA Tools Platform • $0 ECE 1770 –Web Service Composition
Discussion • Security in Web Service Composition and Web Service in general • A number of standards like XML Digital Signatures and Encryption, WS-Security • Provide authentication and authorization of users, and for securing the XML message itself • But composition standards do not offer direct support for security! • In BPEL, how do the roles defined for each partner relate the existing authentication standards? ECE 1770 –Web Service Composition