Web Service Choreography Interface (WSCI) a.k.a.  Whiskey!!!
Contributors <ul><li>Intalio </li></ul><ul><li>Sun Microsystems </li></ul><ul><li>SAP </li></ul><ul><li>BEA </li></ul>
Definitions <ul><li>Orchestration  – Deals with communication actions and internal actions in which a service engages.  No...
Orchestration Players <ul><li>WSFL from IBM </li></ul><ul><li>XLANG from Microsoft </li></ul><ul><li>BPEL4WS </li></ul><ul...
Choreography Players <ul><li>BPEL4WS </li></ul><ul><ul><li>Specifically abstract processes </li></ul></ul><ul><li>WSCI (Wh...
Issues Already? <ul><li>There seems to be a lot of confusion between these terms.  </li></ul><ul><li>No consistent definit...
Introduction to WSCI <ul><li>Notion of static definition versus dynamic definition </li></ul><ul><ul><li>WSDL defines stat...
Problems with just WSDL <ul><li>No message sequencing </li></ul><ul><li>No start and end of a sequence of messages </li></...
WSCI Overview <ul><li>In order to solve these issues, WSCI supports stateful message exchange with </li></ul><ul><ul><li>M...
WSCI Overview (cont’d)
Simple Example <ul><li><correlation name = &quot;itineraryCorrelation&quot;  </li></ul><ul><li>property = &quot;tns:itiner...
WSCI Concepts – Activities <ul><li>WSCI describes behavior of a WS in terms of choreographed activities (2 types) </li></u...
WSCI Concepts – Properties / Correlations <ul><li>If activities are the methods of WSCI then properties are the variables ...
WSCI Concepts - Context <ul><li>Much like how locality works with variables and functions in OO.  A context has its own se...
WSCI Concepts - Processes <ul><li>Follows much of the logic of processes (threads) from OS concepts </li></ul><ul><li>Proc...
WSCI Concepts – Exception Handling <ul><li>Functions much like try/catch in java </li></ul><ul><li>Can throw exceptions by...
WSCI Concepts - Transactions <ul><li>Support for 2 types of transactions that can be declared in context </li></ul><ul><ul...
WSCI Concepts – Global Model <ul><li>Able to have oriented view of overall processes.  Links indicate direct message flow ...
Second Example <ul><li>http://xml.coverpages.org/WSCIv10.html#TOC5.4 </li></ul>
Questions? <ul><li>? </li></ul>
Upcoming SlideShare
Loading in …5
×

Web Service Choreography Interface (Wsci)

1,796 views

Published on

My first presentation for VCGR.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,796
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
53
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Web Service Choreography Interface (Wsci)

  1. 1. Web Service Choreography Interface (WSCI) a.k.a. Whiskey!!!
  2. 2. Contributors <ul><li>Intalio </li></ul><ul><li>Sun Microsystems </li></ul><ul><li>SAP </li></ul><ul><li>BEA </li></ul>
  3. 3. Definitions <ul><li>Orchestration – Deals with communication actions and internal actions in which a service engages. Not necessarily all contained in behavioral interfaces. Meant to be execute by an orchestration engine </li></ul><ul><li>Choreography – Deals with collaboration between a collection of services in order to achieve goal. Captures interactions and their dependences to do so. Does not describe any internal action that occurs within a service that is not directly visible. </li></ul>
  4. 4. Orchestration Players <ul><li>WSFL from IBM </li></ul><ul><li>XLANG from Microsoft </li></ul><ul><li>BPEL4WS </li></ul><ul><ul><li>Which combined WSFL and XLANG </li></ul></ul><ul><ul><li>Specifically execution processes </li></ul></ul><ul><li>BPML </li></ul><ul><ul><li>Uses WSCI to do it choreography! </li></ul></ul><ul><ul><li>Also considered a superset of BPEL4WS </li></ul></ul>
  5. 5. Choreography Players <ul><li>BPEL4WS </li></ul><ul><ul><li>Specifically abstract processes </li></ul></ul><ul><li>WSCI (Whiskey!) </li></ul>
  6. 6. Issues Already? <ul><li>There seems to be a lot of confusion between these terms. </li></ul><ul><li>No consistent definition across domains. </li></ul><ul><li>Most common separations: </li></ul><ul><ul><li>Orchestration – Involves business processes </li></ul></ul><ul><ul><li>Choreography – Way that different methods are called with one another (semantics of message passing). </li></ul></ul>
  7. 7. Introduction to WSCI <ul><li>Notion of static definition versus dynamic definition </li></ul><ul><ul><li>WSDL defines static definitions </li></ul></ul><ul><ul><ul><li>Atomic in nature </li></ul></ul></ul><ul><ul><ul><li>Only describe direction of message but not behavior of service with each operation </li></ul></ul></ul><ul><ul><li>WSCI aims to provide a dynamic definition that can take into account boundaries beyond single operation (stateful) </li></ul></ul>
  8. 8. Problems with just WSDL <ul><li>No message sequencing </li></ul><ul><li>No start and end of a sequence of messages </li></ul><ul><li>No undoing operations (transactional semantics) </li></ul><ul><li>No global view of overall exchange? </li></ul>
  9. 9. WSCI Overview <ul><li>In order to solve these issues, WSCI supports stateful message exchange with </li></ul><ul><ul><li>Message Choreography – define bounds of message exchange and rules for ordering </li></ul></ul><ul><ul><li>Transactional Semantics – bounds and compensating instructions </li></ul></ul><ul><ul><li>Exception Handling – define how WS will react to exception </li></ul></ul><ul><ul><li>Thread Management – how WS manages multiple conversations and required relationship among parts of different messages in same exchange </li></ul></ul><ul><ul><li>Properties and Selectors – way of setting runtime values from WSCI perspective </li></ul></ul><ul><ul><li>Connectors - describe actually linkage of different web services </li></ul></ul><ul><ul><li>Context – Set context from which to have functions (local functions / variables in Java, etc. </li></ul></ul>
  10. 10. WSCI Overview (cont’d)
  11. 11. Simple Example <ul><li><correlation name = &quot;itineraryCorrelation&quot; </li></ul><ul><li>property = &quot;tns:itineraryID&quot;> </li></ul><ul><li></correlation> </li></ul><ul><li><interface name = &quot;TravelAgent&quot;> </li></ul><ul><li><process name = &quot;PlanAndBookTrip&quot; instantiation = &quot;message&quot;> </li></ul><ul><li><sequence> </li></ul><ul><li><action name = &quot;ReceiveTripOrder&quot; role = &quot;tns:TravelAgent&quot; operation = &quot;tns:TAtoTraveler/OrderTrip&quot;> </li></ul><ul><li> </action> </li></ul><ul><li><action name = &quot;ReceiveConfirmation&quot; </li></ul><ul><li>role = &quot;tns:TravelAgent&quot; </li></ul><ul><li>operation = &quot;tns:TAtoTraveler/bookTickets&quot;> <correlate correlation=&quot;tns:itineraryCorrelation&quot;/> </li></ul><ul><li><call process = &quot;tns:BookSeats&quot; /> </li></ul><ul><li></action> </li></ul><ul><li><action name = &quot;SendStatement&quot; role = &quot;tns:TravelAgent&quot; </li></ul><ul><li>operation = &quot;tns:TAtoTraveler/SendStatement&quot;/> </li></ul><ul><li></action> </li></ul><ul><li></sequence> </li></ul><ul><li></process> </li></ul><ul><li><process name = &quot;BookSeats&quot; instantiation = &quot;other&quot;> </li></ul><ul><li><action name = &quot;bookSeats&quot; role = &quot;tns:TravelAgent&quot; operation = &quot;tns:TAtoAirline/bookSeats&quot;> </action> </li></ul><ul><li></process> </li></ul><ul><li></interface> </li></ul>
  12. 12. WSCI Concepts – Activities <ul><li>WSCI describes behavior of a WS in terms of choreographed activities (2 types) </li></ul><ul><ul><li>Atomic Activity (1-1 WSDL Correspondence) (actions) </li></ul></ul><ul><ul><li>Complex Activity (made up of atomic and complex activities) – types of Complex Activities: </li></ul></ul><ul><ul><ul><li>All – performs activities in any order </li></ul></ul></ul><ul><ul><ul><li>Sequence – activities must be performed in a sequential order </li></ul></ul></ul><ul><ul><ul><li>Choice – choose between activity set to perform (activity set) based on input </li></ul></ul></ul><ul><ul><ul><ul><li>On message – based on role, action and message </li></ul></ul></ul></ul><ul><ul><ul><ul><li>On timeout </li></ul></ul></ul></ul><ul><ul><ul><ul><li>On fault (much like try / catch) </li></ul></ul></ul></ul><ul><ul><ul><li>For-each, until and while – loop for some condition </li></ul></ul></ul><ul><ul><ul><li>Switch – choose one activity set and do in sequential order </li></ul></ul></ul><ul><ul><ul><li>Some others like fault (throw), delay, empty </li></ul></ul></ul>
  13. 13. WSCI Concepts – Properties / Correlations <ul><li>If activities are the methods of WSCI then properties are the variables </li></ul><ul><li>Way of getting specific information out of an input method and store to some property (name / value combo). </li></ul><ul><li>Able to extract information from XML message by using specific XPath query. </li></ul><ul><li>Can be referenced anywhere within WSCI. </li></ul><ul><li>Very important place this is used is in correlations. Correlations are special types of properties that are meant to make activites stateful. They correlate some transaction-indicating id between two activities. </li></ul>
  14. 14. WSCI Concepts - Context <ul><li>Much like how locality works with variables and functions in OO. A context has its own set of variables and methods including that of its parents (but not children) </li></ul><ul><li>Transactional Ideas modeled in context (context declared as a transaction thus observe ACID properties). </li></ul>
  15. 15. WSCI Concepts - Processes <ul><li>Follows much of the logic of processes (threads) from OS concepts </li></ul><ul><li>Process – A special type of activity that establishes its own context of execution </li></ul><ul><li>Can be nested or top-level. Can also say if it can be called from Top-level or only nested. </li></ul><ul><li>Process can create a new one by calling ( use call ) it (wait for child to finish) or spawn (run in parallel). Other method for receiving it is from a message (not from another process) </li></ul><ul><li>Join – way of enforcing barriers (wait for instances of a process to finish before completing) </li></ul>
  16. 16. WSCI Concepts – Exception Handling <ul><li>Functions much like try/catch in java </li></ul><ul><li>Can throw exceptions by using special action type fault </li></ul><ul><li>Use choice w/ onFault to do try/catch block </li></ul><ul><li>Event propagation follows like Java (parent handles if child can’t handle exception) </li></ul>
  17. 17. WSCI Concepts - Transactions <ul><li>Support for 2 types of transactions that can be declared in context </li></ul><ul><ul><li>Atomic Transaction – follow ACID properties in that all either do everything or nothing </li></ul></ul><ul><ul><li>Open Transactions – weaker notion that has many atomic transactions in it but uses “compensating transactions” to rollback long chains </li></ul></ul>
  18. 18. WSCI Concepts – Global Model <ul><li>Able to have oriented view of overall processes. Links indicate direct message flow between linked operations e.g. </li></ul><ul><li><model name = “airlineTicketing> </li></ul><ul><li><connect operatoins = “tra:TravelerToTA/PlaceItenerary </li></ul><ul><li> ta:TAtoTraveler/ReceiveTrip” /> </li></ul><ul><li></model> </li></ul>
  19. 19. Second Example <ul><li>http://xml.coverpages.org/WSCIv10.html#TOC5.4 </li></ul>
  20. 20. Questions? <ul><li>? </li></ul>

×