Translating Orc Features into Petri Nets and the Join Calculus Hernán Melgratti IMT Lucca Institute for Advance Studies Joint Work with Roberto Bruni and.

Slides:



Advertisements
Similar presentations
Dataflow Analysis for Datarace-Free Programs (ESOP 11) Arnab De Joint work with Deepak DSouza and Rupesh Nasre Indian Institute of Science, Bangalore.
Advertisements

Transposing F to C Transposing F to C Andrew Kennedy & Don Syme Microsoft Research Cambridge, U.K.
Substitution & Evaluation Order cos 441 David Walker.
CommUnity, Tiles and Connectors joint work with Roberto Bruni José Luiz Fiadeiro Antónia Lopes Ugo Montanari Ivan Lanese Dipartimento di Informatica Università.
COMMUNICATING SEQUENTIAL PROCESSES C. A. R. Hoare The Queen’s University Belfast, North Ireland.
Memory Consistency Models Kevin Boos. Two Papers Shared Memory Consistency Models: A Tutorial – Sarita V. Adve & Kourosh Gharachorloo – September 1995.
Programming Languages and Paradigms
Petri Nets Section 2 Roohollah Abdipur.
Applying Petri Net Unfoldings for Verification of Mobile Systems Apostolos Niaouris Joint work with V. Khomenko, M. Koutny MOCA ‘06.
SE424 SemanticsRosemary Monahan NUIM Section 5: Imperative Languages Languages that utilise stores are called imperative languages. The store is a data.
Programming Paradigms for Concurrency Lecture 11 Part III – Message Passing Concurrency TexPoint fonts used in EMF. Read the TexPoint manual before you.
1 A class of Generalized Stochastic Petri Nets for the performance Evaluation of Mulitprocessor Systems By M. Almone, G. Conte Presented by Yinglei Song.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Relational Algebra Chapter 4, Part A Modified by Donghui Zhang.
INFS614, Fall 08 1 Relational Algebra Lecture 4. INFS614, Fall 08 2 Relational Query Languages v Query languages: Allow manipulation and retrieval of.
Roberto Pisa, Italy 13 June 2008 WADT Tiles for Reo Roberto Bruni Dipartimento di Informatica Università di Pisa WADT th International.
Dynamic Graph Transformation Systems Hernán Melgratti IMT Lucca Institute for Advance Studies Joint Work with Roberto Bruni Dipartimento di Informatica,
10. Petri Nets Prof. O. Nierstrasz. Roadmap  Definition: —places, transitions, inputs, outputs —firing enabled transitions  Modelling: —concurrency.
1 The SOCK SAGA Ivan Lanese Computer Science Department University of Bologna Italy Joint work with Gianluigi Zavattaro.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy On the Expressive Power of Primitives for Compensation Handling Joint work with.
1 Nominal Calculi for Transactions: JOIN Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination and Orchestration.
1 Formal Models for Distributed Negotiations Description Roberto Bruni Dipartimento di Informatica Università di Pisa XVII Escuela de Ciencias Informaticas.
1 Formal Models for Distributed Negotiations Zero-Safe Nets Roberto Bruni Dipartimento di Informatica Università di Pisa XVII Escuela de Ciencias Informaticas.
Concurrency CS 510: Programming Languages David Walker.
1 Ivan Lanese Computer Science Department University of Bologna Italy Behavioural Theory for SSCC Joint work with Luis Cruz-Filipe, Francisco Martins,
Encapsulation by Subprograms and Type Definitions
Hernán Melgratti joint work with Roberto Bruni and Ugo Montanari Dipartimento di Informatica - Università di Pisa Flat Committed Join in Join.
New insights on architectural connectors joint work with Roberto Bruni University of Pisa, Italy Ugo Montanari University of Pisa, Italy José Luiz Fiadeiro.
1 Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Error Handling: From Theory to Practice Joint work with Fabrizio Montesi italianaSoftware.
1 Formal Models for Transactions: Zero Safe Nets Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination and.
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
1 Formal Models for Distributed Negotiations From Petri Nets to Join Calculus Roberto Bruni Dipartimento di Informatica Università di Pisa XVII Escuela.
1 Ivan Lanese Computer Science Department University of Bologna Italy Behavioural Theory at Work: Program Transformations in a Service-centred Calculus.
An algebra of Connectors for modeling CommUnity with Tiles joint work with Roberto Bruni Ugo Montanari Dipartimento di Informatica Università di Pisa Ivan.
1 Formal Models for Transactions: BizTalk as ZSN Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination and.
Rutgers University Relational Algebra 198:541 Rutgers University.
1 Ivan Lanese Computer Science Department University of Bologna Italy Streaming Services in SSCC Joint work with Francisco Martins, Vasco Vasconcelos and.
Dipartimento di Informatica Università di Pisa Nested Commits for Mobile Calculi: Extending Join Roberto Bruni, Hernán Melgratti and Ugo Montanari.
Relational Algebra, R. Ramakrishnan and J. Gehrke (with additions by Ch. Eick) 1 Relational Algebra.
Fuzzy Petri Nets of Education
1 Relational Algebra and Calculus Chapter 4. 2 Relational Query Languages  Query languages: Allow manipulation and retrieval of data from a database.
Kurt Jensen Lars M. Kristensen 1 Coloured Petri Nets Department of Computer Science Coloured Petri Nets Modelling and Validation of Concurrent Systems.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 7: BPEL Some notes selected from.
Dipartimento di Informatica Università di Pisa Alberto Baragatti, Roberto Bruni, Hernán Melgratti, Ugo Montanari and Giorgio Spagnolo Prototype Platforms.
1 Relational Algebra Chapter 4, Sections 4.1 – 4.2.
Petri Nets Lecturer: Roohollah Abdipour. Agenda Introduction Petri Net Modelling with Petri Net Analysis of Petri net 2.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Database Management Systems Chapter 4 Relational Algebra.
NP-Complete Problems. Running Time v.s. Input Size Concern with problems whose complexity may be described by exponential functions. Tractable problems.
CSCD34-Data Management Systems - A. Vaisman1 Relational Algebra.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Decidability Results for Dynamic Installation of Compensation Handlers Joint.
Imperative Languages Section 5 Continued.... A Dynamically Typed Language Variable may take on values from different data types. Run­time type checking.
Pipelined and Parallel Computing Partition for 1 Hongtao Du AICIP Research Nov 3, 2005.
/faculteit technologie management PN-1 Petri nets refresher Prof.dr.ir. Wil van der Aalst Eindhoven University of Technology, Faculty of Technology Management,
High Performance Embedded Computing © 2007 Elsevier Lecture 4: Models of Computation Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte.
Francesco Tiezzi IMT Advanced Studies Lucca Causal-Consistent Reversibility in a Tuple-Based Distributed Language Joint work with Elena Giachino, Ivan.
Types and Programming Languages Lecture 16 Simon Gay Department of Computing Science University of Glasgow 2006/07.
Process Mining – Concepts and Algorithms Review of literature on process mining techniques for event log data.
1 Seminar on SOA Seminar on Service Oriented Architecture BPEL Some notes selected from “Business Process Execution Language for Web Services” by Matjaz.
Coloured Petri Nets Modelling and Validation of Concurrent Systems
NP-Completeness Yin Tat Lee
Concurrent Systems Modeling using Petri Nets – Part II
بسمه‌تعالي فصل چهاردهم شبکه‌هاي پتري.
Theory of Computation Turing Machines.

Coloured Petri Nets Modelling and Validation of Concurrent Systems
Languages and Compilers (SProg og Oversættere)
NP-Completeness Yin Tat Lee
CSE 341 Lecture 11 b closures; scoping rules
Recursive Procedures and Scopes
Well-behaved Dataflow Graphs
CS561 Computer Architecture Hye Yeon Kim
Presentation transcript:

Translating Orc Features into Petri Nets and the Join Calculus Hernán Melgratti IMT Lucca Institute for Advance Studies Joint Work with Roberto Bruni and Emilio Tuosto

- WS-FM 2006 Hernán Aims To distill Orc primitives Orc is an orchestration language It is a process calculus It does not provide any explicit mechanism for name creation

- WS-FM 2006 Hernán Roadmap Is it an Orc process an ordinary Petri net? Place / transition Petri nets are not enough The need of distinguishing different evaluations of the same expression The need of killing executions So, we encode Orc into the Join calculus

- WS-FM 2006 Hernán Orc in one slide Basic services or sites: M,M 1,M 2,… Providing functionalities Site call: M(p 0,…,p n ) Return at most one result Pipeline: f>x>g Sequential composition (x occurs bound in g) Symmetric Parallelism: f|g Independent computation Asymmetric Parallelism: g where x:  f x occurs bound in f Recussion: E(q 0,…,q n )  f, and E occurs in f

- WS-FM 2006 Hernán Orc by example [KCM06] CNN and BBC are news services CNN(d) It may return 0 or 1 value CNN(d) | BBC(d) May produce 0, 1, or 2 values (CNN(d) | BBC(d)) > x > (a,x) may be called 0, 1, or 2 times (a,x) where x:  (CNN(d)| BBC(d)) is called at most one

- WS-FM 2006 Hernán Orc into Petri Nets 1-answer0-answer call return Site invocation

- WS-FM 2006 Hernán Orc into Petri Nets 1-answer0-answer call return Site invocation f > x > g

- WS-FM 2006 Hernán Orc into Petri Nets 1-answer0-answer call return Site invocation f g f > x > g

- WS-FM 2006 Hernán Orc into Petri Nets 1-answer0-answer call return Site invocation Actually we need coloured tokens x x f g f > x > g

- WS-FM 2006 Hernán Orc into Petri Nets 1-answer0-answer call return Site invocation f g f | g f > x > g

- WS-FM 2006 Hernán Orc into Petri Nets 1-answer0-answer call return Site invocation f g fg f > x > g f | g

- WS-FM 2006 Hernán Orc into Petri Nets 1-answer0-answer call return Site invocation f g fg f > x > g f | g

- WS-FM 2006 Hernán Orc into Petri Nets 1-answer0-answer call return Site invocation f g fg f > x > g f | g

- WS-FM 2006 Hernán An Orc Process as a PN (CNN(d) | BBC(d))> x > (a,x)

- WS-FM 2006 Hernán An Orc Process as a PN 1-answer0-answer1-answer0-answer Call_CNNCall_BBC (CNN(d) | BBC(d))> x > (a,x)

- WS-FM 2006 Hernán An Orc Process as a PN 1-answer0-answer Return_CNN 1-answer0-answer Call_CNNCall_BBC Return_BBC (CNN(d) | BBC(d))> x > (a,x)

- WS-FM 2006 Hernán An Orc Process as a PN 1-answer0-answer Return_CNN 1-answer0-answer Call_CNNCall_BBC Return_BBC (CNN(d) | BBC(d))> x > (a,x) 1-answer0-answer Return_ Call_

- WS-FM 2006 Hernán Mapping the Asym. composition f where x:  g fg

- WS-FM 2006 Hernán Mapping the Asym. composition f where x:  g fg

- WS-FM 2006 Hernán Mapping the Asym. composition f where x:  g fg

- WS-FM 2006 Hernán Mapping the Asym. composition (a,x) where x:  (CNN(d)| BBC(d))

- WS-FM 2006 Hernán Mapping the Asym. composition Return_BBC (a,x) where x:  (CNN(d)| BBC(d)) 1-answer0-answer Return_CNN 1-answer0-answer Call_CNNCall_BBC 1-answer0-answer Return_ Call_

- WS-FM 2006 Hernán Mapping the Asym. composition Return_BBC (a,x) where x:  (CNN(d)| BBC(d)) 1-answer0-answer Return_CNN 1-answer0-answer Call_CNNCall_BBC 1-answer0-answer Return_ Call_

- WS-FM 2006 Hernán Mapping the Asym. composition Return_BBC (a,x) where x:  (CNN(d)| BBC(d)) 1-answer0-answer Return_CNN 1-answer0-answer Call_CNNCall_BBC 1-answer0-answer Return_ Call_

- WS-FM 2006 Hernán Mapping the Asym. composition Return_BBC (a,x) where x:  (CNN(d)| BBC(d)) 1-answer0-answer Return_CNN 1-answer0-answer Call_CNNCall_BBC 1-answer0-answer Return_ Call_ lock

- WS-FM 2006 Hernán But it doesn’t work (a,x) where x:  (CNN(d)| BBC(d)) f > d >

- WS-FM 2006 Hernán But it doesn’t work Return_BBC (a,x) where x:  (CNN(d)| BBC(d)) 1-answer0-answer Return_CNN 1-answer0-answer Call_CNNCall_BBC 1-answer0-answer Return_ Call_ f > d > lock

- WS-FM 2006 Hernán But it doesn’t work Return_BBC (a,x) where x:  (CNN(d)| BBC(d)) 1-answer0-answer Return_CNN 1-answer0-answer Call_CNNCall_BBC 1-answer0-answer Return_ Call_ f > d > lock

- WS-FM 2006 Hernán But it doesn’t work Return_BBC (a,x) where x:  (CNN(d)| BBC(d)) 1-answer0-answer Return_CNN 1-answer0-answer Call_CNNCall_BBC 1-answer0-answer Return_ Call_ f > d > lock

- WS-FM 2006 Hernán But it doesn’t work Return_BBC (a,x) where x:  (CNN(d)| BBC(d)) 1-answer0-answer Return_CNN 1-answer0-answer Call_CNNCall_BBC 1-answer0-answer Return_ Call_ f > d > lock

- WS-FM 2006 Hernán But it doesn’t work Return_BBC (a,x) where x:  (CNN(d)| BBC(d)) 1-answer0-answer Return_CNN 1-answer0-answer Call_CNNCall_BBC 1-answer0-answer Return_ Call_ f > d > lock

- WS-FM 2006 Hernán But it doesn’t work Return_BBC (a,x) where x:  (CNN(d)| BBC(d)) 1-answer0-answer Return_CNN 1-answer0-answer Call_CNNCall_BBC 1-answer0-answer Return_ Call_ f > d > lock

- WS-FM 2006 Hernán But it doesn’t work Return_BBC (a,x) where x:  (CNN(d)| BBC(d)) 1-answer0-answer Return_CNN 1-answer0-answer Call_CNNCall_BBC 1-answer0-answer Return_ Call_ f > d > lock We should kill the running computation (i.e., remove tokens from the net). This can be done by using inhibitor or reset arcs In any case we sequentialise several evaluations of the same expression

- WS-FM 2006 Hernán Join Join processes can be seen as dynamic and reconfigurable, coloured nets

- WS-FM 2006 Hernán Join Join processes can be seen as dynamic and reconfigurable, coloured nets a x b x ax  xbax  xb

- WS-FM 2006 Hernán Join Join processes can be seen as dynamic and reconfigurable, coloured nets a x b x ax  xbax  xb a c def in a  a  | a  c   a x b x ax  xbax  xb b def in a  b  | c  b  b c a  x b x ax  xbax  xb a def in a  a  | c  b  b c

- WS-FM 2006 Hernán Join Join processes can be seen as dynamic and reconfigurable, coloured nets a x a  x   def c  y   y  x  in c  c  c y x c y

- WS-FM 2006 Hernán Join Join processes can be seen as dynamic and reconfigurable, coloured nets a x a  x   def c  y   y  x  in c  c  a b def c y x c y in a  a  | a  b  a x a  x   def c  y   y  x  in c  c  b def c y x c y in a  b  | c  c  c y c y cy  aycy  ay

- WS-FM 2006 Hernán Orc into Join f w g z Any evaluation of g is done on a fresh copy of the net w  v   { g } z def v in { f } w { f > x > g } z

- WS-FM 2006 Hernán Orc into Join f w g z w  v   { g } z def in { f } w v { f | g } z fg z { f } z | { g } z f w v g v val x w  v  | tok   val x  def in { f } w | { g } z | tok  { f where x:  g } z { f > x > g } z

- WS-FM 2006 Hernán Orc into Join Site invocation { CNN(d) } z Using the continuation style CNN(d,k) k  v   z  v  def in CNN(d,k) We can receive more than one answer for a call k  v  | tok   z  v  def in CNN(d,k) | tok 

- WS-FM 2006 Hernán We don’t get exactly the same behaviour When x is chosen g is killed After one x is chosen, all other value produced by g is ignored After receiving one answer, the sender is blocked Only one received answer is considered CNN(d) k  v  | tok   z  v  def in CNN(d,k) | tok  w  v  | tok   val x  def in { f } w | { g } z | tok  f where x:  g

- WS-FM 2006 Hernán Correspondence Theorem: Let O be an Orc Program and {O} its encoding in Join. Then, O  {O} when considering the non killing asymmetric composition.

- WS-FM 2006 Hernán Final Remarks The encoding highlights the fact that Orc primitives involve dynamic creation of names Pruning of asymmetric composition is an operation not common in PC Is it realistic in a distributed setting? This can be seen as equivalent to the disabling of input ports