Chryssis Georgiou, University of Cyprus Peter Musial, VeroModo, Inc.

Slides:



Advertisements
Similar presentations
Aaron Johnson with Joan Feigenbaum Paul Syverson
Advertisements

Synthesis of Protocol Converter Using Timed Petri-Nets Anh Dang Balaji Krishnamoorthy Manoj Iyer Presented by:
Processes Management.
Model Checking for an Executable Subset of UML Fei Xie 1, Vladimir Levin 2, and James C. Browne 1 1 Dept. of Computer Sciences, UT at Austin 2 Bell Laboratories,
Translation-Based Compositional Reasoning for Software Systems Fei Xie and James C. Browne Robert P. Kurshan Cadence Design Systems.
1 Model checking. 2 And now... the system How do we model a reactive system with an automaton ? It is convenient to model systems with Transition systems.
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
1 Translation Validation: From Simulink to C Michael RyabtsevOfer Strichman Technion, Haifa, Israel Acknowledgement: sponsored by a grant from General.
TCP-IP Primer David Cozens. Targets Have a basic understanding of Ethernet network technology Be aware of how this technology is applied on the 5000 series.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
An Automata-based Approach to Testing Properties in Event Traces H. Hallal, S. Boroday, A. Ulrich, A. Petrenko Sophia Antipolis, France, May 2003.
An Associative Broadcast Based Coordination Model for Distributed Processes James C. Browne Kevin Kane Hongxia Tian Department of Computer Sciences The.
Interface Automata 29-September Modeling Temporal Behavior of Component Component behaves with Environment Traditional (pessimistic) approach –
An Introduction to Input/Output Automata Qihua Wang.
CS 584. A Parallel Programming Model We need abstractions to make it simple. The programming model needs to fit our parallel machine model. Abstractions.
1 Synchronization strategies for global computing models Ivan Lanese Computer Science Department University of Bologna.
1 An Inheritance-Based Technique for Building Simulation Proofs Incrementally Idit Keidar, Roger Khazan, Nancy Lynch, Alex Shvartsman MIT Lab for Computer.
Concurrency CS 510: Programming Languages David Walker.
Composition Model and its code. bound:=bound+1.
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
Chapter 8 Asynchronous System Model by Mikhail Nesterenko “Distributed Algorithms” by Nancy A. Lynch.
Fundamentals of Computer Networks ECE 478/578 Lecture #2 Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Inter-Process Communication Mechanisms CSE331 Operating Systems Design.
A Simple Method for Extracting Models from Protocol Code David Lie, Andy Chou, Dawson Engler and David Dill Computer Systems Laboratory Stanford University.
Modeling Process CSCE 668Set 14: Simulations 2 May be several algorithms (processes) runs on each processor to simulate the desired communication system.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
1 IOA: Mathematical Models  Distributed Programs Nancy Lynch November 15, 2000 Collaborators: Steve Garland, Josh Tauber, Anna Chefter, Antonio Ramirez,
- 1 - Embedded Systems - SDL Some general properties of languages 1. Synchronous vs. asynchronous languages Description of several processes in many languages.
Chapter 14 Asynchronous Network Model by Mikhail Nesterenko “Distributed Algorithms” by Nancy A. Lynch.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Improving the Efficiency of Fault-Tolerant Distributed Shared-Memory Algorithms Eli Sadovnik and Steven Homberg Second Annual MIT PRIMES Conference, May.
Timed I/O Automata: A Mathematical Framework for Modeling and Analyzing Real-Time Systems Frits Vaandrager, University of Nijmegen joint work with Dilsun.
C. André, J. Boucaron, A. Coadou, J. DeAntoni,
6.852: Distributed Algorithms Spring, 2008 Class 13.
4/19/20021 TCPSplitter: A Reconfigurable Hardware Based TCP Flow Monitor David V. Schuehler.
1 Modeling and Analyzing Distributed Systems Using I/O Automata Nancy Lynch, MIT Draper Laboratory, IR&D Mid-Year Meeting December 11, 2002.
1 IOA: Distributed Algorithms  Distributed Programs Nancy Lynch PODC 2000 Collaborators: Steve Garland, Josh Tauber, Anna Chefter, Antonio Ramirez, Michael.
May University of Glasgow Generalising Feature Interactions in Muffy Calder, Alice Miller Dept. of Computing Science University of Glasgow.
Constraints Assisted Modeling and Validation Presented in CS294-5 (Spring 2007) Thomas Huining Feng Based on: [1]Constraints Assisted Modeling and Validation.
Chapter 8 Asynchronous System Model by Mikhail Nesterenko “Distributed Algorithms” by Nancy A. Lynch.
G.v. Bochmann, revised Jan Comm Systems Arch 1 Different system architectures Object-oriented architecture (only objects, no particular structure)
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Developing a Framework for Simulation, Verification and Testing of SDL Specifications Olga Shumsky Lawrence Henschen Northwestern University
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
A Theory of Distributed Objects Toward a Foundation for Component Grid Platforms Ludovic HENRIO l A Theory of Distributed Objects l Components l Perspectives.
Probabilistic Verification Tong Wang tw2436 Yihan Zou yz2575 Hang Yin hy2368 Miaoqiong Wang mw2908 of Go-Back-N.
Mathematical Models and Proof/Analysis Methods for Timing-Based Systems And… Their Application to Communication, Fault-Tolerant Distributed Computing,
1 Modeling and Analyzing Distributed Systems Using I/O Automata Nancy Lynch, MIT Draper Laboratory, IR&D Kickoff Meeting Aug. 30, 2002.
CSCI1600: Embedded and Real Time Software Lecture 10: Modeling IV: Compositions of State Machines Steven Reiss, Fall 2015.
Sub-fields of computer science. Sub-fields of computer science.
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Chapter 3: Process Concept
Opeoluwa Matthews, Jesse Bingham, Daniel Sorin
PROTOCOL CORRECTNESS Tutorial 3 Theoretical
Dynamic connection system
Synthesis from scenarios and requirements
Software Connectors.
Java Socket Programming and Java RMI CS
Behavioral Models for Software Development
Logical architecture refinement
Model Checking for an Executable Subset of UML
IOA Code Generator (Making IOA Run)
Distributed Algorithms
Subsuption Architecture
A GUI Based Aid for Generation of Code-Frameworks of TMOs
Design Yaodong Bi.
An Orchestration Language for Parallel Objects
Java Socket Programming and Java RMI CSE 291
Exceptions and networking
Presentation transcript:

A Formal Treatment of an Abstract Channel Implementation Using Java Sockets and TCP Chryssis Georgiou, University of Cyprus Peter Musial, VeroModo, Inc. Alexander Shvartsman, University of Connecticut Elaine Sonderegger, University of Connecticut

Motivation Abstract models and specifications of distributed systems allow formal reasoning about their safety properties Mapping the functionality of abstract specifications to executable code for target distributed platforms is a challenging and error-prone process Formal specifications and faithful implementations of asynchronous communication channels are particularly challenging

Related Work Traditional communication channel models Fixed, pre-initialized channels Examples Reliable FIFO channel Lossy reordering channel Josh Tauber’s IOA compiler used Java/MPI to implement pre-initialized channels

Our Work First formal specification of an asynchronous communication channel with: Explicit initialization Dynamic interconnections with graceful comings and goings Implementation of the specification using Java’s interface to TCP sockets Proof by forward simulation that the implementation preserves the safety properties of the specification

Initialization Sender Receiver senderOpen receiverListening send respReceiverListening send receive send receive

Sender Closing emptying closed Sender Receiver senderClose receive

Receiver Closing closed Sender Receiver receiverClose Bit Bucket

Abstract Channel Input/Output Automata formalism Transitions (where m is a message, i & j are nodes) input send (m, i, j) output receive (m, i, j) input receiverListening (j) input receiverStopListening (j) input senderOpen (i, j) output respReceiverListening (i, j) input senderClose (i, j) internal senderClosing (i, j) input receiverClose (i, j) internal lose (m)

Implementation Distributed Abstract Channel functionality among nodes Developed a Composite Channel with three types of component automata JVM-TCP Channel Sender Mediator Receiver Mediator Based on Josh Tauber’s IOA compiler for a Java/MPI interface

Node Automaton Node i TCP Send Sockets Mediator JVM- TCP Channel Application Automaton TCP Sockets Receive Mediator

Main Result Theorem: Composite Channel implements Abstract Channel The set of traces of Composite Channel is a subset of the set of traces of Abstract Channel Proved using forward simulation Established a simulation relation mapping the states of Composite Channel to the states of Abstract Channel Showed the mapping holds for the initial states of each automaton and is maintained by every transition of Composite Channel

Summary First formal specification and implementation of an abstract asynchronous communication channel with explicit support for dynamic creation and teardown of communication links Provides a building block for modeling dynamic distributed applications and systems Serves as an aid to automated code generation Future Work (supported by an NSF grant) Bi-directional channels Multiple concurrent channels between node pairs

Thank You