Managing Process Integrity (Chapter 8)

Slides:



Advertisements
Similar presentations
Web Services Transaction Management (WS-TXM) Michael Felderer Digital Enterprise Research Institute
Advertisements

1 Transactions and Web Services. 2 Web Environment Web Service activities form a unit of work, but ACID properties are not always appropriate since Web.
Corporate Context: A SOA & BPM Alliance Via Business Data Management Amir Bahmanyari Architect.
Business Process Management Technologies. BPM Servers and BizTalk (orchestration) BPEL4WS (modelling & execution) ebXML & RosettaNet (discovery & integration)
Technical Architectures
Aligning Business Processes to SOA B. Ramamurthy 6/16/2015Page 1.
Chapter 15 Transaction Management. McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved. Outline Transaction basics Concurrency.
Chapter 8 : Transaction Management. u Function and importance of transactions. u Properties of transactions. u Concurrency Control – Meaning of serializability.
Version # Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1999 by Carnegie.
TRANSACTION PROCESSING TECHNIQUES BY SON NGUYEN VIJAY RAO.
David Harrison Senior Consultant, Popkin Software 22 April 2004
Distributed Databases
Analyzing different protocols for E-business 1 Fatma Sayed Gad Elrab Supervisors Prof. Dr. Ezzat abd El Tawab Korany Dr. Saleh Abdel Shachour El Shehaby.
Transactional Web Services, WS-Transaction and WS-Coordination Based on “WS Transaction Specs,” by Laleci, Introducing WS-Transaction Part 1 & 2, by Little.
Page 1 13/08/2015 The development of Web Transactions Mark Little, Distinguished Engineer, HP.
Ron Vardinon Regional Manager – Israel HRG Universal Super Platform PNMsoft SEQUENCE & Microsoft BizTalk
Copyright © 2001, Intalio, Inc. BPML 101 Implementing the BPML Specification Jeanne Baker Director of BPI Solutions, Sterling Commerce Director, BPMI.org.
THE NEXT STEP IN WEB SERVICES By Francisco Curbera,… Memtimin MAHMUT 2012.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
An Introduction to Software Architecture
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 10: Service Component Architecture.
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
10/18/20151 Business Process Management and Semantic Technologies B. Ramamurthy.
1cs Intersection of Concurrent Accesses A fundamental property of Web sites: Concurrent accesses by multiple users Concurrent accesses intersect.
1 IRU Concurrency, Reliability and Integrity issues Geoff Leese October 2007 updated August 2008, October 2009.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Transactions with Unknown Duration for Web Services Patrick Sauter, Ingo Melzer.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
The Relational Model1 Transaction Processing Units of Work.
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
Transactions and Concurrency Control. Concurrent Accesses to an Object Multiple threads Atomic operations Thread communication Fairness.
16/11/ Web Services Choreography Requirements Presenter: Emilia Cimpian, NUIG-DERI, 07April W3C Working Draft.
© 2008 Progress Software Corporation1 SOA-33: Transactions in a SOA World What happens next? Flight Booking Hotel Booking Car Booking (3) Calls (2) Change.
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
Introduction to Distributed Databases Yiwei Wu. Introduction A distributed database is a database in which portions of the database are stored on multiple.
18 September 2008CIS 340 # 1 Last Covered (almost)(almost) Variety of middleware mechanisms Gain? Enable n-tier architectures while not necessarily using.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
SE 548 Process Modelling WEB SERVICE ORCHESTRATION AND COMPOSITION ÖZLEM BİLGİÇ.
Business Process Execution Language (BPEL) Pınar Tekin.
Dr. Ir. Yeffry Handoko Putra
Logical Database Design and the Rational Model
SAP Overview.
DBMS & TPS Barbara Russell MBA 624.
Client/Server Databases and the Oracle 10g Relational Database
Chapter 1: Introduction
Transaction Management and Concurrency Control
Service Oriented Computing
Distribution and components
Inventory of Distributed Computing Concepts and Web services
Service-centric Software Engineering
Enterprise Service Bus (ESB) (Chapter 9)
Managing Process Integrity (Chapter 8)
Architectural Roadmap
Services-based Systems Architecture, Design and Implementation
Inventory of Distributed Computing Concepts
Transactions, Locking and Query Optimisation
Chapter 10 Transaction Management and Concurrency Control
Outline Introduction Background Distributed DBMS Architecture
Distributed Databases
On transactions, and Atomic Operations
An Introduction to Software Architecture
SOA in Action Chapter 10 B. Ramamurthy 1/16/2019.
Distributed Systems through Web Services
Transactions and Concurrency
WS Standards – WS-* Specifications
Business Process Management and Semantic Technologies
Managing Process Integrity (Chapter 8)
Chapter 6: Architectural Design
SO-Architectural Roadmap
Presentation transcript:

Managing Process Integrity (Chapter 8) B. Ramamurthy 1/12/2019

Topics for discussion Review of last lectures: Services layers diagram (Ch. 1-7) Webservices (design and deployment) Relate these two in the context of design, development, deployment cycle of an SOA. Lets understand WSDL http://www.w3.org/TR/wsdl#_wsdl http://www.w3schools.com/wsdl/wsdl_documents.asp http://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl? Lets look at the components of WSDL and look at Amazon.com ECS as example Review for midterm Process Integrity 1/12/2019

Anatomy of a WSDL document 1/12/2019

Sample WSDL http://www.w3.org/2001/04/wsws-proceedings/uche/wsdl.html http://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl? 1/12/2019

Significance of WSDL WSDL for a web service (WS) when specified in an IDE (such as Netbeans) exposes the operations and the signature for the operations. This can be used access the operations of the WS. When designing business systems using BPEL, WSDL represents the requirements of a process in a BPEL. Business BPEL WSLD  services (SOA) Thus WSDL is the link that aligns a business process with an IT service. 1/12/2019

Data integrity Consistency Accuracy Correctness of data Entity integrity: each row in relational table must be uniquely identified Domain integrity: the values must fall within a specified value range Referential integrity: specifies the validity of relationship between different data sets. 1/12/2019

Process integrity Business processes span multiple IT systems. There are times when a process state may be inconsistent. For example, a cancelled order takes some time to register with order system. Technical failures such as network failure: system-wide solution Business exceptions must be handled at the process level: WSDL fault provisions Special cases: overbooking of a flight (cannot be handled by domain integrity.) Must be handled at code level. Process ownership is another problem. For example, consider a workflow application. 1/12/2019

Process integrity solutions Logging and tracing ACID transactions Atomicity, consistency, isolation, durability Transaction monitors 2PC: two-phase commit protocol is used to ensure ACID properties for transactions that span more than a single resource manager. Phase 1: all participating resource managers acquire locks on shared resources Depending on phase transaction coordinator informs participants whether to commit or rollback Phase 2: participants either commit or rollback to previous state depending on instruction from coordinator Issues: performance, lack of support for long-lived transactions, integration of legacy systems, not suited for discontinuous network, use of multi-level and nested transactions 1/12/2019

Process integrity solutions: transactional steps Combination of transactional steps and persistent queue can improve reliability of complex processes. Transactional steps are a set of closely related activities executed in the context of a single complex transaction. Transactional steps facilitate the decomposition of complex, long-lived business processes into individual steps with short execution times and high transactional integrity. Transactional steps dramatically increase the robustness and flexibility of distributed systems. ~ provide a great way of ensuring the integrity of individual process steps. 1/12/2019

Process integrity solutions transaction chain & compensation ACID properties are too strong for complex transactions Chained transactions with compensating transactions offer a viable means of dealing with process integrity. Compensating transactions undo previously executed steps if a problem is encountered during the execution of a particular step in a transaction chain. http://www.serviceoriented.org/ws-transaction.html 1/12/2019

Sagas Sagas are formal workflow models that build on the concept of chained transactions (steps). A Saga describes a workflow wherein each step associated with a compensating transaction. How do you compensate “out of funds” failure? 1/12/2019

BPM and process integrity BPM (Business Process Management) platforms provides features that enable business analysts and developers to design, execute and manage instances of complex business process. Introduction of BPM will help the process integrity aspects of an enterprise application. Explicit modeling separates technical integrity from process integrity BPM engine provides mechanisms for monitoring processes at runtime BPM supports compensating transactions which is key concept for managing the rollback of partially executed processes after a failure. 1/12/2019

Related WS-Standards See fig. 8-4 A number of different industry alliances and standardization bodies are working on WS-based transaction protocols. OASIS Business Transaction Processing (BTP) WS Flow language WS-BPEL BPEL4WS XLANG WS-Composite Application Framework WS-coordination WS-Transaction … 1/12/2019

Process Integrity Spectrum 2PC/TPM in Heterogeneous env. 2PC/TPM in homogeneous env. Level of integrity Sagas with complex compensation BPM engine with Simple compensation Transactional Steps Custom-built log infrastructure DB log analyzer Eyes closed & Praying Implementation cost 1/12/2019

Mid-term review Date: 11/29 Duration: 1 hour 30min Topics: 1-7 Chapters Closed book Topics for questions: Fundamental concepts: synchrony, loose coupling etc., interface vs. payload semantics Service types Design of an SOA for a application: layered architecture 1/12/2019

Process Integrity in SOA Case Study: Travel Itinerary Management Analyze the problem Choose concurrency control: optimistic vs pessimistic Use idempotent update operations Avoid distributed 2PC Build transactional steps Design simple and flexible compensations Combine SOA, MOA and BPM for flexibility 1/12/2019

Problem Statement & Analysis (8.3.1 & Fig.8-5) Typical sites enable you to book individual flights. The new travel itinerary mgt. system should create complete itineraries for trips including car, hotel and flights. Reuse existing IT subsystems esp. customer management and billing systems. Two different front-ends: simple html front and a complex front-ends for call center (VB GUI) functionality Three backend systems: customer management, billing, and other complex processes such as customer complaints etc.) A number of partner systems need to be integrated; example: partner airlines, hotel and car reservation systems. Key transactions are: confirm itinerary (typically irreversible) and create invoice; these transactions cross organizational boundaries cross several technical boundaries involve different databases involve different departments 1/12/2019

Architectural model 1/12/2019 Enterprise Reservation systems (cars, hotels, other airlines) Enterprise Reservation systems (cars, hotels, other airlines) Customer Customer & Itinerary DB Web front-end IncidentManager Process state DB Billing Callcenter front-end Invoice DB 1/12/2019

Concurrency Control (8.3.2, figs.8-6, 8-7) This specifies how to deal with concurrent access to shared data in an SOA. Optimistic and pessimistic Pessimistic control gives exclusive access to data through acquisition of locks; locks typically are held for short duration. Optimistic control: no locks are acquired during the transaction execution, only when data needs to be updated at the end of the transaction. Optimistic control is the choice for long running transactions. 1/12/2019

Implementing Optimistic Concurrency Control In order to determine write conflicts, optimistic concurrency model must, at the end of each transaction, determine whether a competing transaction has changed the data after it was initially checked out. Different ways: timestamps, version counts, state comparisons For the first two an extra column is added in the relational table Version number or timestamp is added to the primary key used in the WHERE clause of UPDATE operation State comparison is implemented in Microsoft’s ADO.NET; advantage: does not require extra column in the relational table Version numbers are associated with a service at root level If a client is a trusted party then version number is preferable solution; else state comparison 1/12/2019

Example Customer profile Customer updates using web || call center updates using telephone Customer and call center read profile version #645 Customer updates, saves, version #646 Call center looses its updates, needs redo due version conflict Alternatively, we could allow merge operation; possible with state comparison If nothing works resort to pessimistic control, such as in an incident management service 1/12/2019

Optimistic concurrency control Read customer profile update customer Version conflict Commit changes Version inc. no yes Merge possible yes Notify user yes merge changes 1/12/2019

Pessimistic concurrency control Get a lock on Incident object Lock Avail? no Notify user yes Work on Incident yes Possibility for discard changes as well as supervisor notification no Commit changes Release lock 1/12/2019

Make updates Idempotent Effect of a N (N > 1) of the same requests is same as one request. Use sequence numbers interface Itinerary { SQN getSeqeunceNumber(); void addBooking (in SQN s, in booking b); } Can be used in error handling 1/12/2019