1 Ivan Lanese Computer Science Department University of Bologna Italy Evolvable systems: some ideas for modelling With input from Davide Sangiorgi, Fabrizio.

Slides:



Advertisements
Similar presentations
3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre 2006 CASE – Libera Università di Bolzano-Bozen RCOST – Università
Advertisements

1 Ivan Lanese Computer Science Department University of Bologna Italy Managing faults and compensations in SOCK Joint work with Claudio Guidi, Fabrizio.
Component Oriented Programming 1 Chapter 2 Theory of Components.
Towards a Practical Composition Language Oscar Nierstrasz Software Composition Group University of Bern.
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.
Dependable Composition of Web Services and Process Calculi Manuel Mazzara Newcastle University.
Transparent Robustness in Service Aggregates Onyeka Ezenwoye School of Computing and Information Sciences Florida International University May 2006.
Interactive Systems Technical Design Seminar work: Web Services Janne Ojanaho.
1 Ivan Lanese Computer Science Department University of Bologna Italy On the Interplay between Fault Handling and Request-response Service Invocations.
PTIDES: Programming Temporally Integrated Distributed Embedded Systems Yang Zhao, EECS, UC Berkeley Edward A. Lee, EECS, UC Berkeley Jie Liu, Microsoft.
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 Synchronization strategies for global computing models Ivan Lanese Computer Science Department University of Bologna.
CS 290C: Formal Models for Web Software Lecture 10: Language Based Modeling and Analysis of Navigation Errors Instructor: Tevfik Bultan.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy On the Expressive Power of Primitives for Compensation Handling Joint work with.
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.
Business Process Orchestration
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 Behavioural Theory for SSCC Joint work with Luis Cruz-Filipe, Francisco Martins,
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.
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.
© Lethbridge/Laganière 2001 Chap. 3: Basing Development on Reusable Technology 1 Let’s get started. Let’s start by selecting an architecture from among.
Communication in Distributed Systems –Part 2
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.
1 Ivan Lanese Computer Science Department University of Bologna Italy On the expressive power of primitives for compensation handling Joint work with Catia.
1 Ivan Lanese Computer Science Department University of Bologna Italy Behavioural Theory at Work: Program Transformations in a Service-centred Calculus.
1 Ivan Lanese Computer Science Department University of Bologna Italy Streaming Services in SSCC Joint work with Francisco Martins, Vasco Vasconcelos and.
Models of Computation as Program Transformations Chris Chang
1 Ivan Lanese Computer Science Department University of Bologna Italy Towards a Unifying Theory for Web Services Composition Manuel Mazzara Faculty of.
1 Joint work with Antonio Bucchiarone (Fondazione Bruno Kessler - IRST, Trento) and Fabrizio Montesi (University of Bologna/INRIA, Bologna) A Framework.
Course Instructor: Aisha Azeem
UML - Development Process 1 Software Development Process Using UML (2)
Demonstrating WSMX: Least Cost Supply Management.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
1 Joint work with Michael Lienhardt (PPS), Claudio Antares Mezzina (Trento), Jean-Bernard Stefani (INRIA) and Alan Schmitt (INRIA) Reversibility in Concurrency.
Dynamic Choreographies Safe Runtime Updates of Distributed Applications Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Joint.
Dodick Zulaimi Sudirman Lecture 14 Introduction to Web Service Pengantar Teknologi Internet Introduction to Internet Technology.
Towards Global and Local Types for Adaptation Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Joint work with Mario Bravetti,
Cracow Grid Workshop, October 27 – 29, 2003 Institute of Computer Science AGH Design of Distributed Grid Workflow Composition System Marian Bubak, Tomasz.
Foundational Study and Practical Experimentation of Service Orchestration with SOCK/JOLIE Ivan Lanese, Fabrizio Montesi, Claudio Guidi, and Gianluigi Zavattaro.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Amending Choreographies Joint work with Fabrizio Montesi and Gianluigi Zavattaro.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Natallia Kokash (Accepted for PACO’2011) ACG, 31/05/ Input-output conformance testing for channel-based connectors 1.
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
“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
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Decidability Results for Dynamic Installation of Compensation Handlers Joint.
1 Joint work with Claudio Antares Mezzina and Jean-Bernard Stefani Controlled Reversibility and Compensations Ivan Lanese Focus research group Computer.
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.
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.
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.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Adaptive Choreographies Joint work with Mila Dalla Preda, Jacopo Mauro and Maurizio.
David Adams ATLAS AJDL: Abstract Job Description Language David Adams BNL June 29, 2004 PPDG Collaboration Meeting Williams Bay.
Software, IEE Proceedings, Vol.152, Num.3, June 2005,Page(s): Prasanthi.S March, Java-based component framework for dynamic reconfiguration.
Java-based component framework for dynamic reconfiguration 소프트웨어 재사용 방법론 2011 년 3 월 22 일 ( 화 ) 발표자 : 전승우.
Operational Semantics of Scheme
Deadlock Freedom by Construction
Presented by Jinpeng Zhou
Service-centric Software Engineering
Internet of Things A Process Calculus Approach
Relational Algebra Chapter 4, Sections 4.1 – 4.2
Presentation transcript:

1 Ivan Lanese Computer Science Department University of Bologna Italy Evolvable systems: some ideas for modelling With input from Davide Sangiorgi, Fabrizio Montesi, …

Disclaimer

Evolvability and adaptability l Evolvability: a system may change l Adaptability: a component has to adapt to the changing system –E.g., since the system is evolving l We concentrate more on adaptability –However the two concepts are strongly related –Internalized vs externalized? –Expected vs unexpected? l We concentrate more on the behavioral system model level

Adaptability for components l We concentrate on components to have some framework to work in –Suitable framework for our aims –Exploit our expertise in the field of services (Sensoria project) –Exploit connections with INRIA »Stefani, Schmitt l What is a component? l How it can be modelled? l What means adaptability for components? l Which primitives are needed to model adaptability?

What is a component? l Components have a name, a behaviour, and one or more interfaces (provide interfaces, require interfaces) l Interfaces are sets of functionalities l Components are connected to each other via their interfaces l Components may be nested

An algebra of components l We want an algebra of components –To exploit inductive techniques –To study different alternatives –Usual process calculi approach l Components as first-class entities –Should include description of the interfaces –Functionalities denoted by names l Operators for composing components

A possible algebra of components l C ::= O[P] n I –O and I are the output and input interfaces –n is the name of the component –P is a process in some calculus »May use names in the input interface »Those names will be bound to functionalities offered by other components –Output interface contains names of provided functionalities »Upon invocation a process Q realizing the functionality is added in parallel to P l Components are composed and connected by suitable operators –Parallel composition for putting them together –Name fusion for connecting functionalities l P can include other components if nesting is allowed

Adapting components l Components are adapted by –Changing a functionality –Changing the interface of a component –Changing the connections between components l Which are the best primitives for this aim? –Easy modelling –Expressive power –Minimality

Ideas for possible primitives l Merge and split of interfaces –How to specify the split? –Changing a functionality can be implemented by splitting it, and merging with the new one l Stop and go for components [cfr. Dave talk] –A component is asked to stop –It terminates its activities (will not accept new requests) –It is reconfigured –It is restarted

Adaptability/evolvability in Jolie l Jolie is a language for programming and orchestrating services –Developed by UNIBO and ItalianaSoftware –Inspired by BPEL and WSDL –With a formal semantics (SOCK) l It is an open source project l It is Java-based l It can exploit different communication protocols –HTTP, SOAP, SODEP l It provides mechanisms for adaptability/evolvability

Dynamic embedding l Embedding: a Jolie service may execute another service in its own environment (Java virtual machine) –More easy and fast communication l Dynamic embedding: services may be downloaded and embedded at runtime l Can be exploited for adaptability –A new functionality can be downloaded and replace an old one –A service can be embedded in a wrapper to adapt it to the new environment

Adaptability through meta-programming l Meta-programming allows programs to change other programs l Starting from HOpi Add a construct like if Q=pattern then P l Allows to analyze and update the code l Allows partial evaluation –May be used to connect components to the new environment l How expressive it is?

Dynamic update of error handlers l An idea from error recovery that can be exploited for adaptability l Error recovery: when an activity fails some work is done to take the whole system to a consistent state l Error recovery done by executing suitable handlers –E.g., Java try-catch l In Java the handler is fixed l Our proposal: allowing the program to change the handlers at runtime

Handler adaptation l Allows a more fine grain control on what to do in case of errors l If new handlers can be received at runtime, error recovery policies for new errors can be added –As in YAWL l Handlers can trigger adaptation of the component

Summarizing l Main objective: building an algebra of adaptable components l Inspiration from different sources –Calculi for concurrency and for objects –Meta-programming –Error handling l Jolie can be used to apply those ideas in practice

End of talk