SOAA 6: Implementing the SOA Reference Model
Implementing The SOA Reference Model
Implementing The SOA Reference Model An ESB Developer’s Perspective David Millman Principal Architect 9/8/2008
Agenda
© 2008 Progress Software Corporation 2 Agenda The Relevant Model Components The Problem Solving the Problem Summary Implementing the SOA Reference Model
The Reference Model
© 2008 Progress Software Corporation 3 The Reference Model Visibility & Control Infrastructure Services Connection & Data Services Business Services Composition/Mediation Services Presentation/Consumer
The ESB Developer’s Perspective
© 2008 Progress Software Corporation 4 The ESB Developer’s Perspective What We are Going to Concentrate On Connection & Data Services Business Services Composition/Mediation Services
Agenda
© 2008 Progress Software Corporation 5 Agenda The Relevant Model Components The Problem Solving the Problem Summary Implementing the SOA Reference Model
Sample Problem (From Cookbook)
© 2008 Progress Software Corporation 6 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
Using the Reference Model to Define the Structure of the Solution
© 2008 Progress Software Corporation 7 Using the Reference Model to Define the Structure of the Solution CSR
Agenda
© 2008 Progress Software Corporation 8 Agenda The Relevant Model Components The Problem Solving the Problem Summary Implementing the SOA Reference Model
Goal of the Implementation
© 2008 Progress Software Corporation 9 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
Agenda
© 2008 Progress Software Corporation 10 Agenda The Relevant Model Components The Problem Solving the Problem Business Services Composition/Mediation Services Connection Services Summary Implementing the SOA Reference Model
What is a business Service?
© 2008 Progress Software Corporation 11 What is a business Service? Use Case Diagrams Used to define operations of a specific actor or set of actors Business Level Components
Business Service, Who is Interested?
© 2008 Progress Software Corporation 12 Business Service, Who is Interested? Business Process Analyst/ Developer
Business Analyst/Developer
© 2008 Progress Software Corporation 13 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
Reference Model Use-Case Implementation
© 2008 Progress Software Corporation 14 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)
ESB Process Deliverable : Phase 1
© 2008 Progress Software Corporation 15 ESB Process Deliverable : Phase 1 Prototype service, Transformation service used to generate default response
ESB Process Deliverable : When Mediation Layer Defined
© 2008 Progress Software Corporation 16 ESB Process Deliverable : When Mediation Layer Defined Implement as Dynamic Transformation for a defined target using DXSI Implement as Dynamic Transformation for a defined target using DXSI Implement as callout to Mediation Service(s) that are required to fulfill operation
What about Presentation?
© 2008 Progress Software Corporation 17 What about Presentation? Presentation layer is consumer/customer of Business Services Multiple consumers may access business services e.g. Web-Service/ Portal/JMS Visibility & Control Infrastructure Services Connection & Data Services Business Services Composition/Mediation Services Presentation/Consumer
Positioning Business Services for a Consumer
© 2008 Progress Software Corporation 18 Understands how the use-cases will be consumed in the real world How to expose the service as web-service to portal etc. Positioning Business Services for a Consumer CSR View/Update Customer Web-Service Portal
Web Service Invocation
© 2008 Progress Software Corporation 19 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
Portal or Presentation Based Project
© 2008 Progress Software Corporation 20 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.
Agenda
© 2008 Progress Software Corporation 21 Agenda The Relevant Model Components The Problem Solving the Problem Business Services Composition/Mediation Services Connection Services Summary Implementing the SOA Reference Model
Who is Required to Implement the Solution
© 2008 Progress Software Corporation 22 Who is Required to Implement the Solution SOA Foundation Services Leader/ Application Service Implementer
SOA Architect/Developers
© 2008 Progress Software Corporation 23 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
Reference Model to UML
© 2008 Progress Software Corporation 24 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
Mediation Implementation
© 2008 Progress Software Corporation 25 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
Mediation Implementation
© 2008 Progress Software Corporation 26 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
Entity.Accounts.getAllAccountInformation
© 2008 Progress Software Corporation 27 Entity.Accounts.getAllAccountInformation Version 1 : Top Down Implementation Generate Appropriate Response for the request (No other services invoked)
Entity.Accounts.getAllAccountInformation
© 2008 Progress Software Corporation 28 Entity.Accounts.getAllAccountInformation Version 2 : Implementation calling appropriate Entity Operations Split join service used to invoke operations on individual account objects
Agenda
© 2008 Progress Software Corporation 29 Agenda The Relevant Model Components The Problem Solving the Problem Business Services Composition/Mediation Services Connection Services Summary Implementing the SOA Reference Model
Who is Required to Implement the Solution?
© 2008 Progress Software Corporation 30 Who is Required to Implement the Solution? Connect- Integration Expert e.g. DBA, SAP Develop
Connection Developer
© 2008 Progress Software Corporation 31 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
Physical Connection to UML
© 2008 Progress Software Corporation 32 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
Physical Connection Project
© 2008 Progress Software Corporation 33 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
Connection Implementation
© 2008 Progress Software Corporation 34 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.getAccountDataForMonth Provides the ability to migrate to different versions of the implementation technology Can provide logical interface to required components
Agenda
© 2008 Progress Software Corporation 35 Agenda The Relevant Model Components Solving the Problem the required personnel Solving the Problem the approach Summary Implementing the SOA Reference Model
From RM – VRM
© 2008 Progress Software Corporation 36 From RM – VRM Connection Svcs to enable reference data changes to be propagated as events on the ESB
Progress offers a comprehensive range of products to address the critical requirements of event-driven SOA.<br>
From RM – VRM
© 2008 Progress Software Corporation 37 From RM – VRM Mediation layer routes the events to the event consuming svcs and may transform the data/interaction model
Progress offers a comprehensive range of products to address the critical requirements of event-driven SOA.<br>
From RM – VRM
© 2008 Progress Software Corporation 38 From RM – VRM Connection Service allows pipeline apps to access cached information Connection Svc provide pipeline events to ESB
Progress offers a comprehensive range of products to address the critical requirements of event-driven SOA.<br>
From RM – VRM
© 2008 Progress Software Corporation 39 From RM – VRM Mediation services route and transform events to the consumer
Progress offers a comprehensive range of products to address the critical requirements of event-driven SOA.<br>
From RM – VRM
© 2008 Progress Software Corporation 40 From RM – VRM Connection svcs to enable Events to be consumed
Progress offers a comprehensive range of products to address the critical requirements of event-driven SOA.<br>
From RM – VRM
© 2008 Progress Software Corporation 41 From RM – VRM Visibility and Control of Pipeline
Progress offers a comprehensive range of products to address the critical requirements of event-driven SOA.<br>
What We Have Learnt
© 2008 Progress Software Corporation 42 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
Conclusion
© 2008 Progress Software Corporation 43 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.
Questions
© 2008 Progress Software Corporation 44 Questions ? Questions