Business process integration using UML and BPEL4WS

Business Process Integration
Using UML and BPEL4WS
SI-SE 2004
University of Zurich
March 18-19, 2004
Sridhar Iyengar
Distinguished Engineer, IBM Rational Software
[email protected]
Copyright 2004, IBM Corporation
Slide 1
Software Development & Integration
A ‘team sport’ that IBM Rational enables
Analyst
Business
Business
integration
Integration
Model,
simulate &
monitor
business
processes
Architect
Model
Applications
Documents
& data
Developer
Visually
construct,
program,
and
generate
code
Adopt best practices, track project status,
Manage requirements, assets, and quality
Collaboration &
Information Management
Copyright 2004, IBM Corporation
Slide 2
Tester
Test
code
Application
Monitoring
and
Deployment
“Components – The Future of …”
Q
‘Components’ – Too many definitions , therefore different
types of components
– Java Beans, EJBs, Eclipse plug-ins, CORBA components, Web
Services (W3C, OSGi…), Classes (C++, Eiffel, Java, UML1, UML2),
Structured Classes (UML2), Component (UML2)
Q
Important to discuss the Architectural framework (J2EE, .Net,
Web Services AF, MDA) in which the ‘components’ are
defined, deployed, used
– Can’t wire a EJB component and a COM component WITHOUT
defining the interoperability protocol (hopefully via Web Services)
Q
Component Assembly (intentional wiring of components to
compose coarser grained components) and composition is
essential
Industry needs consistent definitions and implementations
if the dream of reuse thru component assembly is realized
Work In Progress (Eclipse, J2EE, Web Services, .Net, MDA components)
Copyright 2004, IBM Corporation
Slide 3
What this session is & isn’t about
Q
We will cover
– Motivation for the UML2BPEL work (i.e why this is important)
– An overview of recent work on ‘bridging’ the OMG MDA (Model Driven
Architecture) work to the SOA and Web Services work at W3C and OASIS
– Relationship between Components and Web Services
– Some UML patterns for modeling Web Services & Services Oriented
Architecture
– Progress in OMG on mapping UML 2.0 to BPEL4WS & BPMN
– The profile is based on BPEL4WS 1.0 (this is being updated to 1.1)
Q
We will NOT cover
–
–
–
–
Q
Details of UML or UML metamodel (we will show by example)
Details of MDA
Details of BPEL4WS and rest of the Web Services Stack
Or propose YACM (Yet Another Component Model)
Please hold questions to the end – we have quite a bit to cover!
Copyright 2004, IBM Corporation
Slide 4
Business Models, Processes and Rules
Context for ‘Business Process Integration’
Managed
Managed Processes
Processes
Business
Processes
Managed
Managed Rules
Rules
Business
Rules
This Session
Business
Transformation
Business
Models,
Artifacts
Business
Performance
Managed
Managed Entities
Entities
Copyright 2004, IBM Corporation
Perf
Perf Measures
Measures
Slide 5
Solving the Integration Problem
What is needed?
Q
Q
Q
Q
Short Answer ‘was’ XML and HTTP ala SOAP!
Slightly longer answer is SOAP, WSDL, UDDI
Even longer answer is SOAP, WSDL, UDDI, BPEL4WS,
XQuery, WS* standards… with J2EE, .Net etc.
The real answer is : many of the buzzwords above are fine, but
– We need to think and build software & standards like engineers
– Where is the process, methodology and architecture, discussion of the
full application lifecycle? – A focus for OMG MDA and how it
bridges modeling, methods, tools and middleware technologies
– Somehow we need to simplify this complex mess!
Q
Q
The OMG Architecture Board, W3C Web Services
Architecture WG, OASIS TCs have started to look at this
issue from different but complementary perspectives
Need to form ‘bridges’ between the architectural communities
& standards groups that are addressing piece parts of solution
Copyright 2004, IBM Corporation
Slide 6
Focus on Architecture is Essential
ƒ Use componentoriented and
service-oriented
architectures
ƒ Model visually
Application Modeling
Business Modeling
Business
applications
Focus on
architecture
to…
Data Modeling
Adapt quickly
to changing
business needs
Create
strategic
advantage
Are reliable,
scalable and
manageable
Design
for change
Reduce
complexity; work
at the right level of
abstraction
Ensure
architectural
integrity and
ultimate quality
Copyright 2004, IBM Corporation
Slide 7
Characteristics of Service Oriented
Architecture
Reduced interdependency between
software assets.
Standards Based
Allows individual software
assets (components) to
become building blocks
that can be reused in
developing other
applications (application
assembly
& composition).
Shared services
Loosely Coupled
Service Oriented
Architecture
Federated Control
Federated and policy based security,
management and deployment.
Copyright 2004, IBM Corporation
Slide 8
Leverages open
standards to represent
software assets as
services (XML, SOAP,
WSDL, UDDI, UML,
RAS…).
Structure,
Relationships,
Composition,
Semantics,
Usage Guidelines
Service Oriented Architecture &
Component Based Development
Q
Secure, Reliable, Transacted Web Services
– http://www-106.ibm.com/developerworks/webservices/library/ws-securtrans/
Q
Using Service Oriented Architecture & Component Based Development to
build Web Services Applications
– http://www-106.ibm.com/developerworks/rational/library/510.html
Q
Modeling XML Applications with UML
– http://www.xmlmodeling.com/DesktopDefault.aspx
Q
From UML to BPEL
– http://www-106.ibm.com/developerworks/library/ws-uml2bpel/?ca=dnt-436
Q
OMG Business Process Definition Metamodel RFP
– http://www.omg.org/techprocess/meetings/schedule/Business_Proc_Def_Metamod_RFP
.html
Q
Web Services best practices
– http://www-106.ibm.com/developerworks/edu/ws-dw-wsbestprofil-i.html
Copyright 2004, IBM Corporation
Slide 9
An Overview of OMG Model Driven
Architecture
An Architectural Style & a set of standards that enables the
use Industry Standard Models, Metadata, Mappings
(Patterns & Transformations) for building & integrating
software.
MDA allows architects & developers to productively
design, build, integrate and manage applications
throughout the application lifecycle .
MDA: Model Driven Architecture
Q
www.omg.org/mda
Q
An integration of best practices in
Modeling , Middleware, Metadata and
Software Architecture
Model Driven (UML, MOF, CWM…)
– Platform Independent Business Models
(PIM)
– Platform Specific Models (PSM)
– Mappings : PIM <==> PSM, PSM<==>
PSM (Relative term!)
Q
Q
Key Concept:
Models & Model Transformations
Based on standard Metadata Models
Metadata Driven (MOF, XSD, XMI)
Key Benefits
– Improved Productivity for Architects,
Designers, Developers and Administrators
– Lower cost of Application Development
and Management
– Enhanced Portability and Interoperability
– Business Models and Technologies evolve
at own pace on platform(s) of choice
Copyright 2004, IBM Corporation
Slide 11
Q
MDA as an ‘Architectural Style’
for Model Driven Integration
Understand the problem domain (technology or business)
Q
Model the problem domain
–
–
–
–
Q
Use UML for the visual modeling, analysis & design of meta model
Use a UML compliant tool/repository that supports XMI import/export
Define Domain Specific Modeling Languages (aka MetaModels) as needed
‘In Progress’ : Make UML & MDA more data/information/web services
modeler friendly, provide Business/IT visualization – not just ‘OO/CBD’
Formally represent the metamodel semantics using MOF
– Simple class modeling is all you need to know
– OCL (Object Constraint Language) can capture additional semantics
– Reverse engineer existing DTD, XSD, XMI, Java to MOF (jump start)
Q
Use Standard transformation (mappings) patterns for
– Metadata Interchange (XMI – MOF to XML, DTD, XSD)
– Metadata Interfaces (JMI – MOF to Java, MOF to WSDL*, MOF to IDL etc.)
Q
Use open source meta modeling frameworks for metadata management
– Eclipse EMF : www.eclipse.org/emf
– Netbeans MDR : www.netbeans.org
Q
Summary : Understand,Copyright
Model,
Map and Manage
metadata to integrate
2004, IBM Corporation
Slide 12
Model Transformations using
OMG Model Driven Architecture (MDA)
Business
IT
Mappings
Mappings
PIM
PIM -- PSM
PSM
Computation
Computation
Independent
Independent
Business
Business Model
Model
Auto
Color : String
Door : Integer
Engine : Integer
XMI
XMI
XSD,DTD
XSD,DTD
Engine
Cyl : integer
Fuel : String
Comp : Float
Computation
Computation
Independent
Independent
Model
Model View
View
MOF,
MOF, JMI
JMI
Platform
Platform Specific
Specific
Design
Design and
and
Implementation
Implementation Model
Model
Java,
Java, C#
C# (PSM)
(PSM)
XML
XML Doc.
Doc. (PSM)
(PSM)
Class
ClassAuto
Auto
{public
{public String
String color;
color;
public
int
Door;
public int Door;
public
publicint
intEngine}
Engine}
<Auto>
<Auto>
<Color>
<Color> Red
Red </Color>
</Color>
<Door>
4
<Door> 4 </Door>
</Door>
<Engine>
<Engine> 11 </Engine>
</Engine>
</Auto>
</Auto>
XML
XML DTD,
DTD, Schema
Schema (PSM)
(PSM)
<!Element
<!Element Auto
Auto
(Color*,
(Color*,
Door*,
Door*,
Engine*)>
Engine*)>
JOLAP,
JOLAP, JDM
JDM
UML4EJB…
UML4EJB…
‘Architecture/Platform’ Specific
Models (PSM)
‘Architecture/Platform’
Independent Models (PIM)
Mappings to UDDI, WSDL & BPEL4WS being defined
Copyright 2004, IBM Corporation
Slide 13
Choice of Modeling Paradigms
Adopt the right modeling paradigm
for your needs
UML & MDA Standards
Abstraction/
productivity
Supports
Supports multiple:
multiple:
Model
Model
Development
Development languages
languages
Operating
Operating environments
environments
Skill
Skill levels
levels
Modeling
Modeling paradigms
paradigms
Model
Model
Code
Model
Model
Code
Code
Code
Code
Code
only
Executable
Models
Model
Transformations
Pattern-Based
Development
Roundtrip
Engineering
Code
Visualization
Model-Driven
Model-Driven Development
Development
Scope
Copyright 2004, IBM Corporation
Slide 14
Key MDA Standards
UML
XMI
MOF
www.omg.org
www.eclipse.org/emf
www.eclipse.org/uml2
www.eclipse.org/xsd
Web Services Overview
Web services enables application/business process/
people interaction
Business Process
Web services enables application/business
process/ people interaction
Management
Simple Object Access Protocol
ENHANCE
(SOAP) - Connect
the service
User Interaction
Reliable messaging
Quality of Service
HTTP
Customers, business partners,
suppliers, employees
Web Services Description
Language (WSDL) - Describe
what the service is and how
to use it
Universal Description,
Discovery, and Integration
(UDDI) - Find the service
Copyright 2004, IBM Corporation
Slide 15
Q
Q
Q
Q
Q
¾
What are the hot standardization
areas today in web services?
Security
Program well underway in OASIS, uncontroversial. WSFederation is well received.
User Experience
WSRP,
WSIA
Reliability
Two new specifications and a Reliability Roadmap paper
published March, 2003.
Management
Enterprise
Business Processes
WSDM,
WSLA
Business Process Choreography and Transactions
Specs published August, 2002, convergence of work from IBM
and Microsoft, now in OASIS.
Management
Work is early stage, but good coordination among OASIS, W3C,
GGF, and DMTF.
Interoperability
WS-I.org is the place to be and the work to watch.
User Experience
WSRP is an OASIS TC specification with many vendors
announcing product.
Copyright 2004, IBM Corporation
Slide 16
Transactions
BPEL4WS
WS-Transaction,
WS-Coordination
WS-Addr
Reliability WS-RM,
HTTPR
Security & Reliability
WS-Security *
Security
SAML. XML S & E
Discovery
UDDI
WS-Inspection
Publication
Connection
Description
UDDI
WS-Inspection
Messaging
SOAP
WS-Attachements
WSDL
Web Services : The ‘Standards Stack’
Evolves in W3C, OASIS and WS-I
Specific Composable Services and Processes
(ebXML, OAG, RosettaNet PIP...)
Service Composition & Flow (BPEL4WS..)
Security
Reliable
Messaging
Transactions
Domain
Standards
Service
Composition
Service
Assurances
XSD, WSDL, UDDI, WS-Policy
Description
XML, SOAP, WS-Addressing
Messaging
Network (HTTP, HTTPS, SMTP…)
Transports
Not intended to be viewed as a ‘software stack’
Copyright 2004, IBM Corporation
Slide 17
Modeling & Design for Web Services
Q
UML can be used to model Web Services
– Web Service Operations (WSDL Operations) as UML Operations
– Groups of Web Service structures Requests (WSDL PortTypes) as UML Interfaces or
Classes
– XML Schemas using UML Class Diagrams
– Web Services data structures using UML Class Diagrams
– Web Services flow (E.g.:BPEL4WS) using UML Activity Diagrams
– UML2 Structured Classes & Components add additional support for Architectural
Modeling
Q
MOF and XMI can be used to define standard transformations from models to
XML schemas, DTDs, Documents
– www.eclipse.org/emf, xsd, uml
Q
Q
But standard metamodels, transformations, UML profiles etc, would be useful
– http://www.omg.org (MOF, XMI, UML and CWM specs)
– XMI - Mappings from MOF/UML to XML DTD, XML Schema
Using Service Oriented Architecture & Component Based Development to build Web
Services Applications
–
http://www-106.ibm.com/developerworks/rational/library/510.html
– Modeling XML applications with UML by David Carlson
• http://www.xmlmodeling.com
Q
UML to BPEL4WS mappings
Q
From UML to BPEL
–
http://www-106.ibm.com/developerworks/library/ws-uml2bpel/?ca=dnt-436
Copyright 2004, IBM Corporation
Slide 18
A peek at integrating Business
Processes using UML and BPEL4WS
See the BPEL4WS spec for the examples, BPEL4WS syntax
See OMG UML spec for details on UML
Read many popular books , use tools
Possible standard UML profile for BPEL
BPEL4WS tools still emerging
Update : BPD Profile submitted to OMG
Mapping to BPEL4WS 1.1 in progress
Copyright 2004, IBM Corporation
Slide 19
Business Process Execution Language
for Web Services (BPEL4WS)
Q
Q
Q
Q
The Business Process Execution Language for Web
Services (BPEL4WS) provides an XML notation and
semantics for specifying business process behavior
based on Web Services.
A BPEL4WS process is defined in terms of its
interactions with partners. A partner may provide
services to the process, require services from the
process, or participate in a two-way interaction with the
process.
A short summary of research underway at IBM is
described to illustrate how MDA and models can be
used for business process integration
BPEL4WS products are beginning to show up in the
market – more in 2004 (tools and engines)
Submitted to OASIS by IBM, Microsoft, BEA, SAP & Siebel
Copyright 2004, IBM Corporation
Slide 20
Web Services, Components &
Services Orchestration
Q
Q
Components are implemented using J2EE, .Net, CICS
transactions…
Components support defined extension points (think Eclipse
Plug-ins, UML2 Components and Ports)
– Provided Interfaces (Services offered to other components)
– Required Interfaces (Services required by this component)
Q
Components can be ‘wired’ together explicitly to assembly
‘coarser grained’ components
– ‘Connectors’ in UML2 (influenced by ACME, UML4RT…)
– ‘Service references’ in BPEL that allows Integration partners to refer
to each other (‘soft references’)
Q
Components can be orchestrated at runtime (role of BPEL)
Copyright 2004, IBM Corporation
Slide 21
Unified Modeling Language (UML)
Q
Visual Modeling Language for analysis, design and
construction of software
– Widely used in the software architecture and ‘lead developer’
community for component based development
– UML ‘Profiles’ are used to customize UML to a specific domain
Q
Q
Q
UML 1.0 became a standard in 1997 and unified several
leading OO modeling notations (Booch, Rumbaugh, Jacobson,
Mellor….) – UML 2.0 was just adopted
The UML metamodel (model of UML) is defined using a
meta language called Meta Object Facility & using UML
notation
UML models are serialized as XML documents based on
UML 1.4 DTD or UML 2.0 XSD
– XML Metadata Interchange (XMI) provides design patterns that
automate model and metadata serialization
Q
UML, MOF, XMI are OMG MDA standards
Copyright 2004, IBM Corporation
Slide 22
Why map UML to BPEL4WS?
Copyright 2004, IBM Corporation
Slide 23
‘Business Integration Profile’
using MDA and Web Services
«mdx» XDE Model
«mdl» Rose Model
/Unisys XMI 1.3 Export
/XDE XMI 1.x Export
convert to UML1.4
convert to UML1.4
«XMI2» UML 1.4 Model
UML 1.4
XMI 2.0
Mapping Rules
UML1.4 to Web
Services
XSD Schema
WSDL Definition
BPEL Process
XSD 1.0
WSDL 1.1
BPWS4J
Copyright 2004, IBM Corporation
BPEL4WS 1.0
BPEL run time
Slide 24
Profile Principles
Q
Q
Q
Q
Q
Q
The profile should cover broadly the same set of concepts as
BPEL
Support the concepts of XSD and WSDL that are required to
support BPEL, but don’t cover the whole of service oriented
architecture in this profile
Standard UML terminology for concepts is used where
available, e.g. Interface rather than PortType
Where UML 2 will have more direct support for concepts then
the profile adopts a UML 2 style (e.g. introducing a notion of
ports)
In areas of UML that are better defined in UML 2 then the
UML 2 semantics is assumed
It should be possible to create models conforming to the
profile using multiple UML editors, specifically Rose and
XDE
Copyright 2004, IBM Corporation
Slide 25
Purchase Order (PO) Process
Q
Q
Q
Q
Q
Q
Customer sends purchase order to purchase service provided
by PO process
PO process asks for initial price, shipping information, and
production schedule
Shipping requestor determines where order items will be
obtained and creates source and destination shipping
information
When price and shipping information are available, invoice
provider calculates final price and sends invoice to PO process
The PO process asks a scheduling provider to determine when
each order item will be produced and instructs the scheduling
provider to send a schedule to the customer
Finally, the PO process replies to the customer with an invoice
Copyright 2004, IBM Corporation
Slide 26
The PO Process in BPEL4WS
Copyright 2004, IBM Corporation
Slide 27
BPEL Process as a Process Component &
BPEL partners as ports – UML 2.0
Q
This is the UML 2 version, we approximate this in
UML 1.4 (more detail later)
«process»
PurchaseOrder
invoiceProvider
shippingProvider
customer
schedulingProvider
Copyright 2004, IBM Corporation
Slide 28
BPEL Partners as Ports – UML 1.4
Purchase
PurchaseOrderProcess
«role»
Purchase::PurchaseService
- customer
«port»
«process»
PurchaseOrder
PO : PO
shippingInfo : ShippingInfo
shippingRequest : ShippingRequest
shippingSchedule : ShippingSchedule
invoice : Invoice
«role»
Invoice::InvoiceRequester
«port»
«port»
«port»
- invoiceProvider
- shippingProvider
- schedulingProvider
«role»
Shipping::ShippingRequester
Copyright 2004, IBM Corporation
Slide 29
«role»
Scheduling::SchedulingRequester
UML2 Activities: New Semantic
Foundation
Q
Petri Net-like foundation (vs. statecharts) enables
PrePre- and
and postpostconditions
conditions
– Un-structured graphs (graphs with “go-to’s”)
– Richer models of concurrency
Parameter
Parameter
Partition
Partition
Input
Input pin
pin
ProcessOrder
RequestedOrder:Order
<<precondition>> Order com plete
<<postcondition>> Order entered
London
(Order Processing)
[order
accepted]
Requested
Order
Receive
Order
[order
rejected]
Send
Invoice
Bill
Order
Skip
Order
M ake
Paym ent
Accept
Paym ent
Close
Order
Toronto
(Payment Processing
Invoice
Copyright 2004, IBM Corporation
Slide 30
Purchase Order Process
customer
«receive»
receivePO
invoiceProvider
«invoke»
initiatePriceCalculation
«invoke»
sendShippingPrice
«receive»
receiveInvoice
schedulingProvider
«assign»
initialiseShippingRequest
«invoke»
requestScheduling
shippingProvider
«invoke»
requestShipping
«receive»
receiveSchedule
«invoke»
sendShippingSchedule
«reply»
returnInvoice
Partitions correspond
to ports (partners)
Copyright 2004, IBM Corporation
Slide 31
Copyright 2004, IBM Corporation
Slide 32
Data and Message Types
«external»
SNS
«data»
Invoice
«data»
CustomerInfo
+ customerInfo
«data»
Schedule
«data»
ShippingInfo
«data»
PurchaseOrder
«data»
ShippingRequest
+ purchaseOrder
Purchase
«messageContent»
PO
Copyright 2004, IBM Corporation
«data»
OrderFaultType
Slide 33
Interfaces
«interface»
PurchaseOrder
sendPurchaseOrder ( [in] po : PO ) : Invoice
«interface»
ComputePrice
«interface»
InvoiceCallback
initiatePriceCalculation ( [in] po : PO )
sendShippingPrice ( [in] shippingInfo : ShippingInfo )
sendInvoice ( [in] invoice : Invoice )
«interface»
ShippingCallback
«interface»
Shipping
sendSchedule ( [in] schedule : Schedule )
requestShipping ( [in] shippingRequest : ShippingRequest ) : ShippingInfo
«interface»
Scheduling
requestProductionScheduling ( [in] shippingInfo : ShippingInfo )
sendShippingSchedule ( [in] schedule : Schedule )
Copyright 2004, IBM Corporation
Slide 34
Protocols
Q
Q
Protocols are defined independently of the processes
that use them
Roles provide ‘port types’ – groupings of provided
and required interfaces that must be supported
through the same port
«protocol»
Purchase
«role»
PurchaseService
PurchaseOrder
«use»
«protocol»
Scheduling
«role»
PurchaseRequester
«role»
SchedulingRequester
«use»
«protocol»
Invoice
«role»
InvoiceRequester
«use»
ComputePrice
Scheduling
«role»
SchedulingService
«protocol»
Purchase::Shipping
«role»
InvoiceService
«role»
ShippingRequester
«use»
Shipping
ShippingCallback«use»
InvoiceCallback «use»
Copyright 2004, IBM Corporation
Slide 35
«role»
ShippingService
Copyright 2004, IBM Corporation
Slide 36
Mapping: Process
«process»
<process
LoanApprovalProcess::LoanApproval
abstractProcess="no"
+ request : CreditInformation
containerAccessSerializable="no"
+ riskAssessment : RiskAssessmentDetails
enableInstanceCompensation="no"
+ approvalInfo : Approval
+ error : LoanRequestError
name="LoanApproval"
suppressJoinFailure="yes"
targetNamespace="http://www.bpel-examples.ibm.com/
LoanApproval/LoanApprovalProcess/LoanApproval.bpel">
...
<containers>
<container messageType="LoanDefinitions:CreditInformation"
name="request"/>
<container messageType="LoanAssessor:RiskAssessmentDetails"
name="riskAssessment"/>
<container messageType="LoanApprover:Approval"
name="approvalInfo"/>
<container messageType="LoanDefinitions:LoanRequestError"
name="error"/>
</containers>
...
</process>
Copyright 2004, IBM Corporation
Slide 37
Mapping: Partners
«role»
LoanApproval::Approver
+ customer
«port»
«process»
LoanApproval
+ request : CreditInformation
+ riskAssessment : RiskAssessment...
+ approvalInfo : Approval
+ error : LoanRequestError
«port»
«port»
+ assessor
+ approver
«role»
RiskAssessment::AssessmentRequester
«role»
LoanApproval::ApprovalRequester
<partners>
<partner myRole="Approver" name="customer"
serviceLinkType="LoanApprovalProtocols:LoanApproval"/>
<partner name="approver" partnerRole="Approver"
serviceLinkType="LoanApprovalProtocols:LoanApproval"/>
<partner name="assessor" partnerRole="Assessor"
serviceLinkType="LoanApprovalProtocols:RiskAssessment"/>
</partners>
Copyright 2004, IBM Corporation
Slide 38
Mapping: Assign Activities
«assign»
assign
Entry/approvalInfo/accept := 'yes'
<assign name="assign">
<copy>
<from expression="'yes'"/>
<to container="approvalInfo" part="accept"/>
</copy>
</assign>
Copyright 2004, IBM Corporation
Slide 39
Copyright 2004, IBM Corporation
Slide 40
Copyright 2004, IBM Corporation
Slide 41
UML to BPEL Mapping model
R ule
c ontex t : U M L2B P E LR ec onc iler
< < datat y pe> >
U M L2B P E LR ec onc iler
< < javac las s > > c om. ib m .m da .bpel .u m l2bpel.U M L2B P E LR ec onc ile r
m apS ourc e2Target(s ourc e : E O bjec t)
m apTarget2S ourc e(target : E O bjec t)
addS ourc eA s s oc iations ()
addTargetA s s oc iations ()
+ s c h ema
XS DS c h ema
(f ro m x sd )
1
1
U M LP ac k age
P ac k age2W S R ule
+ pac k age
1
D efinition
+ definition
(fro m M o d e l _ M a n a g e m e n t)
(fro m w sd l )
1
1
+ pac k ageR ule
1
1
1
+ pac k ageR ule
C las s ifier2W S R ule
0..*
+ c las s ifierR ules
+ portTy pe
+ interfac e
Int erfac e
(fro m C o re )
1
P ortTy pe
Interfac e2W S R ule
(fro m w sd l )
1
1
+ c om plex Ty pe
XS D C om plex T ypeD efinition
(fro m xsd )
1
1
U M LC las s
+ um lC las s
(fro m C o re )
is A c tive : E B ool eanO bjec t
U M LC las s 2W S R ule
1
1
1
(f ro m xsd)
+ ele m ent D ec larat io n
0..1
+ c las s R ule
E num eration2W S R ule
E num eratio n + enum eration
XS D E lem entD ec laration
0..1
1
{< < entity , c ontrol> > }
(fro m C o re )
+ elem en t
1
+ s im p leTy pe XS D S im pleTy peD efinition
(f ro m xsd)
1
1
1
+ a tt ri bute Rules
A ttribute
+ attribute
A ttribute2W S R ule
(fro m C o re )
1
{ m ult ip li c ity = 1}
(fro m C o re )
+ as s oc iation
+ attributeD ec laration
1
XS D At tr ib uteD ec l arati on
1
(fro m x sd )
0..1
+ as s oc iationR ules
A s s oc iati on
0..*
1
0..*
A s s oc iation2W S R ule
1
Copyright 2004, IBM Corporation
Slide 42
+ attribu teD ec lara tion
UML2BPEL Components – All these
are EMF based Eclipse plug-ins!
Q
Q
Q
Q
Q
Eclipse infrastructure : www.eclipse.org
EMF component : www.eclipse.org/emf
XSD component : www.eclipse.org/xsd
BPEL component : Internal IBM metamodel (for tools) and
BPEL engine (BPWS4J)
Will use UML2 component : www.eclipse.org/uml2
– The proof of concept of EMF UML 1.4 implementation was a
precursor to the current UML2 project
Q
Q
WSDL component : Internal IBM metamodel
UML2BPEL mapping component : Internal IBM metamodel
component (mapping component)
Copyright 2004, IBM Corporation
Slide 43
UML2BPEL has been Submitted
to OMG ( IBM, Unisys, BEA…)
Notation(s)
UML
UML2.0
2.0
BPMN
BPMN
Other…
Other…
Including
domainspecific
languages
mapped to
Business
BusinessProcess
ProcessDefinition
DefinitionMetamodel
Metamodel
Metamodel
Information
Information
Process
Process
Organization
Organization
UML2
UML2
mapped to
Runtime
J2EE
J2EE
BPEL4WS
BPEL4WS
Copyright 2004, IBM Corporation
Other…
Other…
Slide 44
Modeling for Web Services - Recap
Q
UML, MOF and XMI can be used as-is to model & manage Web Services
– Web Service Operations (WSDL Operations) are UML Operations
– Groups of Web Service structures Requests (WSDL Ports) as UML Interfaces
or Classes
– XML Schemas using UML Class Diagrams
– Web Services data structures using UML Class Diagrams
– Web Services flow (E.g.:BPEL4WS) using UML Activity Diagrams
Q
But some standard transformations, UML profiles etc, would be useful to
enable tools interoperability
– http://www.omg.org (MOF, XMI, UML and CWM specs)
– XMI - Mappings from MOF/UML to XML DTD, XML Schema
– Modeling XML applications with UML by David Carlson
• http://www.xmlmodeling.com
– UML to BPEL mappings (UML profile for BPEL) - Proposed standard
– OMG Business Process Definition Metamodel RFP
– OMG Business Rules RFP Drafts : Rule Expression Language, Rule
Management…
Copyright 2004, IBM Corporation
Slide 45
IBM will integrate its tools portfolio using a set of shared
Metamodels and Profiles based on the Eclipse platform (as plug-ins)
The UML 2.0, XSD, WSDL, BPEL4WS and related transformations
are an integral part of our software development platform
Copyright 2004, IBM Corporation
Slide 46
Wrap Up
Q
Most customers have and will continue to have components and
information/data from multiple sources and formats that need
integration
Q
Web Services promise to be a key enabler for application integration
and business process integration
– Embraced by all industry players
– Pragmatic loosely coupled integration
– Promise of ubiquitous availability
– Modeling and Web Services on a convergence path
• OMG MDA, OASIS ebXML UMM, BPMN
Q
Model Driven Architecture enables architects, designers and
developers to use models and metadata with web services and existing
technologies with a focus on full life cycle architecture
Q
Web Services standards (like other standards!)will come and go, but
some of the business models and processes will be more lasting
(manage and protect your models and metadata)
Q
Use models to communicate, understand, analyze and design, use
metadata to integrate flexibly
within an architectural
context
Copyright 2004, IBM Corporation
Slide 47
For More Information
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
OMG
: www.omg.org
Web Services : http://www-106.ibm.com/developerworks/webservices/newto
MDA
: www.omg.org/mda
IBM
: www.ibm.com
IBM Alphaworks : www.ibm.com/alphaworks (UDDI4J, BPWS4J)
UML
: www.omg.org/uml, www.rational.com
CWM
: www.cwmforum.org, www.omg.org/uml
W3C
: www.w3c.org
DSTC
: www.dstc.edu.au
Sridhar
: [email protected]
UML RTF
: [email protected]
MOF RTF
: [email protected]
XMI RTF
: [email protected]
CWM RTF : [email protected]
JMI
Eclipse
: http://java.sun.com/aboutJava/communityprocess/jsr-40
: http://www.eclipse.org (/emf, /xsd, /uml2)
Copyright 2004, IBM Corporation
Slide 48
Backup
Copyright 2004, IBM Corporation
Slide 49
Tool Integration across Modeling & Web
Service Tools – How are we doing it?
Q
Use Eclipse tools integration framework
– www.eclipse.org (Java IDE, tools integration framework)
Q
Use Eclipse EMF for modeling & metadata management
–
–
–
–
–
Q
Q
www.eclipse.org/emf, www.eclipse.org/xsd
Simplification of OMG MOF 1.4 with support for XMI 2.0
Use UML models, XMI, XSD or Annotated Java as metamodel input
Code generation for metadata interfaces and implementation
XML Serialization, XSD generation. Support for MOF2 soon
Used in IBM WebSphere Studio & in WebSphere Application
Server (ex: configuration metadata), Rational, Borland..
Expect the usage to increase across software development
lifecycle
– UML modeling, testing, software quality improvement…
– UML2 open source project launched : www.eclipse.org/uml2
– IBM Research area : ‘Model Driven Business Integration’
Copyright 2004, IBM Corporation
Slide 50
OMG Model Driven Architecture
EMF in WebSphere Tools
XMI
UML
Etc.
MOF2XML (PSM)
DTD, Document
XSD (XMI 2.0)
Model & Design (PIM)
UML, Java, XSD Input
Framework
(PIM)
Metadata Interchange
Metadata Interfaces
Application Server
Configuration
Model Driven
Tool Integration
Model Driven
App Development
EMF2Java
SQL*
(PSM)
PIM : Platform Independent Model
PSM : Platform Specific Model
Copyright 2004, IBM Corporation
* In progress
Slide 51
MetaData
Management
XML Schema
Management
Sample EMF Metamodels
Used in WebSphere
Integration of key software domains
XMI
XML
HTML
JSP
EJB
MOF XSD
BPEL*
WSDL
UDDI
EM
MO F/
Mo F
de
ls
Java
Service
Providers
Customers
Business
Partners
Suppliers
Employees
FCM
C/C++
COBOL
Mapping
WCCM UML*
Directory
& Security
Services
Web
Presentation
Servers
Web
Application
Servers
Transaction
Servers
Data
Servers
End-to-End Systems Management
* In R&D
Copyright 2004, IBM Corporation
SQL BPM*
Slide 52
EMF Ecore Model
(www.eclipse.org/emf)
EObj ect
EModelElement
EFactory
ENam edElement
EPackage
EMetaObject
EClass
EDat aType
EEnum
EEnumLiteral
EType dElement
ESt ructuralFeature
EAt tribute
EOperation
EReference
Copyright 2004, IBM Corporation
Slide 53
EParameter
EMF::Ecore Details
EModelElem ent
EFa ctor y
EN ame dE le me nt
+ na me : String
+eFactoryIns tance
+ create(eClas s : EClas s ) : EObject
+ createFrom String(eDataType : EDataType, literalValue : String) : EJavaObject
+ convertToString(eDataType : EDataType, ins tanceValue : EJavaObject) : String
1
+ ePackag e 1
ETypedElem ent
EMetaOb ject
+ instance ClassNam e : String
+ instance Class : EJav aCla ss
+ defau ltValue : EJa vaO b je ct
+eType
0..1
+eOperation
EOperation
0..*
+ eParam eter s
0. .*
0..*
+eOp era tion s
+ getEMetaObject(nam e : String) : EMetaObject
+ isInsta nce (ob ject : EJa vaO b ject) : b oolea n
+ getMetaOb jectI D( ) : in t
EParam eter
1
EPackage
+ ns URI : String
+ ns Nam e : String
+eExceptions
1
0..* +eMetaObjects
0..*
+eSubpackages
1
+ePackage
+eSu perPackage
+eClas s
EClas s
+eAllOperations
1
+eAl lCo ntainm ents
+eAllStructuralFeatures
0..*
1
0..*
EDataType
+ s erializable : boolean = true
+ abs tract : boolean
+ interface : boolean
+ is SuperTypeOf(s om eClas s : EClas s ) : boolean
+ getEStructuralFeature(featureID : int) : EStructuralFeature
+ getEStructuralFeature(featureNam e : String) : EStructuralFeature
+eClas s
EStructuralFeature
+ changeab le : b oolean = true
+ volatile : b oolean
+ transient : b oolean
+ unique : b oolean = true
+ defaultValueLiteral : String
+ defaultValue : EJavaOb ject
+ lowerBound : int
+ upperBound : int = 1
+ m any : b oolean
+ required : b oolean
+ getFeatureID() : int
+ getContainerClass() : EJavaClass
0..*
0. .*
+eAttributes
0. .*
EEnum Literal
+ value : int
+ ins tance : EEnum erator
+eSuperTypes
0. .*
EAttribute
+eAllAttributes
+ uns ettable : boolean
+eReferences
+ eLi tera ls
0. .*
+eAllSuperTypes
0..*
EReference
+ com pos ite : boolean
+ res olveProxies : boolean
+eOppos ite
0..*
+e Enum
1
EEnum
0..*
+eAl lRe fe renc es
+ getEEnum Literal(nam e : String) : EEnum Literal
+ getEEnum Literal(value : int) : EEnum Literal
0..1
Copyright 2004, IBM Corporation
Slide 54
Influenced MOF2::EMOF
Using MDA to execute the
Mapping
Q
Q
Start with EMF models of UML, XML Schema, WSDL, and
BPEL
Use EMF to generate Java APIs for all the EMF models
– Each model uses a serializer for its preferred external representation
Q
Q
Q
Q
Create an EMF model of the mapping between UML and the
Web Services components
Use EMF to generate an API for the model-to-model mapping
Implement the methods to map between source and target
models
Can be deployed as an Eclipse builder, no user input required
to do the mappings
Copyright 2004, IBM Corporation
Slide 55
XML Schema model
From www.eclipse.org/xsd
+substitutionGroupAffiliation
+substitutionGroup
+notationDeclarations 0..n
0..n +a ttrib uteDeclarati ons
XSDSchema
+attributeGroupDefinitions 0..n
+typeDefinitions
0..n
0..n +elementDeclarations
0..n
0..n
XSDEl emen tDe cla ration
0..n
1
+identityConstraintDefinitions
XSDId enti tyCon strain tD efin ition
+identityC onstrain tDefinitions
0..1
0..n
+mod elGroupD efi niti ons
XSDModelGroupDefinition
0..1
+fields
+referencedKey
+modelGroup
1 +s elector
1..n
1
+typeDefinition
XSDXPathDefinition
XSDTypeDefinition
XSDModelGroup
1
+baseTypeDefinition
+particles
1..n
+attribute Wild card
XSDSimpleTypeDefinition
XSDComplexTypeDefinition
+b aseType De finition
1
1
+typeDefinition
+attribute Us es
XSDAttribu teD ecl arati on
1
0..1
+scope
XSDParticle
0..1
+contentType
+attributeWildcard
XSDC omp lexType Co ntent
+term
XSDAttributeUse
0..n
XSDAttributeGroupDefinition
+attributeUses
XSDScope
XSDNo tationDecl aratio n
0..1
Copyright 2004, IBM Corporation
1
XSDTerm
0..n
+attributeDeclaration
XSDFeature
XSDWildcard
0..1
Slide 56
WSDL Model – From WSAD
Definition
<<Interface>>
IDefinition
addBinding()
addImport()
addMessage()
addNamespace()
addPortType()
addService()
createBindingFault()
createBindingInput()
createBindingOutput()
createBindingOperation()
createBinding()
createFault()
createImport()
createInput()
createMessage()
createOperation()
createOutput()
createPart()
createPort()
createPortType()
createService()
getBinding()
getBindings()
getImports()
getImports()
getMessage()
getMessages()
getNamespace()
getNamespaces()
getPortType()
getPortTypes()
getPrefix()
getService()
getServices()
getExtensionRegistry()
setExtensionRegistry()
getDocumentBaseURI()
setDocumentBaseURI()
createTypes()
removeService()
removeBinding()
removePortType()
removeMessage()
getTypes()
setTypes()
targetNamespace : String
qName : QName
encoding : String
getDocument()
setDocument()
1..1
1 ..1
1..1
1..1
1..1
Import
+eI mp orts
getSchema()
setSchema()
{ordered} 0..n
1..1
Types
+eTypes
0 ..1
getSchemas()
getSchemas()
+ eMessages 0..n
Message
{ord ered}
+ePortTypes 0..n
PortType
{ordered}
+eBindings
0 ..n
{ordered}
+eServices
0..n
Binding
Service
{ordered}
Copyright 2004, IBM Corporation
Slide 57
Draft BPEL Model
P r o ce s s
n a m e : S trin g
ta rg e t N a m e s p a c e : S t rin g
q u e ry L a n g u a g e : S trin g
e x p re s s io n L a n g u a g e : S t rin g
s u p p re s s Jo in F a ilu re : B o o le a n = fa ls e
c o n t a in e rA c c e s s S e ria liz a b le : B o o le a n = fa ls e
e n a b le In s t a n c e C o m p e n s a tio n : B o o le a n = fa ls e
a b s t ra c tP ro c e s s : B o o le a n = fa ls e
1
1
1
1
1
1
E x t e n s ib le E le m e n t
(f ro m w sd l )
g e tE x t e n si b ili ty E l e m e n ts ( ) : IL is t
a d d E x te n s ib il it y E le m e n t (e x tE le m e n t : IE xt e n s ib il it yE le m e n t )
1
0 .. *
+ e x te n s io n s
S e r vi ce L i nk Ty p e
n a m e : S trin g
E x te n s io n
n a m e s p a c e : S trin g
t y p e : S t rin g
1
P a rtn e r
0 . .*
+ s e rvic e L in k Ty p e
P o rt Ty p e
+ ro le 1 . .2
0..*
n a m e : S tr in g
1
+ p a rtn e rR o le
+ p a rtn e rs
(f ro m w sd l )
+ r es p o n s ib ilitie s
R o le
n a m e : s trin g
0..*
qNam e : Q Nam e
u n d e fin e d : b o o l ea n
p ro x y : bo o l ea n
r es o u r ce U R I : S tr in g
1 . .*
g e tS e r vi c e Li n k Typ e ( )
0 . .*
0 . .*
+ m y R o le
P a rt
(f ro m w sd l )
1
+ m es s a ges
C o n t a in e r
n a m e : S t rin g
0 . .*
+ c o n ta in e rs
0 .. *
g e t C o n t a in e rD a t a ()
g e t C o n ta in e rP ro p e rt y ()
0 .. *
0..*
+ m e s s a g e Ty p e
n a m e : S t rin g
e le m e n tN a m e : Q N a m e
ty p e N a m e : Q N a m e
M es s age
+ eM es s age
(f ro m w sd l )
qNam e : Q Nam e
u n d e fin e d : b o o le a n
p ro x y : b o o le a n
re s o u rc e U R I : S t rin g
0 .. 1
+ e P a rts
0 .. n
{ ord e re d }
1 . .1
1
+ m e s s a g e Ty p e
g e t Ty p e ()
s e t Ty p e ()
g e t E le m e n t ()
s e t E le m e n t ()
s e t M e s s a g e ()
g e t M e s s a g e ()
+ p a rt
1
0 .. *
0 .. *
+ c o rre la t io n S e t s
C o rre la tio n S e t
n a m e : S t rin g
+ p ro p e r tie s
0 .. *
1 .. *
P ro p e rt y
n a m e : S t rin g
1
0 .. *
0 . .1
X S D T yp e D e fin itio n
(f ro m x s d )
0 .. *
0 .. *
0 . .1
+ e XS D Ty p e
P ro p e rty A lia s
q u e ry : S tr in g
+ p ro p e rt y N a m e
1
+ ty pe
1
F a u lt H a n d le r
+ fa u l tH a n d le r s
+ b a s e Ty p e
0 . .1
C o m p e n s a ti o nH a nd l e r
+ c o m p e n s a t io n Ha n d le r s
1
+ a c ti vi t y
A c t ivit y
+ s o u rc e
n a m e : S tr in g
1
jo i n C o nd i ti on : B o o le a n E x p re s s io n
s u p p re s s Jo i n F a ilu r e : B o o le a n = fa l s e + ta rg e t
1
Copyright 2004, IBM Corporation
+ s o u rc e s
0 .. *
+ t a rg e ts
0 . .*
L in k
n a m e : S trin g
t ra n s it io n C o n d itio n : B o o le a n E x p re s s io n = t ru e
g e tL in k S t a tu s ()
Slide 58
1
+ ro o tTy p e
UML to BPEL Mapping model
R ule
c ontex t : U M L2B P E LR ec onc iler
< < datat y pe> >
U M L2B P E LR ec onc iler
< < javac las s > > c om. ib m .m da .bpel .u m l2bpel.U M L2B P E LR ec onc ile r
m apS ourc e2Target(s ourc e : E O bjec t)
m apTarget2S ourc e(target : E O bjec t)
addS ourc eA s s oc iations ()
addTargetA s s oc iations ()
+ s c h ema
XS DS c h ema
(f ro m x sd )
1
1
U M LP ac k age
P ac k age2W S R ule
+ pac k age
1
D efinition
+ definition
(fro m M o d e l _ M a n a g e m e n t)
(fro m w sd l )
1
1
+ pac k ageR ule
1
1
1
+ pac k ageR ule
C las s ifier2W S R ule
0..*
+ c las s ifierR ules
+ portTy pe
+ interfac e
Int erfac e
(fro m C o re )
1
P ortTy pe
Interfac e2W S R ule
(fro m w sd l )
1
1
+ c om plex Ty pe
XS D C om plex T ypeD efinition
(fro m xsd )
1
1
U M LC las s
+ um lC las s
(fro m C o re )
is A c tive : E B ool eanO bjec t
U M LC las s 2W S R ule
1
1
1
(f ro m xsd)
+ ele m ent D ec larat io n
0..1
+ c las s R ule
E num eration2W S R ule
E num eratio n + enum eration
XS D E lem entD ec laration
0..1
1
{< < entity , c ontrol> > }
(fro m C o re )
+ elem en t
1
+ s im p leTy pe XS D S im pleTy peD efinition
(f ro m xsd)
1
1
1
+ a tt ri bute Rules
A ttribute
+ attribute
A ttribute2W S R ule
(fro m C o re )
1
{ m ult ip li c ity = 1}
(fro m C o re )
+ as s oc iation
+ attributeD ec laration
1
XS D At tr ib uteD ec l arati on
1
(fro m x sd )
0..1
+ as s oc iationR ules
A s s oc iati on
0..*
1
0..*
A s s oc iation2W S R ule
1
Copyright 2004, IBM Corporation
Slide 59
+ attribu teD ec lara tion
UML2BPEL Components – All these
are EMF based Eclipse plug-ins!
Q
Q
Q
Q
Q
Eclipse infrastructure : www.eclipse.org
EMF component : www.eclipse.org/emf
XSD component : www.eclipse.org/xsd
BPEL component : Internal IBM metamodel (for tools) and
BPEL engine (BPWS4J)
Will use UML2 component : www.eclipse.org/uml2
– The proof of concept of EMF UML 1.4 implementation was a
precursor to the current UML2 project
Q
Q
WSDL component : Internal IBM metamodel
UML2BPEL mapping component : Internal IBM metamodel
component (mapping component)
Copyright 2004, IBM Corporation
Slide 60