WEBSITE

Separating BPM and SOA Processes : Disputes on the Model Stack

6/8/2012 11:37:37 AM
The following diagram shows the main components of the ACMEBank architecture to support the disputes process:

There are two partners in this architecture, both of which are external to ACMEBank and communicate with it by SOAP over HTTP. The partners are the dispute network (which connects ACMEBank to both merchant banks and the VISA association) and the customer channel (a self-service web interface that allows customers to raise and update disputes). These partners communicate with ACMEBank's orchestration processes through the ESB. MOM queues sit between the ESB and the orchestration processes. The ESB places requests originating from partners on a queue which is read by the orchestration process; when the process responds, it places a message on a queue, which the ESB picks up and sends back to the partners over HTTP.

The orchestration processes use BPM processes to manage the operational review activities. They also interface with two databases: the account database (to post conditional credits) and the dispute database (which keeps the state of current disputes).

The following figure sketches the interactions between processes in a typical BPM-based implementation.



In this design, there is a single BPM process which manages the overall flow of events. The BPM process can inherently manage whatever manual work needs to be performed, but it uses orchestration processes to perform automated tasks and to communicate with partners.

There are three types of orchestration processes in the BPM-based approach: inbound, outbound, and internal services processes. Inbound processes are responsible for receiving events from partners and injecting them into the controlling BPM process. An inbound event can either create a new instance of the BPM process or update an existing instance. The inbound orchestration process understands the difference and uses a different method to start an instance than to update an instance. Outbound processes send events to partners on behalf of the BPM process. Internal service processes perform services, such as updating databases and interfacing with the mainframe, that the BPM process, with its limited integration capabilities, cannot perform.

There are two sets of ESB processes, one to handle inbound messages (that is, messages coming from partners), and the other for outbound messages (that is, messages sent to partners). ESB processes perform simple transformation and routing. When an inbound ESB process receives a message, it decides where to route it internally. In effect, the ESB process decides which orchestration process should handle the message and sends the message to the queue on which that process listens. When an outbound ESB process receives a message (which comes from an outbound orchestration process), it decides which partner should receive the message and routes it there accordingly.

The next figure sketches the SOA-based approach:


In this design, it is an orchestration process rather than a BPM process that controls the end-to-end flow. The orchestration process sends messages to its partners through ESB outbound message flows. It receives inbound events from inbound ESB flows. These events can either start a new instance of the orchestration process or update an existing process. It is the responsibility of the ESB message flow to route these two types of requests differently. Like the BPM process in the BPM-based design, the orchestration process is fundamentally event-driven; it requires the ability to listen for events during the course of its execution. Chapter 4 discusses in detail how this routing works.

There is no requirement for internal service processes in the SOA-based approach. The controller orchestration process performs integration services as part of its larger execution. Granted, it might separate these out into reusable processes, but this is not an essential part of the design.

When the orchestration process needs to perform manual work, it calls on a BPM process to oversee that work. There is one BPM process instance for each manual task that is performed. As manual tasks need some time to complete (perhaps hours, days, or longer), the BPM process is responsible for notifying the orchestration process when the task is complete and to indicate its outcome.

Other  
  •  Discover the @-SIGN : From Wine Fairs to Email Addresses
  •  IIS 7.0 : Techniques for Enabling Application Frameworks (part 2) - Deploying Frameworks That Use FastCGI
  •  IIS 7.0 : Techniques for Enabling Application Frameworks (part 1) - Enabling New Static File Extensions to Be Served & Deploying Frameworks Based on IIS 7.0 Native Modules
  •  Better Back Up : Mozy, Carbonite, Dropbox, Jungledisk & Livedrive
  •  DIY Social Networking with BuddyPress
  •  Google, privacy & you (Part 2)
  •  Google, privacy & you (Part 1)
  •  Try Another Option Except For Wordpress - Web Expert (Part 3) - Textpattern
  •  Try Another Option Except For Wordpress - Web Expert (Part 2) - Pixelpost & Joomla
  •  Try Another Option Except For Wordpress - Web Expert (Part 1) - Tumblr
  •  Kickstarting A Revolution? (Part 3)
  •  Kickstarting A Revolution? (Part 2)
  •  Kickstarting A Revolution? (Part 1) - A KickStart Primer
  •  Flying With The Cowbird
  •  The Download Directory (Part 3) - A-PDF Split 3.6 & IsMyLcdOK 1.66
  •  The Download Directory (Part 2) - PhotoScape 3.6
  •  The Download Directory (Part 1) - WinDirStat 1.1.2
  •  Spotify - The world's music collection
  •  Social Networking Tips & Tricks (May 2012)
  •  Are Analytics Cookies Legal? (Part 2)
  •  
    Top 10
    Thermalright Archon SB-E Cooler Review (Part 3)
    Thermalright Archon SB-E Cooler Review (Part 2)
    Thermalright Archon SB-E Cooler Review (Part 1)
    Acer CloudMobile - Ambitious Android Phone (Part 3)
    Acer CloudMobile - Ambitious Android Phone (Part 2)
    Acer CloudMobile - Ambitious Android Phone (Part 1)
    Huawei MediaPad 10 Tablet Review (Part 2)
    Huawei MediaPad 10 Tablet Review (Part 1)
    Mymemory.com - Calendars And Picture Books Review (Part 2)
    Mymemory.com - Calendars And Picture Books Review (Part 1)
    Most View
    What To Do When Your PC Is About To Die (Part 1)
    Generation I (For Insecure)?
    Learn How Too... Work Faster Than Ever With Windows 8 (Part 2)
    Need To Know A Snapshot Of What Is Exciting Us (Part 1) - New iPad enhances tablet photography
    iDECT Solo Plus Twin DECT Phone
    BlackBerry Bold : What If Your BlackBerry Was Lost or Stolen?
    Java EE 6 with GlassFish 3 Application Server : JSP implicit objects
    Windows 7 : Troubleshooting Hard Disk Problems with Chkdsk, Troubleshooting Hard Disk Problems with Disk Defragmenter
    Windows 7 : Using Shared Resources - Creating Network Locations
    ASP.NET 4 in VB 2010 : Membership - Role-Based Security
    Windows Server 2008 and Windows Vista : Filtering Administrative Templates in the GPME, Reporting on GPOs
    Ultrabook Supertest (Part 4) - Dell Inspiron 14z
    Picking Up Last Generation Bargains (Part 2)
    View21 VW11FVRHD50 - View What You Want In Any Room Wirelessly
    Modeling Orchestration and Choreography : Modeling Choreography in BPMN
    Exchange Server 2007 : Design and Deploy Disaster Recovery Settings - Recover Deleted Items and Mailboxes
    Troubleshooting And Benchmarking A New PC (Part 1)
    Media Pc Hardware Round-Up (Part 2) - Processors & Motherboards
    Understanding IIS 7.0 Architecture : Request Processing in Application Pool
    Where It Meets Lifestyle – November 2012 (Part 1)