A Multiagent View of Contracts

Munindar P. Singh and Nirmit Desai

Contracts specify arms-length relationships among autonomous, heterogeneous participants. They are thus ideally suited as a metaphor and abstraction for multiagent systems. This tutorial introduces the key ideas and techniques of contracts as they arise in major real-world applications; the benefits of formalizing contracts to realize them computationally; and the opportunities and challenges contracts offer for the theory and practice of agents and multiagent systems.

Detailed Motivation

Several major trends in information technology drive toward an increasing presence of contracts in IT. These include the formalization of cross-organizational business processes; resource administration in large-scale distributed multistakeholder computing; service-level agreements as they arise in networking and cloud computing; and services viewed from the perspective of real-life engagements.

Previous work on agent architectures as well as that on technical services (such as web and grid services) has focused on low-level aspects of computation. In contrast, the emerging trend toward contracts recognizes the importance of high-level, flexible specifications of interactions. It is clear that contracts make sense only when the contracting parties are autonomous. Further, contracts help shield the heterogeneity of the contracting parties from one another. In this manner, contracts provide a natural match for a variety of real-world problems that computer scientists are beginning to recognize.

Crucially, for the same reasons, contracts exhibit a natural match with agents and multiagent systems. By developing and studying this connection, we would not only find an important application for agents and multiagent approaches, but would also learn new ideas for organizing multiagent systems from the practical world of contracts.

Detailed Outline

For this half-day tutorial (with 3.5 hours = 210 minutes of face time), we expect to allocate about 20, 40, 50, 40, 40, and 20 minutes, respectively, to the following sections.

  1. Introduction
  2. Applications of Contracts in Computing
  3. Concepts and Architectures for Contracts
  4. Theoretical Underpinnings
  5. Representations and Techniques
  6. Trends and Conclusions

Target Audience

This tutorial is presented at a senior undergraduate student level. It is accessible to developers from industry and to students.

Typical attendees for our past tutorials have been researchers and practitioners from industry and government, developers, graduate and senior undergraduate students, and university faculty.

Synergy for Agents Research

We are seeing increasing interest in contracts from the AAMAS community. Recently some high-profile research projects have been centered on contracts. Further, when AAMAS community members deal with other computer scientists, they are frequently called upon to make a case for agent and multiagent concepts and techniques. Increasingly commonly, the best case one can make involves an appreciation of contracts: why they are needed, how well they match agent and multiagent systems, and which concepts and techniques support contracts naturally. This tutorial will provide the key background, which attendees can use as a launching pad for their investigations.

Presenter Biographies

The presenters have a long track-record in the theory and practice of large-scale software systems, and have been actively studying contracts in recent research projects. They have extensive experience in teaching and in making tutorial presentations. Specifically, they have given graduate courses related to this tutorial, presented tutorials at a number of international conferences, and led discussions with software practitioners involving the concepts and techniques to be described.


Munindar is a full professor in the department of computer science at North Carolina State University. From 1989 through 1995, he was with the Microelectronics and Computer Technology Corporation (MCC). Munindar's research interests include multiagent systems and Web services, where he specifically addresses the challenges of trust, service discovery, and business processes and protocols in large-scale open environments.

Munindar's 1994 book Multiagent Systems, was published by Springer-Verlag. Munindar edited the Practical Handbook of Internet Computing, published by CRC Press in 2004. With Mike Huhns, he coedited Readings in Agents (published by Morgan Kaufmann in 1998), and coauthored a textbook Service-Oriented Computing: Semantics, Processes, Agents (published by Wiley in 2005).

Munindar was the editor-in-chief of IEEE Internet Computing from 1999 to 2002 and continues to serve on its editorial board. He is also a founding member of the editorial boards of the Journal of Autonomous Agents and Multiagent Systems and the Journal of Web Semantics. In 2005, he was general cochair for the International Joint Conference on Autonomous Agents and Multiagent Systems.

Munindar's research has been recognized with awards and sponsorship from the Army Research Office, Cisco Systems, DARPA, Ericsson, IBM, Intel, and the National Science Foundation.

Munindar obtained a B.Tech. in Computer Science and Engineering from the Indian Institute of Technology, Delhi in 1986 and a Ph.D. in Computer Sciences from the University of Texas at Austin in 1993.