The Roman Model for Automated Synthesis in Practice: the SM4All Experience

Size: px
Start display at page:

Download "The Roman Model for Automated Synthesis in Practice: the SM4All Experience"

Transcription

1 The Roman Model for Automated Synthesis in Practice: the SM4All Experience An implementation of the game structure based automated syntesis of services applied to a real scenario Mario Caruso 1 Claudio Di Ciccio 1 Vincenzo Forte 1 Ettore Iacomussi 1 Massimo Mecella 1 1 SAPIENZA Università di Roma Dipartimento di Ingegneria informatica automatica e gestionale ANTONIO RUBERTI cdc@dis.uniroma1.it Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 1 / 65

2 Outline 1 Introduction Service composition SM4ALL 2 Framework The Roman Model for automated composition 3 Service, data and composition model Service model Service Behaviour Language Data model Service and data model Composition model Composition Behaviour Language 4 Realization Extended Roman Model vs service/data model Implementation Software component implementation 5 Experiments Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 2 / 65

3 Outline 1 Introduction 2 Framework 3 Service, data and composition model 4 Realization 5 Experiments Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 3 / 65

4 Service composition The automated service composition Services are software artifacts, that 1 export a description of themselves, 2 are accessible to external clients and 3 communicate through a common interface. Service Oriented Computing (SOC) is a computing paradigm whose basic elements are services, used as building blocks to devise other services. Automated service composition is the problem of automatically combining a set of available services, so to synthesize a more complex service, according to a desired specification. Here we describe a framework for automated service composition, based on: 1 the Roman Model ([BCDG + 03]) for representing services conversational behaviors; 2 the reduction of the composition problem to a safety game for the implementation of the synthesis process ([Pat09]). Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 4 / 65

5 Service composition The automated service composition Services are software artifacts, that 1 export a description of themselves, 2 are accessible to external clients and 3 communicate through a common interface. Service Oriented Computing (SOC) is a computing paradigm whose basic elements are services, used as building blocks to devise other services. Automated service composition is the problem of automatically combining a set of available services, so to synthesize a more complex service, according to a desired specification. Here we describe a framework for automated service composition, based on: 1 the Roman Model ([BCDG + 03]) for representing services conversational behaviors; 2 the reduction of the composition problem to a safety game for the implementation of the synthesis process ([Pat09]). Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 4 / 65

6 Service composition The automated service composition Services are software artifacts, that 1 export a description of themselves, 2 are accessible to external clients and 3 communicate through a common interface. Service Oriented Computing (SOC) is a computing paradigm whose basic elements are services, used as building blocks to devise other services. Automated service composition is the problem of automatically combining a set of available services, so to synthesize a more complex service, according to a desired specification. Here we describe a framework for automated service composition, based on: 1 the Roman Model ([BCDG + 03]) for representing services conversational behaviors; 2 the reduction of the composition problem to a safety game for the implementation of the synthesis process ([Pat09]). Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 4 / 65

7 Service composition The automated service composition Services are software artifacts, that 1 export a description of themselves, 2 are accessible to external clients and 3 communicate through a common interface. Service Oriented Computing (SOC) is a computing paradigm whose basic elements are services, used as building blocks to devise other services. Automated service composition is the problem of automatically combining a set of available services, so to synthesize a more complex service, according to a desired specification. Here we describe a framework for automated service composition, based on: 1 the Roman Model ([BCDG + 03]) for representing services conversational behaviors; 2 the reduction of the composition problem to a safety game for the implementation of the synthesis process ([Pat09]). Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 4 / 65

8 Service composition The automated service composition Services are software artifacts, that 1 export a description of themselves, 2 are accessible to external clients and 3 communicate through a common interface. Service Oriented Computing (SOC) is a computing paradigm whose basic elements are services, used as building blocks to devise other services. Automated service composition is the problem of automatically combining a set of available services, so to synthesize a more complex service, according to a desired specification. Here we describe a framework for automated service composition, based on: 1 the Roman Model ([BCDG + 03]) for representing services conversational behaviors; 2 the reduction of the composition problem to a safety game for the implementation of the synthesis process ([Pat09]). Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 4 / 65

9 SM4ALL The SM4ALL project SM4ALL (Smart homes for All) is a European-funded project, started on September 1st, 2008 and finishing on August 31st, SM4ALL aims at studying and developing an innovative platform for software smart embedded services in immersive environments, based on a service-oriented approach and automated composition techniques. The service-oriented paradigm is used to abstract under a single representation the heterogeneous devices in use, thus overcoming the different standards, communication protocols, data represenation formats. The automated composition techniques are used to make the home system able to perform complex tasks through the orchestration of smart devices, each typically limited in computational resources. The framework presented here has been developed as part of the contribution to this project, from SAPIENZA Università di Roma. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 5 / 65

10 SM4ALL The SM4ALL system architecture Figure: The SM4ALL system architecture Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 6 / 65

11 SM4ALL The contribution of this work to SM4ALL Figure: Off-line Synthesis Engine (OffSEn) in the SM4ALL system architecture Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 7 / 65

12 SM4ALL Off-line Synthesis Engine (OffSEn) The OffSEn is named off-line since it is required to synthesize new virtual services, given the available ones, at system deployment time. OffSEn virtual services (routines) are supposed to be stored, once computed, and be launched in the future by users. OffSEn reasoning core is based the composition techniques described in [Pat09]. The work presented here is not tailored to the SM4ALL case: it can be used as a stand-alone application for testing service compositions. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 8 / 65

13 SM4ALL Off-line Synthesis Engine (OffSEn) The OffSEn is named off-line since it is required to synthesize new virtual services, given the available ones, at system deployment time. OffSEn virtual services (routines) are supposed to be stored, once computed, and be launched in the future by users. OffSEn reasoning core is based the composition techniques described in [Pat09]. The work presented here is not tailored to the SM4ALL case: it can be used as a stand-alone application for testing service compositions. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 8 / 65

14 Outline 1 Introduction 2 Framework 3 Service, data and composition model 4 Realization 5 Experiments Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 9 / 65

15 The Roman Model for automated composition The Roman Model A service is intended as a stateful software artifact characterized by its conversational behavior, i.e., the collection of its potential evolutions resulting from the interaction with some external systems, such as a client service. The so called Roman Model focuses on the conversational behavior of services, represented as Finite State Automata (FSAs) whose transitions are labeled by service s operations, under the assumption that each legal run of the system corresponds to a conversation supported by the service. It is the basis from which we started our research work (see [CGL + 08, BCDG + 03, Pat09]). Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 10 / 65

16 The Roman Model for automated composition Representation of deterministic services Definition A deterministic service (behavior) is represented by a finite deterministic transition system S = O,S,s 0,δ,S f, where: start s 0 o 0 O is the finite alphabet of operations; s 1 S is the finite set of states; s 0 is the initial state; o 2 o 1 δ : S O S is the transition function; S f S is the set of final states. s 2 Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 11 / 65

17 The Roman Model for automated composition Representation of non-deterministic services Definition A non-deterministic service (behavior) is represented by a finite non-deterministic transition system S = O,S,s 0,δ,S f, where: O is the finite alphabet of operations; S is the finite set of states; s 0 is the initial state; ρ S O S is the transition relation; S f S is the set of final states. start s 0 o 2 o 0 o 0 s 1 s 2 o 3 s 3 o 4 Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 12 / 65

18 The Roman Model for automated composition Representation of data Definition Let O be the operation alphabet of a service community C. A data box for C is a tuple DB = O,D,d 0,ρ where: O is the finite set of shared operations, i.e., the whole set of operations services can perform, each of which may or may not affect data box state; D is the finite set of data box states; d 0 D is the initial state; ρ D O D is the transition relation among states. o 0 start d 0 d 1 o 1 Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 13 / 65

19 The Roman Model for automated composition Representation of non-deterministic guarded services Definition A non-deterministic guarded service over a data box DB = O,D,d 0,ρ is a tuple S = O,S,s 0,ρ,G,S f where: O is the same set of operations as in O; S is the finite set of service states; s 0 S is the initial state; S s S is the set of final states; G is a set of boolean functions g : D {, } called guards; ρ S G O S is the service transition relation. start s 0 [g 1 ] o 1 o 0 [g 0 ] o 0 s 1 [g 0 ] o 0 start d 0 d 1 o 1 Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 14 / 65

20 The Roman Model for automated composition The community transition system Definition Let C = {S 1,...,S n,db} be a community, where S i = O,S i,s i0,ρ i,g i,s f i (i = 1,...,n) and DB = O,D,d 0,ρ. The nondeterministic guarded community TS of C, implicitly defined over DB, is the tuple S C = O,{1,...,n},S C,s C 0,γ C,G C,S f C, where: O is, as usual, the shared operation alphabet; {1,...,n} is the set of available service indexes; S C = S 1... S n is the (finite) set of S C states; let s C = s 1,...,s n, we denote s i by com i (s C ) (i = 1,...,n); s C 0 S C, where com i (s C 0 ) = s i0 (i = 1,...,n); S f C S C is the set of S C final states, where s C S f C if and only if com i(s C ) S f C for all i = 1,...,n; G = n i=1 G i is the set of S C guards, where guard g ij stands for g j G i (i.e., g ij is the j-th guard of G i ); γ C S C G O {1,...,n} S C is the S C transition relation, where s C,g,o,k,s C γ C, or s C g,o,k s C is in S C, if ando only if: com k (s C ) g,o com k (s C ) in S k; com i (s C ) = com i (s C ), for i = 1,...,n such that i k. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 15 / 65

21 The Roman Model for automated composition The orchestrator at a glance Intuitively, a trace of a nondeterministic available service over a data box represents a possible synchronous evolution of the service and the data box. A nondeterministic service history is any finite prefix of a trace. The orchestrator is a partial function that, given the community TS history and the operation to perform, returns the index of the available service to delegate such operation to (w.r.t. the DB and services behaviours, and the guards). Definition An orchestrator P for C is a composition of the target service S t by the nondeterministic services in C over DB iff it realizes all traces of S t on DB. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 16 / 65

22 The Roman Model for automated composition The composition problem Given a nondeterministic community C = {S 1,...,S n,db} and a deterministic target service S t over DB, synthesize an ochestrator for C that is a composition of S t by S C Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 17 / 65

23 The Roman Model for automated composition The simulation relation Definition Let C = {S 1,...,S n,db} be a nondeterministic community, DB as usual the data box, and S t a deterministic target service over DB. An ND-simulation relation of S t by S C on DB is a relation R S t S C D such that s t,s C,d R implies: 1 if s t S f t then s C S f C ; 2 for each transition s t g,o s t in S t with g(d) =, if there exists a transition d o d in DB then there a exists a k {1,...,n} such that the following holds: 1 there exists a transition s C g,o,k s C in S C with g(d) = ; 2 for all transitions s C g,o,k s C in S C with g(d) = and d o d in DB, s t,s C,d R Theorem Let C = {S 1,...,S n,db} be a (nondeterministic) community and S t a (deterministic) target service over DB. An orchestrator P for C that is a composition of S t by S C on DB exists if and only if (s t0,s C 0,d 0 ). Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 18 / 65

24 The Roman Model for automated composition The composition problem Given a nondeterministic community C = {S 1,...,S n,db} and a deterministic target service S t over DB, synthesize an ochestrator for C that is a composition of S t by S C The largest ND-simulation relation between S t and C can be computed in polynomial time w.r.t. the size of S t and C. Since the number of states in C is exponential in the number of available services n, can be computed in exponential time. Theorem The problem is EXPTIME-hard. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 19 / 65

25 The Roman Model for automated composition The composition problem Given a nondeterministic community C = {S 1,...,S n,db} and a deterministic target service S t over DB, synthesize an ochestrator for C that is a composition of S t by S C The largest ND-simulation relation between S t and C can be computed in polynomial time w.r.t. the size of S t and C. Since the number of states in C is exponential in the number of available services n, can be computed in exponential time. Theorem The problem is EXPTIME-hard. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 19 / 65

26 Outline 1 Introduction 2 Framework 3 Service, data and composition model 4 Realization 5 Experiments Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 20 / 65

27 Service model The service model: an introduction The service model reference implementation (service model for short) is based on a set of XML Schemata defining the behaviour of services and orchestrator generators. 1 The SBL (Service Behaviour Language) describes both services and targets. 2 The UIC (User Interface Configuration) defines the User Interface specifications for services and targets (icons, labels and so forth). Such standards are all located on the web: We will enter into the SBL details only. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 21 / 65

28 Service model The service model: an introduction The service model reference implementation (service model for short) is based on a set of XML Schemata defining the behaviour of services and orchestrator generators. 1 The SBL (Service Behaviour Language) describes both services and targets. 2 The UIC (User Interface Configuration) defines the User Interface specifications for services and targets (icons, labels and so forth). Such standards are all located on the web: We will enter into the SBL details only. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 21 / 65

29 Service model The service model: an introduction The service model reference implementation (service model for short) is based on a set of XML Schemata defining the behaviour of services and orchestrator generators. 1 The SBL (Service Behaviour Language) describes both services and targets. 2 The UIC (User Interface Configuration) defines the User Interface specifications for services and targets (icons, labels and so forth). Such standards are all located on the web: We will enter into the SBL details only. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 21 / 65

30 Service model Service Behaviour Language: a simple example The header of an SBL document <?xml version="1.0" encoding="utf-8"?> <service name="name of the service" description="description of the service" xmlns=" stid="uri-like identifier" class="service-type"> <ts><!-- The transition system description goes here --></ts> </service> Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 22 / 65

31 Service model Service Behaviour Language: a simple example <?xml version="1.0" encoding="utf-8"?> <service name="sampleone" description="sample One Service Model" xmlns=" stid=" class="service-type"> <ts> <state name="a" type="initial"> <transition action="foop"> <target state="b" /> </transition> </state> <state name="b" type="transient"> <transition action="goop"> <target state="c" /> </transition> </state> <state name="c" type="final"> <transition action="loop"> <target state="a" /> </transition> </state> </ts> </service> start A loop foop B C goop Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 23 / 65

32 Service model Service Behaviour Language: a simple example <?xml version="1.0" encoding="utf-8"?> <service name="sampleone" description="sample One Service Model" xmlns=" stid=" class="service-type"> <ts> <state name="a" type="initial"> <transition action="foop"> <target state="b" /> </transition> </state> <state name="b" type="transient"> <transition action="goop"> <target state="c" /> </transition> </state> <state name="c" type="final"> <transition action="loop"> <target state="a" /> </transition> </state> </ts> </service> start A loop foop B C goop Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 24 / 65

33 Service model Service Behaviour Language: a simple example <?xml version="1.0" encoding="utf-8"?> <service name="sampleone" description="sample One Service Model" xmlns=" stid=" class="service-type"> <ts> <state name="a" type="initial"> <transition action="foop"> <target state="b" /> </transition> </state> <state name="b" type="transient"> <transition action="goop"> <target state="c" /> </transition> </state> <state name="c" type="final"> <transition action="loop"> <target state="a" /> </transition> </state> </ts> </service> start A loop foop B C goop Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 25 / 65

34 Service model Service Behaviour Language: a devilish non-deterministic example <?xml version="1.0" encoding="utf-8"?> <service name="sampleone" description="sample One Service Model" xmlns=" stid=" class="service-type"> <ts> <state name="a" type="initial"> <transition action="foop"> <target state="b" /> <target state="c" /> </transition> </state> <state name="b" type="transient"> <transition action="goop"> <target state="a" /> </transition> </state> <state name="c" type="transient"> <transition action="hoop"> <target state="d" /> </transition> </state> <state name="d" type="final"> <transition action="loop"> <target state="d" /> </transition> </state> </ts> </service> start goop B foop A foop C hoop D loop Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 26 / 65

35 Service model Service Behaviour Language: interacting with the home environment Figure: Services, devices and the home environment Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 27 / 65

36 Service model Service Behaviour Language: the pre-conditions language Pre-conditions grammar (Backus-Naur form) 1 <SYNTAX> ::= <EXPR> 2 <EXPR> ::= ( <EXPR> ) <AND> <OR> <NOT> <CMP> 3 <AND> ::= <EXPR> and <EXPR> 4 <OR> ::= <EXPR> or <EXPR> 5 <NOT> ::=! <EXPR> 6 <CMP> ::= <GT> <LT> <EQU> <GTE> <LTE> 7 <GT> ::= gt( <VAR>, <VAL> ) 8 <LT> ::= lt( <VAR>, <VAL> ) 9 <GTE> ::= gte( <VAR>, <VAL> ) 10 <LTE> ::= lte( <VAR>, <VAL> ) 11 <EQU> ::= equ( <VAR>, <VAL> ) 12 <VAR> ::= variable_name 13 <VAL> ::= " variable_value " A pre-condition string example!( equ(favouritedishtonight,"roastchicken") and equ(chicken,"0") or equ(favouritedishtonight,"pastasalmon") and (equ(pasta,"0") or equ(salmon,"0")) ) Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 28 / 65

37 Service model Service Behaviour Language: the pre-conditions language Pre-conditions grammar (Backus-Naur form) 1 <SYNTAX> ::= <EXPR> 2 <EXPR> ::= ( <EXPR> ) <AND> <OR> <NOT> <CMP> 3 <AND> ::= <EXPR> and <EXPR> 4 <OR> ::= <EXPR> or <EXPR> 5 <NOT> ::=! <EXPR> 6 <CMP> ::= <GT> <LT> <EQU> <GTE> <LTE> 7 <GT> ::= gt( <VAR>, <VAL> ) 8 <LT> ::= lt( <VAR>, <VAL> ) 9 <GTE> ::= gte( <VAR>, <VAL> ) 10 <LTE> ::= lte( <VAR>, <VAL> ) 11 <EQU> ::= equ( <VAR>, <VAL> ) 12 <VAR> ::= variable_name 13 <VAL> ::= " variable_value " A pre-condition string example!( equ(favouritedishtonight,"roastchicken") and equ(chicken,"0") or equ(favouritedishtonight,"pastasalmon") and (equ(pasta,"0") or equ(salmon,"0")) ) Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 28 / 65

38 Service model Service Behaviour Language: the post-conditions language Specification of post-conditions in the SBL <postcondition variable="variable name"> <increase quantity="integer value to add" /> <decrease quantity="integer value to subtract" /> <assign-from variable="variable to transfer the value from" /> <set-value value="value to set" /> </postcondition> A sample post-conditions specification (code snippet) <transition action="buyingredients"> <! > <postcondition variable="pasta"> <set-value value="1"/> </postcondition> <postcondition variable="salmon"> <set-value value="1"/> </postcondition> </transition> Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 29 / 65

39 Data model The data model: an introduction Definition The data model is an extendible conceptual framework for the definition of environmental variable types. The data model reference implementation (service model for short) is based on a set of XML descriptors, defining the values that environmental variables can assume. Each service developer can define her own types, provided that: 1 they are identified by a unique name; 2 they are either: 1 boolean, or 2 an ordered finite collection of values. Data model types concern variables appearing in pre-conditions and post-conditions. The main idea of (small) enumerations is to reduce the variables value space so to decrease the computational effort for the reasoner. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 30 / 65

40 Data model The data model: an introduction Definition The data model is an extendible conceptual framework for the definition of environmental variable types. The data model reference implementation (service model for short) is based on a set of XML descriptors, defining the values that environmental variables can assume. Each service developer can define her own types, provided that: 1 they are identified by a unique name; 2 they are either: 1 boolean, or 2 an ordered finite collection of values. Data model types concern variables appearing in pre-conditions and post-conditions. The main idea of (small) enumerations is to reduce the variables value space so to decrease the computational effort for the reasoner. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 30 / 65

41 Data model The data model: an introduction Definition The data model is an extendible conceptual framework for the definition of environmental variable types. The data model reference implementation (service model for short) is based on a set of XML descriptors, defining the values that environmental variables can assume. Each service developer can define her own types, provided that: 1 they are identified by a unique name; 2 they are either: 1 boolean, or 2 an ordered finite collection of values. Data model types concern variables appearing in pre-conditions and post-conditions. The main idea of (small) enumerations is to reduce the variables value space so to decrease the computational effort for the reasoner. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 30 / 65

42 Data model The data model: an introduction Definition The data model is an extendible conceptual framework for the definition of environmental variable types. The data model reference implementation (service model for short) is based on a set of XML descriptors, defining the values that environmental variables can assume. Each service developer can define her own types, provided that: 1 they are identified by a unique name; 2 they are either: 1 boolean, or 2 an ordered finite collection of values. Data model types concern variables appearing in pre-conditions and post-conditions. The main idea of (small) enumerations is to reduce the variables value space so to decrease the computational effort for the reasoner. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 30 / 65

43 Data model The data model: an example Variables belong to the defined types. Non-boolean types are defined in VML (Variable Modeling Language) files. All variables are listed in VDD (Variable Declaration Descriptor) files. An example of an enumeration-based data type (VML) <variable-model... name="airtemperature"> <value value="cold" id="0"/> <value value="cool" id="1"/> <value value="temperate" id="2"/> <value value="warm" id="3"/> <value value="hot" id="4"/> </variable-model> An example of a declaration of variables (VDD) <home...> <variable name="kitchen_airtemp" type="custom" model="air_temperature.vml.xml" /> <variable name="livingroom_airtemp" type="custom" model="air_temperature.vml.xml" /> </home> Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 31 / 65

44 Service and data model Service and data model: a complete example I <service... name="bathtub" description="bathtub service" class="service-type"> <! > <ts> <state name="empty" type="initial-final"> <transition action="dofillupbathtub"> <target state="filled" /> <precondition><![cdata[equ(waterhot,"1")]]></precondition> <postcondition variable="bathfilled"><set-value value="1"/></postcondition> </transition> </state> <state name="filled" type="initial-final"> start empty <transition action="dofillupbathtub"> <target state="filled" /> doemptybathtub /bathfilled = <precondition><![cdata[equ(bathfilled,"0")]]></precondition> <postcondition variable="bathfilled"><set-value value="1"/></postcondition> </transition> <transition action="doemptybathtub"> <target state="empty" /> <postcondition variable="bathfilled"><set-value value="0"/></postcondition> </transition> </state> </ts> </service> [waterhot = ] dofillupbathtub /bathfilled = filled [bathfilled = ] dofillupbathtub /bathfilled = Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 32 / 65

45 Service and data model Service and data model: a complete example II <service... name="waterheatingsystem" description="water Heating System Service Model" class="service-type"> <! > <ts> <state name="idle" type="initial-final"> <transition action="doswitchoff"> <target state="idle" /> cooling </transition> <transition action="doheatwater"> <target state="warming" /> docoolwater /waterhot = <postcondition variable="waterhot"><set-value value="1"/></postcondition> </transition> <transition action="docoolwater"> <target state="cooling" /> doswitchoff <postcondition variable="waterhot"><set-value value="0"/></postcondition> </transition> </state> <state name="cooling" type="transient"> <transition action="doswitchoff"> <target state="idle" /> </transition> <transition action="doheatwater"> <target state="warming" /> start idle docoolwater /waterhot = <postcondition variable="waterhot"><set-value value="1"/></postcondition> </transition> </state> doswitchoff <state name="warming" type="transient"> <transition action="doswitchoff"> <target state="idle" /> doheatwater /waterhot = </transition> <transition action="docoolwater"> <target state="cooling" /> <postcondition variable="waterhot"><set-value value="0"/></postcondition> </transition> </state> </ts> </service> doheatwater /waterhot = Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 33 / 65 warming

46 Service and data model Service and data model: a complete example III <service... name="preparebathroom" description="set up the bathroom for taking a bath" class="target"> <ts> <state name="st0" type="initial-final"> <transition action="doheatwater"> <target state="st1" /> </transition> </state> <state name="st1" type="transient"> <transition action="dofillupbathtub"> <target state="st2" /> </transition> </state> <state name="st2" type="transient"> <transition action="doemptybathtub"> <target state="st3" /> </transition> </state> <state name="st3" type="transient"> <transition action="doswitchoff"> <target state="st0" /> </transition> </state> </ts> </service> start doheatwater dofillupbathtub doemptybathtub st 0 st 1 st 2 st 3 doswitchoff Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 34 / 65

47 Composition model Composition model: an introduction The composition model is a compact representation for orchestrations. The language for describing them is named CBL (Composition Behaviour Language) Like the SBL format, it is XML-based. Its BPEL-like syntax is expressly designed to make it processable by service orchestrators (as in SM4ALL actually happens). The header of a CBL document <?xml version="1.0" encoding="utf-8"?> <composition xmlns=" xmlns:xsi=" xsi:schemalocation=" name="name of the composition"> <!-- The composition description goes here --> </composition> Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 35 / 65

48 Composition model Composition model: an introduction The composition model is a compact representation for orchestrations. The language for describing them is named CBL (Composition Behaviour Language) Like the SBL format, it is XML-based. Its BPEL-like syntax is expressly designed to make it processable by service orchestrators (as in SM4ALL actually happens). The header of a CBL document <?xml version="1.0" encoding="utf-8"?> <composition xmlns=" xmlns:xsi=" xsi:schemalocation=" name="name of the composition"> <!-- The composition description goes here --> </composition> Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 35 / 65

49 Composition model Composition Behaviour Language For each target service state (conversational-target-state), according to (community-state) 1 the service community state (service-conversational-state) and 2 the variables current value (variable-value), it describes (transition) 1 which service instance to call (invoke attribute) for the next action (action attribute) to be executed; 2 which is the next target state (invoke); 3 (optionally) the effects of the action (postcondition). A sample of a CBL document content (code snippet) <composition...> <conversational-target-state name="st1" type="transient"> <conversational-orchestration-state> <community-state> <service-conversational-state service="bathtub" state="empty"/> <service-conversational-state service="waterheater" state="heating"/> <variable-value name="waterheater_waterhot" value="1"/> <variable-value name="bathtub_bathfilled" value="0"/> </community-state> <transition action="dofillupbathtub" invoke="bathtub"> <target state="st2"/> <postcondition variable="bathtub_bathfilled"><set-value value="true"/></postcondition> </transition> </conversational-orchestration-state> <! > </conversational-target-state> <! > </composition> Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 36 / 65

50 Outline 1 Introduction 2 Framework 3 Service, data and composition model 4 Realization 5 Experiments Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 37 / 65

51 Extended Roman Model vs service/data model On the reduction of FSAs to the SBL Terms used are quite the same with some slight modifications, reported here below. service service instance, belonging to a service type operation action databox set of environmental variables (a.k.a. variables ) guard pre-condition on the action, w.r.t. the current service state (a.k.a. pre-condition, with a little abuse of definition) The services translation is straightforward from the finite state automaton expression to the SBL format. s 0 S <state name="si" type="initial"> s i S <state name="si" type="transient"> s f i Sf <state name="sfi" type="final"> s o s <state name="s"...><transition action="o"><target state="s " /></transition></state> s o s s o s <state name="s"><transition action="o"><target state="s "/><target state="s "/> </transition></state> s [g]o s <state name="s"><transition action="o"><target state="s " /><precondition>g</precondition> </transition></state> Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 38 / 65

52 Extended Roman Model vs service/data model On the reduction of FSAs to the SBL Terms used are quite the same with some slight modifications, reported here below. service service instance, belonging to a service type operation action databox set of environmental variables (a.k.a. variables ) guard pre-condition on the action, w.r.t. the current service state (a.k.a. pre-condition, with a little abuse of definition) The services translation is straightforward from the finite state automaton expression to the SBL format. s 0 S <state name="si" type="initial"> s i S <state name="si" type="transient"> s f i Sf <state name="sfi" type="final"> s o s <state name="s"...><transition action="o"><target state="s " /></transition></state> s o s s o s <state name="s"><transition action="o"><target state="s "/><target state="s "/> </transition></state> s [g]o s <state name="s"><transition action="o"><target state="s " /><precondition>g</precondition> </transition></state> Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 38 / 65

53 Extended Roman Model vs service/data model Databox and SBL The databox evolution is implicitly stated in post-conditions (effects over the action, w.r.t. the current state, with a little abuse of definition). On the next translation rule Here we consider a databox whose state set is D = {d,d }. s o/d d s <state name="s"...><transition action="o"><target state="s " /> <postcondition variable="d"><set-value value="d "> </postcondition></transition></state> Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 39 / 65

54 Extended Roman Model vs service/data model Databox and SBL The databox evolution is implicitly stated in post-conditions (effects over the action, w.r.t. the current state, with a little abuse of definition). On the next translation rule Here we consider a databox whose state set is D = {d,d }. s o/d d s <state name="s"...><transition action="o"><target state="s " /> <postcondition variable="d"><set-value value="d "> </postcondition></transition></state> Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 39 / 65

55 Extended Roman Model vs service/data model Databox, data model and SBL The databox evolution is implicitly stated in post-conditions (effects over the action, w.r.t. the current state, with a little abuse of definition). On the next translation rule We considered operations on the data box depending on the current state (i.e., the current variable value) on integer values. Thanks to the enumeration facet, increase and decrease operations can express transitions on symbolic values as well. s o/d d s <state name="s"...><transition action="o"><target state="s " /> <postcondition variable="d"><increase quantity="1"> </postcondition></transition></state> A slider-like representation of DB Figure: A temperature type variable Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 40 / 65

56 Extended Roman Model vs service/data model Databox, data model and SBL The databox evolution is implicitly stated in post-conditions (effects over the action, w.r.t. the current state, with a little abuse of definition). On the next translation rule We considered operations on the data box depending on the current state (i.e., the current variable value) on integer values. Thanks to the enumeration facet, increase and decrease operations can express transitions on symbolic values as well. s o/d d s <state name="s"...><transition action="o"><target state="s " /> <postcondition variable="d"><increase quantity="1"> </postcondition></transition></state> A slider-like representation of DB Figure: A temperature type variable Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 40 / 65

57 Extended Roman Model vs service/data model Databox, data model and SBL The databox evolution is implicitly stated in post-conditions (effects over the action, w.r.t. the current state, with a little abuse of definition). On the next translation rule We considered operations on the data box depending on the current state (i.e., the current variable value) on integer values. Thanks to the enumeration facet, increase and decrease operations can express transitions on symbolic values as well. s o/d d s <state name="s"...><transition action="o"><target state="s " /> <postcondition variable="d"><increase quantity="1"> </postcondition></transition></state> A slider-like representation of DB Figure: A temperature type variable Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 40 / 65

58 Extended Roman Model vs service/data model A conceptual model Composition +compositionid: String +description: String +xmlmodel: CBL 0..n TargetService +targetid: String +name: String +description: String 0..n +xmlmodel: SBL n Orchestration <<type>> ServiceType +stid: String +xmlmodel: SBL 0..n 1..n 0..n Action +name: String 1 +orchestrationid: long <<instantiate>> <<type>> VariableType <<invoke>> +vtid: String +xmlmodel: Schema XSD <<instantiate>> <<instance>> Service +siid: String +name: String +description: String <<use>> <<instance>> Variable +viid: String <<use>> Figure: A conceptual model of services, variables and compositions Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 41 / 65

59 Extended Roman Model vs service/data model New databox definition The concept of databox DB = O,D,d 0,ρ changes in the SM4ALL context. Due to the fact that: 1 compositions are stored and required to be started at any further point in time, 2 the environmental variables evolution is not under the direct control of services (i.e., they can change their value even though no action has been performed), and 3 we can rely on the full observability of both databox and services states, the environmental data are described by the Databox, where: 1 each state is a tuple in the asynchronous product of the variables value ranges ((2.) and (3.)) W = {V 0,V 1,...,V n } is the set of variable value sets, each V i being a variable values set for the variable v i ; D = V 0 V 1...V n 2 the databox transition system constitute a complete graph ((2.) and (3.)); we can ignore the O labels in the DB definition: post-conditions will constrain the evolution of the v i values; 3 each state is a potential initial state ((1.) and (2.)) Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 42 / 65

60 Extended Roman Model vs service/data model New databox definition The concept of databox DB = O,D,d 0,ρ changes in the SM4ALL context. Due to the fact that: 1 compositions are stored and required to be started at any further point in time, 2 the environmental variables evolution is not under the direct control of services (i.e., they can change their value even though no action has been performed), and 3 we can rely on the full observability of both databox and services states, the environmental data are described by the Databox, where: 1 each state is a tuple in the asynchronous product of the variables value ranges ((2.) and (3.)) W = {V 0,V 1,...,V n } is the set of variable value sets, each V i being a variable values set for the variable v i ; D = V 0 V 1...V n 2 the databox transition system constitute a complete graph ((2.) and (3.)); we can ignore the O labels in the DB definition: post-conditions will constrain the evolution of the v i values; 3 each state is a potential initial state ((1.) and (2.)) Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 42 / 65

61 Extended Roman Model vs service/data model New databox definition The concept of databox DB = O,D,d 0,ρ changes in the SM4ALL context. Due to the fact that: 1 compositions are stored and required to be started at any further point in time, 2 the environmental variables evolution is not under the direct control of services (i.e., they can change their value even though no action has been performed), and 3 we can rely on the full observability of both databox and services states, the environmental data are described by the Databox, where: 1 each state is a tuple in the asynchronous product of the variables value ranges ((2.) and (3.)) W = {V 0,V 1,...,V n } is the set of variable value sets, each V i being a variable values set for the variable v i ; D = V 0 V 1...V n 2 the databox transition system constitute a complete graph ((2.) and (3.)); we can ignore the O labels in the DB definition: post-conditions will constrain the evolution of the v i values; 3 each state is a potential initial state ((1.) and (2.)) Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 42 / 65

62 Extended Roman Model vs service/data model New databox definition The concept of databox DB = O,D,d 0,ρ changes in the SM4ALL context. Due to the fact that: 1 compositions are stored and required to be started at any further point in time, 2 the environmental variables evolution is not under the direct control of services (i.e., they can change their value even though no action has been performed), and 3 we can rely on the full observability of both databox and services states, the environmental data are described by the Databox, where: 1 each state is a tuple in the asynchronous product of the variables value ranges ((2.) and (3.)) W = {V 0,V 1,...,V n } is the set of variable value sets, each V i being a variable values set for the variable v i ; D = V 0 V 1...V n 2 the databox transition system constitute a complete graph ((2.) and (3.)); we can ignore the O labels in the DB definition: post-conditions will constrain the evolution of the v i values; 3 each state is a potential initial state ((1.) and (2.)) Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 42 / 65

63 Extended Roman Model vs service/data model New databox definition The concept of databox DB = O,D,d 0,ρ changes in the SM4ALL context. Due to the fact that: 1 compositions are stored and required to be started at any further point in time, 2 the environmental variables evolution is not under the direct control of services (i.e., they can change their value even though no action has been performed), and 3 we can rely on the full observability of both databox and services states, the environmental data are described by the Databox, where: 1 each state is a tuple in the asynchronous product of the variables value ranges ((2.) and (3.)) W = {V 0,V 1,...,V n } is the set of variable value sets, each V i being a variable values set for the variable v i ; D = V 0 V 1...V n 2 the databox transition system constitute a complete graph ((2.) and (3.)); we can ignore the O labels in the DB definition: post-conditions will constrain the evolution of the v i values; 3 each state is a potential initial state ((1.) and (2.)) Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 42 / 65

64 Extended Roman Model vs service/data model New databox definition The concept of databox DB = O,D,d 0,ρ changes in the SM4ALL context. Due to the fact that: 1 compositions are stored and required to be started at any further point in time, 2 the environmental variables evolution is not under the direct control of services (i.e., they can change their value even though no action has been performed), and 3 we can rely on the full observability of both databox and services states, the environmental data are described by the Databox, where: 1 each state is a tuple in the asynchronous product of the variables value ranges ((2.) and (3.)) W = {V 0,V 1,...,V n } is the set of variable value sets, each V i being a variable values set for the variable v i ; D = V 0 V 1...V n 2 the databox transition system constitute a complete graph ((2.) and (3.)); we can ignore the O labels in the DB definition: post-conditions will constrain the evolution of the v i values; 3 each state is a potential initial state ((1.) and (2.)) Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 42 / 65

65 Extended Roman Model vs service/data model Considerations about the new databox definition The Databox turns into a storage for possible values that v i can assume: DB =, D = V 0 V 1...V n, D 0 D, ρ = D D The rationale is to have an extendible database of values affected by service actions. Through this modification, we detached the Databox from the services: variables exist per se, their evolution is free unless service actions interact with the environment. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 43 / 65

66 Extended Roman Model vs service/data model TLV input/output management Figure: The overall synthesis process, step by step Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 44 / 65

67 Extended Roman Model vs service/data model TLV input encoding The solution approach is based on reducing the problem to the synthesis of Linear-time Temporal Logic (LTL) formulae (see [PPS06]) by Model Checking over Game Structures: the composition problem is reduced to the search for a winning strategy in a safety game (see [Pat09]). The implementation makes use of the TLV (Temporal Logic Verifier, see [PS96, Sha04]) system, a SMV-based reasoner (see [KTB00]). On the name of players in the safety game Beware that players in the safety game are named system and environment. Pay attention not to confuse the environment player with the home environment defined by variables. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 45 / 65

68 Extended Roman Model vs service/data model TLV input encoding: an overview I Main module MODULE main VAR env: system Env(sys.index); sys: system Sys; DEFINE good := (sys.initial & env.initial) -- intial state is "good" by definition!(env.failure); -- services are always required not to fail In the next slide: System, Environment and Services Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 46 / 65

69 Extended Roman Model vs service/data model TLV input encoding: an overview II MODULE Sys VAR index : 0..3; -- num of services, 0 used for init INIT index = 0 TRANS case index=0 : next(index)!=0; index!=0 : next(index)!=0; esac DEFINE initial := (index=0); MODULE Env(index) -- Represents the evolution of available services, seen as a whole VAR operation : doemptybathtub,no_op,doheatwater,doswitchoffheater,dofillupbathtub,start_op,docoolwater; db : Databox; target : Target(operation,db); -- "produces" operations s3 : Service3(index,operation,db); -- "consumes" current index and operation s2 : Service2(index,operation,db); -- "consumes" current index and operation s1 : Service1(index,operation,db); -- "consumes" current index and operation DEFINE initial := ( s3.initial & s2.initial & s1.initial & target.initial & operation=start_op); failure := ( s3.failure s2.failure s1.failure (target.final &!( s3.final & s2.final & s1.final ))); -- Databox see the next slides -- Target service see the next slides -- Available service #n see the next slides Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 47 / 65

70 Extended Roman Model vs service/data model TLV input encoding: the databox MODULE Databox VAR v0 : 0..1; -- variable bathtub_bathfilled v1 : 0..1; -- variable waterheater_waterhot INIT TRUE & v0 in 0..1 & v1 in 0..1 Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 48 / 65

71 Extended Roman Model vs service/data model TLV input encoding: a service in the community -- Available service # bathtub MODULE Service1(index,operation,db) VAR state:start_st,empty,filled; INIT state = start_st TRANS case state=start_st & operation=start_op & index=0: next(state) in empty; (index!= 1) : next(state) = state; -- if not selected remain still (state=empty & operation = dofillupbathtub) : next(db.v0) = 1 & next(db.v1) = db.v1 & next(state) in filled ; (state=empty & operation = doemptybathtub) : next(db.v0) = 0 & next(db.v1) = db.v1 & next(state) in empty ; (state=filled & operation = dofillupbathtub) : next(db.v0) = 1 & next(db.v1) = db.v1 & next(state) in filled ; (state=filled & operation = doemptybathtub) : next(db.v0) = 0 & next(db.v1) = db.v1 & next(state) in empty ; esac DEFINE initial := state=start_st & operation=start_op & index = 0; failure := index = 1 &!( (state = empty & ( (operation = dofillupbathtub & db.v1 = 1 ) (operation = doemptybathtub ))) (state = filled & ( (operation = dofillupbathtub & db.v0 = 0 ) (operation = doemptybathtub )))); final := state in empty,filled; -- end of available service # Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 49 / 65

72 Extended Roman Model vs service/data model TLV input encoding: the post-conditions generation algorithm SMV encoding of the post-conditions 1: procedure GENERATEPOSTCONDITIONS(StringList transition) 2: P := set of postconditions for the transition 3: I := set of all variable identifiers 4: output := 5: for all formula P do 6: output := output. &.formula 7: end for 8: for all identifier I do 9: if identifier / P then 10: output := output. & next(identifier) = identifier hold value 11: end if 12: end for 13: end procedure Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 50 / 65

73 Extended Roman Model vs service/data model TLV input encoding: the target MODULE Target(op,db) VAR state:start_st,st0,st1,st2,st3; INIT state = start_st & op = start_op TRANS case state=start_st & op=start_op : next(state) in st0 & ( next(state) = st0 -> next(op) in doheatwater ); state = st0 & op = doheatwater : next(state) in st1 & ( next(state) = st1 -> next(op) in dofillupbathtub ); state = st1 & op = dofillupbathtub : next(state) in st2 & ( next(state) = st2 -> next(op) in doswitchoffheater ); state = st2 & op = doswitchoffheater : next(state) in st3 & ( next(state) = st3 -> next(op) in no_op ); state = st3 & op = no_op : next(state) in st3 & ( next(state) = st3 -> next(op) in no_op ); esac DEFINE initial := state=start_st & op=start_op; final := state in st3; On the optimization of the input for reducing computation time Only services offering at least one of the actions required from the target are retrieved to compose a local community in the composition process. Only variables involved by pre- and post-conditions of actions offered by the local community are taken into account to build the local databox in the community. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 51 / 65

74 Extended Roman Model vs service/data model TLV raw output: the orchestrator generator I The output file structure consists essentially of four parts: 1 an header that contains informations about the tool version and the libraries loaded; 2 a section containing information about realizability of the specification; 3 a section containing the description of the states for the synthesized automaton; 4 a section that specifies the transitions map of the automaton. Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 52 / 65

75 Extended Roman Model vs service/data model TLV raw output: the orchestrator generator II Output header TLV version System #1: System #2: System #3: Resources used: user time: 0 s BDD nodes allocated: 1712 max amount of BDD nodes allocated: 1712 Bytes allocated: Loading Util.tlv $Revision: 4.3 $ Loading MCTL.tlv $Revision: 4.11 $ Loading MCTLS.tlv $Revision: 4.1 $... Loaded rules file Rules.tlv.... Information about realizability... Check Realizability Specification is realizable Check that a symbolic strategy is correct Transition relation is complete All winning states satisfy invariant... Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 53 / 65

76 Extended Roman Model vs service/data model TLV raw output: the orchestrator generator III Synthesized Automaton States... State 1 env.operation = start_op, env.db.v0 = 1, env.db.v1 = 1, env.target.state = start_st, env.s3.state = start_st, env.s2.state = start_st, env.s1.state = start_st, sys.index = 0, State 2 env.operation = doheatwater, env.db.v0 = 0, env.db.v1 = 0, env.target.state = st0, env.s3.state = idle,env.s2.state = unique, env.s1.state = empty, sys.index = 3, State 3 env.operation = doheatwater, env.db.v0 = 0, env.db.v1 = 1, env.target.state = st0, env.s3.state = idle,env.s2.state = unique, env.s1.state = empty, sys.index = 3, State 4 env.operation = doheatwater, env.db.v0 = 1, env.db.v1 = 0, env.target.state = st0, env.s3.state = idle,env.s2.state = unique, env.s1.state = empty, sys.index = 3, State 5 env.operation = doheatwater, env.db.v0 = 1, env.db.v1 = 1, env.target.state = st0, env.s3.state = idle,env.s2.state = unique, env.s1.state = empty, sys.index = 3,... Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 54 / 65

77 Extended Roman Model vs service/data model TLV raw output: the orchestrator generator IV Synthesized Automaton Transitions (Winning Strategy)... Automaton Transitions From 1 to From 2 to 9 From 3 to 9 From 4 to 6 From 5 to 6 From 6 to 7 From 7 to 8 From 8 to 8 From 9 to 7 From 10 to From 11 to From 12 to Automaton has 12 states, and 24 transitions Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 55 / 65

78 Extended Roman Model vs service/data model TLV output decoding: the composition <composition... name="preparebathroom"> <conversational-target-state name="st0" type="initial"><! > </conversational-target-state> <conversational-target-state name="st1" type="transient"> <conversational-orchestration-state> <community-state> <service-conversational-state service="bathtub" state="empty"/> <service-conversational-state service="waterheater" state="heating"/> <variable-value name="waterheater_waterhot" value="true"/> <variable-value name="bathtub_bathfilled" value="false"/> </community-state> <transition action="dofillupbathtub" invoke="bathtub"> <target state="st2"/> <postcondition variable="bathtub_bathfilled"> <set-value value="true"/> </postcondition> </transition> </conversational-orchestration-state> <conversational-orchestration-state> <community-state> <service-conversational-state service="bathtub" state="empty"/> <service-conversational-state service="waterheater" state="heating"/> <variable-value name="waterheater_waterhot" value="true"/> <variable-value name="bathtub_bathfilled" value="true"/> </community-state> <transition action="dofillupbathtub" invoke="bathtub"> <target state="st2"/> <postcondition variable="bathtub_bathfilled"> <set-value value="true"/> </postcondition> </transition> </conversational-orchestration-state> </conversational-target-state> <! > </composition> Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 56 / 65

79 Software component implementation Off-line Synthesis Engine internal components Figure: The Off-line Synthesis Engine internal components at work Caruso, Di Ciccio, Forte, Iacomussi, Mecella (SAPIENZA) The Roman Model in SM4All 57 / 65

Offline Synthesis Engine in Practice: Usage Instructions

Offline Synthesis Engine in Practice: Usage Instructions Offline Synthesis Engine in Practice: Usage Instructions DIPARTIMENTO INGEGNERIA INFORMATICA, AUTOMATICA E GESTIONALE Ing. Mario Caruso Ing. Claudio Di Ciccio Prof. Massimo Mecella - (ettore.iacomussi@uniroma1.it)

More information

Fabio Patrizi DIS Sapienza - University of Rome

Fabio Patrizi DIS Sapienza - University of Rome Fabio Patrizi DIS Sapienza - University of Rome Overview Introduction to Services The Composition Problem Two frameworks for composition: Non data-aware services Data-aware services Conclusion & Research

More information

Goal-based Composition of Stateful Services for Smart Homes

Goal-based Composition of Stateful Services for Smart Homes Goal-based Composition of Stateful Services for Smart Homes Giuseppe De Giacomo 1 Claudio Di Ciccio 1 Paolo Felli 1 Yuxiao Hu 2 Massimo Mecella 1 SAPIENZA Università di Roma Via Ariosto 25, Roma, Italy

More information

Formal Verification of Software

Formal Verification of Software Formal Verification of Software Sabine Broda Department of Computer Science/FCUP 12 de Novembro de 2014 Sabine Broda (DCC-FCUP) Formal Verification of Software 12 de Novembro de 2014 1 / 26 Formal Verification

More information

Testing LTL Formula Translation into Büchi Automata

Testing LTL Formula Translation into Büchi Automata Testing LTL Formula Translation into Büchi Automata Heikki Tauriainen and Keijo Heljanko Helsinki University of Technology, Laboratory for Theoretical Computer Science, P. O. Box 5400, FIN-02015 HUT, Finland

More information

The Model Checker SPIN

The Model Checker SPIN The Model Checker SPIN Author: Gerard J. Holzmann Presented By: Maulik Patel Outline Introduction Structure Foundation Algorithms Memory management Example/Demo SPIN-Introduction Introduction SPIN (Simple(

More information

3515ICT Theory of Computation Turing Machines

3515ICT Theory of Computation Turing Machines Griffith University 3515ICT Theory of Computation Turing Machines (Based loosely on slides by Harald Søndergaard of The University of Melbourne) 9-0 Overview Turing machines: a general model of computation

More information

A Framework for the Semantics of Behavioral Contracts

A Framework for the Semantics of Behavioral Contracts A Framework for the Semantics of Behavioral Contracts Ashley McNeile Metamaxim Ltd, 48 Brunswick Gardens, London W8 4AN, UK ashley.mcneile@metamaxim.com Abstract. Contracts have proved a powerful concept

More information

Service-Oriented Architectures

Service-Oriented Architectures Architectures Computing & 2009-11-06 Architectures Computing & SERVICE-ORIENTED COMPUTING (SOC) A new computing paradigm revolving around the concept of software as a service Assumes that entire systems

More information

Simulation-Based Security with Inexhaustible Interactive Turing Machines

Simulation-Based Security with Inexhaustible Interactive Turing Machines Simulation-Based Security with Inexhaustible Interactive Turing Machines Ralf Küsters Institut für Informatik Christian-Albrechts-Universität zu Kiel 24098 Kiel, Germany kuesters@ti.informatik.uni-kiel.de

More information

On the Modeling and Verification of Security-Aware and Process-Aware Information Systems

On the Modeling and Verification of Security-Aware and Process-Aware Information Systems On the Modeling and Verification of Security-Aware and Process-Aware Information Systems 29 August 2011 What are workflows to us? Plans or schedules that map users or resources to tasks Such mappings may

More information

T-79.186 Reactive Systems: Introduction and Finite State Automata

T-79.186 Reactive Systems: Introduction and Finite State Automata T-79.186 Reactive Systems: Introduction and Finite State Automata Timo Latvala 14.1.2004 Reactive Systems: Introduction and Finite State Automata 1-1 Reactive Systems Reactive systems are a class of software

More information

Formal verification of contracts for synchronous software components using NuSMV

Formal verification of contracts for synchronous software components using NuSMV Formal verification of contracts for synchronous software components using NuSMV Tobias Polzer Lehrstuhl für Informatik 8 Bachelorarbeit 13.05.2014 1 / 19 Problem description and goals Problem description

More information

Service Oriented Architecture

Service Oriented Architecture Service Oriented Architecture Charlie Abela Department of Artificial Intelligence charlie.abela@um.edu.mt Last Lecture Web Ontology Language Problems? CSA 3210 Service Oriented Architecture 2 Lecture Outline

More information

Informatique Fondamentale IMA S8

Informatique Fondamentale IMA S8 Informatique Fondamentale IMA S8 Cours 1 - Intro + schedule + finite state machines Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@polytech-lille.fr Université Lille 1 - Polytech Lille

More information

Formal Languages and Automata Theory - Regular Expressions and Finite Automata -

Formal Languages and Automata Theory - Regular Expressions and Finite Automata - Formal Languages and Automata Theory - Regular Expressions and Finite Automata - Samarjit Chakraborty Computer Engineering and Networks Laboratory Swiss Federal Institute of Technology (ETH) Zürich March

More information

Formal Verification by Model Checking

Formal Verification by Model Checking Formal Verification by Model Checking Natasha Sharygina Carnegie Mellon University Guest Lectures at the Analysis of Software Artifacts Class, Spring 2005 1 Outline Lecture 1: Overview of Model Checking

More information

Composability of Infinite-State Activity Automata*

Composability of Infinite-State Activity Automata* Composability of Infinite-State Activity Automata* Zhe Dang 1, Oscar H. Ibarra 2, Jianwen Su 2 1 Washington State University, Pullman 2 University of California, Santa Barbara Presented by Prof. Hsu-Chun

More information

Regular Expressions and Automata using Haskell

Regular Expressions and Automata using Haskell Regular Expressions and Automata using Haskell Simon Thompson Computing Laboratory University of Kent at Canterbury January 2000 Contents 1 Introduction 2 2 Regular Expressions 2 3 Matching regular expressions

More information

CS154. Turing Machines. Turing Machine. Turing Machines versus DFAs FINITE STATE CONTROL AI N P U T INFINITE TAPE. read write move.

CS154. Turing Machines. Turing Machine. Turing Machines versus DFAs FINITE STATE CONTROL AI N P U T INFINITE TAPE. read write move. CS54 Turing Machines Turing Machine q 0 AI N P U T IN TAPE read write move read write move Language = {0} q This Turing machine recognizes the language {0} Turing Machines versus DFAs TM can both write

More information

Pushdown automata. Informatics 2A: Lecture 9. Alex Simpson. 3 October, 2014. School of Informatics University of Edinburgh als@inf.ed.ac.

Pushdown automata. Informatics 2A: Lecture 9. Alex Simpson. 3 October, 2014. School of Informatics University of Edinburgh als@inf.ed.ac. Pushdown automata Informatics 2A: Lecture 9 Alex Simpson School of Informatics University of Edinburgh als@inf.ed.ac.uk 3 October, 2014 1 / 17 Recap of lecture 8 Context-free languages are defined by context-free

More information

Turing Machines: An Introduction

Turing Machines: An Introduction CIT 596 Theory of Computation 1 We have seen several abstract models of computing devices: Deterministic Finite Automata, Nondeterministic Finite Automata, Nondeterministic Finite Automata with ɛ-transitions,

More information

Specification and Analysis of Contracts Lecture 1 Introduction

Specification and Analysis of Contracts Lecture 1 Introduction Specification and Analysis of Contracts Lecture 1 Introduction Gerardo Schneider gerardo@ifi.uio.no http://folk.uio.no/gerardo/ Department of Informatics, University of Oslo SEFM School, Oct. 27 - Nov.

More information

6.080/6.089 GITCS Feb 12, 2008. Lecture 3

6.080/6.089 GITCS Feb 12, 2008. Lecture 3 6.8/6.89 GITCS Feb 2, 28 Lecturer: Scott Aaronson Lecture 3 Scribe: Adam Rogal Administrivia. Scribe notes The purpose of scribe notes is to transcribe our lectures. Although I have formal notes of my

More information

Software Model Checking: Theory and Practice

Software Model Checking: Theory and Practice Software Model Checking: Theory and Practice Lecture: Specification Checking - LTL Model Checking Copyright 2004, Matt Dwyer, John Hatcliff, and Robby. The syllabus and all lectures for this course are

More information

Today s Agenda. Automata and Logic. Quiz 4 Temporal Logic. Introduction Buchi Automata Linear Time Logic Summary

Today s Agenda. Automata and Logic. Quiz 4 Temporal Logic. Introduction Buchi Automata Linear Time Logic Summary Today s Agenda Quiz 4 Temporal Logic Formal Methods in Software Engineering 1 Automata and Logic Introduction Buchi Automata Linear Time Logic Summary Formal Methods in Software Engineering 2 1 Buchi Automata

More information

Formal Verification and Linear-time Model Checking

Formal Verification and Linear-time Model Checking Formal Verification and Linear-time Model Checking Paul Jackson University of Edinburgh Automated Reasoning 21st and 24th October 2013 Why Automated Reasoning? Intellectually stimulating and challenging

More information

Two-Way Traceability and Conflict Debugging for AspectLTL Programs

Two-Way Traceability and Conflict Debugging for AspectLTL Programs Two-Way Traceability and Conflict Debugging for AspectLTL Programs Shahar Maoz RWTH Aachen University, Germany maoz@se-rwth.de Yaniv Sa ar Weizmann Institute of Science, Israel yaniv.saar@weizmann.ac.il

More information

Runtime Verification - Monitor-oriented Programming - Monitor-based Runtime Reflection

Runtime Verification - Monitor-oriented Programming - Monitor-based Runtime Reflection Runtime Verification - Monitor-oriented Programming - Monitor-based Runtime Reflection Martin Leucker Technische Universität München (joint work with Andreas Bauer, Christian Schallhart et. al) FLACOS

More information

A Logic Approach for LTL System Modification

A Logic Approach for LTL System Modification A Logic Approach for LTL System Modification Yulin Ding and Yan Zhang School of Computing & Information Technology University of Western Sydney Kingswood, N.S.W. 1797, Australia email: {yding,yan}@cit.uws.edu.au

More information

logic language, static/dynamic models SAT solvers Verified Software Systems 1 How can we model check of a program or system?

logic language, static/dynamic models SAT solvers Verified Software Systems 1 How can we model check of a program or system? 5. LTL, CTL Last part: Alloy logic language, static/dynamic models SAT solvers Today: Temporal Logic (LTL, CTL) Verified Software Systems 1 Overview How can we model check of a program or system? Modeling

More information

Monitoring Metric First-order Temporal Properties

Monitoring Metric First-order Temporal Properties Monitoring Metric First-order Temporal Properties DAVID BASIN, FELIX KLAEDTKE, SAMUEL MÜLLER, and EUGEN ZĂLINESCU, ETH Zurich Runtime monitoring is a general approach to verifying system properties at

More information

Diagonalization. Ahto Buldas. Lecture 3 of Complexity Theory October 8, 2009. Slides based on S.Aurora, B.Barak. Complexity Theory: A Modern Approach.

Diagonalization. Ahto Buldas. Lecture 3 of Complexity Theory October 8, 2009. Slides based on S.Aurora, B.Barak. Complexity Theory: A Modern Approach. Diagonalization Slides based on S.Aurora, B.Barak. Complexity Theory: A Modern Approach. Ahto Buldas Ahto.Buldas@ut.ee Background One basic goal in complexity theory is to separate interesting complexity

More information

StaRVOOrS: A Tool for Combined Static and Runtime Verification of Java

StaRVOOrS: A Tool for Combined Static and Runtime Verification of Java StaRVOOrS: A Tool for Combined Static and Runtime Verification of Java Jesús Mauricio Chimento 1, Wolfgang Ahrendt 1, Gordon J. Pace 2, and Gerardo Schneider 3 1 Chalmers University of Technology, Sweden.

More information

Rigorous Software Development CSCI-GA 3033-009

Rigorous Software Development CSCI-GA 3033-009 Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 11 Semantics of Programming Languages Denotational Semantics Meaning of a program is defined as the mathematical

More information

MASSiVE, Unità di Torino

MASSiVE, Unità di Torino MASSiVE, Unità di Torino Verifying the Conformance of Web Services to Global Interaction Protocols M. Baldoni, C. Baroglio, A. Martelli, V. Patti, C. Schifanella Dipartimento di Informatica Univ. degli

More information

24 Uses of Turing Machines

24 Uses of Turing Machines Formal Language and Automata Theory: CS2004 24 Uses of Turing Machines 24 Introduction We have previously covered the application of Turing Machine as a recognizer and decider In this lecture we will discuss

More information

Business Process Modelling Languages

Business Process Modelling Languages Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Business Process Modelling Languages Paola Turci AOT Lab - DII - Università di Parma Business

More information

Automatic Service Composition and Collection of Data

Automatic Service Composition and Collection of Data Modeling Data & Processes for Service Specifications in Colombo Daniela Berardi, Diego Calvanese 2, Giuseppe De Giacomo Richard Hull 3, Maurizio Lenzerini, and Massimo Mecella Università di Roma La Sapienza,

More information

Communication Diagrams

Communication Diagrams Communication Diagrams Massimo Felici Realizing Use cases in the Design Model 1 Slide 1: Realizing Use cases in the Design Model Use-case driven design is a key theme in a variety of software processes

More information

OntoPIM: How to Rely on a Personal Ontology for Personal Information Management

OntoPIM: How to Rely on a Personal Ontology for Personal Information Management OntoPIM: How to Rely on a Personal Ontology for Personal Information Management Vivi Katifori 2, Antonella Poggi 1, Monica Scannapieco 1, Tiziana Catarci 1, and Yannis Ioannidis 2 1 Dipartimento di Informatica

More information

Introduction to Service Oriented Architectures (SOA)

Introduction to Service Oriented Architectures (SOA) Introduction to Service Oriented Architectures (SOA) Responsible Institutions: ETHZ (Concept) ETHZ (Overall) ETHZ (Revision) http://www.eu-orchestra.org - Version from: 26.10.2007 1 Content 1. Introduction

More information

INF5140: Specification and Verification of Parallel Systems

INF5140: Specification and Verification of Parallel Systems INF5140: Specification and Verification of Parallel Systems Lecture 7 LTL into Automata and Introduction to Promela Gerardo Schneider Department of Informatics University of Oslo INF5140, Spring 2007 Gerardo

More information

D83167 Oracle Data Integrator 12c: Integration and Administration

D83167 Oracle Data Integrator 12c: Integration and Administration D83167 Oracle Data Integrator 12c: Integration and Administration Learn To: Use Oracle Data Integrator to perform transformation of data among various platforms. Design ODI Mappings, Procedures, and Packages

More information

Automata and Formal Languages

Automata and Formal Languages Automata and Formal Languages Winter 2009-2010 Yacov Hel-Or 1 What this course is all about This course is about mathematical models of computation We ll study different machine models (finite automata,

More information

Software Verification and Testing. Lecture Notes: Temporal Logics

Software Verification and Testing. Lecture Notes: Temporal Logics Software Verification and Testing Lecture Notes: Temporal Logics Motivation traditional programs (whether terminating or non-terminating) can be modelled as relations are analysed wrt their input/output

More information

T-110.5140 Network Application Frameworks and XML Web Services and WSDL 15.2.2010 Tancred Lindholm

T-110.5140 Network Application Frameworks and XML Web Services and WSDL 15.2.2010 Tancred Lindholm T-110.5140 Network Application Frameworks and XML Web Services and WSDL 15.2.2010 Tancred Lindholm Based on slides by Sasu Tarkoma and Pekka Nikander 1 of 20 Contents Short review of XML & related specs

More information

Software Modeling and Verification

Software Modeling and Verification Software Modeling and Verification Alessandro Aldini DiSBeF - Sezione STI University of Urbino Carlo Bo Italy 3-4 February 2015 Algorithmic verification Correctness problem Is the software/hardware system

More information

Automatic Verification of Data-Centric Business Processes

Automatic Verification of Data-Centric Business Processes Automatic Verification of Data-Centric Business Processes Alin Deutsch UC San Diego Richard Hull IBM Yorktown Heights Fabio Patrizi Sapienza Univ. of Rome Victor Vianu UC San Diego Abstract We formalize

More information

Static Program Transformations for Efficient Software Model Checking

Static Program Transformations for Efficient Software Model Checking Static Program Transformations for Efficient Software Model Checking Shobha Vasudevan Jacob Abraham The University of Texas at Austin Dependable Systems Large and complex systems Software faults are major

More information

Lecture 2: Universality

Lecture 2: Universality CS 710: Complexity Theory 1/21/2010 Lecture 2: Universality Instructor: Dieter van Melkebeek Scribe: Tyson Williams In this lecture, we introduce the notion of a universal machine, develop efficient universal

More information

Finite Automata. Reading: Chapter 2

Finite Automata. Reading: Chapter 2 Finite Automata Reading: Chapter 2 1 Finite Automaton (FA) Informally, a state diagram that comprehensively captures all possible states and transitions that a machine can take while responding to a stream

More information

CSE 135: Introduction to Theory of Computation Decidability and Recognizability

CSE 135: Introduction to Theory of Computation Decidability and Recognizability CSE 135: Introduction to Theory of Computation Decidability and Recognizability Sungjin Im University of California, Merced 04-28, 30-2014 High-Level Descriptions of Computation Instead of giving a Turing

More information

Representation of E-documents in AIDA Project

Representation of E-documents in AIDA Project Representation of E-documents in AIDA Project Diana Berbecaru Marius Marian Dip. di Automatica e Informatica Politecnico di Torino Corso Duca degli Abruzzi 24, 10129 Torino, Italy Abstract Initially developed

More information

Service-oriented Design: A Multi-viewpoint Approach

Service-oriented Design: A Multi-viewpoint Approach Service-oriented Design: A Multi-viewpoint Approach Remco Dijkman 1,2, Marlon Dumas 2 1 Centre for Telematics and Information Technology University of Twente, The Netherlands r.m.dijkman@utwente.nl 2 Centre

More information

Challenges and Opportunities for formal specifications in Service Oriented Architectures

Challenges and Opportunities for formal specifications in Service Oriented Architectures ACSD ATPN Xi an China June 2008 Challenges and Opportunities for formal specifications in Service Oriented Architectures Gustavo Alonso Systems Group Department of Computer Science Swiss Federal Institute

More information

Relationship-Based Change Propagation: A Case Study

Relationship-Based Change Propagation: A Case Study Relationship-Based Change Propagation: A Case Study by Winnie Lai A thesis submitted in conformity with the requirements for the degree of Master of Computer Science Department of Computer Science University

More information

Complexities of Simulating a Hybrid Agent-Landscape Model Using Multi-Formalism

Complexities of Simulating a Hybrid Agent-Landscape Model Using Multi-Formalism Complexities of Simulating a Hybrid Agent-Landscape Model Using Multi-Formalism Composability Gary R. Mayer Gary.Mayer@asu.edu Hessam S. Sarjoughian Sarjougian@asu.edu Arizona Center for Integrative Modeling

More information

Compiler Construction

Compiler Construction Compiler Construction Regular expressions Scanning Görel Hedin Reviderad 2013 01 23.a 2013 Compiler Construction 2013 F02-1 Compiler overview source code lexical analysis tokens intermediate code generation

More information

CRM Global Search: Installation & Configuration

CRM Global Search: Installation & Configuration Installation ***Important: It is highly recommended that you first take a backup of your current CRM Application Ribbons prior to importing this solution. Please do so by navigating to Settings > Solutions

More information

Pushdown Automata. place the input head on the leftmost input symbol. while symbol read = b and pile contains discs advance head remove disc from pile

Pushdown Automata. place the input head on the leftmost input symbol. while symbol read = b and pile contains discs advance head remove disc from pile Pushdown Automata In the last section we found that restricting the computational power of computing devices produced solvable decision problems for the class of sets accepted by finite automata. But along

More information

Fixed-Point Logics and Computation

Fixed-Point Logics and Computation 1 Fixed-Point Logics and Computation Symposium on the Unusual Effectiveness of Logic in Computer Science University of Cambridge 2 Mathematical Logic Mathematical logic seeks to formalise the process of

More information

Introduction to SPIN. Acknowledgments. Parts of the slides are based on an earlier lecture by Radu Iosif, Verimag. Ralf Huuck. Features PROMELA/SPIN

Introduction to SPIN. Acknowledgments. Parts of the slides are based on an earlier lecture by Radu Iosif, Verimag. Ralf Huuck. Features PROMELA/SPIN Acknowledgments Introduction to SPIN Parts of the slides are based on an earlier lecture by Radu Iosif, Verimag. Ralf Huuck Ralf Huuck COMP 4152 1 Ralf Huuck COMP 4152 2 PROMELA/SPIN PROMELA (PROcess MEta

More information

1 What Are Web Services?

1 What Are Web Services? Oracle Fusion Middleware Introducing Web Services 11g Release 1 (11.1.1) E14294-04 January 2011 This document provides an overview of Web services in Oracle Fusion Middleware 11g. Sections include: What

More information

CS 3719 (Theory of Computation and Algorithms) Lecture 4

CS 3719 (Theory of Computation and Algorithms) Lecture 4 CS 3719 (Theory of Computation and Algorithms) Lecture 4 Antonina Kolokolova January 18, 2012 1 Undecidable languages 1.1 Church-Turing thesis Let s recap how it all started. In 1990, Hilbert stated a

More information

From Hybrid Data-Flow Languages to Hybrid Automata: A Complete Translation

From Hybrid Data-Flow Languages to Hybrid Automata: A Complete Translation From Hybrid Data-Flow Languages to Hybrid Automata: A Complete Translation Peter Schrammel peter.schrammel@inria.fr (joint work with Bertrand Jeannet) INRIA Grenoble Rhône-Alpes INRIA large-scale initiative

More information

Combining Software and Hardware Verification Techniques

Combining Software and Hardware Verification Techniques Formal Methods in System Design, 21, 251 280, 2002 c 2002 Kluwer Academic Publishers. Manufactured in The Netherlands. Combining Software and Hardware Verification Techniques ROBERT P. KURSHAN VLADIMIR

More information

Complexity Theory. Jörg Kreiker. Summer term 2010. Chair for Theoretical Computer Science Prof. Esparza TU München

Complexity Theory. Jörg Kreiker. Summer term 2010. Chair for Theoretical Computer Science Prof. Esparza TU München Complexity Theory Jörg Kreiker Chair for Theoretical Computer Science Prof. Esparza TU München Summer term 2010 Lecture 8 PSPACE 3 Intro Agenda Wrap-up Ladner proof and time vs. space succinctness QBF

More information

Welcome to... Problem Analysis and Complexity Theory 716.054, 3 VU

Welcome to... Problem Analysis and Complexity Theory 716.054, 3 VU Welcome to... Problem Analysis and Complexity Theory 716.054, 3 VU Birgit Vogtenhuber Institute for Software Technology email: bvogt@ist.tugraz.at office hour: Tuesday 10:30 11:30 slides: http://www.ist.tugraz.at/pact.html

More information

Reading 13 : Finite State Automata and Regular Expressions

Reading 13 : Finite State Automata and Regular Expressions CS/Math 24: Introduction to Discrete Mathematics Fall 25 Reading 3 : Finite State Automata and Regular Expressions Instructors: Beck Hasti, Gautam Prakriya In this reading we study a mathematical model

More information

Grandstream XML Application Guide Three XML Applications

Grandstream XML Application Guide Three XML Applications Grandstream XML Application Guide Three XML Applications PART A Application Explanations PART B XML Syntax, Technical Detail, File Examples Grandstream XML Application Guide - PART A Three XML Applications

More information

1. Nondeterministically guess a solution (called a certificate) 2. Check whether the solution solves the problem (called verification)

1. Nondeterministically guess a solution (called a certificate) 2. Check whether the solution solves the problem (called verification) Some N P problems Computer scientists have studied many N P problems, that is, problems that can be solved nondeterministically in polynomial time. Traditionally complexity question are studied as languages:

More information

A Tutorial on Data Integration

A Tutorial on Data Integration A Tutorial on Data Integration Maurizio Lenzerini Dipartimento di Informatica e Sistemistica Antonio Ruberti, Sapienza Università di Roma DEIS 10 - Data Exchange, Integration, and Streaming November 7-12,

More information

Enhancing A Software Testing Tool to Validate the Web Services

Enhancing A Software Testing Tool to Validate the Web Services Enhancing A Software Testing Tool to Validate the Web Services Tanuj Wala 1, Aman Kumar Sharma 2 1 Research Scholar, Department of Computer Science, Himachal Pradesh University Shimla, India 2 Associate

More information

Goal-Driven Adaptable Software Architecture for UAVs

Goal-Driven Adaptable Software Architecture for UAVs SEAS DTC Annual Technical Conference 2008 Goal-Driven Adaptable Software Architecture for UAVs William Heaven, Daniel Sykes, Jeff Magee, Jeff Kramer SER001 Imperial College London The Challenge Autonomous

More information

Scanner. tokens scanner parser IR. source code. errors

Scanner. tokens scanner parser IR. source code. errors Scanner source code tokens scanner parser IR errors maps characters into tokens the basic unit of syntax x = x + y; becomes = + ; character string value for a token is a lexeme

More information

Introducing Formal Methods. Software Engineering and Formal Methods

Introducing Formal Methods. Software Engineering and Formal Methods Introducing Formal Methods Formal Methods for Software Specification and Analysis: An Overview 1 Software Engineering and Formal Methods Every Software engineering methodology is based on a recommended

More information

How To Understand Data Integration

How To Understand Data Integration Data Integration 1 Giuseppe De Giacomo e Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza Seminari di Ingegneria Informatica: Integrazione di Dati

More information

A first step towards modeling semistructured data in hybrid multimodal logic

A first step towards modeling semistructured data in hybrid multimodal logic A first step towards modeling semistructured data in hybrid multimodal logic Nicole Bidoit * Serenella Cerrito ** Virginie Thion * * LRI UMR CNRS 8623, Université Paris 11, Centre d Orsay. ** LaMI UMR

More information

On Winning Conditions of High Borel Complexity in Pushdown Games

On Winning Conditions of High Borel Complexity in Pushdown Games Fundamenta Informaticae (2005) 1 22 1 IOS Press On Winning Conditions of High Borel Complexity in Pushdown Games Olivier Finkel Equipe de Logique Mathématique U.F.R. de Mathématiques, Université Paris

More information

Introduction to Automata Theory. Reading: Chapter 1

Introduction to Automata Theory. Reading: Chapter 1 Introduction to Automata Theory Reading: Chapter 1 1 What is Automata Theory? Study of abstract computing devices, or machines Automaton = an abstract computing device Note: A device need not even be a

More information

[MS-ASMS]: Exchange ActiveSync: Short Message Service (SMS) Protocol

[MS-ASMS]: Exchange ActiveSync: Short Message Service (SMS) Protocol [MS-ASMS]: Exchange ActiveSync: Short Message Service (SMS) Protocol Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications

More information

Implementation of Recursively Enumerable Languages using Universal Turing Machine in JFLAP

Implementation of Recursively Enumerable Languages using Universal Turing Machine in JFLAP International Journal of Information and Computation Technology. ISSN 0974-2239 Volume 4, Number 1 (2014), pp. 79-84 International Research Publications House http://www. irphouse.com /ijict.htm Implementation

More information

BUSINESS RULES CONCEPTS... 2 BUSINESS RULE ENGINE ARCHITECTURE... 4. By using the RETE Algorithm... 5. Benefits of RETE Algorithm...

BUSINESS RULES CONCEPTS... 2 BUSINESS RULE ENGINE ARCHITECTURE... 4. By using the RETE Algorithm... 5. Benefits of RETE Algorithm... 1 Table of Contents BUSINESS RULES CONCEPTS... 2 BUSINESS RULES... 2 RULE INFERENCE CONCEPT... 2 BASIC BUSINESS RULES CONCEPT... 3 BUSINESS RULE ENGINE ARCHITECTURE... 4 BUSINESS RULE ENGINE ARCHITECTURE...

More information

Finite Automata. Reading: Chapter 2

Finite Automata. Reading: Chapter 2 Finite Automata Reading: Chapter 2 1 Finite Automata Informally, a state machine that comprehensively captures all possible states and transitions that a machine can take while responding to a stream (or

More information

A formal approach to model changeability of Enterprise Resource Planning Systems

A formal approach to model changeability of Enterprise Resource Planning Systems A formal approach to model changeability of Enterprise Resource Planning Systems Laura Maruster (l.maruster@rug.nl) University of Groningen, Faculty of Economics and Business PO Box 800, 9700 AV Groningen,

More information

1 What Are Web Services?

1 What Are Web Services? Oracle Fusion Middleware Introducing Web Services 11g Release 1 (11.1.1.6) E14294-06 November 2011 This document provides an overview of Web services in Oracle Fusion Middleware 11g. Sections include:

More information

Automata and Computability. Solutions to Exercises

Automata and Computability. Solutions to Exercises Automata and Computability Solutions to Exercises Fall 25 Alexis Maciel Department of Computer Science Clarkson University Copyright c 25 Alexis Maciel ii Contents Preface vii Introduction 2 Finite Automata

More information

C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.

C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln. Koln C#5.0 IN A NUTSHELL Fifth Edition Joseph Albahari and Ben Albahari O'REILLY Beijing Cambridge Farnham Sebastopol Tokyo Table of Contents Preface xi 1. Introducing C# and the.net Framework 1 Object

More information

6.2 Permutations continued

6.2 Permutations continued 6.2 Permutations continued Theorem A permutation on a finite set A is either a cycle or can be expressed as a product (composition of disjoint cycles. Proof is by (strong induction on the number, r, of

More information

CHAPTER 7 GENERAL PROOF SYSTEMS

CHAPTER 7 GENERAL PROOF SYSTEMS CHAPTER 7 GENERAL PROOF SYSTEMS 1 Introduction Proof systems are built to prove statements. They can be thought as an inference machine with special statements, called provable statements, or sometimes

More information

On Recognizable Timed Languages FOSSACS 2004

On Recognizable Timed Languages FOSSACS 2004 On Recognizable Timed Languages Oded Maler VERIMAG Grenoble France Amir Pnueli NYU and Weizmann New York and Rehovot USA FOSSACS 2004 Nutrition Facts Classical (Untimed) Recognizability Timed Languages

More information

A Multi-agent System for Knowledge Management based on the Implicit Culture Framework

A Multi-agent System for Knowledge Management based on the Implicit Culture Framework A Multi-agent System for Knowledge Management based on the Implicit Culture Framework Enrico Blanzieri Paolo Giorgini Fausto Giunchiglia Claudio Zanoni Department of Information and Communication Technology

More information

Informatica e Sistemi in Tempo Reale

Informatica e Sistemi in Tempo Reale Informatica e Sistemi in Tempo Reale Introduction to C programming Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 25, 2010 G. Lipari (Scuola Superiore Sant Anna)

More information

Model Checking: An Introduction

Model Checking: An Introduction Announcements Model Checking: An Introduction Meeting 2 Office hours M 1:30pm-2:30pm W 5:30pm-6:30pm (after class) and by appointment ECOT 621 Moodle problems? Fundamentals of Programming Languages CSCI

More information

Lesson 4 Web Service Interface Definition (Part I)

Lesson 4 Web Service Interface Definition (Part I) Lesson 4 Web Service Interface Definition (Part I) Service Oriented Architectures Module 1 - Basic technologies Unit 3 WSDL Ernesto Damiani Università di Milano Interface Definition Languages (1) IDLs

More information

Runtime Verification for Real-Time Automotive Embedded Software

Runtime Verification for Real-Time Automotive Embedded Software Runtime Verification for Real-Time Automotive Embedded Software S. Cotard, S. Faucou, J.-L. Béchennec, A. Queudet, Y. Trinquet 10th school of Modelling and Verifying Parallel processes (MOVEP) Runtime

More information

Spreadsheet Programming:

Spreadsheet Programming: Spreadsheet Programming: The New Paradigm in Rapid Application Development Contact: Info@KnowledgeDynamics.com www.knowledgedynamics.com Spreadsheet Programming: The New Paradigm in Rapid Application Development

More information

HECTOR a software model checker with cooperating analysis plugins. Nathaniel Charlton and Michael Huth Imperial College London

HECTOR a software model checker with cooperating analysis plugins. Nathaniel Charlton and Michael Huth Imperial College London HECTOR a software model checker with cooperating analysis plugins Nathaniel Charlton and Michael Huth Imperial College London Introduction HECTOR targets imperative heap-manipulating programs uses abstraction

More information

The Classes P and NP

The Classes P and NP The Classes P and NP We now shift gears slightly and restrict our attention to the examination of two families of problems which are very important to computer scientists. These families constitute the

More information