Representing Hierarchical Mobility in Software Architectures Fernando J. Barros University of Coimbra Portugal.

Slides:



Advertisements
Similar presentations
Network II.5 simulator ..
Advertisements

Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, Michel Wermelinger
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
AMUSE Autonomic Management of Ubiquitous Systems for e-Health Prof. J. Sventek University of Glasgow In collaboration.
ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
COM vs. CORBA.
Modeling & Simulation. System Models and Simulation Framework for Modeling and Simulation The framework defines the entities and their Relationships that.
Software Frame Simulator (SFS) Technion CS Computer Communications Lab (236340) in cooperation with ECI telecom Uri Ferri & Ynon Cohen January 2007.
Architecture Tutorial 1 Overview of Today’s Talks Provenance Data Structures Recording and Querying Provenance –Break (30 minutes) Distribution and Scalability.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
Objektorienteret Middleware Presentation 2: Distributed Systems – A brush up, and relations to Middleware, Heterogeneity & Transparency.
Object-Oriented Analysis and Design
Component-oriented approaches to context-aware systems – Monday 14 June The Contextor Infrastructure for Context-Aware Computing Gaëtan Rey, Joëlle.
FIN 685: Risk Management Topic 5: Simulation Larry Schrenk, Instructor.
Encapsulation. Encapsulation Encapsulation means the bringing together of a set of attributes and methods into an object definition and hiding their implementational.
Chapter 3 Simulation Software
Object-Oriented Design & Programming Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Distributed Systems Architectures
An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane.
© nCode 2000 Title of Presentation goes here - go to Master Slide to edit - Slide 1 Reliable Communication for Highly Mobile Agents ECE 7995: Term Paper.
1 CMSC 132: Object-Oriented Programming II Software Development IV Department of Computer Science University of Maryland, College Park.
1 Introduction to Load Balancing: l Definition of Distributed systems. Collection of independent loosely coupled computing resources. l Load Balancing.
SensIT PI Meeting, April 17-20, Distributed Services for Self-Organizing Sensor Networks Alvin S. Lim Computer Science and Software Engineering.
Simulation Waiting Line. 2 Introduction Definition (informal) A model is a simplified description of an entity (an object, a system of objects) such that.
Lab 01 Fundamentals SE 405 Discrete Event Simulation
OMNET++. Outline Introduction Overview The NED Language Simple Modules.
Introduction to Object-oriented programming and software development Lecture 1.
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
POAD Distributed System Case Study: A Medical Informatics System Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
SOFTWARE DESIGN.
Formalism and Platform for Autonomous Distributed Components Bio-inspired Networks and Services A Distributed Component Model Formalisation in Isabelle.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Cracow Grid Workshop, October 27 – 29, 2003 Institute of Computer Science AGH Design of Distributed Grid Workflow Composition System Marian Bubak, Tomasz.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Chapter 2: System Models. Objectives To provide students with conceptual models to support their study of distributed systems. To motivate the study of.
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
Class 5 Architecture-Based Self-Healing Systems David Garlan Carnegie Mellon University.
SCALABLE EVOLUTION OF HIGHLY AVAILABLE SYSTEMS BY ABHISHEK ASOKAN 8/6/2004.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Lyra – A service-oriented and component-based method for the development of communicating systems (by Sari Leppänen, Nokia/NRC) Traditionally, the design,
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
Kal Bugrara, Ph.DSoftware Engineering Northeastern University Fundamentals Of Software Engineering Lecture V.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
DEVS Based Modeling and Simulation of the CORBA POA F. Bernardi, E. de Gentili, Pr. J.F. Santucci {bernardi, gentili, University.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
1 CALL 6 Key Action IV Introduction and Action Lines: IV.1.2, IV.2.1, IV.2.2, IV.2.4 Brussels, 16. Jan 2001 Colette Maloney European Commission.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
Framework of a Simulation Based Shop Floor Controller Using HLA Pramod Vijayakumar Systems and Industrial Engineering University of Arizona.
Introduction to Classes and Objects. Real Life When a design engineer needs an electrical motor he doesn’t need to worry about –How a foundry will cast.
The Systems Development Environment Systems Analysis and Design II.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
GYTE - Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Bölümü GYTE - Bilgisayar Mühendisliği Bölümü AN ARCHITECTURE FOR NEXT GENERATION MIDDLEWARE.
REST By: Vishwanath Vineet.
Dr. Anis Koubâa CS433 Modeling and Simulation
 Simulation enables the study of complex system.  Simulation is a good approach when analytic study of a system is not possible or very complex.  Informational,
Autonomous Messenger Based Routing in Disjoint clusters of Mobile Sensor Network Authors: Nisar Hundewale, Qiong Cheng, Xiaolin Hu, Anu Bourgeois, Alex.
Simulation Examples And General Principles Part 2
Network Topologies for Scalable Multi-User Virtual Environments Lingrui Liang.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Design Patterns: MORE Examples
Introduction to Load Balancing:
OO Methodology OO Architecture.
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
Ch > 28.4.
Model-Driven Analysis Frameworks for Embedded Systems
MECH 3550 : Simulation & Visualization
Presentation transcript:

Representing Hierarchical Mobility in Software Architectures Fernando J. Barros University of Coimbra Portugal

2 Introduction The ability to move components from one hierarchical model to another becomes necessary to support arbitrary changes in software topologies Mobility allows the access to the hidden interface of a hierarchical component without breaking encapsulation, keeping the architecture modular Mobility permits the introduction of new functionally in the application without requiring changes in the architecture

3 C2 Motivation (I) C1 visible: hidden:  

4 C2 Motivation (II) C1   New

5 Connecton Software Architecture Supports modular software components Supports hierarchical composition (Connecton ensembles) Ensembles can have a dynamic topology Connectons can migrate between ensembles Connectons combines general systems theory and object- oriented styles Scalable solution based on the distributed definition of topology Supports ad-hoc structural changes Desmos Current implementation in Smalltalk (Desmos)

6 Factorial Connecton Factorial factorial :

7 Factorial (I) “Ensemble” ensembleInGates ^(super ensembleInGates) add: #factorial: “Executive” inGates ^(super inGates) add: #factorial: outGates ^(super outGates) add: #factorial:

8 Factorial (II) structure super structure. self link: #Ensemble gate: #factorial: to: #Executive gate: #factorial:. self link: #Executive gate: #factorial: to: #Executive gate: #factorial: factorial: n n == 0 ifTrue: [^1]. ^n * (out factorial: n - 1) (Factorial new: #F) factorial: 7

9 Structural Changes Topology adaptation has been subject to research in different areas like software engineering and general systems theory (simulation) The ability to change dynamically a running entity has been regarded as a powerful construct to build self-adaptive systems Methodologies supporting topology adaptation enable a representation with structural similarity easier to develop and to maintain components

10 Kind of Structural Changes     AB   A   AB

11 Mobility (I) The use of hierarchical components in system representation brings a new problem not present in non-hierarchical systems Hierarchical components hide their inner constitution from the outside how to expose inner components without violating encapsulation? Solutions proposed in systems theory and distributed systems, involve the use of mobile components components that can be transferred between two hierarchical components Inside an ensemble, a mobile component has access to the inner interface of a hierarchical component no violation of encapsulation After visiting an ensemble, a mobile component can return with the gathered information

12 Mobility (II) Mobility permits to extend indirectly the current interface of hierarchical component A mobile component can be used to modify the behavior of a hierarchical component A mobile component can be employed in a local reconfiguration bringing new behavior to an ensemble The mobile component may become permanently part of the visited ensemble

13 Mobility (III) Mobility requires the capability to remove a component from an ensemble and the ability to transmit it to another hierarchical component The visited ensemble needs to add the mobile component and to establish new links between the existing Connectons and the visiting one

14 Mobility (IV) MM send: BA NN in: C receive: out: MM send: B NN in: C receive: out: A A

15 Desmos Primitives addConnecton: aConnecton adds an existing connecton; remove: aConnecton removes a connecton link: aName gate: aGate to: bName gate: bGate links a Connecton named aName gate aGate to gate bGate of Connecton named bName unLink: aName gate: aGate from: bName gate: bGate unlinks a Connecton named aName gate aGate from gate bGate of Connecton bName

16 Server System Simulation The system is composed by a client generator, a FIFO server, a Delay server, and a statistic Connecton that computes clients’ cycle- time Clients have their own strategy to get the service in the FIFO server If they wait too long in the queue they quit and look for service in a competitor Each client is responsible for evaluating if the waiting time exceeds the maximum limit and to quit without getting service

17 Mobile vs. Conventional In a conventional approach servers treats clients as passive decisions are made by the server The conventional solution does not scale the addition of a new type of client requires changing all servers Mobility permits the addition of new behavior by introducing new type of clients servers remain unchanged Mobility provides scalability

18 Server System run: DT::Simulator  time: out:time: ren:time: Generator FIFO Stats Delay run: out:time: in:time: time: in:time: stats

19 FIFO Server C1C1 FIFO  in:time: end:time:ren:time: end:time: ren:time: time: end:time: ren:time: work:factor: CnCn time: end:time: ren:time: … work:factor:

20 FIFO: Client Arrival in: aClient time: time |name| self addConnecton: aClient. name := aClient _name. self link: #Ensemble gate: #time: to: name gate: #time:. self link: name gate: #reneging:time: to: #Executive gate: #reneging:time:. self link: name gate: #end:time: to: #Executive gate: #end:time:. status = #busy ifTrue: [^queue add: name]. status := #busy. self link: #Executive gate: #work:factor: to: name gate: #work:factor:. out work: time factor: 1. self unlink: #Executive gate: #work:factor: from: name gate: #work:factor:.

21 FIFO: End Service end: aClientName time: time |client clientName| client := self remove: aClientName. out end: client time: time. queue size == 0 ifTrue: [^status := #idle]. clientName := queue removeFirst. self link: #Executive gate: #work:factor: to: clientName gate: #work:factor:. out work: time factor: 1. self unlink: #Executive gate: #work:factor: from: clientName gate: #work:factor:.

22 Client: Time Advance time: time status == #waiting ifTrue: [ (time - timeIn) >= wTime ifTrue: [ out reneging: self _name time: time ]. ^nil ]. (time - startWorking) >= (pTime * factor) ifTrue: [ cycleTime := time - timeIn. out end: self _name time: time ].

23 Delay: Client Arrival in: aClient time: time |name| name := aClient _name. self addConnecton: aClient. self link: #Network gate: #time: to: name gate: #time:. self link: name gate: #end:time: to: #Executive gate: #end:time:. self link: #Executive gate: #work: to: name gate: #work:. out work: time factor: 2. self unlink: #Executive gate: #work: from: name gate: #work:

24 Conclusions Mobility plays an important role in the adaptation of hierarchical software architectures While adaptation in flat structures requires only changes in components interactions, hierarchical architectures require mobility Mobility enables the introduction of new behavior in the system without the need to change the existing elements Mobility permits to access the inner components of a hierarchical ensemble while keeping encapsulation

25 Future Work Mobile Connectons can be used to implement agent-based simulation kernels, providing a construct to represent mobile agents Extensions to the work currently support discrete event simulation Future work will address the representation of hybrid systems

26 Client: Start Service work: time factor: f status := #working. startWorking := time. factor := f.

27 Delay: End Service end: aClientName time: time |client| client:= self remove: aClientName. out end: client time: time

28 FIFO: Reneging Service ren: aClientName time: time |client| client := self remove: aClientName. queue remove: aClientName. out ren: client time: time.

29 Mobility (III) A A   B B C C  