Mobile Agents, 1st Edition
Part I Motivation for and Introduction to Mobile Agents1 Designing Innovative Distributed Systems2 From Client-Server to Mobile Agents2.1 A First Look at Mobile Agents
2.1.1 The Artificial Intelligence Point of View
2.1.2 The Distributed Systems Point of View
2.2 A Short History of Mobile Agents
2.2.1 The Early Approaches of Mobile Code
2.2.2 Remote Evaluation
2.2.3 Mobile Objects
2.2.4 Mobile Processes
2.2.5 Mobile Agents
2.3 Similar but Different Concepts
2.3.1 Internet Agents, Worms, and Spiders
2.3.2 Java Applets
2.3.3 Java Servlets
2.4 Why Are Mobile Agents a Good Idea?
2.5 Possible Application Domains of Mobile Agents
Part II Mobile Agents—Concepts, Functions, and Possible Problems3 Mobile Agent Migration3.1 The Mobile Agent Migration Process
3.1.1 Generic Framework for Agent Migration
3.1.2 Migration in the Tracy Mobile Agent Toolkit
3.2 Effective Migration as a Core Feature of Mobile Agent Toolkits
3.2.1 Mobile Agents versus Client-Server
3.2.2 Performance Analysis of Simple Mobile Agents versus Client-Server
3.2.3 Discussion of Our Results and a Further Literature Review
3.3 Design Issues of Agent Migration
3.3.1 Mobility Models
3.3.2 Examples for Mobility Models
3.3.3 Related WorkOther Classification Approaches
3.4 Reasoning about Improved Mobility Models
3.4.1 Drawbacks of Simple Migration Techniques, and Current Implementations
3.4.2 Improving the Performance of Mobile Agents
3.4.3 Performance and Migration Strategies
3.4.4 The Kalong Mobility Model
3.4.5 Kalong’s Advantages
3.4.6 Migration Optimization Techniques Proposed in the Literature
4 Mobile Agent Communication4.1 Introduction
4.2 Classification of Communication Models for Mobile Agents
4.2.1 Message Passing
4.2.2 Information Space
4.3 Solutions to Provide Location-Transparent Communication
4.3.1 Central Server and Home Agency Solutions
4.3.2 Forwarding Pointers
4.3.3 Broadcast-Based Approaches
4.3.4 Hierarchical Approaches
5 Mobile Agent Security5.1 Security Requirements and Cryptographic Techniques
5.1.1 Authenticity
5.1.2 Confidentiality
5.1.3 Integrity
5.1.4 Accountability
5.1.5 Availability
5.1.6 Anonymity
5.2 Taxonomy of Possible Attacks
5.2.1 Malicious Agents
5.2.2 Malicious Agencies
5.3 Introduction to the Proposed Solutions
5.4 Organizational Solutions
5.4.1 Trusted Agencies
5.4.2 Agency Reputation
5.4.3 Law
5.5 Protecting Mobile Agents
5.5.1 Preventing Attacks on Mobile Agents
5.5.2 Detecting Attacks on Mobile Agents
5.6 Protecting Agencies
5.6.1 IntroductionJava and Security
5.6.2 Agent Authentication and Authorization
5.6.3 Agent Execution
Part III The Kalong Mobility Model—Specification and ImplementationChapter 6 Specifications of the Kalong Mobility Model6.1 Introduction
6.2 Kalong Vocabulary
6.3 Agent Model
6.3.1 Agents and Agent Contexts
6.3.2 Agencies
6.4 Application Programming Interfaces
6.4.1 Interface
Ikalong6.4.2 Interface IAgentManager
6.4.3 Interface INetwork
6.4.4 Interface IServer
6.5 The SATP Migration Protocol
6.5.1 Introduction
6.5.2 The SATP Request and Reply Messages
6.5.3 Specification of all SATP Messages
Chapter 7 Using Kalong7.1 Introduction
7.1.1 Kalong as Software Component
7.1.2 Kalong as Virtual Machine
7.2 Using the Kalong Component
7.2.1 Starting and Configuring Kalong
7.2.2 Interface IKalong
7.2.3 Interface IAgentManager
7.2.4 Examples to Use Interface IKalong
7.2.5 Push Agent Class and Load Other Classes
7.3 Extending Kalong
7.3.1 The Kalong Extension Interface
7.3.2 A First Example: Compression of All SATP Messages
7.3.3 How to Implement Security Solutions with Kalong
Chapter 8 Evaluation8.1 Related Work
8.1.1 Performance Evaluation of Existing Mobile Agent Toolkits
8.1.2 Performance Comparison of Mobile Agent Toolkits
8.2 Methodology
8.2.1 Experiments and Measurements
8.2.2 Programming Agents for the Measurements
8.2.3 Test Environment
8.3 Results of the Basic Experiments
8.3.1 Transmission Time with Regard to Code Size and Network Quality
8.3.2 Transmission Time with Regard to Data Compression
8.3.3 Transmission Time with Regard to Security
8.3.4 Effect of Migration Strategies
8.3.5 Effect of Caching
8.3.6 Effect of Data Uploading
8.3.7 Effect of Code Servers
8.3.8 Effect of Mirrors
Part IV The Tracy Mobile Agent ToolkitChapter 9 Running a Tracy Agency9.1 Welcome to Tracy
9.2 Installation of Tracy
9.2.1 Before You Start the Installation
9.2.2 Installation
9.2.3 Configuration
9.2.4 Configure JAAS
9.3 Starting and Stopping a Tracy Agency
9.4 Installation and Usage of Basic Plugins
9.4.1 AgencyShell
9.4.2 AgentLauncher
Chapter 10 Programming Agents with Tracy10.1 The First Agent
10.1.1 Creating a Tracy Agent
10.1.2 How to Use Services
10.1.3 How to Register with a Service
10.2 Survival
10.3 Place
10.4 Messaging
10.4.1 Introduction
10.4.2 The Message plugin API
10.5 Migration
10.5.1 Introduction
10.5.2 Installation
10.5.3 Programming Mobile Agents
10.5.4 Programming Kalong Scripts
10.5.5 Programming Migration Strategies
10.6 Managing Logical Agency Networks
10.6.1 Introduction
10.6.2 Installing the DomainManager plugin
10.6.3 The DomainManager API
Bibliography
Index