SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
Practical SOA for the Solution
           Architect


             Ganesh Prasad
          Consultant Architect, WSO2


            Australia, October 2011
About the Presenter
●
    Consultant Architect with WSO2
●
    24+ years in IT
●
    10+ years of SOA-related experience
●
    Extensive experience working at SOA end-user
    organisations
●
    On design review committees for many solution designs
●
    Ideas for lightweight method came out of practical
    experience




Oct 25, 2011                                                2
Target Audience
 ●
     The Solution Architect
      ●
          Understands business requirements as provided by the
          Business Analyst (BA)
      ●
          Produces High-Level Solution Designs to be fleshed out and
          implemented by development teams
      ●
          Identifies existing (legacy) components that can be reused
      ●
          Identifies new components that need to be procured or
          developed
      ●
          Specifies integration of existing and new components to meet
          business need
 ●
     Anyone else with an interest in end-to-end solution
     design involving integration of applications and
     systems

Oct 25, 2011                                                             3
Why “Practical SOA”?
 ●
     Some IT practitioners think SOA is a buzzword that is now
     passé
 ●
     Some understand the concept of “loose coupling” in
     theory but don't know how to apply it in practical
     situations
 ●
     Some think that just using a “SOA Product” like an ESB is
     sufficient to “do SOA”.
 ●
     In practice, many ostensibly “SOA-based” designs running
     on SOA Products are tightly-coupled, violating the spirit of
     SOA.
 ●
     We need to re-educate Solution Architects about SOA
 ●
     We need an approach that is simple to understand and
     easy to apply – hence “Practical SOA”.

Oct 25, 2011                                                        4
The Two Layers of a Solution Design
                                 Elimination of Unnecessary       Decoupling of Message Data
                                       Dependencies                   from Domain Data
  Implicit assumptions and                                                                      Common vocabulary
 dependencies made explicit                                                                    (within practical limits)


                                                                                          Solution Architects are responsible for
                                                                                        designing this layer. SOA products support,
                                                 The Data Layer                                but do not guide, this design.
            Required for
          loosely-coupled
          interoperability                                                               SOA products support loose coupling at
                                                                                          this layer, but Solution Architects must
                                             The Technology Layer                        choose the right tools and patterns from
                                                                                                        the offering.


Standardised Wire Protocol                                                                     Standardised Qualities of Service
    (e.g., SOAP, HTTP)                                                                             (e.g., Security, Reliability)
                              Standardised Data Encoding      Standardised Message Exchange Patterns
                                   (e.g., XML, JSON)             (e.g., Request/response, One-way)


  ●
      Solution Architects must choose the right tool for the job at
      the Technology Layer
  ●
      They must ensure loose coupling at the Data Layer to avoid
      negating the investments at the Technology Layer
 Oct 25, 2011                                                                                                                5
The Three Core Components at the
Technology Layer


  ●   The Service Container
  ●   The Broker
  ●   The Process Coordinator




 Oct 25, 2011                      6
The Service Container
    The business requirement demands a component:

       ●
           that does not yet exist
       ●
           is not available off the shelf
       ●
           must be developed in-house

    Desirable to expose this new component's functionality in a
    reusable way

     A Service Container is what you need to host this logic

                   Service                       Custom logic
                   Consumer        Service
                                   interface




                                                    Service
                                                    Container



Oct 25, 2011                                                      7
The Broker
In practice, solution must be able to exploit pieces of logic or
data that already exist somewhere in the organisation, within
some legacy system or application.
Possible complications:
 ●
     Legacy component speaks a specialised or proprietary
     protocol. Use an adapter to translate proprietary protocols
     into more open ones.
 ●
     The data is not in the right format for you to use. Use a
     transformer to enrich data and massage it into a more
     usable form.
 ●
     Need to hide, proxy or throttle access to legacy data or app.
     Use a mediator.



Oct 25, 2011                                                         8
The Broker, cont'd
A Broker component performs the functions of an adapter, a
transformer and a mediator.


                                         “Transformer”     “Adapter”   Proprietary
                 Service interface       logic             logic                     Legacy
      Service                                                          interface
                 (“Mediator” function)                                               component
      Consumer




                                                         Broker




Oct 25, 2011                                                                                     9
The Process Coordinator
Sometimes you don't know what you need in advance. To pull
components together dynamically, based on a run-time status,
you need a Process Coordinator.
It can decide which automated and human tasks to invoke at
each step of the process, and make these decisions dynamically.



                                                                Individual services
                                                                (Process steps)
           Service                           Process logic
                      Service interface
           Consumer   for the process




                                          Process Coordinator




Oct 25, 2011                                                                          10
Supporting Components
The Service Container, Broker and Process Coordinator are often
sufficient for a basic solution design. But some components can
refine a solution with specialised functionality.
●
    Rules
●
    Data Access
●
    Registry/Repository
●
    Governance Support
●
    Activity Monitoring
●
    Complex Event Processing
●
    Presentation Support
●
    Identity and Access Management

Oct 25, 2011                                                  11
SOA Technology Components from WSO2
Common Broker-related Mistake #1
  “When All You Have is a Hammer, the Whole World Looks Like a
  Nail”
  Brokers are very powerful and have many extensions, but...
   ●
       Do not use a Broker in place of a Service Container by
       hosting business logic
   ●
       Do not use a Broker in place of a Process Coordinator by
       hosting coordination logic
  Use the right tools for the job - ensure that developers are
  equally proficient in the use of all three core SOA components




Oct 25, 2011                                                      13
Common Broker-related Mistake #2
A Broker is not a Singleton, Centralised Component

Some commercial Brokers are expensive. Temptation for a hub-and-spokes
architecture – i.e., install just one Broker instance for the entire organisation and push
all traffic through it

Implications: Performance (scalability) and Availability (single point of failure)

A decentralised or “federated” architecture is better, and ties in very well with a
pragmatic data model.


                                           Service
                                          Container
                        Service
                       Container

                                                                                     Legacy
                                           Process                                  Service
                                                                Broker
                                         Coordinator                                Provider



                            Broker
                                                       Broker
             Legacy
                                                                          Legacy
             Service
                                                                         Service
            Consumer
                                                                         Provider


 Oct 25, 2011                                                                                  14
A Data Design Example
A business application needs to store documents (files) alongside structured
data. It can hold references to the locations of these documents but not the
document files themselves.

An Enterprise Content Management (ECM) system can store the documents
themselves.

When a document is checked into the ECM, it returns a document ID.

If a document ID is presented to the ECM, the corresponding document is
retrieved.

How can the business application interface with the ECM?

Would the design below suffice?
                                                               Proprietary API to check in
                         Service interface to check            and retrieve documents
                         in and retrieve documents    Broker



                  Business                                                ECM
                 Application                                             System




Oct 25, 2011                                                                                 15
Data Design Example – Analysis
The simplistic design fails for many reasons:

 ●   Document IDs are unique only within an ECM instance, not globally.
 ●   There are many instances of ECM – which one is implied?
 ●   Need for business app to store implicit information – ECM instance
     ID
 ●   ECM instance ID is assumed to be a surrogate for the application –
     metadata transformation is done based on the ECM instance ID.

Implications:

 ●   Too many instances of ECM – licence and operational costs
 ●   Cannot load-balance multiple ECM instances for high-volume
     applications
 ●   Cannot share an ECM instance between low-volume applications
 ●   Cannot move a document from one ECM instance to another
 ●   Cannot implement flexible archiving strategies

This tightly-coupled solution is not SOA-compliant even though it uses
the right component (a Broker) at the technology layer.

Oct 25, 2011                                                             16
Design Design Example – One Solution
 ●
     Remove implicit knowledge of ECM instance – get it from a rules engine.
 ●
     Remove unwarranted dependency of transformation logic on ECM
     instance – get it from a rules engine.
 ●
     Decouple business applications from instance-specific Document IDs –
     use a mapping to a global ID.
 ●
     Control the steps using a Process Coordinator in front of the Broker.


                                            Rules
                                           Engine    2. Determine correct ECM instance
                 1. Invoke Document                  and transformation logic required,
                 Checkin Process passing             passing document metadata
                 document and document
                 metadata


                                                                                                        ECM
                 Business                                                                              System
                Application


                                                                  3. Check document into correct ECM
               5. Return globally
                                                                  instance specifying transformation logic,
               unique ID for
                                                                  obtain instance-specific document ID
               application to store

                                                         4. Generate globally unique ID and store mapping of this to
                                            Data         the ECM instance and the instance-specific document ID
                   ID Mapping
                    Database               Service




Oct 25, 2011                                                                                                           17
Data Layer Principles

Lessons learnt:
 ●   Identify Dependencies, Explicit and Implicit. Make all
     Implicit Dependencies Explicit
 ●   Eliminate Unnecessary Dependencies
 ●   Map Domain Data to Message Data (Do Not Derive or
     Generate)
 ●   Develop a Sane Data Model for Message Data
     (Intermediate granularity)




Oct 25, 2011                                                  18
Impractical Approach – Boiling the Ocean in Search of a Canonical Data Model
(and Suffering the Performance and Availability Drawbacks of a Centralised
Broker)

                             Risk                                                                  Retail
   Institutional          Management
     Banking                                                                    Deposits          Banking
     Division                                                                                     Division


                   Treasury                                                                     Loans

         Bond
        trading                                      Centralised
                                                       Broker
                                                                                                 Credit
                                                                                                 Cards




                                          Canonical Data Model for the Bank




                                                                    Portfolio   * All interactions between systems
                                 Wrap                              Management   go through a centralised Broker.
                               products
                                                                                * All data is translated by the
                                                Wealth                          Broker to/from a single canonical
                                              Management                        data model and the various data
                                                Division                        models understood by individual
                                                                                systems.

Oct 25, 2011                                                                                                 19
Pragmatic Approach – A Federated Data Model Based on Logical Domains, and a
Correspondingly Federated Broker Configuration


                                                                                      Deposits                Retail
                                    Risk                                                                    Banking
          Institutional          Management                                                                Data Model
            Banking                                                                                     Loans
           Data Model
                          Treasury
                Bond                                                      Domain Broker
               trading                  Domain Broker
                                                                                                         Credit
                                                                                                         Cards


                                                   No Canonical Data
                                                   Model for the Bank            * A Domain Broker enforces a Domain
                                                                                 Data Model for a group of related
                                                                                 systems.

                                                                                 * External systems see a consistent Data
                                                                                 Model (but different from their own)
                                                Domain Broker                    when interacting with any service
                                                                                 exposed through a Domain Broker and
                                                                                 hosted on systems within that domain.
                                                              Portfolio
                               Wrap
                                                             Management
                             products                                            * It is the responsibility of systems to
                                                                                 understand other data models when
                                              Wealth                             interaction crosses domain boundaries
                                            Management                           (which is relatively rare). Local Domain
                                            Data Model                           Brokers perform any required
                                                                                 translations.

Oct 25, 2011                                                                                                          20
Industry Example 1 – Banking
Opening an account:

After verifying identity, check customer database to see if
person is an existing customer. If not, generate a fresh
customer number.

Generate a new account number on mainframe system.

If new customer, requisition the cards system to issue a
new debit card and have it linked to the account. If
existing customer, link new account to existing debit
card.

The card system makes a request to a PIN mailer to have
a PIN sent to the customer.

Oct 25, 2011                                               21
Industry Example 1 – Solution
  Bank Account Opening – High-Level Solution Design Showing
  SOA Components
                                                                                                          SQL
                                                                                        Customer
                                                                                          Data                         Customer
                                                                                         Services                      Database
              Customer
                                                                                   Data Access

                                       Account opening               1. Check if existing customer,
              Presentation
                                           process                   2. Create customer
                support

                 Account
                 Opening
                Front-end
                                                              3. Create account,
                             A. Open                          4. Link card to account
    Branch
    officer                  account                                          COBOL-XML              Queue      COBOL copybook
                                                                            transformation          adapter     over MQ

                                                                                                                           Mainframe


                                                   5. Issue                        Account
                                                       card                        Services



                                        Transformation to            Vendor-provided
                                             bank schema             Web Services                      Existing
                                                                                                    proprietary link
                                                               SOAP/               Card                                   PIN
                                                               HTTP               System                                 Mailer


                                               Card
                                              Services
Oct 25, 2011                                                                                                                           22
Industry Example 2 – Insurance
Providing a quote, converting a quote to a policy:

Insurance brokers ask for quotes from insurance companies on
behalf of their customers. Customers may select the best quote
and place an order to purchase a policy.

At an insurance company, a rules engine determines the quote
based on the customer's and product's details. If it's a borderline
case, it escalates to a human underwriter who makes a decision
and communicates it back to the broker. Once a quote is provided,
it is recorded on a mainframe system.

The broker's front-end application gathers quotes from insurance
companies and presents them on a screen. When informed of the
quotes, the customer may purchase one.

The broker places an order for the quote. The insurance company
processes the payment through an external payment gateway. It
then converts the quote recorded on the mainframe to a policy.

Oct 25, 2011                                                          23
Industry Example 2 – Solution
   Insurance Quotes – High-Level Solution Design Showing SOA
   Components
                                                                                          Underwriter
                                            Quote                                           Inbox
                                          Decisioning

               Client                       Rules         A1. Get quote decision
                                                                                                                      Underwriter

                                                                                          Underwriter
           Presentation                  Underwriting                                        Data
             support                      application                                      Services

                 Broker                                                                                                  Underwriter
                Front-end                                           A2. Refer quote                                       Front-end
               Application                                          A5. Get decisions                                    Application
                                                                                             A3. Get referrals,       Presentation
                                A. Get quote,                                                A4. Update decision
      Broker                                                                                                            support
                                B. Purchase policy


     A8. Get quotes                                                    B1. Make
                                                                       payment                              Service Provider
                             A7. Notify quote                                                               Interface
                                                                                                                        Payment
                                                                                                                        Gateway

                 Broker                                                                 Payment Service
                  Data
                Services
                                                                                    COBOL-XML            Queue     COBOL copybook
                                                A6. Register quote,
                                                                                  transformation        adapter    over MQ
                                                B2. Convert quote to policy

                                                                                                                       Mainframe
                 Broker
                 Inbox
                                                                                   Policy Services


Oct 25, 2011                                                                                                                           24
Summary and Conclusions
The success of SOA depends on the Solution Architect.

The Solution Architect must pay attention to the Technology Layer as well
as the Data Layer of a solution design.

Technology Layer – Use the right tool for the job (Service Container, Broker
and Process Coordinator), supplement with supporting components as
appropriate. Steer clear of the common Broker-related design mistakes.

Data Layer – Remember 4 principles:

1. Make all implicit dependencies explicit
2. Remove unnecessary dependencies, put all legitimate ones into the
contract
3. Loosely couple message data with domain data – do not derive or
generate one from the other
4. Choose an intermediate level of granularity for data models – neither too
coarse-grained nor fine-grained

Study industry examples to make these concepts real.

  Oct 25, 2011                                                           25

Contenu connexe

Tendances

Zensar Technologies Oracle Capabilities
Zensar Technologies Oracle CapabilitiesZensar Technologies Oracle Capabilities
Zensar Technologies Oracle Capabilities
Niraj Singh
 

Tendances (20)

Data warehouse
Data warehouseData warehouse
Data warehouse
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Domain-Driven Data
Domain-Driven DataDomain-Driven Data
Domain-Driven Data
 
Knowledge Graph Introduction
Knowledge Graph IntroductionKnowledge Graph Introduction
Knowledge Graph Introduction
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/Subscribe
 
Data lineage
Data lineageData lineage
Data lineage
 
Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...
Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...
Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...
 
ORC: 2015 Faster, Better, Smaller
ORC: 2015 Faster, Better, SmallerORC: 2015 Faster, Better, Smaller
ORC: 2015 Faster, Better, Smaller
 
Introduction to Big Data
Introduction to Big DataIntroduction to Big Data
Introduction to Big Data
 
Office 365 Migration Planning
Office 365 Migration PlanningOffice 365 Migration Planning
Office 365 Migration Planning
 
Microsoft adoption guide workbook
Microsoft adoption guide workbookMicrosoft adoption guide workbook
Microsoft adoption guide workbook
 
Streaming with Oracle Data Integration
Streaming with Oracle Data IntegrationStreaming with Oracle Data Integration
Streaming with Oracle Data Integration
 
Oracle Database Migration to Oracle Cloud Infrastructure
Oracle Database Migration to Oracle Cloud InfrastructureOracle Database Migration to Oracle Cloud Infrastructure
Oracle Database Migration to Oracle Cloud Infrastructure
 
Youtube Generación Z en América Latina
Youtube Generación Z en América LatinaYoutube Generación Z en América Latina
Youtube Generación Z en América Latina
 
Big Data Analytics Proposal #1
Big Data Analytics Proposal #1Big Data Analytics Proposal #1
Big Data Analytics Proposal #1
 
Oracle Database Appliance, ODA, X7-2 portfolio.
Oracle Database Appliance, ODA, X7-2 portfolio.Oracle Database Appliance, ODA, X7-2 portfolio.
Oracle Database Appliance, ODA, X7-2 portfolio.
 
Introduction to Data Science & Python.pdf
Introduction to Data Science & Python.pdfIntroduction to Data Science & Python.pdf
Introduction to Data Science & Python.pdf
 
Using Knowledge Graphs to Predict Customer Needs and Improve Quality
Using Knowledge Graphs to Predict Customer Needs and Improve QualityUsing Knowledge Graphs to Predict Customer Needs and Improve Quality
Using Knowledge Graphs to Predict Customer Needs and Improve Quality
 
Zensar Technologies Oracle Capabilities
Zensar Technologies Oracle CapabilitiesZensar Technologies Oracle Capabilities
Zensar Technologies Oracle Capabilities
 
2019-02-20-ddd taiwan-community-iddd-studygroup-1st
2019-02-20-ddd taiwan-community-iddd-studygroup-1st2019-02-20-ddd taiwan-community-iddd-studygroup-1st
2019-02-20-ddd taiwan-community-iddd-studygroup-1st
 

Similaire à Practical SOA for the Solution Architect

EasySOA: A New Approach to SOA
EasySOA: A New Approach to SOAEasySOA: A New Approach to SOA
EasySOA: A New Approach to SOA
Nuxeo
 
Framework Engineering_Final
Framework Engineering_FinalFramework Engineering_Final
Framework Engineering_Final
YoungSu Son
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
drewz lin
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
Tot Bob
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
Majong DevJfu
 

Similaire à Practical SOA for the Solution Architect (20)

21st Century Service Oriented Architecture
21st Century Service Oriented Architecture21st Century Service Oriented Architecture
21st Century Service Oriented Architecture
 
Wp soa-suite-11gr1-2-129551
Wp soa-suite-11gr1-2-129551Wp soa-suite-11gr1-2-129551
Wp soa-suite-11gr1-2-129551
 
21st Century SOA
21st Century SOA21st Century SOA
21st Century SOA
 
Oracle SOA Suite 11g
Oracle SOA Suite 11gOracle SOA Suite 11g
Oracle SOA Suite 11g
 
Reference Architecture
Reference ArchitectureReference Architecture
Reference Architecture
 
Let's talk about... Microservices
Let's talk about... MicroservicesLet's talk about... Microservices
Let's talk about... Microservices
 
EasySOA: A New Approach to SOA
EasySOA: A New Approach to SOAEasySOA: A New Approach to SOA
EasySOA: A New Approach to SOA
 
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework Engineering
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere tools
 
Framework Engineering_Final
Framework Engineering_FinalFramework Engineering_Final
Framework Engineering_Final
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
 
Private cloud in a box
Private cloud in a boxPrivate cloud in a box
Private cloud in a box
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
SAF 2008 - Analysis and Architecture
SAF 2008 - Analysis  and ArchitectureSAF 2008 - Analysis  and Architecture
SAF 2008 - Analysis and Architecture
 
Documenting Software Architectures
Documenting Software ArchitecturesDocumenting Software Architectures
Documenting Software Architectures
 
Odi ireland rittman
Odi ireland rittmanOdi ireland rittman
Odi ireland rittman
 
Services oriented architecture
Services oriented architectureServices oriented architecture
Services oriented architecture
 

Plus de WSO2

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Fueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsFueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected Products
WSO2
 
A Reference Methodology for Agile Digital Businesses
 A Reference Methodology for Agile Digital Businesses A Reference Methodology for Agile Digital Businesses
A Reference Methodology for Agile Digital Businesses
WSO2
 

Plus de WSO2 (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
How to Create a Service in Choreo
How to Create a Service in ChoreoHow to Create a Service in Choreo
How to Create a Service in Choreo
 
Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023
 
Platform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzurePlatform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on Azure
 
GartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfGartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdf
 
[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in Minutes[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in Minutes
 
Modernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos IdentityModernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos Identity
 
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
 
CIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfCIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdf
 
Delivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoDelivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing Choreo
 
Fueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsFueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected Products
 
A Reference Methodology for Agile Digital Businesses
 A Reference Methodology for Agile Digital Businesses A Reference Methodology for Agile Digital Businesses
A Reference Methodology for Agile Digital Businesses
 
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
 
Lessons from the pandemic - From a single use case to true transformation
 Lessons from the pandemic - From a single use case to true transformation Lessons from the pandemic - From a single use case to true transformation
Lessons from the pandemic - From a single use case to true transformation
 
Adding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesAdding Liveliness to Banking Experiences
Adding Liveliness to Banking Experiences
 
Building a Future-ready Bank
Building a Future-ready BankBuilding a Future-ready Bank
Building a Future-ready Bank
 
WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021
 
[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs
 
[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment
 

Dernier

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Practical SOA for the Solution Architect

  • 1. Practical SOA for the Solution Architect Ganesh Prasad Consultant Architect, WSO2 Australia, October 2011
  • 2. About the Presenter ● Consultant Architect with WSO2 ● 24+ years in IT ● 10+ years of SOA-related experience ● Extensive experience working at SOA end-user organisations ● On design review committees for many solution designs ● Ideas for lightweight method came out of practical experience Oct 25, 2011 2
  • 3. Target Audience ● The Solution Architect ● Understands business requirements as provided by the Business Analyst (BA) ● Produces High-Level Solution Designs to be fleshed out and implemented by development teams ● Identifies existing (legacy) components that can be reused ● Identifies new components that need to be procured or developed ● Specifies integration of existing and new components to meet business need ● Anyone else with an interest in end-to-end solution design involving integration of applications and systems Oct 25, 2011 3
  • 4. Why “Practical SOA”? ● Some IT practitioners think SOA is a buzzword that is now passé ● Some understand the concept of “loose coupling” in theory but don't know how to apply it in practical situations ● Some think that just using a “SOA Product” like an ESB is sufficient to “do SOA”. ● In practice, many ostensibly “SOA-based” designs running on SOA Products are tightly-coupled, violating the spirit of SOA. ● We need to re-educate Solution Architects about SOA ● We need an approach that is simple to understand and easy to apply – hence “Practical SOA”. Oct 25, 2011 4
  • 5. The Two Layers of a Solution Design Elimination of Unnecessary Decoupling of Message Data Dependencies from Domain Data Implicit assumptions and Common vocabulary dependencies made explicit (within practical limits) Solution Architects are responsible for designing this layer. SOA products support, The Data Layer but do not guide, this design. Required for loosely-coupled interoperability SOA products support loose coupling at this layer, but Solution Architects must The Technology Layer choose the right tools and patterns from the offering. Standardised Wire Protocol Standardised Qualities of Service (e.g., SOAP, HTTP) (e.g., Security, Reliability) Standardised Data Encoding Standardised Message Exchange Patterns (e.g., XML, JSON) (e.g., Request/response, One-way) ● Solution Architects must choose the right tool for the job at the Technology Layer ● They must ensure loose coupling at the Data Layer to avoid negating the investments at the Technology Layer Oct 25, 2011 5
  • 6. The Three Core Components at the Technology Layer ● The Service Container ● The Broker ● The Process Coordinator Oct 25, 2011 6
  • 7. The Service Container The business requirement demands a component: ● that does not yet exist ● is not available off the shelf ● must be developed in-house Desirable to expose this new component's functionality in a reusable way A Service Container is what you need to host this logic Service Custom logic Consumer Service interface Service Container Oct 25, 2011 7
  • 8. The Broker In practice, solution must be able to exploit pieces of logic or data that already exist somewhere in the organisation, within some legacy system or application. Possible complications: ● Legacy component speaks a specialised or proprietary protocol. Use an adapter to translate proprietary protocols into more open ones. ● The data is not in the right format for you to use. Use a transformer to enrich data and massage it into a more usable form. ● Need to hide, proxy or throttle access to legacy data or app. Use a mediator. Oct 25, 2011 8
  • 9. The Broker, cont'd A Broker component performs the functions of an adapter, a transformer and a mediator. “Transformer” “Adapter” Proprietary Service interface logic logic Legacy Service interface (“Mediator” function) component Consumer Broker Oct 25, 2011 9
  • 10. The Process Coordinator Sometimes you don't know what you need in advance. To pull components together dynamically, based on a run-time status, you need a Process Coordinator. It can decide which automated and human tasks to invoke at each step of the process, and make these decisions dynamically. Individual services (Process steps) Service Process logic Service interface Consumer for the process Process Coordinator Oct 25, 2011 10
  • 11. Supporting Components The Service Container, Broker and Process Coordinator are often sufficient for a basic solution design. But some components can refine a solution with specialised functionality. ● Rules ● Data Access ● Registry/Repository ● Governance Support ● Activity Monitoring ● Complex Event Processing ● Presentation Support ● Identity and Access Management Oct 25, 2011 11
  • 13. Common Broker-related Mistake #1 “When All You Have is a Hammer, the Whole World Looks Like a Nail” Brokers are very powerful and have many extensions, but... ● Do not use a Broker in place of a Service Container by hosting business logic ● Do not use a Broker in place of a Process Coordinator by hosting coordination logic Use the right tools for the job - ensure that developers are equally proficient in the use of all three core SOA components Oct 25, 2011 13
  • 14. Common Broker-related Mistake #2 A Broker is not a Singleton, Centralised Component Some commercial Brokers are expensive. Temptation for a hub-and-spokes architecture – i.e., install just one Broker instance for the entire organisation and push all traffic through it Implications: Performance (scalability) and Availability (single point of failure) A decentralised or “federated” architecture is better, and ties in very well with a pragmatic data model. Service Container Service Container Legacy Process Service Broker Coordinator Provider Broker Broker Legacy Legacy Service Service Consumer Provider Oct 25, 2011 14
  • 15. A Data Design Example A business application needs to store documents (files) alongside structured data. It can hold references to the locations of these documents but not the document files themselves. An Enterprise Content Management (ECM) system can store the documents themselves. When a document is checked into the ECM, it returns a document ID. If a document ID is presented to the ECM, the corresponding document is retrieved. How can the business application interface with the ECM? Would the design below suffice? Proprietary API to check in Service interface to check and retrieve documents in and retrieve documents Broker Business ECM Application System Oct 25, 2011 15
  • 16. Data Design Example – Analysis The simplistic design fails for many reasons: ● Document IDs are unique only within an ECM instance, not globally. ● There are many instances of ECM – which one is implied? ● Need for business app to store implicit information – ECM instance ID ● ECM instance ID is assumed to be a surrogate for the application – metadata transformation is done based on the ECM instance ID. Implications: ● Too many instances of ECM – licence and operational costs ● Cannot load-balance multiple ECM instances for high-volume applications ● Cannot share an ECM instance between low-volume applications ● Cannot move a document from one ECM instance to another ● Cannot implement flexible archiving strategies This tightly-coupled solution is not SOA-compliant even though it uses the right component (a Broker) at the technology layer. Oct 25, 2011 16
  • 17. Design Design Example – One Solution ● Remove implicit knowledge of ECM instance – get it from a rules engine. ● Remove unwarranted dependency of transformation logic on ECM instance – get it from a rules engine. ● Decouple business applications from instance-specific Document IDs – use a mapping to a global ID. ● Control the steps using a Process Coordinator in front of the Broker. Rules Engine 2. Determine correct ECM instance 1. Invoke Document and transformation logic required, Checkin Process passing passing document metadata document and document metadata ECM Business System Application 3. Check document into correct ECM 5. Return globally instance specifying transformation logic, unique ID for obtain instance-specific document ID application to store 4. Generate globally unique ID and store mapping of this to Data the ECM instance and the instance-specific document ID ID Mapping Database Service Oct 25, 2011 17
  • 18. Data Layer Principles Lessons learnt: ● Identify Dependencies, Explicit and Implicit. Make all Implicit Dependencies Explicit ● Eliminate Unnecessary Dependencies ● Map Domain Data to Message Data (Do Not Derive or Generate) ● Develop a Sane Data Model for Message Data (Intermediate granularity) Oct 25, 2011 18
  • 19. Impractical Approach – Boiling the Ocean in Search of a Canonical Data Model (and Suffering the Performance and Availability Drawbacks of a Centralised Broker) Risk Retail Institutional Management Banking Deposits Banking Division Division Treasury Loans Bond trading Centralised Broker Credit Cards Canonical Data Model for the Bank Portfolio * All interactions between systems Wrap Management go through a centralised Broker. products * All data is translated by the Wealth Broker to/from a single canonical Management data model and the various data Division models understood by individual systems. Oct 25, 2011 19
  • 20. Pragmatic Approach – A Federated Data Model Based on Logical Domains, and a Correspondingly Federated Broker Configuration Deposits Retail Risk Banking Institutional Management Data Model Banking Loans Data Model Treasury Bond Domain Broker trading Domain Broker Credit Cards No Canonical Data Model for the Bank * A Domain Broker enforces a Domain Data Model for a group of related systems. * External systems see a consistent Data Model (but different from their own) Domain Broker when interacting with any service exposed through a Domain Broker and hosted on systems within that domain. Portfolio Wrap Management products * It is the responsibility of systems to understand other data models when Wealth interaction crosses domain boundaries Management (which is relatively rare). Local Domain Data Model Brokers perform any required translations. Oct 25, 2011 20
  • 21. Industry Example 1 – Banking Opening an account: After verifying identity, check customer database to see if person is an existing customer. If not, generate a fresh customer number. Generate a new account number on mainframe system. If new customer, requisition the cards system to issue a new debit card and have it linked to the account. If existing customer, link new account to existing debit card. The card system makes a request to a PIN mailer to have a PIN sent to the customer. Oct 25, 2011 21
  • 22. Industry Example 1 – Solution Bank Account Opening – High-Level Solution Design Showing SOA Components SQL Customer Data Customer Services Database Customer Data Access Account opening 1. Check if existing customer, Presentation process 2. Create customer support Account Opening Front-end 3. Create account, A. Open 4. Link card to account Branch officer account COBOL-XML Queue COBOL copybook transformation adapter over MQ Mainframe 5. Issue Account card Services Transformation to Vendor-provided bank schema Web Services Existing proprietary link SOAP/ Card PIN HTTP System Mailer Card Services Oct 25, 2011 22
  • 23. Industry Example 2 – Insurance Providing a quote, converting a quote to a policy: Insurance brokers ask for quotes from insurance companies on behalf of their customers. Customers may select the best quote and place an order to purchase a policy. At an insurance company, a rules engine determines the quote based on the customer's and product's details. If it's a borderline case, it escalates to a human underwriter who makes a decision and communicates it back to the broker. Once a quote is provided, it is recorded on a mainframe system. The broker's front-end application gathers quotes from insurance companies and presents them on a screen. When informed of the quotes, the customer may purchase one. The broker places an order for the quote. The insurance company processes the payment through an external payment gateway. It then converts the quote recorded on the mainframe to a policy. Oct 25, 2011 23
  • 24. Industry Example 2 – Solution Insurance Quotes – High-Level Solution Design Showing SOA Components Underwriter Quote Inbox Decisioning Client Rules A1. Get quote decision Underwriter Underwriter Presentation Underwriting Data support application Services Broker Underwriter Front-end A2. Refer quote Front-end Application A5. Get decisions Application A3. Get referrals, Presentation A. Get quote, A4. Update decision Broker support B. Purchase policy A8. Get quotes B1. Make payment Service Provider A7. Notify quote Interface Payment Gateway Broker Payment Service Data Services COBOL-XML Queue COBOL copybook A6. Register quote, transformation adapter over MQ B2. Convert quote to policy Mainframe Broker Inbox Policy Services Oct 25, 2011 24
  • 25. Summary and Conclusions The success of SOA depends on the Solution Architect. The Solution Architect must pay attention to the Technology Layer as well as the Data Layer of a solution design. Technology Layer – Use the right tool for the job (Service Container, Broker and Process Coordinator), supplement with supporting components as appropriate. Steer clear of the common Broker-related design mistakes. Data Layer – Remember 4 principles: 1. Make all implicit dependencies explicit 2. Remove unnecessary dependencies, put all legitimate ones into the contract 3. Loosely couple message data with domain data – do not derive or generate one from the other 4. Choose an intermediate level of granularity for data models – neither too coarse-grained nor fine-grained Study industry examples to make these concepts real. Oct 25, 2011 25