40
Slovak Academy of Sciences Institute of Informatics Negotiation and Communication in Agent Systems Project of the PhD. Thesis January 2001, Bratislava PhD Student: Mgr. Michal Laclavik

Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

Slovak Academy of Sciences Institute of Informatics

Negotiation and Communication in Agent Systems Project of the PhD. Thesis

January 2001, Bratislava PhD Student: Mgr. Michal Laclavik

Page 2: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

2

I would like to thank Ing. Ladislav Hluchý PhD for useful advices and professional comments on this paper.

Page 3: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

3

Content 1 Introduction................................................................................. 5 2 Negotiation and Communication in Multi-Agent Systems ........... 7

2.1 Agent Based Systems..............................................................................7 AgentBuilder® Reticular Systems, Inc....................................................................7 Aglets -IBM Japan ................................................................................................8 Concordia - Mitsubishi Electric Information Technology Center America ....................8 Grasshopper IKV++ .............................................................................................8 Intelligent Agent Library Bits & Pixels.....................................................................8 Jumping Beans Ad Astra Engineering, Inc...............................................................8 Microsoft Agents Microsoft Corporation ..................................................................9 Via – Kinetoscope.................................................................................................9 Voyager Object Space...........................................................................................9 The Agent Building Shell: Programming Cooperative Enterprise Agents Enterprise Integration Laboratory University of Toronto ........................................................ 10 Agent Factory University College Dublin, Ireland ................................................... 10 Agent Tcl - Dartmouth University......................................................................... 10 Architecture type-based Development Environment (ADE) University of Potsdam .... 11 Bee-gent - Toshiba Corporation Systems and Software Research Laboratories......... 11 Bond Distributed Object System Purdue University................................................ 11 DECAF Agent Framework University of Delaware .................................................. 12 dMARS Australian Artificial Intelligence Institute Ltd.............................................. 12 EXCALIBUR Technical University of Berlin, German National Research Center for Information Technology, Research Institute for Computer Architecture and Software Technology........................................................................................................ 12 GenA Centre de Recherche Informatique de Montreal (CRIM) ................................ 12 Gypsy Technical University of Vienna ................................................................... 13 Hive The Media Lab Massachusetts Institute of Technology ................................... 13 JAFMAS University of Cincinnati ........................................................................... 13 JATLite Stanford University ................................................................................. 13 JATLiteBean Site University of Otago ................................................................... 14 JIAC Site Technische Universitat Berlin................................................................. 14 Knowbot® System Software CNRI ....................................................................... 14 Mobiware Middleware Toolkit Columbia University................................................. 14 Mole University of Stuttgart................................................................................. 14 MultiAgent Systems Tool (MAST) Intelligent Systems Group, Department of Telematic Systems Engineering Technical University of Madrid.............................................. 15 Open Agent ArchitectureTM SRI International ........................................................ 15 Process Link Stanford University .......................................................................... 15 RETSINA Software Agents Group Carnegie Mellon University.................................. 15 Zeus British Telecommunications Labs ................................................................. 15

2.2 MAS Negotiation in several Applications ..............................................16 Gossip – Tryllian................................................................................................. 16 Social Interaction Framework (SIF) DFKI (German Research Institute for AI) .......... 16 Real Negotiating – InterNeg ................................................................................ 17 Kasbah Agent-mediated Electronic Commerce (AmEC) Initiative Massachusetts Institute of Technology....................................................................................... 18 The ADEPT Project ............................................................................................. 18

Page 4: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

4

2.3 Negotiation Theory ...............................................................................18 Basic Elements of Computational Negotiation ....................................................... 19 Game Theory – Model Bazar ............................................................................... 20 Negotiation Model of Goods and Services ............................................................. 21

2.4 Communication.....................................................................................22 KQML ................................................................................................................ 22 Agent Communication Language ......................................................................... 23 FIPA ACL Message Structure ............................................................................... 23

3 Negotiation Center Experiment ................................................. 24 Incorporating Decision Support Algorithms ........................................................... 25 Implemented classes .......................................................................................... 25

4 Secure Negotiation and Communication in MAS........................ 27 Security of communication .................................................................................. 27 Security of System against outside impacts .......................................................... 27 Access Rights..................................................................................................... 27 Approving Users, Agents and others - DPK Security Agent ..................................... 27

4.1 Trusting Problem ..................................................................................27 4.2 Securing of Inter-Agent Negotiation and Communication ...................28

RSA Encryption .................................................................................................. 29 5 Thesis of PhD work .................................................................... 31 6 Conclusion.................................................................................. 31 References....................................................................................... 33 Appendix A – Basic Info about Agents ........................................... 37 Appendix B - Terms and definitions ................................................ 39

Page 5: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

5

1 Introduction Today’s people try to use their time the best they can. Everyone values time much more than before. In many professions and also in everyday life people negotiate and make decisions on what to buy, where to go, or what to do. We spend too much time searching information, for negotiating and making good decision after wards. Most of this negotiating is simple or based on certain conditions. Here we see a good use of Intelligent Agents. For more information about agents see appendix A. Agent Based Systems are on very high level. These systems are designed to support migrating, sending messages, recovering, returning, or cloning. If any of Agent software or system is to be created, negotiating and decision support needs to be solved also. Many negotiation and decision support strategies are already developed and thus none of them is general and implemented in any basic agent systems. Goal is to create, theoretically describe and implement negotiation and decision support strategies that can be used in most cases in agent applications such as auctioning and many others. New information technologies invariably provide excellent opportunities for improving the efficiency and effectiveness of decision-making and negotiation through the development of novel decision support techniques [18]. However, it seems that the degree of adoption of these techniques is relatively low in the traditional negotiation and mediation community. By traditional we mean those who are involved with the art of negotiation, which are considered "practitioners of negotiation". This is possibly because they harbor a certain degree of skepticism about the usefulness of these technologies in a field that is held to be as much of an art as a science. This skepticism is also reflected by the Negotiation Journal [21], in which papers on the use of computer and communication technologies rarely appear; the notable exception being a series of six articles that appeared in April 1995. There are very few reported cases of large dedicated computer systems having been successfully used in complex international negotiations (InterNeg Project [22][23]). More often computer packages are applied to analyze the negotiation problem and determine possible offers and compromises. At the same time a very large number of people use computer and communication technologies to correspond, determine implications of decision alternatives, conduct simulation, sensitivity analysis, etc. It seems only natural to assume that these people also negotiate using these technologies. More importantly, however, the very rapid spread of computing technologies greatly expands the number of people who engage in international negotiations. These include executives, managers, bureaucrats and engineers and they must use computing technologies to negotiate. We specifically refer to those who now engage in transactions that were previously too costly to be considered. Their companies do not hire experts or send employees to conduct face-to-face negotiation. Their markets were local earlier but now they are increasingly becoming global. A similar phenomenon appears with respect to

Page 6: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

6

the cooperation between remote small communities, local and central governments, aid agencies, large corporations that make deals with small suppliers, etc.

The first chapter overviews Negotiation And Communication in Agent Based Systems, its applications, Theory of Negotiation and communication. In this chapter is our comments and view of this problematic too. In theory we focus on field of our feature research.

The second chapter describes our negotiation Experiment where we use cut cake algorithm.

Last chapter of this work is devoted to securing and trusting of inter-agent negotiation and communication.

The main Goal of the work is to focus on generalization of negotiation algorithm and create or remake negotiation algorithms, which will make negotiation safer and more trusted for all kinds of negotiation. Our main goal is to make Negotiation safe and fair, as negotiation should be.

Page 7: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

7

2 Negotiation and Communication in Multi-Agent Systems

2.1 Agent Based Systems

This chapter describes the based system from negotiation and communication perspective. We focus mainly on Java based systems but we give also few Multi-Agent System (MAS) based on a different platform. Over 80% of recent MAS systems are based on Java that is the most appropriate language for Agents. We build our experiments on IBM Aglets [25] agent system. However, the research and results will be useful for any other Java based agent system. The following reasons determine Java Programming Language as an ideal programming language suitable for our purposes: Java supports secure migration of classes. Interfaces to systems “speaking” KQML [51] are available for Java. Java is platform independent. SQL interfaces to databases are implemented.

There are development environments available for Java. We will mention some of them below. AgentBuilder® Reticular Systems, Inc. AgentBuilder® [24] is an integrated tool suite for constructing intelligent software agents. AgentBuilder consists of two major components - the Toolkit and the Run-Time System. The AgentBuilder Toolkit includes tools for managing the agent-based software development process, analyzing the domain of agent operations, designing and developing networks of communicating agents, defining behaviors of individual agents, and debugging and testing agent software. The Run-Time System includes an agent engine that provides an environment for execution of agent software. Agents constructed using AgentBuilder communicate using the Knowledge Query and Manipulation Language (KQML) and support the performatives defined for KQML. In addition, AgentBuilder allows the developer to define new inter-agent communications commands that suit his particular needs. All components of both the AgentBuilder Toolkit and the Run-Time System are implemented in Java. This means that agent development can be accomplished on any machine or operating system that supports Java and has a Java development environment. Likewise, the agents created with the AgentBuilder Toolkit are Java programs so they can be executed on any Java virtual machine. Software developers can create powerful intelligent agents in Java that execute on a wide variety of computer platforms and operating systems. The AgentBuilder toolkit is designed to provide the agent software developer with an integrated environment for quickly and easily constructing intelligent agents and agent-based software. On Agent Builder site [24] we can find demo where simple condition based negotiation is used for shopping goods.

Page 8: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

8

Aglets -IBM Japan An aglet [25] is a Java object that can move from one host on the Internet to another. That is, an aglet that executes on one host can suddenly halt execution, dispatch to a remote host, and resume execution there. When the aglet moves, it takes along its program code as well as its state (data). A built-in security mechanism makes it safe for a computer to host untrusted aglets [14]. Aglets are still under development by IBM, which is promising for implementing new features. We decide to use aglets for our experiments. Aglets do not support KQML but using IBM JKQML class can solve this. [26] Aglets are based on Java that is also very suitable for us. Concordia - Mitsubishi Electric Information Technology Center America CONCORDIA [28] is a full-featured framework for development and management of network-efficient mobile agent applications for accessing information anytime, anywhere and on any device supporting Java. With Concordia, applications can: - Process data at the data source. - Process data even if the user is disconnected from the network. - Access and deliver information across multiple networks (LANs, Intranets and Internet). - Use wire-line or wireless communication. - Support multiple client devices, such as Desktop Computers, PDAs, Notebook Computers, and Smart Phones. Concordia is like most of Java based agents systems. What seems to be very useful is agent ability to work disconnected. This feature can be usable in agent Negotiation and communication. Grasshopper IKV++ Grasshopper [30] is the first mobile agent environment, which is compliant to the Mobile Agent System Interoperability Facility (MASIF) standard. The MASIF standard is built on top of CORBA, thus providing the integration of the traditional client/server paradigm and mobile agent technology. The standardization ensures that agent applications will be open towards other agent environments. Grasshopper allows one to build agent-enabled distributed applications, which take advantage of local high-speed communication and local high-speed data access. The most interesting feature of Grasshopper is that it follow OMG’s MASIF standard. [31] Intelligent Agent Library Bits & Pixels The Intelligent Agent Library [32] provides an intelligent agent framework that includes extensive facilities for agent communications and for building larger agent assemblies. There is a KQML-based agent framework and many examples illustrating agents that perform activities for web-enabled applications. The library also supports mobile agents. Libraries are available from Bits & Pixels, 8601 Del Mesa, Austin, Texas 78759 Jumping Beans Ad Astra Engineering, Inc. Jumping Beans [33] is a software framework that allows developers to mobilize a Java application such that it can move from one host to another during its lifetime. The mobilized software moves from host to host, along with the executable, data, state, resources and other essential information. This allows it to move to and execute on hosts that did not have the application previously installed. Jumping Beans include good security manager where you can mark untrusted hosts for migrating, communication and negotiation. Security system of jumping beans does not cover securing of inter-agent communication.

Page 9: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

9

Microsoft Agents Microsoft Corporation Microsoft Agent [34] is a set of programmable software services that supports the presentation of interactive animated characters within the Microsoft Windows interface. Developers can use characters as interactive assistants to introduce, guide, entertain, or otherwise enhance their Web pages or applications in addition to the conventional use of windows, menus, and controls. Microsoft Agent enables software developers and Web authors to incorporate a new form of user interaction, known as conversational interfaces, that leverages natural aspects of human social communication. In addition to mouse and keyboard input, Microsoft Agent includes optional support for speech recognition so applications can respond to voice commands. Characters can respond using synthesized speech, recorded audio, or text in a cartoon word balloon. The conversational interface approach facilitated by the Microsoft Agent services does not replace conventional graphical user interface (GUI) design. Instead, character interaction can be easily blended with the conventional interface components such as windows, menus, and controls to extend and enhance your application's interface. Microsoft Agent's programming interfaces make it easy to animate a character to respond to user input. Animated characters appear in their own window, providing maximum flexibility for where they can be displayed on the screen. Microsoft Agent includes an ActiveX control that makes its services accessible to programming languages that support ActiveX, including Web scripting languages such as VisualBasic Scripting Edition (VBScript). This means that character interaction can be programmed from HTML pages. Microsoft Agent requires Microsoft Windows, Internet Explorer and ActiveX. The most powerful feature is voice recognition. Voice recognition is important in person-to-agent communication and negotiation. Via – Kinetoscope The Via System [35] is written entirely in Java and allows developers to build intelligent agent features into existing applications, Web sites and intranets. Via contains tools for creating agent tasks, logic, and user interfaces. It also includes advanced features for supporting system-wide distribution, persistence, and scalability. Via also gives possibility to make communication events for agents based on Email, Web, Database or other event maker. Voyager Object Space Voyager [36] is a 100% Java agent-enhanced Object Request Broker (ORB). It combines the power of mobile autonomous agents and remote method invocation with complete CORBA support and comes complete with distributed services such as directory, persistence, and publish subscribe multicast. Voyager enables Java programmers to quick and easy creation of sophisticated network applications using both traditional and agent-enhanced distributed programming techniques. Voyager uses regular Java message syntax to construct remote objects, send them messages, and move them between applications. Voyager allows agents (i.e., autonomous objects) to move themselves and continue executing as they move. In this way, agents can act independently on the behalf of a client, even if the client is disconnected or unavailable. This approach is particularly valuable in any type of workflow or resource automation. Voyager is combining CORBA and Agents. It also supports XML as language for exchanging data in communication.

Page 10: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

10

The Agent Building Shell: Programming Cooperative Enterprise Agents Enterprise Integration Laboratory University of Toronto This project is developing an Agent Building Shell [37] that provides several reusable layers of languages and services for building agent systems: coordination and communication languages, description logic-based knowledge management, cooperative information distribution, organization modeling and conflict management. The approach is being used to develop multi-agent applications in the area of manufacturing enterprise supply chain integration. This system include its own negotiation support between agents using KQML Agent Factory University College Dublin, Ireland Agent Factory [38] is an agent prototyping environment. It features the following:

• Written in Smalltalk-80 (supports Mac, PC, UNIX) • Distribution through TCP/IP • Web interface provided • Agents are reactive, social, pro-active, autonomous and intentional • Agents may be mobile • Agent model allows configuration of:

• Mental state architecture (the developer is free to construct any mental state architecture; however, the inclusion of beliefs and commitments is expected)

• Agent communication language (default is Teanga ACL, but KQML and FIPA ACL supported)

• Intentional reasoner (commitment management system) • Agent designs require initial mental state, perceptors, actuators

Agent Tcl - Dartmouth University Agent Tcl [39] is a tool for developing transportable agent systems. The transportable agents are created using the Tool Command Language (Tcl). Tcl is an embeddable scripting language that is highly portable, highly popular and freely available. The agents migrate from machine to machine using the jump command. Execution resumes on the destination machine at the statement immediately after the jump is completed. Modifications to the Tcl core allow the capture of the complete internal state of an executing script. Migrating agents are encrypted and authenticated using Pretty Good Privacy (PGP). Access restrictions are imposed on the agent based on its authenticated identity. Safe Tcl enforces the access restrictions. In addition to migration, Agent Tcl supports message passing. Agents can clone themselves and the system provides rudimentary security features. Each agent on a particular machine has a unique integer ID and a unique symbolic name. Agents specify a recipient agent by specifying the recipient's machine and either the recipient's integer ID or the recipient's symbolic name. The research project is addressing issues involving debugging, privacy, security, mobile agent management, networking resources and performance. Agent Tcl has two components: a modified Tcl interpreter that executes Tcl agents and a server, which runs on every machine that can receive a transportable agent. TCL is one of first Multi-Agent Systems. Its secure migrating focuses us on researching and developing secure inter-agent communication and negotiation.

Page 11: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

11

Architecture type-based Development Environment (ADE) University of Potsdam Software agents and agent systems are modeled object-oriented way using the latest findings of software architecture. This approach [40] describes software architecture as a system of components whose interactions are realized via connectors. With the architecture-based methodology, theoretical fundamentals for the implementation of computer-independent platforms for agent programming have been found. Existing platforms, such as IBM Aglets or Objectspace Voyager, do not support an architecture-based approach and environment when developing agent application systems. As a result these platforms miss the explicit modeling of agent interactions, or allow only a very limited number of property classes. The advantages of a substantiated methodology of an architecture type-based approach are lost while transforming them onto existing platforms. To map the mental models and systems onto agent platforms, an architecture type-based agent development environment for the modeling, analysis and construction of agent application systems for various agent platforms called ADE - "Architecture type-based Development Environment" is being developed. This platform is included in the overview because it can integrate most of widely used agent systems. Bee-gent - Toshiba Corporation Systems and Software Research Laboratories Bee-gent [41] is a new type of software development framework in that it is a 100% pure agent system. As opposed to other systems, which make only some use of agents, Bee-gent completely "Agentifies" the communication that takes place between software applications. The applications become agents, and agents carry all messages. Thus, Bee-gent allows developers to build flexible open distributed systems that make optimal use of existing applications. The Bee-gent framework is comprised of two types of agents. "Agent Wrappers" are used to agentify existing applications, while "Mediation Agents" support inter-application coordination by handling all communications. The mediation agents move from the site of an application to another where they interact with the agent wrappers. The agent wrappers themselves manage the states of the applications they are wrapped around, invoking them when necessary. Thus inter-application coordination is handled through the agent wrappers generating and receiving requests, which are transported around by the mediation agents. The mediation agents do more than just transport the messages; they are able to respond to the nature of the request to determine the best course of action. Bee-gent uses FIPA’s ACL as a communication language for negotiation. Bond Distributed Object System Purdue University The Bond distributed object system [42] provides a message oriented middleware environment for developing distributed applications. Bond uses the KQML language for object communication. The agent framework of the Bond system simplifies the task of developing agents by allowing the programmer to concentrate on the specific strategies of a new agent. Bond agents have the intrinsic capability to be controlled remotely and to cooperate with each other. The task of an application programmer is limited to specify the agenda, the finite state machine of the agent, and the strategies associated with each state. XML support was also implemented in new Bond version. XML seems to be an upcoming exchange data format.

Page 12: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

12

DECAF Agent Framework University of Delaware DECAF (Distributed Environment Centered Agent Framework) [43] provides a platform for extremely rapid development of agents. This is accomplished by building an operating environment that provides an interface, internal agent scheduling and monitoring in a fashion similar to operating system primitives. The agent developer does not need knowledge of any of this structure and can thus focus on development of the agent itself. The basic DECAF architecture has been built using the Java programming language. The rapid prototyping has been tested by development of approximately 15 agents over a two-week period by a recent class. DECAF is similar tool as Aglets, Zeus, Concordia, etc. Communication is supported on a messaging level. dMARS Australian Artificial Intelligence Institute Ltd. dMARSTM [44] is an agent-oriented development and implementation environment for building complex, distributed, time-critical systems. Designed for rapid configuration and ease of integration, it facilitates system design, maintenance and re-engineering. This product is based on the older Procedural Reasoning System (PRS) developed by SRI International (California). dMARS takes advantage of the latest research into multi-agent, real-time reasoning. dMARS is suited to the development of any application that requires both proactive goal directed behavior and reliable time-critical response to change. It is particularly well suited to applications where a large number of complex but well-defined procedures or tactics exist for accomplishing particular tasks in a variety of situations. dMARS was designed with the issues of robustness, efficiency and user-extensibility in mind. It provides a sophisticated suite of graphical tools for development and debugging. These tools not only provide an intuitive interface, but also address the specific issues involved with large-scale development. dMARS provides a high-level, graphical plan language for specifying complex, context-dependent processes and tactics. dMARS is written in C and C++ and will execute on a variety of UNIX platforms. dMARS is available from the Australian Artificial Intelligence Institute Ltd., Level 6, 171 La Trobe Street, Melbourne 3000 Australia. We give a brief overview of dMars though it is not interesting for our research, because dMars is one of the first and widely used MAS. EXCALIBUR Technical University of Berlin, German National Research Center for Information Technology, Research Institute for Computer Architecture and Software Technology EXCALIBUR [45] is a generic architecture for autonomous agents used in a complex computer-game environment. These agents must be able to find the right actions to pursue the given goals and adapt the behavior to new environments or opponents. Agents also must be able to communicate and perform coordinated group actions. Probably this is only Agent Architecture, using game theory in Agent Negotiation, Communication, Learning and Cooperation. GenA Centre de Recherche Informatique de Montreal (CRIM) GenA (Multi-platform Generic Agents) [46] CRIM's generic agent model "GenA" allows agents to run on and move between different agent platforms by using an interface called "GenAi." Programming these GenA agents is independent of the underlying agent platforms. An implementation of this agent model has been performed and validated by a small application.

Page 13: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

13

GenA (Multi-platform Generic Agents) is based on Java and allows mobile agents to run and move between other platforms such as Voyager, Grasshopper, and Aglets. Programming GenA agents is independent of the underlying agent platforms. An implementation of the agent model has been performed and validated by a small application. At the present time (March 2000), GenA has no external researcher or students working on it. GenA can play good role in MAS integration between different systems. However, GenA website is very poor and no detailed information can be found. Gypsy Technical University of Vienna The Gypsy Project [47] utilizes Java for the implementation of a flexible environment for experimenting with mobile agent programming. It is intended for application in Internet information retrieval, Internet commerce, mobile computing, and networks network management. Gypsy is mostly used as a travel agent. Authors focused also on Multi-lingual problem. Hive The Media Lab Massachusetts Institute of Technology Hive [48] is a Java software platform for creating distributed applications. Using Hive, programmers can easily create systems that connect and use data from all over the Internet. At its heart, Hive is an environment for distributed agents to live, communicating and moving to fulfill applications. Hive does not support communication and negotiation and what authors saying about it ? „Hive does not have any formal model of agent communication or negotiation. We believe that useful distributed systems can be built without this conceptual overhead and that theory will be most applicable after we understand the problems that occur in practice. Higher-level communication mechanisms such as KQML can be added on top of the basic RMI communication layer as necessary. We have made the deliberate choice to design Hive to be palatable to systems builders, sometimes at the expense of theory.“ JAFMAS University of Cincinnati JAFMAS [49] provides a framework to guide the development of multi-agent systems along with a set of classes for agent deployment in Java. The framework is intended to help beginning and expert developers structure their ideas into concrete agent applications. It directs development from a speech-act perspective and supports multicast and directed communication, KQML or other speech-act performatives and analysis of multi-agent system coherency and consistency. The JAFMAS project provides a good comparison of agent tools [50] with a particular emphasis on mobile agent projects. JAFMAS is one of few MAS, focusing on communication and speech-acts in a detailed way based on KQML communication between agents on very high level. JATLite Stanford University JATLite [52] is a set of Java packages that make it easy to build multi-agent systems using Java. JATLite provides a basic infrastructure in which agents register with an Agent Message Router facilitator using a name and password, connect/disconnect from the Internet, send and receive messages, transfer files, and invoke other programs or actions on the various computers where they are running. JATLite facilitates construction of agents that send and receive messages using the emerging standard communications language, KQML. The communications are built on open Internet standards, TCP/IP, SMTP, and FTP, which makes JATLite more communicable with other agents systems based on KQML.

Page 14: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

14

JATLiteBean Site University of Otago JATLiteBean [53] takes the KQML-speaking functionality of JATLite and wraps it into a JavaBean. JATLiteBean provides an easier-to-use interface to JATLite features including KQML message parsing, receiving and sending. It provides an extensible architecture for message handling and agent "thread of control" management. It also supports automatic advertising of agent capabilities to facilitator agents. In addition, it includes a generic configuration file parser and KQML syntax checker. JIAC Site Technische Universitat Berlin Java Intelligent Agents Componentware (JIAC) [54] is open, scalable and universal agent architecture. Implemented in Java, it offers component-based mobile agents, as well as providing support for creating e-commerce applications and distributed telecommunication services. Communication is based on KQML. Knowbot® System Software CNRI Knowbot® [56] is a research infrastructure for mobile agents ("Knowbot programs") intended for use in widely distributed systems such as the Internet. The current version is an experimental prototype. The Knowbot software is written in Python, an interpreted object-oriented programming language. The software executes Knowbot programs also written in Python. However, the design of the Knowbot architecture allows multiple programming languages; support for Knowbot programs written in Java (in addition to Python) is planned for a future release. Knowbot programs written in Python and Java should then be able to interoperate. CNRI is involved in a number of research experiments with this technology, for example, using Knowbot software to augment web servers in various ways, to support protocol negotiation between geographically distributed systems, and to mediate access to information in a network environment. Mobiware Middleware Toolkit Columbia University Mobiware [57] is a software-intensive adaptive mobile networking environment based on distributed object technology. Built on CORBA and Java distributed object technology, it runs on mobile devices, wireless access points and mobile-capable switch/routers providing a set of open programmable interfaces and algorithms for adaptive mobile networking. Mobilware is interesting by supporting wireless devices and also its functionality to avoid re-negotiation of agents. Mole University of Stuttgart This is a research project investigating mobile agents. [58] The basic concepts for Mobile Agent systems have been developed. Furthermore a prototypical implementation has been developed that shows the feasibility of this approach. This prototype adds mechanisms for migration and communication using the Java programming language. In Papers written on this project they discuss two communication concepts: sessions and global event management. [59]

Page 15: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

15

MultiAgent Systems Tool (MAST) Intelligent Systems Group, Department of Telematic Systems Engineering Technical University of Madrid MultiAgent Systems Tool [60] is a general-purpose distributed framework for the cooperation of multiple heterogeneous agents. The MAST architecture consists of two basic entities: the agents and the network through which they interact. MAST supports all types of communication functions direct, indirect and messaging. However, none of communication language such as KQML is implemented. Open Agent ArchitectureTM SRI International Open Agent ArchitectureTM (OAA) [61] is a framework for integrating a community of heterogeneous software agents in a distributed environment. In this framework, an agent is defined as a software process that registers its services in an acceptable form, speaks the Inter-agent Communication Language (ICL), and shares functionality common to all OAA agents (e.g. the ability to install triggers, manage data in certain ways). On website [61] we can find many applications for OAA such as human-to-human Spoken Dialog Summarization or Speech Recognition over the Web. Process Link Stanford University The objective of this project [62] is to enable design engineers to track and coordinate their design decisions with each other, even when not co-located or working with the same software. The project is developing an agent-based framework consisting of generic agents and a message protocol for integrating multidisciplinary engineering software and managing distributed design projects. This framework allows them to "wrap" legacy software with backend code that will disturb the existing software interface as little as possible while providing useful coordination functions. They are using a "weak" agent technology in which the wrapped software become agents in that they send messages corresponding to interaction semantics, but they don't necessarily have to be "smart" or conform to any particular theory of agent construction. The only commitment is to send messages conforming to a defined set of interactions. Simple Negotiation is supported by Constraint Manager what is something like broker. RETSINA Software Agents Group Carnegie Mellon University RETSINA [63] is a reusable agent. Each RETSINA agent has four reusable modules for communicating, planning, scheduling and monitoring the execution of tasks and requests from other agents. A RETSINA agent is distinguished according to the kind of task it performs (i.e. interface, task, and information agents). They focus also on communication problems. Their research addresses the problem of how to facilitate communication among agents of different types. They have proposed middle or matchmaker agents to serve as liaisons between agents that request services and agents that provide services. To increase inter-agent communication, they have also developed an agent capability description language that allows otherwise incompatible agents to communicate. Zeus British Telecommunications Labs Zeus [65] is a 'collaborative' agent building environment and component library written in Java. Each ZEUS agent consists of a definition layer, an organizational layer and a co-ordination layer. The definition layer represents the agent's reasoning and learning abilities, its goals, resources, skills, beliefs, preferences, etc. The organization layer describes the agent's relationships with other agents. The co-ordination layer describes

Page 16: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

16

the co-ordination and negotiation techniques the agent possesses. Communication protocols are built on top of the co-ordination layer and implement inter-agent communication. Beneath the definition layer is the API. Zeus is useful tool for simple experiments with good visualization, also good for presentation of agent theory in real.

2.2 MAS Negotiation in several Applications

Negotiation is currently used in many running applications, especially websites. Needs of negotiation can be seen in marketplaces, auctioning websites, or communication in bussines-to-bussines applications. However, computer based negotiation has still not reached a level of mass using. It needs feature research to solve various problems. Negotiation based applications can be divided into several categories:

- Market Places – all kinds of stores where you can negotiate about prices - Auctioning – Biding on goods by agent strategy - Real Negotiation - negotiation agents serving results to human - Communication – here we can put all agent based applications

We describe several such applications below. Gossip – Tryllian Gossip [29] is a mobile agent application that trades information for you on the Internet. You tell the Gossip agent what interests you and the agent travels to a server on the Internet called the Marketplace. At the Marketplace, your Gossip agent looks for other agents with similar interests. When agents with similar interests meet, they start conversation and exchange information. On Gossip site [29] we can download demo of this application. You can find movie that explains how gossip agent works on their site. Social Interaction Framework (SIF) DFKI (German Research Institute for AI) The Social Interaction Framework (SIF) [64] is a tool for rapid-prototyping of simulations involving multiple agents. It supports the design by providing ready-to-use components and several debugging functions during run-time. With this software you can concentrate on agent-oriented design and the study of the interactions between agents. SIF takes care of issues such as parallel computing and visualization. Interaction between agents is always based on communication and negotiation and is thus a useful tool for research. e-Commerce – Auctioning (Nomad, Cut Cake) Auctioning [12] [7] is most popular and mostly used negotiation strategy. Usually agents are auctioning on goods or services. Person creates agent with certain conditions, values and biding strategies and agent is biding in auction instead of person. Below is described Cut cake algorithm with our formal model, which can be also used as auctioning algorithm with some modifications. The good examples of these systems are Nomad Auctioning System or also eBay.com site for example. Nomad ….

Page 17: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

17

Real Negotiating – InterNeg Negotiation Agents can be also used to improve regular person-to-person negotiation. The good example of this is InterNeg project [23]. These way agents can be used to search, sort, choose or recommend some information, solution but final decision is left on the people. Negotiation does not have to end-up with rejecting or accepting. The negotiation result can be data for next negotiation. In this case an agent work as a good secretary. The InterNeg project began in 1996 and currently involves the following activities:[18]

• Construction of a comprehensive Web site for and about negotiation, located at: http://interneg.carleton.ca, in Canada and at: http://iiasa.ac.at/Research/DAS/interneg, in Austria;

• Development of decision and negotiation support methods and systems that can be effectively embedded in Web-based decision and negotiation support systems;

• Construction of Web-based systems amenable to use by people who have no prior knowledge of decision and negotiation analysis;

• Preparation of teaching and training tools and materials; • Study of the use of the computer and communication technologies in decision

making and negotiation; and • Research on the differences in negotiation styles that result from differences in

culture, education, age, sex, etc. The key aspect of the InterNeg project is the use of computer and communication technologies in negotiation. One outcome of this project is INSPIRE; the world's first Web-based decision and negotiation support system (available at http://interneg.carleton.ca/ and at http://iiasa.ac.at/Research/DAS/inspire. INSPIRE has been specifically developed to provide an experimental environment in which negotiation processes and negotiators' behavior can be studied. It has enabled a large-scale systematic study of cultural differences in negotiation, which was previously never possible. There are several key differences between InterNeg study and other studies. Negotiations through INSPIRE can be conducted anonymously, thus reducing cultural bias. They are conducted over several weeks, with or without imposed deadlines. Negotiations can be very easily conducted between people from different countries. That is, the technology circumvents the traditional barriers of space and time, and allows the users to employ techniques for the analysis of decisions and negotiations. Further, the users specify their own subjective preferences and negotiate using offers and/or free-text messages. INSPIRE is being used to experimentally study decision-making and negotiation, with the perspective of the cultural and technological impacts on the process and outcomes. As far as I know, this research is the first of its kind. The system has been used by many people, and from many countries, which have been engaged in bilateral negotiations. Market Places – KABASH, Aglets Market Place Agents are promising technology for Market Places. The most important role in it is Negotiation which taking place of people negotiation when buying and selling goods. Several projects of Market Places have been developed. One of them is KABASH [55]. Kasbah is a multi-agent electronic marketplace that proposes to transform the online shopping experience by leveraging the unique features of the Internet and software agent technologies.

Page 18: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

18

Newer Market Place is Aglets Market Place [25]. Aglets Market Place is an Aglet based mobile agent technology. Kasbah Agent-mediated Electronic Commerce (AmEC) Initiative Massachusetts Institute of Technology Kasbah [55] is an ongoing multi-agent research project to develop an agent-mediated electronic commerce system. A user wanting to buy or sell a product or service will create an agent, give it some strategic direction, and send it off into the agent marketplace. Kasbah agents pro-actively seek out potential buyers or sellers and negotiate with them on their creator's behalf. Each agent's goal is to make the "best deal" possible, subject to a set of user-specified constraints, such as a desired price, a highest (or lowest) acceptable price, and a date to complete the transaction. The ADEPT Project In the ADEPT [15] (Advance Decision Environment for Process Tasks) project-negotiating agents were developed for business process management applications. British Telecom developed the first versions. BT plans to use ADEPT in several of its processes, like the "Provide Customer Quote Business Process." In this process, before designing a network to provide some services to a customer, a quotation is provided. Up to six departments are involved in the process, in which an agent replaces each of those departments. Agents negotiate prices, a deadline for the completion of services, with penalties if these deadlines are violated, and the quality of the network services.

2.3 Negotiation Theory

Negotiation theory was first used in the game theory. Computer based negotiation and algorithms were theoretically described. However, a lot of negotiation problems are similar to human negotiation, fairness, or envy-free negotiation have not been solved yet. Agent Negotiation is always based on conditions (price > offer, time = time of session etc.). Real life negotiation is not always like that. Possible negotiation problems and solutions: - Negotiating strategies require non-condition decision-making. We could possibly use

neural networks or some genetic based algorithms. Here we can see the problem of storing and sorting the information. It is very hard for agent to learn as neural networks if it has to carry the information with itself. It is better to create some negotiation-decision centers. Agent then passes only its conditions and states and the negotiation center will provide negotiation for it.

- Fair negotiation is another problem. The Negotiation system described bellow support fair negotiation. The solution is that an agent knows, other agent-negotiating algorithm. In the negotiating center solution this can be solved, because negotiation center increase its knowledge by each negotiating to improve it.

- Envy-free and fair is Cut Cake algorithm, which is also described bellow. - Cooperative negotiation – cooperation on the projects, meetings, etc. Goals: - we

know here that we can give our (e.g. Timetable data) data to other agent and he will give ours. Agents will agree on some time if possible. If we have some profit function, agents can put profit function together – the best solution is found.

Page 19: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

19

- Non-cooperative negotiation: seller – buyer. Here the following problems occur: Seller is selling something between $10 – $100. A buyer wants to buy same stuff between $5 - $50. If the buyer will say his interval, the seller will sell it for $50. If the seller will say his interval buyer will buy it for $10. If we have some profit function, agents can pass profit function to a third agent (negotiation center) and agents get custom information.

Negotiation doesn’t have to end-up with rejecting or accepting. The negotiation result can be data for next negotiation, this can be for example, non-agent but personal negotiation. In this case agents work as a good secretary. Basic Elements of Computational Negotiation Here is characterizing some of the basic elements involved in a computation model of negotiation [17]. This model extends current human-oriented negotiation models by providing explicit knowledge representations and process descriptions, which are amenable to computerization. Perspectives Representations of varied agent knowledge, values, or beliefs. Agent perspectives may be described in one language (e.g., predicate calculus), or varied representations, which require translations before analysis. Decision-making A method for determining which alternative, from a given set, is deemed best. Basic theories include utility theory and argumentation theory. Architecture Ideally, multiple independent agents asynchronously communicate continuously as they: refine their individual and group preferences, and cooperatively seek a group ideal solution. However, architectural variations include: a centralized arbiter, non-networked agents, and human agents. Integration We place the actual "negotiation dance" within a more general framework involving the pre- and post-negotiation steps. The basic steps of the framework are listed below. Conflict Detection Find differences between perspectives and characterize them into syntactic and semantic categories. Resolution Search Search for a solution acceptable to all perspectives. Using the characterization of the initial conflicts as a starting point, new alternatives are generated under the guidance of all perspectives. Resolution Generation A variety of methods can be applied to generate new alternatives given an alternative abstraction space and agent goal hierarchies. Methods include: compromise, substitution, compensation, and dissolution. Resolution Choice After resolutions are generated, the "best" must be selected. If the search is incremental, then resolution search consists of a series of resolution generations followed by resolution choices until an acceptable resolution is reached.

Page 20: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

20

Resolution Implementation Typically, resolutions are sought in an abstraction space, which is separate from the implementation space. Hence, once an abstract resolution is reached, it must be mapped into the implementation space. Game Theory – Model Bazar Negotiation theory was first used in game theory. Negotiation in game theory is different from real life. The game software doesn’t have to learn to make good decisions. The game has already all needed information for decision making. But still in game theory we can find two good ideas: - In game theory, agents have knowledge of other agent negotiation and decision

making algorithm. - Game agents have all needed information for negotiating on a certain place and they

can use common knowledge instead of its own. Formal Description of BAZAR Negotiation Model According to Zeng [10] negotiation process can be modeled by a 10-tuple <N, M, V,A,H,Q,L,P,C,E> where, - A set N (the set of players). - A set M (the set of issues/dimensions covered in negotiation. For instance, in the

supply chain management domain, this set could include product price, product quality, payment method, transportation method etc.)

- A set of vectors V ≡ {(Dj)j∈ M} ( a set of vectors whose elements describe each and every dimension of an agreement under negotiation). A set A composed of all the possible auctions that can be taken by every member of the players set. - A ≡ V ∪ { Accept, Quit}

- For each player I ∈N a set of posible agreements AI. - For each I∈N, Ai ⊂A

- A set H of sequences (finite or infinite) that satisfies the following properties: - The elements of each sequence are defined over A. - The empty sequence Φ is a member of H. - If (ak)k=1,…,K ∈ H and S < K than (ak)k=1,….,S ∈ H. - If (ak)k=1,…,K ∈ H and aK ∈ {Accept,Quit} then ak ∉ {Accept, Quit} when k = 1,….,K-

1. Each member of H is a history; each component of a history is an action taken by a player. A history (ak) k=1,…,K+1∈ H. The set of terminal histories is denoted by Z.

- A function Q that associates each nonterminal history (h ∈ H\Z) to a member of N. (Q is called the player function which determines the orderings of agent responses.)

- A set of L of relevant information entities. L is introduced to represent the players’ knowledge and belief about the following aspects of negotiation: - The parameters of the environment , which can be changed over time. For

example, in supply chain management, global economic and global industry- wide indicates such as overall product supply and demand and interest rate, belong to L.

- Beliefs about other players. These beliefs can be approximately decomposed into three categories: - Beliefs about the factual aspects of other agents, such as how their payoff

functions are structured, how many resources they have, etc.

Page 21: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

21

- Beliefs about the decision making process of other agents. For example, what would be other players’ reservation prices.

- Beliefs about meta-level issues such as the overall negotiation style of other players. Are they tough or compliant? How would they perceive certain action ? What about their risk-taking attitudes? etc.

- For each nonterminal history h and each player i ∈ N, a subjective probability distribution P h,i degined over L. this distribution is a concise representation of the of the knowledge held by each player in each stage of negotiation .

- For each player i ∈ N, each nonterminal history H \ Z, and each action a i ∈ Ai, there is an implementation cost C i, h,a. C can be interpreted as communication costs or costs associated with time caused by delaying terminal action (Accept or Quit).

- For each player i ∈ N a preference relation …..i on Z and P h,i for each h ∈ Z ….i in turn results in an evaluation function Ei(Z, Pz,i).

Negotiation Model of Goods and Services This model is fair and envy-free. In this model we can see how real life solution would be useful in agent negotiation. One person divides the cake in two, and the other chooses the first piece. This is fair in that each believes he/she received at least a half, and envy-free in that neither would wish to trade. If the third person will come, each of those two will cat his/her portion into 3 parts and the third person will take one piece from each one. This protocol succeeds even when participants disagree about the portion’s value. [7] Let’s bring this protocol into Agents world. First Agent can use the cake-cutting algorithm when negotiating for resources. For example, two agents sharing CPU time might also wish to complete their computation as soon as possible. One agent might select the sizes of the processor’s time slices, while the other would have first choice of the resulting slices. Similar negotiation could occur over bandwidth, relative cache size, locks on databases, storage space in a file system, or task decomposition and distribution. This algorithm can be applied not only on 2 agents but on N agents as well. When n+1 agents come to negotiate each of n agents will divide its sources into n+1 parts. Agent n+1 will choose one slice from each agent. Formal Description of Cut Cake Algorithm According to Cut Cake Algorithm description [7] we created formal description of this algorithm. <A, S, F, D> A – A set of Agents for negotiation. S – A set of sources for negotiation. One agent at the beginning holds this set. Si is the source held by Ai agent. F – A set of fi functions fi ∈ F, and fi is cutting function or algorithm of agent Ai. D - A set of di functions di ∈ D, and di is decision function or algorithm of agent Ai. This function is used for decision-making.

Page 22: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

22

2.4 Communication Communication [16] [51] [31] is basically negotiating. All of multi-agent systems have to use kind of communication-negotiation protocol. Negotiation needs some communication protocol for agents to understand each other. There are many communication languages and protocols. Lot of agents systems are building their own ones. The most usable is getting KQML standard and also FIPA ACL standard. We will focus more on KQML standard for certain reasons. We will talk about KQML and ACL bellow. Both ACL and KQML is plain text communication. This way communication between agents can be stolen over the network. Almost no MASs solve problem of security of communication. We will focus on this area also. KQML KQML or the Knowledge Query and Manipulation Language [16] is a language and protocol for exchanging information and knowledge. It is part of a larger effort, the ARPA Knowledge Sharing Effort, which is aimed at developing techniques and methodology for building large-scale knowledge bases, which are sharable and reusable. KQML is both a message format and a message-handling protocol to support run-time knowledge sharing among agents. KQML can be used as a language for an application program to interact with an intelligent system or for two or more intelligent systems to share knowledge in support of cooperative problem solving. KQML focuses on an extensible set of performatives, which defines the permissible operations that agents may attempt on each other's knowledge and goal stores. The performatives comprise a substrate on which to develop higher-level models of inter-agent interaction such as contract nets and negotiation. In addition, KQML provides a basic architecture for knowledge sharing through a special class of agent called communication facilitators which coordinate the interactions of other agents The ideas which underlie the evolving design of KQML are currently being explored through experimental prototype systems which are being used to support several testbeds in such areas as concurrent engineering, intelligent design and intelligent planning and scheduling. Performatives examined in the KQML specification [8] are organized in three categories: discourse performatives, which can be considered as close as possible to speech acts

in the linguistic sense, intervention and mechanics of conversation performatives, whose role is to intervene

in a normal course of conversation and networking and facilitation performatives, primarily used to allow agents to find other

agents that can process their queries. Example of a typical KQML expression, where bt-neg-center agent replies to customer-agent-2 agent using standard-prolog language: (tell :content „cost (bt, service-4, $5677)“ :language standard-prolog :ontology bt-services-domain :in-reply-to service-4 :receiver customer-agent-2 :sender bt-neg-center)

Page 23: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

23

Agent Communication Language The FIPA Agent Communication Language (ACL) [31] is based on speech act theory: messages are actions, or communicative acts, as they are intended to perform some action by virtue of being sent. The specification consists of a set of message types and the description of their pragmatics, that is the effects on the mental attitudes of the sender and receiver agents. Every communicative act is described with both a narrative form and a formal semantics based on modal logic. The specifications include guidance to users who are already familiar with KQML in order to facilitate migration to the FIPA ACL. The specification also provides the normative description of a set of high-level interaction protocols, including requesting an action, contract net and several kinds of auctions etc. FIPA ACL Message Structure A FIPA ACL message contains a set of one or more message elements. Precisely which elements are needed for effective agent communication will vary according to the situation; the only element that is mandatory in all ACL messages is the performative, although it is expected that most ACL messages will also contain sender, receiver and content elements. If an agent does not recognize or is unable to process one or more of the elements or element values, it can reply with the appropriate not-understood message. Specific implementations are free to include user-defined message elements other than the FIPA ACL message elements specified in Table 1. The semantics of these user-defined elements is not defined by FIPA, and FIPA compliance does not require any particular interpretation of these elements. Some elements of the message might be omitted when their value can be deduced by the context of the conversation. However, FIPA does not specify any mechanism to handle such conditions, therefore those implementations that omit some message elements are not guaranteed to interoperate with each other. The full set of FIPA ACL message elements is shown in Table 1 without regard to their specific encodings in an implementation. FIPA-approved encodings and element orderings for ACL messages are given in other specifications. Each ACL message representation specification contains precise syntax descriptions for ACL message encodings based on XML, text strings and several other schemes.

Element Category of Elements performative Type of communicative acts Sender Participant in communication Receiver Participant in communication reply-to Participant in communication Content Content of message Language Description of Content Encoding Description of Content Ontology Description of Content Protocol Control of conversation conversation-id Control of conversation reply-with Control of conversation in-reply-to Control of conversation reply-by Control of conversation

Table 1: FIPA ACL Message Elements

Page 24: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

24

3 Negotiation Center Experiment Implementation is done in Java Aglet Software. We have chosen this agent interface because Java is getting more powerful, and widely used Internet language. Java supports secure migrating of classes but programming of Mobile Agents needs some additional useful properties. All this is covered in IBM Aglets, which are still under development. There is no sense in creating other Mobile Agent Interface in Java. Therefore we decided to use Aglets. Java programming language is under development also and a lot of useful classes can be found on the Internet. IBM also created JKQML – implementation of KQML in Java. In addition supports SQL access to many SQL servers and thus it is possible to plug agents to real world applications when they are created in Java [1][5]. A notion of domains is one of the fundamental concepts of the KQML. In each domain of KQML-speaking agents there is at least one agent with a special status called facilitator. Agents advertise to their facilitator, i.e., they send advertise messages to facilitators. Agents can access agents in other domains either through their facilitator, or directly. Facilitators may request the services of other facilitators in the same way that regular agents may request the services of their facilitator. Facilitators do not advertise, not even to other facilitators. We implemented the negotiation model of goods and services (cut cake algorithm). We point out some features here [71][72]: Negotiation center – because of learning, information storage and coordination problems, it is not good for each agent to learn and store all information itself . There is also problem into finding agent for negotiation (coordination) [4]. By providing negotiation center these problems are solved. Negotiation center is easier to access. It has better information about services and decisions because all negotiation between agents is via negotiation center. It also stores information on one place. If new learning, data access or other strategies will be added, we don’t have to modify all agents but only the negotiation center. Cut cake algorithm – this algorithm can be used for many situations. Negotiation by this algorithm is really fast. Agent sends an offer and negotiation center will send the offer to agents, which can possibly deal with it. The result is going back to the first agent, which can decide which „cake“ it will take. Here is a simple example what can it be used for. Agent wants to buy a computer journal for one year at price not higher than $100 per year. Negotiation center can pass to agent to choose accept journal which costs $200 per year but for half a year it will be for $100 or a journal for $100 for 2 years etc. Agent will pass this information to a person via email or to some interface or will decide which choice is the best or reject all offers.

Page 25: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

25

As negotiation language we use KQML. This solution is also suitable for future improving of our example to a real commercial negotiation system. KQML is implemented in many other agent developing systems such as ARA, TCL and also Aglets [3]. This way agents implemented in other languages can be used to negotiate with the center. KQML is implementing email KQML support as well. This means that simple email messages containing KQML request sent to KQML agent are behaving as agent. This can be used very well on Unix machines. Incorporating Decision Support Algorithms We see a need for implementing a rational decision making algorithm [72] in individual agents of our experimental system as a central part of the „cut cake“ algorithm. Negotiation center uses the decision algorithms to rationally apportion goods and services into parts with equal utilities. In order to enable the system to compute utilities, negotiation center needs to know the utility function of particular goods and services. Individual utilities are functions of elements such as price, amount, time, etc. On the other hand, client agents need to make the best choice among alternatives offered by the negotiation center. We suppose that each client agent aims at maximizing the total agent’s utility while choices must accord with the agent’s preferences.

Implemented classes

NegCenter class [71] - this class represents the negotiation center. It is a subclass of the main Aglet class.

Agents can access it with KQML requests for negotiating. Class stores information about services into MySQL database via a JDBC interface. The following information is stored: name, category, description, minimum quantity, maximum quantity, value (price). This information is stored when agent sends a bid to negotiation center. It is used when agent sends offer to center. It is also sorted by prices and possibilities and passed to agent.

AgentNeg class - this is a subclass of Aglets and JKQML. It is supporting KQML requests and NegCenter

specific communication functions. AgentBidder class - this is a subclass of AgentNeg class. It can be used as agent, which is bidding some

services (seller). AgentOffer class - this is a subclass of AgentNeg class. It can be used as agent, which is offering some

services (buyer). Our main goal was to create an agent, nested into a multi-agent system, which would handle negotiation and support decision making of an agent domain. The main entity in our model, called negotiation center, collects all the information needed for effective decision-making (Figure 1). Exchange of detailed specifications and information is done by means of negotiation. Concentration of all information about offered and demanded goods and services creates a framework for effective functioning of agent domains. In addition,

Page 26: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

26

every member in a domain shares benefits of adding new features and abilities to the negotiation center. Detailed description of each class of our model is given in Tab. 1. Negotiation center uses decision algorithms to rationally apportion goods and services into parts with equal utilities. In order to enable the system to compute utilities, negotiation center needs to know the utility functions of particular goods and services. Individual utilities are functions of elements such as price, amount, time, etc. On the other hand, client agents need to make the best choice among alternatives offered by the negotiation center. We suppose that each client agent aims at maximizing the total agent’s utility while choices must accord with the agent’s preferences.

Figure 1 The relative disadvantage of our model is that each agent in the agent domain must truly believe that the specialized agent which facilitates negotiation and decision support for him is fair. To ensure fair behavior of our negotiation center, we utilize the Cut Cake algorithm described above. Negotiation and resource distribution by this algorithm is fast, fair and efficient. We base the inter-agent communication on KQML, which also ensures standard message interchange with other multi-agent platforms. Using standard protocols makes the model suitable for verification in real commercial systems.

KQML Agent DOMAIN

NegCenter

Decision Making Learning

Negotiation (Cut Cake)

Offering Agent

Demanding Agent

KQML

Other Agent

ACL, KQMLSQL

Database

Page 27: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

27

4 Secure Negotiation and Communication in MAS

Security is very important issue in all systems. Many people can see and think that security is not solved yet in any Internet Based System. Security wholes and succeed hackers impacts are very often in Internet world. All this is because of programming mistakes or human failure. Theoretically we can say “Security is solved already” and it is true. What is problem is that it is not implemented yet in many systems. We can divide security is in few levels: - Security of communication - Security of System against outside impacts - Access Rights - Approving Users, Agents & Others - Trusting problems Security of communication We need to secure communication between citizen and our system. We can provide this by using SSL what is standard encryption method used for example for Internet Banking. Securing of communication in MAS is described below. Security of System against outside impacts Choosing right and secure platform with installed security patches can solve most of those problems. Also some access restrictions must be set up. Access Rights Very important is securing against inside impacts. We need to define permissions for certain level of personal, organizations etc. Also their communication with system has to be encrypted by public private key method. Approving Users, Agents and others - DPK Security Agent Approving someone, who negotiate or communicate is very important. Even if we securing communication by public-private key method, we want to be sure that agent on other site is the one what we think it is. For this purpose is very important to make central or distributed database of public keys (DPK) of agents. Each Agent Place or each agent who has public key has to have this key stored in this DPK with its information. When new agent get created public key is generated and send to DPK by its creator with its information. DPK Security Agent can represent DPK. Each agent has standard method to access DPK agent by secure connection to get confirmation about public keys of other agents.

4.1 Trusting Problem

Let’s go to real word here. When buying car, computer or whatever goods, I want to be sure that companies what sells and made that goods is quite trusted. When going to bank or office and giving my personal data I want to be sure that they want give it to third person. This is what we can call trusting problem. We can put it simply also to agent world. Agents have to know what other agents do with passed data if this data are sensitive.

Page 28: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

28

When 2 agents negotiate about price, we can make this negotiation much faster and fairer when both of them will pass their data to 3rd party. See figure below.

Figure 2 This algorithm is easy but those 2 agents have to believe that third party agent works by this algorithm and does not work for one of agents who negotiate. This approving of agents can be based on hash function and signing of agent as trusted. In our research we will focus also on this problem. When securing Agents we have to focus on - Negotiation & Communication Securing - Agent migration securing - Agent Place Environment securing

4.2 Securing of Inter-Agent Negotiation and Communication

KQML communication is not encrypted what means that anyone on the way to agent destination can read its communication. Because of this we have to encrypt communication. This can be possibly solved by public-private key encryption. Maybe some class, which implements this logic into agent communication, can be found. Using public-private key is standard way to protect any kind of data moving across network. If we will use public-private key encryption, we have to solve also generating those keys and remake standard communication functions of agent system. There are two kinds of cryptosystems: symmetric and asymmetric. Symmetric cryptosystems use the same key (the secret key) to encrypt and decrypt a message, and asymmetric cryptosystems use one key (the public key) to encrypt a message and a different key (the private key) to decrypt it. Asymmetric cryptosystems are also called public key cryptosystems.

Page 29: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

29

Symmetric cryptosystems have a problem: how do you transport the secret key from the sender to the recipient securely and in a tamperproof fashion? If you could send the secret key securely, then, in theory, you wouldn't need the symmetric cryptosystem in the first place -- because you would simply use that secure channel to send your message. Frequently, trusted couriers are used as a solution to this problem. Another, more efficient and reliable solution is a public key cryptosystem, such as RSA, which is used in the popular security tool PGP. RSA Encryption RSA is a public-key cryptosystem developed by MIT professors: Ronald L. Rivest, Adi Shamir, and Leonard M. Adleman in 1977 in an effort to help ensure Internet security. As Steve Burnett of RSA Data Security, Inc. described it, a cryptosystem is simply an algorithm that can convert input data into something unrecognizable (encryption), and convert the unrecognizable data back to its original form (decryption). To encrypt data, enter the data ("plaintext") and an encryption key to the encryption portion of the algorithm. To decrypt the "ciphertext," a proper decryption key is used at the decryption portion of the algorithm. Those keys, which contain simply a string of numbers, are called public key and private key, respectively. For example, suppose Alice intends to send e-mail to Bob. Through a public-key directory, she finds his public key. Then, she encrypts her message using the key and sends it to Bob. This public key, however, will not decrypt the ciphertext. Knowledge of Bob's public key will not help an eavesdropper. In order for Bob to decrypt his ciphertext, he must use his private key. If Bob wants to respond to Alice, he encrypts his message using her public key. The challenge of public-key cryptography is developing a system in which it is impossible to determine the private key. This is accomplished through the use of a one-way function. With a one-way function, it is relatively easy to compute a result given some input values. However, it is extremely difficult, nearly impossible, to determine the original values if you start with the result. In mathematical terms, given x, computing f(x) is easy, but given f(x), computing x is nearly impossible. The one-way function used in RSA is multiplication of prime numbers. It is easy to multiply two big prime numbers, but for most very large primes, it is extremely time-consuming to factor them. Public-key cryptography uses this function by building a cryptosystem, which uses two large primes to build the private key and the product of those primes to build the public key. Algorithm: - Find P and Q, two large (e.g., 1024-bit) prime numbers. - Choose E such that E is less than PQ, and such that E and (P-1)(Q-1) are relatively

prime, which means they have no prime factors in common. E does not have to be prime, but it must be odd. (P-1)(Q-1) can't be prime because it's an even number.

- Compute D such that (DE - 1) is evenly divisible by (P-1)(Q-1). Mathematicians write this as DE = 1 (mod (P-1)(Q-1)), and they call D the multiplicative inverse of E.

- The encryption function is encrypt(T) = (T^E) mod PQ, where T is the plaintext (a positive integer) and ^ indicates exponentiation.

- The decryption function is decrypt(C) = (C^D) mod PQ, where C is the ciphertext (a positive integer) and ^ indicates exponentiation.

Page 30: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

30

Your public key is the pair (PQ, E). Your private key is the number D (reveal it to no one). The product PQ is the modulus (often called N in the literature). E is the public exponent. D is the secret exponent. You can publish your public key freely, because there are no known easy methods of calculating D, P, or Q given only (PQ, E) (your public key). If P and Q are each 1024 bits long, the sun will burn out before the most powerful computers presently in existence can factor your modulus into P and Q. Encrypted agent communication start as described: Agents will exchange their public keys by regular KQML requests, which are not encrypted yet. Each communication will start like following: 1. Request for communication from agent A to B with A’s public key. 2. Encrypted request from agent B to DPK agent to get approval and other information

about agent A and answer from DPK Agent. 3. Accepting request for communication and sending public key from agent B to A. 4. Encrypted request from agent A to DPK agent to get approval and other information

about agent B and answer from DPK Agent. 5. All upcoming communication can by encrypted since this point.

Part of agent creation should be generating of those public-private pair key. Agent migration securing can be solved by similar algorithm. Public and private keys of agent and destination place are used due to migration. Agent Place Environment securing highly depends of used agent environment. If some Java based agent environment is used, Java Security Manager can be implemented. Still security levels and access priorities have to be defined.

Figure 3

Described securing of negotiation should be used in proposed projects Cyber Citizen and in implementation of Free Access to Information Law.

Page 31: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

31

5 Thesis of PhD work

In this paper we described the current state of negotiation and communication. We pointed out many problems especially those concerning needs to move computer-based negotiation closer to human negotiation, trusting and security of negotiation. The chapters 3 and 4 show possibility of solving some of the mentioned problems. Our current, and also the future research thesis are as follows: 1. Analysis and assessment of existing algorithms for their potential use in Cyber

Virtual Administration Systems. 2. Design of Negotiation and Communication mechanisms for Cyber Virtual

Administration Systems. 3. Design of Negotiation Agent Domain Architecture. 4. Modeling and Implementation of Negotiation Agent Domain. 5. Verification of Negotiation Agent Domain for selected pilot operation.

6 Conclusion Agent Based Systems are on very high level now, but they need to be more generalized. Java programming language with few projects as ACL, KQML or MASIF can solve this problem. At the same time a lot has been done in Negotiation and Communication area but it still has many shortcoming, security and trusting of MAS is one of them. Many algorithms outside of agent’s world can be implemented and used with little changes. Lot of negotiation algorithms are real life algorithms. Some of them were formally described or implemented. As far as we know, no one is implemented in any development agent system. All of existing implementations of Negotiation Algorithms and strategies are embodied in final agent solutions. In this case we aim at generalization of these algorithms and Implement them in Java as a class. It actually does not matter what kind of agent development system we will use but we decided to use java platform. We intend to make Negotiation safe and fair as negotiation should be. We will also create some useful examples of using our algorithms and make documentation or formal description of these methods. It will thus be usable for developers in other agent systems and also for feature research.

Page 32: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

32

Page 33: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

33

References [1] Bigus, J., Bigus, J.: Constructing Intelligent Agents with Java. Willey Computer Publishing, 1997, Canada [2] Chuang, T., Yadav, S., B.: An Agent-Based Architecture Of An Adaptive Decision Support System, 1997. [3] Cockayne, W., R., Zyda, M.: Mobile Agents, Manning Publication co., 1997. USA [4] Cremonini, M., Omicini A., Zamboneli, F.: Ruling Agent Motion in Structured Enviroments, 2000. HPCN Europe [5] DOYLE, J.: Rationality and its Roles in Reasoning. In Computational Intelligence, Vol. 8, No. 2 (May 1992), pp. 376-409. [6] Genesereth, M., R., Ketchpel, S. P.: Software Agents. [7] Huhns, M., N., Malhotra, A., K.: Negotiating for Goods and Services, IEEE Internet Computing, July-August 1999. [8] Labrou, Y., Finin, T.: A Proposal for a new KQML Specification, TR CS-97-03, available through the Stanford University Computer Science Department, 1997. [9] Lange, D., B., Oshima, M.: Programming and Deploying Java Mobile Agents with Aglets. Addison-Wesley, 1998. Canada [10] Zeng, D., Sycara, K.: How Can Agent Learn to Negotiate? In: Intelligent agents III, ECAI ‘96 Workshop, 1996, pp.233-244 [11] Raith, Matthias G.: Fair-Negotiation Procedures, 1999 [12] Internet Computing March/ April 2000 Nomad system Jat system [13] Kersten, G. E., Szpakowicz, S.: Modeling Busines Negotiation for Electronic Commerce, 1999 [14] FIPA ACL Message Structure Specification, 2000 [15] Binmore, K., Vulkan, N.: Applying Game Theory to Automated Negotiation, University of London 1997 [16] KQML Website - http://www.cs.umbc.edu/kqml/ [17] Robinson, W. N.: Computational Negotiation, 1994

Page 34: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

34

[18] Kersten, G., Noronha S.: Negotiation and the Internet Users’ Expectations and Acceptance, 1998 [19] Kersten, G. E., Noronha, S. J., Teich, J.: Are All E-Commerce Negotiations Auctions? 2000 [20] FIPA: Foundation for Intelligent Physical Agents Geneva, Switzerland 1997 [21] Negotiation Journal - http://www.pon.harvard.edu/publ/negojnl/ [22] Kersten, G. E., Noronha, S. J.: Supporting International Negotiation with a WWW-Based System, 1996 [23] International Negotiation site – http://www.InterNeg.org/ [24] Agent Builder site - http://www.agentbuilder.com/ [25] IBM Aglets - http://www.trl.ibm.co.jp/aglets/ [26] JKQML IBM - http://www.alphaworks.ibm.com/tech/JKQML [27] About 20,000 Mobile agents links - http://www.cetus-inks.org/oo_mobile_agents.html [28] Concordia - http://www.meitca.com/HSL/Projects/Concordia/ [29] Tryllian Web Page (Gossip, ADK) - http://www.tryllian.com/ [30] Grasshopper - http://www.grasshopper.de/ [31] FIPA – www.fipa.org [32] Agent Library - http://www.bitpix.com/business/main/bitpix.htm [33] Jumping Beans - http://www.jumpingbeans.com/ [34] Microsoft Agents - http://msdn.microsoft.com/msagent/default.asp [35] Via - http://www.kinetoscope.com/ [36] Voyager - http://www.objectspace.com/products/voyager/ [37] ABS, University of Toronto - http://www.eil.utoronto.ca/ABS-page/ABS-overview.html [38] Agent Factory - http://krytan.ucd.ie/ [39] TCL - http://agent.cs.dartmouth.edu/general/agenttcl.html [40] ADE - http://samuel.cs.uni-potsdam.de/soft/taxt/research/ade/ade.html [41] Bee-gent - http://www2.toshiba.co.jp/beegent/index.htm

Page 35: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

35

[42] Bond Agent System - http://bond.cs.purdue.edu/ [43] DECAF - http://www.eecis.udel.edu/~decaf/ [44] dMARS - http://www.aaii.oz.au/proj/dMARS-prod-brief.html [45] EXCALIBUR - http://www.ai-center.com/projects/excalibur/ [46] GenA - http://www.crim.ca/~lmagnin/pub/publis/ [47] Gypsy - http://www.infosys.tuwien.ac.at/Gypsy/ [48] Hive - http://www.hivecell.net/ [49] JAFMAS - http://www.ececs.uc.edu/~abaker/JAFMAS/ [50] Comparation of Agents Tools - http://www.ececs.uc.edu/~abaker/JAFMAS/compare.html [51] KQML - http://www.cs.umbc.edu/kqml/ [52] JATLite - http://java.stanford.edu/java_agent/html/ [53] JATLiteBean - http://kmi.open.ac.uk/people/emanuela/JATLiteBean/ [54] JIAC - http://dai.cs.tu-berlin.de/english/forschung/projekte/JIAC/ [55] Kabash Market Place - http://ecommerce.media.mit.edu/Kasbah/index.html [56] Knowbot - http://www.cnri.reston.va.us/home/koe/ [57] Mobilware - http://comet.columbia.edu/mobiware/ [58] Mole - http://mole.informatik.uni-stuttgart.de/ [59] Baumann, J., Hohl, F., Radouniklis, N.: Communication Concepts for Mobile Agent Systems 1, Institute of Parallel and Distributed High-Performance Systems (IPVR), University of Stuttgart, Germany 1997 [60] MAST - http://www.gsi.dit.upm.es/~mast/ [61] Open Agent Architecture (OOA) - http://www.ai.sri.com/~oaa/ [62] Process Link - http://www-cdr.stanford.edu/ProcessLink/ [63] RETSINA - http://www.cs.cmu.edu/~softagents/ [64] Social Interaction Framework (SIF) - http://www.cs.cmu.edu/~softagents/

Page 36: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

36

[65] Zeus - http://www.labs.bt.com/projects/agents/research/collaborative.htm [66] Word Wide Web Consorcium - http://www.w3.org/ [67] Intelligent Agents III, Agent Theories Architectures, and Languages [68] Intelligent Agents IV, Agent Theories Architectures, and Languages [69] Intelligent Agents V, Agent Theories Architectures, and Languages [70] Intelligent Agents VI, Agent Theories Architectures, and Languages [71] Balogh, Z., Laclavik, M., Hluchy, L.: Multi Agent System for Negotiation and Decision Support, 2000 [72] Balogh, Z., Laclavik, M., Hluchy, L.: Model of Negotiation and Decision Support for Goods and Services, 2000

Page 37: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

37

Appendix A – Basic Info about Agents Agents are sophisticated computer programs that act autonomously on behalf of their users, across open and distributed environments, to solve a growing number of complex problems. Seven good reasons to use agents [9] Agents reduce the network load. Mobile agents allow packaging a conversation and

dispatching it to a destination host, where the interaction can take place locally. Agents overcome network latency. Mobile agents offer a solution to problem of

unacceptable latencies in critical real-time systems, because they can be dispatched from a central controller to act locally and directly execute the controller’s directions.

Agents encapsulate protocols. Communication protocols often become a legacy problem. Mobile agents can move to remote hosts to establish channels based on proprietary protocols.

Agents execute asynchronously and autonomously. Mobile devices must often rely on expensive or fragile network connections. Embedding tasks into mobile agents, which can then be dispatched into the network, solves this problem.

Agents adopt dynamically, by the ability to sense their environment and react autonomously to changes.

Agents are naturally heterogeneous. Because mobile agents are generally dependent only on their execution environment, they provide optimal conditions for system integration.

Agents are robust and fault-tolerant, because of their ability to react dynamically to unfavorable situations and events.

Mobile Agents applications Agents can be used for variety of applications [9] - Electronic commerce. Mobile agents are well suited for electronic commerce. A

commercial transaction may require real-time access to remote resources such as stock quotes and perhaps even agent-to-agent negotiation. Different agents will have different goals and will implement and exercise different strategies to accomplish these goals. We envision agents that embody the intentions of their creators and act and negotiate an their behalf. Mobile agent technology is a very appealing solution to this kind of problem.

- Personal assistance. The mobile agent‘s ability to execute on remote hosts makes it suitable for playing role as an assistant capable of performing tasks in the network on behalf of its creator. The remote assistant will operate independently of its limited network connectivity, and the creator can feel free to turn off his or her computer. To schedule a meeting with several other people, a user could send a mobile agent to interact with the representative agents of each of the people invited to the meeting. Agents could negotiate and establish a meeting time.

- Secure brokering. An interesting application of mobile agents is in collaborations in which not all the collaborators are trusted. In this case, the parties could let their

Page 38: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

38

mobile agents meet on a mutually agreed secure host, where collaboration can take place without the risk of the host taking the side of the visiting agents.

- Distributed information retrieval. Information retrieval is a popular example of a mobile agent application. Instead of moving large amounts of data to the search engine so that it can create search indexes, you dispatch agents to remote information sources, where they locally create search indexes that can later be shipped back to the origin. Mobile agents can also perform extended searches that are not constrained by the hours during which the creator‘s computer is operational.

- Telecommunication network services. Support and management of advanced telecommunication services are characterized by dynamic network reconfiguration and user customization. The physical size of these networks and the strict requirements under which they operate call for mobile agent technology to form the glue that keeps such systems flexible and effective.

- Workflow applications and groupware. It is in the nature of workflow applications to support the flow of information between coworkers. The mobile agent is particularly useful here, because in addition to mobility it provides a degree of autonomy to the workflow item. Individual workflow items fully embody the information and behavior they need to move through the organization independently of any particular application.

- Monitoring and notification. This classic mobile agent application highlights the asynchronous nature of mobile agents. An agent can monitor a given information source without being dependent on the location from which it originates. Agent can be dispatched to wait for certain kinds of information to became available. It is often important that the life spans of monitoring agents exceed or are independent of the computing processes that create them.

- Information dissemination. Mobile agents embody the so-called Internet push model. Agents can disseminate information such as news and automatic software updates for vendors. The agents bring the new software components as well as the installation procedures directly to the customer‘s personal computer and autonomously update and manage the software on the computer.

- Parallel processing. Given that mobile agents can create a cascade of clones in the network, one potential use of mobile agent technology is to administer parallel processing tasks. If a computation requires so much processor power that it must be distributed among multiple processors, an infrastructure of mobile agent hosts could be a possible way to allocate the processes.

Page 39: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

39

Appendix B - Terms and definitions Agent Agents are sophisticated computer programs that act autonomously on behalf of their users, across open and distributed environments, to solve a growing number of complex problems. Action A basic construct represents some activity, which an agent may perform. A special class of actions is the communicative acts. Agent Communication Language (ACL) A language with precisely defined syntax, semantics and pragmatics that is the basis of communication between independently designed and developed software agents. ARB Agent An agent, which provides the Agent Resource Broker (ARB) service. There must be at least one such an agent in each Agent Platform in order to allow the sharing of non-agent services. Communicative Act (CA) A special class of actions that correspond to the basic building blocks of dialogue between agents. A communicative act has a well-defined, declarative meaning independent of the content of any given act. CA's are modeled on speech act theory. Pragmatically, CA's are performed by an agent sending a message to another agent, using the message format described in this specification. Content That part of a communicative act, which represents the domain dependent component of the communication. Note that "the content of a message" does not refer to "everything within the message, including the delimiters", as it does in some languages, but rather specifically to the domain specific component. In the ACL semantic model, a content expression may be composed from propositions, actions or IRE's. Conversation An ongoing sequence of communicative acts exchanged between two (or more) agents relating to some ongoing topic of discourse. A conversation may (perhaps implicitly) accumulate context, which is used to determine the meaning of later messages in the conversation. Java Object Oriented Programming language which support migrating of classes. Knowledge Querying and Manipulation Language (KQML) A de facto (but widely used) specification of a language for inter-agent communication. In practice, several implementations and variations exist. MAS See Multi-Agent Systems MASIF OMG’s Mobile Agent Standardization Message An individual unit of communication between two or more agents. A message corresponds to a communicative act, in the sense that a message encodes the communicative act for reliable transmission between agents. Note that communicative acts can be recursively composed, so while the outermost act is directly encoded by the message, taken as a whole a given message may represent multiple individual communicative acts.

Page 40: Negotiation and Communication in Agent Systemsups.savba.sk/~misos/publications/minimovka_after_review.pdf · remote host, and resume execution there. When the aglet moves, it takes

40

Message content See content. Message transport service The message transport service is an abstract service provided by the agent management platform to which the agent is (currently) attached. The message transport service provides for the reliable and timely delivery of messages to their destination agents, and also provides a mapping from agent logical names to physical transport addresses. Multi-Agent Systems The software system where more agent can process its tasks Proposition A statement, which can be either true or false. A closed proposition is one, which contains no variables, other than those defined within the scope of a quantifier. Protocol A common pattern of conversations used to perform some generally useful task. The protocol is often used to facilitate a simplification of the computational machinery needed to support a given dialogue task between two agents. Throughout this document, we reserve protocol to refer to dialogue patterns between agents, and networking or communication protocol to refer to underlying transport mechanisms such as TCP/IP. Software System A software entity, which is not conformant to the FIPA Agent Management specification. Software Service An instantiation of a connection to a software system. Speech Act Theory A theory of communications, which is used as the basis for ACL. Speech act theory is derived from the linguistic analysis of human communication. It is based on the idea that with language the speaker not only makes statements, but also performs actions. A speech act can be put in a stylized form that begins "I hereby request …" or "I hereby declare …". In this form the verb is called the performative, since saying it makes it so. Verbs that cannot be put into this form are not speech acts, for example "I hereby solve this equation" does not actually solve the equation. [Austin 62, Searle 69]. In speech act theory, communicative acts are decomposed into locutionary, illocutionary and perlocutionary acts. Locutionary acts refer to the formulation of an utterance, illocutionary refer to a categorization of the utterance from the speakers perspective (e.g. question, command, query, etc), and perlocutionary refers to the other intended effects on the hearer. In the case of the ACL, the perlocutionary effect refers to the updating of the agent's mental attitudes. TCP/IP A networking protocol used to establish connections and transmit data between hosts on the Internet. XML Extensible Markup Language. Markup language based on pair <tags> [66].