Jeff Magee Distributed Software Engineering Department of Computing Imperial College London Distributed Software Engineering: an Architectural Approach.

Slides:



Advertisements
Similar presentations
Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, Michel Wermelinger
Advertisements

3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre 2006 CASE – Libera Università di Bolzano-Bozen RCOST – Università
AMUSE Autonomic Management of Ubiquitous Systems for e-Health Prof. J. Sventek University of Glasgow In collaboration.
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Component Oriented Programming 1 Chapter 2 Theory of Components.
Architecture Representation
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
Towards a Practical Composition Language Oscar Nierstrasz Software Composition Group University of Bern.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
Variability Oriented Programming – A programming abstraction for adaptive service orientation Prof. Umesh Bellur Dept. of Computer Science & Engg, IIT.
Chess Review May 8, 2003 Berkeley, CA Classes and Inheritance in Actor- Oriented Models Stephen Neuendorffer Edward Lee UC Berkeley.
An Application-led Approach for Security-related Research in Ubicomp Philip Robinson TecO, Karlsruhe University 11 May 2005.
CBSD – Component Based Software Development - Introduction -
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
26th May, Middleware or Simulator for Autonomic Communications Yang Qiu Networking Laboratory Helsinki University of Technology
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Chapter 1- Introduction
The Pursuit for Efficient S/C Design The Stanford Small Sat Challenge: –Learn system engineering processes –Design, build, test, and fly a CubeSat project.
Chapter 10 Architectural Design
Chapter 1- Introduction Lecture 1 Ready, fire, aim (the fast approach to software development). Ready, aim, aim, aim, aim... (the slow approach to software.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
DOT’98 Heidelberg 1 A. Hoffmann & M. Born Requirements for Advanced Distribution and Configuration Support GMD FOKUS Andreas Hoffmann & Marc Born
Rational Unified Process Fundamentals Module 4: Disciplines II.
An Introduction to Software Architecture
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Architecting Web Services Unit – II – PART - III.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Formalizing the Asynchronous Evolution of Architecture Patterns Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige.
Plan-Directed Architectural Change for Autonomous Systems Daniel Sykes, William Heaven, Jeff Magee, Jeff Kramer Imperial College London.
WSMX Execution Semantics Executable Software Specification Eyal Oren DERI
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
PROPOSAL OF AN INNOVATIVE ARCHITECTURE FOR WEB BASED EDUCATION SYSTEMS CATE 2012 Superior School of Computer Science of National Polytechnic Institute.
Service Oriented Architecture CCT355H5 Professor Michael Jones Suezan Makkar.
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
A Component Platform for Experimenting with Autonomic Composition A component framework for supporting composition of autonomic services and bio-inspired.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Software Prototyping Rapid software development to validate requirements.
Enabling Self-management of Component-based High-performance Scientific Applications Hua (Maria) Liu and Manish Parashar The Applied Software Systems Laboratory.
ProActive components and legacy code Matthieu MOREL.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Towards Preserving Correctness in Self-Managed Software Systems Lieven Desmet – Nico Janssens – Sam Michiels Frank Piessens – Wouter Joosen – Pierre Verbaeten.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Software Architecture Architecture represents different things from use cases –Use cases deal primarily with functional properties –Architecture deals.
Basic Characteristics of Object-Oriented Systems
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Software Design and Architecture
Distribution and components
Component-Based Software Engineering
Chapter 20 Object-Oriented Analysis and Design
An Introduction to Software Architecture
Self-Managed Systems: an Architectural Challenge
From Use Cases to Implementation
Presentation transcript:

Jeff Magee Distributed Software Engineering Department of Computing Imperial College London Distributed Software Engineering: an Architectural Approach Work conducted with my close colleague, Jeff Kramer

2 Distributed Software Distribution is inherent in the world objects, individuals,.... Interaction is inevitable with distribution. computer communication, speech,.... Interacting software components

3 Engineering distributed software? Structure Programming-in-the-small Vs Programming-in-the-large deRemer and Kron, TSE 1975 Composition “Having divided to conquer, we must reunite to rule” Jackson, CompEuro 1990

4 Our underlying philosophy A focus on system structure as interacting components is essential for all complex systems. It directs software engineers towards compositional techniques which offer the best hope for constructing scalable and evolvable systems in an incremental manner.

5 Three Phases Explicit Structure Modelling Dynamic Structure

6 Phase 1. Explicit Structure “configuration programming” CONIC

7 The National Coal Board project The investigators: The Research Assistant: The mission: Communications for computer control & monitoring of underground coalmining.

8 Coalmines Underground coalmines consist of a number of interacting subsystems: coal cutting coal transport ventilation drainage … Model…

9 The research results Software Architecture for control applications running on a distributed computing platform. The solution had three major parts … The mission: The result: Communications for computer control & monitoring of underground coalmining. DCS 1981

10 Part I - components methane level cmd enable PUMP_CONTROL Key property of context independence simplified reuse in the same system e.g. multiple pumps, and in different systems e.g. other mines. parameterised component types input and output ports

11 Part II - architecture description Explicit separate description of the structure of the system in terms of the composition of component instances and connections. methane level cmd enable PUMP_CONTROL cmd PUMP level WATER OPERATOR enable methane SENSOR log Hierarchical composition PUMPSTATION

12 Part III – “configuration programming” Construction Build system from software architecture description. Modification/Evolution On-line change to the system by changing this description. Toolset and runtime platform support for:- We return to this later… TSE 1985, CompEuro 1990

13 Benefits Reusable components The control software for a particular coalmine could easily and quickly be assembled from a set of components. On-line change Once installed, the software could be modified without stopping the entire system to deal with change - the development of new coalfaces. Final outcome…

14 Outcome - the CONIC system Wider application than coalmining. Distributed worldwide to academic and industrial research institutions. Conceptual basis lives on… Research team: Naranker Dulay Kevin Twidle Keng Ng TSE 1989

15 Software Architecture The fundamental architectural principles embodied in CONIC evolved through a set of systems and applications: GIN & TONIC parallel computing REX Reconfigurable & Extensible Distributed Systems Steve Crane REGIS Distributed Services Ulf Leonhardt Location Services Christos Karamanolis Highly Available Services Parle 1991, SEJ 1992, DSEJ 1994

16 Darwin - A general purpose ADL Component types have one or more interfaces. An interface is simply a set of names referring to actions in a specification or services in an implementation, provided or required by the component. Systems / composite component types are composed hierarchically by component instantiation and interface binding. interfaces Component Composite Component ESEC/FSE 1995, FSE 1996

17 Koala In the ARES project Rob van Ommering saw potential of Darwin in specifying television product architectures and developed Koala, based on Darwin, for Philips. First large-scale industrial application of an ADL. Computer 2000

18 Darwin applicability… Darwin enforces a strict separation between architecture and components. Build the software for each product variant from the architectural description of that product. Variation supported by both different Darwin descriptions and parameterisation. Variants can be constructed at compile- time or later at system start-time.

19 Koala - example

20 What we could not do… In advance of system deployment, answer the question: Will it work? When faced with this question engineers in other disciplines build models.

21 Phase 2. Modelling “behaviour models” CONIC

22 Engineering Models Abstract Complexity Model << System Amenable to Analysis

23 Architecture & Models Modelling technique should exploit structural information from S/W architecture. Use process calculus FSP in which static combinators capture structure and dynamic combinators component behaviour. instantiation inst composition binding bind interfaces instantiation : parallel composition || relabelling / sets and Darwin FSP FTDCS 1997, WICSA 1999

24 Process Calculus - FSP level cmd CONTROL cmd PUMP pump PUMP = STOPPED, STOPPED = ( cmd.start -> STARTED), STARTED = ( pump -> STARTED | cmd.stop -> STOPPED ). ||P_C = (CONTROL ||

25 Analysis - LTSA What questions can we ask of the behaviour model? fluent RUNNING = fluent METHANE = Model… assert SAFE = [](tick->(METHANE -> !RUNNING))

26 Contributors… Nat Pryce - Animation Dimitra Giannakopoulou - Progress & Fluent LTL Shing-Chi Cheung - LTS, CRA & Safety ICSE 1996, FSE 1999, ICSE 2000, ESEC/FSE 2003

27 Engineering distributed software Models Mathematical Abstractions - reasoning and property checking Systems Compositions of subsystems - built from proven components. S/W Tools Automated techniques and tools - construction and analysis

28 “dynamic structure” Phase 3. Dynamic Structure

29 Software Architecture + programmed software components Managed Structural Change evolved structural description change script system Construction/ implementation evolved system change script e.g. Conic, Regis TSE 1985

30 Structural change load component type create/delete component instances bind/unbind component services But how can we do this safely? Can we maintain consistency of the application during and after change? Ta:T a b

31 General Change Model PASSIVE ACTIVE bind unbind activate create delete passivate Component States A Passive component - is consistent with its environment, and - services interactions, but does not initiate them. Principle : Separate the specification of structural change from the component application contribution.

32 Change Rules Quiescent – passive and no transactions are in progress or will be initiated. Operation Pre-condition delete – component is quiescent and isolated bind/unbind – connected component is quiescent create - true TSE 1990

33 Example - a simplified RING Database rcv snd node[0] local rcvsnd node[2] local rcv snd node[1] local rcv snd node[3] local Nodes perform autonomous updates Updates propagate round the ring via channels CDS 1998, IEE Proc 1998

34 Required Properties (1) // node is PASSIVE if passive signalled and not yet changing or deleted fluent PASSIVE[i:Nodes] = // node is CREATED after create until delete fluent CREATED[i:Nodes] = // system is QUIESCENT if all CREATED nodes are PASSIVE assert QUIESCENT = forall[i:Nodes] (CREATED[i]->PASSIVE[i])

35 Required Properties (2) // value for a node i with color c fluent VALUE[i:Nodes][c:Value] = // state is consistent if all created nodes have the same value assert CONSISTENT = exists[c:Value] forall[i:Nodes] (CREATED[i]-> VALUE[i][c]) // safe if the system is consistent when quiescent assert SAFE = [](QUIESCENT -> CONSISTENT) // live if quiescence is always eventually achieved assert LIVE = []<> QUIESCENT

36 Software Architecture for Self-Managed Systems Autonomous adaptation in response to change of goals and operating environment. Self - Configuring - Healing - Tuning

37 Three-level architecture (from Gat)

38 Test-bed Koala Robots Backbone ADL (UML 2 compatible)

39 Research Challenges Scalable decentralised implementation. Analysis tools Capability to update goals & constraints for operational system We have some of the pieces, but need …

40 In conclusion...

41 Architecture as a structural skeleton …. …so that the same simple architectural description can be used as the framework to compose behaviours for analysis, to compose component implementations for systems, ….

42 Darwin support for multiple views Behavioural View Service View Structural View Analysis Construction/ implementation Performance View

43 Model-centric approach System Architecture Goals Scenarios models Analysis Model Checking Animation Simulation

44 Research into practice… Application Education… Further research…

45 Education…

46 Further research… Model synthesis from scenarios Model synthesis from goals Probabilistic performance models Self-managing Architectures Sebastian Uchitel Emmanuel Letier

47 Research voyage of discovery Has been a lot of fun and is far from over :-)