SlideShare a Scribd company logo
SOA Solution Patterns
     Asanka Abeysinghe,
     Architect, WSO2, Inc.
      asankaa@wso2.com
Introduction
This session provides an in-depth on how to implement
a SOA solution using basic elements of such an infra-
structure.
We will demonstrate mapping several enterprise SOA
patterns, to a few real world business requirements.
SOA implementation details will be discussed using
products from the WSO2 SOA platform.
Topics
   Introduction
   Patterns
   SOA Infrastructure
   Solution building roadmap
   Use-Case 1
   Use-Case 2
   Use-Case 3
   Enhancements
   Summary
   Q&A
Patterns
A generic solution for a common recurring
problem.
          Used it before
          Error proof
          Catalog to pick one
          Feel comfortable




                                 Real world - Technical
                                 Documented – Practical
SOA Patterns
                                  SA Patterns
OO Patterns


                 EAA Patterns




  EAI Patterns                              Other
                 OO - Object-Oriented
                 SA – Software Architecture
                 EAI – Ent. Application Integration
                 EAA – Ent. Application Architecture
SOA Infrastructure
Solution Building Roadmap

Requirements   Business Patterns Integration Patterns



                       Application Patterns



                         Runtime Patterns


                         Product Mappings
USE-Case-1              (Business Scenario)


A system has connected a service client and a service in P2P.
System is running on production.
Backend Service development team decided to bring bunch of
changes to the backend service(s).
 Secure the backend service.

 Change the service contract.

 Bring multiple services instead of the single service.


                       Change 
                       Again ?

                          Service Client/Frontend developers
                          PMs, Financial dept, HR Dept
USE-Case-1     (Pattern Mapping)


   Service Broker Pattern with ESB
   Pipes and Filters
       Transform
       Route
   Trusted Subsystems
   Functional Decomposition
   Service Encapsulation
USE-Case-1   (Implementation)




Pipes and filters
Route
Trusted subsystems
USE-Case-1     (Implementation) cont..




Pipes and filters                     Mediation
Route                                 DBLookup
Transform
USE-Case-1     (Implementation) cont..




Pipes and filters
Route
USE-Case-1             (Implementation) cont..




Pipes and filters
Route
Functional decomposition
Service encapsulation
USE-Case-2                (Business Scenario)

A service that hosted in a local network required to accept
requests from outside and need to validate the content outside
LAN before accepting.
Validations , virus scan and validate the content

                     Expose the service to
                           outside


                                             NO you can't
USE-Case-2         (Pattern Mapping)


   Service Firewall Pattern
   Protocol Bridging
USE-Case-2   (Implementation)




Service Firewall
Protocol bridging
USE-Case-3               (Business Scenario)

SOA infrastructure going to implement in an environment that
contains legacy systems and legacy databases that running for
a long time. Existing systems are error proof and the data is
valuable to make decisions.


                      Throw the old 
                    systems away......
           Data ?
                                         NO need of 
                                          SOA $$$$
USE-Case-3        (Pattern Mapping)


   MDM (Master Data Management)
    Pattern
   EDA (Event Driven Architecture)
USE-Case-3   (Implementation)




MDM
USE-Case-3   (Implementation) cont..




MDM
USE-Case-3   (Implementation) cont..




MDM
EDA
Enhancements
   Security
   Shared repository/ registry
   Governance
       Metadata
       Control
       Monitoring / Management
   Deployment
       Clustering – HA / LB
   Create your own patterns for your
    needs
       Business requirements
       Technical requirements
Lab Session
Summary
   Identify the business requirements.
   Map them to patterns.
   Pick the correct Middleware.
   Keep all stakeholders happy.
       Think about the ROI.
   Optimize the usage of the application(s).
   Apply SOA correctly.
       (>Business) (<Technical) requirements
       Architecture
       Programming Model
       Deployment
Thank You....

More Related Content

SOA Solution Patterns

  • 1. SOA Solution Patterns Asanka Abeysinghe, Architect, WSO2, Inc. asankaa@wso2.com
  • 2. Introduction This session provides an in-depth on how to implement a SOA solution using basic elements of such an infra- structure. We will demonstrate mapping several enterprise SOA patterns, to a few real world business requirements. SOA implementation details will be discussed using products from the WSO2 SOA platform.
  • 3. Topics  Introduction  Patterns  SOA Infrastructure  Solution building roadmap  Use-Case 1  Use-Case 2  Use-Case 3  Enhancements  Summary  Q&A
  • 4. Patterns A generic solution for a common recurring problem.  Used it before  Error proof  Catalog to pick one  Feel comfortable Real world - Technical Documented – Practical
  • 5. SOA Patterns SA Patterns OO Patterns EAA Patterns EAI Patterns Other OO - Object-Oriented SA – Software Architecture EAI – Ent. Application Integration EAA – Ent. Application Architecture
  • 7. Solution Building Roadmap Requirements Business Patterns Integration Patterns Application Patterns Runtime Patterns Product Mappings
  • 8. USE-Case-1 (Business Scenario) A system has connected a service client and a service in P2P. System is running on production. Backend Service development team decided to bring bunch of changes to the backend service(s).  Secure the backend service.  Change the service contract.  Bring multiple services instead of the single service. Change  Again ? Service Client/Frontend developers PMs, Financial dept, HR Dept
  • 9. USE-Case-1 (Pattern Mapping)  Service Broker Pattern with ESB  Pipes and Filters  Transform  Route  Trusted Subsystems  Functional Decomposition  Service Encapsulation
  • 10. USE-Case-1 (Implementation) Pipes and filters Route Trusted subsystems
  • 11. USE-Case-1 (Implementation) cont.. Pipes and filters Mediation Route DBLookup Transform
  • 12. USE-Case-1 (Implementation) cont.. Pipes and filters Route
  • 13. USE-Case-1 (Implementation) cont.. Pipes and filters Route Functional decomposition Service encapsulation
  • 14. USE-Case-2 (Business Scenario) A service that hosted in a local network required to accept requests from outside and need to validate the content outside LAN before accepting. Validations , virus scan and validate the content Expose the service to outside NO you can't
  • 15. USE-Case-2 (Pattern Mapping)  Service Firewall Pattern  Protocol Bridging
  • 16. USE-Case-2 (Implementation) Service Firewall Protocol bridging
  • 17. USE-Case-3 (Business Scenario) SOA infrastructure going to implement in an environment that contains legacy systems and legacy databases that running for a long time. Existing systems are error proof and the data is valuable to make decisions. Throw the old  systems away...... Data ? NO need of  SOA $$$$
  • 18. USE-Case-3 (Pattern Mapping)  MDM (Master Data Management) Pattern  EDA (Event Driven Architecture)
  • 19. USE-Case-3 (Implementation) MDM
  • 20. USE-Case-3 (Implementation) cont.. MDM
  • 21. USE-Case-3 (Implementation) cont.. MDM EDA
  • 22. Enhancements  Security  Shared repository/ registry  Governance  Metadata  Control  Monitoring / Management  Deployment  Clustering – HA / LB  Create your own patterns for your needs  Business requirements  Technical requirements
  • 24. Summary  Identify the business requirements.  Map them to patterns.  Pick the correct Middleware.  Keep all stakeholders happy.  Think about the ROI.  Optimize the usage of the application(s).  Apply SOA correctly.  (>Business) (<Technical) requirements  Architecture  Programming Model  Deployment