Nelson Minar's Master's Thesis

My master's thesis was submitted to MIT for graduation in September, 1998. It describes a distributed agents system I built called "Straum" and contains many of my ideas for building new kinds of Internet software out of distributed systems and mobile agents. I am actively continuing this research as part of my PhD program here at the Media Lab. Comments are welcome!

The thesis is quite long (92 pages) so I feel a bit awkward putting it online. I hope to turn out a couple of more compact papers about this work. I will put a note here when those are written. You can download the postscript; it's colour (but will look fine in black and white), a bit over 2 megs uncompressed. The abstract, acknowledgements, and hyperlinked bibliography are also here on this page.

Designing an Ecology of Distributed Agents
by Nelson Minar
Copyright © 1998 Massachusetts Institute of Technology. All rights reserved.


The Internet is a rich environment for computation. There is a need for design principles to organize distributed computational activity on the Internet, something analogous to the way the World Wide Web is an organizing principle for documents. This thesis introduces the idea of an ecology of distributed agents as a paradigm for building distributed software. Computers run servers that are local environments of computation. Applications are built out of agents that live in these servers. Mobile agents move to servers to use local resources and servers support agent query services to allow agents to discover each other and communicate information over the network. A system that creates an ecology of distributed agents, Straum, is presented with a technical discussion of its implementation. Two applications, communicating user presence and monitoring server activity, are presented along with sketches of other possible applications. Straum and the underlying design paradigm are evaluated with respect to other distributed systems research. Finally, ideas for future work are presented, plans towards making the Internet a natural environment for computational activity.


I am very grateful for the advice and support of my advisor, Pattie Maes, for her feedback and for keeping me focussed in my research. The comments and time given by my readers Mitchel Resnick and Judith Donath have greatly improved and clarified this work. Thank you to MIT UROP Kyle Jamieson for his contributions to the Straum software and to UROP Maggie Oh for designing agent icons. The dist-obj community has been a wonderful forum for discussing ideas about distributed systems; I am particularly thankful for the continued input of Ron Resnick, Joe Kiniry, and Mark Baker. Finally, I owe a lot to my friend and colleague Kwin Kramer. Our conversations and work together have greatly influenced this thesis.


(This is presented here with hyperlinks for convenience. If you are looking for a comprehensive bibliography for mobile agents work, there is a wonderful one online at

Ross J. Anderson. The Eternity Service. In Proceedings of PragoCrypt '96. Czech Technical University Publishing House, 1996.

Ken Arnold and James Gosling. The Java Programming Language. Addison-Wesley, 1996. ISBN: 0-201-63455-4.

Derek Atkins, Michael Graff, Arjen Lenstra, and Paul Leyland. The Magic Words are Squeamish Ossifrage. In AsiaCrypt '94, 1994.

Mario Baldi, Silvano Gai, and Gian Pietro Picco. Exploiting Code Mobility in Decentralized and Flexible Network Management. In Proceedings of the First International Workshop on Mobile Agents, Berlin, April 1997.

Kenneth P. Birman. Building Secure and Reliable Network Applications. Manning Publishing Company, 1996. ISBN: 0137195842.

Jon Bosak. XML, Java, and the Future of the Web, March 1997.

Tim Bray, Jean Paoli, and C. M. Sperberg-McQueen. Extensible Markup Language (XML). Technical Report PR-xml-971208, W3C, December 1997.

G. Di Caro and M. Dorigo. Mobile Agents for Adaptive Routing. In Proceedings of the 31st Hawaii International Conference on Systems, January 1998.

Patrick Chan, Rosanna Less, and Douglas Kramer. The Java Class Libraries, volume 1. Addison Wesley, 2nd edition, 1998.

K. Mani Chandy, Joseph Kiniry, Adam Rifkin, and Daniel Zimmerman. Framework for Structured Distributed Object Computing. 1997.

K. Mani Chandy, Adam Rifkin, Paolo A.G. Sivilotti, Jacob Mandelson, Matthew Richardson, Wesley Tanaka, and Luke Weisman. A World-Wide Distributed System Using Java and the Internet. Technical report, Caltech Computer Science, 1996. Caltech CS Technical Report CS-TR-96-0.

D. Chess, C. Harrison, and A. Kershenbaum. Mobile Agents: Are they a Good Idea? In Jan Vitek and Christian Tschudin, editors, Mobile Object Systems: Towards the Programmable Internet, volume 1222 of Lecture Notes in Computer Science. Springer-Verlag, 1997.

Scott H. Clearwater. Market-Based Control, A Paradigm for Distributed Resource Allocation. World Scientific Publishing Co., 1996. ISBN: 9810222548.

Judith Donath. Inhabiting the Virtual City: The Design of Social Environments for Electronic Communities. PhD thesis, MIT Media Arts and Sciences, 1997.

Judith Donath, Karrie Karahalios, and Fernanda Viegas. Visualizing Conversations. In Proceedings of the 32nd Hawaii International Conference on Systems, January 1999.

A. Farquhar, R. Fikes, and J. Rice. The Ontolingua Server: A Tool for Collaborative Ontology Construction. Technical Report KSL-96-26, Knowledge Systems Laboratory, Stanford University, September 1996.

Message Passing Interface Forum. MPI: A Message-Passing Interface Standard, June 1995.

David Gelernter. Mirror Worlds. Oxford University Press, 1991.

Li Gong. Java Security Architecture (JDK 1.2), June 1998.

Robert Gray. Agent Tcl: A Flexible and Secure Mobile-Agent System. PhD thesis, Dept. of Computer Science, Dartmouth College, June 1997. Available as Dartmouth Computer Science Technical Report TR98-327.

David Halls. Applying Mobile Code to Distributed Systems. PhD thesis, Computer Laboratory, University of Cambridge, June 1997.

Brian Hayes. Computing Science: Collective Wisdom. American Scientist, 1998.

B. A. Huberman, editor. The Ecology of Computation. Elsevier Science Publishers, 1988.

Hiroshi Ishii and Brygg Ullmer. Tangible Bits: Towards Seamless Interfaces between People, Bits and Atoms. In Proceedings of the Conference on Human Factors in Computing Systems (CHI '97), pages 234-241. ACM Press, March 1997.

Kevin Kelley. Out of Control. Addison-Wesley, 1994.

Danny B. Lange and Daniel T. Chang. IBM Aglets Workbench: Programming Mobile Agents in Java, September 1996.

Chris Langton, editor. Artificial Life (Proceedings of the First International Conference. Addison-Wesley, 1987. ISBN: 0-201-09356-1.

Steve Lawrence and C. Lee Giles. Searching the World Wide Web. Science, 280(5360):98-100, April 1998.

Andrew Leonard. Bots: The Origin of New Species. Hardwired, 1997.

Pattie Maes. Agents that Reduce Work and Information Overload. Communications of the ACM, 37(7):31-40, July 1994.

Thomas W. Malone, Richard E. Fikes, Kenneth R. Grant, and Michael T. Howard. Enterprise: A Market-like Task Scheduler for Distributed Computing Environments. In B. A. Huberman, editor, The Ecology of Computation, pages 177-206. Elsevier Science Publishers, 1988.

Network Working Group Sun Microsystems. RPC: Remote Procedure Call Protocol Specification. RFC 1057, June 1988.

Mark S. Miller and K. Eric Drexler. Markets and Computation: Agoric Open Systems. In B. A. Huberman, editor, The Ecology of Computation, pages 133-176. Elsevier Science Publishers, 1988.

Kazuhiro Minami and Toshihiro Suzuki. Java-Based Moderator Templates for Multi-Agent Planning, October 1997. Presented at OOPSLA '97 Workshop on Java-based Paradigms for Agent Facilities.

Alexandros Moukas, Kostas Chandrinos, and Pattie Maes. Trafficopter: A Distributed Collection System for Traffic Information. In Proceedings of Cooperative Information Agents '98, volume 1435 of Lecture Notes in Artificial Intelligence. Springer-Verlag, 1998.

Scott Oaks. Java Security. O'Reilly & Associates, Inc., 1998. ISBN: 1-56592-403-7.

Object Management Group (OMG). The Common Object Request Broker: Architecture and Specification (CORBA), revision 2.0. Object Management Group (OMG), 2.0 edition.

Alex P. Pentland. Smart Rooms. Scientific American, April 1996.

Rosalind W. Picard and Jennifer Healye. Affective Wearables. Personal Technologies, 1(4):231-240, 1997. MIT Media Lab Vismod tech report 467.

Tom S. Ray. A Proposal to Create a Network-wide Biodiversity Reserve for Digital Organisms. Technical report, ATR, 1995.

Maria Redin. Marathon Man. Master's thesis, MIT Department of Electrical Engineering, 1998.

Mitchel Resnick. Turtles, Turmites, and Traffic Jams. MIT Press, 1994.

Marshall T. Rose. The Simple Book: An Introduction to Networking Management. Prentice Hall, 1996. ISBN: 0134516591.

Jeffrey S. Rosenschein and Gilad Zlotkin. Rules of Encounter. MIT Press, 1994.

Roger Sessions. COM and DCOM: Microsoft's Vision for Distributed Objects. John Wiley & Sons, 1997. ISBN: 0-417-19381-X.

Thad Starner, Steve Mann, Bradley Rhodes, Jeffrey Levine, Jennifer Healey, Dana Kirsch, Rosalind W. Picard, and Alex Pentland. Augmented Reality Through Wearable Computing,. Presence, 1997. MIT Media Lab Vismod tech report 397.

Hong Z. Tan and Alex Pentland. Tactual Displays for Wearable Computing. In The First International Symposium on Wearable Computers, pages 84-89. IEEE Computer Society, 1997. ISBN: 0-8186-8192-6.

D. Tennenhouse, J. Smith, W. Sincoskie, D. Wetherall, and G. Minden. A Survey of Active Network Research. IEEE Communications Magazine, 35(1):80-86, January 1997.

Vernor Vinge. A Fire Upon the Deep. Tor Books, 1993. ISBN: 0812515285.

Jan Vitek and Christian Tschudin, editors. Mobile Object Systems: Towards the Programmable Internet. Springer-Verlag, April 1997. Lecture Notes in Computer Science No. 1222.

Jim Waldo. Jini Architecture Overview. Technical report, Sun Microsystems, Inc., 1998.

Jim Waldo, Geoff Wyant, Ann Wollrath, and Sam Kendall. A Note on Distributed Computing. In Jan Vitek and Christian Tschudin, editors, Mobile Object Systems: Towards the Programmable Internet, volume 1222 of Lecture Notes in Computer Science, pages 49-64. Springer-Verlag, Heidelberg, April 1997.

Tom Walsh, Noemi Paciorek, and David Wong. Security and Reliability in Concordia. In Proceedings of the 31st Hawaii International Conference on Systems, January 1998.

Mark Weiser. The Computer for the Twenty-First Century. Scientific American, pages 94-101, September 1991.

James E. White. Telescript Technology: Mobile Agents. In Jeffrey Bradshaw, editor, Software Agents. AAAI Press/MIT Press, 1996.

AOL Instant Messenger.

Concordia -- Java Mobile Agent Technology.


59 The Fastest Computer on Earth.

dist-obj FAQ and mailing list archives.

iBus: The Java Multicast Object Bus.


Japhar -- The Hungry Java Runtime.

Java Beans home page.

RMI: Remote Method Invocation.

JavaSpaces White Paper.

Kaffe OpenVM.

The Great Internet Mersenne Prime Search.

Project Mole -- Mobile Agents, March 1996.

Mr. Java.

General Magic's Odyssey.


Things That Think -- MIT Media Lab.

Objectspace Voyager Core Package Version 1.0 Technical Overview, 1997.

(Thanks to LaTeX2HTML for help with converting the bibliography to HTML.)

A BibTeX citation for this work is

  author =       {Nelson Minar},
  title =        {Designing an Ecology of Distributed Agents},
  school =       {Massachusetts Institute of Technology},
  year =         {1998},
  month =        {September},
  url =          {},

Nelson Minar Created: August 28, 1998
<> Updated: August 31, 1998