The Mobile Agents List: M0 Messengers

System Name: M0 Messengers

Current Version: 0.27.11

Organization: Centre Universitaire d'Informatique. University of Geneva, Switzerland Department of Computer Systems, Uppsala University, Sweden

Entry status: authoritative

Supported platforms:
Linux, Solaris

Supported languages:
M0 (postscript-like programming language)

Implemented standards: none

Type of migration:
weak

How many threads or processes are possible per agent? Each messenger ("agent") runs in its own thread. Each messenger can submit new messengers locally or remotely, as long as its credit is suffifient.

Local communication mechanisms and format of data:
All communications are indirect. Messengers exchange information through
local shared memory, synchronization is done via a queue mechanism or
a market mechanism (continuous double auction). Dictionaries and arrays
of local data instances are used to structure data.

Global communication mechanisms:
The basic environment has no global communication mechanism by default.
Higher level communication services have been built with messengers
on top of the local communication mechanisms: e.g. alternating bit
protocol, topology discovery, remote evaluation, distributed shared
memory, distributed semaphores, election protocol, self-deploying
distributed services.

How the communication partner can be addressed:
Messenger threads are anonymous entities, no direct communication is
possible. Threads that wish to communicate must know some common "name"
(most conveniently a 64-bit key) in order to locate in the shared local
memory the data to be exchanged.

Resource access control mechanism:
The platform is a local resource economy: messengers are charged for memory, CPU and bandwidth usage, prices depend on the system's load, entries in the shared memory area have to be "sponsored" or they decay. Each platform has its own fictionaly currency (funny money), incoming messengers receive an initial amount of money at start, money exchange has to be done by arbitrage messengers.

Agent tracking:
none

Directory of services:
Each platform has a specific local dictionary accessible to everybody where services can be published and retreived.

Type of code migration:
All code is carried by messengers. Download (caching) of code can be implemented by the messengers themselves by storing code fragments in the remote platform's shared memory area.

Other special features:
M0 was one of the first active networking systems. It still is the
purest "capsule" oriented mobile code environment.
Messengers have access to their external representation, which is
helpful for implementing self-encrypting and self-fragmenting mobile
code protocols.
File storage, Web connectivity and graphical user interfaces are
provided by additional external services. These features don't need
to be part of the minimal M0 environment. Transport of messengers
and connectivity to the servers is via UDP and/or ANON (Active Network
Overlay Network).

Availability:
source code

License terms:
GNU copyleft

Article that describe the current system best:
Chr. Tschudin: "The Messenger Environment M0 - A Condensed Description".
In Vitek and Tschudin (Eds.): Mobile Object Systems, LNCS 1222, 1997,
pp. 149-156.

Year of first publication of systems description: 1993 Chr. Tschudin: On the Structuring of Computer Communications. PhD thesis 2632, University of Geneva, Switzerland 1994 Chr. Tschudin: M0 - a messenger execution environment. In comp.sources.unix NEWS group, Vol 28, issues 51-62.

Project URL: http://cuiwww.unige.ch/tios/msgr

Contacts Email Address: Alex.Villazon@cui.unige.ch

Last modification date of this entry: Wed Jun 30 11:11:36 MET DST 1999


This page was created automatically by a script. Last creation date of: Tue Jan 13 08:01:21 MET 2004 In case of problems please contact Fritz.Hohl@informatik.uni-stuttgart.de