Service Oriented Architecture Lecture 1: Introduction 1

advertisement
Service Oriented
Architecture
Lecture 1: Introduction
95-843: Service Oriented Architecture
Master of Information System
Management
1
Plan for the week
•
•
•
•
•
•
Course Introduction
Some principles and definitions
Some Theory
Technology Foundations
Homework 1
Getting logged on to Oracle’s
SOA Suite
95-843: Service Oriented Architecture
Master of Information System
Management
2
Course Web Site
• http://www.andrew.cmu.edu/~mm6
95-843: Service Oriented Architecture
Master of Information System
Management
3
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
4
Structure of the Course
• Lectures/class participation
• Homework (pencil and paper and
programming)
• Midterm exam
• Readings from IBM’s 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
5
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
6
What is architecture?
Victorian Gothic
or Neo-Gothic
architecture
95-843: Service Oriented Architecture
Master of Information System
Management
7
Victorian Free Classical style
95-843: Service Oriented Architecture
Master of Information System
Management
Adelaide Town Hall
8
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
9
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
95-843: Service Oriented Architecture
13
Master of Information System
integration
Management
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
Oracle’s 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
p4
95-843: Service Oriented Architecture
Master of Information System
Management
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
p4
95-843: Service Oriented Architecture
Master of Information System
Management
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
p2
t3
*
p3
*
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
it’s95-843:
enabled.
Firing a transition is an
Service Oriented Architecture
27
Master of Information System
atomic
operation.
Management
Fire Transition t1 (ready?)
**
p1
t1
p2
t3
*
p3
*
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
a=a+1
*
p1
b=2
p4
b=a+c
p7
*
p5
p2
c=b+c
p9
c=3
*
p3
p8
p6
95-843: Service Oriented Architecture
Master of Information System
Management
33
Fire Transitions (ready?)
a=1
a=a+1
*
p1
b=2
p4
b=a+c
p7
*
p5
p2
c=b+c
p9
c=3
*
p3
p8
p6
95-843: Service Oriented Architecture
Master of Information System
Management
34
Transitions Fired
a=1
a=a+1
*
p1
b=2
p4
b=a+c
*
p7
p5
p2
c=b+c
p9
c=3
*
p3
p8
p6
95-843: Service Oriented Architecture
Master of Information System
Management
35
Fire Transitions (Ready)
a=1
a=a+1
*
p1
b=2
p4
b=a+c
*
p7
p5
p2
c=b+c
p9
c=3
*
p3
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
p5
p2
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
p5
p2
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
p5
p2
*
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
P available
Person 1
95-843: Service Oriented Architecture
Master of Information System
Management
Release
D and P
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
other operations.
95-843: Service Oriented Architecture
Master of Information System
Management
47
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
 i
S1
i1
S2
…
i2
…



…
…
o1
o2
o
95-843: Service Oriented Architecture
Master of Information System
Management
53
Arbitrary Sequence S1 ◊ S2

p1
p2
p3
S1
S2
i1

i2

o1
p4
95-843: Service Oriented Architecture
Master of Information System
Management

o2
p5
54
Services
µS1
S1
…
…

i1
o

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
Will wait until S1 or
S2 completes
o3
o
Will wait for the later
one to complete
57
Services [S1(p1,q1):Sn(pn,qn)]
i
S1
i1
send_req_serv
Sn
pn
p1
rec_req_1
rec_req_n
send_resp_1 send_resp_n
…
o1
in
q1
u
select_serv
qn
…
on
p
…
q
95-843: Service Oriented Architecture
Master of Information System
Management
o
Assume middle branch
gains info on service
qualities. The two
services provide two entry
points.
58
An Example of Refinement
 i1
S1
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
o
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||

c2
IP)
OCS || c2 IP
OCS
SM
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)
SS=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)
(S1S2) ~>S3 = (S2S1) ~> S3
(13)
(S1   ) ~> S2 = S1  S2
(14)
(S1S2) ~>  = 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}

Si=  Si
Select the best of n services
w/o concern for initial state names.i {i1,…,in}
n
n
If Sj =  then  Si =  Si
i=1
i=1,ij
(16)
i=1
(17)
Don’t select the
empty service.
Ref(S1,a,S2) = S1 if a  L1(T1)
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
Download