acknowledgments xiv
PART I The world of mobile agents
1 Agents for the Internet 3
1.1 Introducing Internet agents 4
1.2 The present, some examples 4
Discussion help, a stationary agent 7. Classified help, an Internet agent 9
1.3 The future, some examples 10
Purchasing 10. Finance 11. Travel 11.
Personal assistant 11. Entertainment scheduling, an extended example 11
1.4 Lots of simple agents 13
1.5 Present agents and Java agents 14
1.6 How much longer? 15
2 Enabling mobile agents 16
2.1 Mobile agent paradigm 17
Current approach 17. New approach 18.
Tactical Advantage 19. Strategic advantage 20
2.2 Mobile agent concepts 20
Places 21. Agents 21. Travel 22. Meetings 23.
Connections 24. Authorities 25. Permits 26.
Putting Things Together 27
2.3 Mobile agent technology 28
Language 28. Engine 29. Protocols 29.
Legal and ethical considerations 30. Why bother? 31.
Potential roadblocks 32
2.4 Overview of agent systems included in this book 32
Agents for remote access (Ara) 33. Agent Tcl 33.
Telescript 34. Aglets workbench 34.
PART II Three complete agent systems
3 Telescript 37
3.1 Telescript mobile agent 38
Object model 38. Programming a place 40.
Programming an agent 44.
3.2 Using mobile agents 49
Monitoring changing conditions 49. Variations on the theme 51. Doing time-consuming legwork 52.
Using services in combination 54.
4 Agent Tcl 58
4.1 Overview 59
Agent movement 60. Agent communication 60.
Other agent Tcl features 61. State of agent Tcl 61.
4.2 Architecture 61
4.3 The agent Tcl architecture 62
4.4 Current status 64
4.5 Tcl 65
Advantages 65. Disadvantages 66.
4.6 Tcl scripts as agents 67
4.7 Examples 68
Possible applications 69. Present applications 69.
4.8 Agent design 70
4.9 Language design 70
A factorial example 71. Strings 72. Grammar 72.
Substitutions 72. Agent creation commands 73.
Agent migration commands 74. Agent communcation commands 75
4.10 Programming examples 76
UNIX who 76. Who #1 77. Who #2 82.
4.11 Pros, cons, and advantages 93
5 Agents for remote access 96
5.1 Overview 97
5.2 An overview of Ara 98
Agents, languages, and the Ara system 98.
The life of an agent 101. Agent mobility: going from place to place 104. Accessing the host system 107.
5.3 Mobile agent applications with Ara 109
Information research 110. Information presentation 112.
Mobile computing 113.
5.4 Ara programming concepts and features 116
General conventions of the Ara core interface 116.
The first steps 119. Basic agent handling 120.
Timing 125. Service points 125. Mobility 130. Place names 132. Checkpointing 133. Compiled agents 135.
Allowances 137. Dynamic memory 139.
Input and output 139
5.5 A programming example 140
The document server agent 140. The search agent 145.
5.6 Ara system architecture and implementation 152
Processes and internal architecture 152.
The communication process 154. Protection 155.
Saving and restoring the state of a process 156.
Cloning and checkpointing 158. Adaption of further programming languages to Ara 158
5.7 What may be expected from Ara in the future? 160
PART III A Java-based agent system
6 Aglets workbench 165
6.1 Aglets 166
6.2 Aglets Workbench 166
A bit of Java 167. The aglets framework 167.
A visual development environment 168.
Accessing corporate data 169. The agent transfer protocol (ATP) 169. Visual agent manager 169.
Enabling aglets on the Web 169.
Just how secure are aglets? 170. Standardization efforts 171. Making aglets ubiquitous 171.
Aglets as a solution 171.
6.3 Getting started 172
6.4 The finger application 174
Implementation 175. Methods related to the master-slave usage pattern 175. Methods related to the messenger
usage pattern 177. Class finger: master aglet 177.
Class FingerSlave: slave aglet 181. Class FingerInfo: data for exchange 182.
7 Aglets Workbench packages 184
7.1 Aglets packages 185
7.2 Classes, methods, exceptions and variables 186
Index of all Aglets fields and methods 271
Glossary of terms 293
Bibliography 300
Index 307
The mobile agents CD-ROM 311