0% found this document useful (0 votes)
87 views

Jean-Jacques Dubray, PH.D.: Architect

Service oriented architecture (SOA) is a service-oriented architecture. Services can be reused in contexts and services can be built on top of them. Soa is based on the concept of loosely coupled services.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views

Jean-Jacques Dubray, PH.D.: Architect

Service oriented architecture (SOA) is a service-oriented architecture. Services can be reused in contexts and services can be built on top of them. Soa is based on the concept of loosely coupled services.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 68

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 authors 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 dont 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 1980 LAN Web 1990 XML WS 2000 SOA 2010

Office Workflow EAI BPM B2B EDI WS Mainframe


Client / Server
attachmate 2004 Web/Portal

Business Integration

J2EE .NET

Connectivity Enables Global Processes and Information Access


Internet 1980 LAN LAN Web 1990 WAN XML WS 2000 Web SOA

2010

Information Local Business Processes Global

attachmate 2004

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 We are reaching a new threshold of connectivity and computing power

 Why SOA today?




Mainframe

Client Server

Web

SOA

attachmate 2004

Constructing Software In a Connected World

From Components to Services

Constructing software in the web era (J2EE, .Net, )


View
request response

Client Interne t b2b EAI


CCI
ERP

Controller

App Server
CCI CCI

Model
DB
ERP CRM

CCI: Client Communication Interface

attachmate 2004

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


Consumer 3 XML XML invoke Policies XML Registry Discover and/or Bind 2

SOAP
CCI

SOAP
CCI

SOAP
CCI

1 register

DB

ERP

CRM

Service

Service

Service
attachmate 2004

From Components to (Web) Services


 Requires a client library  Loose coupling via  Message exchanges  Policies  Peer-to-peer  Composable  Context independent  Some overhead  Medium to coarse

 Client / Server  Extendable  Stateless  Fast  Small to medium

granularity

granularity
attachmate 2004

Web Services: what is changing?


 Loose coupling (of course)


Web Services dont require a CCI (Client side Communication Interface)  Very few gears needed to consume a service Web Services can accept message content they do not fully understand or support  XML, WSDL Web services are very late bound  Location is independent of the invocation mechanism  Directories

attachmate 2004

Web Services: What is Changing?


 Peer-to-peer interactions are possible

Request / response is an inefficient and very limiting mode of interaction  As components coarsen, it is difficult to differentiate a client from a server


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
Consumer Discover and/or Bind Policies
Tx XML
Domain Controller
Reliable Messaging

XML

XML
Process

Registry

Registry

CCI

CCI

CCI

register

DB

ERP

CRM

NEP

NEP

NEP
attachmate 2004

The road to SOA


NEP NEP Existing business logic, often model-oriented Global business logic (tax, trade, ) and data access Coordination logic (Tx, Process, ) Metadata driven User Interface NEPs NEP NEP
attachmate 2004

NEP

NEP

NEP

NEP

Shift To A Service-Oriented Architecture

From
Function oriented  Build to last  Prolonged development cycles
 

To
Coordination oriented  Build to change  Incrementally built and deployed

Application silos  Tightly coupled  Object oriented  Known implementation




Enterprise solutions  Loosely coupled  Message oriented  Abstraction



attachmate 2004

Source: Microsoft (Modified)

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 CTX Service S2 S3

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?


S4 S1 CTX Service S2 S3

ALS allow to demarcate units of work shared across several services

ALS Service

attachmate 2004

What is Coordination?
S4 S1 CTX Service S2 S3

A coordinator is an active component of the architecture It can support a service or provide services itself Multiple purposes: - Transaction - Orchestration - Choreography

ALS Service

Coordination Service attachmate 2004

What are the Coordination Topologies?


A B Binary relationship Context and Activity are most often implicit Self-coordination

A B C CTX A B C Coordinator ALS Hub

D E F

Hub and Spoke relationship Context and Activity are handled by the hub Coordination is handled by the hub exclusively

D E 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


attachmate 2004

Source: The Dataweb: An Introduction to XDI, Drummond Reed et al.

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
100% resource addressability Common representation and linking format Common interchange protocol
Source: Drummond Reed
attachmate 2004

Dataweb
XRIs

URIs

HTML

XML/XDI XDI/HTTP XDI/SOAP

HTTP

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 Actor Services Represented by Content 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 centerit is de facto peer-to-peer


Sync ItemMaster Sync ProductionOrder Sync Routing Sync BillOfMaterial Manufacturing Capacity Analysis

Sync ItemMaster Sync ProductionOrder Confirm InventoryIssue Sync Routing Sync BillOfMaterial Sync Prodorder Sync Routing Sync BOM Sync Item Confirm InventoryIssue Update WIPConfirm ERP Update WIPConfirm

Manufacturing/ Production Planning

Sync DispatchList

OAGIS 8.1 Scenario 50

Get DispatchList Show DispatchList attachmate 2004

Manufacturing Execution (MES)

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
RFQ

Supplier
Mapping Routing

SFA
RFQ Order
Quote

Sales person
RFQ Events
Account User Activity

ERP
Accounts

Order

Order Information Entity Invoice

Orders

Sales Order Billing Activity

Invoice

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
<<invoke>> GetQuote

Entity
No

RFQ Quote

Nack

sendNack

Entity State Ok?

<<invoke>> calculateSalesTax

Sales Tax

Quote Order

updateDB

<<send>> quote Transition

No

Ok?
Message flow

attachmate 2004

A Choreography Provides a Model of the Event Flow Between Activities


Start

Buyer
PO AckPO

Supplier
(Self)
PO PO

Order Entry

Manager

Billing

BTA1

Wit1

PO AckPO

Sales order

OpA1

OpA2

[BusinessFailure]

[Success]

Failure
attachmate 2004

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

 Model  Controller  View

Services Coordination ?

attachmate 2004

The Model-View-Controller pattern Revisited


SelectView View Task Request

Controller
Query Model Changed UI Controller Task Engine Service Request
WS

SelectTask

WS WS

ChangeState Model Changed

Business Process Controller

Model
WS

attachmate 2004

SOA requires a Complete Separation of the Business Logic and UI


View

UI Controller Query Engine Task Engine Service Request


WS WS

Business Process Controller

WS

ERP
WS

PLM
WS

CRM
WS

attachmate 2004

WS

It is likely that BPM will be the main paradigm for the Controller in a SOA
View Business Process Execution
WS

Task Engine Context Registry ALS

Integration Server
(Decoupling for B2B and EAI)

WS

WS

Orchestration Engine

Orchestration Engine

ERP

PLM
WS

CRM
WS

Orchestration Engine

attachmate 2004

WS

WS

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

You might also like