Your SlideShare is downloading. ×
Enterprise Service Bus Part 2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Enterprise Service Bus Part 2

1,137
views

Published on

Part 2 of webinar by Evgeniy Epifantsev

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,137
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Composite SOA Frameworks Evgeny Epifantsev December 2009 Updated 2012Exigen 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 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. 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 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. 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. 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 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. 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. 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 EngineWSDL WSDL Standard Can be open source Exigen Services confidential 17
  • 18. JBI Specification architecture Java / Swing Java / EJB ServletWSDLWSDL Standard Can be open source Exigen Services confidential 18
  • 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. 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. 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. 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 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. 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. 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 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. 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. 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