Service Oriented Architectural Design R. Bruni 1, A. Lluch Lafuente 1, U. Montanari 1, E. Tuosto 2 Department of Computer Science, University of Pisa {bruni,lafuente,ugo}@di.unipi.it Department of Computer Science, University of Leicester et52@mcs.le.ac.uk 3rd International Symposium on Trustworthy Global Computing INRIA Sophia-Antipolis, November 5-6, 2007 Service Oriented Architectural Design 1/27
Introduction Outline 1 Introduction 2 Architectural Design Rewriting 3 Design and Reconfiguration for a Service Modelling Language 4 The end Service Oriented Architectural Design 2/27
Introduction Our world Software Architectures Architectural Styles Reconfigurations SOA Service Oriented Architectural Design 3/27
Introduction Principles of ADR (Architectural Design Rewriting) Software Architectures Designs: graphs with interfaces. Partial designs: designs with holes. Architectural styles Set of design productions (operations over designs). Inspired by context-free graph grammars (Le Métayer et al.). A design term with type T is conformant to style T. Reconfigurations Rewrite rules over design terms, not over graphs. Hierarchical, inductive rules (term rewriting + SOS). Style preservation immediate with rule d : T d : T. No theorem or (non-terminating) algorithm needed! Service Oriented Architectural Design 4/27
Architectural Design Rewriting Outline 1 Introduction 2 Architectural Design Rewriting 3 Design and Reconfiguration for a Service Modelling Language 4 The end Service Oriented Architectural Design 5/27
Service Oriented Architectural Design Architectural Design Rewriting Scenario: Network of Chains or Triangular Meshes Network (design of type NET) = interface + body. Interface = NET-typed edge with one node. NET 3hub 3hub 3hub NET NET 2hub 2hub 2hub triangular mesh of 3hubs Body chain of 2hubs Service Oriented Architectural Design 6/27
Service Oriented Architectural Design Architectural Design Rewriting The notation of design productions Traditional production rule notation L ::= R u 1 e:2n u 2 ::= u 1 e 1 :2N e 2 :2N u 2 ADR notation L encapsulating R e:2n u 1 e 1 :2N e 2 :2N u 2 ADR functional reading link2 : 2N 2N 2N Service Oriented Architectural Design 7/27
Service Oriented Architectural Design Architectural Design Rewriting Chain style 2N A single 2hub... or... two concatenated 2Ns. basic2 : 2N 2N 2hub e:2n link2 : 2N 2N 2N e 1 :2N e 2 :2N Service Oriented Architectural Design 8/27
Service Oriented Architectural Design Architectural Design Rewriting Triangular mesh style A single 3hub... or... a mesh of 3hubs 3N basic3 : 3N 3hub link3 : 3N 3N 3N 3N 3N 3N 3N 3N Service Oriented Architectural Design 9/27
Service Oriented Architectural Design Architectural Design Rewriting Constructing NETs A closed chain... or... triangular mesh net2 : 2N NET net3 : 3N NET NET NET 2N 3N Service Oriented Architectural Design 10/27
Service Oriented Architectural Design Architectural Design Rewriting Reconfiguring NETs How can we transform any triangular NET into a chained one? NET 3hub 3hub 3hub? NET 2hub 2hub 2hub Service Oriented Architectural Design 11/27
Service Oriented Architectural Design Architectural Design Rewriting A 3hub becomes a 2hub basic3 3to2 basic2 Type changes (3N to 2N), but label 3to2 takes care of contexts. 3N 3hub 3to2 2N 2hub Service Oriented Architectural Design 12/27
Service Oriented Architectural Design Architectural Design Rewriting A 3N becomes a 2N x 1 3to2 x 1 x 2 3to2 x 2 x 3 3to2 x 3 link3(x 1, x 2, x 3 ) 3to2 link2(link2(x 2, x 1 ), x 3 ) 3N x 2 :3N x 1 :3N x 3 :3N Rule is conditional and labelled. 2N 3to2 x 2 :2N x 1 :2N x 3 :2N Service Oriented Architectural Design 13/27
Service Oriented Architectural Design Architectural Design Rewriting A triangular meshed NET becomes a chained NET x 3to2 x net3(x) net2(x ) The last closing rule. It can be applied in any context. NET NET x:3n x :2N Service Oriented Architectural Design 14/27
Architectural Design Rewriting Summary of reconfiguration rules A 3hub becomes a 2hub A 3N becomes a 2N (if...) x 1 3to2 x 1 basic3 3to2 basic2 x 2 3to2 x 2 x 3 3to2 x 3 link3(x 1, x 2, x 3 ) 3to2 link2(link2(x 2, x 1 ), x 3 ) A triangular meshed NET becomes a chained NET (if...) x 3to2 x net3(x) net2(x ) Service Oriented Architectural Design 15/27
Design and Reconfiguration for a Service Modelling Language Outline 1 Introduction 2 Architectural Design Rewriting 3 Design and Reconfiguration for a Service Modelling Language 4 The end Service Oriented Architectural Design 16/27
Design and Reconfiguration for a Service Modelling Language Design, discover/select, bind... Services are partial designs: required services are holes... Components Wires Interfaces NOTE: Our SML is SRML (Sensoria s SML, inspired by IBM et al. s Software Component Architecture). Service Oriented Architectural Design 17/27
Design and Reconfiguration for a Service Modelling Language Design, discover/select, bind... A required service is discovered and selected... Service Oriented Architectural Design 18/27
Design and Reconfiguration for a Service Modelling Language Design, discover/select, bind... Binding reconfigures interfaces and wires... Service Oriented Architectural Design 19/27
Design and Reconfiguration for a Service Modelling Language Design, discover/select, bind... The service is bound with a new wire... Service Oriented Architectural Design 20/27
Service Oriented Architectural Design Design and Reconfiguration for a Service Modelling Language SRML Diagrams as graphs More or less shaped like this... Components Interfaces Wires Services +[F ]r r p c i e i c p i r i i c W Service Oriented Architectural Design 21/27
Service Oriented Architectural Design Design and Reconfiguration for a Service Modelling Language Designing SRML diagrams An excerpt of the design productions needed smod wrap W M E M B W ewire W E e Service Oriented Architectural Design 22/27
Design and Reconfiguration for a Service Modelling Language Binding means dealing with things like this... Lots of wires to be internalised r p I I e C r I W C r I I W I W p I I W r Service Oriented Architectural Design 23/27
Design and Reconfiguration for a Service Modelling Language Binding step 1 Reconfiguring a pair of wires... I i e i int I i Service Oriented Architectural Design 24/27
Service Oriented Architectural Design Design and Reconfiguration for a Service Modelling Language Binding step 2 I I u 1 :I u 2 :I e v 1 :I v 2 :I int w 1 1 :I w 1 2 :I w 2 1 :I w 2 2 :I Service Oriented Architectural Design 25/27
The end Outline 1 Introduction 2 Architectural Design Rewriting 3 Design and Reconfiguration for a Service Modelling Language 4 The end Service Oriented Architectural Design 26/27
The end Concluding remarks What is ADR? An algebra of graphs with interfaces (designs). Conditional, labelled rewrite rules on design terms. What can I do with ADR? Style-driven design of software architectures. Style-preserving reconfigurations. (Ordinary execution). Architectural Design, Specification and Verification. Run-time Configuration Management. Where can I get more on ADR? www.albertolluch.com/adr.html. Style-Based Architectural Reconfigurations, Technical Report TR-07-17, Dipartimento di Informatica, Università di Pisa. Service Oriented Architectural Design 27/27