4. Background
> Based on our work on Service Oriented
Infrastructure (SOI) at a US large federal agency
> Model Driven Solutions is a leading provider of
professional services and products that leverage
Services Oriented Architecture (SOA), Model
Driven Architecture (MDA) and the Semantic Web
techniques and standards.
4
5. Context
> Objectives
Establish principles and patterns for reuse, interoperability,
and agility
Elaborate the relationship of ESB and BPMS
Focus on Open source, open standard based ESB
More specially, Java EE5/JBI
> ESB Products
Apache ServiceMix v3.3 (IONA Fuse ESB 3.3.1.1)
OpenESB v2 (Sun Java Application Server 9.1 Update 2)
JBossESB 4.4 Plus
JBoss Application Server 4.2.3
JBossWS Metro Implementation 3.0.3
5
6. Java Business Integration
> JBI
Defined with in Java Community Process
JBI (JCP) as JSR 208
JBI Specification 1.0 published in 2005
Standard basis for a Java EE based ESB
Is a Standard for
ESB
> ESB
A pattern of middleware that unifies and
connects services, applications and
Is an Architectural Pattern for resources
SOA
> SOA
An architectural style for a community of
providers and consumers of services to
achieve mutual value
6
8. Approach
> Refactoring a J2EE Web Service Application for ESB
Reuse existing J2EE code
Leverage ESB services
Better Maintainability through policy management
> As-Is Application
J2EE Web Service Deployed as a WAR file
> To-Be Application: (JBI) Composite Application
Expose the same functional Web Service interface
Separate infrastructure concerns from business logic
Leverage components from Open Source communities
8
9. To-be Application Architecture
> Mapping to ESB-specific
components
JBI Composite Application
> Issue: SOAP/HTTP Other
ESB Implementations rely Binding Component
Security
Binding Components
File
on Web Service Stacks Reliable Messaging
WS Transaction
Email
FTP
A Web Service Stack Service Engine
ESB
Service Engine Service Engine
provides both the web
service endpoint and the Transactional
Process Flow
Transactional
Service
Validation
Logic
service container contract
9
10. Java API for XML-based Web Services
(JAX-WS)
> Standard for developing SOAP based and RESTful Java
Web services.
Designed to replace JAX-RPC
Release in 2006, currently version 2.1
> Specification Contents
WSDL Mapping
API
Client API
Service API
Core API
Annotations
Customization
> Our focus: Web Service Implementation at Runtime
10
12. Aspects of Web Service
> A Service Container Service API and
Annotations
import javax.jws.WebService;
@WebService
public class EchoService {
public String echo(String input){
return input;
}
}
> A SOAP/REST Endpoint Provider
POST /EchoService HTTP/1.1
WSDL Java
Host: www.example.com WSDL Java
Mapping
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
SOAPAction: "Some-URI"
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
……
12
13. Aspects of Web Service
> Quality of Service Considerations
<wsd:binding ……>
<wsp:PolicyReference URI="PasswordAuthenticationOverSSL"/>
<wsp:PolicyReference URI="ReliableMessaging"/>
</wsdl:binding …..>
<wsp:Policy wsu:Id="ReliableMessaging">
<wsp:ExactlyOne>
<wsp:All>
<wsaws:UsingAddressing
xmlns:wsaws="http://www.w3.org/2006/05/addressing/wsdl"/>
<wsrm:RMAssertion
xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"/>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
<wsp:Policy wsu:Id="PasswordAuthenticationOverSSL“>
……
13
14. OpenESB-Metro Integration
> Web Service Stack In the Binding Component
> Service Hosted in the Application Server
Service
Implementation
QoS?
HTTP Endpoint
14
15. OpenESB Composite Application
Glassfish
OpenESB Composite Application
SOAP BC BPEL SE Java EE SE EJB
Service SOAP Web Service
JAXWS
Client (Business
Rule Validation)
JDBC
Oracle
Database
15
16. OpenESB-Metro Integration:
Observations
> Web Service Stack In the Binding Component
Avoid Integration Issues
Excellent QoS and Policy Support
> Service Hosted in the Application Server
Extra Component Required
16
17. ServiceMix-CXF Integration
> Separate Components for Hosting Service Implementations and
Exposing Web Service Endpoints
QoS?
HTTP Endpoint
Service
Implementation
17
18. ServiceMix Composite Application
ServiceMix
CXF BC JMS BC JMS BC POJO CXF SE
Service SOAP
Client (Start XA (Business Rule
Transaction) Validation)
JMS/JCA JMS/JCA JAXWS
JMS Queue Web Service
JDBC
Oracle
Database
18
19. ServiceMix-CXF Integration:
Observations
> Separate Components for Hosting Service Implementations and
Exposing Web Service Endpoints
Clean Separation of Concerns
> Introduced Additional Integration Issues
> Transaction Management without an Application Server can
be challenging
19
22. Document Centric Architecture with ESB
and JAX-WS
Web
Service Persistence
Service RDBMS
Implementation Tier
Stack
SEI
SEI
XML/SOAP
XML/SOAP
JAXB
JAXB Java
Java O/R
O/R Relational
Relational
Mapping
Mapping Data
Data
> Data mappings increase complexity and limit
flexibility
JAXB
O/R
22
23. Document Centric Architecture with ESB
and JAX-WS
Java/
Java/
XSLT
XSLT
Web
Service XML
Service
Implementation Database
Stack
JAX-WS
JAX-WS
XML/SOAP
XML/SOAP Provider
Provider
API
API XML/
XML/
XPath
XPath
Service
Implementation
XSLT
XSLT
Binding Component Service Engine
23
24. Document Centric Architecture with ESB
and JAX-WS: Challenges
> Technology Limitations
Support for Provider-based API in the ESB
Storing XML data in relational database
> Readability/Maintainability
Element person = ….
String name = person.getAttribute("name"); Model Driven
Architecture
Helps!
Person person = ….
String name = person.getName();
24
25. Question
How do I Preserve IT Investments in the
Face of Technology Changes?
25
26. No matter
which
technology
wins, the
business
requirement
remains.
Which technology
platform should
we choose?
26
27. Model Driven Architecture for “Technology
Independent Service” Business Concerns
OpenESB
Business Concerns JBossESB
ServiceMix
Business Process
Enterprise Challenges In The
Face Of Technology Change: BPEL
Business Rule
-Reusability DROOLS?
-Maintainability Quality of Service Schema?
-Interoperability
Business Platform
XSLT?
Services Specific API
JAX-WS
Generates
executable artifacts
“Architecture Choice for a Changing World” for a particular
technical
- Object Management Group architecture
Captures business
concerns using
Generates Executable
standard tools and Models
notations Artifact
Addresses Provisioning
technology concerns Tool
such as
interoperability,
Technical
scalability,
Architecture
maintainability and Specifies
reusability Platform
27
28. What MDA is not…..
> Model is not just pretty pictures
Can run on a model
Can run on a model
Execution Semantic “VM”
“VM”
> MDA is not just about code generation
Especially not just about boiler plate code!
28
29. SoaML and Model Driven Architecture
(MDA)
Computation Independent Model
Computation Independent Model
Stakeholders
Stakeholders
Business Drivers
Business Drivers
Business Context
As-Is Business
As-Is Business Develop Provide
Service Architecture
Plan and Design
and Deliver After Care
Processes
Processes Mission-Critical Value Chain
Information Model
SOA Contracts
Value Chains
Platform Independent Model
Platform Independent Model
As-Is Systems
Service Interface
As-Is Systems
Service-Oriented Data Model
Architecture
Platform Specific Model/Implementation
Platform Specific Model/Implementation
Open Source
Open Source <wsdl:porttype
Service Provisioning
eGov Reference >
eGov Reference …
Architecture
Architecture </wsdl:portype
Web Services
>
Components
29
30. SoaML: Modeling Business Services
A services architecture describes how participants
A services architecture describes how participants
work together for a purpose by providing and using
work together for a purpose by providing and using
services expressed as service contracts. It is
services expressed as service contracts. It is <<ServicesArchitecture>> A participant represents some party
A participant represents some party
modeled as a UML collaboration.
modeled as a UML collaboration. Solicitation Management Service Architecture
that provides and/or consumes
that provides and/or consumes
services. Participants may represent
services. Participants may represent
people, organizations or systems.
people, organizations or systems.
<<Participant>> solicitation owner <<ServiceContract>>
: Solicitation Owner Agency : Solicitation Management Service solicitation manager
<<Participant>>
: Solicitation Manager
<<Participant>> vendor solicitation manager
<<ServiceContract>>
: Vendor : Vendor Solicitation Service
type
type
<<Participant>>
<<Participant>> <<ServicePoint>> Solicitation Manager
Solicitation Owner Agency <<ServicePoint Provisioning>>response
notification <<ServicePoint>>
<<ServicePoint>> solicitation
A service contract is the specification of the
A service contract is the specification of the
agreement between providers and consumers of
agreement between providers and consumers of
a service as to what information, products,
a service as to what information, products, <<component>>
assets, value and obligations will flow between
assets, value and obligations will flow between Solicitation Management
them. It specifies the service without regard for
them. It specifies the service without regard for Service
realization, capabilities or implementation.
realization, capabilities or implementation.
30
31. Provisioning for Technology Platforms
<<JEE Provisioning>>
<<Provision>>
Java EE Server 1
{runtime = "GlassFish v2.1 Java EE 5"
}
<<JEE Web Service>> <<ServicePoint>>
<<Entity Override>> <<ServicePoint Provisioning>>
: Solicitation Management Service
: Response response
{usedInterfaceAddress = "http://solicitationowner.gov/notify" }
A components can be
A components can be
<<Entity Override>> <<ServicePoint>>
: Solicitation
deployed on a specific
deployed on a specific
solicitation
physical tier. A tier is
physical tier. A tier is
modeled as a UML node.
modeled as a UML node.
<<JEE Provisioning>>
Java EE Server 2 Service connections
Service connections
{runtime = "JBoss v5.0"}
across tiers are modeled
across tiers are modeled
as UML assembly
as UML assembly
dependencies.
dependencies.
<<JEE Web Service>>
: Solicitation Owner Agency
31
32. ModelPro™ Project: The Open Source
Provisioning Engine OMG SoaML
s
ent UML Profile
l em
Imp
ModelPro (ModelDriven.org)
Open Source MDA Tools Uses
Users SOA
SoaML Cartridge Automates Model
ModelPro for
Uses
Provisioning JEE Provisioning Model
Engine
UML Tool
Provisioning Profile Uses
Manual Automated
Platform Platform
Application Deploy
Application Application & IDE
Artifacts Artifacts
Platform & Tools (E.G. Eclipse/Netbeans/.NET) 32
34. ModelDriven.org
The Open Source Model Driven Community
> Current Projects
The ModelPro™ Project
ModelPro™ Cartridge Projects
Foundational UML Reference
Implementation
> Get Involved!
34