1 Joint work with Antonio Bucchiarone (Fondazione Bruno Kessler - IRST, Trento) and Fabrizio Montesi (University of Bologna/INRIA, Bologna) A Framework.

Slides:



Advertisements
Similar presentations
Design by Contract.
Advertisements

1 Ivan Lanese Computer Science Department University of Bologna Italy Managing faults and compensations in SOCK Joint work with Claudio Guidi, Fabrizio.
A Component Based Programming Framework for Autonomic Applications Hua Liu, Manish Parashar, and Salim Hariri ICAC ‘04 John Otto Wi06 CS 395/495 Autonomic.
1 Reversibility for Recoverability Ivan Lanese Computer Science Department FOCUS research group University of Bologna/INRIA Bologna, Italy.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Fault in the Future Joint work with Gianluigi Zavattaro and Einar Broch Johnsen.
ISBN Chapter 3 Describing Syntax and Semantics.
A. Bucchiarone / Dagstuhl/ 2007 APL Antonio Bucchiarone PhD Student – IMT Graduate School Piazza S. Ponziano, Lucca (Italy)
SEERE, Neum 2009 Runtime verification of Java programs using ITL Vladimir Valkanov, Damyan Mitev Plovdiv, Bulgaria.
1 Ivan Lanese Computer Science Department University of Bologna Italy On the Interplay between Fault Handling and Request-response Service Invocations.
Semantic description of service behavior and automatic composition of services Oussama Kassem Zein Yvon Kermarrec ENST Bretagne France.
1 Ivan Lanese Computer Science Department University of Bologna Italy Exploiting user-definable synchronizations in graph transformation.
1 The SOCK SAGA Ivan Lanese Computer Science Department University of Bologna Italy Joint work with Gianluigi Zavattaro.
1 Ivan Lanese Computer Science Department University of Bologna Roberto Bruni Computer Science Department University of Pisa A mobile calculus with parametric.
1 Ivan Lanese Computer Science Department University of Bologna Italy Error Handling in Service Oriented Computing Joint work with Claudio Guidi, Fabrizio.
Pervasive Enablement of Business Process 徐天送 2004/11/2.
1 SOCK and JOLIE from the formal basis to a service oriented programming language Ivan Lanese Computer Science Department University of Bologna Italy Joint.
1 Ivan Lanese Computer Science Department University of Bologna Italy From services to ABS With input from Davide Sangiorgi, Fabrizio Montesi, …
1 Ivan Lanese Computer Science Department University of Bologna Italy Evolvable systems: some ideas for modelling With input from Davide Sangiorgi, Fabrizio.
Bridging the gap between Interaction- and Process-Oriented Choreographies Talk by Ivan Lanese Joint work with Claudio Guidi, Fabrizio Montesi and Gianluigi.
SOCK and JOLIE from the formal basis to a service oriented programming language Part II Claudio Guidi and Fabrizio Montesi.
1 Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Error Handling: From Theory to Practice Joint work with Fabrizio Montesi italianaSoftware.
1 Static vs dynamic SAGAs Ivan Lanese Computer Science Department University of Bologna/INRIA Italy.
1212 /k October 5, 2000capaciteitsgroepscolloquium1 Adaptive Systems Paul De Bra.
1 Joint work with Claudio Antares Mezzina (INRIA), Jean-Bernard Stefani (INRIA) and Alan Schmitt (INRIA) Controlling Reversibility in Rhopi Ivan Lanese.
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
C++ Training Datascope Lawrence D’Antonio Lecture 11 UML.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Fault in the Future Joint work with Gianluigi Zavattaro and Einar Broch Johnsen.
1 Programming SAGAs in SOCK Ivan Lanese Computer Science Department University of Bologna Italy Joint work with Gianluigi Zavattaro The SOCK saga.
Describing Syntax and Semantics
SE-565 Software System Requirements More UML Diagrams.
THE NEXT STEP IN WEB SERVICES By Francisco Curbera,… Memtimin MAHMUT 2012.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 4: Detailing a Use Case.
Demonstrating WSMX: Least Cost Supply Management.
1 Joint work with Michael Lienhardt (PPS), Claudio Antares Mezzina (Trento), Jean-Bernard Stefani (INRIA) and Alan Schmitt (INRIA) Reversibility in Concurrency.
ASG - Towards the Adaptive Semantic Services Enterprise Harald Meyer WWW Service Composition with Semantic Web Services
Dynamic Choreographies Safe Runtime Updates of Distributed Applications Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Joint.
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.
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
Towards Global and Local Types for Adaptation Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Joint work with Mario Bravetti,
Architectures of distributed systems Fundamental Models
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Amending Choreographies Joint work with Fabrizio Montesi and Gianluigi Zavattaro.
1 Causal-Consistent Reversible Debugging Ivan Lanese Focus research group Computer Science and Engineering Department University of Bologna/INRIA Bologna,
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
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.
“Dynamic fault handling mechanisms for service-oriented applications” Fabrizio Montesi, Claudio Guidi, Ivan Lanese and Gianluigi Zavattaro Department of.
A Service Oriented Architecture for the Finance Case Study
A Component Platform for Experimenting with Autonomic Composition A component framework for supporting composition of autonomic services and bio-inspired.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Decidability Results for Dynamic Installation of Compensation Handlers Joint.
CSE 332: Design Patterns Review: Design Pattern Structure A design pattern has a name –So when someone says “Adapter” you know what they mean –So you can.
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
1 Joint work with Claudio Antares Mezzina and Jean-Bernard Stefani Controlled Reversibility and Compensations Ivan Lanese Focus research group Computer.
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
SEERE Workshop, Ivanjica JTempura Vladimir Valkanov, Damyan Mitev Plovdiv University “Paisii Hilendarski”
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Adaptive Choreographies Joint work with Mila Dalla Preda, Jacopo Mauro and Maurizio.
SE 548 Process Modelling WEB SERVICE ORCHESTRATION AND COMPOSITION ÖZLEM BİLGİÇ.
An Evolutional Cooperative Computation Based on Adaptation to Environment Naoyasu UBAYASHI and Tetsuo TAMAI Graduate School of Arts and Sciences University.
Model Checking Early Requirements Specifications in Tropos Presented by Chin-Yi Tsai.
Klara Nahrstedt Spring 2009
Conception OBJET GRASP Patterns
Deadlock Freedom by Construction
Distribution and components
Service-centric Software Engineering
Internet of Things A Process Calculus Approach
Chapter 20 Object-Oriented Analysis and Design
JINI ICS 243F- Distributed Systems Middleware, Spring 2001
Presentation transcript:

1 Joint work with Antonio Bucchiarone (Fondazione Bruno Kessler - IRST, Trento) and Fabrizio Montesi (University of Bologna/INRIA, Bologna) A Framework for Rule-based Dynamic Adaptation Ivan Lanese Computer Science Department Focus research group University of Bologna/INRIA Bologna, Italy

Roadmap l Dynamic adaptation l A rule-based approach l The JoRBA prototype l Conclusions

Roadmap l Dynamic adaptation l A rule-based approach l The JoRBA prototype l Conclusions

Adaptation l Applications should change to adapt themselves to changes in the operating conditions –So to always meet user expectations –Without intervention from technicians Adaptation can be triggered by –Dynamicity of the environment »Mobility »Communicating partners can appear and disappear –Changes in user needs –…–…

Built-in adaptation l The application includes the logic to adapt itself l Different approaches in the literature –Example: workflows extended with »Constraints on the environment »Handlers for environment events »…»… l Requires to foresee during application development most of the information concerning adaptation –Which event will trigger adaptation –Which new behavior will be required l This is not always possible

Dynamic adaptation l Aims at adapting applications to changes that were not predictable at application development time –Applicable also when built-in adaptation is not l Main challenges: –The adaptation logic cannot be part of the application –We want to update the application logic, not only the application state

Travelling scenario l Bob is travelling from University of Bologna to University of Trento for a working meeting l Bob has a mobile phone with a Travelling application –Booking the train ticket from Bologna to Trento –Instructing Bob to take the booked train –Booking the bus from Trento train station to Trento University –Instructing Bob to take the bus

High speed trains l Assume a new high speed connection has been created between Bologna and Trento l Applications involving taking trains may require adaptation –For instance, our Travelling application l When the Travelling application connects to Bologna train station information system, Bologna train station adaptation middleware –Discovers that the application may be adapted to exploit the new high speed connection –Checks if adaptation is possible »The application provides the needed adaptation interface –Checks if adaptation is desirable according to Bob’s preferences –Sends the updated code for booking the new high speed train

A few observations l The creation of an high speed connection was not expected when the travelling application has been developed (or even when it was started) l Booking the high speed train may exploit a different protocol than booking other trains l If the old connection still exists, Bob may still want to use it (e.g., for price reasons)

How to implement this scenario? l Which kind of information about adaptation is required at application development time? –Difficult to adapt a black box (wrappers, …) l How can such an adaptation be specified? l How can those mechanisms be implemented in practice?

Roadmap l Dynamic adaptation l A rule-based approach l The JoRBA prototype l Conclusions

Our approach: main ideas l The application should provide an adaptation interface –A list of adaptable activities –And a few pieces of information about them l Adaptation is specified as a set of adaptation rules –One for each possible adaptation –External to the application –That can be created/modified after the application has been fully developed –Managed by an adaptation manager »Possibly implemented as a set of distributed adaptation servers

Our approach: an intuition

Adaptation interface l For each activity the adaptation interface should provide –A description of the activity »At least its name »Possibly its goal, a description according to some ontology, … –The set of variables that the activity uses to interact with the rest of the application –The non functional properties guaranteed by the current implementation –A comparator function allowing to compare two sets of non functional properties according to the user preferences

The Take Train activity l Description: Take Train l Variables: source (Bologna Train Station), destination (Trento Train Station), number (IC2356) l Non functional properties: time = 2h41m, cost = 20€ l Comparator function: new implementation is better if requires less time and each saved minute costs less than 0,3€

Adaptation rules l An adaptation rule specifies when, where and how adaptation will be performed –Implements adaptation logic l Each rule includes: –A description of the activity to be adapted –An applicability condition (involving the state of the environment and the public state of the application) –The updated code for the activity –The set of variables needed by the new code to interact with the rest of the application –A state update –A compulsory flag –The non functional properties provided by the new activity

High speed train rule l Description of the activity: Take Train l Applicability condition: number = IC2356 l Updated code: code for booking and taking high speed train l Variables: source, destination, number l State update: number = FR82 l Compulsory flag: false l Non functional properties: time = 1h23m, cost = 32€

Triggering adaptation l Adaptation can be either application-triggered or manager-triggered l Application-triggered approaches –On initialization –On wait –On activity enter l Manager-triggered approaches –On registration –At time intervals –On rule update

Checking for adaptation l The adaptation manager checks the matching between a rule and an activity 1.The two descriptions should match 2.All the variables needed should be available 3.The applicability condition should be satisfied 4.The compulsory flag should be true OR 5.The non functional properties provided by the new implementation should be better than the old ones according to the user defined preferences

Applying adaptation l If all the conditions are satisfied adaptation can be applied –The new code is sent from the adaptation manager to the application replacing the old one –The non functional properties are updated –The state update is applied

Roadmap l Dynamic adaptation l A rule-based approach l The JoRBA prototype l Conclusions

JoRBA l Jolie Rule-Based Adaptation framework l A proof-of-concept implementation of our approach including –A skeleton for adaptable applications –An adaptation manager –A skeleton for adaptation servers l Includes the implementation of the Travelling application l Is written in Jolie

Jolie l A language for programming service oriented applications l Developed by Univerisity of Bologna spinoff ItalianaSoftware s.r.l. l Implemented by a Java interpreter l Takes inspiration from –sequential languages (assignment, if-then-else, while, …), –concurrent calculi (parallel composition, …) –workflow languages (one-way and request-response communication patterns) l Has native mechanisms for implementing loosely-coupled interactions such as the ones between adaptation servers and adaptable applications

JoRBA architecture l JoRBA exploits service oriented architectures to implement adaptation l Adaptation managed by an AdaptationManager l Rules managed by distributed AdaptationServers l Applications can invoke the AdaptationManager to check for updates l Activities are externalized as services, and updated thanks to dynamic embedding l A state service provides support for the common state

JoRBA at work

Roadmap l Dynamic adaptation l A rule-based approach l The JoRBA prototype l Conclusions

Summary l A novel approach for dynamic adaptation l Based on the interaction between adaptable applications and external adaptation rules l Very flexible framework l A prototype implementation in Jolie

Future work l Still lot of work to do on the framework –Descriptions of the activities –Treatment of compulsory updates –…–… –(Anyone interested in working on the implementation?) l Applying the approach to other languages l Lot of related topics to explore –Typing of rules and activities –Adapting ongoing activities –…–…

Finally