4. Agenda
• Service mapping (ESB) and routing (UDDI)
• Component containers: SCA/JBI/OSGi
• ESB overview.
Exigen Services confidential
4
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. 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
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. 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. 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. JBI Specification architecture
Exigen Services confidential
17
BC – Binding components SE – Service Engine
Standard Can be open source
WSDL
WSDL
18. JBI Specification architecture
Java / Swing Java / EJB Servlet
Exigen Services confidential
18
Standard Can be open source
WSDL
WSDL
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
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. 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
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
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. 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
29. SCA runtime
Exigen Services confidential
29
No specs how SCA should be implemented -
Several vendors Tuscany and Fabric3 , IBM …
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. 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