Using Software Agents in Computational Grids (Draft) Page 1 of 45 Using Software Agents in Computational Grids Junwei Cao, Darren J. Kerbyson, and Graham R. Nudd High Performance Systems Laboratory Department of Computer Science, University of Warwick, UK Abstract Software agents are becoming a mainstream technology used widely in many areas including intelligent user interface, industry, Internet and WWW, electronic commerce, business process management, digital library, electronic meeting, entertainment, network management, virtual reality, artificial society, and so on. Computational Grids are a new concept emerging in the field of high performance computing. As it aims to a universal source of computing power, software agents will be sure to play an important role in the development of this new infrastructure. On the basis of past and present developments of the most important, relevant and involved applications of software agents in high performance computing, future trends and developments of agent technology in Computational Grid will also be extrapolated and predicted in this work. In the current grid-oriented software systems agent technology has been used in different ways, which is, however, not noticed by the agent researchers. Many new techniques developed in agent research are also far not applied in grid-oriented software systems. This work is to build a bridge between these two. The main contributions of this work include: 1). A new taxonomy of software agents is proposed and a list of related research directions is given on the basis of a snapshot of latest agent applications. 2). A simplified model of Computational Grids is illustrated using Unified Modeling Language. 3) A survey of agent applications in the Grid is described in details and several features are summarized on the characteristics of these applications. 4). Future challenges are predicted to give a blueprint of using software agents in the Grid. 1 Introduction Software agents are becoming a more and more important software development technology. The key sign of this trend is the emergence of diverse applications and approaches in many different areas. It has become difficult to get a detail survey of agent technology in one article. However, some books aim to fulfil this purpose [Bradshaw1997; Chorafas1998; Jennings1998a; Nwana1996]. These books always include the history of agent development, the definition of software agents, the summary of new technologies and approaches, typical agent applications, and so on. So they are good to understand the basic concepts of software agents. Also there are many works on agent applications in different areas. These fields include intelligent Using Software Agents in Computational Grids (Draft) Page 2 of 45 user interface [Lieberman1997], manufacturing [Parunak1998], Internet and WWW [Nwana1997], electronic commerce [Nwana1998], business process management [Jennings1999], digital library [Atkins1996], electronic meeting [Chenh1996], entertainment [Maes1995], network management [Davison1998], virtual reality [Peters1998], artificial society [Gilbert1995], and so on. In this work we discuss the subject of using software agents in Computational Grids. The Grid is an emerging infrastructure that will fundamentally change the way we think about – and use – computing. The Grid will connect multiple regional and national Computational Grids to create a universal source of computing power [Foster1998]. Two key points should be emphasised in the basic idea of Computational Grids. First, the Grid is another kind of infrastructure after railroad, telephones and telegraphs, power and light, banking, and Internet, which have all had a dramatic impact on human capabilities and society. The word “grid” is chosen by analogy with the electric power grid. Second, unlike other books, which are always the summaries of a mature research field, [Foster1998] gives only a new blueprint for the Grid. Though many essential building blocks are now, or soon will be, in place, Computational Grids do not yet exist. The blocks from which Computational Grids will be constructed include advanced optical networks, fast microprocessors, parallel computer architectures, communication protocols, distributed software structures, security mechanisms, electronic commerce techniques, and so on. As a mainstream software technology, how much can software agents be used in the development of the Grid? What types of problem can software agents solve? What problems have been met in the development of the Grid? Have there been any applications of software agents to overcome the related difficulties? What can be applied in future? This work is to answer these questions. Figure 1 describes the main framework for the following contents. 1 Introduction 2 Software Agents 3 Computational Grids 2.1 What is an agent? 3.1 What is the Grid? 2.2 What can agents do? 3.2 What can the Grid do? 2.3 What problems can agents solve? 3.3 What challenges has the Grid met? 4 Using Software Agents in Computational Grids 4.1 What have been used? 4.2 What can be used in future? 5 Conclusions Figure 1. The Sections of This Work Using Software Agents in Computational Grids (Draft) Page 3 of 45 Though there have been many works discussing on the definitions related to software agents, there is still no agreement even on the question of what an agent is [Franklin1996]. However, in Section 2, we still try to give a definition and taxonomy of software agents in a different way firstly. By this way, we can understand the agent more simple and clear. The most important is that it is more convenient to get a global view of current agent techniques. Then we get a summary on the main features of the agent applications. The basic idea of Computational Grids has been introduced above. In Section 3, the definition of the Grid will be described in greater details. By imaging the ways different users are to use the Grid, the questions of what the Grid should be like and what technologies should be applied are answered. Some of the contents of this section are referred in [Foster1998] but organized in a more systematic way. On the basis of Section 2 and 3, Section 4 answers the main question of this work. That is how to use software agents in the Grid. Firstly, agent applications that have been used to build the related blocks of the Grid are summarized and several key features of current applications are given. Then a blueprint of using agents in the Grid is given in the following. In the research of software agents few works pay attention to the applications in high performance computing, while in the research of the Grid agent applications are only looked as a small part of the whole work and seldom been discussed independently. Conclusions are given in Section 5. It is pointed out that using advanced agent technology will accelerate the development of the software infrastructure in the Grid. At the same time, new applications with new requirements will also stimulate the emergence of the new technology on software agents. 2 Software Agents The aim of this section is to give a simple outline of software agents and get a clear description way enough for this work. So we won’t, in fact can’t, give much explanation as what have been done in [Bradshaw1997; Chorafas1998; Jennings1998; Nwana1996]. Note that some definitions may be different from the other works but are coherent within this work. 2.1 What is an agent? There are two ways to get a definition on the agent. One is to get a description on what an agent should be from the research on related theories. According to this, whether a software entity is an agent or whether what is called an agent is a “true” agent can be distinguished. The other is to look through the current agent applications and understanding on the software agents and get a proper abstraction on them so that it can be accepted within a maximum scope. We adopt the later. There are many terms used to describe the characteristics of software agents, such as autonomy, intelligence, reactivity, proactivity, personality, adaptivity, mobility, continuity, rationality, collaboration, and so on. But actually no agents have all these characteristics at the same time. We find that only one of them – autonomy – is the most essential to differentiate the agent from other simple program, and have been the most widely accepted. So we define the agent as the following: An agent is a software entity, which functions autonomously. Using Software Agents in Computational Grids (Draft) Page 4 of 45 Unfortunately, as mentioned in [Jennings1998], autonomy is a difficult concept to pin down precisely, but we mean it simply in the sense that the system should be able to act without the direct intervention of humans (or other agents), and should have control over its own actions and internal state. This can be illustrated in Figure 2. An agent Input Requirement Control A general software entity Output Result Resource Figure 2. An Agent is an Autonomous Software Entity As shown in Figure 2, the difference between an agent and a general software entity is that an agent encapsulates so-called “control” and “resource”, which mean that an agent know how to function by itself. Also the requirement and result for an agent may be different from the input and output for a general software entity in two aspects. One is that the requirement and result can be a high-level input and output according to some protocol, standard or model. The other is an agent can include a sensor and an effector to feel the requirement and produce the related result on its own initiative. The difficulty to distinguish an input from a control results in the ambiguity in the understanding of the autonomy. That is to say, sometimes you can’t distinguish what to do and how to do strictly. So someone gives up an objective criterion for software agents and turns to a more subjective one, such as “you call it an agent when you want to treat it as a black box”. It is not necessary to say which is better. The most important is that we have got a basic idea of what an agent is and it is precise (though some ambiguities still exist) enough for us to continue the following discussion. We describe autonomy as a more important characteristic for an agent than the others because we look the others only as the ways for an agent to achieve its autonomy. The basic two of these different ways are intelligence and social ability. Intelligence means that an agent can achieve the autonomy by an intelligent approach within the ability of itself. Social ability means that an agent achieves its autonomy by relationships with the other agents. Type The way to achieve autonomy intelligence itself Intelligent Agent (IA) Social Agent (SA) Intelligent Social (ISA) Social Intelligent (SIA) Agent Agent simple relationship among agents intelligent relationship among agents mobility Example ways to achieve autonomy personality, self-learning, reasoning, AI algorithm, architecture, emotion, knowledge communication via ACL life-like, control coordination, negotiation, evolution, selforganizing, market mechanism migration Table 1. Four Types of Software Agents Using Software Agents in Computational Grids (Draft) Page 5 of 45 As shown in Table 1, two extensive types of the agents can be defined from the basic taxonomy of Intelligent Agent (IA) and Social Agent (SA). From SA we can get Intelligent Social Agent (ISA). There are a number of agent applications that are called agents only because they can communication and exchange their knowledges among each other. We classify these agents to be SAs. When the relationships among these agents are complex enough to have some characteristics of human society or nature world, such as negotiation and evolution, we call these agents ISAs. Note that the difference between the SA and ISA is not strict. From IA we can get Social Intelligent Agent (SIA), which achieves its autonomy in so special an intelligent way that it looks exactly like society ability. The only example of this kind of agents is the mobile agent currently, which can move autonomously from one computer to another to fulfil its tasks. So we take SIA and mobile agents as exchangeable terms. Besides these four types of the agents, the notion of the hybrid agent must be considered here. If an agent can self-learn as well as negotiate with the other agents, it is called a hybrid agent of I-type and IS-type. Some agents can achieve some highlevel autonomy such as adaptivity only because they are more complex hybrid agents. Multi-Agent System (MAS) is a widely accepted conception. When many agents interact with each other they form a MAS. So a SA or ISA must be in a MAS, while a IA and SIA may or may not be in a MAS. Our taxonomy is different from my other works. The reason why we classify agents from a view of the technologies for agents to achieve autonomy is to create a convenient way to summarize the current agent technologies from diverse agent applications. This is described in the below. 2.2 What can agents do? To understand what agents can do we give an introduction in details of current applications and research on software agents. First, we give a list of current applications of four types of software agents. For each kind of key technology for the agent to achieve its autonomy one or more current typical applications are introduced with related project background, agent structure, key technology description, and so on. Then many latest research directions on agent technology are described, including key technologies to achieve autonomy, agent engineering, agent development tools and environment, and so on. 2.2.1 Agent Applications A list of current applications of software agents is given below in Table 2. Almost all of them emerged in the late 90’s, so they can represent the latest trend of agent technologies. There are also many typical applications in the early 90’s that are not included for most of their technologies have been inherited. Because the agent technology originated from the research on user interface, nowadays a quarter of the applications is still on the IUI. Only the typical applications on IUI are selected here. Note that some hybrid agent applications are also mentioned here, but we select its main part and classify it to only one of four types. Using Software Agents in Computational Grids (Draft) Page 6 of 45 Ty pe Application Name Project Background Agent Structure (only internal structure for IA and SIA) Key Technology to Achieve Autonomy Statement I Adele [Shaw1999 ] Adele is a lifelike animated pedagogical agent that is designed to work with Webbased educational simulations. The Adele architecture implements key pedagogical functions: presentation, student monitoring and feedback, probing questions, hints, and explanations. Adele’s design was based heavily upon earlier work on Steve [Rickel1998]. Adaptive Route Advisor behaves more like a human travel agent, using driver preferences, when known, and working with him/her to find a satisfactory route. Athlete interacts with its virtual environment and gradually acquires its reactive behavior during the process of attaining a global goal. Adele’s system consists of four main components: the pedagogical agent, the simulation, the client-server, and the server store. The pedagogical agent consists further of two sub-components, the animated persona and the reasoning engine. Procedural tasks representation using a standard hierarchical plan; user feedback; situation-based reasoning; opportunistic learning; contextual references. A typical agent application in computeraided education. The architecture for APA includes Interface Client, User Model, Route Server, and Digital Map with information from GPS and current traffic conditions. The kinematic structure of Athlete is composed of eight links, interconnected with seven revolute joints. A user model via interaction and an adaptation routing algorithm. Traditional human-computer dialogues circumvent those phenomena – a computer is not situated in its environment – but if a human and an agent sense and act in a common environment, new methods of language processing are needed. CoRA is able to understand natural languages directives on different levels of complexity. Expectation-Driven Event Monitoring (EDEM) provides developers with a platform for creating software agents to collect usage data and increase user involvement in the development of interactive systems. The hybrid control architecture contains a behavior-oriented base system, which integrates language, perception and action on a lower level and a deliberative system, which models ‘higher’ cognitive competence. ARA [Rogers199 9] Athlete [Liu1998] CoRA [Strippgen1 999] EDEM [Hilbert199 8] Expectation agents, or EA’s, continually monitor usage of the application and perform various actions when encapsulated expectations are violated. When a breakdown occurs, EA’s can provide developers with important contextual Dual-level behavioral self-organization algorithm that involves the construction of a high-level behavioral pattern map and a low-level behavioral parameterization map. A hybrid control architecture is developed to enable CoRA to process situated action directives on different levels of complexity. EDEM is based on a multi-level event model to allow event monitoring to be raised to the level of expectations. Using Software Agents in Computational Grids (Draft) Page 7 of 45 information such as system state and event history. The filterbot author writes a filterbot just like an information faltering agent. The set of filterbots can use very simple algorithms, such as spelling correctness and article length. Filterbot is called whenever new documents arrive, and it returns a numeric rating. Text recognition agent and ScriptAgent, a programming by example system for the scripting language AppleScript [Lieberman1998]. Filterbot [Sarwar199 8] A model is implemented for integrating content-based ratings into a collaborative filtering system. The filterbot model allows collaborative filtering systems to address sparsity by tapping the strength of content filtering techniques. Grammex [Lieberman 1999] Grammex is the first direct manipulation interface designed to allow non-expert users to define grammars for text recognition and actions to take upon recognition interactively by concrete examples. Guardian [Larsson19 98] The tasks of monitoring and diagnosing intensive-care patients take knowledge and skill and demand correct action in complex, unexpected, and time-critical situations. Guardian, is a knowledge-based system designed to perform these tasks for postcardiac surgery patients. It has a flexible and adaptive software architecture in which several algorithms can cooperate in solving complex problems in real time. Guardian has been designed as a reference architecture for autonomous agents for monitoring, diagnosis, and control in real-time. ibot [Zettlemoy er1999] This is a specialized software agent that exists in the environment of the user interface. Such an agent interacts with applications through the same medium as a human user. Its sensors process screen contents and mouse/keyboard events to monitor the user’s actions and the responses of the environment, while its effectors can generate such events for its own contributions to the interaction. Sensor; Effector; The infrastructure is divided into three separate modules: the image processing module (IPM), the event management module (EMM) and the internal state representation module (ISRM). Each gathers information from the other modules or the operating system to complete its specified tasks. Content-based rating algorithm. A user interface for define rules of recognition procedure; the “marionette strings” approach to integrate conventional applications - the agent is given a set of “strings” corresponding one-to-one with user actions in the interface, and can “tug” on the strings to make the program perform. Diagnostic algorithms: simulator, Focus, tFPR (temporal fuzzy pattern recognizer), ReAct, PCT (parsimonious covering theory), MFM (multilevel flow models), SPIN (skeletal plan instantiator); knowledge bases; a common language for medical diagnosis. A pixel grouping algorithm; common user interface knowledge represented in the ERM; state information about how the user is interacting with the application; directly accessing the operating systems event queue. A typical agent application on IUI. Using Software Agents in Computational Grids (Draft) Page 8 of 45 NMRA [Pell1997] Open Sesame! [Das1998] This is the New Millennium Remote Agent architecture for autonomous spacecraft control systems. A prototype autonomous spacecraft agent is implemented within the architecture and demonstrated in the context of a challenging autonomous mission scenario on a simulated spacecraft. This is a Macintosh desktop agent that learns to automate the routine tasks of a user. It is an example of a software learning agent based on the Learn Sesame architecture. Open Sesame! version 1.0 watches for two kinds of tasks: time-based and event-based. PPP Persona [Rist1997] PPP Persona is a lifelike character used to present multimedia material to the user. Re:Agent [Boone199 8] This is an intelligent email agent that can learn actions such as filtering, prioritizing, downloading to palmtops, and forwarding email to voicemail using automatic feature extraction. SAM [Kaminka1 999] A novel complementary framework for social monitoring that utilizes knowledge of social relationships among agents in In the architecture autonomous operations are achieved through the cooperation of 5 distinct components: Planning & Scheduling; Executive; Model-based Mode Identification and Recovery; Monitors; and Real-time Control System. It integrates traditional real-time monitoring and control with constraintbased planning and scheduling, robust multi-threaded execution, and modelbased diagnosis and reconfiguration. The Learn Sesame architecture, consisting of a client application and the learning engine, provides a framework for modeling a dynamic environment in which the states of certain entities called objects undergo changes as a result of actions by other domain entities. A presentation planner; medium-specific generators, currently for graphics, text and gestures; the Persona Server; and a constraint-based layout manager. A language that provides a simple, structured vocabulary called Model Definition Language (MDL); incremental learning; configurable clustering algorithms. The overall operation of the agent is based on extracting useful features from documents to create a feature vector on which machine learning algorithms operate. The output of the learning algorithm is an action vector, which directs handlers to manipulate the document. Example handlers include delete, store, forward, auto-reply, or download to pagers or hand-held devices. A knowledge-base containing models of relationships that should hold among the monitored agents; the agent modeling The underlying approach is based on multimedia presentation planning. This core approach is complemented by additional concepts, namely the temporal coordination of presentation acts and the consideration of the human-factors dimension of the added visual metaphor. Concept feature approach; action learning with function approximators. Plan-recognition algorithm; knowledge of the social relationships. An application on spacecraft control. A typical lifelike agent. Using Software Agents in Computational Grids (Draft) Page 9 of 45 monitoring them. ShopBot [Doorenbos 1997] Shopper’s Eye [Fano1998] ShopBot is a fully-implemented, domainindependent, comparison-shopping agent. Given the home pages of several online stores, ShopBot autonomously learns how to shop at those vendors. After learning, it is able to speedily visit over a dozen software and CD vendors, extract product information, and summarize the results for the user. This is a PDA-based, GPS-enabled agent prototype that relies on knowledge of a shopper’s physical location to support the shopping task while shopping at a mall. SNMP [Hood1998 ] Simple Network Management Protocol agents process the collected information and use it to detect the network anomalies that typically precede a fault. WebMate [Chenl1998 ] Finding useful information on the Web is a time consuming process. WebMate is an agent that helps users to effectively browse and search the Web. component responsible for collecting and representing knowledge about the monitored agents; the detector that monitors for violations of relationships among monitored agents; and the diagnoser that verifies the failure, and provides an explanation for it. ShopBot operates in two phases: in the learning phase, an offline learner creates a vendor description for each merchant; in the comparison-shopping phase, a realtime shopper uses these descriptions to help a person decide which store offers the best price for a given product. Knowledge of both the user’s goals, and the environment in which they act is a powerful combination that enable Shopper’s Eye to bring relevant information to the user throughout the course of their task. Observation processing and combination of information. WebMate is composed of a stand-alone proxy that can monitor a user’s actions to provide information for learning and search refinement, and an applet controller that interacts with a user. Environmental regularities (including navigation regularity, uniformity regularity and vertical separation regularity); offline learning algorithm. Location-based filtering – exploiting the user’s location to constrain the task of an agent. A change-detection method to characterize the behavior of measurement variables; an algorithm that segments data into variable-length pieces, each of which contains a portion of the time series that is statistically similar; feature extraction and learning; a probabilistic framework of a Bayesian network. First, it uses multiple TF-IDF vectors to keep track of user interests in different domains. These domains are automatically learned by WebMate. Second, WebMate uses the Trigger Pair Using Software Agents in Computational Grids (Draft) Page 10 of 45 S AARIA [Parunak19 99] An industrial-strength agent-based factory scheduling and simulation system being developed for an Army manufacturing facility. AGENTS [Moreira19 97] The AGENTS system is a set of programs designed to generate automatically the masklevel layout of full custom CMOS, BICMOS, and bipolar leaf cells. APACS [Wang1997 ] Basically, APACS was designed as a generic agent framework to aid future construction of systems that help power plant operators notice and diagnose failures in continuous processes. Specifically, APACS monitors a plant’s feedwater systems, which supply hot, pressurized, and demineralized water to boilers. APACS agents are fully aware of the overall goal of the feedwater system—which is to maintain a steady plant state—and based on that goal carefully monitor real-time plant information. Furthermore, these agents are Three persistent agents are Parts, Resources, and Unit Process. Interactions among these three persistent agents are modeled as transient agents, such as Engagements, Materials, Products, and Operations. Each transient agent has a sixphase life cycle: Inquiring, Committing, Committed, Available, Active, and Achieved. The AGENTS system uses four agent servers that can run in parallel on different machines: the Placer, Router, Database, and Broker. A broker is one who acts as an agent in negotiating contracts. APACS architecture consists of three layers: the agent layer, the knowledge broker layer, and the information repository layer. The agent layer is essentially an application layer consisting of all the APACS agents. The knowledge broker layer manages communication between the agents. And the repository layer stores common knowledge used by all the agents and the knowledge broker. Each agent performs a separate function: data acquisition agent; tracking agent; Model to automatically extract keywords for refining document search. Third, during search, the user can provide multiple pages as similarity/relevance guidance for the search. The system extracts and combines relevant keywords from these relevant pages and uses them for keyword refinement. Balanced numerical (in which the agents pass a fixed quantity of markers back and forth) communication with minimal reasoning. Communication via a subset of KQML. Synchronous and communications. asynchronous A typical agent application on manufacturin g. Using Software Agents in Computational Grids (Draft) Page 11 of 45 InfoSleuth [Bayardo19 97] KIMSAC [Charlton1 999] PWS [Ardissono 1999] RoboTA [Forbus199 8] SoCom [Jain1999] able to infer trends from the plant information and can make diagnostic recommendations. The goal of the InfoSleuth project is to exploit and synthesize new technologies into a unified system that retrieves and processes information in an ever-changing network of information sources. The KIMSAC project (a European acts project - Kiosk-based Integrated Multimedia System Access to Citizens) started in September 95 with the vision of using the Personal Service Assistant Metaphor to provide public services to a variety of users. This is agent architecture of a configurable Web store supporting personalized interactions with users. monitoring agent; human-computer interface (HCI) agent; diagnostic agent; verification agent. User Agent; Ontology Agent; Broker Agent; Resource Agent; Data Analysis Agent; Task Execution Agent; Monitor Agent. RoboTA is a colony architecture for software coaches in educational environments. A RoboTA agent colony has some specialized agents, plus agents written for specific courses. A sphere of commitment (SoCom) is viewed conceptually as a scope within which a commitment applies; a SoCom is a multiagent system that the agents constitute, and which serves as the context for commitments among those agents. A concrete SoCom is obtained by naming an abstract SoCom, and binding agents to its roles. InfoSleuth is comprised of a network of cooperating agents communicating by means of the high-level agent query language KQML. Each agent represents an individual component, such as visual and requirements and services. The architecture used CORBA to support heterogeneity across languages and platforms. The communication language used between agents was based on KQML and KIF. Several agents with different functions: Session Manager, Dialog Manager, User Modeling Component, Product Extractor, Personalization Agent, Shopping Cart Manager, and DB Managers. Flexible and communication. A RoboTA colony has two kinds of agents: A central server process (the PostOffice) and course or application-specific agents (TA agents). The PostOffice communicates with TA agents via KQML messages over TCP/IP socket connections. A SoCom is typically associated with a set of resources and authorities over them. A SoCom is modeled using a representative agent, which behaves as a group leader. The agents can represent nonterminating computations. Their results, therefore, must be released prematurely. The agents communicate with other agents in order to create or adjust their commitments. The recipients autonomously process the communications. Consequently, by employing flexible commitments, recovery can be achieved without violating the autonomy of the consumers. efficient agent Some of the individual agents are intelligent. So they are hybrid agents of IA and SA. Using Software Agents in Computational Grids (Draft) Page 12 of 45 IS WorkWeb [Tarumi19 97] “WorkWeb System” is an expanded workflow system that is able to manage and control office resources. The “BPT agent” in the system autonomously manages each workflow process instance, trying to acquire the necessary resources to complete it in time. ADEPT [Jennings1 998b] ADEPT is an agent-based approach to show how agent technology can improve efficiency by ensuring that business activities are better scheduled, executed, monitored, and coordinated. Amalthaea [Moukas19 98] Amalthaea is an evolving, multi-agent ecosystem for personalized filtering, discovery, and monitoring of information sites. In the WorkWeb System, there are four types of agents. Personal Agent manages human resources and acts as the user’s secretary. Resource Agent manages nonhuman resources: budgets, meeting rooms, shared tools or facilities, etc. It is created for each resource. BPT Agent manages each workflow process instance and tries to complete it in time or as early as possible. Data Management Agent does not manage any resources, but collects data from the agent network according to a given theme and gives the data as a crossworkflow view to other agents. The ADEPT multi-agent architecture is composed of a number of autonomous agencies. The concept of an agency has a recursive definition. An agency contains a single responsible agent, a possibly empty set of subsidiary agencies and a set of tasks that are under the direct management of the responsible agent. Two general species of agents exist: the information filtering (IF) agents and information discovery (ID) agents. The information filtering agents (augmented weighted keyword vectors) are responsible for the personalization of the system and for keeping track of (and adapting to) the interests of the user. The information discovery agents are responsible for information resources handling, adapting to those information sources, and finding and fetching the actual information that the user is interested in. Each user has its own Each agent is given a URL address. By specifying a URL address, any agent can communicate with a destination agent (unless the communication is refused for security reasons). There are three components of the ADEPT negotiation model: the communication protocol, the service level agreements, and the reasoning model. An application on business process management. The evolution of the agents is controlled by two elements: their individual fitness and the overall fitness of the system. Only a variable number of the top ranked (the best performers) of the whole population is allowed to produce offspring. The rank of an agent is based solely on its fitness. The number of the agents that will be allowed to produce offspring is linearly related to the number of agents that will be purged because of poor performance (low fitness). These numbers are not A typical evolving multi-agent system. Using Software Agents in Computational Grids (Draft) Page 13 of 45 distinct populations of information filtering and discovery agents. CSS [Lin1994] DMS [Sen1997] An agent based control simulation system was designed to model the agent based real time control and scheduling framework. The system contains a control simulation module and a manufacturing environment simulation module. The control simulation module consists of a collection of autonomous agents who negotiate with each other to reach job processing decisions. This is a software system that uses intelligent meeting-scheduling agents that can negotiate with other agents without compromising their user-specified constraints. FEA [Cicalese19 99] This is a massive concurrent computational model in which the multi-agent platform adapts its global behavior through a distributed fuzzy evolutionary model. The framework is based on the notion of fuzzy evolutionary actor (FEA). Feature [Zhou1997 ] This is a feature extraction system based on artificial life concepts. The system provides automatic character feature extraction through the local actions of autonomous Part agent, resource agent, monitoring agent, and so on communicate through a communication interface module. Each user is provided with an automated (computational) meeting-scheduling agent. When a user wants to schedule a meeting, she inputs a request to her agent, which becomes the host agent for that meeting; other users’ agents attending the meeting are called invitee agents. Each actor has local knowledge of the overall environment, represented as local variables known as acquaintances; actors can perform tasks by using the values in their acquaintances; tasks are also activated by message exchanged among actors. An FEA is a modified version of a classical actor. A feature agent is a simple artificial creature, who has a face, a body and two mouths, and can eat, move, grow and bear children in its environment. constant and are related to the overall fitness of the system. If the over-all fitness is diminishing then the evolution rate is increased in search for quicker adaptation to the user's new interests. Different multi-stage negotiation protocols; different price adjustment strategies and methodologies for selecting resources or selecting parts to serve. Heuristic contract-based strategies. negotiation The actors themselves become evolutive and, in a way, “intelligent” entities: they are intelligent in the sense that their behavior is no longer fixed, but follows non-classical logical rules, i.e. actor knowledge is fuzzy. Actors are also evolutive, since their features undergo genetic algorithm based optimization. An algorithm called Eat-Grow which gives general rules that every feature agent in the system should follow; a family growth algorithm which Using Software Agents in Computational Grids (Draft) Page 14 of 45 feature agents. Fishmarket [Rodriguez Aguilar199 8] A framework is presented for defining trading scenarios based on fish market auctions. In these scenarios, agents of arbitrary complexity can participate in electronic auctions under a collection of standardized market conditions and be evaluated against their actual market performance. HomeBots [Gustavsso n1999] In project ISES (Information, Society, Energy, and Systems) in Sweden, the loadbalancing task of the demand of energy is modeled as a multi-agent system and a computational market with auctions as an allocation mechanism. Buyer agents were identified by a unique login and password delivered to their owners after registering. Then, once admitted into the auction room, all buyer agents were endowed with the same credit at the beginning of each auction of the tournament. Skeleton programs for buyer agents were provided in Java, C, Prolog, and Common Lisp. The allocation of agents follows the topology of the electric grid. Device agents, which are called HomeBots in this case, intermediate Service agents, and the Utility agent are the participants of the auction. MAGNET [Collins199 8] MAGNET (Multi AGent NEgotiation Testbed) is a testbed for multi-agent negotiation, implemented as a generalized market architecture. MAGNET provides support for a variety of types of transactions, from simple buying and selling of goods and services to complex multi-agent contract negotiations. The MAGNET architecture is a distributed set of objects. The fundamental elements of this architecture are the exchange, the market, and the market session. An exchange is a network-accessible resource that supports a set of markets and common services. Each market within an exchange is a forum for commerce a particular provides a parallel processing environment where more agents can eat, grow and bear simultaneously, and outputs a feature tree that stores the features. When auctioning a good, one could choose among a wide range of bidding protocols. Each of these protocols can be characterized by a set of parameters that we refer to as bidding protocol dynamics descriptors, so that different instantiations of such descriptors lead to different behaviors of their corresponding bidding protocols. The market approach provides an integrated strategy for many different loads and contracts. It enables a natural decomposition, from both a software design and a computational perspective. All local characteristics are encapsulated by agents, communicating only through prices and demands, while performing local optimization computations. Due to different capabilities of the HomeBots and Utility agents, different auction schemes can be implemented. Planning by Contracting is an activity in which an agent, in order to formulate its plans and fulfill its goals, must contract with other self-interested agents for all or part of the necessary tasks. The Planning by Contracting protocol is a three step process which begins after the session has been A typical agent application on the power grid. Using Software Agents in Computational Grids (Draft) Page 15 of 45 SI Agent Tcl [Kotz1997] Agent Tcl is a mobile-agent system whose agents can be written in Tcl, Java, and Scheme. Agent Tcl has extensive navigation and communication services, security mechanisms, and debugging and tracking tools. DAIS [Hofmann1 998] The Domain Adaptive Information System (DAIS) is a mobile intelligent agent system for information discovery and dissemination in a military intelligence network. commodity or business area. A market session (or simply a session) is the vehicle through which market services are delivered dynamically to participating agents. It serves as an encapsulation for a transaction in the market, as well as a persistent repository for the current state of the transaction. The core system has four levels: transport mechanisms, a server that runs on each machine, an interpreter for each supported agent language, and the agents themselves; Support agents provide navigation, communication, and resource management services to other agents. The DAIS approach separates mobile task agents from stationary service agents. Task agents travel through the network and execute tasks on behalf of the user. Service agents remain at one location and preprocess information available locally and mediate access to this information. Service agents and the basic agent life cycle services collectively constitute the extended agent dock. initiated by a customer agent: the customer issues a call-for-bids, suppliers reply with bids, and the customer accepts the bids chooses with bid-accept messages. When an agent wants to migrate to a new machine, it calls a single function, agent_jump, which automatically captures the complete state of the agent and sends this state information to the server on the destination machine. The destination server starts up an appropriate execution environment (for example, a Tcl interpreter for an agent written in Tcl), loads the state information into this execution environment, and restarts the agent from the exact point at which it left off. Now the agent is on the destination machine and can interact with that machine’s resources without any further network communication. The extended agent dock consists of the dock proper, infrastructure service agents, and information service agents. The dock proper provides agent mobility and life cycle services, accepts and manages incoming mobile agents, and channels incoming messages to their intended receiver. The dock permits or denies mobile agents to move to its host. When the dock detects Using Software Agents in Computational Grids (Draft) Page 16 of 45 MAGENT A [Sahai1998 ] MAGENTA is a generic mobile agent environment for distributed applications and provides the agents the capabilities of autonomy, reactivity, proactivity and communication. The architecture of MAGENTA comprises of lieus and agents. A lieu is a place or location where an agent can originate, reside, execute and interact with the system as well as with other agents. An agent is a program, which moves between the lieus and utilizes the lieu to perform its functions. Tunnel [Meer1998 ] RSVP is a framework for resource reservation and QoS provisioning mechanisms within the Internet. However, because non-RSVP routers can degrade the perceived QoS in an uncontrolled way, there is no end-to-end guarantee. The agent-based approach deals with tunnels that lead through so-called cloud of non-RSVP-capable network entities. It aims to improve the endto-end quality by monitoring the tunnel and providing feedback to enhance the reservation scheme. The primary goal of tunnel agents is to monitor tunnel properties, interacting with the RSVP routers for assuring the end-toend QoS to the user. Tunnel agents must make decisions on how to achieve network reconfiguration. These decisions are based on information concerning the tunnel structure and state. All tunnel agents monitor the tunnel behavior and eventually interact with the RSVP protocol. Table 2 Agent Applications that its host is overloaded with visiting agents, it prevents additional agents from moving in and ensures sustainable agent load on the machine. The agents have globally unique name, have a “purpose” which defines its type and behave autonomously. They “move” between the lieus carrying with them their data and program state. They have a “folder” to carry their results and can “meet” with other agents and exchange “notes”. A meet operation is enabled by the lieu to enable local communication between the agents. They also carry a “history” which stores all the tasks performed by the agent and “knowledge” which stores the information it gathers about the failed sites as it traverses its “itinerary”. Decision-making; Interacting with tunnels; Interacting with RSVP; Migration after route change. A typical agent application on network management. A hybrid agent of SIA and IA. Using Software Agents in Computational Grids (Draft) Page 17 of 45 2.2.2 Agent Technologies There are many researches on the agent technique itself rather than its application on the other field. We also give a list here to get a more global view of agent technology development. We mean here a list but not a survey for that it is really difficult to get a systemic taxonomy on agent technologies. First, many works focus on the research of how agents achieve their autonomy. These can be classified by the agent types we mention above. (IA): Many AI algorithms are used in agents to achieve their intelligence. For example, several heuristic approaches were proposed to the development of pricing algorithms for software agents that incorporate foresight in [Tesauro1998]; [Maulsby1997] focuses on how to teach agents to learn. (IA): Many autonomous agents have life-like characteristics such as reproduction, aging, metabolic cycle and movement. [Yap1999] describe how each characteristic may be useful to an agent. The study in [Lester1997] revealed the persona effect, which is that the presence of a lifelike character in an interactive learning environment can have a strong positive effect on student’s perception of their learning experience. (SA): Agent Communication Languages (ACL) have been used in MAS for agents to exchange information and knowledge. The most widely known one is Knowledge Query and Manipulation Language (KQML) [Finin1994]. Yet agents from different vendors — or even different research projects — cannot communicate with each other. Some recent researches focus on rethinking the ACL principles. [Singh1998] concluded that an ACL’s formal semantics should emphasize social agency; A pragmatic principle of ACL usage is sketched out in [Holmback1999]. (ISA): The coordination problem in the MAS is the problem of managing dependencies between the activities of agents, in conditions of incomplete knowledge about the dynamically changing environment and about the actions, reactions and goals of the agents, such that to achieve the individual and shared goals of the participants and a level of coherence in the behavior of the system as a whole. [Malone1994] gave a survey of coordination theory; A reference architecture was given in [Ciancarini1997] to coordinate multi-agent applications on WWW; In [Washington1998] agent behavior was represented by partially observable Markov decision processes, which can capture uncertainty in both agent’s state and its actions; In [Clement1999] a method was described to coordinate the hierarchical plans of multiple agents at abstract levels. (ISA): Evolution in societies of agents is a challenging phenomenon. [Brazier1999] introduced deliberate evolution of MAS, within which agents can deliberately influence the direction of the evolution. (ISA): Auctions provide an efficient way of resolving one-to-many negotiations among agents. [Vulkan1998] introduced an efficient mechanism for the supply of services in multi-agent environments; [Preist1999] described a new agent-based market mechanism for commodity trading via the Internet, which combines the best properties of the continuous double auction and the call auction; An adaptive agent bidding strategy based on stochastic modeling has been developed in [Park1999] for a dynamic, evolving multi-agent auction. Using Software Agents in Computational Grids (Draft) Page 18 of 45 (ISA): Negotiation is a kind of high-level communication between agents. The most typical application is the bargain in electronic commerce, in which negotiation protocol is associate with the interest models of buyer and seller. Further research is progressing like [Qiu1999], which is towards flexible negotiation in teamwork. (SIA): Java is one of the efficient ways to implement mobile agents. In [Kiniry1997] issues, such as ease of installation, feature set, documentation, and cost, of three leading commercial systems — General Magic’s Odyssey, IBM’s Aglets, and ObjectSpace’s Voyager — were discussed; [Wong1999] explained why Java is such an effective implementation language for mobile agents in electronic commerce. Second, software engineering related problems on agent development are discussed in many works. These include methodology for agent-oriented analysis and design [Wooldridge1999], design issues for mobile agent systems [Karnik1998], design patterns [Aridor1998; Hayden1999; Kendall1998], visualising and debugging MAS [Ndumu1999], testbed [Corchado1997], visual modeling [Falchuk1998], formalism [Métayer1998] and so on. Third, many agent development tools are emerging towards an agent-based engineering. Table 3 includes the some latest research works. A survey on Java-based agent environments can be found in [Bigus1998]. Name DAI [Chenq1998] HiMAT [Cremonini1999] Jackal [Cost1999] OAA [Moran1997] SIM_AGENT [Sloman1999] Feature Descriptions This dynamic agent infrastructure differs from other agent platforms and C/S infrastructures by its support of dynamic behavior modification of agents. HiMAT model provides a unique, coherent framework for the design and development of mobile agent applications, where critical issues such as topology, authentication, authorization and coordination can be effectively addressed in a uniform way. Jackal is a Java-based tool for communicating with the KQML agent communication language. Some features that make it extremely valuable to agent development are its conversation management facilities, flexible, blackboard style interface and ease of integration. An important consideration in the design of the OAA is to facilitate mix-andmatch: to facilitate the reuse of agents in new and unanticipated applications, and to support rapid prototyping by facilitating the replacement of agents by better versions. The Sim_Agent toolkit allows construction of sets of agents, in which each agent has a multi-component architecture, in which different components operate in parallel, using different kinds of mechanisms. Table 3 Agent Development Tools There are also many miscellaneous research. These include sociological studies [Foner1997; Heckman1998; Heckman1999], user studies [Friedman1997; Gustafson1998], execution monitoring and failure diagnosing [Kaminka1998], exception handling service [Klein1999], standardization [Virdhagriswaran1995], and security [Karjoth1997; Pfitzmann1997]. 2.2.3 Key Points of Agent-Oriented Development There are a lot of information that can be retrieved from the summary of agent development described above. We give several key points to organize these information, which can be the answer of what we should consider when developing software agents [Wooldridge1998]. Using Software Agents in Computational Grids (Draft) Page 19 of 45 Agent-Oriented Software Engineering is developing rapidly. However there is no standard methodology that can be used to engineer different agent-based system. But from the diverse applications above we can summary some common factors that must be considered seriously when developing software agents. We give a list below. Human vs. agent. When an agent-based software system is to be developed, one of the most decisions is what an agent should do. There are two aspects of consideration on this question. One is from technology and the other is from sociological studies. Many earlier agent developers give a lesson: “Don’t let an agent to do what man can do easily.” Many latest works on implementing complex functions show a clear emphasis on human-agent negotiation, such as ARA in Table 2. The same story can be found in the other fields of research on AI and robot. Sociological studies do a lot on human-agent relationship. For example, agents cannot be so autonomous that they are out of the control of man. Also agents should not do what is considered as human right. Things vs. functions. The question of what becomes an agent has been mentioned in [Parunak1997]. Whether agents should be things or functions is important especially in MAS. Some agents are dispatched to fulfil a special function in software system, such as almost all the IAs, PWS, AGENTS, and Amalthaea. Some are representation of physical things to take part in the cooperation among different components in the system. Such agent must be in the multi-agent system, for example, AARIA, WorkWeb, DMS, and Fishmarket. Some multi-agent systems like InfoSleuth include both thing agents and function agents. Whether agents should be things or functions depend on the situation the developer deals with. Software on complex system with huge number of different kinds of components would be better to adopt thing agents. It will be convenient to get a clear view of the whole system and easy to update when the functions of the system change; Simple system with special purpose can still adopt functional decomposition. Intelligent vs. social. We classify the ways for agents to achieve autonomy into intelligence and social ability basically. AI approach can make agent fulfil special task, while communications among multi-agents also can implement complex functions especially in distributed systems. Large-scale applications as on manufacturing prefer to social ability. Future applications as on Computational Grids need both of these agent capabilities. Single vs. multiple. Distributed applications often use MAS. Other applications can also use multiple agents. Each of them can fulfil one function as a part of the goal and work simultaneously. This is the essential decision on agent system structure. Centered vs. scalable. One of the important differences between MAS structures is whether it is centered or scalable. When the MAS need global information management, centered structure is the simplest way. Sometimes the centered agent is called broker. In simple system it can work well. But in large-scale applications the broker may become the bottleneck of the software system. The robust and security of the system also become worse. Some systems like the Grid should be scaled to millions of hosts, so they can’t use centered structure. But to achieve scalability extra mechanism must be added to give global control. Small vs. large. The size of the agent should also be considered when developing agent system. Some so-called ant-like agents, with simple function, small Using Software Agents in Computational Grids (Draft) Page 20 of 45 size and large number, can communicate to fulfil complex task. The main advantage is that it can improve the fault tolerance of the system because one failure has very small impact on the system. Most agents are background processes and should not consume too much resource. Scratch vs. tool. Though many agent development tools and environment are emerging, most of the current software agents are developed from scratch. Whether using tools or not is the final decision before programming. The developer must take trade-off between generalization and efficiency. For example, in DPSS project in Table 4, all of the agents use RMI-based communication, which is a decision made after KQML message passing turned out to be far less efficient. 2.3 What problems can agents solve? In this section we discuss what problems agent can solve as the basis of the following sections discussing how to use software agents in Computational Grids. This subject has been discussed in [Jennings1998a] and also a good summary has been given. For any new technology to be considered as useful in the computer marketplace, it must offer one of two things: the ability to solve problems that have hitherto been beyond the scope of automation or the ability to solve problems that can already be solved in a significantly better (cheaper, more natural, easier, more efficient, or faster) way. Software agents can be used to develop three classes of systems. Open systems. An open system is one in which the structure of the system itself is capable of dynamically changing. The characteristics of such a system are that its components are not known in advance, can change over time, and may be highly heterogeneous. The best-known example of a highly open software environment is the Internet. And the Grid will be much more an open system than the Internet. The functionality is almost certain to require techniques based on negotiation or cooperation, which lie very firmly in the domain of MAS. Complex systems. The most powerful tools for handling complexity in software development are modularity and abstraction. Agents represent a powerful tool for making systems modular. They can provide a useful abstraction in just the same way those procedures, abstract data types, and objects provide abstractions. They allow a software developer to conceptualize a complex software system as a society of cooperating autonomous problem solvers. For many applications, this highlevel view is simply more appropriate than the alternatives. Ubiquitous computing systems. Interaction between computer and user must become an equal partnership. The machine should not just act as a dumb receptor of task descriptions, but should cooperate with the user to achieve their goal. These considerations give rise to the idea of an agent acting as an expert assistant with respect to some application, knowledgeable about both the application itself and the user, and capable of acting with the user in order to achieve the user’s goals. 3 Computational Grids In this section, we introduce the basic concepts of Computational Grids. After the introduction of the definition, the software infrastructure of the grid is described in Using Software Agents in Computational Grids (Draft) Page 21 of 45 greater details using Unified Modeling Language. The main challenges of developing a Grid are given briefly too. 3.1 What is the Grid? We adopt the definition of the Grid in [Foster1998] here. A Computational Grid is a hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to highend computational capabilities. Figure 3. Computational Grids Three key points in this concept should be emphasized. (1). Supercomputers and their interconnection by high-speed network are significant hardware infrastructure for the Grid to provide computational capabilities. However, since what we are discussing here is how to use software agents in the Grid, we emphasis on the software infrastructure in the Grid which can control hardware to implement user’s requirement. (2). The basic characteristics of dependability, consistency, pervasiveness and low cost are retrieved from the previous infrastructure like electric power grid. By analogy, only by equipped with all of these can the Grid achieve functions as an infrastructure. (3). Accessing to high-end computational capabilities is the goal for the Grid to achieve. There are different kind of user like end users, application developers, system administrators, and so on. They will user the grid through different kind of applications including distributed supercomputing, high-throughput computing, ondemand computing, data-intensive computing, and collaborative computing. The Grid software infrastructure should also provide many kinds of services, such as performance analysis, visualization and scheduling, resource management and allocation, security, accounting and assurance. The software infrastructure in the Grid is really a complex software system. Current many grid-oriented software systems are developed independently. Many new ideas in them are important to accelerate the development of the Grid. Unfortunately it will be difficult to integrate them into one global software system to support Using Software Agents in Computational Grids (Draft) Page 22 of 45 different kinds of requirement. In the next section a global view of the software infrastructure in the Grid will be given using unified modeling approach and tools. 3.2 What can the Grid do? The Grid is so complex a system that it is difficult to understand what it can do exactly. It seems the Grid has to do a lot of things to support high performance computing. It must have a friendly user interface through which user can access the services of the Grid; It must manage the information on users, applications, tools, and resources; It must enable the user to preview their application execution; It must assure the security of the services; It must build efficient market mechanism to provide the cheapest service to the user. All these functions can be provided by the software infrastructure of the Grid at different level. To give a global view of how the Grid achieves its goal, we adopt the unified modeling approach and tools. 3.2.1 Unified Modeling Language The Unified Modeling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. The UML represents a collection of best engineering practices that have proven successful in the modeling of large and complex systems. Object Management Group (OMG) has accepted UML as the standard for modeling language. UML is built on well-established and proven techniques for modeling systems. In [Martin1998] the foundation of object-oriented method was introduced in details, which is the basis for understanding UML. The global description of UML can be found in Addison-Wesley Object Technology Series including [Booch1999], [Rumbaugh1999] and [Jacobson1999]. The visual modeling tools are developed by Rational Software Corporation. How to use Rational Rose modeling tool shown in Figure 4 is described in details in [Eriksson1998] and [Quatrani1998]. Different parts of UML include: Views. Views show different aspects of the system that are modeled. The usecase view describes the functionality the system should deliver, as perceived by external actors; The logical view describes how the system functionality is provided; The component view is a description of the implementation modules and their dependencies; The concurrency view deals with the division of the system into processes and processors; The deployment view shows the physical deployment of the system, such as the computers and devices (nodes) and how they connect to each other. Diagrams. Diagrams are the graphs that describe the contents in a view. UML has nine different diagram types that are used in combination to provide all views of the system, such as use-case diagram, class diagram, object diagram, state diagram, sequence diagram, collaboration diagram, and so on. Model elements. The concepts used in the diagrams are model elements that represent common object-oriented concepts such as classes, objects, and messages, and the relationships among these concepts including association, dependency, and generalization. Using Software Agents in Computational Grids (Draft) Page 23 of 45 General mechanisms. General mechanisms provide extra comments, information, or semantics about a model element. They also provide extension mechanisms to adapt or extend the UML to a specific method/process, organization, or user. Figure 4. A Modeling Tool: Rational Rose 3.2.2 Computational Grids Model The software infrastructure of the Grid will be an extremely complex software system. The aim we use UML to make a model of the Grid is not to really analyze, design, and implement the Grid. Also what is given below is not a precise model for the system. We only want to give a high-level introduction of what functions the Grid must have for the users to access the computing capabilities. Since the model is very coarse and high-level, we have to use UML in a little different way. In Figure 5, use case view of the system is given with several typical dynamic processes described by sequence diagrams or collaboration diagrams. Also several class diagrams are shown in logical view of the system model in Figure 5. But the class elements are not really classes in the program but the models of high-level modules in the Grid. The operations of the classes are very complex functions that must be implemented by the processes among many subsystems. Through this simplified model of the Grid, much more details on the Grid functions and their relationships are described. Many modules of the Grid have not been implemented successfully. New software technologies are needed to overcome the challenges in the Grid development. Using Software Agents in Computational Grids (Draft) Page 24 of 45 <<uses>> Manage personal infomation End user Run application <<uses>> Configure <<uses>> <<uses>> Manage application Manage tool Ask for help Manage resource information Application developer Tool developer Grid developer Resource owner Develop application Preview Develop tool Submit Develop service System administrator Maintenance Use Case Diagram: Use Case View / Grid There are 6 Actors in the grid. End user: Most grid users, like most users of computers or networks today, will not write programs. Instead, they will use grid-enabled applications that make use of grid resources and services. Application developer: This class of users comprises those who construct grid-enabled applications and components. Tool developer: They are the developers of the tools, compilers, libraries, and so on that implement the programming models and services used by application developers. Grid developer: A very small group of grid developers are responsible for implementing the basic services required to construct a grid. Resource owner: They are not the true user of the grid. They provide computing resources like supercomputers and networks to the grid and get paid from the grid. System administrator: They must manage the infrastructure on which computational grid operate. Also there are 14 main Use Cases in the system. Run application is the most important Use Case for end users to access the computing capbilities of the grid. It uses 3 main Use Cases. In the Use Case of Configure, the end user can select a registered application, resources that the user wish to use and scheduling strategy (for example, minimal cost, minimal response time, or maxiumal throughput). Then they construct a Task with these information. In Preview, the user can get the visual performance results which are produced by the cooperation of services like performance scheduler, analysis, measurement, resource management and so on. The user can preview the application execution over again with different configuration and at last submit a satisfactory one. During the running of the application, the user can also get related dynamic information and even steering the execution through dynamic modification of the application configuration. After finishing running the application, the user can get an entire report with information of resource usage, time consuming and finance. Other Use Cases include that the different user must manage the related information, the system administrator must provide maintenance of the grid, and so on. Using Software Agents in Computational Grids (Draft) Page 25 of 45 : User Information Window : End user 1: fillBasicInfo( ) : End User Info : Security : Information Management : Accounting : Resource Management 2: registerApp( ) 3: registerResource( ) 4: submitUserInfo_Clicked( ) 5: saveUserInfo( ) 6: userinfoCheck(User Information) 7: save( ) 8: payToAppDevlp(User Information, Application Info) 9: registerUserToResc(User Information, Resource Info) 10: payToRescOwnr(User Information, Resource Info) 11: submitUserInfoReport( ) Sequence Diagram: Manage personal infomation / Manage end user infomation Each kind of user can register, update or cancel their personal information. This scenario is for an end user to register the grid. Many services in the grid are used, such as Security, Information Management, Accounting, and Resource Management. : Application Execution Window : End user : Task : Assurance 1: selectApp( ) 2: selectResource( ) 3: selectStrategy( ) 4: configTask_Clicked( ) 5: Task(appinfo, resource, strategy, userinfo) 6: assureAppResc(Task) 7: configTaskReport( ) Sequence Diagram: Configure / Configure application This is the scenario for end user to pre-configure the application that the user w ant to run on the grid. Beside the application itself, the user must select related resources and execution strategy to construct a Task. After the system assures that the Task can be implemented, it returns the configuration report. Using Software Agents in Computational Grids (Draft) Page 26 of 45 1: previewApp_Clicked( ) : Application Execution Window 2: previewApp( ) : End user 7: getDynamicInfo( ) 8: getStaticInfo( ) : Performance Visualization : Performance Scheduler 6: visuSchedApp( ) 4: getResourcePolicy(rescname) 3: getAnalysisResult( ) : Resource Management : Performance Analysis 5: getNowSysInfo( ) : Measurement Collaboration Diagram: Preview / Preview execution of application This is scenario for an end user to preview the execution of the application after configuring it. This can happen many times before the user gets the sacrifatory preview result. 1: submitApp_Clicked( ) 11: payToRescOwnr(User Information, Resource Info) : Application Execution Window : End user : Accounting 7: getExeReport( ) 2: exeTask( ) 8: rescheduleApp( ) : Performance Visualization 6: visuExeApp( ) : Resource Allocation 3: monExeApp( ) : Performance Scheduler 10: exeCheckPointTask( ) : Execution Monitoring 4: rescAllocCheck( ) 9: steerExeApp( ) : Execution Steering 5: getNowAppInfo(Task) : Measurement : Security Collaboration Diagram: Submit / Submit execution of application This scenario is for an end user to submit the application to the grid. It is the most important and complex process in the grid. During the execution, the user can get dynamic performance visual displays and result report including resource usage, time consuming and finance infomation. Also the user can steer the execution of the application by rescheduling and checkpoint technology. Using Software Agents in Computational Grids (Draft) Page 27 of 45 User Package GUI Package Tool Package Application Package Service Package Resource Package Class Diagram: Logical View / Grid This diagram shows a layered structure of the software infrasturcture of the grid. Usar Package contains the classes related to the user information. There is a meta-class name User Information, from which different kinds of user classes can be inherited. User Information also associates with classes of application information, tool information and resource information from other packages. GUI Package contains the components of the graphic user interface of the system. User can access the system service only though this GUI. Application Package contains descriptions of different kinds of computing application. They are used by the end users though the GUI. In Tool Package, different programming tools of the grid, such as library, compiler, and programming language, are inherited from Tool Info class. Many necessary services for the grid are contained in the Service Package, including scheduler, visualization, monitoring, steering, security, accounting, and so on. Using Software Agents in Computational Grids (Draft) Page 28 of 45 Figure 5 Computational Grids Model Using Software Agents in Computational Grids (Draft) Page 29 of 45 Using Software Agents in Computational Grids (Draft) Page 30 of 45 3.3 What challenges has the Grid met? In the preceding sections, we outlined what the Grid is expected to look like. However, there are still many challenges to be overcome before the Grid can be used as easily and flexibly as described in Figure 5. In [Foster1998] a good summary of the nature of these challenges was given. Some of them are related to the software infrastructure and included in the list below. Software Architecture. The software systems that support the Grid applications must satisfy a variety of potentially conflicting requirements. A need for broad deployment implies that these systems must be simple and place minimal demands on local sites. At the same time, the need to achieve a wide variety of complex, performance-sensitive applications implies that these systems must provide a range of potentially sophisticated services. Other complicating factors include the need for scalability and evolution to future systems and services. It seems likely that new approaches to software architecture will be needed to meet these requirements. Software Engineering. Many current software modules towards the Grid are developing independently. Techniques for the construction and composition of gridenabled software components will be important. This needs the new achievements in the field of software engineering, for example, component-based software engineering [Brown1998]. Another challenge lies in the research of software engineering for parallel and distributed application [Astley1998]. Mature technique is needed for developing complex grid-enabled application. Integration. Many current works must be highly integrated to realize the software infrastructure of the Grid. Integration can be achieved in different levels including information integration, function integration, and application integration. The result of the integration can exceed that of the simple sum of individual information, functions or applications. For example, in traditional application development, once the program is compiled to executable application, the rich information in the source code cannot be used any more, which is very important to the performance analysis. Integrating compiler with performance analysis to achieve performance-driven application development would be great helpful. Besides static integration, more complex support of dynamic integration of new applications, tools and services is also required in the Grid. User Interface. The different users need friendly user interface to access the services provided by the Grid. Nowadays web-based interface has been applied widely but can provide limited data formats. The grid applications need frequent interaction with the users. Different kinds of high-level requirements are sent to the Grid via the user interface. This kind of tasks can be so complex that user can not spell out each action for the computer explicitly. Traditional Direct Manipulation Interface (DMI) has limitations as tasks grow in scale or complexity. Research on Intelligent User Interface (IUI) aims to solve these problems by combining the expression of user intention through direct manipulation with the notion of an indirect management style of interaction. Many of the actions now performed by users could be delegated to the flexibility and intelligence of the user interface and users could be allowed to give general guidelines and forget about the details. Application Development. We have mentioned that five kinds of high performance computing applications could be enabled by the Grid. What we can’t Using Software Agents in Computational Grids (Draft) Page 31 of 45 imagine are the new ways to use the Grid. Research is required to explore the bounds of what is possible. Can we imagine grid-enabled games in future? Programming Models and Tools. The Grid environment will require a rethinking of existing programming models. Novel models should be more suitable for the specific characteristics of grid applications and environments. New techniques are required for expressing advanced algorithms, for mapping those algorithms onto complex Grid architectures, for translating user performance requirements into system resource requirements, and for adapting to changes in underlying system structure and state. Another significant challenge is to provide tools that allow programmers to understand and explain program behavior and performance. Algorithms and Problem-Solving Methods. Grid environments differ substantially from conventional uniprocessor and parallel computing systems in their performance, cost, reliability, and security characteristics. These new characteristics will motivate the development of new classes of problem-solving methods and algorithms, for example, for latency-tolerant, fault-tolerant, resource management and allocation, performance scheduling. Instrumentation. A lot of information must be collected in gird environment, such as processor workload, network weather, states of executing applications, and user interests. The techniques of measurement and instrumentation are the basis of performance analysis and scheduling, execution monitoring and steering. Some challenges arise from the new characteristics of the Grid environment. For example, a serious problem that must be solved is how to provide the required performance data and still ensure security of the hosts and applications. Another difficult instrumentation question for the Grid is how we can know whether a performance behavior was due to the application or to transients in networks or computational resources. In current parallel system, it is already difficult to measure the performance of an application that is competing with other applications for processor or communication resources. Performance Analysis. Performance analysis is of critical importance both in application development and application execution. Precise performance analysis needs different data sources including performance model of the application, workload of the processors and dynamic information on network traffic. The challenge in highly dynamic grid environments is that neither available resources nor adaptive application behavior may be reproducible. More efficient and practical method should integrate performance measurement with real-time performance visualization and adaptive control of application behavior and resource policies. Then this approach for performance analysis would allow interactive steering of applications. Execution Monitoring and Steering. When a long-term application is running on the Grid, the end user may require knowing about the progress the application is making. This kind of information can be provided by the execution monitoring service of the Grid and displayed to the user via performance visualization functions. Further requirement like application steering would be much more complex to meet. To achieve this performance analysis and scheduling service should also be integrated and special process checkpoint and migration technique as described in [Litzkow1997] is needed. Using Software Agents in Computational Grids (Draft) Page 32 of 45 Security. Grid applications frequently involve many entities, impose stringent performance requirements, and involve complex activities such as collective operations, the downloading of code, and group communications. All of these introduce challenging security problems. Different mechanisms are needed to provide guarantees to users that services behave as advertised. Accounting. Different computing resources in the Grid have different policies. It seems that the user should have an account on each node in the system where his or her application will run. Distributed accounting is one of the future research directions. 4 Using Software Agents in Computational Grids In the last two sections we give the introduction to both Software Agents and Computational Grids. In this section the subject of using software agents in the Grid is discussed. A survey of agent applications in the Grid is described in details and several features are summarized on the characteristics of these applications. Future challenges are also predicted to give a blueprint of using software agents in the Grid. 4.1 What have been used? In the current grid-oriented software systems agent technology has been used in different ways. However, these applications in the research on high performance computing are not noticed by the agent researchers. Six main projects are listed in Table 4. Several features can be summarized from the characteristics of these applications. (1). Agents are used as a part of the project to fulfil given tasks. Agent functions mainly concentrate on system monitoring, resource management, and performance scheduling. These are the most typical problem that can be solved using agent techniques, which can be found in other agent applications, such as on manufacturing and business process management. (2). Agents are either IAs or SAs. The key techniques for the agents to achieve their autonomy are simpler than those in Table 2. Though using software agents in the Grid is greatly potential with the development of the Grid software infrastructure, it is just a start now. (3). IAs as in AppLeS, DPSS and GARA use related algorithms or reasoning to achieve their intelligence. Agents in Condor are some background processes called daemons, which can communicate with each other. SAs in DPSS, NetLogger and NetSolve are MAS with centred structure. Though they are important grid-oriented software systems that can perform complex tasks, they are simple applications from the perspective of software agents. (4). Agents for event logging management in the NetLogger project are developed using Java Agent Toolkit (JATLite) from Stanford and KQML communication language. In DPSS agents are also written in Java and use RMI-based communication with other agents. However, many agent techniques have not been applied in these applications. Using Software Agents in Computational Grids (Draft) Page 33 of 45 Project Name (Agent Type) Project Background Agent Functions Agent Structure (only internal structure for IA and SIA) AppLeS (IA) [Berman1996 ] To achieve a performance-efficient implementation on a distributed heterogeneous system, the performance-seeking end-user or application developer must select a potentially efficient configuration of resources based on load and availability, evaluate the potential performance on such configurations based on their own performance criteria, and interact with the relevant resource management systems in order to implement the application. Each application will have its own AppLeS including a single active agent called the Coordinator and four subsystems: Resource Selector, Planner, Performance Estimator, and Actuator. There are three general source of information: Network Weather Service, User Interface, and Performance Models. Condor (SA) [Condor1999] Condor is a High Throughput Computing environment that can manage very large collections of distributively owned workstations. Its development has been motivated by the everincreasing need of scientists and engineers to harness the capacity of such collections. The environment is based on a novel layered architecture that enables it to provide a powerful and flexible suite of Resource Management services to sequential and parallel applications. The DPSS is a data block server, which provides high-performance data handling and architecture for building high-performance storage systems from low-cost commodity hardware components. This technology has been quite successful in providing an economical, high-performance, widely distributed, and highly scalable architecture for caching large amounts of data that can potentially be used by many different users. Application-level scheduling (AppLeS) agents are developed to provide a mechanism for scheduling individual applications at machine speeds on production heterogeneous systems. AppLeS agents utilize a Network Weather Service (NWS) to monitor the varying performance of resources potentially usable by their applications. Each AppLeS uses static and dynamic application and system information to select viable resource configurations and evaluate their potential performance. Certain Condor programs called the Condor "daemons" must run all the time to monitor the status of the individual computers in the cluster. Agents provide DPSS clients with different views and monitoring granularities of the system's current and past state. Agents can keep track of all components within the system and restart any component that has gone down, including any DPSS server or one of the other agents. Agents can also monitor the load of each DPSS block server. A broker/agents architecture: agents are processes that monitors the state of the system; broker agent (or broker) is an agent that manages the information, filters information for clients, or perform some action on behalf of a client. Agents model their environment using an extensible set of Facts DPSS (Hybrid Agent of SA and IA) [Brooks1997] These daemons include condor_master, condor_startd, condor_starter, condor_schedd, condor_shadow, condor_collector, condor_negotiator, condor_kbdd, condor_ckpt_server. Key Technology to Achieve Autonomy Scheduling policy; applicationspecific performance prediction models. Communications via ClassAds, which contain all the information about the state of the daemons, the resources they represent or resource requests in the pool. Agents use RMIbased communication with other agents, not with clients. Reasoning: Facts > ontology -> Task; Task -> Operators -> Plan. Using Software Agents in Computational Grids (Draft) Page 34 of 45 GARA (IA) [Foster1999] NetLogger (SA) [Tierney1998 ] NetSolve (SA) [Casanova199 8] The Globus Architecture for Reservation and Allocation (GARA) builds on techniques and concepts developed in the Globus toolkit for the provision of computational QoS via the coallocation of computers, generalizing and extending them to support end-to-end discovery, reservation, allocation, and management of heterogeneous ensembles of computers, networks, storage systems, and other resources under independent local control. NetLogger is a methodology that enables the realtime diagnosis of performance problems in complex high-performance distributed systems. NetLogger includes tools for generating precision event logs that can be used to provide detailed end-to-end application and system level monitoring, and tools for visualizing log data to view the state of the distributed system in real time. NetSolve is a client-server system enables users to solve complex scientific problem remotely. The system allows users to access both hardware and software computational resources distributed across a network. NetSolve searches for computational resources on a network, chooses the best one available, and using retry for faulttolerance solves a problem, and returns the answers to the user. A co-reservation agent is responsible for discovering a collection of resources that can satisfy application end-to-end QoS requirements (a resource set); however, rather than allocating those resources, it simply reserves them. The co-allocation agent has the task of allocating a resource set, given a reservation handle generated by a coreservation agent. An agent is an autonomous, adaptable entity that is capable of monitoring and managing distributed system components. Agents provide the standard interface for monitoring CPU load, interrupt rate, TCP retransmissions, TCP window size, etc. Agents can also independently perform various administrative tasks, such as restarting servers or monitoring processes. Collectively, a distributed system’s agents maintain a continually updated view of the global state of the system. The NetSolve agent operates both as a database and as a resource broker. The agent keeps track of information about all the servers in its resource pool, including their availability, load, network accessibility, and the range of computational tasks that they can perform. The agent then selects a server to perform the task, and server responds to the client’s request. and act on their environment using a set of Tasks. A co-reservation agent and a coallocation agent. Search deadlock strategies. and The broker controls agents on each host, telling them which tasks to perform. The broker also collects event logs from each agent and merges them together, sorted by time, for use by the event log visualization tools. NetLogger’s agents are written in Java, use the Java Agent Toolkit (JATLite) from Stanford, and use the KQML communication language. There can be multiple instances of the NetSolve agent on the network, and different clients can contact different agents depending on their locations. The agents can exchange information about their different servers and allow access from any client to any server, if desirable. Table 4 Agent Applications in Computational Grids Using Software Agents in Computational Grids (Draft) Page 35 of 45 4.2 What can be used in future? The software infrastructure of the Grid is open, complex software system. Agent technology is one of the ways to overcome the challenges in the grid development. Agent can not do everything. It is also dangerous to define something like AgentBased Computational Grids by analogy. However, agents are sure to play important roles in implementation of the grid software infrastructure. Future research directions are listed below to give a blueprint of using software agents in the Grid. Agile Infrastructure. The concept of agility arises from the research on manufacturing. Agile manufacturing is important for the factories to give quick response to the quickly changing market requirements. For example, the enterprise must provide one and one of one million products at the same low cost. Flexible Manufacturing Systems (FMS) are basis to achieve this agility. The same situation is met in Computational Grids. The same software infrastructure must support different kinds of applications with different requirements of QoS. Distributed supercomputing applications should achieve high levels of performance across heterogeneous systems. On-demand applications are often driven by cost-performance concerns rather than absolute performance. In high-throughput computing, users measure the power of the system by the amount of work performed by the system in a fixed amount of time. In data-intensive applications, the complete process involves the movement and processing of many gigabytes of data. And collaborative applications are concerned primarily with enabling and enhancing human-to-human interactions, which depends on the availability of a grid infrastructure able to provide robust performance guarantees. As the Grid evolves, the range and sophistication of applications are expected to increase dramatically. The Grid must provide services to these different requirements with the same low cost. Agent technology can be used to achieve agility for software systems. Agent-Aided Software Engineering. The complexity of software development has been out of the scope that the developer can control. The gaps between the requirements and the actual systems would be enhanced step by step through the analysis, design and implementation. Intelligent agents can be integrated into the software development tools and “watch” the development processing. When trends to away from the requirements are detected, the agents can give the developers warnings autonomously. Also the agents can be integrated into the final system and “watch” the user operations. If agents detect the differences between the user actual requirements and system functions, related information can be transferred back to the developers. Developers can update the software or give the user more advises on using the software according to different situation. Such kind of ideas has been implemented in the software like Netscape. The Grid applications are to meet much more complex user requirements. Agent-aided software engineering can be applied to development efficient grid-enabled applications. Virtual High Performance Computing Laboratory. The idea of virtual organizations is not new [Goldman1995]. Developments in information technology capabilities, such as WWW and AI, have allowed the development of implementations of virtual organizations that exploit the capabilities of those technologies. In [O’Leary1997], virtual company, virtual laboratory, virtual classroom, virtual office system, and virtual manufacturing organization are mentioned. The use of agents, facilitators, and KQML, together with negotiated Using Software Agents in Computational Grids (Draft) Page 36 of 45 ontology, can provide a workable, reliable, and flexible base of systems used in creating the platforms for virtual organizations. By analogy, developments in accessing computing capabilities, such as Computational Grids, will also allow the development of implementations of virtual organizations that exploit the capabilities of the Grid. Virtual high performance computing laboratory would be one of this kind of organizations. Agents can be used in the user interface to manage the information of all the components in the laboratory, such as applications, peoples, and resources and handle the user actions to operate on the Grid or cooperate with other users. Agent Multi-function Integration. Many functions in the Grid can be implemented by MAS. For example, in DPSS system, agents are autonomous adaptable monitors, managers, information aggregates and filters. Multiple functions are integrated in one agent. This can decrease the complexity of the system. The more important is that information sharing can be implemented by integration. For example, the monitoring data is the key to diagnosis and performance scheduling. Dynamic function integration for agents are also important. That all functions are integrated in the agents statically will occupy too much system resources. Some functions may be not necessary to the system running all the time. Message-driven approach can be used to change agent functions dynamically for messages are the most active components after the agent has been started up. Agent-Based Distributed System Management. In the DPSS, agent system can keep track of all components within the system. Also it can restart any component that has crashed, including one of the other agents, to achieve fault tolerance. This is a typical example of agent-based distributed system management. Distributed information management is another important aspect. In the Grid, this includes the information of users, applications, tools, services and resources as well as related dynamic information such as who are online, which applications are running, and how much the resources are being used. Agent-Based Monitoring and Diagnosis. Monitoring and diagnosis techniques have been developed in many agent applications like EDEM, Guardian, SNMP in Table 2 and Netlogger in Table 4. Event-based monitoring techniques have been widely applied to construct a comprehensive view of the overall operations of all the elements in the system to determine exactly what is happening. The software infrastructure of the Grid will be extremely complex distributed software system. The developer must take trade-off between the efficiency and completeness. The complete monitoring of the whole Grid, especially the execution monitoring of the applications, will consume many system resources and only a small part of the monitoring data is useful to diagnosis and other Grid services. Research on the ways to achieve monitoring efficiency is essential to the implementation of Grid monitoring service. Diagnosis can be achieved on the basis of the monitoring data. It can learn from the normal states of the system and find or predict the problems that are or will be in the running system. The techniques of pattern recognition [Morrill1998] and data mining [Han1996] can be used to do fault detection or prediction. When many applications are running on the multi-processors at the same time, it will be difficult to distinguish where the problem is. Exist works often focus on special context, so new algorithms and tools should be developed to deal with this situation. Agent-Aided Performance Modeling. Performance analysis, prediction and scheduling are important services in the Grid. To analysis the performance of the Using Software Agents in Computational Grids (Draft) Page 37 of 45 application, the related performance model must be provided by the developer, which is a static description of the application performance. For example, in the AppLeS project, there are three general sources of information: Network Weather Service, User Interface, and Performance Models. One analysis method is supported by one format of performance model. Though there are many performance-modeling tools like POEMS [Deelman1998] and PACE [Nudd1999], development of the performance model would be not easy especially to those application developers who have no knowledge on performance evaluation of parallel and distributed applications. Agents with special purpose of performance modeling can be integrated into programming tools. They can retrieve information from the source code of the application and construct the performance model semi-autonomously. Virtual Computational Grid. A virtual Computational Grid can assist the development of new grid applications. It can simulate a grid environment and be used on debugging and tuning of the new applications. Agents can be used to model different components in the Grid. Some agent-based simulation systems can be found in the context of manufacturing, such as AARIA and CSS in Table 2. New modeling and simulation approach is needed to construct virtual grid system. 5 Conclusions This work gives a survey on using software agents in Computational Grid. The agent is a kind of developing software technology. The Grid is a new infrastructure to provide computing capabilities, which doesn’t exist yet. This work gives the summaries on both of the fields and focuses on building a bridge between them. Using advanced agent technology is sure to accelerate the development of the software infrastructure in the Grid. At the same time, new applications with new requirements will also stimulate the emergence of the new technology on software agents. References [Ardissono1999] L. Ardissono, C. Barbero, A. Goy, G. Petrone. An Agent Architecture for Personalized Web Stores. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 182-189. [Aridor1998] Y. Aridor, D. B. Lange. Agent Design Patterns: Elements of Agent Application Design. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 108-115. [Astley1998] M. Astley and G. Agha. Modular Construction and Composition of Distributed Software Architectures. Proceedings of International Symposium on Software Engineering for Parallel and Distributed Systems, Kyoto, Japan, 1998, pp. 1-11. [Atkins1996] D. E. Atkins, W. P. Birmingham, E. H. Durfee, E. J. Glover, T. Mullen, E. A. Rundensteiner, E. Soloway, J. M. Vidal, R. Wallace, and M. P. Wellman. Toward Inquiry-Based Education Through Interacting Software Agents. IEEE Computer, 29(5), 1996, pp. 69-76. [Bayardo1997] R. J. Bayardo, W. Bohrer, R. Brice, A. Cichocki, J. Fowler, A. Helal, V. Kashyap, T. Ksiezyk, G. Martin, M. Nodine, M. Rashid, M. Rusinkiewicz, R. Using Software Agents in Computational Grids (Draft) Page 38 of 45 Shea, C. Unnikrishnan, A. Unruh, and D. Woelk. InfoSleuth: Agent-based Semantic Integration of Information in Open and Dynamic Environments. Proceedings of the ACM SIGMOD International Conference on Management of Data, 1997, pp. 195-206. [Berman1996] F. Berman, R. Wolski, S. Figueira, J. Schopf, and G. Shao. Application-Level Scheduling on Distributed Heterogeneous Networks. Proceedings of Supercomputing ’96, 1996. [Bigus1998] J. P. Bigus, and J. Bigus. Constructing Intelligent Agents with Java: A Programmer’s Guide to Smarter Applications. Wiley Computer Publishing, 1998. [Booch1999] G. Booch, I. Jacobson and J. Rumbaugh. The Unified Modeling Language User Guide. Addison-Wesley Object Technology Series, 1999. [Boone1998] G. Boone. Concept Features in Re:Agent, an Intelligent Email Agent. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 141-148. [Bradshaw1997] J. M. Bradshaw (ed.). Software Agents. The AAAI Press/The MIT Press, 1997. [Brazier1999] F. M. T. Brazier, C. M. Jonker, J. Treur, and N. J. E. Wijngaards. Deliberate Evolution in Multi-Agent Systems (extended abstract). Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 356-357. [Brooks1997] C. Brooks, B. Tierney, and W. Johnston. JAVA Agents for Distributed System Management. LBNL Report, 1997. [Brown1998] A. W. Brown, and K. C. Wallnau. The Current State of CBSE. IEEE Software, 15(5), 1998, pp. 37-46. [Casanova1998] H. Casanova, and J. Dongarra. Applying NetSolve’s NetworkEnabled Server. IEEE Computational Science & Engineering, 5(3), 1998, pp. 57-67. [Charlton1999] P. Charlton, Y. Arafa, and E. Mamdani. Development and Deployment of a Multi-agent System for Public Service Access. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 404-405. [Chenh1996] H. Chen, A. Houston, J. Nunamaker, and J. Yen. Toward Intelligent Meeting Agents. IEEE Computer, 29(8), 1996, pp. 62-70. [Chenl1998] L. Chen, and K. Sycara. WebMate : A Personal Agent for Browsing and Searching. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 132-139. [Chenq1998] Q. Chen, P. Chundi, U. Dayal, and M. Hsu. Dynamic Software Agents for Business Intelligence Applications. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 453-454. [Chorafas1998] D. N. Chorafas. Agent Technology Handbook. McGraw-Hill, 1998. [Ciancarini1997] P. Ciancarini, R. Tolksdorf, F. Vitali, D. Rossi, and A. Knoche. Coordinating Multiagent Applications on the WWW: A Reference Architecture. IEEE Transactions on Software Engineering, 24(5), 1998, pp. 362-375. Using Software Agents in Computational Grids (Draft) Page 39 of 45 [Cicalese1999] F. Cicalese, A. di Nola, and V. Loia. A Fuzzy Evolutionary Framework for Adaptive Agents. Proceedings of the 1999 ACM Symposium on Applied Computing, 1999, pp. 233-237. [Clement1999] B. J. Clement, and E. H. Durfee. Top-Down Search for Coordinating the Hierarchical Plans of Multiple Agents. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 252-259. [Collins1998] J. Collins, B. Youngdahl, S. Jamison, B. Mobasher, and M. Gini. A Market Architecture for Multi-Agent Contracting. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 285-292. [Condor1999] Condor Team. Condor Version 6.1.7 Manual. University of Wisconsin–Madison, June 16, 1999. [Corchado1997] J. M. Corchado, B. Lees, and N. Rees. A Multi-agent System “Test Bed” for Evaluating Autonomous Agents. Proceedings of ACM 1st Annual Conference on Autonomous Agents, 1997, pp. 386-393. [Cost1999] R. S. Cost, T. Finin, Y. Labrou, X. Luan, Y. Peng, I. Soboroff. Agent Development with Jackal. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 358-359. [Cremonini1999] M. Cremonini, A. Omicini, and F. Zambonelli. Modelling Network Topology and Mobile Agent Interaction: An Integrated Framework. Proceedings of the 1999 ACM Symposium on Applied Computing, 1999, pp. 410-412. [Das1998] S. Das, A. Caglayan, and P. Gonsalves. Increasing Agent Autonomy in Dynamic Environments. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 309-316. [Davison1998] R. G. Davison, J. J. Hardwicke, M. D. J. Cox. Applying the Agent Paradigm to Network Management. BT Technology Journal, 16(3), July 1998, pp. 86-93. [Deelman1998] E. Deelman, A. Dube, A. Hoisie, Y. Luo, R. L. Oliver, D. SundaramStukel, H. Wasserman, V. S. Adve, R. Bagrodia, J. C. Browne, E. Houstis, O. Lubeck, J. Rice, P. J. Teller, and M. K. Vernon. POEMS: End-to-end Performance Design of Large Parallel Adaptive Computational Systems. Proceedings of the ACM 1st International Workshop on Software and Performance, 1998, pp. 18-30. [Doorenbos1997] R. B. Doorenbos, O. Etzioni, and D. S. Weld. A Scalable Comparison-Shopping Agent for the World-Wide Web. Proceedings of ACM 1st Annual Conference on Autonomous Agents, 1997, pp. 39-48. [Eriksson1998] H. Eriksson, and M. Penker. UML Toolkit. Wiley Computer Publishing, 1998. [Falchuk1998] B. Falchuk, and A. Karmouch. Visual Modeling for Agent-Based Applications. IEEE Computer, 31(12), 1998, pp. 31-38. [Fano1998] A. E. Fano. Shopper’s Eye: Using Location-based Filtering for a Shopping Agent in the Physical World. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 416-421. Using Software Agents in Computational Grids (Draft) Page 40 of 45 [Finin1994] T. Finin, R. Fritzson, D. McKay, and R. McEntire. KQML as an Agent Communication Language. Proceedings of the 3rd International Conference on Information and Knowledge Management, 1994, pp. 456-463. [Foner1997] L. N. Foner. Entertaining Agents: A Sociological Case Study. Proceedings of ACM 1st Annual Conference on Autonomous Agents, 1997, pp. 122-129. [Forbus1998] K. D. Forbus, and S. E. Kuehne. RoboTA (poster): An Agent Colony Architecture for Supporting Education. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 455-456. [Foster1998] I. Foster, and C. Kesselman. The GRID: Blueprint for a New Computing Infrastructure. Morgan-Kaufmann, July 1998. [Foster1999] I. Foster, C. Kesselman, C. Lee, R. Lindell, K. Nahrstedt, and A. Roy. A Distributed Resource Management Architecture that Supports Advance Reservations and Co-Allocation. International Workshop on Quality of Service, 1999. [Franklin1996] S. Franklin, A. Graesser. Is it an agent, or just a program? Proceedings 3rd International Workshop on Agent Theories, Architectures and Languages, Budapest, Hungary, 1996, pp. 193-206. [Friedman1997] B. Friedman, and H. Nissenbaum. Software Agents and User Autonomy. Proceedings of ACM 1st Annual Conference on Autonomous Agents, 1997, pp. 466-469. [Gilbert1995] N. Gilbert, and R. Conte (eds). Artificial Societies. UCL Press, London, 1995. [Goldman1995] S. Goldman, R. Nagel, and K. Preiss. Agile Competitors and Visual Organizations. Van Nostrand Reinhold, New York, 1995. [Gustafson1998] T. Gustafson, J. B. Schafer, and J. Konstan. Agents in their Midst: Evaluating User Adaptation to Agent-Assisted Interfaces. Proceedings of the 1998 International Conference on Intelligent User Interfaces, 1998, pp. 163-170. [Gustavsson1999] R. Gustavsson. Agents with Power. Communications of the ACM, 42(3), 1999, pp. 41-47. [Han1996] J. Han. Data Mining Techniques. Proceedings of the 1996 ACM SIGMOD International Conference on Management of Data, 1996, p545. [Hayden1999] S. C. Hayden, C. Carrick, and Q. Yang. A Catalog of Agent Coordination Patterns. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 412-413. [Heckman1998] C. Heckman, and J. O. Wobbrock. Liability for Autonomous Agent Design. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 392-399. [Heckman1999] C. Heckman, and A. Roetter. Designing Government Agents for Constitutional Compliance. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 299-305. [Hofmann1998] M. O. Hofmann, A. McGovern and K. R. Whitebread. Mobile Agents on the Digital Battlefield. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 219-225. Using Software Agents in Computational Grids (Draft) Page 41 of 45 [Holmback1999] H. Holmback, M. Greaves, J. Bradshaw. A Pragmatic Principle for Agent Communication. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 368-369. [Hood1998] C. S. Hood, and C. Ji. Intelligent Agents for Proactive Fault Detection. IEEE Internet Computing, 2(3), 1998, pp.65-72. [Jacobson1999] I. Jacobson, G. Booch and J. Rumbaugh. The Unified Software Development Process. Addison-Wesley Object Technology Series, 1999. [Jain1999] A. K. Jain, M. Aparicio IV, and M. P. Singh. Agents for Process Coherence in Virtual Enterprises. Communications of the ACM, 42(3), 1999, pp. 62-69. [Jennings1998a] N. R. Jennings and M. J. Wooldridge (eds). Agent Technology: Foundations, Applications, and Markets. Springer-Verlag, 1998. [Jennings1998b] N. R. Jennings, T. J. Norman, and P. Faratin. ADEPT: An Agentbased Approach to Business Process Management. ACM SIGMOD Record, 27(4), 1998, pp. 32-39. [Jennings1999] N. R. Jennings, P. Faratin, T. J. Norman, P. O'Brien and B. Odgers. Autonomous Agents for Business Process Management. International Journal of Applied Artificial Intelligence (to appear), 1999. [Kaminka1998] G. Kaminka, and M. Tambe. A Synergy of Agent Components: Social Comparison for Failure Detection. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 459-460. [Kaminka1999] G. Kaminka and M. Tambe. I’m OK, You’re OK, We’re OK: Experiments in Distributed and Centralized Socially Attentive Monitoring. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 213-220. [Karjoth1997] G. Karjoth, D. B. Lange, and M. Oshima. A Security Model for Aglets. IEEE Internet Computing, 1(4), 1997, pp. 68-77. [Karnik1998] N. M. Karnik, and A. R. Tripathi. Design Issues in Mobile Agent Programming Systems. IEEE Concurrency, 6(3), 1998, pp. 52-61. [Kendall1998] E. A. Kendall, P. V. M. Krishna, C. V. Pathak, C. B. Suresh. Patterns of Intelligent and Mobile Agents. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 92-99. [Kiniry1997] J. Kiniry, and D. Zimmerman. A Hands-on Look at Java Mobile Agents. IEEE Internet Computing, 1(4), 1997, pp. 21-30. [Klein1999] M. Klein, and C. Dellarocas. Exception Handling in Agent Systems. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 62-68. [Kotz1997] D. Kotz, R. Gray, S. Nog, D. Rus, S. Chawla, and G. Cybenko. Agent TCL: Targeting the Needs of Mobile Computers. IEEE Internet Computing, 1(4), 1997, pp. 58-67. [Larsson1998] J. E. Larsson, and B. Hayes-Roth. Guardian: An Intelligent Autonomous Agent for Medical Monitoring and Diagnosis. IEEE Intelligent Systems & Their Applications, 13(1), 1998, pp.58-64. Using Software Agents in Computational Grids (Draft) Page 42 of 45 [Lester1997] J. C. Lester, S. A. Converse, S. E. Kahler, S. ToddBarlow, B. A. Stone, and R. S. Bhogal. The Persona Effect Affective Impact of Animated Pedagogical Agents. CHI '97 Conference Proceedings on Human Factors in Computing Systems, 1997, pp. 359-366. [Lieberman1997] H. Lieberman. Autonomous Interface Agents. CHI '97 Conference Proceedings on Human Factors in Computing Systems, 1997, pp. 67-74. [Lieberman1998] H. Lieberman. Integrating User Interface Agents with Conventional Applications. Proceedings of the 1998 International Conference on Intelligent User Interfaces, 1998, pp. 39-46. [Lieberman1999] H. Lieberman, B. A. Nardi, and D. Wright. Training Agents to Recognize Text by Example. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 116-122. [Lin1994] G. Y. Lin, and J. J. Solberg. An Agent-based Flexible Routing Manufacturing Control Simulation System. Proceedings of the1994 Conference on Winter Simulation, 1994, pp. 970-977. [Litzkow1997] M. Litzkow, T. Tannenbaum, J. Basney, and M. Livny. Checkpoint and Migration of UNIX Processes in the Condor Distributed Processing System. Technical Report #1346, University of Wisconsin-Madison Computer Sciences, April 1997. [Liu1998] J. Liu, and H. Qin. Behavioral Self-organization in Lifelike Agents. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 254-260. [Maes1995] P. Maes. Artificial Life Meets Entertainment: Lifelike Autonomous Agents. Communications of the ACM, 38(11), 1995, pp. 108-114. [Malone1994] T. W. Malone, K. Crowston. The Interdisciplinary Study of Coordination. ACM Computing Survey, 26(1), 1994, pp. 87-119. [Martin1998] J. Martin, and J. J. Odell. Object-Oriented Method: A Foundation (UML Edition). Prentice Hall, 1998. [Maulsby1997] D. Maulsby, and I. H. Witten. Teaching Agents to Learn: From User Study to Implementation. IEEE Computer, 30(11), 1997, pp. 36-44. [Meer1998] H. de Meer, J. Richter, A. Puliafito, and O. Tomarchio. Tunnel Agents for Enhanced Internet QoS. IEEE Concurrency, 6(2), 1998, pp. 30-39. [Métayer1998] D. L. Métayer. Describing Software Architecture Styles Using Graph Grammars. IEEE Transactions on Software Engineering, 24(7), 1998, pp. 521533. [Moran1997] D. B. Moran, A. J. Cheyer, L. E. Julia, D. L. Martin, and S. Park. Proceedings of the 1997 International Conference on Intelligent User Interfaces, 1997, pp. 61-68. [Moreira1997] D. de A. Moreira, and L. T. Walczowski. AGENTS: A Distributed Client-server System for Leaf Cell Generation. ACM Transactions on Design Automation of Electronic Systems, 2(1), 1997, pp. 42-61. [Morrill1998] J. P. Morrill. Distributed Recognition of Patterns in Time Series Data. Communications of the ACM, 41(5), 1998, pp. 45 - 51. Using Software Agents in Computational Grids (Draft) Page 43 of 45 [Moukas1998] A. Moukas, and P. Maes. Amalthaea: An Evolving Multi-Agent Information Filtering and Discovery System for the WWW. Journal of Autonomous Agents and Multi-Agent Systems, 1(1), 1998, pp. 59-88. [Ndumu1999] D. T. Ndumu, H. S. Nwana, L. C. Lee, J. C. Collis. Visualising and Debugging Distributed Multi-agent Systems. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 326-333. [Nudd1999] G. R. Nudd, D. J. Kerbyson, E. Papaefstathiou, S. C. Perry, J. S. Harper, and D. V. Wilcox. PACE – A Toolset for the Performance Prediction of Parallel and Distributed Systems. High Performance Systems (to appear), Sage Science Press, 1999. [Nwana1996] H. S. Nwana and N. Azarmi (eds). Software Agents & Soft Computing: Concepts and Applications. Springer-Verlag as Lecture Notes in Artificial Intelligence Volume 1198, 1997. [Nwana1997] H. S. Nwana. Intelligent Software Agents on the Internet. http://www.hermans.org/agents/index.html. [Nwana1998] H. S.Nwana, J. Rosenschein, T. Sandholm, C. Sierra, P. Maes, and R. Guttmann. Agent-Mediated Electronic Commerce: Issues, Challenges and Some Viewpoints. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 189-196. [O’Leary1997] D. E. O’Leary, D. Kuokka, and R. Plant. Artificial Intelligence and Virtual Organizations. Communications of the ACM, 40(1), 1997, pp. 52-59. [Park1999] S. Park, E. H. Dutfee, W. P. Birmingham. An Adaptive Agent Bidding Strategy Based on Stochastic Modeling. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 147-153. [Parunak1997] H. V. D. Parunak, J. Sauter, and S. Clark. Toward the Specification and Design of Industrial Synthetic Ecosystems. Proceedings of 14th International Workshop on Agent Theories, Architectures, and Languages, 1997. [Parunak1998] H. V. D. Parunak. Practical and Industrial Applications of DAI. In G. Weiss (ed.), Introduction to Distributed Artificial Intelligence, MIT Press (to appear), 1998. [Parunak1999] H. V. D. Parunak. The AARIA Agent Architecture: From Manufacturing Requirements to Agent-Based System Design. Integrated Computer-Aided Engineering (to appear), 1999. [Pell1997] B. Pell, D. E. Bernard, S. A. Chien, E. Gat, N. Muscettola, P. P. Nayak, M. D. Wagner, and B. C. Williams. An Autonomous Spacecraft Agent Prototype. Proceedings of ACM 1st Annual Conference on Autonomous Agents, 1997, pp. 253-261. [Peters1998] R. Peters, A. Graeff, and C. Paul. Integrating Agents into Virtual Worlds. Proceedings of the Workshop on New Paradigms in Information Visualization and Manipulation, 1998, pp. 69-74. [Pfitzmann1997] A. Pfitzmann, B. Pfitzmann, M. Schunter and M. Waidner. Trusting Mobile User Devices and Security Modules. IEEE Computer, 30(2), 1997, pp. 61-68. Using Software Agents in Computational Grids (Draft) Page 44 of 45 [Preist1999] C. Preist. Commodity Trading Using an Agent-Based Iterated Double Auction. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 131-138. [Qiu1999] Z. Qiu, M. Tamble, and H. Jung. Towards Flexible Negotiation in Teamwork. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 400-401. [Quatrani1998] T. Quatrani. Visual Modeling with Rational Rose and UML. AddisonWesley Object Technology Series, 1998. [Rickel1998] J. Rickel and W. L. Johnson. STEVE: A Pedagogical Agent for Virtual Reality. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 332-333. [Rist1997] T. Rist, E. André, and J. Müller. Adding Animated Presentation Agents to the Interface. Proceedings of the 1997 International Conference on Intelligent User Interfaces, 1997, pp. 79-86. [Rodriguez-Aguilar1998] J. A. Rodriguez-Aguilar, F. J. Martin, P. Noriega, P. Garcia, and C. Sierra. Competitive Scenarios for Heterogeneous Trading Agents. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 293-300. [Rogers1999] S. Rogers, C. N. Fiechter, P. Langley. An Adaptive Interactive Agent for Route Advice. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 198-205. [Rumbaugh1999] J. Rumbaugh, I. Jacobson, and G. Booch. The Unified Modeling Language Reference Manual. Addison-Wesley Object Technology Series, 1999. [Sahai1998] A. Sahai, and C. Morin. Mobile Agents for Enabling Mobile User Aware Applications. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 205-211. [Sarwar1998] B. M. Sarwar, J. A. Konstan, A. Borchers, J. Herlocker, B. Miller, and J. Riedl. Using Filtering Agents to Improve Prediction Quality in the GroupLens Research Collaborative Filtering System. Proceedings of the ACM 1998 Conference on Computer Supported Cooperative Work, 1998, pp. 345-354. [Sen1997] S. Sen. Developing an Automated Distributed Meeting Scheduler. IEEE Expert/Intelligent Systems & Their Applications, 12(4), 1997, pp. 41-45. [Shaw1999] E. Shaw, W. L. Johnson, and R. Ganeshan. Pedagogical Agents on the Web. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 283-290. [Singh1998] M. P. Singh. Agent Communication Languages: Rethinking the Principles. IEEE Computer, 31(12), 1998, pp. 40-47. [Sloman1999] A. Sloman, and B. Logan. Building Cognitively Rich Agents Using the SIM_Agent Toolkit. Communications of the ACM, 42(3), 1999, pp. 71-77. [Strippgen1999] S. Strippgen, and K. Peters. 'The other way round!': Collaborative Communication with Agents. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 108-115. [Tarumi1997] H. Tarumi, K. Kida, Y. Ishiguro, K. Yoshifu, and T. Asakura. WorkWeb System — Multi-Workflow Management with a Multi-Agent Using Software Agents in Computational Grids (Draft) Page 45 of 45 System. Proceedings of the International ACM SIGGROUP Conference on Supporting Group Work: the Integration Challenge, 1997, pp. 299-308. [Tesauro1998] G. J. Tesauro, and J. O. Kephart. Foresight-Based Pricing Algorithms in an Economy of Software Agents. Proceedings of 1st International Conference on Information and Computation Economies, 1998, pp. 37-44. [Tierney1998] B. Tierney, W. Johnston, B. Crowley, G. Hoo, C. Brooks, and D. Gunter. The NetLogger Methodology for High Performance Distributed Systems Performance Analysis. Proceeding of IEEE High Performance Distributed Computing Conference, July 1998. [Virdhagriswaran1995] S. Virdhagriswaran, D. Osisek, and P. O’Connor. Standardizing Agent Technology. StandardView, 3(3), 1995, pp. 96-101. [Vulkan1998] N. Vulkan, and N. R. Jennings. Efficient Mechanisms for the Supply of Services in Multi-Agent Environments. Proceedings of 1st International Conference on Information and Computation Economies, 1998, pp.1-10. [Wang1997] H. Wang, and C. Wang. Intelligent Agents in the Nuclear Industry. IEEE Computer, 30(11), 1997, pp. 28-34. [Washington1998] R. Washington. Markov Tracking for Agent Coordination. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 70-77. [Wong1999] D. Wong, N. Paciorek, and D. More. Java-based Mobile Agents. Communications of the ACM, 42(3), 1999, pp. 92-102. [Wooldridge1998] M. Wooldridge, and N. R. Jennings. Pitfalls of Agent-Oriented Development. Proceedings of ACM 2nd Annual Conference on Autonomous Agents, 1998, pp. 385-391. [Wooldridge1999] M. Wooldridge, N. R. Jennings, and D. Kinnyt. A Methodology for Agent-Oriented Analysis and Design. Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 69-76. [Yap1999] M. Yap, and N. W. Keong. Are Life-Like Characteristics Useful for Autonomous Agents? Proceedings of ACM 3rd Annual Conference on Autonomous Agents, 1999, pp. 336-337. [Zettlemoyer1999] L. S. Zettlemoyer, R. St. Amant, M. S. Dulberg. IBOTS: Agent Control Through the User Interface. Proceedings of the 1999 International Conference on Intelligent User Interfaces, 1999, pp. 31-37. [Zhou1997] L. Zhou, and S. Franklin. Modeling an Environment: Agents in Character Feature Extraction. Proceedings of ACM 1st Annual Conference on Autonomous Agents, 1997, pp. 178-184.