第1章 引言 1
第2章 Agent技术概述 3
2.1 关于Agent 3
2.1.1 什么是Agent 3
2.1.2 Agent体系结构 4
2.1.3 通信与协作 6
2.1.4 编程语言与工具 8
2.1.5 多Agent系统应用 9
2.2 智能物理Agent基金会(FIPA) 10
2.2.1 FIPA历史与目标 10
2.2.2 FIPA核心概念 13
2.2.3 关键FIPA规范节选 16
2.2.4 FIPA与JADE的关系 26
第3章 JADE平台 28
3.1 简史 28
3.2 JADE和Agent范式 29
3.3 JADE体系结构 31
3.4 编译软件和运行平台 33
3.5 JADE包 36
3.6 消息传输服务 37
3.6.1 消息、传输协议 37
3.6.2 IMTP 39
3.7 管理和调试工具 40
3.7.1 平台管理控制台 41
3.7.2 虚拟Agent 42
3.7.3 嗅探Agent 43
3.7.4 自省Agent 44
3.7.5 日志管理器Agent 44
3.7.6 事件通知服务和JADE工具模型 45
第4章 JADE编程——基本功能 49
4.1 创建Agent 49
4.1.1 Agent标识符 50
4.1.2 Agent初始化 51
4.1.3 Agent终止 51
4.1.4 向Agent传递参数 51
4.1.5 图书交易项目建立 53
4.2 Agent任务 55
4.2.1 行为调度和执行 55
4.2.2 单次行为、循环行为和普通行为 57
4.2.3 关于行为的更多介绍 58
4.2.4 调度操作 58
4.2.5 图书交易例子使用的行为 59
4.3 Agent通信 63
4.3.1 发送消息 64
4.3.2 接收消息 64
4.3.3 阻塞行为以等待消息 64
4.3.4 从消息队列中选择消息 66
4.3.5 复杂对话 66
4.3.6 阻塞模式下接收消息 69
4.4 Agent搜索:黄页服务 69
4.4.1 DFAgent 70
4.4.2 与DF交互 70
4.4.3 搜索服务 71
4.5 具有GUI的Agent 72
4.5.1 AWT Actionlistener的良好编程习惯 72
4.5.2 通过Agent线程修改GUI的良好编程习惯 73
第5章 JADE编程——高级功能 75
5.1 本体和内容语言 75
5.1.1 基本原理 77
5.1.2 内容参考模型 77
5.1.3 使用JADE内容语言和本体支持 79
5.1.4 使用PROT?C?和附带的Bean Generator创建JADE本体 88
5.2 组合行为以创建复杂任务 88
5.2.1 Sequential Behaviour类 90
5.2.2 FSMBehaviour类 91
5.2.3 ParallelBehaviours类 92
5.2.4 在子行为之间共享数据:数据仓库 93
5.2.5 关于复合行为的其他事项 95
5.3 线程化行为 96
5.4 交互协议 98
5.4.1 JADE.PROTO包 99
5.4.2 使用协议类 100
5.4.3 嵌套协议 103
5.5 与AMS的结合 104
5.5.1 向AMS请求平台管理操作 105
5.5.2 订购平台事件 107
5.6 从一个外部Java应用启动JADE 109
5.6.1 Agent通信对象 110
第6章 Agent移动性 112
6.1 移动Agent 112
6.1.1 移动Agent的优缺点 113
6.1.2 强迁移和弱迁移 113
6.1.3 迁移行程 113
6.2 平台内部移动 114
6.2.1 移动存储器 114
6.2.2 Agent序列化 114
6.2.3 移动Agent类装载器 115
6.2.4 Agent复制 115
6.2.5 间接移动声明 115
6.3 跨平台移动服务 115
6.3.1 迁移的过程 116
6.3.2 移动服务整合 117
6.3.3 代码打包 117
6.3.4 JADE移动本体 118
6.4 使用JADE移动性服务 119
6.4.1 平台内移动性服务 119
6.4.2 跨平台移动性服务 120
6.4.3 IPMS的安全性考虑 120
6.4.4 移动Agent编程 120
6.4.5 访问AMS实现Agent迁移 122
6.4.6 Agent移动性示例 125
第7章 JADE内部体系结构 128
7.1 分布式协作过滤器 128
7.1.1 思路及动机 128
7.1.2 主要元素 128
7.1.3 服务组件 129
7.1.4 选择要激活的服务 132
7.2 创建一个JADE内核服务 133
7.2.1 实现服务类 133
7.2.2 启动服务 134
7.2.3 使用过滤器阻塞纵向命令 135
7.2.4 实现一个分布式JADE服务 137
7.2.5 Agent和服务的交互 140
第8章 在移动设备上运行JADE Agent 142
8.1 移动环境的主要制约因素 142
8.1.1 硬件制约 142
8.1.2 Java限制 142
8.1.3 网络限制 143
8.2 LEAP附件 143
8.2.1 JADE和JADE-LEAP 144
8.2.2 LEAP IMTP 145
8.3 分离容器执行模式 147
8.3.1 仲裁者 148
8.3.2 分离容器配置选项 149
8.4 开发MIDPAgent 150
8.4.1 建立一个基于JADE-LEAP的MIDlet套件 151
8.4.2 设定配置选项 152
8.4.3 应用MIDP环境建立图书销售例子 153
8.4.4 最小化 156
8.5 LEAP附件高级功能 157
8.5.1 日志记录API和输出监视MIDlet 157
8.5.2 MIDP环境下管理复杂内容表达 158
8.5.3 从用户定义的MIDLet启动JADE 160
8.5.4 控制前端与后端的连接状态 162
8.5.5 后端管理服务 164
第9章 部署容错JADE平台 168
9.1 主复制服务 168
9.2 在关系数据库上构建DF库 170
9.2.1 默认持久性 171
9.2.2 定制持久性 171
9.2.3 性能和扩展性比较 172
第10章 JADE Web服务集成网关 174
10.1 Web服务技术 174
10.2 Agent和Web服务集成的效用 174
10.3 WSIG架构 175
10.3.1 JADE DF 175
10.3.2 UDDI 176
10.3.3 JADE Agents 176
10.3.4 JADE Agent网关 176
10.3.5 ACL<>SOAP消息转换器 176
10.3.6 ACL/SLO<>WSDL消息转换器 176
10.3.7 AXIS WEB服务器 176
10.3.8 Web服务 176
10.4 安装要求 177
10.5 WSIG安装过程 177
10.5.1 WSIG配置 177
10.5.2 WSIG运行 178
10.5.3 WSIG示例 178
10.6 WSIG操作 179
10.6.1 WSIG的初始化 179
10.6.2 DF和UDDI数据库 179
10.6.3 将JADE Agent服务发布为Web服务 179
10.6.4 将Web服务操作发布为Agent服务 180
10.6.5 消息转换 181
10.6.6 通过Web服务客户端调用Agent服务 182
10.6.7 Agent服务调用Web服务 183
10.7 例1:Web服务客户端调用Agent服务 185
10.8 例2:Agent服务调用Web服务 194
第11章 Agent社会配置管理器与运行平台 197
11.1 基本术语和概念 197
11.2 图书交易示例 199
11.3 分布式部署 204
11.4 XML元模型 207
11.5 ASCML内部结构 210
11.6 分布式监控、记录和调试 212
11.7 展望 212
第12章 JADE语义框架 213
12.1 FIPA-SL语言 214
12.1.1 理解FIPA-SL表达 214
12.1.2 处理FIPA-SL表达式 216
12.2 解释引擎 217
12.3 基本语义Agent 219
12.4 定制解释活动 222
12.4.1 增加具体应用的语义解释规则 222
12.4.2 定制通用语义解释准则 223
12.5 自定义信念处理 225
12.6 动作处理 228
12.7 综合标准和JSA的高级使用 232
12.8 结论 233
第13章 其他相关工具介绍 234
13.1 BEAN GENERATOR 234
13.1.1 BEAN GENERATOR的安装 235
13.1.2 使用BEAN GENERATOR 235
13.1.3 致谢 236
13.2 JADEMX 236
13.2.1 编写一个JADEMX代码 237
13.2.2 配置JADEMX Agent 237
13.2.3 部署JADEMX Agent 237
13.2.4 使用JUNIT和JADEMX测试JADE Agent 238
13.3 Java Sniffer 238
13.4 JADEX-面向目标的工程Agent 240
13.4.1 JADEX架构 241
13.4.2 Agent编程概念 242
13.4.3 小结 244
附录A 命令行选项 246
A.1 语法 246
A.1.1词汇定义 246
A.2 用于加载容器和主容器的选项 247
A.3 通用选项 247
A.4 JADE内核级服务的选项 248
A.4.1 消息传递服务选项 248
A.4.2 Agent管理服务选项 249
A.4.3 Agent移动性服务选项 249
A.4.4 持续交换服务选项 249
A.4.5 主容器复制服务选项 250
A.4.6 基于UDPDE节点监视服务选项 250
A.5 关于MTPS相关选项 251
A.5.1 HTTPMTP的选项 251
A.6 黄页DF服务配置选项 252
A.7 针对JADE-LEAP平台的选项 253
A.8 扩展包含用户定义选项的命令行 254
附录B 术语 255
参考文献 259
FIPA规范 264