Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Enterprise service bus part 2

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
Net Services
Net Services
Chargement dans…3
×

Consultez-les par la suite

1 sur 33 Publicité

Plus De Contenu Connexe

Diaporamas pour vous (19)

Les utilisateurs ont également aimé (17)

Publicité

Similaire à Enterprise service bus part 2 (20)

Plus par Return on Intelligence (20)

Publicité

Plus récents (20)

Enterprise service bus part 2

  1. 1. Composite SOA Frameworks Evgeny Epifantsev December 2009 Updated 2012 Exigen Services confidential Exigen Services confidential
  2. 2. Trainer contacts • Evgeny Epifantsev • Developer • eepifantsev@exigenservices.com Exigen Services confidential 2
  3. 3. Exigen Services confidential Goals 3 ESB structure and technologies basis. ESB frameworks
  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 Exigen Services confidential 5 ESB Requests Responses Requests Responses Service Requester Service Provider Phone with wap - WXML/HTTP .NET - SOAP/HTTP C++ - XML/JMS SAP - BAPI WebSphere 5.1 - SOAP/JMS SAP - BAPI External partner - SOAP/HTTPS User application - RMI Database – SQL Application - XML/JMS
  6. 6. ESB capabilities Exigen Services confidential 6 Routing Message transformation Message enhancement Message processing Security Transaction management Service orchestration Process choreography Mapping service Protocol transformation BPM ESB part 1 Service Design Principles and Patterns SOA security Web security
  7. 7. Routing: UDDI Exigen Services confidential
  8. 8. UDDI – service routing 2 3 4 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 1
  9. 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. 10. Service routing(Versions) Exigen Services confidential 10 WSDL v1 MakeOrder (Person person) saveOrTradeOrder(Person person) WSDL 2
  11. 11. Service mapping (Person) Exigen Services confidential 11 WSDL Business service definition MakeOrder (Person person) MakeOrder (Person person) give me endpoint http://example.com/saveOrplaceOrder saveOrTradeOrder(Person person) Java publish implementation service for saveOrTradeOrder(Person person) 2 3 4 5 1
  12. 12. Service mapping (Name , Address) Exigen Services confidential 12 WSDL Business service definition MakeOrder (Person person) MakeOrder (Person person) give me endpoint http://example.com/saveOrplaceOrder_v2 publish saveOrTradeOrder(String name, String address) Java implementation service for saveOrTradeOrder(String name, String address) 2 3 4 5 6 getPersonAddr(Person person) 1
  13. 13. Modules List Script engine Security • Acegy • JAAS Exigen Services confidential 13 protocol transformation Message processing • ActiveMQ • JBossMQ • OracleAQ • MQ Series message transformation • xslt • Smooks • Doozer • Xquery • Oakland routing • Xpath • Eip engine • Camel Transaction • Email • XA • ftp • HTTP • JTA • TCP • CXF Service choreography Service orchestration • Groovy • jBPM • BEPL
  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. Exigen Services confidential JBI 16 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
  17. 17. JBI Specification architecture Exigen Services confidential 17 BC – Binding components SE – Service Engine Standard Can be open source WSDL WSDL
  18. 18. JBI Specification architecture Java / Swing Java / EJB Servlet Exigen Services confidential 18 Standard Can be open source WSDL WSDL
  19. 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. 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 Exigen Services confidential 21 Foo.jar Bar.jar Runtime class space Load into JVM Foo.jar Bar.jar • No borders between jar into JVM • Can’t use many versions of one library
  22. 22. Architecture Exigen Services confidential 22 low coupling high cohesion Bundle = JAR + modified MANIFEST.MF Name Version Dependency etc. Bundle life cycle: INSTALLED, RESOLVED, STARTING, ACTIVE,STOPPING, UNINSTALLED
  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 Exigen Services confidential 23 # 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
  24. 24. OSGI summary Exigen Services confidential 24 • 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
  25. 25. Component containers: SCA Exigen Services confidential
  26. 26. SCA -Service Component Architecture Component:  Implementation: Java, C++, BEPL …  Communication configuration: SCDL .composite file (Service Component Definition Language ) Exigen Services confidential 26 SCA - is a set of OASIS specifications which describe a model for building applications and systems using a Service-Oriented Architecture. <composite name="ExampleComposite" ...> <component name="Component1"> ... </component> <component name="Component2"> ... </component> <component name="Component3"> ... </component> </composite>
  27. 27. SCA structure Exigen Services confidential 27 BEA, IBM, IONA, Oracle, SAP, Siebel Systems и Sybase service Reference Domain-defined communication property Bindings Webservice or other communication ZIP
  28. 28. SCA application structure Exigen Services confidential 28
  29. 29. SCA runtime Exigen Services confidential 29 No specs how SCA should be implemented - Several vendors Tuscany and Fabric3 , IBM …
  30. 30. SCA vs OSGI vs JBI OSGI – Declarative dependency management. Exigen Services confidential 30 JBI vs OSGI: SCA Low level integration. Mobile devices JBI – Standard messaging processing High level component integration. Container model for an Enterprise Service Bus SCA – A model on how to assemble composite applications Language-independent Policy support Separate implementation and binding. Vendor lock-in Distributed heterogeneous system.
  31. 31. Requirements Exigen Services confidential 31 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 1.0. WS-Atomic Transactions SecureFTP; Oracle BPEL PM; 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
  32. 32. Projects and technologies Exigen Services confidential 32 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 +
  33. 33. Thank You! Questions? Exigen Services confidential 33

×