Composite SOA Frameworks                                Evgeny Epifantsev                                  December 2009  ...
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.            Exige...
Enterprise Service Bus  Phone with wap - WXML/HTTP                                    SAP - BAPI      .NET - SOAP/HTTP    ...
ESB capabilities                Message              Message                                                             P...
Routing: UDDI     Exigen Services confidential
UDDI – service routing                                       4                                   3               1        ...
UDDI summaryUniversal Description, Discovery and Integration UDDI provides a standards-based set of specifications for se...
Service routing(Versions)                                                MakeOrder (Person person)WSDL v1                 ...
Service mapping (Person)                                                      MakeOrder (Person person)   WSDL            ...
Service mapping (Name , Address)                                                        MakeOrder (Person person)   WSDL  ...
Modules List           protocol            Message        message           routing       Transaction        transformatio...
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 archit...
JBI                                     jbi.xml - installation descriptor define a unique                                 ...
JBI Specification architecture  BC – Binding components                  SE – Service EngineWSDL       WSDL               ...
JBI Specification architecture  Java / Swing               Java / EJB     ServletWSDLWSDL                      Standard   ...
JBI summaryJBI advantages and the effect on commercial ESBs Third party Custom Service Engines (SE) and Binding Component...
Component container: OSGI      Exigen Services confidential
OSGI - Open Services Gateway Initiative                 high cohesion                             low coupling Make someth...
Architecturelow coupling     high cohesion                Bundle life cycle:  INSTALLED, RESOLVED,                        ...
Environment (pax runner) com.springsource.instrumented.org.springframework.context.instrumented com.springsource.instrumen...
OSGI summary  • Every bundle has his own class space. All data in bundle are private  • Bundle repository. Public only int...
Component containers: SCA      Exigen Services confidential
SCA -Service Component ArchitectureSCA - is a set of OASIS specifications which describe a model for buildingapplications ...
SCA structure  BEA, IBM, IONA, Oracle, SAP, Siebel Systems и SybaseZIP                service                Reference    ...
SCA application structure      Exigen Services confidential   28
SCA runtime  No specs how SCA should be implemented -  Several vendors Tuscany and Fabric3 , IBM …         Exigen Services...
SCA vs OSGI vs JBIJBI vs OSGI:OSGI – Declarative dependency management.       Low level integration. Mobile devicesJBI    ...
Requirements                                 IBM                                         OracleHardware                   ...
Projects and technologies                              JBI       SCA   OSGI   Custom    IBM WebSphere 7.0                 ...
Thank You!                          Questions?Exigen Services confidential           33
Upcoming SlideShare
Loading in …5
×

Enterprise Service Bus Part 2

1,458 views

Published on

Part 2 of webinar by Evgeniy Epifantsev

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,458
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Enterprise Service Bus Part 2

  1. 1. Composite SOA Frameworks Evgeny Epifantsev December 2009 Updated 2012Exigen Services confidential Exigen Services confidential
  2. 2. Trainer contacts• Evgeny Epifantsev• Developer• eepifantsev@exigenservices.com Exigen Services confidential 2
  3. 3. Goals ESB structure and technologies basis. ESB frameworks Exigen Services confidential 3
  4. 4. Agenda• Service mapping (ESB) and routing (UDDI)• Component containers: SCA/JBI/OSGi• ESB overview. Exigen Services confidential 4
  5. 5. Enterprise Service Bus Phone with wap - WXML/HTTP SAP - BAPI .NET - SOAP/HTTP External partner - SOAP/HTTPS ESB Service Requests Requests Service Responses ResponsesRequester Provider C++ - XML/JMS User application - RMI SAP - BAPI Database – SQL WebSphere 5.1 - SOAP/JMS Application - XML/JMS Exigen Services confidential 5
  6. 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. 7. Routing: UDDI Exigen Services confidential
  8. 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 UDDI2. Client call UDDI “I need service1, where is it?”3. UDDI search that service in repository and return service1 endpoint4. Client call service1 on endpoint was got from UDDI Exigen Services confidential
  9. 9. UDDI summaryUniversal Description, Discovery and Integration UDDI provides a standards-based set of specifications for service description anddiscovery. 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. 10. Service routing(Versions) MakeOrder (Person person)WSDL v1 WSDL 2 saveOrTradeOrder(Person person) Exigen Services confidential 10
  11. 11. Service mapping (Person) MakeOrder (Person person) WSDL 2Business service definition 3MakeOrder (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. 12. Service mapping (Name , Address) MakeOrder (Person person) WSDL 2Business service definitionMakeOrder (Person person) 3 give me endpoint 5 http://example.com/saveOrplaceOrder_v2 6 4 1 JavagetPersonAddr(Person person) publish saveOrTradeOrder(String name, String address) implementation service for saveOrTradeOrder(String name, String address) Exigen Services confidential 12
  13. 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. 14. Component containers: JBI Exigen Services confidential
  15. 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. 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. 17. JBI Specification architecture BC – Binding components SE – Service EngineWSDL WSDL Standard Can be open source Exigen Services confidential 17
  18. 18. JBI Specification architecture Java / Swing Java / EJB ServletWSDLWSDL Standard Can be open source Exigen Services confidential 18
  19. 19. JBI summaryJBI 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. 20. Component container: OSGI Exigen Services confidential
  21. 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. 22. Architecturelow coupling high cohesion Bundle life cycle: INSTALLED, RESOLVED, STARTING, ACTIVE,STOPPING, UNINSTALLEDBundle = JAR + modified MANIFEST.MF Name Version Dependency etc. Exigen Services confidential 22
  23. 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. 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. 25. Component containers: SCA Exigen Services confidential
  26. 26. SCA -Service Component ArchitectureSCA - is a set of OASIS specifications which describe a model for buildingapplications 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. 27. SCA structure BEA, IBM, IONA, Oracle, SAP, Siebel Systems и SybaseZIP service Reference Domain-defined communication property Bindings Webservice or other communication Exigen Services confidential 27
  28. 28. SCA application structure Exigen Services confidential 28
  29. 29. SCA runtime No specs how SCA should be implemented - Several vendors Tuscany and Fabric3 , IBM … Exigen Services confidential 29
  30. 30. SCA vs OSGI vs JBIJBI vs OSGI:OSGI – Declarative dependency management. Low level integration. Mobile devicesJBI – Standard messaging processing High level component integration. Container model for an Enterprise Service BusSCASCA – 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. 31. Requirements IBM OracleHardware Pentium at 2.4GHz or AMD Opteron (32-bit only) 1 GB physical memoryApplication Server IBM WebSphere Application Server 7.0 Oracle WebLogicJava IBM Java SDK 6.0 SR6IDE Integration DeveloperSupport 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 v3Data representation Service Message Object (extends SDO) XML, MFLDeployment EAR SCA, OSGI JBI, SCA, OSGI Exigen Services confidential 31
  32. 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. 33. Thank You! Questions?Exigen Services confidential 33

×