SlideShare una empresa de Scribd logo
1 de 33
Composite SOA Frameworks




                                Evgeny Epifantsev
                                  December 2009
                                   Updated 2012

Exigen Services confidential     Exigen Services confidential
Trainer contacts

• Evgeny Epifantsev
• Developer
• eepifantsev@exigenservices.com




       Exigen Services confidential   2
Goals


 ESB structure and technologies basis.
 ESB frameworks




         Exigen Services confidential    3
Agenda


•   Service mapping (ESB) and routing (UDDI)
•   Component containers: SCA/JBI/OSGi
•   ESB overview.




            Exigen Services confidential       4
Enterprise Service Bus

  Phone with wap - WXML/HTTP                                    SAP - BAPI



      .NET - SOAP/HTTP                               External partner - SOAP/HTTPS




                                              ESB
 Service         Requests                            Requests            Service
                Responses                           Responses
Requester                                                                Provider


        C++ - XML/JMS                                     User application - RMI


         SAP - BAPI                                          Database – SQL


   WebSphere 5.1 - SOAP/JMS                               Application - XML/JMS




               Exigen Services confidential                                          5
ESB capabilities


                Message              Message
                                                             Protocol      Message
             transformation        enhancement
                                                         transformation   processing
                                                                                      SOA
                                                                                     security
  Routing

                                                                          Security
                                                                             Web security
                                             ESB part 1
  Mapping                                  Service Design
   service                             Principles and Patterns

                                                                                BPM
             Transaction                                           Process
             management                                          choreography
                                             Service
                                           orchestration

        Exigen Services confidential                                                            6
Routing: UDDI



     Exigen Services confidential
UDDI – service routing
                                       4



                                   3               1


                             2




     Client wants to call service 1 (client doesn’t know service1 endpoint )
1.   All services are registered in UDDI
2.   Client call UDDI “I need service1, where is it?”
3.   UDDI search that service in repository and return service1 endpoint
4.   Client call service1 on endpoint was got from UDDI




                Exigen Services confidential
UDDI summary
Universal Description, Discovery and Integration

 UDDI provides a standards-based set of specifications for service description and
discovery. Extensible Markup Language (XML) which used for WSDL for describe services
 UDDI supports a highly flexible description of services with metainformation
(Service Layer Agreement)

 WS-SecurityPolicy




 Benefits:
  Simplify business-to-business (B2B) interaction
  Separate service from description
  Allow hot switch to other service location
  Providing Application Visibility at Design Time



             Exigen Services confidential
Service routing(Versions)

                                                MakeOrder (Person person)




WSDL v1                                              WSDL 2




              saveOrTradeOrder(Person person)


          Exigen Services confidential                             10
Service mapping (Person)

                                                      MakeOrder (Person person)


   WSDL
                                                2
Business service definition                                3
MakeOrder (Person person)                           give me endpoint



                                                    http://example.com/saveOrplaceOrder
                                                            4
                                                5
                                                                            1
                                                                                    Java
                                                                       publish




                     saveOrTradeOrder(Person person)             implementation service for
                                                                 saveOrTradeOrder(Person person)


                 Exigen Services confidential                                               11
Service mapping (Name , Address)

                                                        MakeOrder (Person person)


   WSDL
                                                2
Business service definition
MakeOrder (Person person)                           3 give me endpoint



                          5
                                                     http://example.com/saveOrplaceOrder_v2
                              6
                                                              4

                                                                              1    Java
getPersonAddr(Person person)                                             publish



                     saveOrTradeOrder(String name, String address)
                                                                        implementation service for
                                                     saveOrTradeOrder(String name, String address)

                 Exigen Services confidential                                                  12
Modules List


           protocol            Message        message           routing       Transaction
        transformation        processing   transformation

    •    Email           •   ActiveMQ      •    xslt           • Xpath           • XA
    •    ftp             •   JBossMQ       •    Smooks         • Eip engine
    •    HTTP            •   OracleAQ      •    Doozer         • Camel
    •    JTA             •   MQ Series     •    Xquery
    •    TCP                               •    Oakland
    •    CXF




                                                  Service            Service
        Script engine                          orchestration      choreography
                             Security
         • Groovy            • Acegy           • BEPL              • jBPM
                             • JAAS




            Exigen Services confidential                                                    13
Component containers: JBI



      Exigen Services confidential
JBI (JSR-208)

Java Business Integration (JBI) specification (Oracle)

 The goal of JBI is to create a standards-based architecture for integrating
  middleware components to perform ESB capabilities

 The JBI Specs is not concerned about how external consumers or service providers
  interact, but rather how internal consumers and providers interact

 JBI dependent on J2SE but not J2EE

 JBI defines two types of components
    - Service Engines (process choreography, transactions, security, message
      transformation, protocol transformation)
   - Binding components ( XML, HTTP, MQ, IIOP)




             Exigen Services confidential                                            15
JBI
                                     jbi.xml - installation descriptor define a unique
                                          component name and type along with the
                                          classpath settings that are required during
                                          installation and runtime of the component.




                                                        Life Cycle




      Exigen Services confidential                                                       16
JBI Specification architecture
  BC – Binding components                  SE – Service Engine



WSDL




       WSDL




                     Standard                                Can be open source


            Exigen Services confidential                                          17
JBI Specification architecture


  Java / Swing               Java / EJB     Servlet




WSDL




WSDL



                      Standard                    Can be open source


             Exigen Services confidential                              18
JBI summary

JBI advantages and the effect on commercial ESBs

 Third party Custom Service Engines (SE) and Binding Components (BC) can be
  swapped in and out without impacting applications or services

 Avoids “Vendor lock-in”

 We can swap in and out integration services (i.e. capabilities) we don’t need, creating
  a lighter-weight solution that meets our specific needs




             Exigen Services confidential                                              19
Component container: OSGI



      Exigen Services confidential
OSGI - Open Services Gateway Initiative


                 high cohesion                             low coupling
 Make something one, but done it perfect             How module interact with other modules



  Foo.jar                           Runtime class space

                                           Foo.jar
                                                          • No borders between jar into JVM
            Load into JVM

  Bar.jar                                                 • Can’t use many versions of one
                                           Bar.jar
                                                            library




            Exigen Services confidential                                                     21
Architecture
low coupling     high cohesion                Bundle life cycle:  INSTALLED, RESOLVED,
                                                STARTING, ACTIVE,STOPPING, UNINSTALLED




Bundle = JAR + modified MANIFEST.MF
                          Name
                          Version
                          Dependency
                          etc.




               Exigen Services confidential                                        22
Environment (pax runner)
 com.springsource.instrumented.org.springframework.context.instrumented
 com.springsource.instrumented.org.springframework.beans.instrumented
 com.springsource.management.com.springsource.management.agent.monitoring
 com.springsource.instrumentation.com.springsource.management.instrumentation.springframework.applicationcontext

 # Javax
 scan-bundle:mvn:javax.resource/com.springsource.javax.resource/1.5.0@5
 scan-bundle:mvn:javax.xml.ws/com.springsource.javax.xml.ws/2.1.1@5
 scan-bundle:mvn:javax.xml.bind/com.springsource.javax.xml.bind/2.1.7@5
 scan-bundle:mvn:javax.activation/com.springsource.javax.activation/1.1.1@5
 scan-undle:mvn:javax.xml.stream/com.springsource.javax.xml.stream/1.0.1@5
 scan-bundle:mvn:javax.xml.soap/com.springsource.javax.xml.soap/1.3.0@5
 scan-bundle:mvn:javax.wsdl/com.springsource.javax.wsdl/1.6.1@5
 scan-bundle:mvn:javax.servlet/com.springsource.javax.servlet/2.5.0@5
 scan-bundle:mvn:org.aopalliance/com.springsource.org.aopalliance/1.0.0@3
 scan-bundle:mvn:org.aspectj/com.springsource.org.aspectj.lib/1.5.4@3
 scan-bundle:mvn:org.aspectj/com.springsource.org.aspectj.runtime/1.5.4@3
 scan-bundle:mvn:com.springsource.instrumented/org.springframework.aop.instrumented/2.5.7.RELEASE@3
 scan-bundle:mvn:com.springsource.instrumented/org.springframework.beans.instrumented/2.5.7.RELEASE@3
 scan-bundle:mvn:com.springsource.instrumented/org.springframework.context.instrumented/2.5.7.RELEASE@3
 scan-bundle:mvn:com.springsource.instrumented/org.springframework.context.support.instrumented/2.5.7.RELEASE@3
 scan-bundle:mvn:com.springsource.instrumented/org.springframework.core.instrumented/2.5.7.RELEASE@3
 scan-bundle:mvn:com.springsource.instrumentation/com.springsource.management.instrumentation.springframework.context/…
 scan-bundle:mvn:com.springsource.instrumentation/com.springsource.management.instrumentation.springframework.application…
 scan-bundle:mvn:com.springsource.instrumentation/com.springsource.management.instrumentation.springframework.context.support
 scan-bundle:mvn:com.springsource.instrumentation/com.springsource.management.instrumentation.springframework.beans/…
 scan-bundle:mvn:com.springsource.management/com.springsource.management.agent.monitoring/2.5.7.RELEASE/@5
 scan-bundle:mvn:com.springsource.management/com.springsource.management.agent.config/2.5.7.RELEASE/@5
 scan-bundle:mvn:com.springsource.management/com.springsource.management.agent.control/2.5.7.RELEASE/@5
 scan-bundle:mvn:com.springsource.management/com.springsource.management.agent.inventory/2.5.7.RELEASE/@5
 scan-bundle:mvn:com.springsource.management/com.springsource.management.agent.discovery.domain/2.5.7.RELEASE/@5
 scan-bundle:mvn:com.springsource.management/com.springsource.management.agent.discovery.resource/2.5.7.RELEASE/@5



                 Exigen Services confidential                                                                                   23
OSGI summary

  • Every bundle has his own class space. All data in bundle are private

  • Bundle repository. Public only interfaces, not implementation

  • Can be many version of one bundle in one OSGI framework

  • Lifecycle management on the fly

  • Strictly naming conversion
      - bundle’s symbolic name
      - version number



  OSGI containers: Equinox , Apache Felix
  knopflerfish



          Exigen Services confidential                                     24
Component containers: SCA



      Exigen Services confidential
SCA -Service Component Architecture
SCA - is a set of OASIS specifications which describe a model for building
applications and systems using a Service-Oriented Architecture.




   Component:
    Implementation: Java, C++, BEPL …
    Communication configuration: SCDL .composite file
     (Service Component Definition Language )

   <composite name="ExampleComposite" ...>
   <component name="Component1"> ... </component>
   <component name="Component2"> ... </component>
   <component name="Component3"> ... </component>
   </composite>




            Exigen Services confidential                                     26
SCA structure
  BEA, IBM, IONA, Oracle, SAP, Siebel Systems и Sybase




ZIP




                service

                Reference               Domain-defined communication
                property

                Bindings                 Webservice or other communication



         Exigen Services confidential                                        27
SCA application structure




      Exigen Services confidential   28
SCA runtime




  No specs how SCA should be implemented -
  Several vendors Tuscany and Fabric3 , IBM …




         Exigen Services confidential           29
SCA vs OSGI vs JBI
JBI vs OSGI:
OSGI – Declarative dependency management.
       Low level integration. Mobile devices

JBI    – Standard messaging processing
         High level component integration.
         Container model for an Enterprise Service Bus

SCA


SCA – A model on how to assemble composite applications
      Language-independent
      Policy support
      Separate implementation and binding.
      Vendor lock-in
      Distributed heterogeneous system.


          Exigen Services confidential                    30
Requirements
                                 IBM                                         Oracle
Hardware                         Pentium at 2.4GHz or AMD Opteron (32-bit
                                 only)
                                 1 GB physical memory
Application Server               IBM WebSphere Application Server 7.0        Oracle WebLogic
Java                             IBM Java SDK 6.0 SR6

IDE                              Integration Developer

Support standards                JAXWS 2.1.1, JAXB 2.1.3, SAAJ 1.3 и StAX    SecureFTP; Oracle BPEL PM;
                                 1.0.
                                 WS-Atomic Transactions
                                 SOAP/HTTP и SOAP/JMS, SOAP 1.2, WSDL 1.1, SAP, Siebel, PeopleSoft, JMS,
                                 WebSphere MQ, SCA , REST, WS-BEPL
                                 WS-Addressing, WS-I Basic Profile V1.1, WS-Security, WS-Reliable Messaging 1.0,
                                 WS-Policy, UDDI v3


Data representation              Service Message Object (extends SDO)        XML, MFL

Deployment                       EAR

                                 SCA, OSGI                                   JBI, SCA, OSGI




                     Exigen Services confidential                                                                  31
Projects and technologies
                              JBI       SCA   OSGI   Custom
    IBM WebSphere 7.0                   +     +


    Eclipse Swordfish         +         +     +
    project 1.0


    OW2 PEtALS 3.1            +         +
    ServiceMix/Fuse 4.0       support         +
    OpenESB/GlassFish         +
    2.2
    Oracle ESB 11g            +         +     +
    JBoss ESB 4.10                                   +
    WSO2 3.0                                  +
    Mule 3.2.0                support                +




        Exigen Services confidential                          32
Thank You!

                          Questions?




Exigen Services confidential           33

Más contenido relacionado

Similar a Enterprise Service Bus Part 2

Mike Taulty OData (NxtGen User Group UK)
Mike Taulty OData (NxtGen User Group UK)Mike Taulty OData (NxtGen User Group UK)
Mike Taulty OData (NxtGen User Group UK)ukdpe
 
20100907 fuse-community-evening-adrian-trenaman-no-logo
20100907 fuse-community-evening-adrian-trenaman-no-logo20100907 fuse-community-evening-adrian-trenaman-no-logo
20100907 fuse-community-evening-adrian-trenaman-no-logoAdrian Trenaman
 
Windows Azure [R]Evolution - Applications Integration with Azure Service Bus ...
Windows Azure [R]Evolution - Applications Integration with Azure Service Bus ...Windows Azure [R]Evolution - Applications Integration with Azure Service Bus ...
Windows Azure [R]Evolution - Applications Integration with Azure Service Bus ...Sandro Pereira
 
DELL BOOMi CLOUD INTEGRATION ONLINE TRAINING
DELL BOOMi CLOUD INTEGRATION ONLINE TRAININGDELL BOOMi CLOUD INTEGRATION ONLINE TRAINING
DELL BOOMi CLOUD INTEGRATION ONLINE TRAININGGlory IT Technologies
 
Make easier Integration of your services with Fuse Solutions - RedHat 2013
Make easier Integration of your services with Fuse Solutions - RedHat 2013Make easier Integration of your services with Fuse Solutions - RedHat 2013
Make easier Integration of your services with Fuse Solutions - RedHat 2013Charles Moulliard
 
Large Scale Deployment of SOA-P
Large Scale Deployment of SOA-PLarge Scale Deployment of SOA-P
Large Scale Deployment of SOA-PC2B2 Consulting
 
Introduction to the Azure Service Bus EAI & EDI featuresiedi features
Introduction to the Azure Service Bus EAI & EDI featuresiedi featuresIntroduction to the Azure Service Bus EAI & EDI featuresiedi features
Introduction to the Azure Service Bus EAI & EDI featuresiedi featuresSandro Pereira
 
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns FrameworksMike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns Frameworksukdpe
 
A Workhorse Named Mule
A Workhorse Named MuleA Workhorse Named Mule
A Workhorse Named MuleDavid Dossot
 
Understanding the WSO2 Platform and Technology
Understanding the WSO2 Platform and TechnologyUnderstanding the WSO2 Platform and Technology
Understanding the WSO2 Platform and TechnologyWSO2
 

Similar a Enterprise Service Bus Part 2 (20)

Enterprise service bus part 2
Enterprise service bus part 2Enterprise service bus part 2
Enterprise service bus part 2
 
Enterprise Service Bus Part 1
Enterprise Service Bus Part 1Enterprise Service Bus Part 1
Enterprise Service Bus Part 1
 
Mike Taulty OData (NxtGen User Group UK)
Mike Taulty OData (NxtGen User Group UK)Mike Taulty OData (NxtGen User Group UK)
Mike Taulty OData (NxtGen User Group UK)
 
Enterprise service bus part 2
Enterprise service bus part 2Enterprise service bus part 2
Enterprise service bus part 2
 
20100907 fuse-community-evening-adrian-trenaman-no-logo
20100907 fuse-community-evening-adrian-trenaman-no-logo20100907 fuse-community-evening-adrian-trenaman-no-logo
20100907 fuse-community-evening-adrian-trenaman-no-logo
 
Exchange 2013 ABC's: Architecture, Best Practices and Client Access
Exchange 2013 ABC's: Architecture, Best Practices and Client AccessExchange 2013 ABC's: Architecture, Best Practices and Client Access
Exchange 2013 ABC's: Architecture, Best Practices and Client Access
 
Windows Azure [R]Evolution - Applications Integration with Azure Service Bus ...
Windows Azure [R]Evolution - Applications Integration with Azure Service Bus ...Windows Azure [R]Evolution - Applications Integration with Azure Service Bus ...
Windows Azure [R]Evolution - Applications Integration with Azure Service Bus ...
 
DELL BOOMi CLOUD INTEGRATION ONLINE TRAINING
DELL BOOMi CLOUD INTEGRATION ONLINE TRAININGDELL BOOMi CLOUD INTEGRATION ONLINE TRAINING
DELL BOOMi CLOUD INTEGRATION ONLINE TRAINING
 
SOAP Services
SOAP ServicesSOAP Services
SOAP Services
 
Make easier Integration of your services with Fuse Solutions - RedHat 2013
Make easier Integration of your services with Fuse Solutions - RedHat 2013Make easier Integration of your services with Fuse Solutions - RedHat 2013
Make easier Integration of your services with Fuse Solutions - RedHat 2013
 
Large Scale Deployment of SOA-P
Large Scale Deployment of SOA-PLarge Scale Deployment of SOA-P
Large Scale Deployment of SOA-P
 
Introduction to the Azure Service Bus EAI & EDI featuresiedi features
Introduction to the Azure Service Bus EAI & EDI featuresiedi featuresIntroduction to the Azure Service Bus EAI & EDI featuresiedi features
Introduction to the Azure Service Bus EAI & EDI featuresiedi features
 
Corba
CorbaCorba
Corba
 
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns FrameworksMike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
 
A Workhorse Named Mule
A Workhorse Named MuleA Workhorse Named Mule
A Workhorse Named Mule
 
Technical services Offer
Technical services OfferTechnical services Offer
Technical services Offer
 
Soa
SoaSoa
Soa
 
Soa
SoaSoa
Soa
 
Soa
SoaSoa
Soa
 
Understanding the WSO2 Platform and Technology
Understanding the WSO2 Platform and TechnologyUnderstanding the WSO2 Platform and Technology
Understanding the WSO2 Platform and Technology
 

Más de Return on Intelligence

Profsoux2014 presentation by Pavelchuk
Profsoux2014 presentation by PavelchukProfsoux2014 presentation by Pavelchuk
Profsoux2014 presentation by PavelchukReturn on Intelligence
 
Types of testing and their classification
Types of testing and their classificationTypes of testing and their classification
Types of testing and their classificationReturn on Intelligence
 
Service design principles and patterns
Service design principles and patternsService design principles and patterns
Service design principles and patternsReturn on Intelligence
 
Differences between Testing in Waterfall and Agile
Differences between Testing in Waterfall and AgileDifferences between Testing in Waterfall and Agile
Differences between Testing in Waterfall and AgileReturn on Intelligence
 
Организация внутренней системы обучения
Организация внутренней системы обученияОрганизация внутренней системы обучения
Организация внутренней системы обученияReturn on Intelligence
 
Shared position in a project: testing and analysis
Shared position in a project: testing and analysisShared position in a project: testing and analysis
Shared position in a project: testing and analysisReturn on Intelligence
 
Оценка задач выполняемых по итеративной разработке
Оценка задач выполняемых по итеративной разработкеОценка задач выполняемых по итеративной разработке
Оценка задач выполняемых по итеративной разработкеReturn on Intelligence
 
Successful interview for a young IT specialist
Successful interview for a young IT specialistSuccessful interview for a young IT specialist
Successful interview for a young IT specialistReturn on Intelligence
 

Más de Return on Intelligence (20)

Profsoux2014 presentation by Pavelchuk
Profsoux2014 presentation by PavelchukProfsoux2014 presentation by Pavelchuk
Profsoux2014 presentation by Pavelchuk
 
Agile Project Grows
Agile Project GrowsAgile Project Grows
Agile Project Grows
 
Types of testing and their classification
Types of testing and their classificationTypes of testing and their classification
Types of testing and their classification
 
Time Management
Time ManagementTime Management
Time Management
 
Service design principles and patterns
Service design principles and patternsService design principles and patterns
Service design principles and patterns
 
Differences between Testing in Waterfall and Agile
Differences between Testing in Waterfall and AgileDifferences between Testing in Waterfall and Agile
Differences between Testing in Waterfall and Agile
 
Windows Azure: Quick start
Windows Azure: Quick startWindows Azure: Quick start
Windows Azure: Quick start
 
Windows azurequickstart
Windows azurequickstartWindows azurequickstart
Windows azurequickstart
 
Организация внутренней системы обучения
Организация внутренней системы обученияОрганизация внутренней системы обучения
Организация внутренней системы обучения
 
Shared position in a project: testing and analysis
Shared position in a project: testing and analysisShared position in a project: testing and analysis
Shared position in a project: testing and analysis
 
Introduction to Business Etiquette
Introduction to Business EtiquetteIntroduction to Business Etiquette
Introduction to Business Etiquette
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
Оценка задач выполняемых по итеративной разработке
Оценка задач выполняемых по итеративной разработкеОценка задач выполняемых по итеративной разработке
Оценка задач выполняемых по итеративной разработке
 
Meetings arranging
Meetings arrangingMeetings arranging
Meetings arranging
 
How to develop your creativity
How to develop your creativityHow to develop your creativity
How to develop your creativity
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
The art of project estimation
The art of project estimationThe art of project estimation
The art of project estimation
 
Successful interview for a young IT specialist
Successful interview for a young IT specialistSuccessful interview for a young IT specialist
Successful interview for a young IT specialist
 
Risk Management
Risk ManagementRisk Management
Risk Management
 
Resolving conflicts
Resolving conflictsResolving conflicts
Resolving conflicts
 

Enterprise Service Bus Part 2

  • 1. Composite SOA Frameworks Evgeny Epifantsev December 2009 Updated 2012 Exigen Services confidential Exigen Services confidential
  • 2. Trainer contacts • Evgeny Epifantsev • Developer • eepifantsev@exigenservices.com Exigen Services confidential 2
  • 3. Goals ESB structure and technologies basis. ESB frameworks Exigen Services confidential 3
  • 4. Agenda • Service mapping (ESB) and routing (UDDI) • Component containers: SCA/JBI/OSGi • ESB overview. Exigen Services confidential 4
  • 5. Enterprise Service Bus Phone with wap - WXML/HTTP SAP - BAPI .NET - SOAP/HTTP External partner - SOAP/HTTPS ESB Service Requests Requests Service Responses Responses Requester Provider C++ - XML/JMS User application - RMI SAP - BAPI Database – SQL WebSphere 5.1 - SOAP/JMS Application - XML/JMS Exigen Services confidential 5
  • 6. ESB capabilities Message Message Protocol Message transformation enhancement transformation processing SOA security Routing Security Web security ESB part 1 Mapping Service Design service Principles and Patterns BPM Transaction Process management choreography Service orchestration Exigen Services confidential 6
  • 7. Routing: UDDI Exigen Services confidential
  • 8. UDDI – service routing 4 3 1 2 Client wants to call service 1 (client doesn’t know service1 endpoint ) 1. All services are registered in UDDI 2. Client call UDDI “I need service1, where is it?” 3. UDDI search that service in repository and return service1 endpoint 4. Client call service1 on endpoint was got from UDDI Exigen Services confidential
  • 9. UDDI summary Universal Description, Discovery and Integration  UDDI provides a standards-based set of specifications for service description and discovery. Extensible Markup Language (XML) which used for WSDL for describe services  UDDI supports a highly flexible description of services with metainformation (Service Layer Agreement)  WS-SecurityPolicy Benefits:  Simplify business-to-business (B2B) interaction  Separate service from description  Allow hot switch to other service location  Providing Application Visibility at Design Time Exigen Services confidential
  • 10. Service routing(Versions) MakeOrder (Person person) WSDL v1 WSDL 2 saveOrTradeOrder(Person person) Exigen Services confidential 10
  • 11. Service mapping (Person) MakeOrder (Person person) WSDL 2 Business service definition 3 MakeOrder (Person person) give me endpoint http://example.com/saveOrplaceOrder 4 5 1 Java publish saveOrTradeOrder(Person person) implementation service for saveOrTradeOrder(Person person) Exigen Services confidential 11
  • 12. Service mapping (Name , Address) MakeOrder (Person person) WSDL 2 Business service definition MakeOrder (Person person) 3 give me endpoint 5 http://example.com/saveOrplaceOrder_v2 6 4 1 Java getPersonAddr(Person person) publish saveOrTradeOrder(String name, String address) implementation service for saveOrTradeOrder(String name, String address) Exigen Services confidential 12
  • 13. Modules List protocol Message message routing Transaction transformation processing transformation • Email • ActiveMQ • xslt • Xpath • XA • ftp • JBossMQ • Smooks • Eip engine • HTTP • OracleAQ • Doozer • Camel • JTA • MQ Series • Xquery • TCP • Oakland • CXF Service Service Script engine orchestration choreography Security • Groovy • Acegy • BEPL • jBPM • JAAS Exigen Services confidential 13
  • 14. Component containers: JBI Exigen Services confidential
  • 15. JBI (JSR-208) Java Business Integration (JBI) specification (Oracle)  The goal of JBI is to create a standards-based architecture for integrating middleware components to perform ESB capabilities  The JBI Specs is not concerned about how external consumers or service providers interact, but rather how internal consumers and providers interact  JBI dependent on J2SE but not J2EE  JBI defines two types of components - Service Engines (process choreography, transactions, security, message transformation, protocol transformation) - Binding components ( XML, HTTP, MQ, IIOP) Exigen Services confidential 15
  • 16. JBI jbi.xml - installation descriptor define a unique component name and type along with the classpath settings that are required during installation and runtime of the component. Life Cycle Exigen Services confidential 16
  • 17. JBI Specification architecture BC – Binding components SE – Service Engine WSDL WSDL Standard Can be open source Exigen Services confidential 17
  • 18. JBI Specification architecture Java / Swing Java / EJB Servlet WSDL WSDL Standard Can be open source Exigen Services confidential 18
  • 19. JBI summary JBI advantages and the effect on commercial ESBs  Third party Custom Service Engines (SE) and Binding Components (BC) can be swapped in and out without impacting applications or services  Avoids “Vendor lock-in”  We can swap in and out integration services (i.e. capabilities) we don’t need, creating a lighter-weight solution that meets our specific needs Exigen Services confidential 19
  • 20. Component container: OSGI Exigen Services confidential
  • 21. OSGI - Open Services Gateway Initiative high cohesion low coupling Make something one, but done it perfect How module interact with other modules Foo.jar Runtime class space Foo.jar • No borders between jar into JVM Load into JVM Bar.jar • Can’t use many versions of one Bar.jar library Exigen Services confidential 21
  • 22. Architecture low coupling high cohesion Bundle life cycle: INSTALLED, RESOLVED, STARTING, ACTIVE,STOPPING, UNINSTALLED Bundle = JAR + modified MANIFEST.MF Name Version Dependency etc. Exigen Services confidential 22
  • 23. Environment (pax runner) com.springsource.instrumented.org.springframework.context.instrumented com.springsource.instrumented.org.springframework.beans.instrumented com.springsource.management.com.springsource.management.agent.monitoring com.springsource.instrumentation.com.springsource.management.instrumentation.springframework.applicationcontext # Javax scan-bundle:mvn:javax.resource/com.springsource.javax.resource/1.5.0@5 scan-bundle:mvn:javax.xml.ws/com.springsource.javax.xml.ws/2.1.1@5 scan-bundle:mvn:javax.xml.bind/com.springsource.javax.xml.bind/2.1.7@5 scan-bundle:mvn:javax.activation/com.springsource.javax.activation/1.1.1@5 scan-undle:mvn:javax.xml.stream/com.springsource.javax.xml.stream/1.0.1@5 scan-bundle:mvn:javax.xml.soap/com.springsource.javax.xml.soap/1.3.0@5 scan-bundle:mvn:javax.wsdl/com.springsource.javax.wsdl/1.6.1@5 scan-bundle:mvn:javax.servlet/com.springsource.javax.servlet/2.5.0@5 scan-bundle:mvn:org.aopalliance/com.springsource.org.aopalliance/1.0.0@3 scan-bundle:mvn:org.aspectj/com.springsource.org.aspectj.lib/1.5.4@3 scan-bundle:mvn:org.aspectj/com.springsource.org.aspectj.runtime/1.5.4@3 scan-bundle:mvn:com.springsource.instrumented/org.springframework.aop.instrumented/2.5.7.RELEASE@3 scan-bundle:mvn:com.springsource.instrumented/org.springframework.beans.instrumented/2.5.7.RELEASE@3 scan-bundle:mvn:com.springsource.instrumented/org.springframework.context.instrumented/2.5.7.RELEASE@3 scan-bundle:mvn:com.springsource.instrumented/org.springframework.context.support.instrumented/2.5.7.RELEASE@3 scan-bundle:mvn:com.springsource.instrumented/org.springframework.core.instrumented/2.5.7.RELEASE@3 scan-bundle:mvn:com.springsource.instrumentation/com.springsource.management.instrumentation.springframework.context/… scan-bundle:mvn:com.springsource.instrumentation/com.springsource.management.instrumentation.springframework.application… scan-bundle:mvn:com.springsource.instrumentation/com.springsource.management.instrumentation.springframework.context.support scan-bundle:mvn:com.springsource.instrumentation/com.springsource.management.instrumentation.springframework.beans/… scan-bundle:mvn:com.springsource.management/com.springsource.management.agent.monitoring/2.5.7.RELEASE/@5 scan-bundle:mvn:com.springsource.management/com.springsource.management.agent.config/2.5.7.RELEASE/@5 scan-bundle:mvn:com.springsource.management/com.springsource.management.agent.control/2.5.7.RELEASE/@5 scan-bundle:mvn:com.springsource.management/com.springsource.management.agent.inventory/2.5.7.RELEASE/@5 scan-bundle:mvn:com.springsource.management/com.springsource.management.agent.discovery.domain/2.5.7.RELEASE/@5 scan-bundle:mvn:com.springsource.management/com.springsource.management.agent.discovery.resource/2.5.7.RELEASE/@5 Exigen Services confidential 23
  • 24. OSGI summary • Every bundle has his own class space. All data in bundle are private • Bundle repository. Public only interfaces, not implementation • Can be many version of one bundle in one OSGI framework • Lifecycle management on the fly • Strictly naming conversion - bundle’s symbolic name - version number OSGI containers: Equinox , Apache Felix knopflerfish Exigen Services confidential 24
  • 25. Component containers: SCA Exigen Services confidential
  • 26. SCA -Service Component Architecture SCA - is a set of OASIS specifications which describe a model for building applications and systems using a Service-Oriented Architecture. Component:  Implementation: Java, C++, BEPL …  Communication configuration: SCDL .composite file (Service Component Definition Language ) <composite name="ExampleComposite" ...> <component name="Component1"> ... </component> <component name="Component2"> ... </component> <component name="Component3"> ... </component> </composite> Exigen Services confidential 26
  • 27. SCA structure BEA, IBM, IONA, Oracle, SAP, Siebel Systems и Sybase ZIP service Reference Domain-defined communication property Bindings Webservice or other communication Exigen Services confidential 27
  • 28. SCA application structure Exigen Services confidential 28
  • 29. SCA runtime No specs how SCA should be implemented - Several vendors Tuscany and Fabric3 , IBM … Exigen Services confidential 29
  • 30. SCA vs OSGI vs JBI JBI vs OSGI: OSGI – Declarative dependency management. Low level integration. Mobile devices JBI – Standard messaging processing High level component integration. Container model for an Enterprise Service Bus SCA SCA – A model on how to assemble composite applications Language-independent Policy support Separate implementation and binding. Vendor lock-in Distributed heterogeneous system. Exigen Services confidential 30
  • 31. Requirements IBM Oracle Hardware Pentium at 2.4GHz or AMD Opteron (32-bit only) 1 GB physical memory Application Server IBM WebSphere Application Server 7.0 Oracle WebLogic Java IBM Java SDK 6.0 SR6 IDE Integration Developer Support standards JAXWS 2.1.1, JAXB 2.1.3, SAAJ 1.3 и StAX SecureFTP; Oracle BPEL PM; 1.0. WS-Atomic Transactions SOAP/HTTP и SOAP/JMS, SOAP 1.2, WSDL 1.1, SAP, Siebel, PeopleSoft, JMS, WebSphere MQ, SCA , REST, WS-BEPL WS-Addressing, WS-I Basic Profile V1.1, WS-Security, WS-Reliable Messaging 1.0, WS-Policy, UDDI v3 Data representation Service Message Object (extends SDO) XML, MFL Deployment EAR SCA, OSGI JBI, SCA, OSGI Exigen Services confidential 31
  • 32. Projects and technologies JBI SCA OSGI Custom IBM WebSphere 7.0 + + Eclipse Swordfish + + + project 1.0 OW2 PEtALS 3.1 + + ServiceMix/Fuse 4.0 support + OpenESB/GlassFish + 2.2 Oracle ESB 11g + + + JBoss ESB 4.10 + WSO2 3.0 + Mule 3.2.0 support + Exigen Services confidential 32
  • 33. Thank You! Questions? Exigen Services confidential 33