65
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 1: Introduction

01 introduction

Embed Size (px)

Citation preview

Page 1: 01 introduction

95-843: Service Oriented Architecture1Master of Information System

Management

Service Oriented Architecture

Lecture 1: Introduction

Page 2: 01 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

Page 3: 01 introduction

95-843: Service Oriented Architecture3Master of Information System

Management

Course Web Site

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

Page 4: 01 introduction

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.

Page 5: 01 introduction

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

Page 6: 01 introduction

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”.

Page 7: 01 introduction

95-843: Service Oriented Architecture

What is architecture?

7Master of Information System Management

Victorian Gothic or Neo-Gothicarchitecture

Page 8: 01 introduction

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

Page 9: 01 introduction

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

Page 10: 01 introduction

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.

Page 11: 01 introduction

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

Page 12: 01 introduction

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

Page 13: 01 introduction

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

Page 14: 01 introduction

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

Page 15: 01 introduction

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.

Page 16: 01 introduction

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.

Page 17: 01 introduction

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.)

Page 18: 01 introduction

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.

Page 19: 01 introduction

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.

Page 20: 01 introduction

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!

Page 21: 01 introduction

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.

Page 22: 01 introduction

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).

Page 23: 01 introduction

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.

Page 24: 01 introduction

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

Page 25: 01 introduction

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

Page 26: 01 introduction

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.

Page 27: 01 introduction

95-843: Service Oriented Architecture27Master of Information System

Management

Fire Transition t1 (ready?)

* *

p1

p3

t1

t2

p2

p4

t3

**

Page 28: 01 introduction

95-843: Service Oriented Architecture28Master of Information System

Management

Transition t1 Fired

*

*

p1

p3

t1

t2

p2

p4

t3

*

Page 29: 01 introduction

95-843: Service Oriented Architecture29Master of Information System

Management

Fire Transition t3 (Ready?)

*

*

p1

p3

t1

t2

p2

p4

t3

*

Page 30: 01 introduction

95-843: Service Oriented Architecture30Master of Information System

Management

Transition t3 Fired

p1

p3

t1

t2

p2

p4

t3

*

Page 31: 01 introduction

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;

Page 32: 01 introduction

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

Page 33: 01 introduction

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

Page 34: 01 introduction

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

*

*

*

Page 35: 01 introduction

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

*

*

*

Page 36: 01 introduction

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*

*

Page 37: 01 introduction

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*

*

Page 38: 01 introduction

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

*

Page 39: 01 introduction

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.

Page 40: 01 introduction

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.

Page 41: 01 introduction

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.

Page 42: 01 introduction

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.

Page 43: 01 introduction

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

*

Page 44: 01 introduction

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)

Page 45: 01 introduction

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

Page 46: 01 introduction

95-843: Service Oriented Architecture46Master of Information System

Management

*

P

The Empty Service

Page 47: 01 introduction

95-843: Service Oriented Architecture47Master of Information System

Management

*

: :

:

Service S1

S1i1

o1

:

Page 48: 01 introduction

95-843: Service Oriented Architecture48Master of Information System

Management

*

: :

:

Service S2

S2i2

o2

:

Page 49: 01 introduction

95-843: Service Oriented Architecture49Master of Information System

Management

*

: :

:

Service S3

S3i3

o3

:

Page 50: 01 introduction

95-843: Service Oriented Architecture50Master of Information System

Management

*

: :

: :

Sequence S1 S2

: :

i = i1

i2

o=o2

S1

S2

o1

Page 51: 01 introduction

95-843: Service Oriented Architecture51Master of Information System

Management

Alternative S1 S2

i

i1i2

o

o1 o2

… …

… …

S1S2

Page 52: 01 introduction

95-843: Service Oriented Architecture52Master of Information System

Management

Arbitrary Sequence S1 ◊ S2

S1S2

p1

p3

p2

i2i1

p5p4

o2o1

Page 53: 01 introduction

95-843: Service Oriented Architecture53Master of Information System

Management

S1

o

o1

i1i

Services µS1

… …

… … ..

Page 54: 01 introduction

95-843: Service Oriented Architecture54Master of Information System

Management

S1

S2

i2

o2

o

o1

i1

Services S1 ||c S2

p1

p2

Page 55: 01 introduction

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.

Page 56: 01 introduction

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

Page 57: 01 introduction

95-843: Service Oriented Architecture57Master of Information System

Management

An Example of Refinement

assess_claim

indemnity_customer convoke_customer

S1

o1

i1

Page 58: 01 introduction

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

Page 59: 01 introduction

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.

Page 60: 01 introduction

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

Page 61: 01 introduction

95-843: Service Oriented Architecture61Master of Information System

Management

A QuizDescribe this web service in words.

Ref(S1, assess_claim, [A1:An])

Page 62: 01 introduction

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.

Page 63: 01 introduction

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)

Page 64: 01 introduction

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.

Page 65: 01 introduction

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