CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University March 7, 2005
Chapter 3: Enterprise Application Integration Web Services: Concepts, Architectures and Applications G. Alonso et. al. Springer Verlag
From Middleware to Enterprise Application Integration (EAI) Middleware and 3-tier architectures addressed the need to integrate multiple resources (typically databases whose interface was standardized using ODBC or JDBC type interfaces) EAI refers to the integration faced when dealing with multiple middleware systems to provide enterprise-wide functionality
EAI: Application Example quotation supplier and customer mgmt order processing procurement shipment management financial Manual process of implementing a supply-chain system Copyright Springer Verlag Berlin Heidelberg 2004
Need for message brokers dispatcher inventory management ERP shipping message-oriented middleware month-end closing new PO With RPC or message-based interoperability, applications need to be Changed if they need to interoperate with a new system (dashed) Copyright Springer Verlag Berlin Heidelberg 2004
Extending basic Message-Oriented Middleware (MOM) message broker core sender receiver message broker with message brokers, custom message routing logic can be defined at the message broker level or at the queue level in basic MOM it is the sender who specifies the identity of the receivers Message brokers enable users to define custom message routing logic Copyright Springer Verlag Berlin Heidelberg 2004
Publish/Subscribe Interaction Model dispatcher (publisher) inventory management (subscriber) ERP shipping message broker month-end closing new PO Copyright Springer Verlag Berlin Heidelberg 2004
Distributed Administration of a Message Broker message broker MB-A message broker MB-B client … message broker MB-C administrative domain A administrative domain B administrative domain C Copyright Springer Verlag Berlin Heidelberg 2004
High-level architecture of typical EAI systems DBMS applications message broker SmartQuotation adapter e-mail database SmartForecasting XYZ integrating application (contains the composition logic) Copyright Springer Verlag Berlin Heidelberg 2004
Example use of message broker at systems startup time (can occur in any order, but all must occur before RFQs are executed) A: subscription to message quote B: subscription to message quoteRequest C: subscription to message newQuote at run time: processing of a request for quote. 1: publication of a quoteRequest message 2: delivery of message quoteRequest 3: synchronous invocation of the getQuote function 4: publication of a quote message 5: delivery of message quote 6: publication of a newQuote message 7: delivery of message newQuote 8: invocation of the createForecastEntry procedure RFQ processing A 1 5 6 message broker B 2 4 C 7 SmartQuotation adapter SmartForecasting adapter 3 8 SmartQuotation SmartForecasting Copyright Springer Verlag Berlin Heidelberg 2004
Critical view of message brokers On the plus side Lower development costs Lower opportunity costs Lower maintenance effort On the negative side Expensive tool suite Adapters may not be easy to build
Workflow Management Systems
Historical background on workflow systems WfMS – work flow management systems Evolved from supporting “office automation” Types of workflows Administrative workflows (travel reimbursement processing) Production workflows Commercial platforms WebSphere MQ workflow (IBM) Vitria Businessware Tibco Business Process Modeling (BPM) BEA Web Logic Microsoft BizTalk Orchestration Standardization effort – Workflow Management Coalition (WfMC)
Workflow definitions Business Process – a collection of activities that are performed by humans or software applications Work node – work that needs to be done Routing node – define the order in which work can be carried out Start and completion nodes – start and end points of workflows Workflow instance – an instance of a specific workflow process
Workflow model for a quotation system check if offered product Offered=false check if worth proceeding Offered=true else GoAhead=true get quote from quotation system variables: QuoteReferenceNumber: int Customer: String Item: String Quantity: int RequestedDeliveryDate: Date DeliveryAddress: String GoAhead: Bool ContractExists: Bool Offered: Bool ContractExists=false get quote from supplier ContractExists=true update quotation system send quote to customer enter quote in forecasting system Copyright Springer Verlag Berlin Heidelberg 2004
Scheduling and managing workflows resource broker resource 1 5 3 4 workflow engine resource 2 completed work items inbound queue 1 2 resource n workflow definitions outbound queues workflow designer Copyright Springer Verlag Berlin Heidelberg 2004
Recovering from failures Forward recovery Backward recovery Sagas or compensating activity Exception handling languages Deadlines and deadline expiration
Workflow and EAI technologies combined WfMS WfMS adapter message broker SmartQuotation adapter database adapter SmartForecasting adapter e-mail adapter XYZ adapter SmartQuotation DBMS applications XYZ SmartForecasting Copyright Springer Verlag Berlin Heidelberg 2004
Workflow summary Expensive and complicated to implement Useful in applications that are highly repetitive But the same applications can be done better with conventional middleware Nevertheless, they constitute a generic approach to a lot of commercial workflow problems.