210 likes | 356 Views
Hannes Erven, Georg Hicker, Christian Huemer and Marco Zapletal. The WS-BusinessActivity–Initiator Protocol:. an Extension to the WS-BusinessActivity Specification. ICWS 2007, 11.07.2007. Outline. Setting A close look at WS-BusinessActivity General overview Shortcomings
E N D
Hannes Erven, Georg Hicker, Christian Huemer and Marco Zapletal The WS-BusinessActivity–Initiator Protocol: an Extension to the WS-BusinessActivity Specification ICWS 2007, 11.07.2007
Outline • Setting • A close look at WS-BusinessActivity • General overview • Shortcomings • Developing WS-BusinessActivity-Initiator • Problems • Solutions • Operations • Example • Summary
Components Composite Choreography Protocols Atomic Quality of Service Reliable Messaging Security Discovery, Negotiation Description Interface + Bindings Policy Messaging XML non-XML Transport Transports [cf. Weerawarana et al 2005: „Web Services Platform Architecture“] Web Service Stack Transactions
WS-AtomicTransaction 2-Phase-Commit Protocol Completion Protocol Web Services Transactions WS-Coordination Activation Registration WS-BusinessActivity BA w/ Coordinator Completion BA w/ Participant Completion
WS-BusinessActivity • Suitable for long-running business activities • Relaxed ACID-properties • Locking of resources is NOT required • Two different protocols • BA with Coordinator Completion • Coordinator manages participants and tells them to start working • BA with Participant Completion • Participant decides on its own when to start work • Different outcome types
Apache Kandula • Kandula is an Open Source project of theApache Software Foundation • Hosted by the Apache Web Services Project • Run by an established community • First publicly available implementation of • WS-Coordination • WS-AtomicTransaction • Original Task: a WS-BusinessActivity implementation
Business Logic defined by WS-BA Participant 1 Business Logic Coordinator Participant 2 Participant n Business Logic WS-BusinessActivity • Plain WS-BA Workflow engine Business Logic • Criticism on WS-BA • Integration only with complex workflow engines • Protocol’s design violates major software development principles • All roles must expose Web Services to the public
Business Logic defined by WS-BA Participant 1 Business Logic Coordinator Participant 2 Participant n Business Logic defined by WS-BA-I Initiator WS-BusinessActivity-Initiator • Extended WS-BA • Plain WS-BA Business Logic • Contribution • Separation of Concerns • Security • Trusted Third Parties Concept • Application Range extended to “end-user software” (desktop, mobile)
defined by WS-BA-I Coordinator Initiator Identified problems • Participant identification • Mapping business partners to participants • Extending application range • No need for WS on Initiator • Simple pull-based protocol • Support for • atomic and mixed outcome type • participant and coordinator completion protocols • nested transactions
defined by WS-BA-I Coordinator Initiator WS-BusinessActivity-Initiator • The protocol‘s operations for both outcome types • getCoordinationContextWithMatchcode • listParticipants • completeParticipants (CoordinatorCompletion only) • … for atomic outcome type • cancelOrCompensateAllParticipants • closeAllParticipants • … for mixed outcome type • cancelParticipants • closeParticipants • compensateParticipants
defined by WS-BA Participant 1 Coordinator Participant 2 Participant n WS-BA State Machine • WS-BA with Participant Completion • WS-BA with Coordinator Completion
Example • Participant 1: WS-BA with Participant Completion Active • Participant 2: WS-BA with Coordinator Completion Active
Completed Example • Participant 1: WS-BA with Participant Completion Active Completed • Participant 2: WS-BA with Coordinator Completion Active
Active Completed tellComplete Example • Participant 1: WS-BA with Participant Completion Completed • Participant 2: WS-BA with Coordinator Completion Active Completing Complete
Active Active Completed Completed tellComplete Completed Example • Participant 1: WS-BA with Participant Completion • Participant 2: WS-BA with Coordinator Completion Completing Completed Complete
Active Active Completing Completed Completed tellComplete tellCompensate tellClose Completed Close Example • Participant 1: WS-BA with Participant Completion • Participant 2: WS-BA with Coordinator Completion Closing Completed Complete
Active Active Completing Completed Completed Completed tellComplete tellCompensate tellClose Closed Completed Close Example • Participant 1: WS-BA with Participant Completion • Participant 2: WS-BA with Coordinator Completion Closing Ended Complete
Active Active Completing Completed Closing Completed Compensate tellComplete tellCompensate tellClose Closed Completed Close Example • Participant 1: WS-BA with Participant Completion Completed Compensating • Participant 2: WS-BA with Coordinator Completion Ended Complete
Active Active Completing Completed Completed Closing Completed Compensated Compensate tellComplete tellCompensate tellClose Closed Completed Close Example • Participant 1: WS-BA with Participant Completion Ended Compensating • Participant 2: WS-BA with Coordinator Completion Ended Complete
Summary • Original Task • WS-BA Implementation for Apache Kandula • Encountered Problem • No clear separation between business logic & coordinator in WS-BA • Proposed Solution • Separation of Initiator & Coordinator • Standardized Interface between Initiator & Coordinator • Delivered Result • Specification of the WS-BA-I protocol in WSDL • Implementation of WS-BA & WS-BA-I for Apache Kandula
Hannes Erven, Georg Hicker, Christian Huemer and Marco Zapletal The WS-BusinessActivity–Initiator Protocol: Questions to an Extension to the WS-BusinessActivity Specification ICWS 2007, 11.07.2007