Enterprise Service Bus Part 2

Return on Intelligence
Return on IntelligenceReturn on Intelligence
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
1 of 33

Recommended

03.egovFrame Runtime Environment Training Book by
03.egovFrame Runtime Environment Training Book03.egovFrame Runtime Environment Training Book
03.egovFrame Runtime Environment Training BookChuong Nguyen
1.3K views38 slides
8 soa technisch perspectief by
8 soa technisch perspectief8 soa technisch perspectief
8 soa technisch perspectiefDan Kamminga
742 views21 slides
Exchange Server 2013 Architecture Deep Dive, Part 2 by
Exchange Server 2013 Architecture Deep Dive, Part 2 Exchange Server 2013 Architecture Deep Dive, Part 2
Exchange Server 2013 Architecture Deep Dive, Part 2 Microsoft TechNet - Belgium and Luxembourg
6.2K views52 slides
TDC 2011: OSGi-enabled Java EE Application by
TDC 2011: OSGi-enabled Java EE ApplicationTDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE ApplicationArun Gupta
1.6K views56 slides
Java Summit Chennai: Java EE 7 by
Java Summit Chennai: Java EE 7Java Summit Chennai: Java EE 7
Java Summit Chennai: Java EE 7Arun Gupta
1.4K views49 slides
OpenTravel Advisory Forum 2012 XML Object Suite Lab by
OpenTravel Advisory Forum 2012 XML Object Suite LabOpenTravel Advisory Forum 2012 XML Object Suite Lab
OpenTravel Advisory Forum 2012 XML Object Suite LabOpenTravel Alliance
2.9K views63 slides

More Related Content

Similar to Enterprise Service Bus Part 2

Enterprise service bus part 2 by
Enterprise service bus part 2Enterprise service bus part 2
Enterprise service bus part 2Return on Intelligence
635 views33 slides
Enterprise Service Bus Part 1 by
Enterprise Service Bus Part 1Enterprise Service Bus Part 1
Enterprise Service Bus Part 1Return on Intelligence
1.1K views35 slides
Mike Taulty OData (NxtGen User Group UK) by
Mike Taulty OData (NxtGen User Group UK)Mike Taulty OData (NxtGen User Group UK)
Mike Taulty OData (NxtGen User Group UK)ukdpe
1.2K views26 slides
Enterprise service bus part 2 by
Enterprise service bus part 2Enterprise service bus part 2
Enterprise service bus part 2Return on Intelligence
544 views33 slides
20100907 fuse-community-evening-adrian-trenaman-no-logo by
20100907 fuse-community-evening-adrian-trenaman-no-logo20100907 fuse-community-evening-adrian-trenaman-no-logo
20100907 fuse-community-evening-adrian-trenaman-no-logoAdrian Trenaman
1.3K views41 slides
Exchange 2013 ABC's: Architecture, Best Practices and Client Access by
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 AccessMicrosoft TechNet - Belgium and Luxembourg
16K views80 slides

Similar to Enterprise Service Bus Part 2(20)

Mike Taulty OData (NxtGen User Group UK) by ukdpe
Mike Taulty OData (NxtGen User Group UK)Mike Taulty OData (NxtGen User Group UK)
Mike Taulty OData (NxtGen User Group UK)
ukdpe1.2K views
20100907 fuse-community-evening-adrian-trenaman-no-logo by Adrian Trenaman
20100907 fuse-community-evening-adrian-trenaman-no-logo20100907 fuse-community-evening-adrian-trenaman-no-logo
20100907 fuse-community-evening-adrian-trenaman-no-logo
Adrian Trenaman1.3K views
Windows Azure [R]Evolution - Applications Integration with Azure Service Bus ... by Sandro Pereira
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 Pereira3.9K views
Make easier Integration of your services with Fuse Solutions - RedHat 2013 by Charles Moulliard
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
Charles Moulliard3.5K views
Introduction to the Azure Service Bus EAI & EDI featuresiedi features by Sandro Pereira
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
Sandro Pereira5.2K views
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks by ukdpe
Mike Taulty MIX10 Silverlight 4 Patterns FrameworksMike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
ukdpe664 views
A Workhorse Named Mule by David Dossot
A Workhorse Named MuleA Workhorse Named Mule
A Workhorse Named Mule
David Dossot1.6K views
Understanding the WSO2 Platform and Technology by WSO2
Understanding the WSO2 Platform and TechnologyUnderstanding the WSO2 Platform and Technology
Understanding the WSO2 Platform and Technology
WSO23K views

More from Return on Intelligence

Profsoux2014 presentation by Pavelchuk by
Profsoux2014 presentation by PavelchukProfsoux2014 presentation by Pavelchuk
Profsoux2014 presentation by PavelchukReturn on Intelligence
780 views21 slides
Agile Project Grows by
Agile Project GrowsAgile Project Grows
Agile Project GrowsReturn on Intelligence
884 views27 slides
Types of testing and their classification by
Types of testing and their classificationTypes of testing and their classification
Types of testing and their classificationReturn on Intelligence
12.8K views42 slides
Time Management by
Time ManagementTime Management
Time ManagementReturn on Intelligence
954 views37 slides
Service design principles and patterns by
Service design principles and patternsService design principles and patterns
Service design principles and patternsReturn on Intelligence
4.2K views56 slides
Differences between Testing in Waterfall and Agile by
Differences between Testing in Waterfall and AgileDifferences between Testing in Waterfall and Agile
Differences between Testing in Waterfall and AgileReturn on Intelligence
30.4K views21 slides

More from Return on Intelligence(20)

Организация внутренней системы обучения by Return on Intelligence
Организация внутренней системы обученияОрганизация внутренней системы обучения
Организация внутренней системы обучения
Оценка задач выполняемых по итеративной разработке by Return on Intelligence
Оценка задач выполняемых по итеративной разработкеОценка задач выполняемых по итеративной разработке
Оценка задач выполняемых по итеративной разработке

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