Sei sulla pagina 1di 67

Service Oriented

Architecture
Lecture 1: Introduction

95-843: Service Oriented Architecture


Master of Information System
Management

Plan for the week

Course Introduction
Some principles and definitions
Some Theory
Technology Foundations
Homework 1
Getting logged on to Oracles
SOA Suite
95-843: Service Oriented Architecture
Master of Information System
Management

Course Web Site


http://www.andrew.cmu.edu/~mm6

95-843: Service Oriented Architecture


Master of Information System
Management

Course Software
We will be using Oracle SOA Suite 11g R1
for projects and demonstrations.
It will be assumed the the student is able to
program in Java and use an IDE.

95-843: Service Oriented Architecture


Master of Information System
Management

Structure of the Course


Lectures/class participation
Homework (pencil and paper and
programming)
Midterm exam
Readings from IBMs High level
reference architecture will be assigned.
Reading from the required course text
and the web will be assigned.
Presentations
Final examination
95-843: Service Oriented Architecture
Master of Information System
Management

Readings
For this week, read the Introduction
to Petri Nets and the paper A Petri
Net-based Model for Web Service
Composition.
Read Chapter One of Oracle SOA
Suite 11g R1.
Read the Introduction and Chapter 1
of Understanding SOA with Web
Services.
95-843: Service Oriented Architecture
Master of Information System
Management

What is architecture?
Victorian Gothic
or Neo-Gothic
architecture

95-843: Service Oriented Architecture


Master of Information System
Management

Victorian Free Classical style

95-843: Service Oriented Architecture


Master of Information System
Management

Adelaide Town Hall

Architecture From
Reynolds Text
Architecture implies a consistent and coherent design
approach. Essential principles include:
Consistency: The same challenges
should be addressed in a uniform way.
Reliability: The structures created must be fit to
purpose and meet the demands for which they are
designed.
Extensibility: A design must provide a framework that
can be expanded in ways both foreseen and
unforeseen.
Scalability: The implementation must be capable of
being scaled to accommodate increasing load by adding
hardware to the solution.
95-843: Service Oriented Architecture
Master of Information System
Management

Why is SOA Different?


(1) Terminology: Both IT people and
business people know what a service
is.
(2) Interoperability: The interfaces and the wire
protocols are based on standards.
(3) Extension and Evolution not rip and
replace.
(4) Reuse of both functionality and
machine resources.
95-843: Service Oriented Architecture
Master of Information System
Management

Chapter one
of Reynolds

10

SOA Defined
SOA is the architectural style that
supports loosely coupled services to
enable business flexibility in an
interoperable, technology agnostic
manner. SOA consists of a composite
set of business-aligned services that
support a flexible and dynamically reconfigurable end-to-end business
process realization using interfacebased service descriptions. From a paper
by Borges, Holley and Arsanjani.
95-843: Service Oriented Architecture
Master of Information System
Management

11

Web Services Preferred(1)


Web Services are XML-based
technologies for messaging,
service descriptions, discovery, and
external features providing:
- Pervasive open standards for
distributed computing interface
descriptions and document
exchange via messages
95-843: Service Oriented Architecture
Master of Information System
Management

From Newcomer
12

Web Services Preferred(2)


- Independence from the
underlying execution
environment and application
platforms.
- Extensibility for enterprise qualities of
service such as security, reliability,
and transactions.
- Support for composite applications
such as business process flows,
multi-channel access, and rapid
integration
95-843: Service Oriented Architecture
Master of Information System
Management

13

XML Preferred (1)


The Extensible Markup Language is a
common, independent data format
across the enterprise and beyond that
provides:
- Standard data types and
structures, independent of any
programming language,
development environment or
software system.
From Newcomer

95-843: Service Oriented Architecture


Master of Information System
Management

14

XML Preferred (2)


- Pervasive technology for defining
business documents and exchanging
business information, including standard
vocabularies for many industries.
- Ubiquitous software for handling
operations on XML, including parsers,
queries, and transformations.

From Newcomer
95-843: Service Oriented Architecture
Master of Information System
Management

15

Build an SOA in 8 Steps


(1) Business needs come first (not
services) What problem are we
trying to solve?
(2) What aspects can be
implemented as services? Old
services? New services? Legacy
wrappers?
(3) Track services with registries and
repositories.
95-843: Service Oriented Architecture
Master of Information System
Management

Modified from a
talk by Daryl
Plummer
16
of Gartner.

Build an SOA in 8 Steps


(4) Govern the services. We need to
encourage desired behavior at
many levels, across enterprises,
and at different stages. We need
to monitor behavior, enforce
policies & assess user
satisfaction.
95-843: Service Oriented Architecture
Master of Information System
Management

17

Build an SOA in 8 Steps


(5) Secure the services. Using
established standards, we need
privacy, identification,
authentication, and
authorization.
This may need to
be federated security (over more
than one organization.)
95-843: Service Oriented Architecture
Master of Information System
Management

18

Build an SOA in 8 Steps


(6) Manage the services. Are
messages arriving on time? Is
everything operating properly?
(7) Virtualization through mediation. Are
we free to move and change the
services? Do we need an ESB that acts
as a central hub for message routing
and transformations?
(8) Design for interoperability through the
adoption of standards.
95-843: Service Oriented Architecture
Master of Information System
Management

19

Objectives of This Course


(1) Study Foundations of SOA
Mathematical models (Petri nets)
Important standards
Orchestration and Choreography
The Enterprise Service Bus
Reference Architectures
Enterprise Integration Patterns
(2) Get hands on experience with
Oracles SOA Suite of tools.

95-843: Service Oriented Architecture


Master of Information System
Management

20

A Mathematical
Foundation
Petri Nets
Petri Nets as applied to Web
Services
Why not flow charts?
Why not UML sequence diagrams?
We want to work at a higher level
and exploit parallel execution.
Plus, Petri nets are cool!
95-843: Service Oriented Architecture
Master of Information System
Management

21

Petri Nets
Consider the following program:
a = 1;
What is the normal process order?
b = 2;
c = 3;
Other orderings are possible.
a = a + 1;
c = b + c;
b = a + c;
95-843: Service Oriented Architecture
Master of Information System
Management

22

Petri Nets
A Petri net is a directed graph G =
(V,E), where V = P U T and P T
= . Any edge e in E is incident on
one member of P and one member
of T. The set P is called the set of
places (conditions) and the set T is
the set of transitions (events).

95-843: Service Oriented Architecture


Master of Information System
Management

23

Petri Nets
Places are typically drawn as circles and transitions as bars.

p1

t1

p2
t3

p3

t2

95-843: Service Oriented Architecture


Master of Information System
Management

p4
24

Petri Net G = (V,E)


P = {p1,p2,p3,p4}
T = {t1,t2,t3}
E = {(p1,t1),(t1,p2),(p2,t3),(p3,t1),(p3,t2),(t2,p4),(p4,t3)}

p1

t1

p2
t3

p3

t2

95-843: Service Oriented Architecture


Master of Information System
Management

p4
25

A Marked Petri Net


A marking of a Petri net assigns each place a
nonnegative integer n. We say each place p is
marked with n tokens. Tokens are represented as
black dots.
**
p1

t1

t3

*
p3

p2
*

t2

95-843: Service Oriented Architecture


Master of Information System
Management

p4
26

Firing Transitions
In a Petri net, if an edge is directed from
place p to transition t, we say p is an input
place for transition t. An output place is
defined similarly. If every input place for a
transition t has at least one token, we say
that t is enabled. A firing of an enabled
transition removes one token from each
input place and adds one token to each
output place. A transition can fire only if its
enabled. Firing a transition is an atomic
operation.
95-843: Service Oriented Architecture
Master of Information System
Management

27

Fire Transition t1 (ready?)

**
p1

t1

t3

*
p3

p2
*

t2

95-843: Service Oriented Architecture


Master of Information System
Management

p4
28

Transition t1 Fired

*
p1

t1

p2
t3
*

p3

t2

95-843: Service Oriented Architecture


Master of Information System
Management

p4
29

Fire Transition t3 (Ready?)

*
p1

t1

p2
t3
*

p3

t2

95-843: Service Oriented Architecture


Master of Information System
Management

p4
30

Transition t3 Fired

*
p1

t1

p2
t3

p3

t2

95-843: Service Oriented Architecture


Master of Information System
Management

p4
31

Petri Nets
Consider again the following
program:
a = 1;
b = 2;
c = 3;
a = a + 1;
c = b + c;
b = a + c;
95-843: Service Oriented Architecture
Master of Information System
Management

32

Modeled as a Petri Net


*

a=1

p1
b=2

a=a+1
p4

b=a+c
p7

*
p2

p5

p9

c=3

*
p3

c=b+c
p8

p6
95-843: Service Oriented Architecture
Master of Information System
Management

33

Fire Transitions (ready?)


*

a=1

p1
b=2

a=a+1
p4

b=a+c
p7

*
p2

p5

p9

c=3

*
p3

c=b+c
p8

p6
95-843: Service Oriented Architecture
Master of Information System
Management

34

Transitions Fired
a=1
*
p1
b=2

a=a+1

p4

b=a+c

*
p2

p7

p5

p9

c=3
*

p3

c=b+c
p8

p6
95-843: Service Oriented Architecture
Master of Information System
Management

35

Fire Transitions (Ready)


a=1
*
p1
b=2

a=a+1

p4

b=a+c

*
p2

p7

p5

p9

c=3
*

p3

c=b+c
p8

p6
95-843: Service Oriented Architecture
Master of Information System
Management

36

Transitions Fired
a=1
p1
b=2

a=a+1
p4

b=a+c

p7
p2

p5

c=b+c

p9

c=3

p8
p3

p6
95-843: Service Oriented Architecture
Master of Information System
Management

37

Fire Last Transition (Ready?)


a=1
p1
b=2

a=a+1
p4

b=a+c

p7
p2

p5

c=b+c

p9

c=3

p8
p3

p6
95-843: Service Oriented Architecture
Master of Information System
Management

38

Last Transition Fired


a=1
p1
b=2

a=a+1
p4

b=a+c
p7

p2

p5

c=b+c

p9

c=3
p8

p3

p6
95-843: Service Oriented Architecture
Master of Information System
Management

39

In This Class
All of our Petri Nets will begin with a single input place and
end with a single output place.
We will always start the Petri Net off with a single token in the
input place.

95-843: Service Oriented Architecture


Master of Information System
Management

40

Modeling a process
When a flight lands, passengers are asked to remain seated
until the plane stops and the seat belt sign is off. Then, people
gather their belongings and leave the plane. At that point, each
seat area is checked by two flight attendants.
How would you model this business process with a Petri net?

95-843: Service Oriented Architecture


Master of Information System
Management

41

Two Quizzes (Take out


pencil and paper)
(1) The Petri Net we drew begins with three markings.
Redraw the Petri net so that it begins with a single marking.

(2) Build a Petri net to wash a lion based on the following steps.
1.
2.
3.
4.
5.
6.
7.
8.
9.

Get lion.
Get soap. (real soap not SOAP)
Get tub.
Put water in tub.
Put lion in tub.
Wash lion with soap.
Rinse lion.
Remove lion from tub.
Dry
lion.
95-843:
Service Oriented Architecture
Master of Information System
Management

42

Liveness
A Petri net is deadlocked if no transition can fire.
A marking M for a Petri net is live if, beginning from M, no
matter what sequence of firings has occurred, it is possible
to fire any given transition by processing through some
additional firing sequence.
If a marking M is live for a Petri net P, then no matter what
sequence of transitions is fired, P will never deadlock. Indeed,
we can fire any transition by proceeding through some
additional firing sequence.

95-843: Service Oriented Architecture


Master of Information System
Management

43

Deadlock Example
Case:
Person 1 requests disk drive D. D is ready.
Person 1 requests printer P. P is ready.
Person 1 uses and releases P and D. P and D are available.
Case:
Person 1 requests disk drive D. D is ready.
Person 2 requests printer P. P is ready.
Person 1 is waiting for person 2 to release P.
Person 2 is waiting for person 1 to release D.
No transitions can fire and we have deadlock.

95-843: Service Oriented Architecture


Master of Information System
Management

44

D available

*
Request D

Request D

D ready

D ready

Finished
with D and P

Release
D and P

Finished
with D and P

Process

Process

P ready

P ready

Request P

Release
D and P

P available

Person 1
95-843: Service Oriented Architecture
Master of Information System
Management

Request P

*
Person 2
45

Deadlock
Four Requirements for deadlock:
(1) Resources need mutual exclusion. They are not thread safe.
(2) Resources may be reserved while a process is waiting for more.
(3) Preemption is not allowed. You can't force a process to give
up a resource.
(4) Circular wait is possible. X wants what Y has and Y wants what Z
has but Z wants what X has.
Solutions (short course):
Prevention (disallow one of the four)
Avoidance (study what is required by all before beginning)
Detection and recovery (reboot if nothing is getting done)

95-843: Service Oriented Architecture


Master of Information System
Management

46

Petri Nets Service Algebra


Petri Nets may be represented with an algebra:
S ::

The service that does nothing


X
A basic service
S1 S2

S1 followed by S2 Sequence operator


S1 S2
S1 xor S2
S1 S2

arbitrary sequence
S

iteration on S
S1 c S2
parallel with communication
(S1 S2) --> S3
As soon as S1 or S2 do S3
[S1(p1,q1):(SN(pn,qn)]| dynamically select one of many to execute
Ref(S1,a,S2)
Do S1 with any a operations replaced by S2

Each operation returns a service that may or may not be involved with
95-843: Service Oriented Architecture
other operations.
47
Master of Information System
Management

The Empty Service

P
*

95-843: Service Oriented Architecture


Master of Information System
Management

48

Service S1

S1

i1

*
:
:

:
:

o1

95-843: Service Oriented Architecture


Master of Information System
Management

49

Service S2

S2

i2

*
:
:

:
:

o2

95-843: Service Oriented Architecture


Master of Information System
Management

50

Service S3

S3

i3

:
:

:
:

o3

95-843: Service Oriented Architecture


Master of Information System
Management

51

Sequence S1 S2
i = i1

*
S1
:

:
o1

S2

i2
:

:
o=o2

95-843: Service Oriented Architecture


Master of Information System
Management

52

Alternative S1 S2

S1

i1

S2

i2

o1

o2

o
95-843: Service Oriented Architecture
Master of Information System
Management

53

Arbitrary Sequence S1 S2

p1
p3

S1

p2

S2

i1

i2

o1

p4
95-843: Service Oriented Architecture
Master of Information System
Management

o2

p5
54

Services

S1

S1

i1

o1
..

95-843: Service Oriented Architecture


Master of Information System
Management

55

Services S1 ||c S2
S2

S1

i2

i1
p1

p2
o1

o2
o

95-843: Service Oriented Architecture


Master of Information System
Management

56

Services (S1|S2) ~>S3


S1

i1

S2

i2

o1

o2
p1

This operation is
a discriminator.
S1 and S2 may be
two services providing
the results of the
same complex query.
We take the first
to complete.

p2

S3

95-843: Service Oriented Architecture


Master of Information System
Management

i3

o3
o

Will wait until S1 or


S2 completes
Will wait for the later
one to complete
57

Services [S1(p1,q1):Sn(pn,qn)]

S1

i1

send_req_serv

Sn
pn

p1

rec_req_1

o1

in

q1

rec_req_n

send_resp_1 send_resp_n

select_serv

qn

on

q
95-843: Service Oriented Architecture
Master of Information System
Management

Assume middle branch


gains info on service
qualities. The two
services provide two
entry points.
58

An Example of Refinement

S1

i1
assess_claim

indemnity_customer

convoke_customer

o1

95-843: Service Oriented Architecture


Master of Information System
Management

59

An Example of Refinement
i

S2

assess_simple_claim

i2
assess_simple_claim
assess_complex_claim

assess_complex_claims

indemnify_customer

convoke_customer

o2

Ref(S1,assess_claim,S2)
95-843: Service Oriented Architecture
Master of Information System
Management

60

Example Service (SM ||c1( OCS||

c2

IP))

OCS : Online Computing Store


SM : Sony Monitors
IP : Intel Processors
The Online Computing Store needs Sony monitors and
Intel processors.

95-843: Service Oriented Architecture


Master of Information System
Management

61

Example Service SM ||c1( OCS||

SM

c2

IP)

OCS || c2 IP
OCS
IP

rec_ord_pc

rec_ord_mon

send_ord_pr

rec_ord_pr

send_ord_mon
send_del_mon
rec_del_pr

send_del_pr

rec_del_mon

assemble_PC

o
95-843: Service Oriented Architecture
Master of Information System
Management

62

A Quiz
Describe this web service in words.
Ref(S1, assess_claim, [A1:An])

95-843: Service Oriented Architecture


Master of Information System
Management

63

Properties of The Service Algebra


Each operation returns a web service.

S1 (S2 S3) = (S1 S2) S3

(1)

S=S

(2)

S=S

(3)

S1 S2 = S 2 S1

(4)

S1 (S2 S3) = (S1 S2) S3

(5)

SS=S

(6)

(S1 S2) S3 = (S1 S3)(S2 S3)

(7)

S1 S2 = (S1 S2) (S2 S1)

(8)

95-843: Service Oriented Architecture


Master of Information System
Management

64

Desired Properties of the Service Algebra


=

(9)

S1 c S2 = S2 c S1

(10)

S1 (S2 S3) = (S1 S2) S3

(11)

S = S

(12)

(S1S2) ~>S3 = (S2S1) ~> S3

(13)

(S1 ) ~> S2 = S1 S2

(14)

(S1S2) ~> = S1 S2

(15)

95-843: Service Oriented Architecture


Master of Information System
Management

65

Desired Properties of the Service Algebra


n

{i1,,in} ={1,,n}

Select the best of n services


w/o concern for initial state names.i {i ,,i }
n
1

If Sj = then Si = Si
i=1

i=1,ij

Ref(S1,a,S2) = S1 if a L1(T1)

(16)

Si= Si
i=1

(17)
Dont select the
empty service.
If a is not an operation
then no refinement.

(18)

S1 S2 = S2 S1 (from (8) and (4))

(19)

S S = S S (from (8) and (6))

(20)

S = S (from (8), (2), (3), and (6))

(21)

95-843: Service Oriented Architecture


Master of Information System
Management

66

Example Proof
Prove: S1 S2 = S2 S1
S1 S2 = (S1 S2) (S2 S1)
(S1 S2) (S2 S1) = (S2 S1) (S1 S2) = S2 S1

95-843: Service Oriented Architecture


Master of Information System
Management

67

Potrebbero piacerti anche