78,99 €
The book focuses on mobile agents, which are computer programs that can autonomously migrate between network sites. This text introduces the concepts and principles of mobile agents, provides an overview of mobile agent technology, and focuses on applications in networking and distributed computing.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 628
Veröffentlichungsjahr: 2012
CONTENTS
Foreword
Preface
Contributors
Part I: Introduction
Chapter 1: Mobile Agents and Applications in Networking and Distributed Computing
1.1 Introduction
1.2 Mobile Agent Platforms
1.3 Representative Maps
1.4 Some Applications
1.5 Overview of the Book
Part II: Principles of Applying Mobile Agents
Chapter 2: Mobile Agent Communications
2.1 Introduction
2.2 Importance of Remote Communication Between Mobile Agents
2.3 Requirements Analysis of Communication Between Mobile Agents
2.4 Several Schemes for Communication Between Mobile Agents
2.5 Mailbox-Based Framework for Designing Mobile Agent Message Delivery Protocols
2.6 Concluding Remarks and Further Research
Chapter 3: Distributed Security Algorithms for Mobile Agents
3.1 Introduction
3.2 Black-Hole Search
3.3 Intruder Capture and Network Decontamination
3.4 Conclusions
Acknowledgments
Chapter 4: Mobile Agent Coordination
4.1 Introduction
4.2 Mobile Agent Coordination: General Overview
4.3 Linda-Like Coordination Models: Some Evaluation Criteria
4.4 Overview of Some Modern Tuple-Based Approaches
4.5 Roles for Mobile Agent Coordination
4.6 Future Directions in Mobile Agent Coordination
Chapter 5: Cooperating Mobile Agents
5.1 Introduction
5.2 Model
5.3 Mapping a Network
5.4 Concurrent Reading and Writing
5.5 Fault Tolerance
5.6 Stabilization Using Cooperating Mobile Agents
5.7 Conclusion
Part III: Mobile Agent Based Techniques and Applications
Chapter 6: Network Routing
6.1 Introduction
6.2 Background and Literature Review
6.3 Network Routing Problem
6.4 Survey of Agent-Based Routing Algorithms
6.5 Comparison of Routing Algorithms
6.6 New Directions: Hybrid Agent-Based Algorithms
6.7 Conclusions
Acknowledgments
Chapter 7: Resource and Service Discovery
7.1 Introduction
7.2 Mobility and Resource/Service Discovery
7.3 Related Work
7.4 Emerging Solution Guidelines
7.5 Concluding Remarks and “Hot Topics” in Current Research
Acknowledgments
Chapter 8: Distributed Control
8.1 Introduction
8.2 MAWSG Framework
8.3 Mobile Agent–Assisted Scheme for Distributed Consensus
8.4 Mobile Agent–Assisted Distributed Dynamic Load Balancing
8.5 Mobile Agent–Enabled Scheme for Checkpointing and Rollback
8.6 Conclusion
Chapter 9: Distributed Databases and Transaction Processing
9.1 Introduction
9.2 Mobile Agent Architectures for Database Access
9.3 Querying with Agents
9.4 Transaction Management
9.5 Summary
Chapter 10: Mobile Agents in Mobile and Wireless Computing
10.1 Introduction
10.2 Mobile Computing Middleware
10.3 Mobile Agent in Mobile Computing
10.4 Mobile Agent for Pervasive Computing
10.5 Related Work
10.6 Conclusion
Part IV: Design and Evaluation
Chapter 11: Naplet: Microkernel and Pluggable Design of Mobile Agent Systems
11.1 Introduction
11.2 Design Goals and Naplet Architecture
11.3 Structured Itinerary Mechanism
11.4 Naplet Tracking and Internaplet Communication
11.5 Security and Resource Management
11.6 Programming for Network Management in Naplet
11.7 Related Work
11.8 Concluding Remarks
Acknowledgments
Chapter 12: Performance Evaluation of Mobile Agent Platforms and Comparison with Client–Server Technologies
12.1 Introduction
12.2 Brief Description of James Platform
12.3 Brief Description of Other Platforms
12.4 Benchmarking Study: Comparing Agent Platforms
12.5 Comparing Agents With RMI, Corba and Servlets
12.6 Final Remarks
Index
Wiley Series in Agent Technology
Series Editor: Michael Wooldridge, University of Liverpool, UK
The ‘Wiley Series in Agent Technology’ is a series of comprehensive practical guides and cutting-edge research titles on new developments in agent technologies. The series focuses on all aspects of developing agent-based applications, drawing from the Internet, telecommunications, and Artificial Intelligence communities with a strong applications/technologies focus.
The books will provide timely, accurate and reliable information about the state of the art to researchers and developers in the Telecommunications and Computing sectors.
Padgham/Winikoff: Developing Intelligent Agent Systems 0-470-86120-7 (June 2004)
Bellifemine/Caire/Greenwood: Developing Multi-Agent Systems with JADE 0-470-05747-5 (February 2007)
Bordini/Hübner/Wooldrige: Programming Multi-Agent Systems in Agent-Speak using Jason 0-470-02900-5 (October 2007)
Nishida: Conversational Informatics: An Engineering Approach 0-470-02699-5 (November 2007)
Jokinen: Constructive Dialogue Modelling: Speech Interaction and Rational Agents 0-470-06026-3 (April 2009)
Castelfranchi/Falcone: Trust Theory: A Socio-Cognitive and Computational Model 0-470-02875-0 (March 2010)
Cao/Das: Mobile Agents in Networking and Distributed Computing 0-471-7516-0 (January or July? 2012)
Copyright © 2012 by John Wiley & Sons, Inc. All rights reserved.
Published by John Wiley & Sons, Inc., Hoboken, New Jersey
Published simultaneously in Canada
No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning, or otherwise, except as permitted under Section 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, Inc., 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 750-4470, or on the web at www.copyright.com. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at http://www.wiley.com/go/permission.
Limit of Liability/Disclaimer of Warranty: While the publisher and author have used their best efforts in preparing this book, they make no representations or warranties with respect to the accuracy or completeness of the contents of this book and specifically disclaim any implied warranties of merchantability or fitness for a particular purpose. No warranty may be created or extended by sales representatives or written sales materials. The advice and strategies contained herein may not be suitable for your situation. You should consult with a professional where appropriate. Neither the publisher nor author shall be liable for any loss of profit or any other commercial damages, including but not limited to special, incidental, consequential, or other damages.
For general information on our other products and services or for technical support, please contact our Customer Care Department within the United States at (800) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic formats. For more information about Wiley products, visit our web site at www.wiley.com.
Library of Congress Cataloging-in-Publication Data:
Cao, Jiannong.
Mobile agents in networking and distributed computing / Jiannong Cao, Sajal K. Das.
p. cm—(Wiley series in agent technology ; 3)
ISBN 978-0-471-75160-1 (hardback)
1. Mobile agents (Computer software) 2. Electronic data processing—Distributed processing. I. Das, Sajal K. II. Title.
QA76.76.I58C36 2012
006.3—dc23
2011017017
“To my wife, Miao Yan, for her tolerance, support and caring”
—Jiannong Cao
“To my professors–Late A. K. Choudhury (Calcutta University), Lalit M. Patnaik (Indian Institute of Science, Bangalore), and Narsingh Deo (University of Central Florida)–for their mentoring and showing the beauty of research.”
—Sajal K. Das
FOREWORD
I have worked in the area of artificial intelligence, and specifically on challenges in machine learning and data mining, for twenty years. Originally these challenges focused on theoretical and algorithmic issues. Eventually, I became interested in applying these ideas to complex, real-world problems. Applied AI and machine learning not only allows researchers like me to see tangible benefits of the work, but it also introduces new algorithmic and theoretical challenges that need to be tackled.
As AI algorithms scale, they no longer exist just in the virtual world but find use in the real world. The result is that intelligent agents not only need to focus on their own problems but need to interact with other agents. As this book discusses, these agents may be components of a single system. Alternatively, they may be independent agents that are cooperating in order to solve a larger problem or they may actually be competing for resources. The agents may be pieces of software or they could be physical beings such as humans or robots. An intelligent agent may automatically discover a clever way to negotiate with others and such an agent may even harness the capabilities of other agents to boost its own performance.
I met Sajal Das, one of the editors of this book, when we both worked at the University of Texas at Arlington. Sajal is an expert in mobile computing, wireless networks, pervasive and distributed systems and has written numerous books, conference and journal articles on this topic. Together, we decided to tackle one particularly ambitious application of our respective fields: designing a smart home. We designed our smart home to perceive the state of the residents and physical surroundings, to reason about the state and its relationship to the goal of the home, and to change the state of the home using actuators in a way that achieved the goal of the home. Such a smart home relies on many components at the physical and software levels that seamlessly share information and work together to meet the goals of the home. These components include sensors, controllers, interfaces, networks, databases, machine learning algorithms, and decision-theoretic reasoners.
As an AI researcher, I find that practical application of AI and machine learning techniques can at times be overshadowed by the hurdles we face in trying to facilitate interaction and cooperation of our agents with others. This is certainly true for smart homes. During the first year that we designed our MavHome smart home, the bulk of the effort went into designing middleware (based on agent technologies), communication methodologies, database support, and interfaces. Each of these components needed to be able to work in a distributed fashion and cooperate with the other components in a seamless manner. The next evolution of the smart home project, the CASAS smart home, made even more effective use of mobile agent technology as described in this book and so was able to be up and running with less design time and a smaller software and physical footprint.
The danger of designing a real-world application is that the infrastructure of the application can start to dominate the project. In the smart home example, the design of communication and cooperation strategies can take over the project and detract from our goal of designing a home with learning and reasoning, rather than support this goal. The ideas expressed and topics covered in this book are a valuable step in designing mobile agents. The emphases on agent cooperation and transparent cooperation facilitate the design of complex and multi-agent systems, while the discussion of routing, resource discovery, and distributed security offer potential enhancements to such systems.
I find the coverage of topics in this book timely and comprehensive. The twelve chapters of the book present state of the art research, design methodologies and applications of mobile agents in the areas of networking and distributed computing. These topics range from principles of applying mobile agents for distributed coordination and communication to advanced mobile agent models and algorithms to mobile agent security to important case studies with implementation and performance evaluation.
I believe that this book will be valuable for researchers and practitioners interested in intelligent agents and mobile computing. The book will provide descriptions of cutting-edge research in technology in mobile agents and distributed computing. It will also offer practical guidance for those who, like me, want to see their ideas span the gap from concept to real-world applications.
Diane J. Cook
Washington State University
Dr. Diane J. Cook is a Huie-Rogers Chair Professor in the School of Electrical Engineering and Computer Science at Washington State University. Dr. Cook received a B.S. degree in Math/Computer Science from Wheaton College in 1985, a M.S. degree in Computer Science from the University of Illinois in 1987, and a Ph.D. degree in Computer Science from the University of Illinois in 1990. Her research interests include artificial intelligence, machine learning, graph-based relational data mining, smart environments, and robotics. Dr. Cook is an IEEE Fellow.
PREFACE
A mobile agent is a specific form of mobile code and has the features of mobility, autonomy, adaptability, and collaboration. It provides a paradigm and a powerful tool for implementing various applications in a computer networking environment. Over the past decades, the mobile agent technology has attracted a lot of attention from researchers and practitioners, thus leading to the development of theories, algorithms, systems, and platforms. Mobile agents indeed provide a means to complement and enhance existing technology in various application areas, such as information retrieval, e-commerce, parallel/distributed processing, network management, distributed data mining, event detection, and data aggregation in wireless sensor networks, to name a few.
In this book we focus on networking and distributed computing applications, and investigate how mobile agents can be used to simplify their development and improve system performance. For example, a mobile agent can structure and coordinate applications running in a networking and distributed computing environment because the agent can reduce the number of times one site contacts another and also help filter out non-useful information, thus reducing the consumption of communication bandwidth. Taking advantage of being in a network site and interacting with the site locally, a mobile agent allows us to design algorithms that make use of up-to-date system state information for better decision making. Moreover, a group of cooperating mobile agents can work together for the purpose of exchanging information or engaging in cooperative task-oriented behaviors. Agents can also support mobile computing by carrying out tasks for a mobile user temporarily disconnected from the (wireless) network.
Criticisms about mobile agents in the past were mainly concerned with the performance and security issues. However, with the advent of computer networks, mobile devices, and system dependability over the last decade, it is promising now to revisit these challenges and develop sound solution methodologies. Recent development in emerging areas like cloud computing and social computing also provides new opportunities for exploring the mobile agent technology.
This book is intended as a reference for researchers and practitioners and industry professionals, as well as postgraduate and advanced undergraduate students studying distributed computing, wireless networking, and agent technologies. It provides a clear and concise presentation of major concepts, techniques, and results in designing and implementing mobile agents based on networking and distributed computing systems and applications. The book consists of 12 chapters divided into four parts: (i) introduction, (ii) principles of applying mobile agents, (iii) mobile agent based techniques and applications, and (iv) system design and evaluation.
We gratefully acknowledge all the authors for their excellent contributions. We also thank Wiley’s editorial and production team – Diana Gialo, Simone Taylor, Christine Punzo, and particularly Shanmuga Priya – for their dedicated professional service. It has been a real pleasure to work with them. Finally, we thank our respective families for their tremendous support and cheerful tolerance of our many hours spent at work. We owe them this book.
Jiannong Cao, Hong Kong Polytechnic University
Sajal K. Das, The University of Texas at Arlington
CONTRIBUTORS
JIANNONG CAO
Department of Computing, Hong Kong Polytechnic University
SAJAL K. DAS
Department of Computer Science and Engineering, The University of Texas at Arlington, USA
Agent technology has evolved from two research areas: artificial intelligence and distributed computing. The purpose of AI research is to use intelligent computing entities to simplify human operations. An agent is just a computer program targeting that purpose [1]. Distributed computing, on the other hand, allows a complex task to be better executed by cooperation of several distributed agents on interconnected computers. So, networking and distribution bring out the true flavor of software agent technology in terms of agent autonomy, coordination, reactivity, heterogeneity, brokerage, and mobility.
Mobile agents refer to self-contained and identifiable computer programs that can move over the network and act on behalf of the user or another entity [2]. They can execute at a host for a while before halting the execution and migrating to another host and resuming execution there. They are able to detect the environment and adapt dynamically to changes. Mobile agents are widely used for handling disconnected operations in distributed, mobile, and wireless networking environments [3–6]. Also, many applications, including network diagnostic, e-commerce, entertainment and broadcasting, intrusion detection, and home health care, are benefited from the use of mobile agents [7, 8].
The term mobile agent contains two separate and distinct concepts: mobility and agency [9]. Some authors (e.g., [10]) classify a mobile agent as a special case of an agent, while others (e.g., [11]) separate the agency from mobility. Despite the differences in definition, most research on the mobile agent paradigm as reported in the literature has two general goals: reduction of network traffic and asynchronous interaction. Mobile agents can reduce the connecting time and bandwidth consumption by processing the data at the source and sending only the relevant results. By moving the agents to data-residing hosts, they can reduce communication costs. On the other hand, mobile agents support asynchronous interaction. They can continue computations even if the user that has started it, is no longer connected to the system. Mobile agents have been proposed as an alternative to the client–server paradigm which can be a more efficient and flexible mode of communication in certain application areas (Figure 1.1). It has been recognized that mobile agents provide a promising approach to dealing with dynamic, heterogeneous, and changing environments, which is tendency of modern Internet applications.
FIGURE 1.1 Mobile agent can reduce communication cost.
A mobile agent has the following properties or capabilities [12, 13]:
A mobile agent platform (MAP) is a software package for the development and management of mobile agents. It is a distributed abstraction layer that provides the concepts and mechanisms for mobility and communication on the one hand, and security of the underlying system on the other hand. The platform gives the user all the basic tools needed for creating some applications based on the use of agents. It enables us to create, run, suspend, resume, deactivate, or reactivate local agents, to stop their execution, to make them communicate with each other, and to migrate them.
Some agent standards enable interoperability between agent platforms so that software agents can communicate and achieve their objectives according to standardized specifications. The most popular agent standards are FIPA and OMG-MASIF as discussed below.
The Foundation for Intelligent Physical Agents (FIPA) was formed in 1996 to produce software standards for heterogeneous interacting agents and agent-based systems. Currently, FIPA appears to be the dominant standards organization in the area of agent technology. Important efforts have been made to address the interoperability issues between the agent platforms. Figure 1.2 presents the overall architecture of an agent system as specified by FIPA. The message transport is the main underlying mechanism devoted to communication between agents based on Agent Communication Language (ACL); at this stage, mobile agents are not supported. The message transport itself relies on standard communication techniques used by distributed system frameworks, such as Common Object Request Broker Architecture (CORBA) or Java remote method invocation (RMI).
FIGURE 1.2 Agent system reference model of FIPA.
Both Agent Management System (AMS) and Directory Facilitator (DF) are FIPA agents: the AMS is responsible for the core management activities of the agent platform whereas the DF acts as a yellow page service. Agents are registered in the DF and can be localized from their types by other agents. In addition, agent communication is ensured through the Message Transport System (MTS), including the Message Transport Protocol (MTP) and the Agent Communication Channel (ACC), which directly provide agents with specific services for communication. The ACC may access information provided by the other agent platform services such as the AMS and DF to carry out its message transport tasks.
In 1997, the Object Management Group (OMG) released a draft version of the Mobile Agent System Interoperability Facilities (MASIF) [14]. MASIF proposes a specification of the communication infrastructure as well as interfaces defined in an interface definition language (IDL) to access mobility services in order to promote the interoperability and diversity of MAP. From the interoperability and heterogeneity perspectives, OMG follows the same objectives as FIPA. The objectives in terms of requirements and functionalities are clearly different, however. Whereas FIPA is concerned with a message-based communication infrastructure, MASIF has to take into account the migration of the agent and must consequently focus on the way to dynamically create the agent, that is, to instantiate a new object at the right place and with the right class.
In Figure 1.3, the MASIF architecture appears to be a hierarchical organization of regions, agencies, and places [15]. The place is a context within an agent system in which an agent can execute its tasks and provide local access control to mobile agents. A place is associated with a location which consists of the place name and the address of the agent system within which the place resides. The agency represents the agent system itself or is the core part of the agent system. At a higher level, the region is a set of agent systems that have the same authority but are not necessarily of the same type.
FIGURE 1.3 General architecture of OMG-MASIF mobile agent system.
Considering its origin, MASIF strongly relies on a CORBA architecture and therefore on the ORB. The services provided by the region, agency, and place are defined through IDL interfaces; the most important interfaces are MAFFinder and MAFAgentSystem: the MAFFinder supports the localization of agents, agent systems and places in the scope of a region or in the whole environment; on the other hand, the MAFAgentSystem interface provides operations for the management and transfer of agents. In MASIF, the agent’s migration requires the transfer of the agent class so that the agent can be properly instantiated.
In the following, we briefly describe some representative MAPs.
This is a Java MAP and library that eases the development of agent-based applications. Originally developed at the IBM Tokyo Research Laboratory, the Aglets technology is now hosted at sourceforge.net as an open-source project, where it is distributed under the IBM Public License. Aglets is completely made in Java, granting a high portability of both the agents and the platform. The aglet represents the next leap forward in the evolution of executable content on the Internet, introducing program code that can be transported along with state information. Aglets are Java objects 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 itself to a remote host, and resume execution there. When the aglet moves, it takes along its program code as well as its data.
This does not formally specify a mobile agent model. Instead, a mobile agent is understood as a program that can be written in any language and that accesses features that support mobility via a common service package implemented as a server. This server provides mobile agent–specific services such as state capture, transfer facility, and group communication as well as more traditional services such as disk access, screen access, and CPU cycle. The philosophy was that all functionalities an agent ever wants are available in the server. Agent mobility then only concerns closure, which is the Tcl script (or scripts). There are no additional codes to load (i.e., no external references). In Agent Tcl, the state capture of an agent is handled automatically and transparently to the programmer. However, it is unclear what this state capture includes. Since Tcl is a script language, a frequent example given is that the executing script resumes after the instruction for mobility has been executed. There is also a plan to introduce process migration–like behavior such that the states of the agent would continue to evolve as it moves from place to place. However, this trend could have adverse effects in areas such as the complexity of the transfer mechanism and cost, adverse effects that are still being dealt with in the more traditional process migration.
The agent development platform launched by IKV++ in August 1998, enables the user to create a wealth of applications based on agent technology. This platform is completely implemented in Java, a programming language that has become widely known among programmers, giving them the opportunity to work with Grasshopper without intensive further training. Companies with an urgent need for true distributed systems can therefore benefit almost immediately from the advantages of Java as well as from Grasshopper’s unique suitability for such systems. Grasshopper is also the first mobile agent environment that is compliant to the industry standard supporting agent mobility and management (OMG-MASIF). This compliance ensures compatibility with other agent environments or applications based on the same standard, thus avoiding costly and time-consuming integration procedures. From Grasshopper version 1.2 released in 1999, it is also compliant with the specifications of the FIPA standards. Grasshopper can be used in many different application contexts, telecommunications being one of the most prominent application areas.
This is another mobile agent framework built on Java. In Concordia an agent is regarded as a collection of Java objects. A Concordia agent is modeled as a Java program that uses services provided by a collection of server components that would take care of mobility, persistence, security, communication, administration, and resources. These server components would communicate among themselves and can run in one or several Java virtual machines; the collection of these components forms the agent execution environment (AEE) at a given network node. Once arriving at a node, the Concordia agent accesses regular services available to all Java-based programs such as database access, file system, and graphics, as in Aglet. A Concordia agent is considered to have internal states as well as external task states. The internal states are values of the objects’ variables, while the external task states are the states of an itinerary object that would be kept external to the agent’s code. This itinerary object encapsulates the destination addresses of each Concordia agent and the method that each would have to execute when arriving there. The designers of Concordia claim that this approach allows greater flexibility by offering multiple points of entry to agent execution, as compared to always executing an “after-move” method as in Agent Tcl, or Aglet. This concept of an externally located itinerary is similarly supported in Odyssey via task object. However, the infrastructure for management of these itinerary objects is not clear from the publicly available literature on Concordia which has support for transactional multiagent applications and knowledge discovery for collaborating agents.
The agent is modeled as a cluster of Java objects, a closure without external references except with the host system. The agent is thus a transitive closure over all the objects to which the main agent object contains a reference. This island concept was chosen by the designers of Mole to allow simple transfer of agents without worrying about dangling references. Each Mole agent has a unique name provided by the agent system which is used to identify the agent. Also, a Mole agent can only communicate with other agents via defined communication mechanisms which offer the ability to use different agent programming languages to convert the information transparently when needed. A Mole agent can only exist in a host environment call location that serves as the intermediate layer between the agent and the operating system. Mole also supports the concept of abstract location to represent the collection of distributed physical machines. One machine can contain several locations, and locations may be moved among machines. Mole limits the abstract location to denote a configuration that would minimize cost due to communication. Thus, a collection of machines in a subnet is an acceptable abstract location, whereas a collection of machines that spans cities is not. Mole proposed the concept of a system agent which has full access to the host facilities. It is through interacting with these system agents that a given Mole agent (mobile) achieves tasks. A Mole mobile agent can only communicate with other agents (systems and mobile agents) and has no direct access to resources. The uniqueness of this agent model is its requirement for closure of objects, whereas other facilities such as static agent and communication are conceptually similar to other systems. What is unclear is how the Mole system enforces the closure requirement and whether there are mechanisms to handle closure management automatically. The concept of closure is technically convenient, but without helping tools it can be error prone and thus limiting.
Project shares (or rather inherits) many features from a previous General Magic product: Telescript. However, the amount of open documentation on the Odyssey system is rather terse; therefore, its description is limited. The Odyssey mobile agent model also centers on a collection of Java objects, more similar in concept to Aglet than to Concordia or Mole. The top-level classes of the Odyssey system are Agent, Worker, and Place. Worker is a subclass of Agent and represents an example of what a developer can do with the Agent class. A Place class is an abstraction of where an Odyssey agent exists and performs work. A special facility such as directory service is associated with Place. Odyssey agents communicate using simple method calls, and do not support high-level communication. However, Odyssey agents can form and destroy meeting places to exchange messages. There is also an undocumented feature regarding global communication to a “published” object, but this feature is not officially supported. The distinctive feature of Odyssey is its design to accommodate multiple transport mechanisms. Currently, Odyssey supports Java RMI, Microsoft Distributed Component Object Model (DCOM), and CORBA Internet Inter-ORB Protocol (IIOP). However, the current release of Odyssey does not add new or distinctive features from its Telescript predecessor, and the mobile agent model is not yet stable.
All the above mobile agent platforms are targeted at providing execution environment and programming support for developing applications. Primitive language-level operations required by programmers for developing agent-based applications are identified. They are (1) basic agent management functions, such as creation, dispatching, cloning, and migration; (2) agent-to-agent communication and synchronization functions; (3) agent monitoring and control functions, such as status queries, recall, and termination of agents; (4) fault tolerance functions, such as check pointing, exception handling, and audit trails; and (5) security-related functions, such as encryption, authentication, signing, and data sealing.
As mentioned before, many mobile agent–based applications have been studied. Readers can find surveys on various types of applications [7, 8]. Based on earlier mobile agent platforms, several new platforms have been developed to meet the requirements of newly emerging computing technologies and applications, including mobile computing, ad hoc networking, and ubiquitous or pervasive computing [6, 16–20].
For distributed and network computing, mobile agent technology has been used to design both system functions and applications. This book includes excellent tutorial and advanced materials that cover a wide range of topics. Here, we just describe one of the typical mobile agent applications that can help reduce network communication cost. The mobile agent is particularly attractive as a promising technology for information retrieval in large-scale distributed systems like the Internet. The mobile agent acts as task-specific executable code traveling the relevant information source nodes to retrieve data. Several approaches have been proposed with both experimental and analytical evaluations [21–23].
More recently, the mobile agent has been used in designing dynamic and ad hoc systems. It enables the system to have the ability to deal with the uncertainty in a dynamic environment. For example, works have been reported [24, 25] on using mobile agents for monitoring, traffic detection, and management in highly dynamic distributed systems. Other examples include using mobile agents for ad hoc networks [6, 26].
Mobile agents are also being used for developing applications for wireless sensor networks (WSNs). Various operations and system functions in WSNs can be designed and implemented using mobile agents, which can greatly reduce the communication cost, especially over low-bandwidth links. Efficient data dissemination and data fusion in sensor networks using mobile agents have been proposed [4, 27, 28]. Solutions to location tracking in sensor networks using mobile agents are also proposed [29]. Location tacking aims to monitor the roaming path of a moving object. There are two primary challenges: no central control mechanism and backbone network in such environment and the very limited wireless communication bandwidth. A mobile agent can assist in tracking such a mobile object by choosing to migrate in the sensor closest to the object. For programming support, mobile agent–based WSN middleware has been developed as a better foundation for rapidly developing flexible applications for WSNs [5, 30]. Also WSN-based structural health monitoring applications use mobile agent–based network middleware [31] to enhance flexibility and to reduce raw data transmission. Design of wireless sensor networks for structural health monitoring presents a number of challenges, such as adaptability and the limited communication bandwidth. In [31], an integrated wireless sensor network consisting of a mobile agent–based network middleware and distributed high computational power sensor nodes has been developed. The mobile agent middleware is built on a mobile agent system called Mobile-C that allows a sensor network to move computational programs to the data source. With mobile agent middleware, a sensor network is able to adopt newly developed diagnosis algorithms and make adjustments in response to operational or task changes.
As briefly described in the previous sections, there exists many applications to benefit from mobile agent technology such as e-commerce, information retrieval, process coordination, mobile computing, personal assistance, and network management. Still more and more applications are switching to use mobile agents due to their flexibility and adaptability. Also their abilities of asynchronous and autonomous execution make connectionless execution possible, which might be extremely valuable in the mobile computing context. By moving computation to data rather than data to computation, mobile agents can also reduce the flow of raw data in the network and therefore overcome network latency, which is especially critical to real-time applications. Additionally, other distinguishable features, such as fault tolerance, natural heterogeneity, and protocol encapsulation enhance the utilization and application horizon of the mobile agent technology over traditional approaches.
This book focuses on cutting-edge research and applications of mobile agent technology in the areas of networking and distributed computing. The book is divided into four parts: (1) introduction, (2) principles of applying mobile agents to networking and distributed computing, (3) mobile agents techniques as applied to networking and distributed computing, and (4) design and evaluation.
The first part introduces the idea of mobile agents and discusses their potential as an important tool in networking and distributed computing.
The second part will show how to apply mobile agents to networking and distributed computing. In this part, we cover mobile agent communication, coordination, and cooperations as well as mobile agent security mechanisms. Agents must communicate with each other in order to solve problems together. Communication has been viewed between agents as planned actions that are not aimed at changing the environment; rather the aim is to change the beliefs and intentions of the agent to whom the message is sent. This implies that social agents should have a framework with which to analyze each other’s behavior. Mobile agent coordination is mainly required for distributed programs consisting of a team of cooperating agents, where each agent is responsible for performing part of a common, global task. Teams of mobile agents are likely to become the means to implement several distributed and networked applications in the future. For example, one possible application is the search for some information in the network to be performed in parallel by a group of agents that will not visit the same host more than once. Cooperation between a collection of mobile agents is required for exchanging information or for engaging in cooperative task-oriented behaviors. In addition to the advantages of the mobile agent, using a cooperating mobile agent allows us to provide clear and useful abstractions in building network services through the separation of different concerns. Furthermore, mobile agents can be used to perform intrusion detection. With mobile agent technology, the collection nodes, internal aggregation nodes, and command and control nodes do not have to continuously reside on the same physical machine. For example, a mobile agent may function as an aggregation node and move to whatever physical location in the network is best for its purposes.
The third part of the book, describes in detail the techniques of mobile agents in networking. Especially we discuss the applications of agents in network routing, resource and service discovery, distributed control, distributed databases and transaction processing, and wireless and mobile computing. Mobile agents can have interesting applications at the network infrastructure layer. Agents can adapt the network infrastructure to changing needs over time and can facilitate network routing. Mobile agents can also dynamically discover resources they need to accomplish their tasks. When an agent arrives at a site, it should be able to discover the services offered at that site or things it could do. Distributed control using mobile agents is a useful approach for load balancing, deadlock detection, mutual exclusion, and so on. Characteristics of mobile agents make them useful in achieving load balance in the whole system. We also present some distributed algorithms using mobile agent systems for mutual exclusion, deadlock detection, consensus, and so on. Using transactions for managing large data collections will guarantee the consistency of data records when multiple users or processes perform concurrent operations on them. Owing to the heterogeneous and autonomous environment that the mobile agents operate in and their typical longevity, agent-based transactions have specific requirements. We discuss those requirements and possible recovery mechanisms. With the advent of mobile wireless communications and the growth of mobile computing devices, such as laptop computers, personal digital assistants (PDAs), and cell/smart phones, there is a growing demand for mobile agent–based mobile computing middleware and the mobile agent platforms for wireless hand-held devices and pervasive computing [32].
In the final part, we will discuss the means of measuring performances of mobile agent systems during the development of agent code, such as capturing the overhead of local agent creation, point-to-point messaging, and overhead for agent roaming. We can a keep track of the execution-related performances of mobile agents, such as the migration performance.
REFERENCES
1. A. Lingnau, O. Drobnik, and P. Domel, An HTTP-based infrastructure for mobile agents, WWW J., Proceedings 4th International WWW Conference, Vol. 1, Dec. 1995, pp. 461–471.
2. K. Rothermel and R. Popescu-Zeletin, Eds., Mobile agents, Lecture Notes in Computer Science, 1219, Springer, 1997.
3. J. Cao, Y. Sun, X. Wang, and S. K. Das, Scalable load balancing on distributed web servers using mobile agents, J. Parallel Distrib. Comput., 63(10):996–1005, Oct. 2003.
4. M. Chen, S. Gonzalez, and V. C. M. Leung, Applications and design issues for mobile agents in wireless sensor network, IEEE Wireless Commun., 14(6):20–26, Dec. 2007.
5. C.-L. Fok, G.-C. Roman, and C. Lu, Agilla: a mobile agent middleware for self-adaptive wireless sensor networks, ACM Trans. Auton. Adapt. Syst., 4(3), July 2009.
6. J. Park, H. Yong, and E. Lee, A mobile agent platform for supporting ad hoc network environment, Int. J. Grid Distrib. Comput., 1(1), 2008.
7. D. Milojicic, Mobile agent applications, IEEE Concurrency, July–Sept. 1999.
8. A. Outtagarts, Mobile agent-based applications: A survey, IJCSNS Int. J. Comput. Sci. Network Security, 9(11), Nov. 2009.
9. V. A. Pham and A. Karmouch, Mobile software agents: An overview, IEEE Commun. Mag., 36(7):26–37, July 1998.
10. H. S. Nwana and N. Azarmi, Eds., Software agents and soft computing: Towards enhancing machine intelligence, Lecture Notes AI Series, 1198, Springer, 1997.
11. J. Vitek and C. Tschudin, Eds., Mobile object systems: Towards the programmable internet, Lecture Notes in Computer Science, 1222, Springer, 1997.
12. J. White, Prospectus for an open simple agent transfer protocol. White paper, General Magic, online, 1996.
13. A. Piszcz, A brief overview of software agent technology. White paper, The MITRE Corporation, McLean, VA, 1998.
14. GMD Fokus, Mobile agent system interoperability facilities specification, OMG TC Document orbos/97-10-05, Nov. 1997. (OMG homepage - www.omg.org)
15. C. Baumer, M. Breugst, S. Choy, and T. Magedanz, Grasshoper: a universal agent platform based on OMG MASIF and FIPA Standards, http://www.ikv.de/products/grasshopper.html.
16. J. Cao, D. C. K. Tse, A. T. S. Chan, PDAgent: A platform for developing and deploying mobile agent-enabled applications for wireless devices, in Proceedings of 2004 International Conference on Parallel Processing (ICPP’2004), Montreal, Quebec, Canada, Aug. 2004, pp. 510–517.
17. F. Bagci, J. Petzold, W. Trumler, and T. Ungerer, Ubiquitous mobile agent system in a P2P-Network, paper presented at the UbiSys-Workshop at the Fifth Annual Conference on Ubiquitous Computing, Seattle, WA, Oct. 12–15, 2003.
18. M. Kumar, B. Shirazi, S. K. Das, B. Sung, D. Levine, and M. Singhal, PICO: A middleware framework for pervasive computing, IEEE Pervasive Comput., 2(3):72–79, July–Sept. 2003.
19. J. R. Kim and J. D. Huh, Context-aware services platform supporting mobile agents for ubiquitous home network, in Proceedings of the 8th International Conference on Advanced Communication Technology (ICACT’2006), Phoenix Park, Gangwon-Do, Korea, February 20–22, 2006.
20. G. S. Kim, J. Kim, H.-j. Cho, W.-t. Lim, and Y. I. Eom, Development of a lightweight middleware technologies supporting mobile agents, Lecture Notes in Computer Science, Vol. 4078, 2009.
21. S. Pears, J. Xu, C. Boldyreff, Mobile agent fault tolerance for information retrieval applications: An exception handling approach, in Proceedings of the 6th International Symposium on Autonomous Decentralized Systems (ISADS’03), 2003.
22. W. Qu, M. Kitsaregawa, and K. Li, Performance analysis on mobile-agent based parallel information retrieval approaches, in Proceedings of 2007 IEEE International Conference on Parallel and Distributed Systems, Dec. 5–7, 2007.
23. W. Qu, W. Zhou, and M. Kitsaregawa, An parallel information retrieval method for e-commerce, Int. J. Comut. Syst. Sci. Eng., 5:29–37, 2009.
24. B. Chen, H. H. Cheng, and J. Pelen, Integrating mobile agent technology with multi-agent systems for distributed traffic detection and management, Transport. Res. Part-C., 17, 2009.
25. J. Ahn, Fault tolerant mobile-agent based monitoring mechanism for highly dynamic distributed networks, Int. J. Comput. Sci. Iss., 7(3):1–7, May 2010.
26. G. Stoian, Improvement of handoff in mobile WiMAX network using mobile agent, in Latest Trends in Computers, Vol. 1, WSEAS Press, 2010, pp. 300–305.
27. Q. Hairong, S. Iyengar, and K. Chakrabarty, Multiresolution data integration using mobile agents in distributed sensor networks, IEEE Trans. Syst. Man Cybernet., 31(3):383–391, August 2001.
28. Q. Wu, N. S. V. Rao, and J. Barhen, On computing mobile agent routes for data fusion in distributed sensor networks, IEEE Trans. Knowledge Data Eng., 16(6):740–753, June 2004.
29. Y.-C. Tseng, S.-P. Kuo, H.-W. Lee, and C.-F. Huang, Location tracking in a wireless sensor network by mobile agents and its data fusion strategies, Comput. J., 47(4):448–460, July 2004.
30. C.-L. Fok, G.-C. Roman, and C. Lu, Mobile agent middleware for sensor networks: An application case study, Proceedings of the 4th International Symposium on Information Processing in Sensor Networks (IPSN), Los Angeles, CA, 2005, pp. 382–287.
31. B. Chen and W. Liu, Mobile agent computing paradigm for building a flexible structural health monitoring sensor network, Comput.-Aided Civil Infrastruct. Eng., 25(7):504–516, October 2010.
32. Y. Feng, J. Cao, I. Lau, Z. Ming, and J. Kee-Yin Ng, A component-level self-configuring personal agent platform for pervasive computing, Int. J. Parallel, Emergent Distrib. Syst. 26(3):223–238, June 2011.
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
