Implementing The SOA Reference Model An ESB Developer’s Perspective David Millman Principal Architect 9/8/2008
© 2008 Progress Software Corporation2 Agenda The Relevant Model Components The Problem Solving the Problem Summary Implementing the SOA Reference Model
© 2008 Progress Software Corporation3 The Reference Model Visibility & Control Infrastructure Services Connection & Data Services Business Services Composition/Mediation Services Presentation/Consumer
© 2008 Progress Software Corporation4 The ESB Developer’s Perspective What We are Going to Concentrate On Connection & Data Services Business Services Composition/Mediation Services
© 2008 Progress Software Corporation5 Agenda The Relevant Model Components The Problem Solving the Problem Summary Implementing the SOA Reference Model
© 2008 Progress Software Corporation6 Sample Problem (From Cookbook) One Telco Many Different Customers CSR Customer is stored based on line of business No consolidated view of a single customer Cell Internet Home TV ESB
© 2008 Progress Software Corporation7 Using the Reference Model to Define the Structure of the Solution CSR
© 2008 Progress Software Corporation8 Agenda The Relevant Model Components The Problem Solving the Problem Summary Implementing the SOA Reference Model
© 2008 Progress Software Corporation9 Goal of the Implementation Breaking down the problem into manageable units Allowing each unit to be extended and reused in multiple contexts Time boxed to allow known deliverables and timeframes Therefore: consistent scoping and tasking of SOA project Providing support for top-down and bottom-up approaches Each layer defines a known set of deliverables Repeatable Pattern for Development and Reuse
© 2008 Progress Software Corporation10 Agenda The Relevant Model Components The Problem Solving the Problem Business Services Composition/Mediation Services Connection Services Summary Implementing the SOA Reference Model
© 2008 Progress Software Corporation11 What is a business Service? Use Case Diagrams Used to define operations of a specific actor or set of actors Business Level Components
© 2008 Progress Software Corporation12 Business Service, Who is Interested? Business Process Analyst/ Developer
© 2008 Progress Software Corporation13 Business Analyst/Developer Business view of the world Actors and use-cases Understands High level Requests/Responses May understand presentation technologies Understands concepts of ESB Implement ESB Processes for prototyping –E,g prototype/transformation service for top down development Minimal understanding of the IT Landscape
© 2008 Progress Software Corporation14 Reference Model Use-Case Implementation Project based on Actor Provides a single view of all the Actor’s logic Each use-case becomes an ESB Process named such as: Actor.CSR.ViewCustomerProfile Actor.CSR. ViewAllCustomersAccounts Actor.CSR.UpdateAnAccount Web-Service Implementation may invoke logical process Actor.CSR.ViewCustomerProfile.WS Initially implemented using the Prototype service and then replaced with actual implementation (invocation to Mediation process)
© 2008 Progress Software Corporation15 ESB Process Deliverable : Phase 1 Prototype service, Transformation service used to generate default response
© 2008 Progress Software Corporation16 ESB Process Deliverable : When Mediation Layer Defined Implement as Dynamic Transformation for a defined target using DXSI Implement as callout to Mediation Service(s) that are required to fulfill operation
© 2008 Progress Software Corporation17 Visibility & Control Infrastructure Services Connection & Data Services Business Services Composition/Mediation Services Presentation/Consumer What about Presentation? Presentation layer is consumer/customer of Business Services Multiple consumers may access business services e.g. Web-Service/ Portal/JMS
© 2008 Progress Software Corporation18 Understands how the use-cases will be consumed in the real world How to expose the service as web-service to portal etc. CSR View/Update Customer Web-Service Positioning Business Services for a Consumer Portal
© 2008 Progress Software Corporation19 Web Service Invocation WS Directory contains Web- Service Configuration (including required unwrap and wrap definitions) Process is named the same as the use case but has.WS suffix to denote web-service based process Web Service implementation with appropriate unwrap and wrap invoking the underlying ESB Process
© 2008 Progress Software Corporation20 Portal or Presentation Based Project Presentation based technology project This defines how the ESB interacts with the portal or similar, mapping requests into formats that are required by the lower layers Process invokes business process with the appropriate transformations etc on either side of the invocation.
© 2008 Progress Software Corporation21 Agenda The Relevant Model Components The Problem Solving the Problem Business Services Composition/Mediation Services Connection Services Summary Implementing the SOA Reference Model
© 2008 Progress Software Corporation22 Who is Required to Implement the Solution SOA Foundation Services Leader/ Application Service Implementer
© 2008 Progress Software Corporation23 SOA Architect/Developers Understands how many services work together and the various technologies Deployment –Geography/Network Optimizations and Design Tradeoffs –Code – ESB Processes – BPEL Interfaces that are to be implemented (Business/Design and Connect) Issues of using multiple technologies/Data sources –e.g.Master Name Management
© 2008 Progress Software Corporation24 Reference Model to UML Provides a single set of services that can be reused by Mediation essentially are components based around virtual entities and integration patterns Mediation Level Components
© 2008 Progress Software Corporation25 Mediation Implementation Project Based on Entity Six projects for previous diagram Each Entity and Operation becomes and ESB process: Entity.Customer.viewAllAccounts Entity.Accounts.getAllAccountInformation Entity.CellAccount.getAccountInformation Entity.InternetAccount.getAccountInformation Entity.HomePhoneAccount.getAccountInformation Entity.TVAccount.getAccountInformation
© 2008 Progress Software Corporation26 Mediation Implementation Single Entity e.g. Cell Account may provide Aggregation of multiple back end systems Expectation to work using Canonical Data Model Entity Collection e.g. All Accounts Implement the following Patterns –Splitter/Router –Aggregator e.g. getAllAccountInformation –Master Name Management? Canonical Model enforced at boundaries
© 2008 Progress Software Corporation27 Entity.Accounts.getAllAccountInformation Version 1 : Top Down Implementation Generate Appropriate Response for the request (No other services invoked)
© 2008 Progress Software Corporation28 Entity.Accounts.getAllAccountInformation Version 2 : Implementation calling appropriate Entity Operations Split join service used to invoke operations on individual account objects
© 2008 Progress Software Corporation29 Agenda The Relevant Model Components The Problem Solving the Problem Business Services Composition/Mediation Services Connection Services Summary Implementing the SOA Reference Model
© 2008 Progress Software Corporation30 Who is Required to Implement the Solution? Connect- Integration Expert e.g. DBA, SAP Develop
© 2008 Progress Software Corporation31 Connection Developer High understanding of back-end technology E.g. DBA Understands required components of ESB i.e ESB Processes, Connection Services Not Distribution, Federation and Deployment One is typically required for each back-end technology/implementation i.e. 4 required for previous picture
© 2008 Progress Software Corporation32 Physical Connection to UML Provides virtualized connection from the ESB to implementation technology Allows back systems to be seamlessly integrated into Mediation level Connection Level Components
© 2008 Progress Software Corporation33 Physical Connection Project All Appropriate connection instances e.g. Connection Service Definition defined in deploy directory, making the project complete Top level process can be used to invoke one or more versions to allow concurrent database schemas etc Versions defined under main method directory
© 2008 Progress Software Corporation34 Connection Implementation Single Project per backend Technology May also implement Logical Connection Each operation on the main class becomes an ESB Process e.g. Connection.DB.CellPhoneAccountsDB.getAcc ountDataForMonth Provides the ability to migrate to different versions of the implementation technology Can provide logical interface to required components
© 2008 Progress Software Corporation35 Agenda The Relevant Model Components Solving the Problem the required personnel Solving the Problem the approach Summary Implementing the SOA Reference Model
© 2008 Progress Software Corporation36 From RM – VRM Connection Svcs to enable reference data changes to be propagated as events on the ESB
© 2008 Progress Software Corporation37 From RM – VRM Mediation layer routes the events to the event consuming svcs and may transform the data/interaction model
© 2008 Progress Software Corporation38 From RM – VRM Connection Service allows pipeline apps to access cached information Connection Svc provide pipeline events to ESB
© 2008 Progress Software Corporation39 From RM – VRM Mediation services route and transform events to the consumer
© 2008 Progress Software Corporation40 From RM – VRM Connection svcs to enable Events to be consumed
© 2008 Progress Software Corporation41 From RM – VRM Visibility and Control of Pipeline
© 2008 Progress Software Corporation42 What We Have Learnt Reference Model, supports Reference Model to UML –Provides a common mapping from UML to Reference Model Defined Components –Each level defines a set of components that are required. Top Down and Bottom Up –Concurrent implementation is possible Defined naming to provide ordering in tools and search tools
© 2008 Progress Software Corporation43 Conclusion Reference Model provides Scoping of required Personnel –Training and knowledge requirements Formal structure for deliverables –Provides defined scoping and management Repeatable solutions ESB Provides As ESB provides the ability to cheaply connect services together e.g. Process Invocation and Intra-Container messaging it is possible to define a solution that is componentized and also performant.
© 2008 Progress Software Corporation44 Questions ?
© 2008 Progress Software Corporation45 Thank You
© 2008 Progress Software Corporation46