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

More Related Content

PPTX
Present perfect tense
DOC
Luận văn: Chấm dứt hợp đồng lao động theo pháp luật lao động Việt Nam
PPTX
Dakota+openFoam1
PPT
Week 6 the simple sentence (p2) - edited
PPTX
Present perfect versus present perfect continuous
PDF
LÍ THUYẾT+BÀI TẬP QUÁ KHỨ ĐƠN
PPTX
Habitual past
PPTX
Noun phrases powerpoint
Present perfect tense
Luận văn: Chấm dứt hợp đồng lao động theo pháp luật lao động Việt Nam
Dakota+openFoam1
Week 6 the simple sentence (p2) - edited
Present perfect versus present perfect continuous
LÍ THUYẾT+BÀI TẬP QUÁ KHỨ ĐƠN
Habitual past
Noun phrases powerpoint

What's hot (20)

PPT
Present Perfect Progressive
PDF
Cooperation And Implicature By Dr.Shadia.Pptx
PPT
Noun phrase for EFL classes
PPTX
Wish
PPT
English: modal auxiliary verbs (theory and examples)
PPT
Defining And Non Defining Relative Clauses
PPTX
The unreal past and wish
DOCX
Adjective suffixes
PPTX
Language history and change
PDF
Luận văn: Phân chia tài sản chung của vợ chồng theo Luật, HAY
PPTX
NCE - Pre.inter - Module 4 (13) - Choosing the right person.pptx
PPT
Past perfect continuous tense
PDF
Motor bike by cfmesh
PDF
Processes of Word Formation - Morphology-LANE 333-2012- dr. shadia
PPTX
Unit 2
PPT
Problems with non equivalence at word level
PPTX
PUNCTUATIONS
PPT
Conditionals
PPTX
Future Continuous Tense
PDF
Quy định hạn mức giao đất và chuyển quyền sử dụng đất nông nghiệp theo pháp l...
Present Perfect Progressive
Cooperation And Implicature By Dr.Shadia.Pptx
Noun phrase for EFL classes
Wish
English: modal auxiliary verbs (theory and examples)
Defining And Non Defining Relative Clauses
The unreal past and wish
Adjective suffixes
Language history and change
Luận văn: Phân chia tài sản chung của vợ chồng theo Luật, HAY
NCE - Pre.inter - Module 4 (13) - Choosing the right person.pptx
Past perfect continuous tense
Motor bike by cfmesh
Processes of Word Formation - Morphology-LANE 333-2012- dr. shadia
Unit 2
Problems with non equivalence at word level
PUNCTUATIONS
Conditionals
Future Continuous Tense
Quy định hạn mức giao đất và chuyển quyền sử dụng đất nông nghiệp theo pháp l...
Ad

Similar to Web Service Choreography Interface (Wsci) (20)

PPT
Service Oriented Development With Windows Communication Foundation 2003
PPTX
Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016
PPTX
Oop2011 actor presentation_stal
DOCX
Hibernate3 q&a
PPT
Design patterns - ICIN 2010
PPTX
01. design pattern
PPT
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
PPTX
Advance oops concepts
PPT
09 workflow
PPT
Introduction to mule Esbs
DOCX
Soaosbcourse_content
PPT
PDF
A sane approach to microservices
PPT
Presentation
PDF
Spring 2
PPTX
Stephane Lapointe & Alexandre Brisebois: Développer des microservices avec Se...
PPTX
Spring from a to Z
PDF
Soa limitations
PPTX
Designing distributed systems
PDF
Mule ESB
Service Oriented Development With Windows Communication Foundation 2003
Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016
Oop2011 actor presentation_stal
Hibernate3 q&a
Design patterns - ICIN 2010
01. design pattern
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Advance oops concepts
09 workflow
Introduction to mule Esbs
Soaosbcourse_content
A sane approach to microservices
Presentation
Spring 2
Stephane Lapointe & Alexandre Brisebois: Développer des microservices avec Se...
Spring from a to Z
Soa limitations
Designing distributed systems
Mule ESB
Ad

More from awesomesos (18)

PPT
A Hardware Architecture For Implementing Protection Rings
PPT
Amazon’s Cloud Computing Efforts
PPT
Bringing The Grid Home for Grid2008
PPT
Handling Byzantine Faults
PPT
Masters of Science presentation: Bringing The Grid Home
PPT
DIOS - compilers
PPT
Distributed Snapshots
PPT
PicFS presentation
PPT
Online feedback correlation using clustering
PPT
Hadoop Tutorial
PPT
Lustre And Nfs V4
PPT
An Installable File System For Genesis II
PPT
A Web Based Covert File System
PPT
PPT
Distributed File Systems
PPT
Exploring The Cloud
PPT
Data Grid Taxonomies
PPT
A Guide to DAGMan
A Hardware Architecture For Implementing Protection Rings
Amazon’s Cloud Computing Efforts
Bringing The Grid Home for Grid2008
Handling Byzantine Faults
Masters of Science presentation: Bringing The Grid Home
DIOS - compilers
Distributed Snapshots
PicFS presentation
Online feedback correlation using clustering
Hadoop Tutorial
Lustre And Nfs V4
An Installable File System For Genesis II
A Web Based Covert File System
Distributed File Systems
Exploring The Cloud
Data Grid Taxonomies
A Guide to DAGMan

Recently uploaded (20)

PDF
Approach and Philosophy of On baking technology
PDF
August Patch Tuesday
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
A Presentation on Artificial Intelligence
PPT
Teaching material agriculture food technology
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Empathic Computing: Creating Shared Understanding
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Mushroom cultivation and it's methods.pdf
Approach and Philosophy of On baking technology
August Patch Tuesday
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
SOPHOS-XG Firewall Administrator PPT.pptx
Unlocking AI with Model Context Protocol (MCP)
A Presentation on Artificial Intelligence
Teaching material agriculture food technology
Reach Out and Touch Someone: Haptics and Empathic Computing
Diabetes mellitus diagnosis method based random forest with bat algorithm
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Assigned Numbers - 2025 - Bluetooth® Document
Network Security Unit 5.pdf for BCA BBA.
A comparative analysis of optical character recognition models for extracting...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Empathic Computing: Creating Shared Understanding
OMC Textile Division Presentation 2021.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Mushroom cultivation and it's methods.pdf

Web Service Choreography Interface (Wsci)

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