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
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
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
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
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
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
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