* Faculty       * Staff       * Students & Alumni       * Committees       * Contact       * Institute Directory
* Undergraduate Program       * Graduate Program       * Courses       * Institute Catalog      
* Undergraduate       * Graduate       * Institute Admissions: Undergraduate | Graduate      
* Colloquia       * Seminars       * News       * Events       * Institute Events      
* Overview       * Lab Manual       * Institute Computing      
No Menu Selected

* News


Network-transparent distributed programming in Mozart: principles, practice, and protocols

Peter van Roy
Catholic University, Belgium

Thursday, November 10, 2005
JEC 3117 - 4:00 p.m. to 5:00 p.m.
Refreshments at 3:30 p.m.


Distributed programming is usually considered difficult; and it is indeed difficult with mainstream languages. We show how to greatly simplify distributed programming by starting with an appropriate language, Oz, and distributing it with network transparency. In the network-transparency approach, a program can be distributed over many nodes without changing its source code. The semantics of the program's execution does not depend on how the program is distributed. This can work well because the Oz language clearly distinguishes between stateless (immutable), stateful (mutable), and single assignment entities. We then choose a distributed protocol to implement each language entity. By choosing the protocol wisely, we can obtain an efficient and predictable network behavior. For example, objects are an example of a stateful entity. They can be distributed in several ways: as stationary objects (the usual RMI style), as cached (mobile) objects, or as invalidation-based objects. Functions are an example of a stateless entity. They can simply be copied between nodes, using either an eager or a lazy protocol. The Oz language also supports dataflow and asynchronous execution. Since distributed systems are subject to partial failure (part of the system fails but the rest keeps running), we support fault detection in the language. This lets us build fault-tolerance abstractions (such as a transactional replicated object store) without leaving the language. We also support open distributed computing, in which independent computations can connect with each other. I will conclude the talk with our plans for future work: factoring the distributed protocols out of the implementation, making the system reflective (allowing routing to be done at the Oz level), making the language and implementation capability secure, and combining structured overlay networks (which grew from peer-to-peer systems) with concurrent components. We have realized these ideas in the Mozart Programming System, which is available at http://www.mozart-oz.org under an Open Source license. We welcome new users and developers for the ongoing work on Mozart.


Peter Van Roy is professor in the Department of Computing Science and Engineering at the Universit? catholique de Louvain in Louvain-la-Neuve, Belgium. He received an Engineering degree from the Vrije Universiteit Brussel in 1983, a Ph.D. in Computer Science from UC Berkeley in 1990, and a Habilitation ? Diriger des Recherches from the Universit? Paris VII in 1996. His research interests started in logic programming and Prolog compilation and then migrated to network-transparent distributed programming, with a continued interest in programming language design and implementation. He has written a comprehensive textbook on computer programming with his colleague Seif Haridi that is published by MIT Press. His current interests include programming language concepts, teaching programming, and distributed programming with structured overlay networks and concurrent components.

Hosted by: Carlos Varela (x6912)

For more information:

Mozart Programming System

Last updated: September 30, 2005