Meeting Task Deadlines in a Community of Cooperative Intelligent Systems zyx EugCnio Oliveira and Fernando Mouta Faculdade de Engenharia da Universidade do Porto Rua dos Bragas, 4099 Porto Codex, Portugal Abstract zyxwvuts Here we present a tool zyxwvutsrq - UPShell (University zyxwvu of Porto Shell} -for generating a community of cooperative expert systems. We also describe basic knowledge this tool automatically adds to each expert system to enable it to behave as a coarse grain semi-autonomous cooperative agent in a multi-agent environment. zyxwvutsrq As UPShell is aimed at industrial control applications, agents not only exhibit cooperation behaviour but also meet the requirements for local real-time control. The cooperation layer of each agent both controls its internal activity and coordinates inter-agent activities, using the blackboard paradigm. The control mechanism, being event driven, enables agents to meet the requirements of responsiveness, timeliness, graceful adaptationand cooperation. Key words: Cooperation, Multi-Agent Systems, Task deadlines. 1: Overview of the System UPShell [l] may be used to generate specific Intelligent Systems, but its main purpose is to transform a set of these generated Intelligent Systems together with other knowledge based systems, into a community of cooperative agents. The Shell guides the user through menus to allow him to install the community of agents. The user only has to select the agents (from the available ones) and the machines on which each agent should run. When launching the agents, UPShell builds on the top of each knowledge based system another module - the Cooperation Layer - which controls the activity of the knowledge based system and the cooperation with the rest of the community. Each knowledge based system together with its cooperation layer constitutes an agent of the community. All the agents of the community run "simultaneously", with two separated UNIX processes per agent, one for the knowledge based system and another for the cooperation layer. Each cooperation layer of an agent can communicate to any other cooperation layer, and also to its knowledge based system through a mechanism of message passing implemented using UDP UNIX sockets. When the agents are launched in the respective machines, default values for sockets are provided, and communications are tested, so that the user does not need to care about them. The knowledge based systems may be either built-in by UPShell or pre-existing ones, in which case, it is necessary to build up their Self Models interactively with UPShell. This work has been developed in the framework of the Esprit I1 Project (P-2256) ARCHON - Architecture For Cooperative Heterogeneous On-Line Systems. This project aims to construct a general purpose multi-agent system architecture for industrial applications. 2: Cooperation Layer In our DAI-Shell, the component agents have a two layer structure: the problem solver and the cooperation layer. The problem solver is a knowledge based system that solves domain problems. The cooperation layer is domain independent with capabilities of controlling the problem solver and coordinating its activities with the activities of the other agents. When UPShell is launching the agents, it first builds up a model of each knowledge based system and then based on the generated Self Models, it creates models of all its acquaintances (only about systems and items in which it is interested). In this way the systems become Agents of a cooperative community. The Self-Model (SM) represents the agent's capabilities knows-about( Task ): Tasks the agent can perform; interestd-in( Task, Needed-data ): What are the external Needed data for the execution of that task; skilldescriptor( Task, NeededInfo): Task without external subtasks, that may be completely executed by this agent, provided it has the Needed Info; and needs through the following structures: zyx 1068-3070193 $3.00 zyxwvutsrqp Ca 1993 IEEE 28