Mobile Ambients Luca Cardelli Andrew D. Gordon Pravin Shetty

Slides:



Advertisements
Similar presentations
Agent agent Outline of Presentation Introduction: Inter-Agent Message Passing ARP: Design and Analysis Generalization: A Generic Framework Conclusion.
Advertisements

Models of Concurrency Manna, Pnueli.
Dr. Kalpakis CMSC 621, Advanced Operating Systems. Fall 2003 URL: Distributed System Architectures.
Programming Paradigms for Concurrency Lecture 11 Part III – Message Passing Concurrency TexPoint fonts used in EMF. Read the TexPoint manual before you.
Course on Probabilistic Methods in Concurrency (Concurrent Languages for Probabilistic Asynchronous Communication) Lecture 1 The pi-calculus and the asynchronous.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
Formal Modeling of Concurrent Processes: PI and API Calculi Shahram Rahimi.
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
Mobile Access Control Adriana Compagnoni Stevens Institute of Technology Joint work with Elsa L Gunter (UI-UC) Rutgers, February 3, 2006.
Mobile Ambients Luca Cardelli Digital Equipment Corporation, Systems Research Center Andrew D. Gordon University of Cambridge, Computer Laboratory Presented.
Fundamentals of Python: From First Programs Through Data Structures
Basic Data Communication
Your Interactive Guide to the Digital World Discovering Computers 2012 Edited by : Noor Al-Hareqi.
Databases and the Internet. Lecture Objectives Databases and the Internet Characteristics and Benefits of Internet Server-Side vs. Client-Side Special.
Manolis Katevenis FORTH and University of Crete, Greece Interprocessor Communication seen as load/store instruction generalization.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
Networks – Network Architecture Network architecture is specification of design principles (including data formats and procedures) for creating a network.
Networks QUME 185 Introduction to Computer Applications.
Clone-Cloud. Motivation With the increasing use of mobile devices, mobile applications with richer functionalities are becoming ubiquitous But mobile.
Advanced Topics in SE Spring Process Algebra Hossein Hojjat Formal Methods Lab University of Tehran.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
Concurrent Programming. Concurrency  Concurrency means for a program to have multiple paths of execution running at (almost) the same time. Examples:
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
Distributed System Concepts and Architectures Services
NETWORKING FUNDAMENTALS. Network+ Guide to Networks, 4e2.
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 1: Characterization of Distributed & Mobile Systems Dr. Michael R.
CSI 3125, Preliminaries, page 1 Networking. CSI 3125, Preliminaries, page 2 Networking A network represents interconnection of computers that is capable.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 5.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 9 Networks and Communications.
C. Varela1 Chapter 6: Ambient Calculus Programming Distributed Computing Systems: A Foundational Approach Carlos Varela Rensselaer Polytechnic Institute.
Fundamentals of Information Systems, Sixth Edition
Overview Parallel Processing Pipelining
Edited by : Noor Al-Hareqi
Instructor: Ahmed Jafer
Module 8: Networking Services
Chapter 3: Process Concept
Representation, Syntax, Paradigms, Types
Establishing End-to-End Guaranteed Bandwidth Network Paths Across Multiple Administrative Domains The DOE-funded TeraPaths project at Brookhaven National.
Processes Overview: Process Concept Process Scheduling
Data Networking Fundamentals
Naming A name in a distributed system is a string of bits or characters used to refer to an entity. To resolve name a naming system is needed.
CSI 400/500 Operating Systems Spring 2009
TYPES OFF OPERATING SYSTEM
Wednesday, September 19, 2018 What Is the Internet?
Parallel Programming in C with MPI and OpenMP
Unit 27: Network Operating Systems
An Introduction to Computer Networking
Parallel and Multiprocessor Architectures – Shared Memory
Edited by : Noor Al-Hareqi
Multiple Processor Systems
Representation, Syntax, Paradigms, Types
Unix System Calls and Posix Threads
Computer Networking A computer network, often simply referred to as a network, is a collection of computers and devices connected by communications channels.
Computer Networking A computer network, often simply referred to as a network, is a collection of computers and devices connected by communications channels.
Representation, Syntax, Paradigms, Types
Concurrency: Mutual Exclusion and Process Synchronization
Chapter 2: The Linux System Part 5
AbbottLink™ - IP Address Overview
Representation, Syntax, Paradigms, Types
CSE 451: Operating Systems Autumn 2003 Lecture 7 Synchronization
CSE 451: Operating Systems Autumn 2005 Lecture 7 Synchronization
CSE 451: Operating Systems Winter 2003 Lecture 7 Synchronization
Edited by : Noor Al-Hareqi
Instructor: Mort Anvari
Parallel Programming in C with MPI and OpenMP
Parallel execution Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
By Hussein Alhashimi.
Chapter 3: Process Management
COE 342: Data & Computer Communications (T042) Dr. Marwan Abu-Amara
Presentation transcript:

Mobile Ambients Luca Cardelli Andrew D. Gordon Pravin Shetty Digital Equipment Corporation, Systems Research Center Andrew D. Gordon University of Cambridge, Computer Laboratory Presented by Pravin Shetty CSE2500

Mobility Mobile Computing Mobile Computation Computing devices are mobile environments Mobile Computation Computations which move among environments are mobile agents

Administrative Domains Network level Firewall partitioning of Intranet from Internet Address partitioning of subnet from LAN Host level Access to remote resources (disk, CPU, etc.) Mobility and access require authorization

Outline Overview of approach and related work Mobility Calculus Primitives, Semantics, and Examples Complete Ambient Calculus Communication Primitives Examples and Encoding of async -calculus Criticisms and Conclusions

Ambients Bounded location for computation a web page, an address space, a filesystem, a data object, a laptop, … not a thread, collections of objects, … Each ambient has a name, and may contain a collection of local agents a collection of sub-ambients

Names May be May be used to derive capabilities created, passed around, and used to name new ambients May be used to derive capabilities

Related Work Obliq Telescript Java Linda -calculus spi-calculus Chemical Abstract Machine join-calculus LLinda distributed calculi

Mobility Primitives n names M ::= capabilities P,Q ::= processes (vn)P restriction 0 inactivity P | Q composition !P replication n[P] ambient M.P action M ::= capabilities in n can enter n out n can leave n open n can open n

(vn)P Restriction creates a new (unique) name n within a scope of P may be used to name ambients and operate on ambients by name is transparent to reduction: P  Q  (vn)P  (vn)Q

Inaction does nothing

Composition P | Q denotes process P executing in parallel with process Q is commutative and associative obeys the rule: P  Q  P | R  Q | R

!P Replication creates as many parallel replicas of P as needed may be used to express iteration and recursion to be reduced, it is first expanded to P | !P

n[P] Ambients an ambient with name n within which P is executing: P  Q  n[P]  n[Q] may contain nested sub-ambients as well as processes running in parallel: n[P1 | … | Pp | m1[…] | … | mq[…]]

Entry capability in n. P instructs the surrounding ambient to enter a sibling ambient n If n doesn’t exist, it blocks. If more than one exists, any one may be chosen Reduction rule: n[in m. P | Q] | m[R]  m[n[P | Q] | R]

Exit capability out n. P instructs the surrounding ambient to exit its parent ambient n If n doesn’t exist, it blocks. Reduction rule: m[n[out m. P | Q] | R]  n[P | Q] | m[R]

open n. P Open capability dissolves the ambient n at the same level as the surrounding ambient If n doesn’t exist, it blocks. If more than one exists, any one may be chosen Reduction rule: open n. P | n[Q]  P | Q

Example: Locks acquire n. P  open n. P release n. P  n[] | P handshake: acquire n. release m. P | release n. acquire m. Q

Objective Moves Allows a computation to move into an ambient. Only possible if the ambient allows it mv in n. P | n[Q] * n[P | Q] n[mv out n. P | Q] * P | n[Q]

Objective Moves allow n  !open n mv in n. P  (vk) k[in n. in[out k. P]] mv out n. P  (vk) k[out n. out[out k. P]] n[P]  n[P | allow in] n[P]  n[P] | allow out n[P]  n[P | allow in] | allow out

Synchronization on Named Channels Channel n is defined as n[] n?.P  mv in n. acquire rd. release wr. mv out n. P n!.P  mv in n. release rd. acquire wr. mv out n. P

Mobility and Communication Primitives P,Q ::= processes (vn)P restriction 0 inactivity P | Q composition !P replication M[P] ambient M.P action (x).P input action <M> async output action M ::= capabilities x variable n name in M can enter M out M can leave M open M can open M  null M.M’ path

Communicable Values Names, capabilities, and  may be exchanged Multiple capabilities may be combined into paths (such as for transmitting a route)

(x). P <M> Ambient I/O <M> releases a capability into the local ambient (x).P captures the result and binds it lexically Reduction rule: (x). P | <M>  P {x  M}

Examples: Cells Allows for storage and retrieval of values at a named location cell c v  c[<v> | !(x).<x>] get c (x). P  mv in c. (x). (<x> | mv out c. P) set c (v). P  mv in c. (x). (<v> | mv out c. P)

Routable Packets A packet carries a computation May be routed to an ambient via path M An ambient may forward a packet via a path packet pkt  pkt[!(x).x | !open route] route pkt with P to M  route[in pkt. <M> | P] forward pkt to M  route pkt with 0 to M

Ether I/O Both parent and child ambients must be enabled for I/O. Children may then input and output using parent’s Ether n[P]  a parent n[P] enabling Ether I/O n[P]  a child n[P] enabling Ether I/O n(x).P  receive a value from the Ether n <M>  send a value into the Ether

Ether I/O n[P]  n[e[] | P] n[P]  n[P] n(x).P  mv out n. mv in e. (x). mv out e. mv in n. P n <M>  mv out n. mv in e. <M>

Encoding the -calculus: channels ch n  a channel (ch n)P  a new channel n(x).P  channel input n<M>  async channel output Should satisfy the reduction n(x).P | n<M> * P {x  M}

Encoding the -calculus: channels ch n  n[!open io] (ch n)P  (vn) (ch n | P) n(x).P  (vp) (io[in n. (x). p[out n. P]] | open p) n<M>  io[in n.<M>]

Channel Reduction ch n | n(x).P | n<M>  (vp) (n[!open io] | io[in n. (x). p[out n. P]] | open p | io[in n.<M>]) * (vp) (n[!open io | io[(x). p[out n. P]] | io[<M>]] | open p) * (vp) (n[!open io | (x). p[out n. P] | <M>] | open p)  (vp) (n[!open io | p[out n. P{x  M}]] | open p)  (vp) (n[!open io] | p[P{x  M}] | open p)  (vp) (n[!open io] | P{x  M})  ch n | P{x  M}

Encoding (vn)P  (vn) (n[!open io] | P) n(x).P  (vp) (io[in n. (x). p[out n. P]] | open p) n<m>  io[in n.<m>] P | Q  P | Q !P  !P

Issues Interference No type system (yet) name clashes with “temporary” locations during evaluation with concurrent processes No type system (yet) some legal programs are meaningless because of ‘type errors’ resulting from communication Notions of security are too simple

Conclusions Introduced notion of mobile ambients Presented a simple, yet powerful calculus mobility security Other document (the “Annex”) formally defines notions of observational equivalence