Public ARE Specifications

Release 3.1


Table of Contents

Preface
1. Copyright Information
2. Acknowledgement of Trademarks
3. Warning and Disclaimer
4. Contact Tryllian
1. Introduction
1.1. Goal
1.2. Scope
1.3. Format of this section
1.4. Completeness
2. Agent Runtime Environment
2.1. What is the ARE?
2.2. Important features
3. Developing an agent
3.1. Messages
3.1.1. Data structure of Messages
3.1.2. Keys and possible values in Messages
3.1.3. FIPA
3.1.4. Message Delivery
3.1.5. Message Security
3.1.6. External format
3.2. Habitat communication
3.2.1. Architecture
3.2.2. Configuration
3.2.3. Creating a new messenger plugin
3.2.4. The ping tool
3.3. Addresses
3.3.1. Formal address definition
3.3.2. Example addresses
3.3.3. Habitat names
3.3.4. Agent registration
3.3.5. Creating an address
3.3.6. How are addresses resolved?
3.3.7. Equality of addresses
3.4. IDs
3.4.1. The Habitat ID
3.4.2. The Agent ID
3.5. JNDI
3.5.1. JNDI operations
3.5.2. The ADK namespaces
3.5.3. Registering an address
3.5.4. Symbolic names
3.5.5. Resolving a JNDI name
3.5.6. Habitat namespaces
3.5.7. Security constraints
3.6. Addresses, JNDI and agent-IDs
3.6.1. Mapping addresses to JNDI
3.6.2. Resolving an agent's address
3.6.3. Agent ID
3.6.4. Canonical agent address
4. Agent lifecycle
4.1. Persisting agents
4.1.1. General requirements for persistency
4.1.2. Checkpointing
4.1.3. Suspending
4.1.4. Binary and Logical persistence
4.1.5. Transient agents and JNDI
5. System Agents
5.1. Overview
5.2. Habitat SA
5.3. Transporter SA
5.4. Statistics SA
5.5. Agent Statistics SA
5.6. Echo SA
5.7. Wake-up SA
5.8. Messagebroker SA
5.9. FileTransfer SA
6. Networking and Security
6.1. Habitat Communication using Secure JXTA
6.1.1. Terminology
6.1.2. Overview
6.1.3. X.509 Certificates
6.1.4. Scopes
6.1.5. Attack model
6.1.6. Trust model
6.1.7. Certificate setup
6.1.8. Relaying Habitats
6.1.9. Application security
6.1.10. Certificates and Habitat IDs
6.1.11. Administrator options
7. Deployment
7.1. Deploying an Agent
7.1.1. Overview
7.1.2. Structure of the DNA file
7.1.3. The agent descriptor
7.1.4. Resolving shared references
7.1.5. Using resources
7.1.6. Creating DNA files
7.1.7. Updating DNA files
7.1.8. The API
7.2. Properties
7.2.1. External
7.2.2. Identification
7.2.3. System Load
7.2.4. Security
7.2.5. Logging
7.2.6. Miscellaneous
7.2.7. Persistency
7.2.8. Messenger
7.3. Format of the Habitat XML file
7.4. Habitats and Databases
7.4.1. Database support
8. Libraries
8.1. Stand-alone Messenger
8.1.1. Intended Audience
8.1.2. Scope
8.1.3. Introduction
8.1.4. Specification
8.1.5. Public API
8.1.6. Multithreading issues and ownership of objects
8.1.7. Appendix
A. Tools
B. Protocols in the ARE
B.1. Meta information
B.2. Supported ARE Protocols
C. Ant Documents
Bibliography
Index

List of Figures

3.1. Bit representation of an ID
6.1. ASN.1 notation of V3 extensions

List of Tables

3.1. Keys and values in the Meta map
3.2. Keys and values in the Content map
3.3.
3.4. Ranges for different grantors and grantees
3.5.

List of Examples

3.1. Some well-formed addresses
3.2. Habitat naming convention
3.3. Address with agent hierarchy
3.4. Equal addresses
3.5. Unequal addresses
3.6. Some example JNDI names
3.7. Address to JNDI mapping
3.8. Setting an agents canonical name
4.1.
7.1. An example descriptor
7.2. Example catalog file
7.3. An example Habitat XML file
A.1. Expanding the habitat command