Upload
vantinhkhuc
View
160
Download
1
Tags:
Embed Size (px)
Citation preview
95-843: Service Oriented Architecture1Master of Information System
Management
Service Oriented Architecture
Lecture 1: Introduction
95-843: Service Oriented Architecture2Master of Information System
Management
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 Architecture3Master of Information System
Management
Course Web Site
• http://www.andrew.cmu.edu/~mm6
95-843: Service Oriented Architecture4Master 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 Architecture5Master of Information System
Management
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 Architecture6Master 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
What is architecture?
7Master of Information System Management
Victorian Gothic or Neo-Gothicarchitecture
95-843: Service Oriented Architecture
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.
8Master of Information System Management
95-843: Service Oriented Architecture
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.
9Master of Information System Management
Chapter oneof Reynolds
95-843: Service Oriented Architecture10Master of Information System
Management
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 re-configurable end-to-end business process realization using interface-based service descriptions.” From a paper by Borges, Holley and Arsanjani.
95-843: Service Oriented Architecture11Master of Information System
Management
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
From Newcomer
95-843: Service Oriented Architecture12Master of Information System
Management
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 Architecture13Master of Information System
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 Architecture14Master of Information System
Management
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 Architecture15Master of Information System
Management
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.Modified from a talk by Daryl Plummerof Gartner.
95-843: Service Oriented Architecture16Master of Information System
Management
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 Architecture17Master of Information System
Management
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 Architecture18Master of Information System
Management
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 Architecture19Master of Information System
Management
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 Architecture20Master of Information System
Management
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 Architecture21Master of Information System
Management
Petri Nets
Consider the following program: a = 1; b = 2; c = 3; a = a + 1; c = b + c; b = a + c;
What is the normal process order?
Other orderings are possible.
95-843: Service Oriented Architecture22Master of Information System
Management
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 Architecture23Master of Information System
Management
Petri Nets
p1
p3
t1
t2
p2
p4
t3
Places are typically drawn as circles and transitions as bars.
95-843: Service Oriented Architecture24Master of Information System
Management
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
p3
t1
t2
p2
p4
t3
95-843: Service Oriented Architecture25Master of Information System
Management
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
p3
t1
t2
p2
p4
t3
95-843: Service Oriented Architecture26Master of Information System
Management
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’s enabled. Firing a transition is an atomic operation.
95-843: Service Oriented Architecture27Master of Information System
Management
Fire Transition t1 (ready?)
* *
p1
p3
t1
t2
p2
p4
t3
**
95-843: Service Oriented Architecture28Master of Information System
Management
Transition t1 Fired
*
*
p1
p3
t1
t2
p2
p4
t3
*
95-843: Service Oriented Architecture29Master of Information System
Management
Fire Transition t3 (Ready?)
*
*
p1
p3
t1
t2
p2
p4
t3
*
95-843: Service Oriented Architecture30Master of Information System
Management
Transition t3 Fired
p1
p3
t1
t2
p2
p4
t3
*
95-843: Service Oriented Architecture31Master of Information System
Management
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 Architecture32Master of Information System
Management
Modeled as a Petri Net
*
*
*
p1
p2
p3
p4
p5
p6
p7
p8
p9
a=1
b=2
c=3
a=a+1
c=b+c
b=a+c
95-843: Service Oriented Architecture33Master of Information System
Management
Fire Transitions (ready?)
*
*
*
p1
p2
p3
p4
p5
p6
p7
p8
p9
a=1
b=2
c=3
a=a+1
c=b+c
b=a+c
95-843: Service Oriented Architecture34Master of Information System
Management
Transitions Fired
p1
p2
p3
p4
p5
p6
p7
p8
p9
a=1
b=2
c=3
a=a+1
c=b+c
b=a+c
*
*
*
95-843: Service Oriented Architecture35Master of Information System
Management
Fire Transitions (Ready)
p1
p2
p3
p4
p5
p6
p7
p8
p9
a=1
b=2
c=3
a=a+1
c=b+c
b=a+c
*
*
*
95-843: Service Oriented Architecture36Master of Information System
Management
Transitions Fired
p1
p2
p3
p4
p5
p6
p7
p8
p9
a=1
b=2
c=3
a=a+1
c=b+c
b=a+c*
*
95-843: Service Oriented Architecture37Master of Information System
Management
Fire Last Transition (Ready?)
p1
p2
p3
p4
p5
p6
p7
p8
p9
a=1
b=2
c=3
a=a+1
c=b+c
b=a+c*
*
95-843: Service Oriented Architecture38Master of Information System
Management
Last Transition Fired
p1
p2
p3
p4
p5
p6
p7
p8
p9
a=1
b=2
c=3
a=a+1
c=b+c
b=a+c
*
95-843: Service Oriented Architecture
In This Class
39Master of Information System Management
All of our Petri Nets will begin with a single input place andend with a single output place.
We will always start the Petri Net off with a single token in theinput place.
95-843: Service Oriented Architecture40Master of Information System
Management
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. Get lion. 2. Get soap. (real soap not SOAP) 3. Get tub. 4. Put water in tub. 5. Put lion in tub. 6. Wash lion with soap. 7. Rinse lion. 8. Remove lion from tub. 9. Dry lion.
95-843: Service Oriented Architecture41Master of Information System
Management
Liveness
A Petri net is deadlocked if no transition can fire.
A marking M for a Petri net is live if, beginning from M, nomatter what sequence of firings has occurred, it is possibleto fire any given transition by processing through someadditional firing sequence.
If a marking M is live for a Petri net P, then no matter whatsequence 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 Architecture42Master of Information System
Management
Deadlock ExampleCase: 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 Architecture43Master of Information System
Management
D available
Request D
D ready
Finished with D and P
ReleaseD and P
Request D
D ready
Finished with D and P
Process Process
P ready
Request P Request PP available
ReleaseD and P
*
P ready
Person 1 Person 2
*
95-843: Service Oriented Architecture44Master of Information System
Management
Deadlock
44Master of Information System Management
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 Architecture45Master of Information System
Management
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
(S1S2) --> 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 withother operations.
Petri Nets Service Algebra
95-843: Service Oriented Architecture46Master of Information System
Management
*
P
The Empty Service
95-843: Service Oriented Architecture47Master of Information System
Management
*
: :
:
Service S1
S1i1
o1
:
95-843: Service Oriented Architecture48Master of Information System
Management
*
: :
:
Service S2
S2i2
o2
:
95-843: Service Oriented Architecture49Master of Information System
Management
*
: :
:
Service S3
S3i3
o3
:
95-843: Service Oriented Architecture50Master of Information System
Management
*
: :
: :
Sequence S1 S2
: :
i = i1
i2
o=o2
S1
S2
o1
95-843: Service Oriented Architecture51Master of Information System
Management
Alternative S1 S2
i
i1i2
o
o1 o2
… …
… …
S1S2
95-843: Service Oriented Architecture52Master of Information System
Management
Arbitrary Sequence S1 ◊ S2
S1S2
p1
p3
p2
i2i1
p5p4
o2o1
95-843: Service Oriented Architecture53Master of Information System
Management
S1
o
o1
i1i
Services µS1
… …
… … ..
95-843: Service Oriented Architecture54Master of Information System
Management
S1
S2
i2
o2
o
o1
i1
Services S1 ||c S2
p1
p2
95-843: Service Oriented Architecture55Master of Information System
Management
o
o3
Services (S1|S2) ~>S3
p1
p2
o2
S2
S1 i1 i2
o1
S3i3
Will wait until S1 or S2 completes
Will wait for the later one to complete
This operation isa discriminator.S1 and S2 may betwo services providingthe results of the same complex query. We take the first to complete.
95-843: Service Oriented Architecture56Master of Information System
Management
…
……
o1on
q1qn
send_resp_1 send_resp_n
rec_req_nrec_req_1
p1pn
i1
in
select_servu
send_req_serv Sn
q
S1
p
o
Assume middle branch gains info on service qualities. The two services provide two entry points.
Services [S1(p1,q1):Sn(pn,qn)]i
95-843: Service Oriented Architecture57Master of Information System
Management
An Example of Refinement
assess_claim
indemnity_customer convoke_customer
S1
o1
i1
95-843: Service Oriented Architecture58Master of Information System
Management
An Example of Refinement
i2
o2
assess_simple_claim assess_complex_claim
o
i
Ref(S1,assess_claim,S2)
indemnify_customer
assess_simple_claim
convoke_customer
assess_complex_claims
S2
95-843: Service Oriented Architecture59Master of Information System
Management
Example Service (SM ||c1( OCS|| c2 IP))
OCS : Online Computing StoreSM : Sony MonitorsIP : Intel Processors
The Online Computing Store needs Sony monitors andIntel processors.
95-843: Service Oriented Architecture60Master of Information System
Management
Example Service SM ||c1( OCS|| c2 IP)
IP
rec_ord_pr
send_del_pr
OCS
send_ord_pr
rec_del_pr
assemble_PC
rec_del_mon
send_ord_mon
rec_ord_pc
SM
rec_ord_mon
send_del_mon
o
OCS || c2 IP
95-843: Service Oriented Architecture61Master of Information System
Management
A QuizDescribe this web service in words.
Ref(S1, assess_claim, [A1:An])
95-843: Service Oriented Architecture62Master of Information System
Management
Properties of The Service Algebra
S1 (S2 S3) = (S1 S2) S3 (1)
S = S (2)
S = S (3)
S1 S2 = S2 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)
Each operation returns a web service.
95-843: Service Oriented Architecture63Master of Information System
Management
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 Architecture64Master of Information System
Management
Desired Properties of the Service Algebra
{i1,…,in} ={1,…,n} Si= S
i
(16)
If Sj = then Si = Si
(17)
Ref(S1,a,S2) = S1 if a L1(T1) (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)
i {i1,…,in}i=1
n
n
i=1 i=1,ij
n
Select the best of n servicesw/o concern for initial state names.
Don’t select the empty service.
If a is not an operation then no refinement.
95-843: Service Oriented Architecture65Master of Information System
Management
Example ProofProve: S1 S2 = S2 S1
S1 S2 = (S1 S2) (S2 S1)
(S1 S2) (S2 S1) = (S2 S1) (S1 S2) = S2 S1