Summary for Agent Software Development and Electronic Commerce

Wenguang Wang

Computer Science Department, University of Saskatchewan

Email: wew036@cs.usask.ca

URL: http://www.cs.usask.ca/grads/wew036

  1. Introduction
  2. A general discussion about some important issues of software agents and their applications in electronic commerce is in this summary. Section 2 discusses the concept of agent. Section 3 contains some issues in agent software development, including the internal architecture of agents, the communication between agents, mobile agents, and some pitfalls in agent software development. Section 4 concerns the application of agents in electronic commerce.

  3. What is an agent?
  4. The workers involved in agent have given many definitions of agent, each hoping to explicate his or her use of the word "agent". However, these definitions grew directly out of the set of examples of agents that the definer has in mind, so they do not grasp the generality of an agent and cannot distinguish an agent and a program. Franklin and Graesser proposed a definition for autonomous agents [4]: An autonomous agent is a system situated within and a part of an environment that senses that environment and acts on it, over time, in pursuit of its own agenda and so as to effect what it senses in the future. This definition attempts to capture the essence of being an agent, and to define the broadest class of agents.

    Four essential properties can derive from the above definition: reactive, which means an agent responds in a time fashion to changes in the environment; autonomous, which means an agent exercises control over its own actions; goal-oriented, which means an agent acts purposefully to achieve its goals; and temporally continuous, which means an agent is a continuously running process.

    However, Petrie argues that the intelligent is not very helpful for the integration and interaction of engineering agents [8]. This is because: first, the intelligent is a subjective label, which has no clear meanings. Second, many agents have not much intelligence at all. However, these weak agents can be as powerful as the agents complying the traditional definitions. Third, this subjective label is applicable only to an epiphenonmenon rather than a design objective.

  5. Agent software development
  6. Software agent is such new that it cannot be easily developed by traditional procedure-oriented and object-oriented development methodologies. Some issues about agent software development are discussed in this section. First, the internal architecture of agents is discussed. Then, the communication issue of agents is presented. The following part talks about the framework supporting mobile agents. At last, some pitfalls when developing agent-based systems are shown.

    1. Internal Architecture of Agents
    2. The internal architecture may become increasingly important for large multiagent systems deployed in networked environments, as the level of intelligence required of individual agents increases. Cognitively rich internal mechanisms and structures are necessary to model complex communications and plan with (and between) agents. Sloman and Logan proposed three architectures to describe different agent systems [9].

      The first internal architecture is purely reactive, where the detection of internal or external conditions immediately generates new internal or external responses, which in turn could trigger new reactions. The internal and external feedback loops and changes of state that alter a reactive agent’s responses to new sensory inputs can combine to achieve quite sophisticated behaviors. This architecture is simple and fast.

      A deliberative architecture archives a greater flexibility by allowing sets of possible actions to be assembled and evaluated without necessarily being selected for execution. This architecture requires a large amount of stored knowledge about which actions are possible and relevant in various circumstances and what the effects of various actions are in those circumstances. Reusable short term memory is also needed for building structures representing possible action sequences in order to evaluate their consequences. A deliberative system is much slower than a reactive one. Such a deliberative architecture might be used to cope with the tasks achieving new types of goals or acting in novel contexts.

      An additional reflective architectural layer with the ability to monitor, evaluate, and possibly modify internal processes of various kinds may be beneficial when realistic multiagent systems have to take account of internal within-agent conflicts as well as between-agent conflicts and negotiations. This additional layer could be based on a mixture of internal reactive and deliberative processes.

    3. Communication between Agents
    4. Communication between agents is a crucial point for agent technology. Most agents need to communicate with other agents in order to achieve their goals. Because agents often reside in a distributed and open environment, it is hard to make them communicate and share knowledge. Considering the importance of the Internet as a world wide distributed environment, Internet-based agents will become more and more popular. Communication problems about Internet-based agents are first discussed. Then the agent communication language is discussed.

      1. Communication of Web-based agent
      2. An agent often initiates messages. Thus a peer-to-peer protocol is a necessary condition for agent communication. However, a client/server protocol, admitting one reply to one request, does not allow servers to initiate messages. Unfortunately, the Internet is mainly based on the client/server protocol HTTP. This implies that agents are largely incompatible with the Web, and are very different from engineering web servers. Moreover, agents require a structure reflecting task-level semantics, but the Web is oriented around formatting structure representing only transport and display of information.

        Some ways are useful to solve this incompatibility [8]. The client pull and server push (http://www.netscape.com/assist/net_sites/pushpull.html) with HTML 3.0 can makes HTTP a peer-to-peer protocol and thus useful for agent communications, though this is an awkward way. The JAT (Java Agent Template) (http://cdr.stanford.edu/ABE/JavaAgent.html), which facilitates writing Java agents that send KQML messages and allow people to interact with agents through browsers, is better to overcome the protocol problem. The lack of semantic structure in HTML documents may be addressed in the future by advanced authoring tools and by programs that can read extract semantics from web documents.

      3. Agent communication language

      The ability for flexible interaction and interoperation with other similar software agents is very important to an agent. For software agents to interact and interoperate effectively requires three fundamental components: (i) a common language; (ii) a common understanding of the knowledge exchanged; and (iii) the ability to exchange whatever is included in (i) and (ii). This language should support and facilitate common behaviors of agents.

      KQML or the Knowledge Query and Manipulation Language is a language and protocol for exchanging information and knowledge [1]. It is part of a larger effort, the ARPA Knowledge Sharing Effort (http://www.cs.umbc.edu/kse/) which is aimed at developing techniques and methodology for building large-scale, sharable, and reusable knowledge bases. 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 intelligent systems to share knowledge in support of cooperative problem solving.

      The KQML language focuses on an extensible set of performatives defining 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 interactions 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. Current research status of KQML can be found in UMBC KQML Web (http://www.cs.umbc.edu/kqml/).

      After the draft of KQML was published in 1993, KQML has become a de facto standard of agent communication language. This does not mean that the definition of KQML is complete and diligent, but implies that a common language is needed for agents to communicate. However, because KQML is not very complete, several implementations and variations also exist in practice. These variations impede the application of KQML. After the FIPA ACL (http://www.fipa.org) has been released in October 1997, it is rapidly spreading to replace KQML as the ACL of choice [6].

      Both KQML and ACL are interlingua languages, intended to provide a common linguistic basis for independent agents to communicate with each other. Both languages are based on speech act theory, which states that individual communications can be reduced to one of a small number of primitive speech, or more generally, communicative acts, which shape the basic meaning of that communication [2].

      There are several needs in inter-agent communication which are querying and information passing, managing multiple responses to queries, managing capability definition and dissemenation, and managing communications. KQML attempts to define a core set of performatives that together meet all of these needs, while balancing a desire for parsimony in the language. ACL does not attempt to cover all of these needs within the language. Instead, some categories are explicitly devolved to the agent management system (see part 1 of the FIPA 97 specification, http://www.fipa.org) or are the responsibility of the content language.

      FIFA 98 specified an agent ontology service on agent communication (FIPA 98, Part 12, http://www.fipa.org). FIFA 99 proposed new communicative acts (CAs) and new interaction protocols, enhanced the FIPA agent communication framework with mechanisms to facilitate developing a variety of mediated multiagent systems, and clarified the use of common content languages in a wide range of applications [3].

    5. Mobile Agents and a Generic Java-based Mobile Agent Architecture
    6. The mobile agent is a kind of agent which can migrate from one place to another when needed. It can reduce network traffic for applications processing large quantities of data. It can overcome network latency. Mobile agents also provide some autonomy, because they themselves can decide dynamically where and when to travel to a particular node to perform some required work. Mobile agents also give the user a natural mode of asynchronous interaction. The user can send the agent to a remote host and disconnect the network as desired. The autonomy and asynchronous nature of mobile agents is also especially effective in protecting mission-critical applications from failure caused by unreliable networks.

      Java is a suitable language to support mobile agents. A generic Java-based mobile agent architecture is proposed in [10]. It consists of six major components. The agent manager sends agents to remote hosts and receives agents for execution on the local host. The security manager protects the host and the mobile agents against unauthorized access. The reliability manager ensures the robustness of the mobile agent system. The interagent communications manager facilitates communication between mobile agents dispersed throughout a network. The directory manager can be used to identify the location of an application server. And the application gateway serves as a secure entry point through which agents can interact with application servers (such as legacy databases).

      The design, implementation, and debugging of mobile agents is much more difficult than agents without mobility. On the other hand, most tasks of mobile agents can be implemented by non-mobile agents. For example, an agent can access a remote host directly instead of send itself to the host. Therefore, a designer should be quite careful before he/she decide to use mobile agents.

    7. Pitfalls of Agent-Oriented Software Development

    Agent technology appears to provide a powerful way of conceptualizing, designing, and implementing a particularly complex class of software systems. However, agent technology is essentially immature and untested. With no body of experience to guide them, agent system developers tend to find themselves falling into the same traps [12].

    Agents are not a magical problem solving paradigm. Although agents may make it easier to solve certain classes of problems, they do not make the impossible possible. There is a danger of believing that agents are the right solution to every problem. This is not true. Some agent developers want to build generic solutions or generic architectures for their system. However, general solutions are difficult and costly to develop and often need extensive tailoring to work in different applications. A "generic" architecture inevitably leads the developer to attempt to apply it to a problem for which it is patently unsuited. When developing any agent system, the percentage of the design that is agent-specific (e.g., doing cooperation or negotiation, or learning a user’s profile) is comparatively small. It is important that conventional technologies and techniques are exploited wherever possible. However, such basic software engineering good practice is often ignored, which causes the project to flounder. Agents should be coarse grained, in that each should embody significant, coherent computational functionality. Therefore, too many agents increase the overhead of inter-agent communication greatly and make the system too complex. On the other hand, too few agents are not pretty and tend not to exploit concurrency.

  7. Agent and Electronic Commerce
  8. Electronic commerce is a complex distributed, open system. Agent technology is suitable to be used in E-Commerce. Agents can act as buyers and sellers and communicate and negotiate with each other autonomously. How to maximize the freedom without letting the system devolve into chaos under this autonomy is discussed in section 4.1. How to facilitate the publishing and interchanging of commerce related documents in the Web is discussed in section 4.2. The last section introduces some real e-commerce systems.

    1. Communicating by Commitments
    2. The autonomy of agents in e-commerce systems is a mixed blessing – it must be managed to avoid the possible chaos. The main basis for managing autonomy lies in the notion of commitments. A flexible formulation of commitments can provide a natural means through which autonomous agents may voluntarily constrain their behaviors. This approach can achieve a coherent state in the ongoing interactions of the participating components. This not only facilitates automation, but is also more intuitive and closer to some aspects of human social behaviors [6].

      A commitment is a relationship between a debtor, a creditor, a context, and a proposition. The debtor owes it to the creditor to make the proposition true; the context serves as a witness and as the adjudicator of disputes. A sphere of commitment (SoCom) is viewed conceptually as a scope within which a commitment applies. The operations on commitments (create, discharge, cancel, delegate, assign, release) are typically governed by metacommitments. The set of applicable metacommitments effectively defines the structure of a multiagent system.

      Spheres of commitment can be applied naturally in the SMART project (http://smart.npo.org/), which is run by the National Industrial Information Infrastructures Protocols (NIIIP) consortium (http://www.niiip.org/).

    3. Communicating by XML Framework
    4. Because HTML is not semantically encoded, software agents and search engines have difficulties in accessing the online information and services. The CommerceNet’s eCo system (http://www.commerce.net) tried to develop an XML Framework to solve this problem. Extensible markup language (XML) can encode information and services with meaningful structure and semantics that agents can readily understand. Publishing XML-encoded documents, such as data sheets, price lists and orders, can make the buyers compare products across many vendors and catalog formats, and sellers publish their catalog information once to reach many potential buyers.

      XML’s power derives from its extensibility and ubiquity. Business Interface Definitions (BIDs) which include business document definitions are XML extensions defined by the eCo System [5]. The Common Business Library (CBL) is an extensible, public collection of generic BIDs and document templates that companies can customize and assemble to go online quickly. The basic CBL elements can be used to implement the basic business forms used in X12 EDI transactions, as well as those in OTP, OBI, and other emerging Internet standards.

      Some XML-based specifications for the business information have been developed, including Open Trading Protocol (OTP, http://www.otp.org), RosettaNet (http://www.rosettanet.org), XML/EDI (http://www.xmledi.com), Open Buying on the Internet (http://www.openbuy.org), Information and Content Exchange (http://www.w3.org/TR/1998/NOTE-ice-19981026), and Open Financial Exchange (http://www.ofx.net).

    5. Some E-Commerce Systems

    There are several agent systems that lower consumers’ search costs when deciding which products best meet their needs [7]. PersonaLogic (http://www.personalogic.com) and Firefly (http://www.firefly.com) are two product-brokering agents. PersonaLogic enables consumers to narrow the list of products that best meet their needs by helping them define a number of product features, while Firefly adopts an automated "word-of-mouth" recommendation mechanism called "collaborative filtering" to recommend products.

    Andersen Consulting’s BargainFinder (http://bf.cstar.ac.com/bf) and Jango (http://jango.excite.com) compare are two merchant-brokering agents. The BargainFinder is the first shopping agent for online price comparisons. Jango can be viewed as an advanced BargainFinder, which has the product requests originate from each consumer’s Web browser instead of from a central site, as in BargainFinder. Such aggressive interoperability makes it convenient for consumers to compare prices from a number of merchants’ online catalogs.

    During the negotiation stage, participants settle on price or other terms of transactions. OnSale (http://www.onsale.com) and eBay’s AuctionWeb (http://www.ebay.com/aw) are two popular Web sites selling secondhand products through a choice of auction protocols. However, these sites still require consumers to manage their own negotiation strategies over an extended period. The AuctionBot (http://auction.eecs.umich.edu), Kasbah (http://kasbah.media.mit.edu), and T@T (http://ecommerce.media.mit.edu/tete-a-tete/) are three advanced negotiation agents. AuctionBot is a general-purpose Internet auction server. Its users create new auctions by choosing from a selection of auction types and then specifying its parameters. Buyers and sellers can then bid according to the auction’s multilateral distributive negotiation protocols. Kasbah is an online, multiagent, consumer-to-consumer transaction system. Users who want to buy or sell an item create an agent, give it some strategic direction and send it off into a centralized agent marketplace. T@Ts consumer-owned shopping agents and merchant-owned sales agents cooperatively negotiate across multiple terms of a transaction.

References

[1] Tim Finin, Yannis Labrou, and James Mayfield. KQML as an agent communication language. Software Agents. MIT Press Cambridge 1995.

[2] FIPA 97 Specification, Version 2.0, Part 2, Agent Communication Language. Http://www.fipa.org/spec/fipa97.html

[3] TC C: Agent Communication. FIPA Spec 2-1999. Http://www.fipa.org/spec/fipa99.html

[4] Stan Franklin, Art Graesser. Is it an Agent, or just a Program?: A Taxonomy for Autonomous Agents. Proceedings of the Third International Workshop on Agent Theories, Architectures, and Languages, Springer-Verlag, 1996

[5] Robert J. Glushko, Jay M. Tenenbaum, and Bart Meltzer. An XML Framework for Agent-based E-commerce. Communications of the ACM. March 1999, Vol.42, No.3.

[6] Anuj K. Jain, Manuel Aparicio IV, and Munindar P. Singh. Agents for Process Coherence in Virtual Enterprises. Communications of the ACM. March 1999, Vol.42, No.3.

[7] Pattie Maes, Robert H. Guttman, and Alexandros G. Moukas. Agents That Buy and Sell. Communications of the ACM. March 1999, Vol.42, No.3.

[8] Charles J. Petrie, Agent-Based Engineering, the Web, and Intelligence. IEEE Expert.

[9] Aaron Sloman, and Brian Logan. Building Cognitively Rich Agents Using the Sim_Agent Toolkit. Communications of the ACM. March 1999, Vol.42, No.3.

[10] David Wong, Noemi Paciorek, and Dana Moore. Java-based Mobile Agents. Communications of the ACM. March 1999, Vol.42, No.3.

[11] Michael Wooldridge. Agents and Software Engineering

[12] Michael Wooldridge, Nicholas R. Jennings. Pitfalls of Agent-Oriented Development.


Please report any problems with this document to wew036@cs.usask.ca
This page is last modified on Friday April 9, 1999