You are on page 1of 36

Enterprise-SOA with SoaML by Example

SOA Consortium

Cory Casanave, CEO


Cory-c (at) modeldriven.com
Copyright 2009 Data Access

09 January 2009
Page 1

Relating the Parts for Model Driven SOA


Our Focus Today
Imp

ModelPro
Provisioning
Engine

Uses

ModelPro (ModelDriven.org)
Open Source MDA Tools

Uses

SoaML Cartridge
for
JEE
Provisioning Profile

Application

le

nts
e
m

OMG SoaML
UML Profile

Deploy

Automates

Users SOA
Model
Provisioning Model

Uses

Manual
Platform
Application
Artifacts

UML Tool

Automated
Platform
Application & IDE
Artifacts

09 January 2009
Platform
Tools (E.G. Eclipse/Netbeans/.NET)
Page 2
Copyright 2009
Data& Access

SoaML Goals
Intuitive and complete support for modeling services in UML
Support for bi-directional asynchronous services between multiple parties
Support for Services Architectures where parties provide and use multiple
services.
Support for services defined to contain other services
Easily mapped to and made part of a business process specification
Compatibility with UML, BPDM and BPMN for business processes
Direct mapping to web services
Top-down, bottom up or meet-in-the-middle modeling
Design by contract or dynamic adaptation of services
To specify and relate the service capability and its contract
No changes to UML

Copyright 2009 Data Access

09 January 2009
Page 3

The SoaML submission team


Submitters

Supporters

88Solutions

Everware-CBDI

Adaptive

General Services Administration

EDS

VisumPoint

Model Driven Solutions

Mega

BAE Systems
DERI University of Innsbruck

Capgemini

Fujitsu

DFKI

Fundacion European Software Institute

France Telecom R&D

Hewlett-Packard

NKUA University of Athens

International Business Machines

Oslo Software

MEGA International

SINTEF

MID GmbH

THALES Group

Rhysome

University of Augsburg

Softeam

Wilton Consulting Group

Telelogic AB

Copyright 2009 Data Access

09 January 2009
Page 4

Business Focused SOA Using Model Driven


Architecture
Business Concerns
BusinessModel
Model
Business
EnterpriseGoals
Services(e-SOA)
(e-SOA)
Enterprise
Services
Roles,Collaborations
Collaborations&&Interactions
Interactions
Roles,
Process
Information
Policy
Process
&&Information

Agility

TechnologySpecification
Specification
Technology
JMS,JEE,
JEE,Web
WebServices
Services
JMS,
WSDL,BPEL,
BPEL,XML
XMLSchema
Schema
WSDL,
Copyright 2009 Data Access

Line-Of-Sight

Customers
Logical
SystemModel
Model
Logical System
TechnologyServices
Services(t-SOA),
(t-SOA),
Technology
Costs
Components
Components
Interfaces,Messages
Messages&&Data
Data
Interfaces,

Refinement & Automation

Platform
Platform
Computation
Specific Independent Independent
Model
Model
Model

MDA
Terms

09 January 2009
Page 5

Incorporating Legacy Analysis

Copyright 2009 Data Access

09 January 2009
Page 6

Value derived from the architecture


Component
Acquisition
Specification

Web Services

Test &
Simulation

OMB 300

Components
FEA/FTF
BRM
SRM
DRM*

Deployment

Data

Adapters

Business Driven Technology


Facilitating Business Processes
Copyright 2009 Data Access

09 January 2009
Page 7

Focus on the Business Model


Business Concerns
Business Model
Business Services (e-SOA)
Roles, Collaborations & Interactions
Process & Information
Logical System Model
Technology Services (t-SOA),
Components
Interfaces, Messages & Data
Technology Specification
JEE, JMS, Web Services
WSDL, BPEL, XML Schema
Copyright 2009 Data Access

09 January 2009
Page 8

A division of Data Access Technologies, Inc.

Social Security Administration / ORSIS


Service Oriented Architecture (SOA)
Modeling Example
Ed Seidewitz

Copyright 2009 Data Access Technologies, Inc.


Model Driven Solutions

Computation Independent Model (CIM)


RIB* Claims Processing Services Architecture
RIB Claims Processing Business Process

Apply for RIB Service Contract


RIB Application Service Interface

Query for SSN Service Contract


SSN Query Service Interface

Establish RIB Claim Service Contract


RIB Establishment Service Interface

RIB Claims Processing Participants

RIB Is a domain term meaningful to the user meaning Retirement Insurance Benefit

Copyright 2009 Data Access

09 January 2009
Page 10

RIB Claims Processing Services Architecture


A
A services
services architecture describes
describes how
how participants
participants
work
together
for
a
purpose
by
providing
work together for a purpose by providing and
and using
using
services
expressed
as
service
contracts.
services expressed as service contracts. ItIt is
is
modeled
modeled as
as aa UML
UML collaboration.
collaboration.

A
A participant represents
represents some
some party
party
that
provides
and/or
consumes
that provides and/or consumes
services.
services. Participants
Participants may
may represent
represent
people,
organizations
people, organizations or
or systems.
systems.

A
A service
service contract
contract is
is the
the specification
specification of the
agreement
agreement between
between providers
providers and
and consumers
consumers of
of
aa service
service as
as to
to what
what information,
information, products,
products,
assets,
assets, value
value and
and obligations
obligations will
will flow
flow between
between
them.
them. ItIt specifies
specifies the
the service
service without
without regard for
realization,
realization, capabilities
capabilities or
or implementation.
implementation.

Copyright 2009 Data Access

09 January 2009
Page 11

RIB Claims Processing Business Process


A
A business
business process represents
represents the desired
desired
behavior
behavior among the various participants in
aa services
services architecture.
architecture. This
This is
is modeled
modeled
here
here as
as aa UML
UML activity.
activity.

Each
Each participant
participant is
is given
given aa swimlane
swimlane
which
contains
the
actions
which
actions carried
carried
out
out by
by that
that participant
participant within
within the
business
business process.
process.

The
The overall
overall behavior
behavior emerges
emerges as
as an
an
orchestration
orchestration of
of the
the actions
actions carried
carried out
out by
by
each
each of
of the
the participants.
participants. Interactions
Interactions with
with
participants
participants must
must be
be consistent
consistent with
with the
the
service
service contracts
contracts by
by which
which they
they interact.
interact.

Copyright 2009 Data Access

09 January 2009
Page 12

Apply for RIB Service Contract


A
A service
service contract
contract is
is the
the specification
specification of
of the
the agreement
agreement
between
between providers
providers and
and consumers
consumers of
of aa service
service as
as to
to
what
what information,
information, products,
products, assets,
assets, value
value and
and obligations
obligations
will
will flow
flow between
between them.
them. ItIt specifies
specifies the
the service
service without
without
regard
regard for
for realization, capabilities or implementation. It is
modeled
modeled as
as aa UML
UML collaboration.
collaboration.

The
The service contract defines the roles
roles to
to be
be played
played by
by
consumers
consumers and
and providers
providers of
of the
the service.
service. Many
Many service
service
contracts
contracts have
have only
only two
two roles,
roles, one
one aa consumer
consumer and
and one
one
aa provider.
provider. But
But any
any number
number are
are allowed.
allowed.

The
The service
service contract
contract also
also
defines
defines the
the connections
connections across
across
which
which roles
roles may
may interact.
interact.

Copyright 2009 Data Access

09 January 2009
Page 13

Apply for RIB Interaction


The
The behavior
behavior of
of a service
service
contract
contract may also be modeled
modeled
using
using other
other kinds
kinds of
of UML
UML
interaction
interaction models.
models. It
It is
is
modeled
modeled here
here as
as an
an interaction
using
using aa sequence
sequence diagram.
diagram.

Each
Each role
role in
in the
the contract
contract is
given
given aa lifeline
lifeline which
which acts
acts
as
as the
the source
source and
and target
target for
for
the
the sending
sending of
of messages.
messages.

Messages
Messages are
are modeled
modeled as
as
being
passed
via
being passed via calls
calls to
to
operations
operations on
on the
the interfaces
interfaces
to
the
roles.
to the roles.

Condition
Condition flows
flows can
can be
modeled
modeled using interaction
interaction
fragment
fragment constructs
constructs within
within
the
the sequence
sequence diagram.
diagram.

Copyright 2009 Data Access

09 January 2009
Page 14

RIB Application Messages


The
The messages
messages passed between
between
roles
roles in
in aa service
service contract
contract are
are
specified
specified using message
message types.
types.
Message
Message types
types are
are modeled
modeled as
as
UML
classes.
UML classes.

A message type may


have
have data
data attributes
attributes but
but
no
no operations
operations or
or other
other
behavior.
behavior.

Note: Message information model has not been fully elaborated yet

Copyright 2009 Data Access

09 January 2009
Page 15

RIB Application Service Interface

The
The operations
operations used
used to
to
pass
messages
to
pass messages to aa role
role
are
are collected
collected into
into an
an
interface
for
that
interface for that role.
role.

The
The service
service interface
interface
realizes
realizes the
the interface
interface
of
of the
the provider
provider role
role

The
The service
service interface
interface
uses
uses the
the interface
interface of
of
the
the consumer
consumer role
role

A
A service
service interface
interface defines
defines the
the interface
interface and
and
responsibilities
responsibilities required
required for
for aa participant
participant to
to play
play
aa role
role in
in a service
service contract.
contract. ItIt is
is the
the means
means for
for
specifying
specifying how
how a participant
participant is
is to
to interact
interact to
to
provide
provide or
or consume a service according to the
contract.
contract. ItIt is
is modeled
modeled as
as aa UML
UML class.
class.

Copyright 2009 Data Access

09 January 2009
Page 16

RIB Application Service Usage


The
The use
use of
of aa service
service
contract
is
modeled
as a
contract
UML
collaboration
use.
UML collaboration use.

Participants
Participants are bound
bound
the
the specific
specific roles
roles they
play in the contract.

Participation
Participation in a service contract requires that the
participant
participant type
type have
have aa port
port with
with the
the corresponding
corresponding
service
interface.
A
port
is
a
connection
service interface. A port is a connection point
point for
for
providing
or
consuming
services.
providing or consuming services.

A
A request
request point
point is
is aa port
port for
for requesting
requesting
(consuming)
(consuming) aa service.
service. Note
Note that
that the
the sense
sense of
of
provided
provided and required interfaces is
is reversed
reversed at
at
aa request
request point:
point: The port requires
requires the
the provider
provider
interface
interface and
and provides
provides the
the consumer
consumer interface.
interface.

The
The relative
relative interface
interface dependencies
dependencies of
of the
the
request
request point
point and
and service
service point
point fit
fit
together
together to
to allow
allow a legal connection
between
between the
the service
service consumer
consumer and
and
provider.
provider.

Copyright 2009 Data Access

A
A service
service point
point is a port for
providing
providing aa service.
service. The
The port
port
provides
provides the
the provider
provider interfaces
interfaces
and
and requires
requires the
the consumer
consumer
interface.
interface.

09 January 2009
Page 17

RIB Claims Processing Participants


The
The full
full specification
specification of
of aa participant
participant
includes
includes ports
ports for
for every
every service
service contract
contract
in
in which
which the
the participant
participant participates
participates
within
within the
the services
services architecture.
architecture.

Copyright 2009 Data Access

09 January 2009
Page 18

Producing the logical systems model


Business Concerns
Business Model
Business Services (b-SOA)
Roles, Collaborations & Interactions
Process & Information
Logical System Model
Technology Services (t-SOA),
Components
Interfaces, Messages & Data
Technology Specification
Web Services
WSDL, BPEL, XML Schema
Copyright 2009 Data Access

09 January 2009
Page 19

Platform Independent Model (PIM)


As-Is Claims Processing Services Architecture
Human Participants
System Participant Architectures

MCS: Potential Tiered Replacement Architecture


Claims Processing System: Potential Replacement Architecture
Citizen Self Service
Claims Rep Assisted Service

Copyright 2009 Data Access

09 January 2009
Page 20

As-Is Claims Processing Services Architecture


The
The as-is
as-is claims processing
architecture
architecture is
is modeled
modeled here
here as
as aa
services
services architecture
architecture showing
showing how
how the
the
roles
roles CIM-level
CIM-level business
business architecture
architecture
are
are currently
currently being
being played.
played.

A
A customer is
is aa participant
participant
who
who is
is external
external to,
to, and
and
being
being served by, the
enterprise
enterprise carrying
carrying out
out the
the
business
business process.
process.

A
A worker
worker is
is aa participant
participant
who
who is
is internal
internal to
to the
the
enterprise
enterprise carrying
carrying out
out the
the
business
business process.
process.

The
The business
business process
process being
being
carried
carried out is defined by the
CIM-level
CIM-level services
services architecture,
architecture,
which
which defines
defines the
the process
process roles
roles
and
and desired
desired behavior.
behavior.

A
A system
system is
is aa participant
participant
that
that whose
whose responsibilities
responsibilities
are
are being
being automated
automated using
using
an
an IT
IT system.
system.

Copyright 2009 Data Access

09 January 2009
Page 21

As-Is Claims Processing Human Participants


At
At the
the PIM-level,
PIM-level, some participants may be
known
known not
not to
to be
be automated.
automated. Such
Such
participant
participant types
types generally
generally represent
represent
positions
positions filled
filled by
by people
people in
in the
the enterprise.
enterprise.

Participants
Participants at
at the
the PIM
PIM level
level can
realize
realize (one
(one or
or more)
more) participants
participants at
at
the CIM level. This indicates the
intended
intended way the PIM-level
participants
participants are
are to
to participate
participate in
in
various
various business processes.
processes. The
The
PIM-level
PIM-level participant model must
have
have ports
ports that conform
conform to
to all
all the
the
ports
ports of
of the
the CIM-level
CIM-level participant.
participant.

Copyright 2009 Data Access

09 January 2009
Page 22

MCS System Architecture


A
A user
user interface
interface is
is the
the
provision
provision of
of services
services in
in aa
form
form directly
directly accessible
accessible by
by
external
external human
human
participants.
participants.

A participant
participant architecture
architecture is
is
aa services
services architecture
architecture that
that
defines
defines the
the implementation
implementation
of
of the
the responsibilities
responsibilities of a
participant
participant in some higherlevel
level architecture.
architecture.

The
The responsibilities
responsibilities for
for
providing
providing (or
(or consuming)
consuming) aa
service
service can
can be
be delegated
delegated to
to
an internal participant.

A
A PIM-level
PIM-level participant
participant may
may
have additional ports/interfaces
to
to those
those required
required by the CIMlevel
level participant being realized.

Copyright 2009 Data Access

09 January 2009
Page 23

Alphadent System Architecture

Copyright 2009 Data Access

09 January 2009
Page 24

As-Is Claim Processing Composite Structure

A
A service
service channel
channel connector
connector shows
shows how
how
a consumer is connected to providers of
services.
services. One
One end
end is
is always a request
point,
point, the
the other
other aa service
service point.

The
The PIM-level
PIM-level architecture
architecture may
may include
include
supporting
supporting participants
participants that
that do
do not
not
directly
directly play business roles in the CIMlevel
level business
business architecture model.

Copyright 2009 Data Access

09 January 2009
Page 25

Technology Architecture
Business Concerns
Business Model
Business Services (b-SOA)
Roles, Collaborations & Interactions
Process & Information
Logical System Model
Technology Services (t-SOA),
Components
Interfaces, Messages & Data
Technology Specification
JEE, JMS, Web Services
WSDL, BPEL, XML Schema
Copyright 2009 Data Access

09 January 2009
Page 26

Custom Business Logic Components


Generated Component
Wrapper
XSLT
Java

Custom Code

Etc.
Custom
part is
separate
from the
generated
part

Application Framework
Framework
Component

Application components provide


service implementations
with user supplied logic.
These plug into the users
architecture as composite
application components
Framework components
add infrastructural
capabilities by extending
the platform (E.G. JBI)
and are called by the
provisioned code or
platform configuration

As MDA progresses, there will be less and less need for


custom components, but the capability will remain.

Copyright 2009 Data Access

09 January 2009
Page 27

Application Provisioning
Platform technologies are provisioned from the model based on
the technology specified

XSD
WSDL
Application Server Configuration
Java Interfaces & Implementation
XSLT
IDE Project
SQL
Documentation
Tests

Details of what is provisioned for a particular


technology are beyond the scope of this
presentation

Copyright 2009 Data Access

09 January 2009
Page 28

Executable Example Services Architecture

Copyright 2009 Data Access

09 January 2009
Page 29

Example Information Model

Copyright 2009 Data Access

09 January 2009
Page 30

Example Service Contract & Messages

Copyright 2009 Data Access

09 January 2009
Page 31

Example Provisioning to JEE Web Services

Copyright 2009 Data Access

09 January 2009
Page 32

Generated Artifacts in Java IDE

Copyright 2009 Data Access

09 January 2009
Page 33

Java Override Code

Copyright 2009 Data Access

09 January 2009
Page 34

Using the deployed service from an ugly client

Copyright 2009 Data Access

09 January 2009
Page 35

More Information
Cory Casanave cory-c (at) modeldriven.com
SoaML Web Page www.soaml.org
ModelPro (Open Source) www.ModelDriven.org
Model Driven Solutions www.ModelDriven.com
Cameo SOA+ from NoMagic soaplus.cameosuite.com

Copyright 2009 Data Access

09 January 2009
Page 36

You might also like