Constructing Software For Service Oriented Architecture Jean-Jacques Dubray, Ph.D.

Constructing Software For
Service Oriented Architecture
Jean-Jacques Dubray, Ph.D.
Architect
[email protected]
Lecture, 03/26/2004
The Pennsylvania State University
The Smeal College of Business Administration
There is a newer version of this
presentation available here
 http://www.ebpml.org/com/an_introduction_to_SOA.htm
© attachmate 2004
Copyright Notice
 According to US and Worldwide Copyright laws, it
is forbidden to use all or part of this presentation
without a written consent of Attachmate
 In particular, you are not allowed
 To remove attachmate logos or the author’s name
 Change the title of the presentation
 Publish part or all of the presentation under your
name or the name of another organization
© attachmate 2004
Acknowledgments
 This presentation was reviewed and
commented by




Jeff Schneider, CEO of OpenStorm
Eric Newcomer, CTO of Iona
Paul Brown, CEO of Fivesight
Ben Gaucherin, CTO of Sapient
 I greatly appreciate their feedback
© attachmate 2004
Outline
 Service Oriented Society
 The “connected” world
 From Component Orientation to Service
Orientation
 The Road to SOA

Three key concepts in software construction
 Conclusion
© attachmate 2004
The Service Oriented Society
Imagine if we had to do everything
we need to get done by ourselves?
From Craftsmen to Service Providers
 Our society has become what it is today through the
forces of



Specialization
Standardization
Scalability
 It is now almost exclusively “service” oriented
 Transportation
 Telecommunication
 Retail
 Healthcare
 Financial services
 …
© attachmate 2004
Attributes of physical services







Well defined, easy-to-use, somewhat standardized interface
Self-contained with no visible dependencies to other services
(almost) Always available but idle until requests come
“Provision-able”
Easily accessible and usable readily, no “integration” required
Coarse grain
Independent of consumer context,

but a service can have a context
 New services can be offered by combining existing services
 Quantifiable quality of service




Do not compete on “What” but “How”
Performance/Quality
Cost
…
© attachmate 2004
Context, Composition and State
 Services are most often designed to ignore the
context in which they are used
 It does not mean that services are stateless they
are rather context independent !
 This is precisely my / the definition of “loosely
coupled”

Services can be reused in contexts not known at design
time
 Value can be created by combining, i.e. “composing”
services
 Book a trip versus book a flight, car, hotel, …
© attachmate 2004
Service Interfaces
 Non proprietary
 All service providers offer somewhat the same
interface
 Highly Polymorphic
 Intent is enough
 Implementation can be changed in ways that do not
break all the service consumers


Real world services interact with thousands of
consumers
Service providers cannot afford to “break” the context
of their consumers
© attachmate 2004
Intents and Offers
 Service consumer expresses “intent”
 Service providers define “offers”
 Sometimes a mediator will:


Find the best offer matching an intent
Advertise an offer in different ways such that it
matches different intent
 Request / Response is just a very particular
case of an Intent / Offer protocol
© attachmate 2004
Service Orientation and Directories
 Our society could not be “service oriented”
without the “Yellow Pages”
 Directories and addressing mechanisms are
at the center of our service oriented society
 Imagine


Being able to reach a service just by using
longitude and latitude coordinates as an
addressing mechanism?
Only being able to use a service if you can
remember its location, phone or fax number?
© attachmate 2004
Service Orientation is scalable
 Consumers can consume and combine a lot
of services since they don’t have to know or
“learn” how to use a service
 Service providers can offer their services to a
lot more consumers because by optimizing



The user interface
Access (Geographical, Financial, …)
They were able to provide the best quality of
service and optimize their implementations
© attachmate 2004
So…
 Service orientation allows us


Complete freedom to create contexts in which
services are uses and combined
Express intent rather than specific requests
 Our society should be a great source of
inspiration to design modern enterprise
systems and architectures or understand
what kind of services these systems will
consume or provide
© attachmate 2004
The connected (new) world
Over the past 15 years,
everything got connected to everything else
Connectivity Drives the Emergence
and Convergence of Technologies
Internet
LAN
Web
1980
XML
WS
2000
1990
SOA
2010
Office
Workflow
EAI
BPM
B2B
Business
Integration
EDI
WS
Mainframe
Client / Server
Web/Portal
© attachmate 2004
J2EE
.NET
?
Connectivity Enables Global Processes
and Information Access
Internet
LAN
1980
Web
XML
1990
LAN
WAN
WS
2000
SOA
Web
Information
Global
Local
Business
Processes
© attachmate 2004
2010
Seamless Connectivity enables “On
Demand” Computing
 Use software as you need
 Much lower setup time, forget about
 Installation
 Implementation
 Training
 Maintenance
 Scalable and effective usage of resources
 Provision
 Billed on true usage
 Parallelism (CPU, Storage, Bandwidth…)
© attachmate 2004
But Seamless Connectivity is also
questioning all our beliefs…
 An application is NOT a single system running on a




single device and bounded by a single organization
Continuum Object … Document
Messages and Services
 As opposed « distributed objects »
 Exchanges becomes peer-to-peer
Asynchronous communications
Concurrency becomes the norm while our
languages and infrastructures did not plan for it
© attachmate 2004
…we are reaching the point of
maximum confusion
 Federation and Collaboration
As opposed to « Integration »
 Language(s)
 Semantic (not syntactic)
 Declarative and Model driven (not procedural)

 Licensing and Deployment models
…
© attachmate 2004
So…
 Today, the value is not defined as much by
functionality anymore but by connectivity

However, we need a new programming model
 Why SOA today?

We are reaching a new threshold of
connectivity and computing power
Mainframe
Client Server
Web
© attachmate 2004
SOA
Constructing Software In a
Connected World
From Components to Services
Constructing software in the web era
(J2EE, .Net, …)
View
Client
Interne
t
b2b
request
response
Controller
App Server
EAI
CCI
CCI
CCI
DB
ERP
CRM
Model
CCI: Client Communication Interface
© attachmate 2004
ERP
Why do we Want to Move to a New
Application Model Today?
 We are moving away precisely because of
connectivity


J2EE, for instance was designed to build 24x7 scalable
web-based applications
Job well done
 But this is very different from, “I now want my
application to execute business logic in many other
systems, often dynamically bound to me”


JCA (J2EE Connector Architecture) is not enough
EAI infrastructures are not enough
© attachmate 2004
A Component now Becomes a Service
Running Outside the Consumer Boundaries
Discover and/or Bind
Consumer
2
3
invoke
Policies
XML
XML
SOAP
SOAP
1
SOAP
CCI
CCI
CCI
DB
ERP
CRM
Service
Service
Registry
XML
Service
© attachmate 2004
register
From Components to (Web) Services
 Requires a client library
 Loose coupling via
 Message exchanges
 Policies
 Client / Server
 Peer-to-peer
 Extendable
 Composable
 Stateless
 Context independent
 Fast
 Some overhead
 Small to medium
 Medium to coarse
granularity
granularity
© attachmate 2004
What Happens to the Technical Services
Typically Provided by an Application Server?
 Transaction
 Security
 Connection pooling
 Naming service
 Scalability and failover
…
 They become the “Service Fabric”
© attachmate 2004
What about the notion of “Container”?
They become Service “Domains”
 The notion of “container” shifts to the notion of
“Domain Controller”



A domain is a collection of web services which share
some commonalities like a “secure domain”
A container is a domain with one web service
Web Services do not always need a container
 Consumers invoke the domain rather than the service
directly
 This concept does not exist in any specification…
© attachmate 2004
A Service Fabric can be more than a Bus
with a series of Containers / Adapters
Discover and/or Bind
Consumer
Policies
Reliable
Messaging
TxXML
XML
Domain
Controller
XML
Registry
Registry
Process
CCI
CCI
CCI
DB
ERP
CRM
NEP
NEP
NEP
© attachmate 2004
register
The road to SOA…
NEP
Existing business logic,
often “model-oriented”
NEP
NEP
NEP
NEP
NEP
“Global” business logic
(tax, trade, …) and data
access
Coordination logic (Tx,
Process, …)
Metadata driven
User Interface NEPs
NEP
NEP
© attachmate 2004
Shift To A Service-Oriented Architecture
From

To
Function oriented
 Build to last
 Prolonged development
cycles

Application silos
 Tightly coupled
 Object oriented
 Known implementation
Source: Microsoft (Modified)

Coordination oriented
 Build to change
 Incrementally built and
deployed

Enterprise solutions
 Loosely coupled
 Message oriented
 Abstraction
© attachmate 2004
So Migrating to SOA
 Would entail

Organizing the business logic in a context
independent way

Typically, model oriented business logic is
wrapped behind (web) services
 Re-implementing the controller with
“coordination” technologies
 …The view must be completely re-invented
© attachmate 2004
From this point on…
 We will focus on 3 key aspects of the
controller



The coordination layer
Information Entities
The relationship between BPM and SOA
© attachmate 2004
The “Coordination” Layer
 Many, many, many overlapping concepts not
layered, not architected





Composition
Orchestration
Choreography
Collaboration
…
 What is the relationship between these
concepts?
© attachmate 2004
Coordination Specification
 OASIS/WS-CAF



Context management
Coordination
Transaction management

As one possible, yet very important example of
coordination
© attachmate 2004
What is Context?
S4
S1
S3
CTX
Service
S2
Peer to peer interactions mandate a “context” service
(e.g. in this case S3 may need to know the state of interaction between
S1 and S4 to provide its service)
© attachmate 2004
What is an activity Lifecycle Service?
ALS allow to demarcate
units of work shared
across several services
S4
S1
S3
CTX
Service
S2
ALS
Service
© attachmate 2004
What is Coordination?
A coordinator is an active
component
of the architecture
S4
S1
S3
CTX
Service
S2
ALS
Service
It can support a service or
provide services itself
Multiple purposes:
- Transaction
- Orchestration
- Choreography …
Coordination
Service © attachmate 2004
What are the Coordination Topologies?
A
B
A
B
Binary relationship
• Context and Activity are most often implicit
• Self-coordination
D
Hub
C
E
F
CTX
ALS
A
D
B
E
C
Hub and Spoke relationship
• Context and Activity are handled by the hub
• Coordination is handled by the hub exclusively
Coordinator
F
Multi party peer-to-peer relationship
• Context and Activity are explicit
• Context, ALS and Coordination are
handled by the fabric
© attachmate 2004
Coordination is a key abstraction
 Rely on generic fabric services for types of
coordination

Not everything is a process…
 Different types of coordination can be
composed


A transaction may include an orchestration
definition as part of an activity
An orchestration definition may contain
several transactions
© attachmate 2004
Information Entity in SOA
 “at the heart of Web services is a very
complex problem: with distributed
applications comes the need for distributed
data sharing”





Identification and equivalence
authentication
Authorization and privacy
mediation
synchronization
Source: The Dataweb: An Introduction to XDI, Drummond Reed et al.
© attachmate 2004
Information Entities in SOA
 Several dimensions appear when managing
an Information Aggregate in a SOA
Identity
Content
Information
Entity
State
Location(s)
Replication
Privacy
© attachmate 2004
Specific
to SOA
Key problems to solve
 Isolation

We cannot be guaranteed that the information
we have is the information held by the system
of record
 Containment

We cannot be guaranteed that a service
consumer is going to apply the same privacy
rules to the information provided to it
© attachmate 2004
Web standards vs. Dataweb
standards
Web
Dataweb
100% resource
addressability
URIs
XRIs
Common representation
and linking format
HTML
XML/XDI
Common interchange
protocol
HTTP
XDI/HTTP
XDI/SOAP
Source: Drummond Reed
© attachmate 2004
Websites vs. Dataweb sites
HTML
HTML
XML/
XDI
XML/
XDI
XDI Link
contracts
HTML
HTML
HTML
HTML
XML/
XDI
XML/
XDI
XML/
XDI
XML/
XDI
HTML
HTML
HTML
HTML
XML/
XDI
XML/
XDI
XML/
XDI
XML/
XDI
Website
A
Source: Drummond Reed
Website
B
Dataweb site
A
© attachmate 2004
Dataweb site
B
Information Elements and Aggregate
Represent a Big Challenge in SOA
 We have barely scratched the surface
 Thinking that we can get away by saying that
we are simply exchanging messages
between services is IMHO a mistake
 SOA will not exist without its concept of
information entity


Entity beans were clearly not a good solution
.NET offers the concept of DataSet which I like
better
© attachmate 2004
SOA and BPM
 SOA is about constructing software
components that can be reused in context
unknown at design time

Composition versus Extension (OO)
 BPM is about being able to precisely model
and possibly change the context in which
enterprise components are used
 But how the two meet?
© attachmate 2004
Elements of BPM
Initiates
Activity
changes
Event
State
Entity
performs
Content
Actor
Services
Represented by
generates
© attachmate 2004
How is BPM perceived today in the
SOA community?
 Two approaches
 Event Oriented
 BPML, BPEL
 Pi-Calculus (Also Event Calculus)
 Activity Oriented
 WfMC
 Petri nets
 IMHO, the approaches must be combined and state
must be part of the model
 “Turing complete” is the excuse for remaining “pure”
(e.g. event oriented only)
© attachmate 2004
Source: Paul Brown, FiveSight,
BPEL
 “BPEL is an XML language for defining the composition of (web)
services into (new) services” (Paul Brown, FiveSight)
 BPEL is above all a simple Orchestration language not a
Business Process Language
 BPEL would require that every process
 Either has a “center” of execution
 A process is composed of a large set of orchestration
definitions interacting with each other

In pi-calculus, even a variable is a process…
 BPEL assumes that business processes can be fully captured in
a single definition, including all possible exception paths
 Not sure this is the right assumption
© attachmate 2004
A business process does not have a
“center”…it is de facto “peer-to-peer”
Sync ItemMaster
Sync ProductionOrder
Manufacturing
Capacity Analysis
Sync Routing
Sync BillOfMaterial
Sync ItemMaster
Sync ProductionOrder
ERP
Show DispatchList © attachmate 2004
Sync Item
Get DispatchList
Sync Prodorder
OAGIS 8.1
Scenario 50
Sync Routing
Sync DispatchList
Sync BOM
Update WIPConfirm
Confirm InventoryIssue
Manufacturing/
Production
Planning
Manufacturing
Execution (MES)
Update WIPConfirm
Sync BillOfMaterial
Confirm InventoryIssue
Sync Routing
A very simple example
 A buyer orders some goods from a supplier
 The supplier performs a series of steps to
fulfill the order




Approve the order
Update the order entry system
Update the billing system
…
© attachmate 2004
Orchestration languages are a critical
piece of the puzzle
 They allow us to implement complex services
which involve:


Long running (from a few hours to a few
months),
And event driven business logic
 They are not about modeling Business
Processes by themselves


Different orchestration (i.e. different services)
can run within the same business process
And vice versa
© attachmate 2004
A Business Process can be Viewed as a Multi-Party
Choreography (not orchestration) of Peer Services
Start
Buyer
Supplier
RFQ
Mapping
Routing
Sales
person
SFA
RFQ
Quote
RFQ
Events
Order
Order
ERP
Account
User
Activity
Accounts
Order
Information
Entity
Invoice
Orders
Sales
Order
Invoice
Billing
Activity
© attachmate 2004
SalesTax.com
CreditCheck.com
Services in a SOA are orchestrated (BPEL) ! This is one
of the best model to re-use existing business logic
Quote Service
Orchestration Definition
RFQ
<<receive>>
RFQ
Entity
<<invoke>>
GetQuote
Entity
State
Ok?
Quote
No
Nack
sendNack
<<invoke>>
calculateSalesTax
Quote
updateDB
RFQ
Sales
Tax
<<send>>
quote
Transition
Order
No
Ok?
© attachmate 2004
Message flow
A Choreography Provides a Model of
the Event Flow Between Activities
Start
Buyer
Supplier
Order Entry
Manager
Billing
(Self)
PO
AckPO
PO
PO
BTA1
Wit1
PO
AckPO
Sales
order
OpA1
OpA2
[BusinessFailure]
Failure
© attachmate 2004
[Success]
Success
So …
 Orchestration
 « … is an emerging [concept] that would give
programmers a way to formally describe processes
underlying business applications so that they can be
exposed and linked to processes in other
applications »
 Choreography
 Is a concept that specifies how these processes are
linked together across the enterprise
 Choreography can be « active » when mapping and
routing are necessary
 They are both a form of Coordination
© attachmate 2004
Bringing BPM and SOA together
 The foundation is becoming sound with strong
theoretical support


A big piece still missing: “state” (IMHO)
Shift from Orchestration to Business Process Definition
 Once the foundation is in place we should see
Domain Specific Languages (DSL) appear that are a
lot closer to the way the users (not the programmers)
think about a Business Process
© attachmate 2004
A Technical Model for Constructing
Software in SOA
 We need to adapt the foundation of modern
application architecture

Model-View-Controller
 Services
 Controller  Coordination
 View
?
 Model
© attachmate 2004
The Model-View-Controller pattern
Revisited
SelectView
View
Task
Request
Controller
Task
Engine
WS
Service
Request
Model
WS
SelectTask
ChangeState
Model Changed
© attachmate 2004
WS
Model
Changed
WS
Query
UI Controller
Business
Process
Controller
SOA requires a Complete Separation
of the Business Logic and UI
View
Task
Engine
WS
Business
Process
Controller
© attachmate 2004
WS
CRM
WS
PLM
WS
ERP
Service
Request
WS
WS
Query
Engine
WS
UI
Controller
It is likely that BPM will be the main
paradigm for the « Controller » in a SOA
View
Business Process Execution
WS
Task
Engine
Integration
Server
Context
(Decoupling for
B2B and EAI)
ALS
© attachmate 2004
WS
WS
Orchestration
Engine
WS
CRM
WS
Orchestration
Engine
WS
PLM
WS
ERP
Orchestration
Engine
Registry
Conclusion
The Future Belongs to Whom Can Master Connectivity
Service Orientation is a
New Computing Paradigm
 Not as a new name for
 API
 Component
 A genuine set of concepts with which we can
construct new kinds of software

This is as significant if not more than Object
Orientation
 In particular SO forces us to think about enabling the
same piece of code to be leveraged


by large numbers of consumers
in unforeseen context
© attachmate 2004
SOA is still far ahead of us
 We still need to shape what SOA means
 I have emphasized 3 concepts but there are a lot more
and a lot more not even uncovered today
 BPM and SOA will complement each other
 We need lots of work to achieve and deliver the SOA
value and go beyond “toy” applications of SOA

At best we are capable of delivering web services
today
 Standards work is both a curse and a blessing
 They open the road but blur the space and bring
confusion because of the lack of … coordination
© attachmate 2004
We can expect
 A new “gold rush” to own and publish application
“services”

Mainframe and Client Server applications (ERP, CRM,
SCM…) will be impacted dramatically
 Far richer and smarter software
 Could also become a nightmare if we look at all the
security breaches that occur today
 However, some key enabling technologies are still
missing …

Standards “convergence” is now of primary importance
© attachmate 2004