220 likes | 235 Views
www.oasis-open.org. SCA and WS-BPEL Martin Chapman Oracle. www.oasis-open.org. What is SCA What is WS-BPEL How SCA and WS-BPEL fit SCA WS-BPEL Spec. What is SCA?. Service Component Architecture Developed by Open SOA Consortium Plug and Play Components
E N D
www.oasis-open.org SCA and WS-BPELMartin ChapmanOracle
www.oasis-open.org • What is SCA • What is WS-BPEL • How SCA and WS-BPEL fit • SCA WS-BPEL Spec
What is SCA? • Service Component Architecture • Developed by Open SOA Consortium • Plug and Play Components • XML definitions of components and assemblies • Multiple implementation languages • Recursive assembly of components • Deployment of assemblies
SCA Core Concepts • Assembly Model • how to define structure of composite applications • Client & Implementation specifications • how to write business services in particular languages • Java, C++, BPEL, PHP…. • Binding specifications • how to use access methods • Web services, JMS, RMI-IIOP, REST… • Policy Framework • how to add infrastructure services to solutions • Security, Transactions, Reliable messaging…
SCA Core Concepts Reference Service - Java interface - Java interface - WSDL PortType - WSDL PortType Properties Composite Property setting Component Component B Service Reference A Wire Wire Wire Binding Binding Policies Web Service Web Service SCA SCA JCA JCA JMS JMS SLSB SLSB …
SCA: What is it NOT • Does not model individual workflows or ordering of service invocations • use BPEL or other workflow languages • Is not Web services • SCA can use / may use Web services, but can also build solutions with no Web services content • Is not tied to a specific runtime environment • distributed, heterogeneous, large, small • Does not force use of specific programming languages and technologies • aims to encompass many languages, technologies
What is WS-BPEL • An orchestration language for Business processes • Interaction with Partners via WSDL • Process Control Flow • Ordering of service invocations • An OASIS Standard
Variables WSDL Message Partner Links Basic Activities receive exit 42 reply throw XML Schema Type XML Schema Element invoke rethrow assign wait validate compensate Partner Link Type MyProcess Port Type 1 Port Type 2 empty compensateScope receive extensionActivity invoke receive Property 1 invoke Structured Activities Handlers Property 2 flow pick invoke event handler fault handler forEach sequence event handler fault handler Properties Correlation Sets if-else while compensation handler termination handler partner link partner link repeatUntil scope
WS-BPEL: What it is not • An end-to-end language • Does not explicitly describe flows thru multiple business processes • Only shows directly connected partners Process a invokes b, b invokes c…a does not know c • A deployment or configuration language • Vendor tooling needs to provide this • Policy language needed
SCA WS-BPEL Goals • Bottom Up • Allow existing BPEL processes to be used without change • WS-BPEL and BPEL4WS 1.1 • Top Down • Design SCA components then use WS-BPEL to implement • May include SCA extensions to WS-BPEL for SCA property handling, and multi-destination Partners
Friction Point • WS-BPEL partnerLinks are client/server biased • myRole and partnerRole • No notion of who is client or server. A typical WS-BPEL process acts in both roles • SCA Services and References are client/server based • A client/server distinction based on who sends first message • After first message, callbacks and converstions may proceed
WS-BPEL partnerLinks WS-BPEL Process Partner Link Type myRole partnerRole External Service Java, c++, BPEL WSDL Port Type 1 WSDL Port Type 2
SCA Services and References WSDL Port Type 2 Component Component Reference Service A Callback WSDL Port Type 1
Decide who is the Client To ensure SCA wires correctly Given a WS-BPEL defintion: If a receive, pick, onEvent, is the first use of a partnerLink then myRole is an SCA Service Else myRole is a reference/callback
SCA WS-BPEL Spec • Rules for mapping partnerLinks to SCA Services and References • Previous slide is a simplification • Multiplicities need to be considered (0..1, 1..1, 0..n) • Naming services and references • Reuse partnerLink names • Scoped partnerLinks must be disambiguated
SCA WS-BPEL Spec • Support for SCA conversations • Not to be confused with WS-BPEL correlation mechanism • WS-BPEL specifications that use a partnerLink after a conversation has ended may be rejected • An SCA generated conversation violation fault may be generated
SCA WS-BPEL Spec SCA Extentions to WS-BPEL • Only in SCA aware WS-BPEL definitions • SCA Properties • A ws-bpel variable can be defined as as SCA property and can be initialised by SCA • Multi-valued References • Ws-bpel partnerLinks are 0..1 • Sca extension to allow 0..m • Multiple partners under the cover • E.g. RFQ scenario
SCA WS-BPEL Spec • Only covers Executable WS-BPEL • Abstract WS-BPEL cannot be an implementation language by definition
Summary Tying the Nots! • A workflow language (WS-BPEL) • Process logic and service invocation ordering • A standard deployment and configuration language (SCA) • Dependencies between components • Policy framework (SCA) • An end-to-end view (SCA and BPEL) • The two together is a happy partnership
Acknowledgements • The SCA BPEL Working Group • Martin Chapman Oracle • Sabin Ielceanu TIBCO Software, Inc • Dieter Koenig IBM Corporation • Michael Rowley BEA Systems, Inc. • Ivana Trickovic SAP AG • Alex Yiu Oracle
Further Reading • http://www.osoa.org • SCA WS-BPEL Specification http://www.osoa.org/download/attachments/35/SCA_ClientAndImplementationModelforBPEL_V100.pdf?version=1 • SCA WS-BPEL White Paper http://www.osoa.org/display/Main/SCA+BPEL+White+Paper • Relationship Between SCA and BPEL White Paper http://www.osoa.org/display/Main/Relationship+between+SCA+and+BPEL