01 introduction

462 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
462
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

01 introduction

  1. 1. Service Oriented Architecture Lecture 1: Introduction95-843: Service Oriented Architecture Master of Information System 1 Management
  2. 2. 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 2 Management
  3. 3. Course Web Site• http://www.andrew.cmu.edu/~mm6 95-843: Service Oriented Architecture Master of Information System 3 Management
  4. 4. 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 4 Management
  5. 5. 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 5 Management
  6. 6. 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 6 Management
  7. 7. What is architecture? Victorian Gothic or Neo-Gothic architecture95-843: Service Oriented Architecture Master of Information System 7 Management
  8. 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 8 Management
  9. 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. Chapter one 95-843: Service Oriented Architecture of Reynolds Master of Information System 9 Management
  10. 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 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 Architecture Master of Information System 10 Management
  11. 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 From Newcomer 95-843: Service Oriented Architecture Master of Information System 11 Management
  12. 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 integration System Master of Information Management 12
  13. 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 13 Management
  14. 14. XML Preferred (2)- Pervasive technology for definingbusiness documents and exchangingbusiness information, including standardvocabularies for many industries.- Ubiquitous software for handlingoperations on XML, including parsers,queries, and transformations. From Newcomer 95-843: Service Oriented Architecture Master of Information System 14 Management
  15. 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. Modified from a talk by Daryl 95-843: Service Oriented Architecture Master of Information System Plummer 15 Management of Gartner.
  16. 16. 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 16 Management
  17. 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 17 Management
  18. 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 adoptionOrientedstandards. 95-843: Service of Architecture 18 Master of Information System Management
  19. 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 19 Management
  20. 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 20 Management
  21. 21. Petri NetsConsider 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 21 Management
  22. 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 onone member of P and one memberof T. The set P is called the set ofplaces (conditions) and the set T isthe set of transitions (events). 95-843: Service Oriented Architecture Master of Information System 22 Management
  23. 23. Petri NetsPlaces 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 23 Management
  24. 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 24 Management
  25. 25. A Marked Petri NetA marking of a Petri net assigns each place anonnegative integer n. We say each place p ismarked with n tokens. Tokens are representedas black dots. ** t1 p2 p1 t3 * * t2 p3 p4 95-843: Service Oriented Architecture Master of Information System 25 Management
  26. 26. Firing TransitionsIn a Petri net, if an edge is directedfrom place p to transition t, we say p isan input place for transition t. An outputplace is defined similarly. If every inputplace for a transition t has at least onetoken, we say that t is enabled. A firingof an enabled transition removes onetoken from each input place and addsone token to each output place. Atransition can fire only if it’s enabled.Firing a transition is an atomic 95-843: Service Oriented Architectureoperation. Master of Information System Management 26
  27. 27. Fire Transition t1 (ready?) ** t1 p2 p1 t3 * * t2 p3 p4 95-843: Service Oriented Architecture Master of Information System 27 Management
  28. 28. Transition t1 Fired* * t1 p2p1 t3 * t2p3 p4 95-843: Service Oriented Architecture Master of Information System 28 Management
  29. 29. Fire Transition t3 (Ready?)* * t1 p2p1 t3 * t2p3 p4 95-843: Service Oriented Architecture Master of Information System 29 Management
  30. 30. Transition t3 Fired* t1 p2p1 t3 t2p3 p4 95-843: Service Oriented Architecture Master of Information System 30 Management
  31. 31. Petri NetsConsider again the followingprogram:a = 1;b = 2;c = 3;a = a + 1;c = b + c;b = a + c; 95-843: Service Oriented Architecture Master of Information System 31 Management
  32. 32. Modeled as a Petri Net a=1 a=a+1 *p1 p4 b=2 b=a+c* p7 p5 c=b+cp2 p9 c=3 * p8 p6p3 95-843: Service Oriented Architecture Master of Information System 32 Management
  33. 33. Fire Transitions (ready?) a=1 a=a+1 *p1 p4 b=2 b=a+c* p7 p5 c=b+cp2 p9 c=3 * p8 p6p3 95-843: Service Oriented Architecture Master of Information System 33 Management
  34. 34. Transitions Fired a=1 a=a+1 *p1 p4 b=2 b=a+c * p7 p5 c=b+cp2 p9 c=3 * p8 p6p3 95-843: Service Oriented Architecture Master of Information System 34 Management
  35. 35. Fire Transitions (Ready) a=1 a=a+1 *p1 p4 b=2 b=a+c * p7 p5 c=b+cp2 p9 c=3 * p8 p6p3 95-843: Service Oriented Architecture Master of Information System 35 Management
  36. 36. Transitions Fired a=1 a=a+1p1 p4 * b=2 b=a+c p7 p5 c=b+cp2 p9 c=3 * p8 p6p3 95-843: Service Oriented Architecture Master of Information System 36 Management
  37. 37. Fire Last Transition (Ready?) a=1 a=a+1p1 p4 * b=2 b=a+c p7 p5 c=b+cp2 p9 c=3 * p8 p6p3 95-843: Service Oriented Architecture Master of Information System 37 Management
  38. 38. Last Transition Fired a=1 a=a+1p1 p4 b=2 b=a+c p7 * p5 c=b+cp2 p9 c=3 p8 p6p3 95-843: Service Oriented Architecture Master of Information System 38 Management
  39. 39. In This ClassAll 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 Architecture Master of Information System 39 Management
  40. 40. 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. Oriented Architecture 95-843: Service Master of Information System 40 Management
  41. 41. LivenessA 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 someadditional firing sequence. 95-843: Service Oriented Architecture Master of Information System 41 Management
  42. 42. 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 Architecture Master of Information System 42 Management
  43. 43. D available * Request D Request D D ready D ready Finished with D and P Finished with D and PRelease Process Release ProcessD and P D and P P ready P ready Request P Request P P available * Person 1 Person 2 95-843: Service Oriented Architecture Master of Information System 43 Management
  44. 44. DeadlockFour 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 cant 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 44 Management
  45. 45. Petri Nets Service AlgebraPetri 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◊ S 2  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 S2Each operation returns a service that may or may not be involved withother operations. Oriented Architecture 95-843: Service Master of Information System 45 Management
  46. 46. The Empty Service ε P *95-843: Service Oriented Architecture Master of Information System 46 Management
  47. 47. Service S1 S1 * i1 : : α : : o195-843: Service Oriented Architecture Master of Information System 47 Management
  48. 48. Service S2 S2 * i2 : β : γ : : o295-843: Service Oriented Architecture Master of Information System 48 Management
  49. 49. Service S3 S3 * i3 : : : : o395-843: Service Oriented Architecture Master of Information System 49 Management
  50. 50. Sequence S1  S2 * i = i1 S1 : : : : o1 S2 i2 : : o=o295-843: Service Oriented Architecture Master of Information System 50 Management
  51. 51. Alternative S1⊕ S2  i S1 S2 i2 i1 … … α β γ … … o1 o2 o95-843: Service Oriented Architecture Master of Information System 51 Management
  52. 52. Arbitrary Sequence S1 ◊ S2  p1 p2 p3 S2 S1 i1 i2 α β γ o1 o2 p4 p5 95-843: Service Oriented Architecture Master of Information System 52 Management
  53. 53. Services µS1 S1 … … ∂i i1 o  o1 … … .. 95-843: Service Oriented Architecture Master of Information System 53 Management
  54. 54. Services S1 ||c S2  S2S1 i1 i2 p1 α β ϒ p2 o1 o2 o 95-843: Service Oriented Architecture Master of Information System 54 Management
  55. 55. Services (S1|S2) ~>S3  S1 i1 S2 i2 α β γ o1 o2 p1This operation is p2a discriminator.S1 and S2 may be S3 i3two services providing Will wait until S1 orthe results of the S2 completessame complex query.We take the first o3 Will wait for the laterto complete. one to complete 95-843: Service Oriented Architecture o Master of Information System 55 Management
  56. 56. Services [S1(p1,q1):Sn(pn,qn)] i  send_req_servS1 i1 Sn in p1 pn rec_req_1 rec_req_n send_resp_1 send_resp_n q1 qn … …o1 u on select_serv p … Assume middle branch q gains info on service qualities. The two services provide two 95-843: Service Oriented Architecture entry points. Master of Information System o 56 Management
  57. 57. An Example of Refinement  i1S1 assess_claim indemnity_customer convoke_customer o1 95-843: Service Oriented Architecture Master of Information System 57 Management
  58. 58. An Example of Refinement i  S2  i2 assess_simple_claim assess_complex_claimsassess_simple_claim assess_complex_claim indemnify_customer convoke_customer o2 o Ref(S1,assess_claim,S2) 95-843: Service Oriented Architecture Master of Information System 58 Management
  59. 59. Example Service (SM ||c1( OCS|| c2 IP))OCS : Online Computing StoreSM : Sony MonitorsIP : Intel ProcessorsThe Online Computing Store needs Sony monitors andIntel processors. 95-843: Service Oriented Architecture Master of Information System 59 Management
  60. 60. Example Service SM ||c1( OCS|| c2 IP)  OCS || c2 IP OCS SM rec_ord_pc IPrec_ord_mon rec_ord_pr send_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 60 Management
  61. 61. A QuizDescribe this web service in words.Ref(S1, assess_claim, [A1:An]) 95-843: Service Oriented Architecture Master of Information System 61 Management
  62. 62. Properties of The Service AlgebraEach 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 62 Management
  63. 63. 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 63 Management
  64. 64. Desired Properties of the Service Algebra n (16) ∀{i1,…,in} ={1,…,n} ∏ Si= ∏ Si Select the best of n services w/o concern for initial state names. i ∈{i ,…,i } i=1 1 n n n (17) If Sj = ε then ∏ Si = ∏ Si Don’t select the empty service. i=1 i=1,i≠j If a is not an operation Ref(S1,a,S2) = S1 if a ∉ L1(T1) 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 64 Management
  65. 65. Example ProofProve: S1 ◊ S2 = S2 ◊ S1S1 ◊ S2 = (S1  S2) ⊕ (S2  S1)(S1  S2) ⊕ (S2  S1) = (S2  S1) ⊕ (S1  S2) = S2 ◊ S1 95-843: Service Oriented Architecture Master of Information System 65 Management

×