SlideShare a Scribd company logo
Exigen Services confidential Exigen Services confidential
Composite SOA Frameworks
Evgeny Epifantsev
December 2009
Updated 2012
Exigen Services confidential
Trainer contacts
• Evgeny Epifantsev
• Developer
• eepifantsev@exigenservices.com
2
Exigen Services confidential
Goals
3
ESB structure and technologies basis.
ESB frameworks
Exigen Services confidential
Agenda
• Service mapping (ESB) and routing (UDDI)
• Component containers: SCA/JBI/OSGi
• ESB overview.
4
Exigen Services confidential
Enterprise Service Bus
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
Exigen Services confidential
ESB capabilities
6
Routing
Message
transformation
Message
enhancement
Security
Transaction
management Service
orchestration
Process
choreography
Message
processing
Mapping
service
Protocol
transformation
BPM
ESB part 1
Service Design
Principles and Patterns
SOA
security
Web security
Exigen Services confidential
Routing: UDDI
Exigen Services confidential
UDDI – service routing
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
2
3
4
1
Exigen Services confidential
UDDI summary
Benefits:
 Simplify business-to-business (B2B) interaction
 Separate service from description
 Allow hot switch to other service location
 Providing Application Visibility at Design Time
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
Exigen Services confidential
Service routing(Versions)
10
WSDL v1
MakeOrder (Person person)
saveOrTradeOrder(Person person)
WSDL 2
Exigen Services confidential
Service mapping (Person)
11
WSDL
Business service definition
MakeOrder (Person person)
MakeOrder (Person person)
saveOrTradeOrder(Person person)
Java
implementation service for
saveOrTradeOrder(Person person)
give me endpoint
http://example.com/saveOrplaceOrder
publish
2
3
4
5
1
Exigen Services confidential
Service mapping (Name , Address)
12
WSDL
Business service definition
MakeOrder (Person person)
MakeOrder (Person person)
saveOrTradeOrder(String name, String address)
Java
implementation service for
saveOrTradeOrder(String name, String address)
give me endpoint
http://example.com/saveOrplaceOrder_v2
publish
2
3
4
5
6
getPersonAddr(Person person)
1
Exigen Services confidential
Modules List
13
protocol
transformation
Message
processing
• ActiveMQ
• JBossMQ
• OracleAQ
• MQ Series
message
transformation
• xslt
• Smooks
• Doozer
• Xquery
• Oakland
routing
• Xpath
• Eip engine
• Camel
Transaction
• XA• Email
• ftp
• HTTP
• JTA
• TCP
• CXF
Service
choreography
• jBPM• Groovy
Script engine
Security
• Acegy
• JAAS
Service
orchestration
• BEPL
Exigen Services confidential
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)
15
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
Exigen Services confidential
JBI Specification architecture
17
BC – Binding components SE – Service Engine
Standard Can be open source
WSDL
WSDL
Exigen Services confidential
JBI Specification architecture
18
Standard Can be open source
WSDL
WSDL
Java / Swing Java / EJB Servlet
Exigen Services confidential
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
19
Exigen Services confidential
Component container: OSGI
Exigen Services confidential
OSGI - Open Services Gateway Initiative
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
low couplinghigh cohesion
Make something one, but done it perfect How module interact with other modules
Exigen Services confidential
Architecture
22
low coupling high cohesion
Bundle = JAR + modified MANIFEST.MF
Name
Version
Dependency
etc.
Bundle life cycle: INSTALLED, RESOLVED,
STARTING, ACTIVE,STOPPING, UNINSTALLED
Exigen Services confidential
Environment (pax runner)
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
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
OSGI summary
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
Exigen Services confidential
Component containers: SCA
Exigen Services confidential
SCA -Service Component Architecture
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>
Component:
 Implementation: Java, C++, BEPL …
 Communication configuration: SCDL .composite file
(Service Component Definition Language )
Exigen Services confidential
SCA structure
27
BEA, IBM, IONA, Oracle, SAP, Siebel Systems и Sybase
service
Reference Domain-defined communication
property
Bindings Webservice or other communication
ZIP
Exigen Services confidential
SCA application structure
28
Exigen Services confidential
SCA runtime
29
No specs how SCA should be implemented -
Several vendors Tuscany and Fabric3 , IBM …
Exigen Services confidential
SCA vs OSGI vs JBI
30
JBI vs OSGI:
SCA
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 – 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
Requirements
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
Exigen Services confidential
Projects and technologies
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 +
Exigen Services confidential
Thank You!
Questions?
33

More Related Content

PPTX
Enterprise Service Bus
PPT
Enterprise service bus(esb)
PPT
Enterprise service bus part 1
PPTX
ESB What it is?
PPTX
ESB Presentation
 
ODP
SOA & ESB Presentation
PPT
Introduction to Enterprise Service Bus
PDF
WSO2 ESB and SOA
Enterprise Service Bus
Enterprise service bus(esb)
Enterprise service bus part 1
ESB What it is?
ESB Presentation
 
SOA & ESB Presentation
Introduction to Enterprise Service Bus
WSO2 ESB and SOA

What's hot (19)

PDF
Service Oriented Architecture (SOA) [2/5] : Enterprise Service Bus
PPT
Oracle Service Bus vs. Oracle Enterprise Service Bus vs. BPEL
PDF
Enterprise Use Case - Selecting an Enterprise Service Bus
PDF
ESB and SOA
PPT
ESB Concepts
PDF
oracle-osb
PPTX
Overview of ESB at Azilen Tech Meetup
PPTX
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)
PPTX
SOA Suite 12c - Service Bus new features summary
PPT
Enterprise service bus
PDF
ESB Evaluation Framework
PPT
Overview of SOA and the role of ESB / OSB
PPTX
Biztalk ESB Toolkit Introduction
PDF
SoCal User Group Meeting 2013-05-06
PPTX
Windows Azure [R]Evolution - Applications Integration with Azure Service Bus ...
PPTX
WSO2Con USA 2015: WSO2 Integration Platform Deep Dive
PDF
Enterprise Service Bus and JBI
PPTX
WSO2 ESB - The Backbone of Integration
PDF
How the WSO2 ESB outperforms other major open source esb vendors
Service Oriented Architecture (SOA) [2/5] : Enterprise Service Bus
Oracle Service Bus vs. Oracle Enterprise Service Bus vs. BPEL
Enterprise Use Case - Selecting an Enterprise Service Bus
ESB and SOA
ESB Concepts
oracle-osb
Overview of ESB at Azilen Tech Meetup
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)
SOA Suite 12c - Service Bus new features summary
Enterprise service bus
ESB Evaluation Framework
Overview of SOA and the role of ESB / OSB
Biztalk ESB Toolkit Introduction
SoCal User Group Meeting 2013-05-06
Windows Azure [R]Evolution - Applications Integration with Azure Service Bus ...
WSO2Con USA 2015: WSO2 Integration Platform Deep Dive
Enterprise Service Bus and JBI
WSO2 ESB - The Backbone of Integration
How the WSO2 ESB outperforms other major open source esb vendors
Ad

Viewers also liked (7)

PPT
Enterprise service bus part 1
PPTX
Career development in exigen services
PPTX
Apache cassandra - future without boundaries (part2)
PPTX
Introduction to selenium web driver
PPTX
Apache cassandra - future without boundaries (part3)
PPTX
Anti patterns part 1
PPTX
Conflicts Resolving
Enterprise service bus part 1
Career development in exigen services
Apache cassandra - future without boundaries (part2)
Introduction to selenium web driver
Apache cassandra - future without boundaries (part3)
Anti patterns part 1
Conflicts Resolving
Ad

Similar to Enterprise service bus part 2 (20)

PPTX
Enterprise service bus part 2
PDF
Better Enterprise Integration With the WSO2 ESB 4.5.1
PDF
WildFly AppServer - State of the Union
PPT
Riding with camel
PDF
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
DOCX
PDF
AAI-1304 Technical Deep-Dive into IBM WebSphere Liberty
PPT
J2 ee architecture
ODP
IBM Impact session CICS & java a tale of liberty
PDF
A Hitchhiker's Guide to Cloud Native Java EE
PDF
A Hitchhiker's Guide to Cloud Native Java EE
PPTX
Java EE8 - by Kito Mann
DOC
Shyam pcf
PPTX
Oracle application container cloud back end integration using node final
PDF
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
PDF
Powering the Next Generation Services with Java Platform - Spark IT 2010
PDF
Travelling Light for the Long Haul - Ian Robinson
PDF
Travelling light for the long haul
PDF
Java Web Services [4/5]: Java API for XML Web Services
PDF
Java EE 與 雲端運算的展望
Enterprise service bus part 2
Better Enterprise Integration With the WSO2 ESB 4.5.1
WildFly AppServer - State of the Union
Riding with camel
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
AAI-1304 Technical Deep-Dive into IBM WebSphere Liberty
J2 ee architecture
IBM Impact session CICS & java a tale of liberty
A Hitchhiker's Guide to Cloud Native Java EE
A Hitchhiker's Guide to Cloud Native Java EE
Java EE8 - by Kito Mann
Shyam pcf
Oracle application container cloud back end integration using node final
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010
Travelling Light for the Long Haul - Ian Robinson
Travelling light for the long haul
Java Web Services [4/5]: Java API for XML Web Services
Java EE 與 雲端運算的展望

More from Return on Intelligence (20)

PPTX
Clean Code Approach
PPTX
Code Coverage
PPTX
Effective Communication in english
PPTX
Anti-patterns
PPTX
Database versioning with liquibase
PPTX
Effective Feedback
PPTX
English for Negotiations 2016
PPTX
Lean Software Development
PPT
Unit Tests? It is Very Simple and Easy!
PPTX
Quick Start to AngularJS
PPTX
Introduction to Backbone.js & Marionette.js
PPTX
Types of testing and their classification
PPTX
Introduction to EJB
PPTX
Apache cassandra - future without boundaries (part1)
PPTX
Apache maven 2. advanced topics
PPTX
Apache maven 2 overview
PPT
Jira as a test management tool
PPTX
Testing your code
PPT
Quality Principles
PPTX
Cross cultural communication
Clean Code Approach
Code Coverage
Effective Communication in english
Anti-patterns
Database versioning with liquibase
Effective Feedback
English for Negotiations 2016
Lean Software Development
Unit Tests? It is Very Simple and Easy!
Quick Start to AngularJS
Introduction to Backbone.js & Marionette.js
Types of testing and their classification
Introduction to EJB
Apache cassandra - future without boundaries (part1)
Apache maven 2. advanced topics
Apache maven 2 overview
Jira as a test management tool
Testing your code
Quality Principles
Cross cultural communication

Recently uploaded (20)

PPT
Introduction Database Management System for Course Database
PPTX
history of c programming in notes for students .pptx
PDF
top salesforce developer skills in 2025.pdf
PDF
medical staffing services at VALiNTRY
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Online Work Permit System for Fast Permit Processing
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Introduction to Artificial Intelligence
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
ai tools demonstartion for schools and inter college
Introduction Database Management System for Course Database
history of c programming in notes for students .pptx
top salesforce developer skills in 2025.pdf
medical staffing services at VALiNTRY
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Online Work Permit System for Fast Permit Processing
How to Choose the Right IT Partner for Your Business in Malaysia
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
How Creative Agencies Leverage Project Management Software.pdf
Navsoft: AI-Powered Business Solutions & Custom Software Development
Introduction to Artificial Intelligence
Odoo Companies in India – Driving Business Transformation.pdf
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Softaken Excel to vCard Converter Software.pdf
PTS Company Brochure 2025 (1).pdf.......
How to Migrate SBCGlobal Email to Yahoo Easily
ISO 45001 Occupational Health and Safety Management System
ai tools demonstartion for schools and inter college

Enterprise service bus part 2

  • 1. Exigen Services confidential Exigen Services confidential Composite SOA Frameworks Evgeny Epifantsev December 2009 Updated 2012
  • 2. Exigen Services confidential Trainer contacts • Evgeny Epifantsev • Developer • eepifantsev@exigenservices.com 2
  • 3. Exigen Services confidential Goals 3 ESB structure and technologies basis. ESB frameworks
  • 4. Exigen Services confidential Agenda • Service mapping (ESB) and routing (UDDI) • Component containers: SCA/JBI/OSGi • ESB overview. 4
  • 5. Exigen Services confidential Enterprise Service Bus 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. Exigen Services confidential ESB capabilities 6 Routing Message transformation Message enhancement Security Transaction management Service orchestration Process choreography Message processing Mapping service Protocol transformation BPM ESB part 1 Service Design Principles and Patterns SOA security Web security
  • 8. Exigen Services confidential UDDI – service routing 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 2 3 4 1
  • 9. Exigen Services confidential UDDI summary Benefits:  Simplify business-to-business (B2B) interaction  Separate service from description  Allow hot switch to other service location  Providing Application Visibility at Design Time 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
  • 10. Exigen Services confidential Service routing(Versions) 10 WSDL v1 MakeOrder (Person person) saveOrTradeOrder(Person person) WSDL 2
  • 11. Exigen Services confidential Service mapping (Person) 11 WSDL Business service definition MakeOrder (Person person) MakeOrder (Person person) saveOrTradeOrder(Person person) Java implementation service for saveOrTradeOrder(Person person) give me endpoint http://example.com/saveOrplaceOrder publish 2 3 4 5 1
  • 12. Exigen Services confidential Service mapping (Name , Address) 12 WSDL Business service definition MakeOrder (Person person) MakeOrder (Person person) saveOrTradeOrder(String name, String address) Java implementation service for saveOrTradeOrder(String name, String address) give me endpoint http://example.com/saveOrplaceOrder_v2 publish 2 3 4 5 6 getPersonAddr(Person person) 1
  • 13. Exigen Services confidential Modules List 13 protocol transformation Message processing • ActiveMQ • JBossMQ • OracleAQ • MQ Series message transformation • xslt • Smooks • Doozer • Xquery • Oakland routing • Xpath • Eip engine • Camel Transaction • XA• Email • ftp • HTTP • JTA • TCP • CXF Service choreography • jBPM• Groovy Script engine Security • Acegy • JAAS Service orchestration • BEPL
  • 15. 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) 15
  • 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. Exigen Services confidential JBI Specification architecture 17 BC – Binding components SE – Service Engine Standard Can be open source WSDL WSDL
  • 18. Exigen Services confidential JBI Specification architecture 18 Standard Can be open source WSDL WSDL Java / Swing Java / EJB Servlet
  • 19. Exigen Services confidential 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 19
  • 21. Exigen Services confidential OSGI - Open Services Gateway Initiative 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 low couplinghigh cohesion Make something one, but done it perfect How module interact with other modules
  • 22. Exigen Services confidential Architecture 22 low coupling high cohesion Bundle = JAR + modified MANIFEST.MF Name Version Dependency etc. Bundle life cycle: INSTALLED, RESOLVED, STARTING, ACTIVE,STOPPING, UNINSTALLED
  • 23. Exigen Services confidential Environment (pax runner) 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 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
  • 24. Exigen Services confidential OSGI summary 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
  • 26. Exigen Services confidential SCA -Service Component Architecture 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> Component:  Implementation: Java, C++, BEPL …  Communication configuration: SCDL .composite file (Service Component Definition Language )
  • 27. Exigen Services confidential SCA structure 27 BEA, IBM, IONA, Oracle, SAP, Siebel Systems и Sybase service Reference Domain-defined communication property Bindings Webservice or other communication ZIP
  • 28. Exigen Services confidential SCA application structure 28
  • 29. Exigen Services confidential SCA runtime 29 No specs how SCA should be implemented - Several vendors Tuscany and Fabric3 , IBM …
  • 30. Exigen Services confidential SCA vs OSGI vs JBI 30 JBI vs OSGI: SCA 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 – A model on how to assemble composite applications Language-independent Policy support Separate implementation and binding. Vendor lock-in Distributed heterogeneous system.
  • 31. Exigen Services confidential Requirements 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. Exigen Services confidential Projects and technologies 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 +