You are on page 1of 138

博士研究生学位论文

题目 基于 GeoAgent 的

空间信息服务与应用集成研究

姓 名 黄晓斌

学 号 19915841

单 位 遥感与地理信息系统研究所

专 业 地图学与地理信息系统

研究方向 空间信息科学与技术

导 师 李琦 教授

二零零二年五月二十日
博士研究生学位论文
题目 基于 GeoAgent 的

空间信息服务与应用集成研究

姓 名 黄晓斌

学 号 19915841

单 位 遥感与地理信息系统研究所

专 业 地图学与地理信息系统

研究方向 空间信息科学与技术

导 师 李琦 教授

版权声明
任何收存和保管本论文各种版本的单位和个人 未经本论文
作者授权 不得对本论文进行复制 修改 发行 出租 改
编等有碍作者著作权益之行为 否则 将可能承担法律责任

二零零二年五月二十日
北 京 大 学 学 位 论 文 原 创 性 声 明

本人郑重声明 所呈交的学位论文 是本人在导师的


指导下 独立进行研究工作所取得的成果 除文中已经注
明引用的内容外 本论文不含任何其他个人或集体已经发
表或撰写过的作品成果 对本文的研究做出重要贡献的个
人和集体 均已在文中以明确方式标明 本人完全意识到
本声明的法律结果由本人承担

学位论文作者签名 黄晓斌
日期 2002 年 6 月 4 日
中文摘要

中文摘要

本文的研究重点是在地理信息领域中引入 Agent 和 Web 服务 Web Services 的理念


探讨如何利用 Agent 和 Web 服务的优势来克服现有地理信息系统在分布式计算模式和应用
模式方面的不足 以便更好地服务于数字地球和数字城市的建设
数字地球和数字城市的快速发展 在为地理信息系统的发展带来机遇的同时 也对地
理信息系统提出了新的要求 然而 现有的地理信息系统 包括目前作为网络环境主流应
用模式的 WebGIS 都还无法很好地满足数字地球和数字城市的这些新要求 其不足主要
包括客户/服务器计算模式所带来的体系结构相对僵硬 客户应用之间缺乏良好的群体感知
和协作能力等问题 以及系统相对孤立 缺乏良好的互操作性 系统内部耦合度较强 应
用模式不够灵活等应用模式方面的问题
针对现有地理信息系统在分布式计算模式方面的不足 本文引入了人工智能领域中
Agent 的理念 提出了 GeoAgent 的概念 系统地阐述了 GeoAgent 的特点 行为 优势和
结构 以及 GeoAgent 系统的体系结构 利用 IBM 的开发平台 Aglets 设计并实现了相应
的系统原型 在此基础上 本文提出了基于 GeoAgent 的空间信息服务的理念 并详细分析
了这种空间信息服务的特点和优势
针对现有地理信息系统在应用模式方面的不足 本文在分析基于 GeoAgent 空间信息
服务可能应用模式的基础上 引入了 Web 服务的理念 着重分析了空间信息服务基于 Web
服务的应用集成模式及其优势 阐述了如何把基于 GeoAgent 的空间信息服务包装成为 Web
服务 即空间信息网络服务的过程 在阐述 Web 服务流语言 WSFL 的基础上 设计
并初步实现了一个基于 GeoAgent 的 Web 服务流引擎
最后 本文利用实现的基于 GeoAgent 的几种空间信息服务和 Web 服务流引擎 结合
其他相关服务 初步实现了一个面向事件的旅游预订服务系统
本论文的主要创新点和研究成果包括
z 提出了按需装配 Agent 的概念和体系结构 在可移动 Agent 和按需装配 Agent 的
基础上提出新型 Agent GeoAgent 的概念和基于 GeoAgent 的空间信息服务的
理念 设计并实现了 GeoAgent 的通用模板 以及实现按需装配所需要的构件注
册管理器 然后实现了几种基于 GeoAgent 的空间信息服务
z 探讨了基于 GeoAgent 空间信息服务的可能应用模式 重点分析了基于 GeoAgent
的空间信息服务按照 Web 服务的标准和其他服务或应用进行集成的模式
z 基于 Web 服务流语言 WSFL 设计并初步实现了一个基于 GeoAgent 的 Web 服务
流引擎 以实现 Web 服务流的解析和执行工作 此外 还设计了一种配套的 Agent
协作模式
z GeoAgent 的按需装配机制和空间信息服务的 Web 服务应用模式能够为空间信息处
理功能在不同层次的共享和互操作提供新的思路和解决方案

关键词 数字城市 Agent 可移动 Agent 按需装配 Agent GeoAgent


空间信息服务 Web 服务 空间信息网络服务 Web 服务流引擎

I
北京大学 2002 届博士研究生学位论文

II
英文摘要

Research on GeoAgent-Based

Geospatial Information Services and Application Integration


Huang Xiaobin
Institute of Remote Sensing and GIS, Peking University

Specialty Cartology and Geographic Information System


Directed by Prof. Li Qi

ABSTRACT
This research focuses on how to take advantage of Agent and Web Services technologies to
overcome the flaws of current Geographic Information System (GIS) in the distributed computing
model and application model, making GIS serve the construction of Digital Earth and Digital City
better.
The rapid development of Digital Earth and Digital City not only brings great opportunities to
GIS, but also makes GIS face new challenges. However, today’s GIS, including WebGIS, which is a
major GIS application model in the current network environment, is still unable to meet these
challenges. The reasons come from 1) Client/Server model itself, such as, poor architecture
flexibility, lack of perception and cooperation abilities among clients, 2) its application model, such
as, system isolation, lack of interoperability, strong system internal coupling, and inflexibility.
In order to overcome the above-mentioned gaps of the Client/Server computing model of the
current GIS, this research introduces Agent technology originated from Artificial Intelligence to
GIS. The thesis proposes a new kind of Agent – GeoAgent and expatiates upon its characteristics,
behaviors and architecture of corresponding GeoAgent System. A GeoAgent prototype system has
been implemented, based on IBM Agent Software Development Kit Aglets. And then, this research
proposes GeoAgent-based Geospatial Information Services, followed by detailed theoretical
analysis.
In order to overcome the disadvantages of the application model of the current GIS, this
research proposes a Web Services-based application model of GeoAgent-based Geospatial
Information Services after analyzing some potential application models of GeoAgent-based
Geospatial Information Services. The thesis goes on to describe how to wrap GeoAgent-based
Geospatial Information Services to Web Services. Based on the Web Services Flow Language, a
GeoAgent-based Web Services Flow Engine has been designed and implemented.
Finally, based on several GeoAgent-based Geospatial Information Services and the
GeoAgent-based Web Services Flow Engine, an Event-Oriented Tourism Booking Service System
has been implemented.
The major contributions of this research include:
z The concept and architecture of Assemble-on-demand Agent is proposed. Based on

III
北京大学 2002 届博士研究生学位论文

Mobile Agent and Assemble-on-demand Agent, GeoAgent and GeoAgent-based


Geospatial Information Services are introduced. Following this, a general template of
GeoAgent and a Component Registration Manager have been designed and implemented.
At last, several GeoAgent-based Geospatial Information Services have been
implemented.
z Several potential application models of GeoAgent-based Geospatial Information Services,
especially the Web Services based application model, are analyzed.
z Based on Web Services Flow Language, the thesis designs and implements a GeoAgent-
based Web Services Flow Engine, which is used to parse and execute Web Services Flow.
Furthermore, a corresponding cooperation model of Agent has been designed.
z The assemble-on-demand mechanism of GeoAgent and Web Services-based application
model of Geospatial Information Services proposed in this research provide new solutions
to the interoperability of Geospatial information processing.

Key Words Digital City, Agent, Mobile Agent, Assemble-on-demand Agent,


GeoAgent, Geospatial Information Services, Web Services,
Geospatial Information Web Services, Web Services Flow Engine

IV
目 录

目 录

第一章 前言.............................................. 1
§1.1 数字地球与数字城市 .......................................................................................1
1.1.1 数字地球.........................................................................................................................1
1.1.2 数字城市.........................................................................................................................2
§1.2 地理信息系统发展历程 ...................................................................................4
§1.3 地理信息服务 ...................................................................................................6
1.3.1 现有地理信息系统面临的挑战.....................................................................................6
1.3.2 从地理信息系统走向地理信息服务 .............................................................................8
§1.4 论文研究内容及其组成 .................................................................................10
1.4.1 论文研究目标与成果...................................................................................................10
1.4.2 论文组成....................................................................................................................... 11

第二章 空间信息服务理论基础 ............................. 12


§2.1 标准化 ..............................................................................................................12
§2.2 开放式地理空间数据互操作规范 .................................................................13
§2.3 OPENGIS 服务体系结构 ................................................................................13
§2.4 OGC WEB 服务...............................................................................................14
2.4.1 基本服务和数据构建模块抽象体系结构 ...................................................................14
2.4.2 操作体系结构系统概念...............................................................................................16
2.4.3 技术体系结构...............................................................................................................17
§2.5 OPENGIS 服务框架 ........................................................................................18
2.5.1 注册服务.......................................................................................................................18
2.5.2 处理服务.......................................................................................................................19
2.5.3 描绘服务.......................................................................................................................19
2.5.4 数据服务.......................................................................................................................20
2.5.5 编码...............................................................................................................................20
§2.6 OGC 互操作程序服务模型.............................................................................21
2.6.1 服务角色与操作...........................................................................................................21
2.6.2 元素...............................................................................................................................22
2.6.3 服务分类.......................................................................................................................23
2.6.4 服务互操作层次...........................................................................................................25
2.6.5 主要相关技术...............................................................................................................26

第三章 AGENT............................................ 28
§3.1 AGENT 的认知模型和概念 ...........................................................................28
3.1.1 Agent 的认知模型 .........................................................................................................28
3.1.2 Agent 的概念 .................................................................................................................29
§3.2 AGENT 的基本特性和行为 ...........................................................................30
§3.3 AGENT 的体系结构 .......................................................................................31

V
北京大学 2002 届博士研究生学位论文

第三章 AGENT............................................ 28
§3.1 AGENT 的认知模型和概念 ...........................................................................28
3.1.1 Agent 的认知模型 .........................................................................................................28
3.1.2 Agent 的概念 .................................................................................................................29
§3.2 AGENT 的基本特性和行为 ...........................................................................30
§3.3 AGENT 的体系结构 .......................................................................................31
§3.4 AGENT 的分类 ...............................................................................................32
3.4.1 根据体系结构分类.......................................................................................................32
3.4.2 根据属性分类...............................................................................................................32
3.4.3 根据功能分类...............................................................................................................33
§3.5 AGENT 的应用现状 .......................................................................................33
3.5.1 电信领域应用...............................................................................................................33
3.5.2 兴趣匹配应用...............................................................................................................33
3.5.3 用户助理应用...............................................................................................................34
3.5.4 组织结构应用...............................................................................................................34
3.5.5 信息处理应用...............................................................................................................34
3.5.6 移动领域应用...............................................................................................................35
§3.6 现有开发平台 .................................................................................................35
§3.7 程序设计方法和语言 .....................................................................................36
3.7.1 程序设计方法...............................................................................................................36
3.7.2 开发语言.......................................................................................................................37
3.7.3. Java 语言的优势...........................................................................................................38
§3.8 标准研究 .........................................................................................................39
3.8.1 智能 Agent 基金会 .......................................................................................................39
3.8.2 可移动 Agent 系统互操作设施 ...................................................................................40

第四章 GEOAGENT......................................... 41
§4.1 MOBILE AGENT ............................................................................................41
4.1.1 Mobile Agent 的特点 .................................................................................................41
4.1.2 Mobile Agent 的优势 .................................................................................................42
§4.2 按需装配 AGENT .......................................................................................... 43
4.2.1 按需装配 Agent 的概念和行为 .................................................................................43
4.2.2 按需装配 Agent 的特点和优势 .................................................................................46
4.2.3 按需装配 Agent 的体系结构 .....................................................................................46
§4.3 GEOAGENT 的概念与行为 ...........................................................................47
§4.4 GEOAGENT 的体系结构 ...............................................................................48
§4.5 GEOAGENT 系统的体系结构 .......................................................................49
§4.6 原型设计与实现 .............................................................................................52
4.6.1 开发平台.......................................................................................................................52
4.6.2 通用 GeoAgent 模板的设计与实现 ............................................................................55
4.6.3 构件注册管理器的设计与实现...................................................................................57
§4.7 迁移策略 .........................................................................................................58
§4.8 AGENT 设计模式 ...........................................................................................60

VI
目 录

第五章 基于 GEOAGENT 的空间信息服务与应用集成 ............ 66


§5.1 基于 GEOAGENT 的空间信息服务 .............................................................66
§5.2 基于 GEOAGENT 的空间信息服务的应用集成 .........................................68
§5.3 WEB 服务 ........................................................................................................71
5.3.1 Web 服务描述语言........................................................................................................73
5.3.2 简单对象访问协议.......................................................................................................75
5.3.3 统一描述 发现与集成协议.......................................................................................76
§5.4 GEOAGENT 与 WEB 服务 ............................................................................79
§5.5 WEB 服务流语言 ............................................................................................81
5.5.1 角色...............................................................................................................................83
5.5.2 流模型...........................................................................................................................84
5.5.3 全局模型.......................................................................................................................87
§5.6 基于 GEOAGENT 的服务流引擎 .................................................................87
§5.7 基于 GEOAGENT 和 WEB 服务的空间信息服务及应用集成体系 ..........91

第六章 原型系统应用实例 面向事件的旅游预订服务系统 ..... 94


§6.1 应用领域介绍 .................................................................................................94
§6.2 面向事件的旅游预订服务系统 .....................................................................95
6.2.1 系统业务逻辑...............................................................................................................96
6.2.2 系统体系结构和功能逻辑...........................................................................................97
6.2.3 系统环境建设...............................................................................................................99
§6.3 服务流定制 ...................................................................................................100
6.3.1 服务流定制说明.........................................................................................................100
6.3.2 服务流定制实现.........................................................................................................100
§6.4 服务流的解析与执行 ...................................................................................103
6.4.1 服务流解析与执行说明..............................................................................................103
6.4.2 服务流解析与执行实现.............................................................................................103
§6.5 系统应用简要分析 .......................................................................................107

第七章 总结与展望...................................... 108


§7.1 总结 ...............................................................................................................108
§7.2 进一步研究 ...................................................................................................109
§7.3 展望 ...............................................................................................................109

参考文献..........................................................111

附录..............................................................121

攻读博士期间公开发表的主要学术论文................................124

致谢..............................................................125

VII
北京大学 2002 届博士研究生学位论文

图 表 索 引

图 1.1 数字城市总体框架 ...................................................... 3


图 1.2 数字城市的技术体系 .................................................... 4
图 1.3 WEBGIS 系统之间相对孤立的状态.......................................... 8

图 2.1 OWS 基础服务和数据构建模块抽象模型.................................... 15


图 2.2 OWS 操作体系结构系统概念.............................................. 15
图 2.3 OWS 技术体系结构功能视图.............................................. 17
图 2.4 OPENGIS 服务框架...................................................... 18
图 2.5 互操作程序服务模型的服务类型与操作 ................................... 21
图 2.6 互操作程序服务模型的基本构建模块 ..................................... 22
图 2.7 服务互操作层次结构 ................................................... 25
图 2.8 OGC 互操作程序服务模型技术堆栈........................................ 26

图 3.1 AGENT 的行为......................................................... 30


图 3.2 反应式 AGENT 的结构 ................................................... 31

图 4.1 按需装配 AGENT 的行为 ................................................. 43


图 4.2 单功能螺丝刀 ......................................................... 44
图 4.3 多功能螺丝刀 ......................................................... 45
图 4.4 按需装配 AGENT 的体系结构 ............................................. 46
图 4.5 GEOAGENT 的行为....................................................... 47
图 4.6 GEOAGENT 的体系结构................................................... 48
图 4.7 一般多 AGENT 系统的体系结构 ........................................... 49
图 4.8 GEOAGENT 系统的体系结构............................................... 50
图 4.9 GEOAGENT 按需装配的实现过程........................................... 51
图 4.10 AGLET 系统中基本元素之间的关系....................................... 53
图 4.11 消息发送与处理 ...................................................... 53
图 4.12 异步通信模式 ........................................................ 54
图 4.13 通用 GEOAGENT 与 AGLET................................................ 55
图 4.14 构件匹配消息内容 .................................................... 55
图 4.15 构件装载器 COMPONENTLOADER .......................................... 56
图 4.16 构件注册管理器 ...................................................... 57
图 4.17 创建 GEOAGENT 和构件下载模式 ......................................... 59
图 4.18 创建 迁移 GEOAGENT 和构件下载模式 ................................... 59
图 4.19 工作流协作模式 ...................................................... 60

VIII
图表索引

图 5.1 基于 HTTP 协议的调用模式 .............................................. 69


图 5.2 基于 GEOAGENT 的空间信息服务的应用集成模式 ............................ 70
图 5.3 WEB 服务模型 角色与操作 ............................................ 72
图 5.4 WSDL 文档各元素关系................................................... 73
图 5.5 互操作协议栈 ......................................................... 77
图 5.6 UDDI 信息模型之间的关系............................................... 77
图 5.7 基于 GEOAGENT 的空间信息网络服务 ...................................... 80
图 5.8 旅游计划定购流程 ..................................................... 83
图 5.9 流模型起始活动确定流程图 ............................................. 89
图 5.10 活动执行流程图 ...................................................... 90
图 5.11 基于 GEOAGENT 和 WEB 服务的空间信息服务及应用集成层次体系 ............. 91

图 6.1 旅游预订系统业务逻辑 ................................................. 95


图 6.2 基于位置的旅游预订服务系统体系结构 ................................... 96
图 6.3 基于位置的旅游预订服务功能逻辑结构 ................................... 97
图 6.4 GEOAGENT 执行流程示例................................................. 98
图 6.5 会议注册服务有关信息 ................................................ 101
图 6.6 酒店预订服务有关信息 ................................................ 101
图 6.7 空间信息服务有关信息 ................................................ 101
图 6.8 WEB 服务流示例....................................................... 102
图 6.9 服务预订流程示例 .................................................... 103
图 6.10 用户预订结果显示图 ................................................. 104
图 6.11 酒店与活动地点地理位置说明 ......................................... 104
图 6.12 酒店与活动地点地址说明 ............................................. 105
图 6.13 酒店到活动地点的交通信息说明 ....................................... 105
图 6.14 酒店到活动地点的行车路线图 ......................................... 106
图 6.15 酒店到活动地点的行车路线说明 ....................................... 106

表 2.1 OGC 服务分类模式...................................................... 23

表 3.1 部分已有的开发平台/系统 .............................................. 35


表 3.2 AGENT 系统开发语言一览表.............................................. 37

IX
第一章 前言

1.1 数字地球与数字城市
近半个世纪以来 空间科学技术得到了高速的发展 遥感 地理信息系统 全球定位
系统等领域都相继取得了巨大的突破 特别是全球范围内对地观测系统 国家信息基础设
施和国家空间数据基础设施等重大计划的实施 使得人类对地球不同层面 不同现象的综
合观测能力以及信息的处理 传输和应用能力达到了空前的水平[1] 而数字地球[2]适时
的提出则为人们从系统性 整体性和综合性的角度来观察 认识与监控我们赖以生存的地
球提出了新的视角和思维模式 同时 也为不同学科的研究工作者提出了新的问题 那就
是 数字地球的提出为本学科的发展带来了什么样的机遇和挑战 如何使本学科更好地融
入数字地球 服务于数字地球

1.1.1 数字地球

简言之 数字地球就是对真实地球及其相关现象统一性的数字化重现与认识 其核心


思想主要有两点 一是用数字化手段统一性处理地球问题 二是最大限度地利用信息资源
[3]
数字地球既是地球科学技术与空间科学技术 信息科学技术等现代科学技术交融的前
沿领域 更是科学技术与社会发展以及社会科学紧密结合的结晶[4] 数字地球概念的提出
有着深刻的时代背景 经济背景和技术背景 是第二次世界大战以来 特别是本世纪 70 年
代以来的 新技术革命 的一个自然的发展[3 4]
自从 1998 年 1 月 31 日美国副总统戈尔做了 数字地球 21 世纪认识我们这颗星球的
方式 的报告之后 数字地球的概念引起了各国政府和相关领域研究人员的广泛关注 成
为国家发展的战略目标和新技术的制高点[4 5 6 7] 目前 各国已经纷纷推出了各种
与数字地球相关的理论研究和技术实践项目 而以数字地球为主题的国际会议也不断召开
据不完全统计 仅我国就已经出版了 20 余本数字地球的专刊 专著或专集 发表了 300 多
篇有关数字地球的文章 举行了 30 余次数字地球全国性研讨会[1] 此外 第二届数字地
球国际大会已经于 2001 年 6 月在加拿大顺利召开 第三届大会也已经进入筹备阶段 而且
为了更好地规范和协调好数字地球方面的国际合作 目前正积极筹备成立 国际数字地球
学会 这些研究工作 学术讨论 工程实践 以及相关机构的成立为数字地球的推进提供
了良好的基础和强大的动力
数字地球之所以受到全人类的极大关注 关键在于人们认识到数字地球的提出能够为
日益严峻的环境保护 灾害治理 自然资源保护 经济与社会可持续发展 以及提高人类
生活质量等方面的问题带来更为全面而有效的思维模式和解决途径 正象第一届数字地球
大会的 北京宣言 所说的 数字地球有助于回应人类在社会 经济 文化 组织 科学
教育 技术等方面面临的挑战 它让人类洞察地球上的任何一个角落 获得相关信息 帮
助人们认识在邻里 国家 乃至全球范围内影响人们生活的社会 经济和环境等问题[8]
与此同时 数字地球战略也是发达国家为了保持其在科学技术领域 特别是高新技术领域

1
北京大学 2002 届博士研究生学位论文

的领先地位而提出来的新战略 以及发展中国家以信息化带动工业化 实现 跨越式 发


展的良好机遇[4 9 10]
数字地球包括了数据获取与更新体系 数据处理与存储体系 信息提取与分析体系
数据与传播体系 数据库体系 网络体系 专用软件体系等多个体系[11] 涉及到遥感技
术 地理信息系统技术 全球定位系统技术 计算机技术 宽带网络技术 元数据技术
数据库技术 数据挖掘与融合技术 图形图像技术和虚拟现实技术等多种技术[1 10] 是
一个名副其实的复杂巨系统 这样一个复杂系统 不可能一蹴而就 一方面 由于任何单
一机构或国家都不可能提供了解所有地球系统科学所必需的全面系统和资源 因此需要全
世界各国政府 有关部门 民间组织和各界人士的共同努力 充分利用世界各国的资金
技术 人力资源 市场来共同推动数字地球的建设 另一方面 需要采用需求牵引 统筹
规划 阶段发展 择优支持 共建共享的方针[4] 也就是说 在不同的建设时期 数字地
球有着不同的核心目标 目前 应当建立多比例尺 多应用层面的数字地球 数字区域和
数字城市 以便更广泛 深入的为社会可持续发展提供服务 从社会经济发展的需要来说
建立数字城市具有更为现实的意义和价值 而且可操作性更高[1]

1.1.2 数字城市

城市 作为地球表面人口 经济 技术 基础设施 信息最密集的地区 不但有着实


施数字地球战略最为迫切的社会和经济需求 而且多年的信息化建设 良好的经济优势和
人才优势也为数字地球战略的实施提供了良好的基础
正是由于意识到这些原因 无论是作为数字地球实施过程中的一个先驱试点和重要组
成部分 还是作为数字地球理念 技术和发展战略在城市的宏观领域和微观领域的具体应
用和发展演化的结果[12 13] 数字城市都已经得到了人们的普遍认可 相关的研究工作
也取得了快速的发展 目前 美国 中国 日本 以及欧洲的一些国家都已经在 Internet
上推出了以数字城市为主题的网站[14 15 16 17 18] 而国内自 1999 年 11 月 29 日北
京市市长刘淇在北京召开的 数字地球国际会 上正式提出 数字北京 工程后 已经相
继启动了数字重庆 数字厦门 数字大连等工程 据不完全统计 全国有近 50 个城市提出
了建设数字城市的规划 此外 2000 至 2001 年 我国先后在北京 上海 大连 济南等
城市举办过多次数字城市大型研讨会

1.1.2.1 数字城市的概念和总体框架

目前 国外的有关文献中基本上对数字城市还没有明确的定义 国内对数字城市的概
念定义综合体现在广义和狭义两个方面[19 20]

广义上的定义 是城市信息化目标与任务的分解和实施 即 区域信息化 领域信息


化和企业信息化
狭义上的定义 就是城市GIS工程 即 利用 数字地球 理论 基于3S(地理信息系
统GIS 全球定位系统GPS 遥感系统RS)等关键技术 建设服务于城市规划 建设 管理
服务于政府 企业 公众 服务于人口 资源环境 经济社会的可持续发展的信息基础设
施和信息系统 其本质是建设空间信息基础设施并在此基础上深度开发和整合应用各种信
息资源[19]

2
第一章 前言

从本质上说 数字城市就是一个基于计算机网络和城市信息资源的开放的 复杂的信


息系统 是城市数字虚拟空间 信息服务市场和信息资源配置中心[21] 也就是说 数字
城市将作为一个城市开放 动态的信息系统平台 实现应用服务的开发 利用 广告 安
全 管理等一体化 实现数据 信息 知识 服务 应用的价值链一体化 实现从信息生
产到信息消费的信息流有序化 最终实现信息资源的动态管理 利用和优化配置[21]

综合决
策层
城市综合决策指挥系统
政 技
策 术
政府类 企业类 区域类 公众类 标

应用 应用 应用 应用 准

规 及
章 应用服务平台 应用层 各
及 种
管 城市数据仓库 应
理 支撑和 用
制 空间数据基础设施 配套层 规
度 范
网络信息基础设施
基础层
信息机构实体

图 1.1 数字城市总体框架

数字城市的总体框架如图 1.1 所示 其中 基础层从机构 人力资源 网络通信 框


架数据等方面提供支撑和保障 支撑配套层从数据环境 软件环境 技术标准规范 法律
法规环境等方面提供支撑和保障 应用层是实现领域信息化和区域信息化的应用体现 综
合决策层 即城市综合决策指挥系统 是实现跨领域 跨区域的综合性应用体现[13]

1.1.2.2 数字城市的目标

数字城市的目标包括总体目标 社会目标和技术目标三个方面[12 22]


z 数字城市的总体目标是设计和创建新型的城市信息空间 实现城市形态 结构与
发展模式的变革 创建新型的信息服务市场空间 服务于政府 企业 公众 实
现信息价值链的整合和优化 创建新型的信息资源配置中心 以信息流来整合物
流 资金流和人力流 以实现优化配置
z 数字城市的社会目标是服务于城市的规划 建设 管理以及各领域的应用 改善
和优化城市人居环境 实现城市自然资源 环境 生态 人口 经济和社会的可
持续发展 最终目标是以人为本 即满足城市居民的需要 促进人类的生存与发
展 社会的文明与进步
z 数字城市的技术目标是实现网络互连互通 实现数据 信息及服务的共享与互操
作以及按需可得

3
北京大学 2002 届博士研究生学位论文

1.1.2.3 数字城市的技术体系

类似于数字地球 数字城市也是一个跨越了多学科和领域的复杂巨系统 该系统中主


要包括了网络与传播技术体系 城市空间数据的获取和更新技术体系 多源数据分布式管
理与融合技术体系 应用与服务技术体系 标准与规范体系等多个层次 如图 1.2 所示
涉及了遥感技术 地理信息系统技术 全球定位系统技术 计算机技术 宽带网络技术
元数据技术 数据库技术 数据挖掘与融合技术 图形图像技术和虚拟现实技术等多个领
域[1 10]

应用与服务技术体系

标准
支撑平台技术体系

与规范 多元数据分布式管理与融合技术体系

体系 城市空间数据的获取与更新技术体系

网络与传播技术体系

图 1.2 数字城市的技术体系

在数字地球和数字城市所涉及的众多技术之中 地理信息系统技术是最为关键的技术
之一 从某种程度上说 数字地球和数字城市是地理信息系统的扩展和发展[1 4] 这无
疑为地理信息系统在新世纪的发展带来的极好的机遇 同时也为地理信息系统现有的理论
和技术提出了严峻的考验和极大的挑战

1.2 地理信息系统发展历程
地理信息系统 Geographic Information Systems GIS 是一种采集 存储 管理
分析 显示与应用地理信息的计算机系统 是分析和处理海量地理数据的通用技术[23]
地理信息系统是地理学 地图学和测量学等传统学科和遥感技术 计算机科学等现代科学
技术相结合的产物 经过 40 年的发展 地理信息系统已经成为当前解决有关地理问题的关
键技术 被广泛应用于资源调查 环境评估 城市和区域发展规划 公共设施管理 交通
安全 疾病分析和预防 军事 以及商业和工业的位置分析等领域 并正逐步发展成为一
门处理空间数据的现代化综合性学科[23 24]
地理信息系统萌芽于 20 世纪 60 年代初期 加拿大的 Roger F. Tomlinson 和美国的 Duane
F. Marble 在不同地方 从不同角度提出了地理信息系统 1962 年 Tomlinson 提出利用
数字计算机处理和分析大郎的土地利用地图数据 并建议加拿大土地调查局建立了世界上
第一套地理信息系统 加拿大地理信息系统 CGIS 纵观地理信息系统的发展 可以分
为以下几个主要阶段[23 25 26 27]
1 开拓阶段

4
第一章 前言

20 世纪 60 年代是地理信息系统的开拓阶段 关注的主要是空间数据的地学处理 在
这个阶段 计算机硬件系统功能还很弱 计算机存储能力很小 且磁带存取速度也很慢
这一切都极大地制约着地理信息系统的发展 使得图形功能和地学分析功能都非常有限
相应的算法也比较粗糙
2 巩固发展阶段
20 世纪 70 年代是地理信息系统的巩固发展阶段 关注的主要是空间地理信息的管理
在这个阶段 计算机硬件技术和软件技术得到了迅速的发展 数据处理速度加快 内存容
量增大 输入 输出设备比较齐全 而且还推出了大容量直接存储设备 磁盘 这为地
理数据的录入 存储 检索 输出等提供了强有力的支撑 而图形 图像卡等技术的发展
则增强了人机对话和图形的显示功能 为基于图形的人机交互提供了良好的基础 虽然这
个阶段系统的数据分析能力仍然较弱 但人机图形交互技术却取得了很大的进展
3 快速发展阶段
20 世纪 80 年代是地理信息系统技术的快速发展阶段 关注的主要是空间决策支持分
析 这个阶段 图形工作站和个人计算机等性能价格比大为提高的新一代计算机的出现
以及数据库管理系统等成熟软件产品的推出 为地理信息系统的普及创造了良好的条件
使得地理信息系统的应用领域得到了迅速地扩展 并开始有商业化实用系统进入市场
4 应用普及阶段
20 世纪 90 年代是地理信息系统的应用普及阶段 在这个阶段 地理信息系统已经是
许多机构必备的工作系统 随着各个领域对地理信息系统认识程度和认可程度的提高 应
用需求大幅度增加 导致了地理信息系统应用的扩大与深化 而互联网络的出现和普及
以及分布式对象等技术的发展则使得地理信息系统得到了极大地普及 并正逐步走进人们
的日常生活之中
在地理信息系统的整个发展过程中 计算机技术的发展起到了极大的推动作用 可以
说 地理信息系统的发展是和计算机技术的发展 特别是和硬件技术 操作系统技术 数
据库技术和分布式计算技术等方面的发展紧密结合在一起的
其中 分布式计算技术的发展对地理信息系统体系结构的演进起到了很大的推动作用
目前 比较流行的地理信息系统都是基于 Internet 和 Web 采用 Client/Server 体系结构
或者 Browser/Serve 体系结构 利用流行的分布式对象技术如 CORBA DCOM 或 JAVA/RMI[28
29 30 31 32] 或者几种分布式对象技术的综合使用来实现的[33 34] 而基于
Browser/Serve 体系结构的 WebGIS 由于能够充分利用网络上的各种计算资源 相较于以
前的 GIS 具有更为灵活的结构和更好的可扩展性 能够有效地实现空间数据和相关资源
在网络上的共享 为地理信息系统的普及 以及广大的 Internet 用户利用空间信息 获取
空间信息服务提供了良好的途径 是目前网络环境中地理信息系统的主流应用模式 目前
市场上已经有不少相对成熟的 WebGIS 产品 主要包括 MapInfo 公司的 MapXtreme[35]
Intergraph 公司的 GeoMedia Web Map[36] ESRI 公司的 Internet Map Server IMS [37]
和 Autodesk 公司的 MapGuide[38]等

5
北京大学 2002 届博士研究生学位论文

1.3 地理信息服务
虽然地理信息系统在过去 40 年的发展中已经取得了巨大的成绩 但是该领域中仍然有
不少理论和技术需要进一步发展和完善 数字地球的提出和数字城市工程的逐步推进在为
地理信息系统带来发展机遇的同时 也对地理信息系统的理论和技术提出了挑战和新的要

1.3.1 现有地理信息系统面临的挑战

由于数字地球和数字城市建立在复杂 动态变化的分布式网络环境的基础上 各种应


用都构建在一个更为开放的分布式环境之中 而且 各种不同应用对于地理信息功能的需
求也千差万别 这一切使得数字城市对地理信息系统的体系结构和应用模式提出了新的要
求 主要体现为以下几个方面
z 系统的体系结构必须能够很好地适应开放 分布式的网络环境 在服务于数字地
球或数字城市的过程中 地理信息系统需要面对的将是一个开放 动态变化的网
络环境 因此 其体系结构必须具有良好的灵活性 以及对分布式环境的适应性
z 必须能够提供各种针对特定任务 粒度适宜的地理处理功能 在数字城市中 地
理信息系统除了需要通过浏览器直接服务于最终用户之外 还需要为数字城市中
的其它应用提供各种地理信息服务 由于这些应用需要解决的问题各不相同 甚
至可以说是千差万别 因此 需要地理信息系统能够灵活的为不同需求的应用提
供多种粒度 功能不同的地理信息服务 包括一些十分专业的地理信息分析功能
z 必须能够提供易于集成 具有良好互操作性的地理处理功能 在数字地球和数字
城市中经常需要解决一些涉及面比较广的综合性问题 这需要涉及到城市中多个
部门或者单位的合作 如果这种合作是相对固定或者具有一定的绑定性质 则最
佳的模式就是在某种程度上实现自动化或者半自动化 尽量减少人工的干预 因
此 数字城市中的地理信息系统还需要以一种易于集成和交互的模式来提供服务
或者说具有良好的互操作性 从而确保这些服务能够被特定的应用方便地使用和
集成 或者和面向某个特定问题的其他服务集成起来以解决该特定问题
就目前而言 从体系结构和应用模式上看 现有的地理信息系统中最适于数字城市的
就是 WebGIS 了[39 40 41 42 43] 和以前的地理信息系统相比 虽然 WebGIS 拥有上
面所谈到的诸多独特优势 并且也已经在现实中发挥了十分重要的作用 但面对数字城市
的一系列新要求 现有的 WebGIS 还是显得有些力不从心 这主要体现在以下几个方面
1 客户/服务器体系结构所带来的不足之处
目前的 WebGIS 主要都是基于 Client/Server 或者 Browser/Server 的体系结构 采
用分布式对象技术如 CORBA DCOM 或 JAVA/RMI 或者几种技术综合使用[34] 虽然这种模
式的采用曾经为分布式应用带来了很好的效益 但是随着 Internet 的不断发展 分布计算
环境的高度分布和动态变化等特性变得越来越突出 而该模式固有的局限性使得它越来越
无法适应开放式的网络环境和各种复杂 动态的分布计算要求 这主要是因为以下的几个
原因[28 34 44]
z 采用客户/服务器模式要求有高质量 性能稳定的网络连接 其主要原因有 第一

6
第一章 前言

客户需要与服务器保持可靠的连接 因为只有建立并维持稳定的连接才能完成鉴
别客户身份等工作并保证交互过程的安全性 第二 由于对服务器的请求一般都
有一个交互的过程 客户端必须能够对一些可预见的响应进行确认 最后 为了
能够在网络上顺利地复制和传输数据 还需要有很好的带宽
z 体系结构相对僵硬 在客户/服务器模式中 主机的角色都是固定的 所有的计算
只能在服务器进行 或者让部分工作在客户方进行 服务提供者必须都集中在这
两个机器上 并不能真正实现分布对等的计算
z 连接规模所导致的问题 在一个只有一个集中服务器和多个客户端的系统中 连
接的规模问题还不是很突出 但是当有了多个服务器之后 连接规模就会急剧增
长 因为每个客户端都要管理和维持与多个服务器的连接 另外随着规模的增大
服务器的控制将变得越来越复杂 其性能也会变得越来越低 而目前客户/服务器
模式在这方面的研究尚不能从根本上解决问题
z 另外 由于客户/服务器模式并不能很好地支持客户应用之间直接的群体感知 使
得在客户应用之间很难进行充分的交互并完成较高层次的协同工作 这导致了客
户/服务器模式无法胜任许多复杂的分布式应用 因为可交互性和可协作性正是分
布式应用中最为关键的特点
2 在应用模式上的不足
传统 WebGIS 的主要目的是为了能够在网络上发布空间数据以及和这些空间数据相关的
一些信息 主要通过浏览器直接地服务于最终用户 且服务对象一般情况下是非专业用户
这使得传统 WebGIS 存在着以下一些问题[34 40 45]
z 数据和功能的相对绑定 现有的 WebGIS 系统在发布空间数据之前不但需要明确知
道数据的位置 类型等有关信息 还需要进行一些列的相关操作 确定与这些空
间数据相应的一系列功能 如属性查询 缓冲区分析等
z 系统相对独立 缺乏良好的互操作性 现有的 WebGIS 通常都比较孤立 缺乏良好
的互操作性 譬如存在两个 WebGIS 系统 系统 A 基于 Autodesk 公司的 MapGuide
而系统 B 基于 Intergraph 公司的 GeoMedia Web Map 如图 1.3 所示 系统 A 的
用户为了能够与 MapGuide 服务器打交道 需要在客户端安装 MapGuide 的控件
同样 系统 B 的用户也需要安装 GeoMedia 的客户端控件 但是安装了 MapGuide
客户端空间的用户并不能利用该控件与 GeoMedia 服务器进行沟通 如果该客户希
望与 GeoMedia 服务器建立联系 他还需要再安装 GeoMedia 的客户端控件 反之
亦然 而且 MapGuide 服务器和 GeoMedia 服务器也无法建立沟通 在功能上取
得互补 这使得 WebGIS 系统之间处于一种相对孤立的状态 缺乏良好的空间信息
处理功能的共享与互操作模式
z 系统内部耦合度较强 应用模式不够灵活 难以灵活地为需求不同的应用提供各
种不同粒度和不同功能组合的地理信息服务 也难以灵活地把系统中应用所需的
功能和应用的其它部分有机地集成起来 虽然采用组件的方式能够部分地解决这
些问题 但是该模式下系统的开发人员需要对组件有较为深入的了解 并要显式
地配置和使用这些组件 其可扩展性和灵活性并不理想

7
北京大学 2002 届博士研究生学位论文

z 处理功能比较有限 相对简单 由于面向的用户通常都是非专业用户 且以空间


数据的发布作为主要目的 因此 现有 WebGIS 的功能都相对简单

MapGuide 客户端 GeoMedia 客户端

MapGuide 服务器 GeoMedia 服务器

应用服务器 应用服务器

数据库 数据库 数据库 数据库

图 1.3 WebGIS 系统之间相对孤立的状态

1.3.2 从地理信息系统走向地理信息服务

由于现有 WebGIS 还无法很好的满足数字地球和数字城市的应用需求 因而需要针对数


字地球和数字城市对地理信息系统的新要求 提出一种能够良好地服务于数字地球和数字
城市的地理信息系统模式 而本论文正是希望通过在地理信息领域中引入 Agent 技术和 Web
服务 Web Services 技术 提出一种更适合于数字城市的地理信息系统模式 基于
GeoAgent 的空间信息服务或者地理信息服务 以及这种空间信息服务基于 Web 服务的应用
集成模式 在本论文中 如无特别说明 地理信息和空间信息的含义一致 同样 地理信
息服务和空间信息服务的含义也是一致的

1.3.2.1 Agent 技术的引入

目前 分布计算还处于客户/服务器计算的中间阶段 但由于受到新的应用需求的冲击
已经开始向分散对等的协同计算方向发展 将 Agent 的概念和技术引入分布计算 发展基
于 Agent 的分布计算技术是这一发展阶段的重要特征[46]
Agent 技术之所以能够在基于网络的分布计算领域中发挥着越来越重要的作用 主要
是因为以下两个原因 一方面是 Agent 技术为解决新的分布式应用问题提供了有效途径
另一方面是 Agent 技术为全面准确地研究分布计算系统的特点提供了合理的概念模型[34
46]
从逻辑上讲 一个分布式系统可以定义为由多个相互作用的 Agent 组成的系统 各种
分布式系统的差异主要表现为其中 Agent 的角色和交互方式上的差别[46] 已有的分布式
地理信息系统都基于客户/服务器模式 在这种模式中 系统中的 Agent 或为客户或为服务

8
第一章 前言

器 交互关系仅限于客户主动请求/服务器被动服务的交互方式 而在基于 Agent 的分布计


算模式中 每个 Agent 都具有良好的自治性 交互性 反应性和主动性 Agent 之间是平
等独立的 主要通过一种更为灵活 松散型的消息机制来进行交互 并可以在交互过程中
实现良好的协作 这种基于 Agent 的分布计算模式使得人们在设计系统的过程中跳出了客
户/服务器系统的局限和束缚 而相应的系统也能够克服了客户/服务器体系结构的不足
此外 Agent 的一些附加特性也能够为地理信息领域中某些问题的解决带来新的思维
模式和有效的解决途径 这主要体现在以下两个方面
z 可移动 Agent Mobile Agent 的引入将带来空间信息处理能力的网络迁移新思
路 为实现空间信息处理过程中从大量空间信息网络迁移到空间信息处理功能网
络迁移的转变带来有效的解决途径 使得空间信息的处理能够在尽量靠近空间信
息的地点进行 不但提高了处理的效率 也为解决空间信息网络传输这个瓶颈问
题的解决带来的新的解决途径
z 而本论文提出的按需装配特性则使得 Agent 能够在运行的过程中根据当前的需要
通过加载所需的构件来实现自我功能的增强 从而更好地完成任务 这种特性能
够优化可移动 Agent 的迁移机制 提高 Agent 的灵活性和适应性 为不同粒度空
间信息服务的组合提供可行的机制 同时也为空间信息领域功能构件层次的共享
和互操作带来的有效的解决途径
因此 需要在地理信息领域中引入更加强有力 更为有效的分布式计算技术 基于
Agent 的分布计算技术以解决在客户/服务器模式下分布式地理信息系统所存在的问题 这
就是本论文所研究的基于 GeoAgent 的空间信息服务模式 其中 GeoAgent 是把 Agent 技
术引入到地理信息领域的新型 Agent
目前 把 Agent 领域的技术引入到地理领域的相关研究还比较少 而且大部分研究基
本上还停留在实验室阶段 以下是几个比较有代表性的例子
z 北京大学计算机系基于 Agent 的地理信息系统 Geo-Agent 该系统是在分布式 GIS
构件的基础上 结合 CORBA 规范 利用计算机系自行研发的通用地理信息系统开
发平台 Geo-Union 来实现的[34 47]
z 武汉大学基于 Mobile Agent 的分布式地理信息系统 MADGIS 该系统主要构架在
日本 Mitsubishi Electric's Horizon Systems Labs 的 Concordia 的基础上[44]
z 圣地亚哥州立大学地理系提出的建立在分布式构件技术上的基于 Agent 的分布式
地理信息服务 Agent-based Distribute GIServices [48]
总地来说 Agent 技术在地理信息领域的研究还出于起步阶段 还需要有更多的研究
项目和工程来推进相关研究的发展

1.3.2.2 Web 服务技术的引入

由于现有的地理信息系统在应用模式 与其他应用的集成上还存在着很多问题 因此
需要引入一种新模式 即基于 Web 服务 Web Services 的应用模式和集成模式 为基
于 GeoAgent 的空间信息服务在数字地球和数字城市中应用和集成提供有效的途径
Web 服务技术最大的优势是采用的大量的标准化技术 建立在 HTTP 协议 WSDL SOAP
和 UDDI 等标准 以及 XML 等技术之上的 从而允许在不同平台上 以不同语言编写的各种

9
北京大学 2002 届博士研究生学位论文

程序以基于标准的方式相互通信 通过 HTTP 协议极大地扩展了传统应用软件的服务范围


并通过 SOAP UDDI 和 XML 等标准技术为应用软件提供了基于 Web 的统一应用标准 屏蔽了
应用软件底层具体的实现技术 因此 在地理信息领域引入 Web 服务技术将为基于 GeoAgent
的空间信息服务与其它空间信息服务或者非空间信息服务之间的互操作提供统一的标准
换句话说 就是为数字地球和数字城市中的各种应用调用 集成地理信息服务提供了统一
的标准
此外 通过 Web 服务技术 Web 服务流语言和 Agent 技术的结合 能够实现基于 Agent
的 Web 服务流引擎 充分突出 Web 服务能够在网络上无缝集成各种应用程序的优势 以及
Agent 在实现工作流引擎方面的优势 实现跨越技术和商业的边界对商业流程进行建模
使得商业流程和利用了大量 Web 服务的交易生命周期能够进行同样的无缝集成 这种机制
使空间信息服务能够无缝地融入到各种商业流程和能够解决某些综合性问题的相对固定的
处理流程之中 从而更好的融入到 IT 领域和数字城市之中 而且 这种机制和 GeoAgent
动态装配特性的结合将为多种粒度的空间信息服务的组合带来有效的途径
目前 把 Web 服务技术引入到地理信息领域的研究还很少 可喜的是 作为主要地理
信息领域标准化组织之一的开放式 GIS 协会 OGC 已经认识到在地理信息领域中引入 Web
服务技术的重要性和紧迫性 并已经在这方面做了一定的工作 这些已有的工作和讨论对
本论文以及相关的研究工作都有着良好的指导作用

1.4 论文研究内容及其组成

1.4.1 论文研究目标与成果

本论文的研究目标总得来说就是要在分析数字地球和数字城市对地理信息系统新要求
的基础上 根据地理信息领域的有关规范和标准 充分利用 Agent 技术和 Web 服务技术的
优势 提出基于 GeoAgent 的空间信息服务 以及这种空间信息服务基于 Web 服务的应用集
成模式 以解决现有地理信息系统存在的一些问题 从而更好地服务于数字地球和数字城
市的建设
本论文的主要创新点和研究成果包括
z 提出了按需装配 Agent 的概念和体系结构 这种新型 Agent 能够在运行的过程中
根据当前的需要通过加载所需的构件来实现自我功能的增强 从而提高 Agent 的
灵活性和适应性
z 在可移动 Agent 和按需装配 Agent 的基础上提出了新型 Agent GeoAgent 的概
念和基于 GeoAgent 的空间信息服务的理念 设计并实现了 GeoAgent 的通用模板
以及为了实现按需装配所需的构件注册管理器 然后实现了几种基于 GeoAgent 的
空间信息服务 包括数据访问服务和数据格式转换服务等
z 探讨了 GeoAgent 和 Web 服务的几种结合模式 并重点分析和探讨了基于 GeoAgent
的空间信息服务以 Web 服务模式和其他服务或应用进行集成的问题
z 基于 Web 服务流语言 WSFL 利用 Agent 技术初步实现了一个基于 GeoAgent 的
Web 服务流引擎 以实现 Web 服务流的解析和执行 为了使得服务流能够被并行

10
第一章 前言

执行 还设计了一个适合于服务流并行执行的 Agent 协作模式


z 通过 GeoAgent 的按需装配机制和空间信息服务的 Web 服务应用模式为空间信息处
理功能在不同层次的共享和互操作提供了有效的解决方案
此外 本论文还就 GeoAgent 的迁移策略 GeoAgent 之间的协作模式 以及系统安全
策略等问题做了较为深入的探讨和分析

1.4.2 论文组成

本论文主要由七章组成 各章的主要内容如下
第一章 也就是本章 以数字地球和数字城市为背景 在阐述地理信息系统发展历程
的基础上 重点分析了现有地理信息系统的不足 提出需要引入Agent技术和Web服务技术
实现从地理信息系统到空间信息服务的转变 以便更好地服务于数字地球和数字城市
第二章 讨论了空间信息服务的有关理论基础 首先简要介绍了地理信息领域的几个
主要标准化组织 然后重点阐述了开放式 GIS 协会的服务体系结构 OGC Web 服务 OpenGIS
服务框架和 OGC 互操作程序服务模型等
第三章 首先阐述了 Agent 的认知模型 概念和体系结构等有关理论基础 然后介绍
了 Agent 技术的应用现状和现有的主要开发平台和程序设计方法 最后介绍了 Agent 的标
准化研究情况
第四章 在可移动 Agent 和按需装配 Agent 的基础上提出新型 Agent GeoAgent 的
概念 详细阐述了 GeoAgent 及其系统的体系结构 然后简要阐述了有关原型的设计和实现
最后就 GeoAgent 的迁移策略 设计模式和安全问题做了较为深入的讨论
第五章 首先阐述了基于 GeoAgent 的空间信息服务的分类 优势和可能的应用模式
接着在介绍 Web 服务及其相关技术的基础上阐述了这种空间信息服务基于 Web 服务的应用
集成模式 然后在介绍 Web 服务流语言的基础上给出了基于 GeoAgent 的服务流引擎的设计
和实现 最后对基于 GeoAgent 和 Web 服务的空间信息服务及应用集成体系做了总结
第六章 讨论了本论文所实现的几种基于 GeoAgent 的空间信息服务和基于 GeoAgent
的 Web 服务流引擎在面向事件的旅游预订服务系统中的应用 并对原型系统的应用进行了
简要的分析
第七章 对本论文进行总结 并就基于 GeoAgent 的空间信息服务及其基于 Web 服务的
应用集成模式的未来发展前景进行了展望

11
第二章 空间信息服务理论基础

2.1 标准化
一个领域是否能够得到快速的发展 并大规模地应用于商业领域 关键的指标之一就
是该领域的标准化工作 在空间信息领域 目前已经有很多专注于有关标准和规范研究的
组织 主要包括 OGC ISO/TC 211 FGDC CEN WDC 和 UNEP 等 在这些标准化组织中
有不少已经发布了相对成熟的标准和规范 为规范地理信息领域的研究 开发和应用起到
了十分关键的作用 以下是几个主要标准化组织的简介
开放式 GIS 协会 OGC Open GIS Consortium 是一个非盈利组织 其目的是促进采用
新技术和商业方式来提高地理空间信息及其处理的互操作性 OGC 成员的共同目标就是建
立一个全国或全球范围内的地理空间信息基础设施 实现地理空间信息资源的全球共享
以便于人们自由使用和处理地理空间信息资源 即实现地理空间信息共享和提供地理空间
信息服务处理 以此推动空间信息产业化发展 为整个社会带来一个新的商业模式和利益
[49]
国际标准化组织 ISO The International Organization for Standardization 地
理信息/地球信息科学委员会 TC211 负责制定与地理空间信息有关的标准 主要是数字
地理信息和地球信息科学 目的是对地球上直接或间接与地理位置有关的物体和现象建立
结构化和可实现共享的标准 为不同的用户 不同的系统之间的地理信息的表现 查询
处理 分析 共享 管理和传输方法提供实现标准[50]
美国联邦地理数据委员会 FGDC 是由美国内务部负责的一个协调性组织 负责联邦
地理数据的协调发展 使用 共享和传播 它建立了两个数据标准 空间数据转换标准和
Metadata 标准[51]
欧洲标准化组织第 287 技术委员会 CEN/TC 287 分四个工作组 分别负责地理信息
标准化框架 地理信息模型和应用 地理信息传输和地理信息定位参考系统的标准化工作
目的是通过建立一系列标准 以确定一种定义 描述 处理 传输和表示现实世界的标准
方法 促进与地理位置有关的地理空间信息的使用和共享[52]
这些标准化组织的各种研究成果为地理信息领域的各项研究 各种系统的开发与应用
提供了很好的规范和理论基础 极大地促进了地理信息领域的发展 在空间信息服务方面
比较相关的规范及研究项目主要包括 开放地理信息系统协会 OGC 制订的服务体系结构
[53]和 OGC Web 服务启动项目[54] 以及 ISO/TC211 提出的地理信息服务标准草案 ISO/DIS
19119 [55]

2.2 开放式地理空间数据互操作规范
开放式 GIS 协会 OGC 制订了一个开放式地理空间数据互操作规范 OGIS Open Geodata
Interoperability Specification 依照该规范 可以构造一个提供地理空间信息和空间
服务资源的软件框架 该规范主要包括三个部分[56]

12
第二章 空间信息服务理论基础

z 开放式地理空间数据模型 Open Geodata Model 定义了一系列通用的基本地理


空间信息类型 通过这些类型 可以利用基于对象的或者常用的程序设计方法
为各种特定的应用领域进行地理空间数据的建模
z OGIS 服务模型 OGIS Services Model 定义了一系列的服务 这些服务可以
访问和处理开放式地理空间数据模型中定义的地理空间信息类型 为采用相同
地理要素定义的用户团体提供地理空间数据的共享能力 为采用不同地理要素定
义的用户团体之间提供地理空间数据的转换能力
z 信息团体模型 Information Communities Model 该模型在开放式地理空间数
据模型和 OGIS 服务模型的基础上建立了一种方案 为采用相同地理要素定义的
地理空间数据生产者和使用者体提供了一种有效管理地理要素定义的方法 以及
对相应的数据集进行编目和共享 为采用不同地理要素定义的各个地理空间数
据生产者和消费者体提供一种有效 精确的共享方法

2.3 OpenGIS 服务体系结构


开放式 GIS 协会在其抽象规范中制订了服务体系结构 目前新版 Version 4.3 的规
范[53]和国际标准化组织 ISO 的地理信息服务标准草案[55]是一致的 该规范基于 ISO
的开放分布式处理参考模型 RM-ODP Reference Model of Open Distributed Processing
从企业的视点 Enterprise Viewpoint 计算的视点 Computational Viewpoint 信息
的视点 Information Viewpoint 工程的视点 Engineering Viewpoint 和技术的视点
Technology Viewpoint 等多个角度来阐述地理信息服务
该规范还对地理信息服务作了以下分类[53]
z 用户交互服务 包括用户界面 图形和多媒体的管理服务和服务文档的表现服务
z 模型/信息管理服务 主要包括元数据 概念模式和数据集的开发 操作和存储等
管理服务
z 工作流/任务服务 主要指用于支持某些特定任务或者与工作相关的活动的服务
z 处理服务 主要指对地理数据作了大量计算的服务 包括空间处理服务 专题处
理服务 时相处理服务和元数据处理服务等
z 通讯服务 主要包括数据编码和数据传输服务
z 系统管理服务 主要指系统构件 应用程序和网络的管理服务 也包括对用户账
号和访问权限的管理服务

2.4 OGC Web 服务


所谓 Web 服务 Web Services 是指那种自包含 自描述 模块化的应用程序 这类
应用程序能够被发布 定位 并通过 Web 实现动态地调用 Web 服务所实现的功能 可以
是从简单请求到复杂商业过程的任意功能 一旦一个 Web 服务被配置完毕 其他的应用程
序 包括其他 Web 服务就能够发现并调用该服务[57] 因此 利用 Web 服务技术 可以很
好地实现服务在 Web 层次的互操作 并为服务的整合 特别是电子商务领域中商业过程的
组合或服务链的形成提供了良好的基础

13
北京大学 2002 届博士研究生学位论文

OGC Web 服务启动项目 OGC Web Services Initiative [54]是一个专门研究如何利


用 Web 服务及其相关技术解决地理信息领域互操作问题的研究项目 其目的是希望提出一
个可进化 基于各种标准的 能够无缝集成各种在线空间处理和位置服务的框架 即 OWS
OGC Web Services 使得分布式空间处理系统能够通过 XML 和 HTTP 技术进行交互 并
为各种在线空间数据资源 来自传感器的信息 空间处理服务和位置服务基于 Web 的发现
访问 整合 分析 利用和可视化提供互操作框架[58]

2.4.1 基本服务和数据构建模块抽象体系结构

OWS 中涉及到很多基本服务和数据的构建模块 构件 其抽象模型如图 2.1 所示[59]


这些构件可以分为两类 一类是操作型构件 一类是数据型构件[57 59] 通常情况下
操作型构件将在数据型构件的基础上完成相应的操作
操作型构件主要包括客户服务 目录与注册服务 应用服务与数据服务[57 59]
z 客户服务 例如阅读器或编辑器 这些服务是能够与用户交互 能够与 OpenGIS
服务框架中的服务交互的应用程序构件 客户服务是主要的用户界面应用程序构
件 能够提供底层数据和操作的视图 并为用户提供相应的方法以控制这些数据
和操作
z 目录与注册服务 这些服务能够提供对目录和注册库的访问 这些目录或注册库
由一系列元数据和类型所组成 目录包含了数据集和服务的实例的有关信息 而
目录服务则提供了一个相应的搜索操作 能够返回数据集和服务实例的元数据或
名称 注册记录则包含了类型 Types 的有关信息 这些类型是由众所周知的词
汇定义的 注册服务也实现了一个搜索操作 能够返回类型的元数据或者名称
z 应用服务 处理服务 这类服务是能够对空间数据进行某些操作并提供增值服务
的基本应用服务构建模块 应用服务通常都有一个或多个的输入 在对数据实施
了增值性操作之后产生相应的输出 应用服务能够转换 合并或者创建数据 既
可以和数据服务紧密绑定 也可以与数据服务建立松散型的关联模式
z 数据服务 这些服务能够提供 OWS 中数据 特别是空间数据的基本服务构建模块
实现对数据集的访问 通过数据服务插入的资源通常都会有一个名称 通过该名
称 数据服务将能够找到该资源 数据服务通常都通过维护索引来提高通过数据
项的名称或者其他属性来找到相应数据项的速度 OGC 中的 Web 地图服务器 WMS
Web Map Server Web 要素服务器 WFS Web Feature Server 和 Web 覆盖服
务器 Web Coverage Server 都属于数据服务
而数据型构件主要包括 数据 元数据 名称 关联与容器
z 数据 数据是描述事物的信息 或者仅仅是简单的信息 数据能够被创建 保存
操作 删除 浏览等等 数据可以有元数据 这是另一类数据
z 元数据 简单地说 元数据 Metadata 就是关于数据的数据 根据不同的语言
环境 元数据可以表达不同的含义 资源 resources 或资源类型 resource
types 的元数据可以被保存在目录或者注册库中 如果目录或者注册库中含有很
多不同资源或者资源类型的元数据纪录 则能够通过这些元数据发现并利用相应

14
第二章 空间信息服务理论基础

的资源和资源类型

工作流服务 查询
客户服务 构建

数据转换
调用
目录 &注
册服务 容器 持有
查询
关联
调用 存储
&获取
包含 处理
服务 更新 指向

数据 创建
服务
描述
持有 名称
元数据
识别
空间数据

说明
数据
服务

图 2.1 OWS 基础服务和数据构建模块抽象模型 摘自 OGC

OWS 应用/数据
客户端服务 服务供应商平台 服务平台

服务器断客户应用
•Web制图
网页 •基于Web的图象应用
符号化图形 •决策支持
Web/Portal •…...
数据,
平台
元数据
应用服务
OGC •支撑Web制图
API •支撑基于Web的图象应用
OGC •支撑决策支持
可视化/显示 API •…...
提供经过整合与裁剪的图片
数据服务
OWS •WFS, WMS, WCS
平台
公共体系结构
•服务模型
安全服务 •编码
•Web注册服务
OGC •公共服务
外部应用服务 API
&数据服务

OWS OWS
响应 请求

图 2.2 OWS 操作体系结构系统概念 摘自 OGC


z 名称 名称 Names 是一种标识 目前已经有很多种命名模式 而最有名的则是

15
北京大学 2002 届博士研究生学位论文

WWW 大家都很熟悉的 URL 只有知道了能够使某个名称有效的环境 名称空间


该名称才能显得有意义 如果一个数据项被存储在仓库 可通过数据服务访问
之中 则该数据项可以被赋予一个能够在该仓库中显得有意义的名称 如果该仓
库自身也拥有一个名称 则这两个名称联合起来将有助于找到该数据项
z 关联 如果某两个信息元素之间有连接 则称两者之间建立了某种关联
Relationships 关联既可以是象 WWW 超连接这样的简单连接 也可以是由多
个元素构成的复杂关联 关联通常连接的都是已经命名了的元素 OGC 把面向空
间的关联称为 geolinks [60]
z 容器 容器 Containers 是指数据集或者 Web 上内容的一个已经编码 能够传
输的形式 容器有众所周知的名称空间 模式和协议 OGC 已经开发了两个相关
的协议 LOF Location Organizer Folders [61]和 XIMA XML for Imagery and
Map Annotations [62] 两者都是建立在 GML Geography Markup Language [60
63]的基础上

2.4.2 操作体系结构系统概念

图 2.2 描述了把 OWS 应用于 Web 环境所涉及的系统概念[57] 主要包括公共体系结构


客户服务 服务器端客户应用程序 应用服务和数据服务等
z 公共体系结构 Common Architecture 主要指 OGC 技术体系结构中的公共 基
本元素 包括服务模型 编码机制 Web 注册服务 以及其他公共服务
z 客户服务 是能够和用户交互的应用程序客户端构件 能够与服务器端的服务器
端客户应用程序 应用服务器以及数据服务器等交互
z 服务器端客户程序 是服务器端的主要构件 能够与客户服务交互 也能够调用
服务器端的应用服务和数据服务 包括 Web 制图 决策支持等
z 应用服务 能够对数据进行操作并提供增值服务的基本应用服务构建模块 包括
Web 制图的支撑构件 决策支持的支撑构件等
z 数据服务 在 OWS 中提供数据 特别是空间数据的基本服务构件模块 包括 Web
地图服务器 WMS Web Map Server Web 要素服务器 WFS Web Feature Server
和 Web 覆盖服务器 Web Coverage Server 等

2.4.3 技术体系结构

图 2.3 在抽象模型 图 2.1 和系统概念 图 2.2 的基础上给除了一个高层次的 OWS


技术体系结构功能视图[57] 主要包括了五个部分 即公共体系结构部分 Web 制图部分
影像利用部分 传感器 Web 部分和决策支持部分
z 公共体系结构部分 这部分关注的主要是 OGC 技术体系结构中的公共 基本元素
包括服务模型 编码机制 Web 注册服务 及其他公共服务
z Web 制图部分 这部分关注的是在 WMTI Web Mapping Test beds I 和 WMTII Web
Mapping Test beds II 的基础上 研究 Web 制图客户服务 服务器端客户应用
程序 数据服务 以及支撑性的应用服务等
z 影像利用部分 这部分关注的是基于 Web 的图象开发的客户服务 服务器端客户

16
第二章 空间信息服务理论基础

应用程序 数据服务 以及支撑性的应用服务等


z 传感器 Web 部分 这部分关注的是传感器网络的客户服务 服务器端客户应用程
序 数据服务 支撑性的应用服务 以及传感器标记语言 Sensor Markup Language
和传感器注册服务等
z 决策支持部分 这部分关注的是决策支持的客户服务 服务器端客户应用程序
数据服务 支撑性的应用服务 建模标记语言 Modeling Markup Language 以
及事件和事件服务的编码机制等

图 2.3 OWS 技术体系结构功能视图 摘自 OGC

2.5 OpenGIS 服务框架


OpenGIS 的服务框架如图 2.4 所示 该框架建立了能够被任何应用所利用的公共接口
交换协议和服务 包括应用客户 注册服务 编码 处理服务 描绘服务和数据服务等[64]
OpenGIS 服务框架中的服务能够被任何拥有授权且实现了 OpenGIS 相关服务接口和编
码规范的应用所访问 主要的应用客户包括发现客户 地图查看器客户 影像利用客户
增值客户和传感器客户等[64]

2.5.1 注册服务

注册服务 Registry Service 为 Web 资源的分类 注册 描述 搜索 维护和访问


提供了公共的机制 其中 Web 资源是具有网络地址 类型化的数据或者服务实例 注册
服务允许
z 资源的提供者发布关于资源类型和实例的描述信息

17
北京大学 2002 届博士研究生学位论文

z 资源需求这发现关于资源类型和实例的有关信息
z 资源需求者访问或者绑定资源提供者
注册服务定义了一个允许应用程序和服务与注册实例进行交互以发现 访问和管理空
间数据和服务的公共信息模型和标准操作

处理

图 2.4 OpenGIS 服务框架 摘自 OGC

2.5.2 处理服务

处理服务 Processing Services 提供了一系列服务构建模块 这些模块能够对空间


数据进行操作并为应用提供各种增值服务 处理服务是拥有一个或多个输入 能够对数据
进行增值处理 并能够产生相应的输出的构件 这些服务能够与数据 描绘等服务建立紧
耦合或者松耦合的关系 也能够被嵌入到服务的 价值链 之中 以执行某些特定的处理
主要的处理服务包括
z 链接服务 Chaining service 提供服务链的定义 执行和管理
z 坐标转换服务 CTS Coordinate Transformation Service 提供影像与影像
影像与地面 地面与地面坐标参考系统之间的位置坐标转换 其中 影像坐标是
指二维影像坐标参考系统中的位置 而地面坐标是指三维地面坐标参考系统中的
位置
z 地理编码服务 Geocoder Service 是指把字符串中的词 术语和编码连接到相
应的地理要素的过程 比较典型的地理编码是把一个街道地址转换成为一个地理
位置

18
第二章 空间信息服务理论基础

z 地名辞典服务 Gazetteer Service 是一个可以通过网络访问的服务 该服务


能够根据一个或多个地理要素的标识符获得相应的几何体 其中 要素的标识符
可以在运行过程通过检索来获得 这些标识符可以由任意描述要素的词或者术语
组成 而返回的几何体是基于 GML 编码格式的 每个地名辞典服务的实例都包含
了一个相应的标识符词汇表 并对应于一个特定的区域 或者一组特定的要素
z 空间解析服务 Geoparser Service 是指对一个文本文档进行处理并鉴别出具
有空间内涵的关键词和短语的能力 该服务涉及到两个信息体 一个是保留词汇
表 如地名 一个是信息源 如报纸 该服务能够把信息源中出现的所有保存
在保留词汇表中的词鉴别出来 并与相应的位置关联起来

2.5.3 描绘服务

描绘服务 Portrayal Services 提供了支持空间信息可视化的各种特定功能 描绘


服务是拥有一个或多个输入 能够产生相应描绘输出的构件 这些服务能够与数据 处理
等服务建立紧耦合或者松耦合的关系 也能够被嵌入到服务的 价值链 之中 以执行某
些特定的处理 主要的描绘服务包括
z Web 地图服务 WMS Web Map Service 能够根据用户的请求返回相应的地图
这里地图不是指数据本身 而是指空间数据的可视化形式 包括 PNG GIF 或者
JPEG 等栅格形式 或者 SVG Scalable Vector Graphics 和 WebCGM Web Computer
Graphics Metafile 等矢量形式
z 栅格图层描绘服务 CPS Coverage Portrayal Service 指从栅格图层数据生
成可视化图片的服务 通常情况下 这些栅格图层数据是从 WCS 实例中获得的
该服务扩展了 WMS 接口 并利用样式图层描述符语言 SLD Styled Layer
Descriptor 来支持 WCS 栅格图层的描绘

2.5.4 数据服务

数据服务 Data Services 提供了对存放在仓库和数据库中的数据集合的访问功能


能够通过数据服务访问的资源通常都能够通过一个名称来引用 通过该名称 数据服务就
能够找到该资源 数据服务通常都通过维护一个相关的索引来加快利用名称或者其他属性
查找资源的过程 OpenGIS 服务框架定义了公共的编码和接口 使得各种分布式的数据服
务能够以相同的风格面向其他主要的构件 主要的数据服务包括
z Web 要素服务 WFS Web Feature Service 支持对地理要素的插入 更新 删
除 检索和发现服务 该服务根据 HTTP 客户的请求返回简单地理要素的 GML 表达
形式
z Web 栅格图层服务 WCS Web Coverage Service 提供的是对包含了地理位置
的值或者属性的空间栅格图层 而不是静态地图的访问服务 该服务能够根据 HTTP
客户的请求发送相应的栅格图层数据 包括影像 多光谱影像和其他科学数据等
z 传感器收集服务 SCS Sensor Collection Service 为客户收集和访问传感器
的观测数据 以不同的方法来操纵传感器提供了标准的接口 该服务能够根据 HTTP
客户的请求发送相关的传感器观测数据 通过引入相应的科学模型或者其他服务

19
北京大学 2002 届博士研究生学位论文

的处理 服务请求者可以对这些数据作进一步的分析
z 影像存档服务 IAS Image Archive Service 提供对大量数字影像和相关元数
据的存储和访问服务 只要客户拥有相应的权限 就可以增加新的影像或者删除
旧的影像

2.5.5 编码

在 OpenGIS 服务框架中 所有编码规范都是基于 XML 的 主要的编码包括


z GML Geography Markup Language 是一种用于传输和存储空间信息的 XML 编码
这些信息包括了空间几何体和地理要素的属性
z XIMA XML for Image and Map Annotation 定义一个用于编码影像 地图和其
他空间数据的注释的 XML 词汇表 这些词汇表主要用于表达注释的位置 并把每
个注释都和相应的空间资源关联起来
z 图层样式描述符 SLD Styled Layer Descriptor 定义了一种地图样式语言
以便于根据用户定义的样式来绘制地图 该语言能够被用于描绘 Web 地图服务器
Web 要素服务器和 Web 栅格图层服务器的输出
z 位置组织者文件夹 LOF Location Organizer Folder 是一个 GML 应用模式
该模式能够为与某个或某些感兴趣事件的相关信息的组织提供相应结构 位置组
织者文件夹能够被用于灾难分析 智能分析等分析应用中
z 服务元数据 Service Metadata 是一个 XML 词汇表 由从不同侧面描述服务的
几个部分组成 主要包括服务接口的描述信息 服务的数据内容或服务所操作的
数据的相关信息 以及服务类型和服务实例的相关信息等
z 影像元数据 Image Metadata 是能够充分描述 OSM 服务可以处理的所有影像类
型的 XML 编码
z 传感器标注语言 SensorML Sensor Markup Language 定义了一个用于描述各
种传感器类型和实例的几何 动力学及观测特性的 XML 模式
z 观测与度量 Observations and Measurements 定义了观测和度量的框架和 XML
编码

2.6 OGC 互操作程序服务模型


OGC 互操作程序服务模型 IPSM Interoperability Program Service Model 描述
了一个针对 OpenGIS 服务的计算模型 该模型的目的在于详细说明如何把空间软件服务融
入到更为广阔的互操作基础设施中以利用松耦合的模式来使用和扩展各种数据和服务资
源 OGC 互操作程序服务模型建立在 OGC 服务体系结构[53]的基础上 但是更加强调如何
利用现有的技术 平台和机制来实现具有可互操作性的服务 该模型的一个基本想法是应
用程序能够把在运行时发现和集合的服务动态地组合起来 用于电子商务 信息交换中心
和企业应用中 由于实现一个服务可以有很多种具体的方法 因此 该模型关注的主要是
描述创建动态 松耦合系统的原则和基本模型[65]

20
第二章 空间信息服务理论基础

2.6.1 服务角色与操作

一个服务就是一个操作集合 能够通过接口被访问 一个服务能够被一个客户通过网


络利用标准的协议来调用 且该调用与客户所采用的平台 语言以及对象模型无关
在 OGC 互操作程序服务模型中 主要有以下几个基本角色
z 服务供应商 在中介处发布服务 并为服务请求者提供服务
z 服务请求者 在服务中介处执行查找操作以发现所需的服务供应商 然后访问该
服务供应商以获得所需的服务
z 服务中介 帮助服务供应商和服务请求者发现对方 就象一个服务及其内容的注
册库或信息交换中心
在 OGC 互操作程序服务模型中 服务供应商 服务请求者和服务中介之间所发生的操
作主要包括三个基本操作和一个可选操作 如图 2.5 所示 该计算模型是基于开放分布式
处理参考模型 RM-ODP Reference Model of Open Distributed Processing 的
z 发布 发布操作就是在中介处为数据和服务做广告 一个服务供应商可以与服务
中介中心建立连接以发布服务或撤销服务的发布 一般情况下 服务供应商在服
务中介发布的元数据包括服务的功能以及网络地址等信息
z 发现 服务请求者和服务中介联合起来以执行发现操作 服务请求者向服务中介
描述所需服务的类型 而服务中介把匹配的结果反馈给服务请求者 服务请求者
通常都利用发布的元数据来发现感兴趣的服务供应商
z 绑定 绑定操作发生在服务请求者和服务供应商之间 两者可以进行协商 以便
请求者能够访问和调用供应商的服务 一个服务请求者通常情况下都利用服务中
介所提供的服务元数据来绑定服务
z 链接 链接操作是可选操作 一个链接操作可以把一系列的服务都绑定在一起
每个连接关联着一对服务 其中第一个动作的执行必须早于第二个动作的执行

中介

2. 发现 1. 发布

请求者 供应商

3. 绑定 4. 链接

供应商

图 2.5 互操作程序服务模型的服务类型与操作 摘自 OGC

21
北京大学 2002 届博士研究生学位论文

OGC 互操作程序服务模型把服务的描述和服务的实现分离了开来 这使得服务请求者


能够在开发期间或者运行期间与某个服务供应商的某个特定实现绑定起来 OGC 互操作程
序服务模型利用服务元数据 即关于服务的描述 来支持发布 发现 绑定和链接等操作
服务元数据在 OGC 互操作程序服务模型中主要发挥三个不同的角色
z 元数据描述服务供应商的特点 服务中介利用这些特点来分类服务供应商以支持
发现操作 服务的分类可以基于一个或多个分层的服务分类法 服务请求者能够
利用这些特点来匹配所需的服务供应商
z 描述非功能性的特点 包括安全性 事务性要求 以及使用服务的费用等等 这
些描述能够帮助服务请求者找到合适的服务供应商
z 描述用于访问服务的接口 这些接口描述包括其签名 允许的操作 数据类型和
访问协议等 服务请求者可以利用这些信息绑定服务供应商 并利用发布的接口
调用其服务

2.6.2 元素
OGC 互操作程序服务模型中主要涉及了服务 接口 操作 消息和绑定等基本构建模
块 元素 如图 2.6 所示 下面是关于这些基本构建模块的简要解释

服务

1..n 绑定
协议
1..n
地址

接口

1..n

1..n

操作

1..n

1..n
消息

图 2.6 互操作程序服务模型的基本构建模块 摘自 OGC


z 一个服务是一个命名的具体接口的集合 这些接口在一起提供了一个独特的功能
集合 事实上 一个服务就是若干个接口的实现[66]
z 一个接口是一个能够体现服务行为的抽象 命名的操作集合 当指定的接口独立
于绑定时 该接口是抽象的 当一个接口通过绑定和一个服务联系起来时 该接
口是具体的 一个接口可以有一个或多个具体的接口 一个或多个服务可以实现
同一个接口 接口定义了其操作的范围[67]
z 一个操作是一个服务可能被要求执行的动作的抽象的命名规范 一个操作拥有一
个有若干个输入消息和输出消息的列表 一个操作的范围局限在其接口之内 也

22
第二章 空间信息服务理论基础

就是说同样的操作 包括名称和相关的消息 可以被用于多个接口之中 即使在


不同的接口中该操作具有不同的语义 具体的操作被定义为具体接口的一部分
[67]
z 一个消息 或者说消息类型 一个抽象的 类型化的数据定义 数据的抽象 类
型化定义 能够在服务之间传递 消息能够被多个操作利用 具体的消息被定义
为具体接口的一部分[67]
z 一个绑定是一个特定接口实现的具体协议和数据格式规范 一个绑定能够被用来
关联一个接口和一个具有网络地址的服务[67]

2.6.3 服务分类
在 OGC 互操作程序服务模型中 服务的分类如表 2.1 所示 其中 OGC 服务代码是针
对特定服务类别的非零十六进制数字
表 2.1 OGC 服务分类模式
OGC 代码 服务分类
0000 OGC Web 服务[根]
1000 Human interaction(用户交互)
1100 Portrayal(描绘)
1110 Geospatial viewer(地理空间查看器)
1111 Animation(动画)
1112 Mosaicing(马赛克)
1113 Perspective(透视图)
1114 Imagery(影像)
1120 Geospatial symbol editor(地理空间符号编辑器)
1130 Feature generalization editor(要素生成编辑器)
1200 Service interaction editor(服务交互编辑器)
1300 Registry browser(注册浏览器)
2000 Information Management(信息管理)
2100 Feature access(要素访问)
2200 Coverage access(栅格图层访问)
2210 Real-time sensor(实时传感器)
2300 Map access(地图访问)
2400 Gazetteer(地名辞典)
2500 Registry(注册)
2600 Sensor access(传感器访问)
2700 Order handling(订单处理)
3000 Workflow(工作流)
3100 Chain definition(服务链定义)
3200 Enactment(服务链定制)
3300 Subscription(预订)
4000 Processing(处理)
4100 Spatial(空间处理)

23
北京大学 2002 届博士研究生学位论文

4110 Coordinate conversion(坐标换算)


4120 Coordinate transformation(坐标变换)
4130 Representation conversion(表示法转换)
4140 Orthorectification(正射纠正)
4150 Subsetting(构造子集)
4160 Sampling(采样)
4170 Feature manipulation(要素操作)
4180 Feature generalization(要素生成)
4190 Route determination(路线确定)
41A0 Positioning(定位)
4200 Thematic(专题处理)
4210 Geoparameter calculation(地理参数计算)
4220 Thematic classification(专题分类)
4221 Unsupervised(非监督分类)
4222 Supervised(监督分类)
4230 Change detection(变化检测)
4240 Radiometric correction(辐射校正)
4250 Geospatial analysis(地理空间分析)
4260 Image processing(影像处理)
4261 Reduced resolution generation(压缩精度生成)
4262 Image manipulation(影像操作)
4263 Image synthesis(影像分析)
4270 Geoparsing(地理分析)
4280 Geocoding(地理编码)
4300 Temporal(时相处理)
4310 Reference system transformation(参考系统变换)
4320 Subsetting(构造子集)
4330 Sampling(采样)
4340 Proximity analysis(模糊性分析)
4400 Metadata(元数据)
4410 Statistical analysis(统计分析)
4420 Annotation(注记)
5000 Communication(通讯)
5100 Encoding(编码)
5200 Format conversion(格式转换)
5300 Messaging(消息机制)
6000 System Management(系统管理)

2.6.4 服务互操作层次

图 2.7 给出了服务的互操作层次结构 描述了实现与配置服务的技术和标准层次结构


最底层实现的是软件构件的连通性 能够允许软件构件之间相互绑定 接收和发送消息

24
第二章 空间信息服务理论基础

而更高层次允许的是互操作性 使得软件构件能够通过发布 发现和绑定机制 以更加完


整而动态的方式透明地整合在一起
互操作层次结构的基础是通信协议 包括 TCP/IP HTTP SMTP IIOP 和 FTP 等 除了
纯二进制数据 结构化数据将用 XML 编码起来 而数据编码的格式将由模式语言来描述
包括 DTD XML Schema RDF 或者 XMI 等 OGC 已经定义了一系列的模式 例如编码简单要
素的 WKB 和 WKT 以及用 XML 编码要素的 GML
分布式计算平台 Distributed Computing Platform 层主要关注的是能够允许分布
式服务的基础设施 一个分布式计算平台是一个能够允许分布式计算的标准软件环境 能
够支持运行在多台计算机上的软件的相互协作 这些计算机通过通信网络实现通信 为了
达到能够通过可重用的软件构件来构建服务 需要用到 COM CORBA J2EE 和 SQL 等分布式
计算平台 同样的 HTTP 和 SOAP[68]也是使得在网络上配置的服务能够绑定在一起的基础
设施技术
互操作层次 互操作标准
互操作性 服务集成
与工作流 WSFL, XLANG, ISO19119

服务发现 UDDI, OGC-Catalog, etc.

服务描述
WSDL,ISO-19119, etc.

服务 OGC SF, Coverage, Coordinate


Transform, WMS, etc.
分布计算平台 HTTP, SOAP, COM, CORBA, SQL, J2EE, etc.
数据格式
模式
HTML, XML/S, RDF, XMI, OGC-GML,
语义 OGC-WKT/WKB, etc.
数据表示 ASCII, ASN.1/DER, XML, etc.
与编码

TCP/IP, HTTP, SSL, SMTP, FTP,


通信协议
IIOP, etc.
连通性

图 2.7 服务互操作层次结构 摘自 OGC

在服务层 OGC 已经定义了很多规范 例如几种访问和操作简单对象的实现规范 包


括 COM CORBA 和 SQL 等平台[69 70 71] OGC 后续的工作将会产生更多的规范
服务描述层通过提供服务的基本信息以实现服务的发现 绑定和互操作 这些信息主
要包括
z 服务供应商和 服务请求者之间传递的消息类型
z 服务供应商支持的操作
z 绑定服务供应商的规则
z 服务供应商的网络地址

25
北京大学 2002 届博士研究生学位论文

服务发现层是一组用于发布和发现服务供应商的标准和技术 服务描述关注的是如何
访问 Web 服务 而服务发现则使得服务请求者能够发现和利用服务的相关描述 UDDI[72
73]是一个新的定义了服务发现机制的技术 OGC 的目录服务实现规范则定义了支持发现地
理空间内容和服务的服务
最好的整合与工作流 层关注的是允许服务整合的标准和技术 用以支持在组织和信息
团体之内的决策制定 建模 工作流和商业处理整合等

2.6.5 主要相关技术

图 2.8 给出了互操作程序服务模型中与 Web 服务的几个基本操作相对应的技术堆栈


主要包括 Web 服务描述语言 WSDL 统一描述 发现与整合规范 UDDI 简单对象访问
协议 SOAP 和服务链描述语言等相关标准和技术

SOAP

SSL WSDL XML XLANG/WSFL

HTTP XML UDDI HTTP XML

安全堆栈 服务描述堆栈 服务发现堆栈 服务绑定 模型/工作流


(发布) (发现) 堆栈 堆栈
(绑定) (链接)

图 2.8 OGC 互操作程序服务模型技术堆栈 摘自 OGC

1 Web 服务描述语言 WSDL


Web 服务描述语言 Web Services Description Language [74]是 W3C 用于描述 Web
服务的新规范 WSDL 能够用来描述一个 Web 服务能够做什么 该服务在什么地方 以及如
何调用该服务 该规范为服务供应商提供了一个简单的方法以描述针对其系统的请求基本
格式 WSDL 是统一描述 发现与整合规范 UDDI 的重要补充 在 W3C 的规范中 WSDL 是
一个以 XML 格式描述 Web 服务的规范 它把 Web 服务看成是一系列能够对消息 message
操作的端点 endpoints 这些消息包含了面向文档的信息或者面向过程的信息 这些操
作和消息都是抽象描述的 能够与一个具体的网络协议和消息格式结合起来定义一个端点
一个服务供应商能够用 WSDL 文档来发布 Web 服务 发现已经发布的服务 并且动态地绑定
这些服务
2 统一描述 发现与整合规范 UDDI
统一描述 发现与整合规范 Universal Description, Discovery and Integration
[72 73]为客户定义了一种动态发现 Web 服务的机制 UDDI 有两大部分组成 一个是在
Internet 范围的 Web 服务元数据仓库 另一个是用于 Web 服务元数据仓库的 API 和数据模
型标准 前者保存数据而后者提供了相关的方法访问前者

26
第二章 空间信息服务理论基础

统一描述 发现与整合规范定义了开放的 具有平台独立性的 基于 XML 的服务描述


也为服务中介定义了相关的 API
3 简单对象访问协议 SOAP
简单对象访问协议 Simple Object Access Protocol [68]是一个定义了统一方法以
传输 XML 编码数据的协议规范 该协议也定义了一种通过 HTTP 执行远程过程调用的方法
在该协议中 两个构件之间的消息传递总共包含了三个主要构成部分
z 信封 envelope 定义了描述消息内容以及如何处理的框架
z 编码规则 encoding rules 定义了传递应用定义的数据类型的序列化机制
z 远程过程调用 remote procedure call 约定 允许基本请求/响应交互过程的
约定
4 服务链描述语言
服务链描述语言目前主要包括 Web 服务流语言 Web Services Flow Language 和基
于 XML 的商业过程语言 XLANG
Web 服务流语言[75]来自于 IBM 是一种描述 Web 服务合成的 XML 语言 包含两种类型
的合成 流模型描述的是一组服务的恰当的使用模式 合成的结果可以用来描述如何实现
一个特定的商业业务目标 而全局模型描述的一组 Web 服务的交互模式 其结果是所有参
与者交互的描述
而 XLANG 来自于微软[76] 是一个基于 XML 的商业过程语言 该语言提供了一种服务
整合的途径 允许用户把非常大型的应用程序也当成一个长久的商业过程中的一个构件
使得用户能够把应用程序和 XML Web 服务整合成非常大型的 同盟式的应用程序

27
第三章 Agent

随着计算机网络和计算机通讯技术的快速发展 特别是 Internet 和 World Wide Web


极其快速的普及和发展 Agent 与多 Agent 系统 MAS multiagent systems 越来越受到
人们的重视 并已经成为分布式人工智能 DAI Distributed Artificial Intelligence
当前的一个主要研究方向[77] 该研究方向和分布式问题求解 Distributed Problem
Solving 及并行人工智能 Parallel Artificial Intelligence 一起构成了当前分布式
人工智能的三大主要研究方向[78]
虽然有关 Agent 的研究已经成为一个热点 但是目前人们在 Agent 的有关概念和理解
上尚未达成共识 不同领域或相同领域的不同研究机构之间存在着千差万别的不同理解
这在客观上增加了研究的难度 目前 由于理解不同 缺乏相关的标准和规范作为有力的
指导 不同的研究机构在研究内容 指导理论和研究方法上都还存在着很大的差异

3.1 Agent 的认知模型和概念

3.1.1 Agent 的认知模型

为了能够准确地描述 Agent 表达 Agent 的特点 研究人员试图从理论上用一种形式


化的方法描述 Agent 特性 再通过这种形式化的描述发现一些有用的规律 具体地说 就
是要研究如何用符号表示复杂现实世界中的 Agent 以及 Agent 如何根据各种信息对环境
进行推理和决策[78]
近年来 研究 Agent 的理论学家提出了许多表示 Agent 特性的形式方法 主要有
Bratman 提出的 BDI Belief-Desire-Intention Theory 理论 Kripke 的可能世界语义
模型 Moore 对于知识与动作的研究 Cohen 和 Levesque 对信念的探讨 Konolige 的演绎
模型 以及国内史忠植等人提出的 RAO 逻辑等理论和方法[78] 其中 Moore 是使用形式
逻辑对 Agent 进行建模的先驱者之一[79] 他引入了知识的模态算子 并使用动态逻辑表
示动作 这样的形式化允许 Agent 拥有如何达到目标的部分信念 同时 Agent 可以通过执
行动作来获得最终信息 Moore 的理论具有开创性意义 但对 Agent 的建模过于简单而不
在这些研究中
全面[78] 最 有 影 响 的 是 Bratman 提 出 的 BDI Belief-Desire-Intention
Theory 理论 目前 几乎所有的相关工作都以实现 Bratman 的哲学分析为目标[80
81] 1 Bratman 的 BDI 理论[78]
传统的人工智能一般是针对具体问题由程序安排 Agent 进行推理 计算的 这种方法
不适合于 Agent 在开放 动态的环境中保持更强的解决问题的能力 1987 年 Bratman 从哲
学上对行为意图的研究 对人工智能产生了广泛的影响 被公认为 DAI 的理论基础之一
Bratman 认为只有保持信念 愿望和意图的理性平衡才能有效地解决问题 他认为在
开放的世界中 理性 Agent 的行为不能直接由信念与愿望以及由两者组成的规划驱
动 在愿望与规划之间应有一个基于信念的意图存在 在开放和分布式的环境中 一个理
性 Agent 的行为是受制于意图的 Agent 不会无理由地随意改变自己的意图 也不会坚持
不合实际的意图 理性平衡的目的在于使理性 Agent 行为符合环境的特性

28
第三章 Agent

2 Rao 和 Georgeff 的 BDI 模型[78 82 83]


A. Rao 和 M. Georgeff 给出了一个 BDI 的形式化模型 包括基础逻辑的定义 信念
愿望和意图 作为模态操作符的描述 这些模态操作符的可能世界语义的定义 BDI 操作
符之间关系定义的公理等 与大多数哲学理论相比 Rao 和 Georgeff 把意图作为一类成
员 即作为与信念和愿望具有相同地位的概念
在该模型中 世界采用时序结构描述 该结构是以未来为分支时间 以过去为线性的
结构 称为时间树 描述这些结构的形式语言是计算树逻辑 CTL 的改变 有两种公式 状
态公式 考虑在特殊的时间点 和路径公式 考虑时间树中一段路径
语义定义为 3 部分 状态和路径公式的语义 事件的语义以及意图 信念和目标的语
义 其中 事件的语义提供了一种定义事件变换时间点到另一点成功或失败的机制 信
念 目标和意图的定义采用可能世界语义 在每个情景中 存在信念可达 目标可达和意
图可达世界的集合 它们分别用于刻划 Agent 相信可能 想要到达和已承诺要到达 信念
的公理系统基于标准的弱 S5 KD45 模态系统 K 和 D 公理用于目标和意图 这就是说在
蕴含下目标和意图是封闭的 并且它们必须是一致的

3.1.2 Agent 的概念

由于对 Agent 的认知模型的不同 也由于来自不同领域的研究人员有着不同的背景


理念和需要解决的问题 使得人们对 Agent 有着各种不同的理解 导致了多种 Agent 概念
的出现 以下是其中的一些定义
Shoham 认 为 一 个 Agent 包 含 了 信 念 belief 能力 capability 决定
decision 和承诺 commitment 等精神状态[84]
而 Freeman 则认为 Agent 可以描述为一个向量 m k a i l s r g 向量中
的各个分量分别表示方法 知识 属性 推理 机制 语言 消息传送操作 消息接收协
议和全局知识[84]
在 1994 年 Minsky[85]在 Communication of ACM 杂志 上对 Agent 这个概念作了
更明确的说明 Agent 是一些具有特别技能的个体 对计算机系统而言 Agent 是指
当你试图说明完成一些任务的机器而无需了解它是如何工作时 即将其处理视为黑箱
时 就称其为 Agent
Wooldridge 和 Jennings 则给出了弱 Agent 和强 Agent 的概念[86 87]
而来自 MIT 的 Patie Maes 则认为 自治 Agents 是存在于复杂的动态环境 能够自主
地感受和作用于这个环境 从而到达一组设计目标或完成相应任务的计算系统 [88] 可
以说 这个定义更适合于分布计算领域

3.2 Agent 的基本特性和行为


尽管在概念和理解上存在着一些差异 分布计算领域中的大多数研究人员通常把一个
具有一定的目的 能够在分布式环境中独立自主 持续运行的计算实体称为 Agent 并认
为它一般具有以下几个主要特性[46 87 89]
z 自治性 Agent 一般都具有自己的资源和局部于自身的控制机制 能够在没有外
界直接操纵的情况下 根据自身的内部状态以及感知到的外部环境信息 决定和

29
北京大学 2002 届博士研究生学位论文

控制自身的行为
z 反应性 Agent 能够感知到其所在的外部环境 包括用户的界面 实际的物理环
境以及该环境中其它的 Agent 等 并能够针对一些特定的事件作出相应的反
z 交互性
应 Agent 能够与其它对象 包括其它 Agent 或者用户等 以特定的语言进
行各种各样的交互 也能和其它各类 Agent 一起有效地完成各种层次的协同工
z 主动性
作 Agent 能够遵循其承诺采取主动行动 表现出面向目标 包括静态目标
和动态目标 的行为
在上述几个特性中 自治性 反应性和交互性是基本的 人们也称具有这 3 个特性的
计算实体为反应式 Agent 而目前在主流分布计算领域为人们广泛认同的 Agent 一般都具
有上述 4 个特性[46 87]
根据Agent的上述特点 可以用图3.1来抽象地描述其行为

外部环境

作用及反应 作用及反应

自作用 自作用

Agent Agent
交互 协作

任 务 集

图 3.1 Agent 的行为

3.3 Agent 的体系结构


Agent 的体系结构是指构造 Agent 的方法学 它描述了组成 Agent 的基本成分及其作
用 各成分的联系与交互机制 如何通过感知到的内外部状态确定 Agent 应采取的不同行
动的算法 以及 Agent 的行为对其内部状态和外部环境的影响等等 目前 人们已提出的
Agent 的体系结构大致可分为以下三类[46 78]
1. 审慎式体系结构 Deliberative Architecture 该结构来源于审慎思维范例
认为 Agent 拥有一个内部符号推理模型 这些 Agent 通过参与规划以及和其他
Agent 的协商来达到目的[77] 其主要特点是 Agent 中包含了显式表示的世界符
号模型 Agent 的决策是通过基于模板匹配和符号操作的逻辑 或准逻辑 推理
作出的 如同人们通过 深思熟虑 后作出决定一样 因此被称为审慎式的体系
结构 该体系结构在分布式人工智能领域占主导地位
2. 反应式体系结构 Reactive Architecture 该 结 构 来 源 于 Brooks[90] 和
Agre[91]等人的研究 这些 Agent 并没有外界环境的内部符号模型 他们采用的

30
第三章 Agent

等人的研究 这些 Agent 并没有外界环境的内部符号模型 他们采用的是一种刺


激/响应的活动模型[77] 其特点是 Agent 中包含了感知内外部状态变化的感知
器 一组对相关事件作出反应的过程 和一个依据感知器激活某过程执行的控制
系统 Agent 的活动是由于受到内外部某种 刺激 而发生的 因此被称为反应
式的体系结构 该体系结构在目前主流的分布式系统中占主导地位
3. 混合式体系结构 Hybrid Architecture 该体系结构的特点是 Agent 中包含了
审慎式和反应式两个子系统 通常情况下 这两个子系统是分层次的 前者建立
在后者的基础之上
本论文涉及的 Agent 主要属于反应式 Agent 的范畴 一个反应式 Agent 的结构的一般
描述如图 3.2 所示 其中 各个部件的主要功能如下

反应式 Agent 操作集

外部环境 感知器 反应器

内部状态信息 数据集

图 3.2 反应式 Agent 的结构

z 感知器 感知外部环境和 Agent 内部状态的变化 并在感知到某些特殊的变化


时 把相应的变化以事件的形式提交给反应器
z 反应器 控制整个 Agent 的运行 当接收到某些特殊的事件时 通过启动操作集
中相应的操作来响应该事件
z 操作集 存放该 Agent 对各种事件的具体反应动作
z 内部状态信息 存放和维持标识 Agent 内部状态的信息
z 数据集 存放 Agent 所携带的数据

3.4 Agent 的分类


由于 Agent 在各个领域的渗透十分迅速 而对 Agent 理解的不同和领域背景的不同导
致 Agent 研究领域出现了很多新型的 Agent 但是 Agent 领域目前并没有一个非常清晰的
分类方法与分类体系 这种状况在某种程度上不利于 Agent 领域的有关研究 作者认为
Agent 的分类可以根据体系结构 属性和功能的不同来进行分类

3.4.1 根据体系结构分类

根据 Agent 所采用体系结构的不同 可以把 Agent 分为


z 审慎式 Agent 这类 Agent 采用审慎式体系结构
z 反应式 Agent 这类 Agent 采用反应式体系结构

31
北京大学 2002 届博士研究生学位论文

z 混合式 Agent 这类 Agent 采用混合式体系结构

3.4.2 根据属性分类

Agent 技术在各个领域渗透的过程中 来自不同领域的研究人员根据自己的理解 领


域中需要解决的问题 以及某些特殊应用环境的要求为 Agent 赋予了各种各样不同的特
性 从而产生了各种新型的 Agent 在对象管理组织 Object Management Group 的 Agent
小组 Agent Platform Special Interest Group 所提交的的技术绿皮书 Agent
Technology Green Paper 中就提到应用于 IT 领域的 Agent 除了应该具备自治性 交互性
和反应性这些基本属性之外 还可以有选择性的具有以下一些属性[92]
z 社交性 这类 Agent 非常友善 有着良好的社会关系和社交能力
z 可移动性 这类 Agent 能够从一个运行环境迁移到另外一个运行环境
z 代理性 这类 Agent 能够成为某人或某物的代理
z 主动性 这类 Agent 面向目标 不仅能对环境做出反映 也具有目的性
z 智能性 这类 Agent 具有形式化的知识状态 能够通过符号语言与其他 Agent 交

z 推理性 这类 Agent 能够根据内部的目标以及哪些动作有利于实现该目标的知识
来决定一次动作
z 不可预知性 这类 Agent 能够运行在具有不可预知特性的环境中 具有不确定性
行为的能力
z 时间连续性 这类 Agent 是一个连续运行的进程
z 个性化 这类 Agent 具有可信的个性和情绪状态
z 透明性 这类 Agent 在需要的情况下将被透明调用 且能够根据需要提供活动的
日志
z 协调性 这类 Agent 能够和其他 Agent 在一个共享的环境中执行任务
z 协作性 这类 Agent 能够和其他 Agent 相互协调以完成共同的目的 Agent 之间
的关系是非对对抗性的 通常都一起成功或者一起失败
z 竞争性 这类 Agent 也能够其他 Agent 相互协调 但是某个 Agent 的成功将意味
着其他 Agent 的失败
z 坚固性 这类 Agent 在处理错误和不完整数据方面具有很强的鲁棒性
z 可信赖性 这类 Agent 都遵循相应的规则 显得很诚实
这些附加属性或新增功能的出现导致了各种类型 Agent 的出现 包括可移动 Agent
可协作 Agent 智能 Agent 推理 Agent 竞争 Agent 等 也包括带有多个属性或功能的复
合型 Agent

3.4.3 根据功能分类

根据功能分类又可以分为两种 一种是根据 Agent 在系统整体上所体现出来的功能来


划分[93] 例如把专门完成信息过滤的信息过滤 Agent 专门完成信息搜索的搜索引擎
Agent 等 另一种是根据 Agent 在一个系统内部所完成的角色来划分的[93] 例如在一个
系统中通常会包括工具型 Agent 和管理型 Agent 等

32
第三章 Agent

3.5 Agent 的应用现状


随着 Agent 技术的逐步成熟和有关研究的逐步深入 Agent 已经被应用于很多领域之
中 就目前而言 主要的应用领域包括 电信领域应用 兴趣匹配应用 用户助理应用
组织结构应用 信息处理应用和移动计算等领域[77 92]

3.5.1 电信领域应用

电信领域是当前采用 Agent 技术最活跃的领域之一 该领域主要是利用 Agent 的自治


性 协作性 可移动性和高度适应性去解决复杂系统和网络管理方面的任务 包括负载均
衡 故障预测 问题分析和信息综合等

3.5.2 兴趣匹配应用

这类应用是相对较多的一类 而很多这类应用的用户可能并没有察觉到事实上他们正
在使用着兴趣匹配 Agent 这些 Agent 主要都被应用于商业网站 用以向用户提供建议
例如 MIT 多媒体实验室的 Patti Maes 等研究人员在这个领域做了很多的工作 相应的研究
成果也曾被用于亚马逊书店和一些销售唱片和影碟得网站中[92]

3.5.3 用户助理应用

这类应用通常都以协助用户更好地完成特定的任务为目的 所使用的 Agent 都体现在


用户界面层次 为用户完成某些特定的任务提供相应的信息或者建议 有时候这些 Agent
看起来就像一个卡通建议者 Microsoft, Lotus, and Apple 等公司都对这个领域目前有
着很大的兴趣 一个典型的例子就是微软的 Office 产品中的那个帮助 Agent 该 Agent 能
够分析和预测用户可能需要的帮助主题[92]

3.5.4 组织结构应用

这类应用通常需要由多个 Agent 来构造一个类似于人类组织的系统 不同的 Agent 代


表着系统内的不同角色 通过这些 Agent 之间的通信和协作来完成具体的任务 目前主要
应用于电子商务领域 例如一个典型的多 Agent 供应链系统中就保含有购买者 Agent 供
应商 Agent 和中介 Agent 等多种 Agent

3.5.5 信息处理应用

信息处理类应用涉及的面比较广 主要包括以下几个方面

3.5.5.1 信息检索

Internet 上或者大型公司内部的大量信息 使得用户很难从这些海量数据中高效地获


取有用信息 而搜索 Agent 可以通过利用一些相关知识来达到完成特定信息检索的目的
这些知识包括各个信息源都包含哪些信息 如何访问这些信息 甚至这些信息源的可靠性
和准确性等

33
北京大学 2002 届博士研究生学位论文

3.5.5.2 信息过滤

Agent 能够对发送给用户的信息进行过滤或者排序 其基本思想是为用户创建一个在


线代理人 即过滤 Agent 赋予该 Agent 足够的知识以便清楚地了解用户对那些信息兴趣
哪些信息是需要屏蔽掉的无关信息 从而避免用户被大量的信息淹没 这类过滤 Agent 还
能够和搜索 Agent 合作 使得检索操作最终返回给用户的信息都是用户所关心的 从而提
供搜索的准确率和效率

3.5.5.3 信息监控

对于那类对信息源的变化非常敏感的应用 通常都需要对信息源进行监控 就象一个


军队后勤计划人员在做出物资的供给和运输路线计划之后 为确保计划的正确实施 需要
考虑并监测所有可能影响供给计划的各种因素 例如需要有一个 Agent 专门来监测气候的
变化 需要有一个 Agent 来监测运输车队的燃料供应等[92] 而 Agent 非常适合于监控分
布式的数据源 既可以在监测频度高的数据源处创建常驻的监测 Agent 也可以在需要的
时候派出 Mobile Agent 到监测频度较低的数据源处进行监测 及时地在数据源发生变化的
时候向有关 Agent 反馈相关的变化信息

3.5.5.4 决策支持

决策支持系统通常都需要大量综合性的信息以及对信息经过深度加工的结果和知识
在这类系统中 Agent 能够监控系统的一些关键信息 在系统可能出现问题的时候警告相
应的操作员 并在数据挖掘技术和决策支持模型的协助下为复杂的决策提供有效的支持

3.5.5.5 数据源中介

在数据管理系统中可能会遇到很多种不同类型的系统和数据源类型 且系统之间 数
据源之间无法进行相互之间的直接沟通 这类问题在地理信息领域中经常出现 在这种情
况下 Agent 可以作为不同数据源之间的中介 通过设定高层次的语言和通信协议 为不
同数据源之间的互操作提供有效的机制

3.5.6 移动领域应用

随着无线技术及其应用的迅猛发展 移动用户用来访问 Internet 服务的设备种类越来


越多 包括移动工作站 手持设备 智能电话等等 这些设备在 CPU 功能 显示能力 内
存等等方面的性能上有着很大的差别 这些差别对 Internet 服务的适应性提出了新的要
求 而 Agent 的高度适应性将使得网络服务能够灵活有效地适应于各种类型的数据通信模
式和移动终端[92] 而且 Agent 的离线计算能力还能为移动应用提供自然 有效且稳定的
离线计算模式 即使在移动用户断开与网络的连接之后 Agent 仍然能够继续完成尚未完
成的任务 并在移动用户再次联上网络之后再把结果反馈给用户 除此之外 Agent 还能
够为移动用户提供友好 高度个性化的界面 为用户提供个性化的服务

34
第三章 Agent

3.6 现有开发平台
虽然目前大部分关于 Agent 技术的研究还停留在研究和实验室阶段 但也已经出现了
一些相对成熟的产品 其中有些已经被成功的应用在商业领域之中 表 3.1 是目前比较主
要的一些 Agent 开发平台/系统[80 92 94~104] 这些产品有的需要购买 有的可以免费
下载 这些平台和系统的出现极大的促进了 Agent 领域的发展

表 3.1 部分已有的开发平台/系统

产品名称 公司 开发语言 产品描述


Reticular
AgentBuilder® Java Agent 开发环境
Systems, Inc.
AgenTalk NTT/Ishida LISP 多 Agent 协作协议
Agent Building Environment IBM C++, Java Agent 开发环境
Agent Development
Gensym Java Agent 开发环境
Environment
Dartmouth
Agent Tcl Tcl 可移动 Agent 系统
College
International
Agentx Knowledge Java Agent 开发环境
Systems
Aglets IBM Japan Java 可移动 Agent 系统
中国科学院计算技
AOSDE Java 多 Agent 系统开发工具
术研究所
Mitsubishi
Concordia Java 可移动 Agent 系统
Electric
DirectIA SDK MASA C++ 适应性 Agents
Gossip Tryllian Java 可移动 Agent 系统
Grasshopper IKV++ Java 可移动 Agent 系统
Java, Perl,
Infosleuth MCC 互操作信息 Agent 环境
Tk/tcl
iGEN CHI Systems C/C++ 感知 Agent 开发包
Intelligent Agent Factory Bits & Pixels Java Agent 开发工具
Intelligent Agent Library Bits & Pixels Java Agent 库
Agent Oriented
JACK Agent
JACK Intelligent Agents Software Pty. 开发环境
Language
Ltd.
Jumping Beans Engineering Ad Astra Java 可移动构件
Kafka Fujitsu Java Agent 库
LiveAgent AgentSoft Ltd. Java Internet Agent 构造环境
Microsoft
Microsoft Agent Active X 界面工具
Corporation
南京大学计算机软
Mogent Java 可移动 Agent 系统
件研究所
Odyssey General Magic Java 可移动 Agent 系统
Swarm
Objective
Swarm Development 多 Agent 模拟系统
C, Java
Group

35
北京大学 2002 届博士研究生学位论文

Telescript General Magic Telescript 可移动 Agent 系统


Versatile Intelligent
Kinetoscope Java Agent 构造模块
Agents (VIA)
Voyager Object Space Java Agent 对象请求代理
虽然目前已经有了不少面向 Agent 的开发平台/系统 但是一来这些系统自身还不是十
分完善和成熟 二来由于缺少良好标准的规范和指导 上面所提到的这些开发平台和系统
之间无法实现良好的互操作 这些 都是 Agent 领域目前急需解决的问题

3.7 程序设计方法和语言

3.7.1 程序设计方法

为了能够设计出良好的 Agent 系统 需要有科学 有效的面向 Agent 的程序设计方法


目前 已经有不少研究人员在研究基于 Agent 的软件工程和面向 Agent 的程序设计方法
也有不少文献把面向 Agent 的程序设计方法看成继面向对象之后的另一种软件设计方法
[105] 然而 在这方面 目前的进展还不是很大 还需要更多的研究工作
一 个 比 较 引 人 注 目 的 程 序 设 计 方 法 是 Shoham 提 出 的 AOP Agent-Oriented
Programming Shoham 把 Agent 看成一种具有信念 能力和承诺等心智状态的特殊对象
而 AOP 是一种特殊的面向对象的程序设计方法[106 107 108] OOP 方法把一个计算系统
看成由模块组成 这些模块相互之间能够传递消息 并且具有不同的方法处理输入的消
息 AOP 方法扩充了这种方法 它允许模块拥有有关其它模块和环境的知识和信念 且允
许这些模块具有能力和作出承诺 [78] 此外 Shoham 还认为一个完整的 AOP 系统应该包
含以下三个部分 定义主体心智状态的逻辑系统 用于设计 Agent 的解释性语言 以及一
个能够把 Agent 程序编译成低层次 可执行系统的 Agent 解释过程[107 108]
此外 也有一些研究人员认为 Agent 的出现将导致基于 Agent 的软件工程思想的出现
为软件的设计与实现带来新的模式和优势 基于这种思想 Pont 和 Moreole 提出了基于
Agent 的软件工程[109] 这种软件开发方法的优点是便于软件的创建 有很强的互操作能
力 它代表了一种新的 功能强大的解决大规模软件工程问题的方法 在该方法中 应用
程序编写为软件 Agent 即软件构件 这些构件之间通过 Agent 通信语言可以进行比普通
消息传递更规范 更明确的通信 由于 Agent 通信语言具有平台无关性 在异构环境下更
能体现出面向主体编程方法的优越性[80] 此外 Michael Wooldridge 等人也提出了一些
基于 Agent 的软件工程思想和方法 并认为这些方法能够为复杂软件系统的分析 设计和
实现提供良好的帮助[110 111]

3.7.2 开发语言

目前适合于 Agent 系统开发的语言主要包括 Script 语言 如 Tcl Tool Command


Language 面向对象语言 如 Java 语言 和专门面向 Agent 的程序设计语言 AOPL
Agent-Oriented Programming Language 如表 3.2 所示[34 78 112 113]

36
第三章 Agent

表 3.2 Agent 系统开发语言一览表

语言类型 典型例子 备注
Agent0 Shoham[106]
Placa Thomas[114]
面向 Agent 的编程语言
GOLOG Levesque[115]
AOPLID 李斌[113]
Java http://java.sun.com
面向对象语言 C++ http://msdn.microsoft.com/visualc/
Smalltalk http://www.smalltalk.org/
TCL/TK Oustershout[116]
Safe-TCL,Safe-Tk http://www.smli.com/research/tct
Telescript http://www.genmagic.com
Python http://www.python.org
Script 语言 Http://www.research.digital/com.SRC/
Obliq
Obliq/
McCabe[117]
April
McCabe and Clark[118]
Schema-48 http://photo.net/~jar/s48.html
Actors Agha[119]
其他语言
RTA/ABLE Wavish and Graham[120]
在这些开发语言中 专门面向 Agent 的程序设计语言虽然引起了不少研究人员的兴
趣 但目前尚未出现比较成熟 达到了实用阶段的语言 影响比较大的是 AGENT0 和 PLACA
PLAnning Communication Agents 前者是根据 Shoham 提出的 基于计算的社会观点
的一种新的程序设计范式 而实现的一个面向 Agent 的程序设计语言[78] 而后者是
Thomas 在其博士论文工作中研究的一个系统 PLACA 克服了 AGENT0 的一些不足 如不能进
行规划等
就目前而言 开发 Agent 系统用得比较多的主要是一些 Script 语言和面向对象语言
Script 语言是一种解释性语言 在集成用不同语言实现的 分布在不同宿主 不同操作系
统的构件时 具有其他语言无可比拟的优势 例如在上一节中所谈到的 Dartmouth College
的 Agent 是由 Tcl 语言完成的 General Magic 的 Telescript 是由 Telescript 语言完成
的 而采用面向对象语言 则是因为 Agent 和对象有很多共同的特点 包括封装特性 继
承特性和消息传递特性等 这为实现基于 Agent 的系统提供了很多便利[112] Java 语言
既是解释性语言 又是面向对象语言 因此目前有很多 Agent 系统是采用 Java 语言实现
的 例如 IBM Tokyo Labs 的 Aglets 和 Mitsubishi Electric's Horizon Systems Labs 的
Concordia 等多个系统则都是基于 Java 语言的

37
北京大学 2002 届博士研究生学位论文

3.7.3. Java 语言的优势

由于 Java 语言身兼解释性语言和面向对象语言两者的优势 使之成为目前开发 Agent


系统最有前景的开发语言之一 这主要体现在
z Java 语言是一种面向对象的 健壮的 与平台无关的 易移植的 适于分布式应
用的 多线程 动态的解释性语言 它最大的魅力在于它的轻便 它的解释执行
环境和字节码的使用使得任何具有相应资源的系统都能够执行 Java 程序 而无须
考虑具体的运行平台
z Java 语言有很多十分适合于开发分布式网络系统的特点 包括使得 Java 类能够
十分方便地在网络中传输的串行化技术和使得 Java 类能够在应用过程中动态加载
的类装载技术等[121]
z Java 语言是一种相对安全的语言 这主要体现在 Java 有一个能够检查和防止潜
在不安全操作的安全管理器 有一个能够防止对内存重写的指针模型 不允许指
针操作 不允许非法的类型转换 类装载器能够把来自网络的类装载到单独的内
存区域 避免应用程序之间相互干扰破坏 以及客户端用户可以限制从网络上装
载的类只能访问某些文件系统等多方面[80 121 122]
z J2EE Java 2 Platform Enterprise Editon EJB Enterprise JavaBeans
和 JavaBeans 等新技术的出现为利用 Java 语言开发分布式应用系统提供了强大的
保障和灵活的模式
z 目前 Java 在 Internet 中可以说是无处不在 有很多的 Web SERVER 都已经内嵌了
Java 而各种平台也先后配置了它 一些应用设计界面 如 AWT The Advanced
Windowing Toolkit JFC(the Java Foundation Classes) 和 JDBC Java Data
Base Connectivity 等 都正努力为 Java 配置更多更强的功能 这些配置都将
为 Agent 的使用提供了更为有效的服务
z Java 语言和很多新技术的良好结合为 Agent 系统的设计与开发带来了很多便利
例如 Java 语言和 XML 技术的良好结合 Java 语言和 Web 服务 Web Service 技
术的良好结合等
z Java 开发人员能够使用的工具数量不断增多 质量不断提高 这些性能优越 功
能强大 易于掌握的可视化工具的出现为开发人员提供了很好的开发环境
z 有很多的开发人员对 C++相当熟悉 而 Java 和 C++之间有着很多共同之处 这使
得开发人员能够很快掌握 Java 语言 并能很习惯 轻松而有效地利用 Java 语言
实现各种系统
z 目前已经推出的 Agent 系统 尤其是可移动 Agent 系统 有很多都是基于 Java 语
言 而且这些系统都相当成功 这充分说明了 Java 语言是能够胜任各种 Agent 系
统 特别是可移动 Agent 系统的开发 而它在这一领域所特有的优势也正逐步地
得到广大开发人员的认可
当然 Java 语言也存在一些缺点和不足之处 例如 运行 Java 程序的主机无法很好
地控制一个 Java 对象或者线程对处理器 内存等资源的过分使用

38
第三章 Agent

3.8 标准研究
随着 Agent 技术研究的不断深入 可以预见来自不同领域的研究人员将开发出越来越
多基于 Agent 的系统 如果没有相应的标准作为指导 这些系统无疑将无法进行良好的沟
通和互操作 从而形成一个个孤立的系统 为了避免类似情况的出现 需要为 Agent 技术
制订有关的标准 以规范有关系统的研发 促使该领域逐渐走向成熟
目前 这个问题已经得到了各大公司的重视 例如 对象管理组织 OMG 希望通过制订
Mobile Agent 的服务规范把它纳入到 CORBA 的标准之中[123 124] 智能 Agent 基金会
FIPA Foundation for Intelligent Physical Agents 组织试图为异构软件 Agent 系
统之间的互操作提供标准[125] 而 Crystaliz 公司 General Magic 公司 GMD 公司 IBM
公司和 Open Group 等机构则共同提出了 Mobile Agent 的标准化草案 MASIF Mobile Agent
System Interoperability Facility [126] 此外 IETF Internet Engineering Task
Force 组 织 的 SNMP Agent Extensibility (Agentx) Working Group[127] 和 AGENT
SOCIETY 组织的 Agent Interop Working Group 小组也在 Agent 技术的标准化方面作了很多
工作 这些工作和相关研究成果为 Agent 领域的有关研究和系统开发提供了良好的指导作

3.8.1 智能 Agent 基金会

智能Agent基金会 FIPA Foundation for Intelligent Physical Agents 试图在消


息 管理 通信和应用等方面为异构软件Agent系统之间的互操作提供有关标准和规范
[128]
z 消息传输规范 Agent Message Transport 该规范研究消息在不同网络传输协
议下的表现形式和传输 包括有线和无线环境
z Agent管理规范 Agent Management 该规范为Agent的存在和操作提供了一个
框架 包括Agent的创建 注册 定位 通信 迁移和消除的逻辑参考模型
z 通信规范 Agent Communication 该规范研究Agent间通信的语义模型
z 应用规范 Agent Applications 为一些基于Agent的典型应用定义了相关的规
范 主要包括个人旅行协助[129] 视听娱乐和广播[130] 网络管理与供应
[131] 以及个人助理[132]等方面
此外 该 组 织 还 制 订 了 一 个 Agent 软 件 集 成 规 范 Agent Software Integration
specification [128 133] 研 究 Agent 系 统 如 何 集 成 无 法 以 FIPA 的 Agent 通 信 语 言
ACL 进行通信的历史遗留系统

3.8.2 可移动 Agent 系统互操作设施

可移动 Agent 系统互操作设施 MASIF Mobile Agent System Interoperability


Facility 中定义了 Agent 系统之间而非 Agent 应用和 Agent 系统之间的接口 该标准主
要包含了以下四方面的内容[126 134]
z Agent 管理 通过对 Agent 管理进行标准化 可以创建一个 Agent 给定一个名
字 然后在一个标准的模式下挂起 恢复或终止该 Agent 的执行
z Agent 迁移 确保各种基于的 Agent 应用所创建出来的 Agent 能够在不同类型的

39
北京大学 2002 届博士研究生学位论文

Agent 系统中自由移动的能力是标准化的主要目标之一 该规范规定了一个公共


的 标准的基础构架
z Agent 和 Agent 系统的命名 基于 Agent 的系统之间的互操作除了要求 Agent 操
作的标准化之外 其参数的语法和语义也必须标准化 特别是 Agent 和 Agent 系
统命名的标准化 它使得应用能够标识 Agent 和 Agent 系统 亦使得 Agent 和
Agent 系统能相互标识
z Agent 系统类型和定位 只有被某一目标 Agent 系统所支持 Agent 才能向该
Agent 系统迁移 因此 Agent 迁移前必须要能从异地获取目标系统的有关类型信
息 因而 Agent 系统的定位语法必须标准化 从 Agent 系统彼此定位的角度来讲
定位语法也需标准化
应该说 Agent 领域的标准化工作还处于一个起始阶段 随着 Agent 相关应用的不断
加深加广 相信会有越来越多的厂商和研究人员参与到 Agent 的标准化工作中来 而这些
标准化工作的不断进展将使得 Agent 技术的研究朝着一个更为规范的方向发展 并为 Agent
技术在各个领域的广泛应用提供良好的基础

40
第四章 GeoAgent

除了自治性 反应性和交互性等基本特性之外 Agent 还可以拥有很多附加的属性


而且这些属性能够为各个领域一些特别问题的解决带来独特的解决途径和优势 对于地理
信息领域来说 在 Agent 众多的附加属性中 可移动性和按需装配等特性都是具有重要意
义的特性[135 136]

4.1 Mobile Agent

4.1.1 Mobile Agent 的特点

一般的 分布计算领域中的研究人员把一个能够在执行过程中根据需要 按照一定的


迁移机制 在异构网络中自主地从一台主机迁移到另一台主机持续运行的计算实体称为
Mobile Agent 这种 Mobile Agent 能够带着用户的要求在网络上到处迁移 在迁移的过程
中根据要求完成各种工作 在 Mobile Agent 的迁移过程中 它除了携带有关的可执行代码
之外还携带着有关的状态信息 这些状态信息在其迁移 执行 过程中是可以改变的 当
Mobile Agent 在某台主机上停止执行并迁移到其它主机之后 当由于网络或者其它原因造
成系统崩溃而需要恢复系统的执行时 都需要这些相关的状态信息来保证 Mobile Agent 的
持续运行
Mobile Agent 是 Agent 中的一种 它除了具备一般 Agent 所具有的共同特性之外 还
具有以下几个主要特点[137 138 139]
z 可移动性 Mobile Agent 能够在某一台机器上暂停执行 然后根据程序 用户的
要求或者在动态决定了迁移路线之后在网络上由一台机器迁移到另一台机器上再
次运行
z 持续性 当系统 网络崩溃时 Mobile Agent 能够不受影响地重新取得有关状态
信息 透明地恢复计算 它的状态信息在网络上传输时是持续的
z 离线计算 即使用户没有接上网络 Mobile Agent 也能继续执行分配给它们的任
务 并能在用户重新入网后把相应的执行结果适时地反馈给用户

4.1.2 Mobile Agent 的优势

利用 Mobile Agent 技术能够克服传统客户/服务器模式中的很多不足 使基于 Mobile


Agent 的系统充分利用以网络为中心的计算环境 更好地适应分布式 动态变化的网络环
境 以下 Mobile Agent 技术的主要优势[137 138 140]
z Mobile Agent 的引入能使得计算单元在尽量靠近源数据的地方进行数据处理 从
而提高效率 减少网络传输量 有效地减轻网络的负载
z Mobile Agent 能够优化网络和计算资源 更好的达到负载均衡 其基于规则的智
能化移动策略能够优化路径 降低网络延时 避免资源访问的盲目性[123]
z Mobile Agent 之间能够相互交流和合作 根据具体的要求共同完成各种不同层次
的协同工作 更好地为各领域的复杂 大型的应用提供有效的处理途径

41
北京大学 2002 届博士研究生学位论文

z Mobile Agent 带来了完整的异步计算环境 使得用户能够异步地与异地的用户


或机器 进行交互
z Mobile Agent 的使用能够极大地降低应用对网络带宽和质量以及通讯设备质量的
要求 使得更多的用户有机会进入 Mobile Agent 的世界并充分地享受它所带来的
好处
z Mobile Agent 能够根据环境的变化和事件的发生作出相应的响应和迁移 从而避
免了类似在不可靠的网络上进行远程交互和数据传输等事件的发生 使得应用系
统具有更好的可靠性
Mobile Agent 的这些特点和优势对于地理信息领域来说具有极为重要的意义 这突出
地体现在以下几个方面[135]
z 在地理信息领域中 地理信息的处理和分析过程中往往要涉及到大量的地理数
据 在基于对象的系统中 由于对象通常无法在网络上迁移 这导致大量地理数
据的网络迁移 不但效率很低 还极大地浪费了网络资源 而 Mobile Agent 的迁
移特性将使得地理信息的处理和分析能够在尽量靠近数据源的地方进行 实现由
大量地理数据的网络传输转为少量处理单元的网络迁移 极大地降低网络带宽的
要求 提高了效率
z 随着离线计算和移动计算研究的进一步深入和推广 地理信息系统在移动环境中
的应用正逐步受到人们的重视 但是 由于目前较低的移动网络带宽和较差的设
备性能 地理信息系统在该领域中的应用受到了很大的限制 而 Mobile Agent 的
离线计算模式由于无需长时间的网络连接 极大地降低了对网络带宽及通讯设备
质量的要求 为地理信息系统技术在无线领域中的应用带来新的应用模式和机
z 而 Mobile Agent 的异步计算环境以及 Mobile Agent 之间良好的协作性 将为地

理信息领域内一些分布式问题 特别是需要协作的问题提供良好的解决方案 包
括对分布式数据的访问和处理等

4.2 按需装配 Agent

4.2.1 按需装配 Agent 的概念和行为

在绝大多数基于 Agent 的系统中 通常都把系统内的 Agent 进行分类 并为不同类型


的 Agent 赋予不同的角色和与该角色相对应的功能 这种做法的不足之处是各种类型的
Agent 一旦被创建 其功能就被固定下来了 并且在其生命周期中不能有任何的改变 这
在很大程度上限制了 Agent 性能的发挥 特别是在高度变化 动态的分布式环境下 因
为 当这种角色和功能相对固定的 Agent 在动态变化的环境中遇到事先没有考虑到的情况
时 将无法通过改变自己的角色以及相应的功能来动态的解决问题 而只能返回一个错误
信息 为了避免这种情况的发生 赋予 Agent 更大的灵活性 我们提出了按需装配 Agent
简单地说
的概念 按需装配 Agent 是一种能够在运行过程中根据系统当时的需求动态地加载
相应功能模块 实现自我功能动态增强 更好地完成任务的 Agent[141 142]

42
第四章 GeoAgent

目前 在 Agent 研究领域中也有几个研究机构提出了类似的概念 其中比较有代表性

外部环境

作用及反应 作用及反应

自我增强 自我增强

按需装配 按需装配
Agent Agent
交互 协作

构 件 集 任 务 集

图 4.1 按需装配 Agent 的行为

的是惠普实验室所提出来的动态 Agent Dynamic Agent 一个动态 Agent 都由固定的部


分和动态的部分组成 其中固定的部分主要是一些基本功能和管理功能 而动态部分则是
决定了 Agent 可以变换不同的角色 拥有不同能力 处理不同问题的关键 该部分通过加
载不同的类来实现[143 144] 此外 爱荷华州立大学计算机系 Johnny Wong 等人在 SMART
系统中也提到了动态聚集 dynamic aggregation 的概念 该概念是相对于面向对象领域
中静态聚集而言的 对象的静态聚集可以通过继承来实现 该过程是在编译期间完成的
而动态聚集则是指对象在运行过程中增强对象的属性 该过程是对象在运行过程中通过与
其他对象建立关联以增强自身功能来实现的[145]
按需装配 Agent 的行为可以由图 4.1 来描述 从图 4.1 可以看出 一个按需装配 Agent
与普通 Agent 的显著不同就是按需装配 Agent 能够根据需要从构件集中加载所需的构件
实现功能上的增强 以解决原有功能所无法解决的问题 两者的区别就象单功能螺丝刀和
多功能螺丝刀之间的区别 如图 4.2 和图 4.3 所示 单功能螺丝刀往往只能够与一种类型
的螺丝匹配 而且一旦造好 其功能就无法再改变了 而多功能螺丝刀却可以和多种类型
的螺丝匹配 且可以在需要的时候增加功能 关键在于多功能螺丝刀拥有一个标准的接口
和一个能够与不同螺丝匹配的构件库 即螺丝刀头库 螺丝刀柄能够根据需要匹配的螺
丝类型的不同 选择并加载相应的构件 即螺丝刀头 以解决问题 而且 如果市场上出
现了新型的螺丝 还可以再造出能够和这种新型螺丝匹配 且又能用于原有螺丝刀柄的新
螺丝刀头 从而增强了多功能螺丝刀的功能
从某种意义上说 按需装配 Agent 就象一个 外壳 而加载的构件才是真正能够解
决问题的 处理引擎 两者之间通过一个标准的 接口 来完成匹配 在这里 一个构
件是指一个能够完成某个特定任务的功能模块 对于论文所采用的 Java 语言来说 一个构
件本质上就是一个实现了相应接口的 Java 类 而构件的加载 则是指构件的下载过程 对
43
北京大学 2002 届博士研究生学位论文

质上就是一个实现了相应接口的 Java 类 而构件的加载 则是指构件的下载过程 对于


Java 语言来说 本质上就是通过 Java 语言中的类装载器 ClassLoader 从网络上下载某
个构件的过程 一旦加载完毕 按需装配 Agent 就能够根据相应的接口调用新下载构件的
某些功能了
当然 就象一个多功能螺丝刀并不能加载任意大小的螺丝刀头一样 按需装配 Agent
加载构件的过程 也是有相应的约束或者前提的 这主要体现在
z 被加载的构件必须遵循某个类型的标准接口 而希望加载该构件的按需装配
Agent 能够识别这种类型的接口
z 按需装配 Agent 能够通过一定的渠道了解构件库中不同构件的功能和下载信息
换句话说 就是要有一个构件的元数据库或者注册信息库 而每个构件都根据标
准的词汇集把构件的有关信息注册到该库中 以便 Agent 能够在需要的时候通过
标准词汇集的匹配了解所需构件的相关信息
z 按需装配 Agent 能够在需要的时候加载所需的构件 也就是说 这些构件不但需
要完成正确的注册 还需要在网络上部署好 便于 Agent 的加载
但是 需要说明的是 按需装配的特性并不是在任何场合都适用的 这种特性的应用
具有一定前提 这主要表现为需要解决的目标问题存在着多个平行的分支 并且这些分支
问题的解决可以遵循相同的解决方案 例如 地理信息领域中的数据转换问题就是一个这
样的问题 该问题存在着很多分支 包括 SHP 格式到 GML 格式的转换 MIF 格式到 GML 格
式的转换等 并且 这些转换过程可以采用相同的方法 因此不同的转换功能模块可以被
封装成遵循相同接口针对不同分支问题的构件
此外 即便是按需装配 Agent 也并不意味着该 Agent 的所有功能都一定要通过动态
装配的方式来获得 可能该 Agent 中有一部分功能是固定的 可以固化在 Agent 的代码之
中 而另一部分功能是不固定的 可以在运行过程中根据需要动态地加载

图 4.2 单功能螺丝刀

按需装配 Agent 可以分为三个层次 主要包括


z 单问题域按需装配 Agent 其中 单问题域指的是这类按需装配 Agent 只能够解
决一类问题 只能够识别解决该类问题的相关接口 而且这类按需装配 Agent 能
够解决的问题是固定不变的 就象图 4.3 中的多功能螺丝刀 虽然该螺丝柄能够
与多个螺丝刀头集成 但是该螺丝刀柄只有一个接口 所有使用的螺丝刀头都必
须遵循该接口 如果接口不同 则无法与螺丝刀柄联合使用

44
第四章 GeoAgent

z 多问题域按需装配 Agent 与单问题域按需装配 Agent 不同的是 这类按需装配


Agent 能够解决的问题虽然固定但不止一个 通常情况下 这些问题都是比较相
关的 这类按需装配 Agent 能够识别需要解决的几个问题的所有接口 就象一个
同时拥有几个接口的螺丝刀柄 能够和多种接口的螺丝刀头联合使用
z 通用型按需装配 Agent 这类 Agent 在创建的时候并没有指定具体的问题域 而
是在遇到具体问题的时候通过识别问题 了解和加载解决具体问题的接口 以及
加载实现了相应接口的构件来解决问题 这类按需装配 Agent 的灵活性很大 但
实现的难度也很大

构件

标准接口

图 4.3 多功能螺丝刀
4.2.2 按需装配 Agent 的特点和优势

按需装配 Agent 的特点和优势主要体现在以下几个方面


z 能够实现功能的及时 动态扩展 优化网络 计算等资源的配置 按需装配
Agent 能够在遇到具体问题 需要某个特定功能时才调入具体的功能模块 无需
一开始就加在很多可能用不着的功能 具有良好的动态扩展能力 也减小了一些
没有必要的开销 如主机资源和网络资源的开销等 从而实现优化网络 计算等
资源的配置
z 为动态环境下复杂问题的解决提供了灵活 有效的模式 在动态环境下 Agent
所遇到的问题很可能是事先无法预料的 而且在类似电子商务的领域中 一个
Agent 的角色还可能发生很大的变化[146] 而按需装配 Agent 遇到问题能够进行
相应功能扩展的能力赋予了 Agent 极大的灵活性 使得 Agent 能够从容的解决新
的问题和角色的转变问题

45
北京大学 2002 届博士研究生学位论文

z 具有良好的可扩展性 系统升级和扩展 在基于按需装配 Agent 的系统中 当


系统需要升级或者扩展的时候需要做的工作很少且具有很大的灵活性 通常情况
下 只需要更新完成具体功能的构件以及构件的注册信息即可
z 为构件 功能处理模块 的共享和互操作提供了新的模式 在基于按需装配
Agent 的系统中 可被动态装配的构件遵循了特定的接口 这为构件在大范围内
的共享和互操作提供了很多便利 就象中国生产的螺丝刀头能够被美国遵循统一
接口的螺丝刀柄利用一样 这种共享模式对于一个大型的信息团体 跨国公司或
者企业联盟来说是非常有效的
对于 Mobile Agent 来说 采用按需装配的机制除了会带来以上的一些优势之外 还会
有以下几点影响
z 通过按需装配机制 使得 Mobile Agent 能够在需要某个构件时才实时动态地加载
该构件 而不必从开始就一直携带着这些类 从而实现迁移代码量的极大减少
z 由于代码量的减少 使得 Mobile Agent 能够更好更快地在网络上迁移 并进一步
降低了迁移过程对网络带宽和性能的要求
z 由于代码量的减少 Mobile Agent 迁移之前的打包过程和到达目的地之后的解包
过程将明显加快

4.2.3 按需装配 Agent 的体系结构

为了实现按需装配的功能 按需装配 Agent 需要有一个相适应的体系结构 如图 4.4


所示 该体系结构与一般 Agent 体系结构结构有以下两个主要的不同
z 在操作集中增加了相应的操作 使得按需装配 Agent 能够在遇到问题的时候通过
查询构件注册库确定所需构件的所在基地
z 增加了一个装载器 按需装配 Agent 能够在需要的时候通过该装载器从构件基地
中装载所需的功能组件 以实现自我增强
此外 基于按需装配 Agent 的系统中还需要有存放系统所涉及各种构件的构件库 或
者称为构件基地 以及存放了构件元数据的构件注册库 以便按需装配 Agent 能够检索和
加载所需构件

逻辑构件库 装载器 操作集

外部环境 感知器 反应器

内部状态信息 数据集
按需装配 Agent

图 4.4 按需装配 Agent 的体系结构

46
第四章 GeoAgent

4.3 GeoAgent 的概念与行为


GeoAgent 是来自人工智能领域的 Agent 和地理信息领域相结合的产物 其中 Geo
代表的是来自地理信息领域中地理空间的概念
从广义上说 GeoAgent 就是一种具有一定空间知识和空间处理能力的 Agent 从广义上
理解 GeoAgent 和 Mobile Agent 及按需装配 Agent 都是 Agent 中的一种 是平行的 就
是说 既 有 可 移 动 的 GeoAgent 也 有 不 可 移 动 的 GeoAgent 既有能够按需装配的
GeoAgent 也有功能固定的 GeoAgent

空间知识库 外部环境

作用及反应
作用及反应
自迁移 自我增强 自迁移 自我增强

GeoAgent GeoAgent
交互 协作

构 件 集 任 务 集

图 4.5 GeoAgent 的行为

但是 正如前面所谈到的 Agent 的可移动特性和可按需装配特性都能够在地理信息


领域中发挥十分重要的作用 为一些问题的解决带来新的概念模型 思路和解决途径 因
此 本文把这些特性和 GeoAgent 结合起来 形成狭义了 GeoAgent 的概念 从狭义上说
GeoAgent 就是一种具有一定空间知识 能够通过按需装配来增强自身空间处理能力的 Mobile
Agent 在以后的篇幅中 如无特别说明 GeoAgent 即是指狭义 GeoAgent
由于狭义 GeoAgent 既是按需装配 Agent 也是 Mobile Agent 因此 这两种 Agent 的
特点和优势 GeoAgent 都拥有 这为采用 GeoAgent 解决地理信息领域中的问题带来了很大
的便利 狭义 GeoAgent 的行为可以由图 4.5 来描述

4.4 GeoAgent 的体系结构


为了能够把可迁移特性 按需装配特性和解决空间信息领域的问题等特性都集成在一
起 狭义的 GeoAgent 需要有一个比较特别的体系结构 如图 4.6 所示 该体系结构中的主
要构件及说明如下

47
北京大学 2002 届博士研究生学位论文

GeoAgent

构件库 装载器 操作集

外部环境 感知器 反应器

空间 内部 迁移 数据集
空间知识库 知识 状态 路线

图 4.6 GeoAgent 的体系结构

z 感知器 感知外部环境和 Agent 内部状态的变化 并在感知到某些特殊的变化


时 把相应的变化以事件的形式提交给反应器
z 反应器 控制整个 Agent 的运行 当接收到某些特殊的事件时 通过启动操作集
中相应的操作来响应该事件
z 装载器 能够根据需要从指定的构件基地动态地加载所需的功能构件
z 操作集 存放该 Agent 对各种事件的具体反应动作 以及能够从系统构件注册库
中查询所需构件等功能
z 内部状态信息 存放和维持标识 Agent 内部状态的信息
z 空间知识 存放 Agent 内部拥有的空间知识
z 迁移路线 存放 Agent 的迁移路线信息
z 数据集 存放 Agent 所携带的数据
而且 为了能够给系统中的 GeoAgent 充分的支持 基于 GeoAgent 的系统还需要拥有
管理和维护着系统构件元数据的构件注册库 管理着系统构件的构件基地 构件库 以
及存放系统中共公空间知识的空间知识库等

4.5 GeoAgent 系统的体系结构


基于 Agent 的系统一般有两种 即单 Agent 系统和多 Agent 系统 前者采用中央集权
模式 由一个 Agent 来完成系统的所有功能 而后者采用基于分散对等的协同计算模式
系统中往往会有多个 Agent 分别负责完成不同的任务 大量的任务都是由 Agent 之间的协
作来完成的 对于解决分布式领域中的问题 与单 Agent 系统相比 多 Agent 系统存在着
以下优势
z 能通过 Agent 间的协作来提高系统的效率
z 系统具有良好的伸缩性和扩展性
z 不容易出现性能的瓶颈问题
z 比较适合于解决分布式领域的问题
z 系统的开发和配置方式十分灵活

48
第四章 GeoAgent

由于 GeoAgent 面向的主要是基于网络的分布式应用 因此 文中提到的 GeoAgent 系


统主要是指基于 GeoAgent 的多 Agent 系统

Agent 安全
管理器 管理器

多 Agent 系统

Agent Agent
Acl

目录 协作
管理器 管理器

图4.7 一般多Agent系统的体系结构

通常情况下 多 Agent 系统中一个 Agent 的运行需要很多提供基础性服务的构件的协


助 这就涉及到多 Agent 系统的体系结构问题 多 Agent 系统的研究是当前 Agent 领域中
的一个研究热点 目前已经有不少研究机构或个人提出了适用于多 Agent 系统的体系结
构 虽然这些体系结构之间或多或少地存在一些差别 但一般来说 一个多 Agent 系统通
常都会包括若干个 Agent 和若干个能够为 Agent 提供运行支撑环境的服务器 后者为前者
的移动和执行提供必要的执行环境和基础性服务 通常包括 Agent 管理器 安全管理器
目录管理器 Agent 通信语言和协作管理器等构件 如图 4.7 所示
z Agent 管理器 该管理器将管理着系统中所有 Agent 的生命周期 并为 Agent 在
系统中的正常运转提供一些必要的支持
z Acl (Agent-communication language) Acl 是一种通讯语言 它使得系统中的
Agent 能与其它的 Agent 或用户进行通讯和交互
z 目录管理器 该管理器为整个系统提供了完整的命名服务[147] 管理着所有
Agent 以及一些特殊应用服务的注册 作为 Agent 的精确导航器 使得 Agent 能
在杂乱无序的网络上准确地找到所需的资源和服务
z 安全管理器 该管理器负责整个系统的安全 它将维护 Agent 和网络资源的安
全 并确保 Agent 及其状态信息能够在公众网络上实现安全可靠的迁移
z 协作管理器 该管理器将为 Agent 之间的协作提供一套完整的机制 包括智能化
地分割任务和准确地分析 装配子任务的执行结果等 对于十分强调 Agent 之间
协作的系统来说 该构件是必须的 但是对于那类对 Agent 之间的协作不是十分
重视的系统而言 可以把该构件的功能交由其他构件来完成 甚至不考虑协作问

49
北京大学 2002 届博士研究生学位论文

协作 迁移
管理器 管理器

GeoAgent 安全
管理器 管理器

GeoAgent 系统

GeoAgent GeoAgent
GeoAcl

构件目录
管理器

目录 空间
管理器 知识库
构件库

图4.8 GeoAgent系统的体系结构

多 Agent 系统的这些构件能够紧密地结合在一起 为系统中 Agent 的执行提供一个安


全 有效的支撑环境 由于 GeoAgent 具备了可移动性和按需装配等新的特性 因此基于
GeoAgent 的多 Agent 系统和一般的多 Agent 系统有着一定的区别 其体系结构中需要功能
更为复杂的部件来支持这些新特性的实现 解决这些特性所带来的新的问题 使得多个
GeoAgent 能够自主 协调地运行 确保系统的良性运转 如图 4.8 所示 该体系结构和一
般多 Agent 系统体系结构的不同主要体现在
z 构件目录管理器 构件目录管理是目录管理器中的一种 该管理器管理和维护这
系统中所有构件地元数据信息 例如构件能够解决的问题类型及其所在构件基地
的网络路径等信息 该管理器能够提供构件的注册 元数据更新 以及构件查询
等服务 为系统中的 GeoAgent 提供构件的检索和定位服务
z 构件库 构件库管理或存放一个系统所需要的所有构件 构件库是一个逻辑概
念 对应着物理上的若干个构件基地 每个构件基地都管理和存放着系统所需的
若干构件 这些构件都按照一定的模式在构件管理器处进行登记注册 这些构件
基地的总和形成了系统逻辑上的完整构件库 此外 每个构件基地都有标准的网
络地址 便于 GeoAgent 通过网络从构件基地中获取所需构件
z 迁移管理器 该管理器主要负责 GeoAgent 在迁移之前的打包工作 打包后
GeoAgent 在网络上的发送工作 以及打包后 GeoAgent 到达目的地之后的解包过
z 空间知识库
程等 该库中存放的是系统中需要使用到的所有空间知识 这些空间知识
为 GeoAgent 理解与解决空间信息领域中的问题提供了相应的标准 确保了

50
第四章 GeoAgent

GeoAgent 领域知识的一致性
此外 在安全上 基于 GeoAgent 的多 Agent 系统也需要有更多的考虑 这主要包括
GeoAgent 的网络迁移所带来的新的安全问题 以及 GeoAgent 在动态装配过程中多引发的
问题等 而且 如果系统中涉及到大量的分布式数据源 则目录管理器中还应该有一个专
门负责管理分布式数据源的元数据的管理器 以便为系统中的 GeoAgent 提供精确的数据导

有了上面所提到的这些支撑性构件 GeoAgent 系统中的 GeoAgent 就能够在需要的时
候实现迁移 或者通过加载有关构件来解决遇到的新问题 图 4.9 描述了一个 GeoAgent 动
态装配的过程 其主要步骤包括
用户根据需要委托一个GeoAgent以完成某项任务 该GeoAgent在完成任务的过程
中 可能需要迁移到数据源所在地进行本地数据处理
当 GeoAgent 迁 移 到 数 据 源 所 在 地 后 发现需要装载某功能构件 因此 该
GeoAgent将根据服务类别和需要解决的问题向系统的构件管理器提交加载申请
系统的功能构件管理者根据请求返回相应功能构件的构件基地路径
GeoAgent根据返回的基地路径信息 通过自身的构件装载器动态地将该功能构件
加载到GeoAgent所在地
GeoAgent通过加载到本地的功能构件完成相应的功能
另外 对于基于 GeoAgent 的多 Agent 系统来说 需要强调说明的一点是虽然系统赋予
了 GeoAgent 很多特性 但并不是系统中的每个 GeoAgent 都必须用到所有这些特性 例如
并不是系统中的每个 GeoAgent 都必须能够迁移 必须具有按需装配的特性 因为 对于系
统需要解决的某些问题来说 可能静态不迁移或者功能固定的 GeoAgent 具有更好的效果
在这种情况下 就没有必要采用迁移和按需装配等特性

构件管理器

网 络

网络主机 GeoAgent 构件基地

图 4.9 GeoAgent 按需装配的实现过程

51
北京大学 2002 届博士研究生学位论文

4.6 原型设计与实现
原型设计与实现的基本思路是选择一个扩展空间比较大的 Agent 开发平台 在已有平
台的基础上进行必要的扩展 从而为 GeoAgent 的运行提供合适的支撑环境 主要工作包括
设计并实现一个 GeoAgent 的通用模板 以及一个在按需装配过程中需要用到的构件注册管
理器

4.6.1 开发平台

4.6.1.1 平台选择

在平台的选择上 主要遵循以下一些考虑
z 由于 GeoAgent 需要的运行环境需要能够支持 GeoAgent 的可移动性和按需装配等
特性 因而 选择的平台最好能够支撑这些特性 目前 Agent 领域已经有不少
能够支撑可移动 Agent 的开发系统 但是能够支撑按需装配特性的平台则几乎没
有 因此 选择的平台最好已经能支撑可迁移特性 并且为扩展按需装配特性的
支撑留下了比较大的扩展空间
z 由于 Java 语言在实现 Agent 系统 特别是可移动 Agent 系统方面有着极大的优越
性 而且 Java 语言的类动态加载机制 ClassLoader 等特性也为按需装配特
性的实现提供了良好的基础 因此 选择的开发平台最好基于 Java 语言
z 由于在扩展平台的过程中可能会涉及到对平台支撑性功能和一些约束机制的修
改 因而 选择的平台必须为相应的修改留有足够的空间
在以上考虑的基础上 作者选择了 IBM 基于 Java 的可移动 Agent 软件开发包
Aglets[148 149]作为开发平台

4.6.1.2 Aglets 简介

Aglets 是 IBM 为 Agent 软件开发人员提供的一套基于 Java 语言的开发工具包 ASDK


Aglets Software Development Kit [148] 该工具包具有以下一些特点
z 提供了一个相对完整的 Mobile Agent 编程模型
z 为 Agent 间提供了较好的通信机制
z 提供了一系列系统开发的类库
z 提供了一套比较详细易用的安全机制
z 具有较好的扩展机制
在 Aglets 系统中 主要包括以下一些基本元素[138]
z Aglet 简单的说 一个 Aglet 就是一个能够在网络的主机 必须能够为 Aglet 的
运行提供相应的支撑 之间迁移的可移动 Java 对象 Aglet 到达主机后将拥有自
己的线程 具有良好的自治性 Aglet 也具有良好的反应性 能够针对接收到的
信息做出相应的反应
z 代理 Proxy 一个代理就是一个 Aglet 的代表 代理就象是 Aglet 的外壳一
样 能够防止其他对象对 Aglet 的直接访问 确保 Aglet 的安全性 也能够隐藏
Aglet 的真实位置 实现访问的透明性

52
第四章 GeoAgent

z 执行环境 Context 一个执行环境就是 Aglet 的工作区域 该工作区域为维护


和管理 Aglet 提供了统一的执行环境和相应的基础性服务 允许 Aglet 访问所在
主机的资源 并确保主机不受恶意 Aglets 的攻击
z 服务器 一台网络主机 如 atp://www.cybergis.net.cn 可以拥有多个服务器
如 atp://www.cybergis.net.cn:4434 而一个服务器中可以同时拥有多个执
行环境 如 atp://www.cybergis.net.cn:4434/test
这些基本元素之间的关系如图 4.10 所示

网络主机
服务器 服务器
执行环境 执行环境
代理 Aglet 代理 Aglet
… …
代理 Aglet 代理 Aglet
… … …
执行环境 执行环境
代理 Aglet 代理 Aglet
… …
代理 Aglet 代理 Aglet

图 4.10 Aglet 系统中基本元素之间的关系

此外 需要说明的是 系统的运行环境和开发环境有一定的不同 一个最小的运行环


境只需要安装一个能够维护和管理 Aglets 的服务器和一系列相关的基础类库即可 其中
服务器可以只包含一个 Aglets 的执行环境 Context

4.6.1.3 通信模型

在 Aglet 系统中 Aglets 之间是通过消息来实现通信的 Aglet 的消息模型具有与位


置无关 同时支持同步/异步机制 以及可扩展等特性 通常情况下 发送到某个 Aglet 的
消息将首先发送到作为该 Aglet 消息网关的代理 然后再由代理发送到 Aglet 并由 Aglet
的消息处理器负责消息的具体处理 如图 4.11 所示

Aglet
SendMessage()
消息发送方 代理 消息处理器

图 4.11 消息发送与处理

这里 一个消息就是一个对象 每个消息都属于某个特定类型 除了带有表明类型的


类型域之外 消息还可以带有相应的值 既可以是简单类型的数值 也可以是复合类型的
哈希表
消息的发送和处理可以采用同步和异步两种不同的模式 在同步模式中 一旦消息被

53
北京大学 2002 届博士研究生学位论文

发送出去 发送消息的客户端将阻塞后续程序的运行 直到接收到消息接收方返回的消息


处理应答或者意外 而异步通信模式或者非阻塞通信模式的执行过程如图 4.12 所示 其关
键在于一个被称为 FutureReply 的对象 一旦消息发送方通过 sendFutureReply 函
数发出一个异步消息 就马上会获得一个 FutureReply 对象 然后 消息发送方就可以
在适当的时候利用该对象的 getReply 方法异步地获取消息的最终执行结果 此外 为
了给消息发送方提供更为灵活的机制 FutureReply 对象还提供了 isAvailable 和
waitForReply 等方法 其中 前者可以便于消息发送方检测消息是否已经处理完毕
而后者可以为消息发送者提供灵活的等待机制 包括在消息发送后等待一定的时间或者一
直等到消息处理完毕等
通常情况下 消息处理器在处理消息的过程中采用的是一个接一个的顺序处理模式
如果需要 用户可以通过扩展消息管理器实现客户化的消息管理器 例如 可以为不同消
息类型赋予不同的优先级 实现消息的并行处理等

sendFutureMessage() Aglet
代理
消息发送方 getReply() 消息处理器
Future
Reply

图 4.12 异步通信模式

4.6.1.4 事件模型

Aglet 的程序设计模型是基于事件的 该模型允许开发人员为 Aglet 绑定一些特定的


事件监听器 这些事件监听器能够捕捉到 Aglet 生命周期中的很多典型事件 通过定制针
对这些事件的反应 能够设计出具有良好反应特性的 Aglet 也大大降低了用户的工作
量 主要的事件监听器包括
z 克隆事件监听器 该监听器主要监听与克隆相关的一些事件 通过定制该监听
器 用户可以定制针对 Aglet 即将被克隆 正在克隆 克隆完成后等几个特定事
件的行为
z 移动事件监听器 该监听器主要监听与 Aglet 迁移相关的一些事件 通过定制该
监听器 用户可以定制针对 Aglet 即将被发送出去 Aglet 即将被牵引回来 一
个 Aglet 到达一个新的执行环境后等几个特定事件的行为
z 持续性事件监听器 该监听器主要监听与 Aglet 的持续性相关的一些事件 通过
定制该监听器 用户可以定制针对 Aglet 即将被挂起 Aglet 被激活后等几个特
定事件的行为

4.6.2 通用 GeoAgent 模板的设计与实现

为了方便开发实现各种功能的 GeoAgent 系统设计了一个通用的 GeoAgent 模板 即


GeoAgent 类 该类继承了 Aglets 系统中代表一个可移动 Agent 的 Aglet 类 并根据
GeoAgent 的结构作了一定的扩展 如图 4.13 所示

54
第四章 GeoAgent

的结构作了一定的扩展 如图 4.13 所示

符号说明
Aglet 方法

一般化

onCreation

handleMessage
GeoAgent

matchComponent

loadClass

图 4.13 通用 GeoAgent 与 Aglet

GeoAgent 的扩展主要是增加了 matchComponent 和 loadClass 两个操作


1 matchComponent
该方法的主要工作是通过检索系统的构件注册管理器以获得符合要求的构件 是通过
向代表构件注册管理器的 coordinatorAgent 发出一个类型为 match 的匹配检索消息
message 来完成的 该消息中将包含具体检索过程需要用到的一些参数 包括构件功能
类型 说明构件详细功能的系列参数 以及检索策略 例如 如果某个 GeoAgent 需要加载
一个能够把 SHP 格式的数据转换为 GML 格式的构件 并且 当符合要求的构件有多个时返
回第一个符合条件的构件 则相应的消息中会包含这些参数 可能还会有数据格式版本号
等参数 如图 4.14 所示

sendMessage (message)
GeoAgent coordinatorAgent

消息类型 = match
构件类型 = 格式转换
检索策略 = First
源格式 = SHP
目标格式 = GML

图 4.14 构件匹配消息内容

消息中的检索策略是在一次检索过程中当检索到多个符合要求的构件时用以确定最终
返回构件的策略 主要策略包括
z First 策略 该策略把检索到的第一个构件作为最终返回的构件
z Last 策略 该策略把检索到的最后一个构件作为最终返回的构件

55
北京大学 2002 届博士研究生学位论文

z 随机策略 该策略随机地把检索到的某一个构件作为最终返回的构件
z 自定义策略 用户可以自定义与一次检索相关的检索策略 通常情况下 该策略
与具体的检索内容比较相关 用户可以通过一个可重载的方法来确定自定义策
消息的参数中
略 除了 构件类型 和 检索策略 是共同的之外 其他的参数都与具
体的构件类型有关 或者说和 GeoAgent 需要解决的问题领域有关
matchComponent 方法的返回结果是符合条件的构件的位置信息 主要包括构件基地的
网络路径信息 构件在构件基地中的路径信息和相应的类名称 得到该构件的位置信息
后 GeoAgent 将可以通过构件装载器调用所需的构件
2 loadClass
该方法的主要工作是根据构件的位置信息 通过一个类动态装载器 ClassLoader 获
得所需的构件 这些构件在本质上就是一些符合特定接口的 Java 类 ClassLoader 是 Java
语言中的一种特殊类 该类能够动态地从网络上获取某个类的字节码 然后利用这些字节
码动态地定义一个新类 系统中实现了一个自定义的构件装载器 ComponentLoader 该类
是 ClassLoader 的子类 拥有一个 loadClass 方法 能够根据 matchComponent 方法返回的
信息装载相应的构件 如图 4.15 所示 其中 codebaseURL 和 classname 分别是构件基地的
网络地址和构件的类名称

ClassLoader

构 件 基 地

loadClass codebase
GeoAgent
构件
defineClass ComponentLoader

LoadClass(codebaseURL, classname)
loadClass 构件

loadComponent

图4.15 构件装载器 ComponentLoader

4.6.3 构件注册管理器的设计与实现

系统中 目前利用一个 Agent coordinatorAgent 来实现构件注册管理器 该 Agent


主要完成构件注册 构件注册信息管理 构件匹配 构件注册信息更新 构件注销等工
作 当某个 Agent 需要调用管理器的这些功能是 只需要发送一个相关的消息给构件注册
管理器即可 如图 4.16 所示
构件的注册本质上就是要在构件注册数据库中增加一个构件的相关元数据 这些元数
据主要包括了构件的类型信息 如数据格式转换构件 和功能类别信息 如 SHP2GML
分别对应于构件注册数据库中的构件类型表和针对每类构件的注册信息表 其中 构件类
型表保存的是系统中涉及到的所有构件类型基本信息 以及和每种构件类型相对应的构件
注册信息表 如图 4.16 所示 由于每种构件类型注册的信息可能有所不同 因此 每种构

56
第四章 GeoAgent

册信息表 如图 4.16 所示 由于每种构件类型注册的信息可能有所不同 因此 每种构件


类型都有一个专门存放该类型构件注册信息的表 例如 对于数据访问类型的构件来说
需要指定构件的名称 构件能够处理的数据类型 需要访问的数据范围 构件所在的构件
基地地址 构件对应的类名称 构件制作者名称 构件属主名称等 对于数据格式转换的
构件来说 需要指定构件的名称 源数据格式名称及其版本号 目标数据格式名称及其版
本号 构件所在的构件基地地址 构件对应的类名称 构件制作者名称 构件属主名称
等 需要说明的是 构件注册管理器的设计和实现是基于以下几个假设的
z 所有构件在注册过程中用到的词汇和 Agent 在匹配过程中到的词汇来源于同一个
词汇集 并且相同的词汇表达的含义是相同的 构件的匹配过程无需涉及语义地
理解和语义的匹配问题
z 相同类型的构件都遵循相同的接口标准 并且在注册过程中采用了相同的类型词
汇 例如 实现了从 SHP 格式到 GML 格式的转换功能的 SHP2GML 构件 和 实
现了从 MIF 格式到 GML 格式的转换功能的 MIF2GML 构件 都属于 数据格式转换
构件 并遵循相同的构件接口
z 在构件注册管理器中完成了注册的构件都已经正确地部署在相应的网络环境中
例如 如果 SHP2GML 构件在其注册信息中表明该构件可以从网络地址
http://www.cybergis.net.cn/component/中获得 则系统默认该路径是正确的
且该构件已经被正确地部署在该路径了

GeoAgent coordinatorAgent

消息类型 = 构件注册
注册
消息类型 = 构件匹配
匹配
消息类型 = 构件更新
更新
消息类型 = 构件注销 注销

构件类型 注册信息表 类型说明 …


数据获取 AccessService 读取数据 …
格式转换 FormatTran 数据格式转换 …

AccessService FormatTran
构件名称 数据格式 … 构件名称 源数据格式 目标数据格式 …
AccessShp Shp … Shp2Gml Shp Gml …
AccessMif Mif … Mif2Gml Mif Gml …
… …

图 4.16 构件注册管理器

57
北京大学 2002 届博士研究生学位论文

应该说 目前构件注册管理器的设计和实现还没有充分地考虑语义的问题 事实上


为了能够精确描述构件的 GIS 专有功能以及在查询检索过程中实现精确匹配 还需要解决
以下几个主要问题 研究和构建地理信息领域基于 GIS 操作语义的公共词汇集 研究不同
应用领域的词汇集及其语义转换问题 以及在此基础上的语义理解和匹配问题等 这些问
题 都需要在后续的工作中作进一步地研究和探讨
此外 为了在构件匹配的过程中能够利用相关安全策略来约束构件的选择 还需要维
护一个相关的安全策略文件用以说明相关的安全策略 例如构件拥有者在注册了其构件之
后 可以指定能够使用其构件的 GeoAgent 属主等
以上所讲的是完全自主开发实现构件注册管理器的模式 除了这种途径之外 也可以
通过扩展现有一些注册管理工作包的模式来实现 如扩展 UDDI 开发工具包等

4.7 迁移策略
可移动性为 GeoAgent 的实现和灵活性带来很多优势 包括迁移到数据所在地进行处
理 离线计算模式和易于实现负载均衡等 但是 这种特性也为系统带来了新的负担 即
GeoAgent 的网络迁移
在现有的可移动 Agent 系统中 Agent 的移动通常都是采用整个 Agent 迁移的模式
在本系统中 由于 GeoAgent 具有按需装配的特性 将使得系统在支持传统 Agent 迁移模式
的同时 也支持新的迁移策略 即构件迁移模式
对于传统的 Agent 迁移模式而言 每次迁移的都是整个 Agent 包括 Agent 的所有代
码和相关状态信息 这种模式相对来说迁移量较大 而且要求相关系统都拥有发射和接收
Agent 的部件 但是 在这种模式下 Agent 的迁移非常自由 而且 用户在开发新的 Agent
时 也无须到处安装[34] 只要在需要的时候进行 Agent 的迁移即可
对于 GeoAgent 系统而 言 由 于 GeoAgent 拥 有按需 装配的 特性 因此可 以采 用
GeoAgent 迁移和构件下载相结合的模式 在这里 可以把 GeoAgent 理解为一个 外壳
拥有并理解该 GeoAgent 所提供的空间信息服务的相关接口 而下载的构件是真正的 处理
引擎 是实现了服务中某个或某几个相关接口的功能模块 GeoAgent 迁移和构件下载相
结合可以产生两种主要的迁移策略
z 创建 GeoAgent 和构件下载的模式 首先在本次 GeoAgent 迁移任务中 Agent 需要
迁移到达的目的主机上创建一个 GeoAgent 然后 已经创建的新 GeoAgent 通过
按需装配的模式加载所需构件 如图 4.17 所示 这种模式相对来说迁移量较小
需要迁移的仅仅是真正用于处理空间数据的功能构件 即 处理引擎 而作为
外壳 的 GeoAgent 是无需迁移的 此外 这种模式也在一定程度上屏蔽了由于
Agent 的迁移所带来的部分安全问题 但是 采用这种迁移策略是有一定前提
的 那就是相关主机中需要预先安装各种可能需要用到的 GeoAgent 外壳 不
过 由于这些 外壳 仅仅是一些接口 改动和升级频率较低 并且具有与功能
构件无关的特性 因此 这种模式具有很大的用途
z 创建 迁移 GeoAgent 和构件下载的模式 这种模式是对上一种模式的补充 当
GeoAgent 需要迁移到的目的主机上并没有所需 GeoAgent 的类型的时候 需要首

58
第四章 GeoAgent

先在 GeoAgent 服务器上创建相关类型的 GeoAgent 然后让该 GeoAgent 迁移到目


的主机 最后再根据需要加载所需的构件 如图 4.18 所示 这种迁移模式相对完
整 迁移量相对较大 但是在这种模式下 GeoAgent 的迁移非常自由 和传统的可
移动 Agent 系统一样 无需在各个主机上事先安装各种 GeoAgent
利用这两种迁移模式的有机整合 可以为 GeoAgent 提供较为灵活而完整的迁移策略
当需要启动某个 GeoAgent 并迁移到某主机时 系统首先查看该主机上有没有相应的
GeoAgent 类型 如果有 则直接在该主机创建一个该类型的 GeoAgent 然后再根据应用的
需要从构件基地中加在一个具有真正处理功能的构件来做进一步处理 如果该主机并没有
该类型的 GeoAgent 则系统先在其他主机创建一个该类型的 GeoAgent 然后让该 GeoAgent
迁移到相应主机 并加载所需构件已完成特定的任务

发出请求 创建
数据源服务器
下载构件
逻辑构件库
返回处理结果
本地处理

图 4.17 创建 GeoAgent 和构件下载模式

GeoAgent服务器 数据源服务器
迁移 下载构件
逻辑构件库

创建
本地处理
返回处理结果

图 4.18 创建 迁移 GeoAgent 和构件下载模式

4.8 Agent 设计模式


Aglets 平台总结了几种比较有效的 Agent 设计模式 主要包括了迁移模式 任务模式
和交互模式三大类[138 150] 其中
z 迁移路线模式是迁移模式的典型例子 在该模式中 一个路线对象 Itinerary
将维护着 Agent 需要到达的一系列主机 定义相关的路由计划和迁移顺序 以及
当遇到意外时的一些相关规定
z 主从式 Master-Slave 协作模式是任务模式的基本模式 在该模式中 主
Agent Master 将能够非派具体的任务给从 Agent Slave 而从 Agent 将迁
移到目的主机完成相关任务 并把最终结果反馈给主 Agent
z 会议模式 Meeting 是交互模式的典型例子 在该模式中 代表不同团体或个人
的 Agent 将能够根据约定 在相同的时间段迁移到作为会晤地点的目的主机 并
在该主机中完成本地交互
在 GeoAgent 系统中 为了便于实现第五章中提到的 Web 服务流引擎 本系统还设计了

59
北京大学 2002 届博士研究生学位论文

一种相应的工作流协作模式
一个工作流 由一系列相关的活动按照一定的机制组合而成 在工作流协作模式中
主要包括负责整个工作流的 FlowAgent 和负责工作流中某个活动的 ActivityAgent 两类
Agent 其中 FlowAgent 负责整个工作流的解析和执行 但是该 Agent 并不具体完成工作
流中的某个活动 工作流中的所有活动都是由 ActivityAgent 完成的 FlowAgent 在完成
工作流的解析之后将根据解析结果不停地创建 ActivityAgent 来负责具体的活动 这些
ActivityAgent 完成不同活动的过程是可以并行的 当 ActivityAgent 完成了交给的任务
之后 将把结果反馈给 FlowAgent 并结束自己的生命周期 而 FlowAgent 在接收到每个
ActivityAgent 的 反 馈 之 后 将会进行相应的判断 并决定是否需要启动新的
ActivityAgent 来完成新的任务 如图 4.19 所示

FlowAgent ActivityAgent A ActivityAgent B ActivityAgent C

解析

执行

图 4.19 工作流协作模式

4.9 安全考虑
安全问题是任何系统都需要考虑的一个重要问题 只有在安全上得到了相应的保证
系统才能够得到广大用户的认可 并逐步进入商务领域 Agent 领域也一样存在着需要解
决的安全问题 特别是可移动 Agent 技术的提出和应用 为该领域带来了不少新的问题
近年来 安全技术得到了快速发展 为 Agent 领域安全问题的解决带来了不少有效的解决
途径 解决了很多安全问题 但是 目前在 Agent 领域仍然存在一些安全问题需要做进一
步的研究

4.9.1 针对 Agent 系统的常见攻击手段

通常情况下 一个恶意的攻击人员可以通过以下一些途径来攻击 Agent 或者允许 Agent


登陆的网络主机 包括间接攻击和直接攻击
1 间接攻击途径
z 偷听 通常通过一个被称为通信监视器的程序来监听 Agent 系统之间的传递的消
息 从而获取携带了有用信息的 Agent 或者消息
z 通信分析 对于偷听 可以通过对信息的加密来加以防范 但是其变种之一的通

60
第四章 GeoAgent

信分析 则很难预防 这种技术通过分析 Agent 系统之间的交互模式来进行分析


和判断 主要包括对通信量变化的分析和对通信频率变化的分析等
2 直接攻击途径
z 非法访问 这主要是指一个对象通过某种途径访问了另一个对象中本来不允许被
访问的信息 例如 一旦一个 Agent 成功地伪装成另外一个合法的 Agent 它就
可以访问到一些本来不能访问的信息 如果一个 Agent 是用 C 语言编写的 该
Agent 就可以通过指针来非法地访问和修改信息
z 伪装 这通常指一个实体通过某种途径伪装成为另外一个实体 例如 一个
Agent 可以伪装成一个可信任的个体或组织 当它骗过服务器后 就能够获得免
费的服务或者盗用被伪装实体的机密信息 如信用卡信息等
z 特洛伊木马 Trojan horse 特洛伊木马是一个合法用户执行的 Agent 但是
该 Agent 所完成的工作却并非该用户所期望或允许的 而是一个看起来很清白但
实际上却十分有害的病毒
z 篡改 这主要是指删除或者修改 Agent 之间传递的 Agent 或者消息 任何非正常
方式的消息修改都有可能把一个可靠的 Agent 变成有害的 Agent
z 重新执行 主要指把一个刚发送过的合法 Agent 重新发送一遍 以达到非法的目
的 在这种情况下 攻击人员将可以得到返回的结果或者扰乱了服务的执行 即
使 Agent 是被加密了的 攻击人员也可以利用这种攻击途径达到其目的 因为该
途径并不需要改变什么信息
z 资源消耗 这主要指 Agent 恶意地占有和消耗有限的资源 使得服务器或者网络
无法正常地工作 这里所指的资源通常包括服务器的内存和 CPU 资源 以及网络
的带宽资源等 如果一个 Agent 总是占着申请得来的内存 其他 Agent 或者服务
器就可能因为缺乏资源而无法正常地工作 如果一个 Agent 在网络中无休止地执
行克隆命令 很快 网络将由于塞满了 Agent 而无法工作
z 否认 主要指通信的某一方否认曾经有过信息交互的过程 例如 一个 Agent 可
能在某个服务器中执行了某个购买任务 但是在购买完成后却不承认曾经购买过
物品

4.9.2 可移动 Agent 系统的常见安全问题和解决途径

从本质上说 基于 GeoAgent 的系统是一个可移动 Agent 系统 对于一个可移动 Agent


系统来说 常见的安全问题可以总结为以下三大类 [137 138 151 152]
1 针对 Agent 的安全问题
z 来自主机的威胁 当一个 Agent 迁移到一个不可信任的主机时 该 Agent 可能会
受到机密信息被偷取或者篡改的威胁 攻击手段主要包括篡改 非法执行以及非
法访问等
z 来自其他 Agent 的威胁 主要指其他 Agent 中断 Agent 的执行 或者获取机密信
息 主要攻击手段是非法访问
z 来自未授权第三方的威胁 这主要是指未授权第三方修改主机之间传递的信息

61
北京大学 2002 届博士研究生学位论文

或者利用通讯信息来获取 Agent 的内容 主要攻击手段是篡改和偷听


2 针对主机的安全问题
z 来自 Agent 的威胁 主要指一个迁移到本地的 Agent 试图访问本地的私有信息或
者中断服务器的运转 可能的威胁途径包括非法访问 伪装 特洛依木马 拒绝
服务 denial of service 和否认等
z 来自未授权第三方的威胁 主要指恶意的第三方通过向服务器发送很多的 agent
来达到终止服务的目的
3 针对网络的安全问题
z 来自 Agent 的威胁 主要指通过发送和传播 Agent 使得网络中充满了 Agent 从
而达到消耗网络资源的目的
目前 解决这些问题的主要途径包括[138 151]
1 Agent 在传输中的安全问题
z 对于 Agent 可能在传输过程中被偷听或者被第三方篡改的问题 可以通过安全连
接的方式来解决 例如可以采用 SSL Secure Sockets Layer 技术 该技术可
以对数据进行加密 并检查其完整性 从而解决相应问题
z 对于那种采用通信分析技术的间接性攻击 目前还没有什么好的预防途径
2 Agent 在服务器 指网络主机 执行时的安全问题 由于 Agent 的执行需要所在
服务器的大力支持 并且在某种程度受到服务器的控制 因此如何防止 Agent 被恶意服务
器的攻击一直是一个比较难以解决的问题 在服务器中加入安全硬件是确保 Agent 在不可
信任服务器中安全执行的一种可能方案[153] 此外
z 如果一个 Agent 中保存了只能被某个服务器使用的信息 则一种可能的解决途径
是对这些信息用该特定服务器的公钥加以加密 从而确保其他服务器或 Agent 无
法利用该信息 此外 对于一些寿命十分短暂的机密信息 也可以随 Agent 迁移
到其他服务器中 并确保在恶意主机窃取该机密信息之前删除有关信息
z 为了防止恶意服务器对 Agent 代码的解读和篡改 可以对 Agent 进行加密 利用
一定的算法把 Agent 转换成一种难以分析的形式 这并不意味着相应的 Agent 是
无法被破译的 但这种方法增加了破译的难度 延长了破译所需要的时间 并且
确保这段破译时间足以满足该 agent 在服务器的逗留和任务的完成[154 155]
此外 为了确保恶意主机无法破译上述转换的算法 在每次执行该算法的时候都
会使用到一个随机生成的参数 该随机参数的使用将使得攻击人员难以破译转换
算法
z 可以采用联盟的模式 并确保一个联盟内部的主机 Agent 用户之间是可以相互
信任的 因此 当一个 Agent 被发送到联盟内部的主机时 就可以把该主机当成
时可信任的主机 并放心的执行有关的操作
z 对于其他一些问题 例如如何确保一般服务器能够保质保量地为 Agent 的执行提
供合理的资源等 目前还没有很好的解决方案
3 服务器的安全问题
z 确定 Agent 的身份 可以通过公开密钥加密和数字签名等途径来确定 Agent 制造

62
第四章 GeoAgent

者和 Agent 用户的身份
z Agent 在执行时的检查和限制 检查主要是指通过语言安全性检查来确保 Agent
在执行过程中不会非法访问内存或者一些私有的信息 限制主要是指利用访问控
制来授权和约束 Agent 的行为和权限
z 可以采用联盟的模式 并确保一个联盟内部的主机 Agent 用户之间是可以相互
信任的 因此 当主机接收到联盟内部的 Agent 时 就可以把该 Agent 当成是可
信任的 Agent 并允许该 Agent 的相关操作
4 网络的安全问题
z 可以通过对 Agent 的限制来预防 Agent 对网络安全问题的威胁 例如可以限制
Agent 在网络中的迁移次数 限制 Agent 在网络中的逗留时间 以及限制 Agent
在网络中的最大克隆次数等

4.9.3 Aglets 的安全模型

在基于 Aglets 的系统中 主要是通过对系统实体的身份认证和针对各个实体的安全策


略或者授权来实现系统的安全模型的 通常情况下 一个 Aglets 系统将涉及以下一些实体
[138 156]
z Aglet 是可移动的 Agent 本质上是一个线程
z Aglet 制造者 指制造了 Aglet 的个人或者组织 该制造者担负着相应的职责
确保 Aglet 的行为和功能就像 Aglet 说明书或者制造者所承诺的那样
z Aglet 属主 指实例化并运行某个 Aglet 的个人或者组织 它是对某个具体 Aglet
负责的实体 因此 通常情况下 使用 Aglet 属主信息来完成相应的授权
z 执行环境 context 指的是 Aglet 赖以生存和执行的环境 是一个可执行进
程 它为 Aglet 的执行提供了基础性服务
z 执行环境制造者 指制造了执行环境的个人或者组织 该制造者担负着相应的职
责 确保生产的执行环境的行为和功能就像其说明书或者制造者所承诺的那样
z 执行环境属主 指购买并运行了某个具体执行环境的个人或者组织 它是对该具
体执行环境负责的实体 因此 通常情况下 将使用执行环境属主信息来完成相
应的授权
z 网络领域 network domain 指一组服务器的总和 该实体能够验证某个服务
器属不属于某个领域 并对 Aglet 在特定领域内的行为和活动授权或者进行相应
限制 如限定 Agent 在领域内的迁移次数等
原则上 上面所提到的各个实体都可以定义相应的安全策略 目前 Aglets 中的安全模
型主要依赖于 Aglet 属主 执行环境属主和网络领域等实体的安全策略 在这里 所谓的
安全策略 就是指一组约束了实体相应权限的规则 在 Aglet 中 这些策略的定义是基于
JDK1.2 的[138 157]
z Aglet 属主安全策略 这些策略对相应的 Aglet 负责 确保 Aglet 免受外界的攻
击 当一个 Aglet 迁移到某个执行环境 context 之后 将要求该执行环境尽可
能遵守相应的策略 然而 这种遵守不一定能够得到百分之百的保证 因为一来

63
北京大学 2002 届博士研究生学位论文

执行环境的属主不一定是完全可信赖的 二来执行环境的属主也会有自己的安全
策略 而且其优先级高于 Aglet 属主的安全策略 因此 如果出现两个安全策略
不完全一致的情况时 Aglet 属主的安全策略有可能被忽略
z 执行环境属主安全策略 这些安全策略对服务器及其系统的安全负责 确保服务
器和系统不受恶意 Aglet 的攻击 该安全策略主要定义了 Aglet 在该执行环境中
能够完成的各类操作
z 网络领域安全策略 这些策略对网络领域内部的网络负责 确保领域内的服务器
能够正常提供相应的服务 迁移到该领域的 Aglet 能够正常完成任务 这些策略
是领域内所有服务器都必须共同遵守的 该安全策略主要定义了 Aglet 在该领域
中能够完成的各类操作以及相应的约束 包括 Agent 在领域内的最大迁移次数
最大克隆个数 以及在领域中的最长停留时间等
例如 下 面 的 这 段 安 全 策 略 授 予 了 来 自 http://www.cybergis.net.cn 基 地 且 属 于
hxb 的 Aglets 的一系列相关权限 包括允许这些 Aglets 对本地 C \temp 目录中的文
件进行 read 的操作 允许这些 Aglets 对属于 hxb 的 Aglets 执行 dispose 操作
等 grant codeBase "http://www.cybergis.net.cn",
ownedBy "hxb"
{
permission java.io.FilePermission "C:\\temp", "read";
permission com.ibm.aglets.security.AgletPermission "hxb", "dispose";
}

4.9.4 GeoAgent 系统的安全模型

由于论文中 GeoAgent 系统的实现是基于 Aglets 平台的 因此其安全模型继承了


Aglets 系统安全模型的主要特色 即通过系统实体的身份认证和针对各个实体的安全策略
来实现系统的安全模型 在 GeoAgent 系统中 除了涉及一般 Aglet 系统所涉及的实体外
还需要涉及到以下几个主要实体
z 构件 指能够完成某项具体功能的程序模块 对于 Java 语言来说 就是一个实现
了特定接口的 Java 类
z 构件制造者 指制造了构件的个人或者组织 该制造者担负着相应的职责 确保
构件的行为和功能就像构件说明书或者制造者所承诺的那样
z 构件属主 指购买并配置了某个构件的个人或者组织 它是对某个具体构件负责
的实体 通常情况下 使用构件属主信息来完成相应的授权
由于系统中出现了这些涉及安全问题的新实体 因此 除了一般 Aglets 系统的安全策
略 在 GeoAgent 系统中还需要考虑或补充以下一些安全策略
z Aglet 属主安全策略 除了一般性的 Aglet 属主安全策略外 还需要增加 Aglet
能够使用哪些可信任构件的信息 防止 Aglet 加载了不可信任的构件
z 构件属主安全策略 这些安全策略对具体的构件负责 确保相应的构件只能够被
授权的特定 Aglet 所使用

64
第四章 GeoAgent

以上两类安全策略信息可以在构件注册管理器中得到集中的体现 当构件属主注册其
构件时 可以指定其构件能够被使用的约束条件 而当 GeoAgent 通过构件注册管理器检索
匹配所需的构件时 构件注册管理器可以利用 Aglet 属主安全策略中关于哪些构件是可信
任的安全信息 以及构件属主安全策略来决定最终反馈给 GeoAgent 的构件

65
第五章 基于 GeoAgent 的空间信息服务与应用集成

5.1 基于 GeoAgent 的空间信息服务


基于 GeoAgent 的空间信息服务或者地理信息服务 即是以 GeoAgent 作为空间信息服
务的载体 充分利用其按需装配和可移动等特性 通过 GeoAgent 动态地装配面向某类问题
所需的各种构件 从而为各种应用提供能够解决相应问题的空间信息服务 基于 GeoAgent
的空间信息服务可以分为以下两个层次
z 单问题域空间信息服务 即能够解决某类特定问题的空间信息服务 这种空间信
息服务之能够被用来解决一类问题 相应的 GeoAgent 也只了解该特定问题的相关
接口 例如 地理信息领域中存在着多种数据格式 且不同公司的产品对以其他
公司定义的数据格式存储的数据通常都难以直接操作 这带来了不同数据格式的
转换问题 因此 可以创建一类能够实现地理信息数据格式相互转换的
GeoAgent 以提供各种数据格式之间的转换服务
z 复合问题域空间信息服务 即能够解决某几类特定问题的空间信息服务 通常情
况下 这几类问题相关性比较大 这种 GeoAgent 除了能够解决这几类问题中的某
一类问题之外 更重要的是把解决这几类问题的能力联合起来 以解决超越了某
个问题领域的综合性问题 例如 由于一般的系统能够直接处理的数据格式都比
较有限 当系统需要访问其无法直接处理的数据时 除了涉及到数据读取问题之
外 还会涉及到数据格式转换的问题 如果一个基于 GeoAgent 的服务同时具有数
据读取得能力和数据格式转换的能力 则该空间信息服务将能够很好地服务于需
要访问各种数据的系统 并能够根据系统要求把读取的数据转换成特定的数据格
式之后再提交给系统
根据 OGC 对空间信息服务的分类以及 GeoAgent 的特点 可以把基于 GeoAgent 的单问
题域空间信息服务分为以下几种主要类型
z 空间数据可视化服务 提供针对各种数据格式的可视化服务
z 格式转换服务 提供各种数据格式之间的转换服务
z 数据访问服务 提供各种类型数据的访问服务 并可以和数据转换服务结合起
来 根据客户的需求返回转换成特定数据格式之后的数据
z 空间处理与分析服务 提供各种相对独立的空间处理服务和空间分析服务 如坐
标转换 地理编码和最佳路径等服务
z 工作流服务 提供与服务流相关的一系列服务 如服务流的解析和执行等
z 其它专项服务
在这些服务中 有不少服务都非常适合于采用GeoAgent的按需装配特性和移动特性
例如 对于数据访问服务和数据格式转换服务而言 由于地理信息领域存在着多种数据格
式 使得这两个问题都存在着多个平行的分支 并且这些分支问题的解决可以遵循相同的
解决方案 因此 可以很好的发挥按需装配的优势 而对于数据访问服务和空间处理与分

66
第五章 基于 GeoAgent 的空间信息服务与应用集成

析服务而言 则可以充分发挥GeoAgent的迁移特性 尽量在数据源所在地完成有关的处理


和分析工作 从而避免大量空间数据的网络迁移
由于 GeoAgent 所具有的诸多特点和优势 使得基于 GeoAgent 的地理信息服务模式能
够克服现有地理信息系统的一些不足之处 从而更好的服务于诸如数字城市这样的综合性
复杂系统 这主要体现在以下几个方面
1 基于 GeoAgent 的空间信息服务能够很好地适应开放式的网络环境 这主要体现

z GeoAgent 本质上是一种可移动 Agent 这种 Agent 本来就是为网络而提出的 对
于网络环境有着天然的适应性 而且这种迁移特性 使得计算单元能够在尽量靠
近数据源的地方进行相关的处理 实现从地理信息数据的网络迁移到地理处理服
务网络迁移的转变 从而避免了大量地理信息数据的网络传输 避免了信息处理
过程中长时间持续性网络连接的出现 也降低了运行系统对网络性能和质量的要

z 基于 Agent 的分布式计算模式以及 Agent 之间灵活有效的协作模式为分布式网络
环境下分布式问题和需要协作的复杂问题提供了良好的解决途径 主要协作模式
包括结构化组织模式 合约模式 多 Agent 规划模式和协商模式等[158]
2 能够提供粒度适宜的地理信息服务 GeoAgent 的按需装配特性令其能够把各种
地理信息功能按照需求动态地装配起来 为不同的应用提供不同粒度的地理信息服务 这
种装配模式比组件方式拥有更高的灵活度和智能性 只要系统的用户或开发人员把符合开
发规范的组件按规定正确地注册到构件管理器 GeoAgent 就能在执行过程中根据系统的需
求主动地加载和调用这些构件 而无需开发人员和用户的过多干预 从某种意义上说 这
种模式已经屏蔽了组件层的信息 体现出了更高层次的智能性和解决具体问题的自主性和
主动性
3 能够提供灵活多样的应用和集成模式
z 基于 GeoAgent 的地理信息服务既可以被符合 Agent 领域有关标准的 Agent 系统进
行调用与集成 这种模式是最根本的工作模式 其优势是可以充分发挥 Agent 系
统的优势以及 Agent 之间灵活有效的协作模式来解决问题
z 基于 GeoAgent 的地理信息服务也可以和 Web 服务器集成起来 被基于 HTTP 的 Web
应用进行调用与集成 例如 在 Aglets 系统中 可以创建一个类似小型 Web 服务
器的 Aglet 来接收从网络发送过来的 HTTP 请求 并做出相应的反馈
z 此外 特别值得一提的是基于 GeoAgent 的地理信息服务还可以被包装成 Web 服务
Web Service 被各种基于 Internet 的应用系统按照标准 Web 服务的模式进行
有效的调用和集成 这种工作模式将在后面详细讨论
4 良好的共享和互操作机制 只要完成特定功能的构件符合相应的接口 并按照规
定的机制注册到构件注册管理器中 GeoAgent 就能够利用这些构件来完成相应的任务 并
为不同开发人员所开发的构件之间的交互带来良好的途径 从而实现构件层次的共享和互
操作 而 GeoAgent 和 Web 服务的结合 使得基于 GeoAgent 的空间信息服务能够和采用其
他机制实现的空间信息服务或者非空间信息服务以 Web 服务的模式进行交互和集成 从而

67
北京大学 2002 届博士研究生学位论文

实现服务或者应用层面的互操作 此外 对于一些历史遗留系统 还可以利用包装 Agent


Wrapper Agent 来进行包装 然后通过包装 Agent 和 GeoAgent 以 Agent 的模式进行交
互 实 现 新 型 空 间 信 息 服 务 和 遗 留 系 统 之 间 的 互 操 作 [135] 这些优势将使得基于
GeoAgent 的空间信息服务能够克服现有地理信息系统的一些不足 打破系统之间相对孤立
的状态 以一种更灵活有效的模式融入到 IT 领域和无处不在的网络世界 并通过与其他服
务的交互与集成 在更多的领域和层次发挥相应的作用
5 良好的系统扩展性
基于 GeoAgent 的空间信息服务是在运行的时候才加载和调用完成具体功能的构件的
也就是说 这种模式把完成具体功能的构件和构件的应用载体 即 GeoAgent 剥离了开
来 这使得两者的版本升级或者扩展实现起来都非常容易 而且互不影响 例如 对于数
据格式转换的空间信息服务来说 如果需要新增加从 SHP 格式转换到 GML 格式的功能 只
需要实现一个能够实现从 SHP 格式转换到 GML 格式的格式转换构件 并把该构件注册到构
件注册管理器即可 作为应用载体的 GeoAgent 能够在运行的时候根据需要的构件类型来加
载和利用新增的构件 功能 自身无需过任何改变 这种工作模式使得系统具有良好的
扩展性 特别是当系统跨越了企业联盟中的多个企业或者大型企业中的多个部门时 其优
势显得特别突出

5.2 基于 GeoAgent 的空间信息服务的应用集成


应用集成主要是指把用不同语言写成的 在不同平台上运行的各种应用系统集成起
来 使得这些应用之间能够实现良好的交互 或者在逻辑上体现为一个完整的整体 典型
的应用集成包括企业应用集成 EAI Enterprise Application Integration [159 160]
和 B2B 应用集成[161]两个层次 其中 企业应用集成主要关注的是企业内部应用系统之间
的无缝集成 而 B2B 应用集成主要关注的是拥有商业来往的企业之间的应用系统的集成
类似的 基于 GeoAgent 的空间信息服务也存在和组织 企业 内部的其他应用或者其
他组织的应用之间的集成问题 这些应用可能是空间信息系统 也可能是非空间信息系
统 基于 GeoAgent 的空间信息服务与这些应用的集成主要包括基于 Agent 的交互模式 基
于 HTTP 协议的调用模式 以及基于 Web 服务 Web Service 的集成模式等
1 基于 Agent 通信语言的交互模式
在这种模式中 基于 GeoAgent 的空间信息服务和其他基于 Agent 的系统之间通过
Agent 通信语言之间的通信模式来进行交互 这是一种最基本的系统集成模式 此外 还
可以利用这种交互模式来解决基于 GeoAgent 的空间信息服务和历史遗留系统之间的集成问
题 在这种集成过程中 需要用到包装 Agent 包装 Agent Wrapper Agent 是指对非
Agent 系统进行包装 使得该非 Agent 系统能够和基于 Agent 的系统进行沟通和交互的一
类 Agent[135] 利用包装 Agent 的桥梁作用 将可以使历史遗留系统与基于 Agent 的新型
系统以 Agent 通信语言的模式进行交互和集成 通常情况下 这种交互模式是通过 Agent
之间的消息机制来实现的 在本论文所设计的系统中 基于 GeoAgent 的空间信息服务可以
利用 Aglets 平台中的消息机制来实现与其他 Agent 系统 的交互 包括同步模式和异步
模式两种交互模式 具体请参见 4.6.1.3 通信模型 一节

68
第五章 基于 GeoAgent 的空间信息服务与应用集成

这种模式的优势是可以充分发挥 Agent 的智能性等各种特点 Agent 之间灵活高效的


交互 协作模式 以及 Agent 系统自身的优势 但是 与此同时 该模式对相应的系统也
有着特定的要求 例如 都利用 Agent 技术来进行构建系统 且系统之间必须遵循特定的
通信机制等 这种模式涉及到了两方面的互操作研究 一方面是 Agent 系统之间的互操作
研究 为基于不同实现机制的 Agent 系统之间的交互和集成提供互操作依据 另一方面使
面向 Agent 的 GIS 互操作规范 为各种基于 Agent 的地理信息系统或空间信息服务之间的
交互和集成提供互操作依据[34]
2 基于 HTTP 协议的调用模式
这种调用模式主要是通过创建一个模拟 Web 服务器的 Agent 来实现的 例如 在
Aglets 系统中 可以创建一个类似小型 Web 服务器的 Aglet 来接收从网络发送过来的 HTTP
请求 并做出相应的反馈 因此 既可以创建出能够接收/响应 HTTP 请求的独立的空间信
息服务 也可以在 GeoAgent 系统中 创建一个作为中介的 WebServerAgent 由该 Agent
作为基于 GeoAgent 的空间信息服务和基于 HTTP 的 Web 应用之间的中介 在这种模式下
该 Agent 的主要工作是接收 Web 应用的 HTTP 请求 调用相应的 GeoAgent 处理请求 并把
返回最后的处理结果 如图 5.1 所示

WebServerAgent
Web 应用 Web 服务器

Web 应用 网络

Web 应用
GeoAgent GeoAgent GeoAgent

图 5.1 基于 HTTP 协议的调用模式

Web 应用发送的 HTTP 请求既可以使普通的 HTTP 请求 也可以是以 POST 模式发出的基


于 XML 格式的请求 例如 可以在 WebServerAgent 中内嵌一个 XML-RPC[162]服务器 以
解析从 Web 应用所发送够来的基于 XML-RPC 协议的请求 并根据请求调用相应的 XML-RPC
处理器 即基于 GeoAgent 的空间信息服务来处理具体的请求
这种模式的优势是能够把基于 GeoAgent 的空间信息服务通过 HTTP 等标准协议和其他
的 Web 应用进行交互与集成 标准的使用使得这些模式具有更好的开放性和兼容性 但是
对这些标准的支持也会带来一些额外的工作 例如 当利用 XML-RPC 协议来封装调用请求
时 就需要嵌入相应的 XML-RPC 服务器 需要增加 XML 文档的解析工作等
3 基于 Web 服务 Web Service 的集成模式
从本质上说 这种模式也是一种基于 HTTP 协议的调用模式 但是 和上面所提到的其
他调用模式不同的是这种模式使用了大量的开发性标准 并拥有一系列相应的辅助性标准
和技术 从而形成了一种相对完整的集成模式 该模式中使用了 Web 服务描述语言
WSDL 统一描述 发现与集成规范 UDDI 以及简单对象访问协议 SOAP 等多种

69
北京大学 2002 届博士研究生学位论文

统一描述 发现与集成规范 UDDI 以及简单对象访问协议 SOAP 等多种被 IT 领域广


泛认可的标准 为跨越系统平台 实现技术和商业边界的应用之间的集成提供了良好的途
径 目前 这种技术已经受到各领域研究人员的极大关注和认同 并被很多研究人员称为
企业应用集成和 B2B 应用集成的理想模型[160]
由于在数字地球和数字城市这种综合性的应用中 一些问题的解决往往需要牵涉到多
个企业或者部门的参与 在这种情况下 只有使用开放性的标准才能够确保参与者之间的
良好沟通和集成 因此 为了确保基于 GeoAgent 的空间信息服务能够在数字地球和数字城
市综合性应用中更好的发挥作用 使得这种空间信息服务能够更好地融入到 IT 领域 需要
重点研究和实现空间信息服务基于 Web 服务的集成模式
在上面所提到的三种应用集成模式中 基于 Agent 的交互模式和基于 Web 服务的集成
模式都比较有特色 前者主要突出了 Agent 的优势 而后者主要突出了开放性和标准的优
势 相对来说 基于 Agent 的交互模式更加适用于企业联盟或者单个企业内部的应用集
成 而基于 Web 服务的集成模式则为基于 GeoAgent 的空间信息服务在更加开放 标准的环
境中和其他应用的集成提供了更加标准的模式 相对来说更加适用于数字地球和数字城市
中一些跨领域和跨部门的综合性应用 这两种模式的结合 将为基于 GeoAgent 的空间信息
服务与其它应用或服务之间的应用集成提供相对完整的机制 如图 5.2 所示

基于 GeoAgent 的 Web 服务 其他 Web


服务

Web 服务包装
基于 Web 服务
GeoAgent 基于 GeoAgent 的空间信息服务
的集成模式

消息 其他基
于 Agent 的
GeoAgent 系统 构件管理器 GeoAgent 系统
应用系统

基于 GeoAgent
的消息机制

功能构件
图 5.2 基于 GeoAgent 的空间信息服务的应用集成模式

由于基于 Agent 通信语言的交互模式主要利用的是 Agent 之间的消息机制 这部分在


第四章已经做过阐述 因此在此不作过多描述 本章后续部分将重点讨论空间信息服务基
于 Web 服务的应用集成

5.3 Web 服务
Web 服务 Web Services 在近两年受到了人们极大的关注 有些文献甚至认为该技
术的出现标志着人类已经迈入应用程序开发技术的新纪元[163] 目前 微软 IBM 和 SUN
等公司都把该技术的研究作为一个十分关键的重心 而且 不论是微软的.NET 还是 SUN 公

70
第五章 基于 GeoAgent 的空间信息服务与应用集成

司的 SunONE 都是以该技术为核心的
关于 Web 服务的定义各个公司都有自己的看法 其中微软和 IBM 的定义是比较有代表
性的 微软认为 Web 服务是通过标准的 Web 协议可编程访问的 Web 组件[163] 而 IBM 认为
Web 服务 Web Services 是一种新的 Web 应用程序分支 他们是自包含 自描述 模块
化的应用程序 能够被发布 定位 并通过 web 调用 Web 服务可以执行从简单的请求到
复杂商务处理的任何功能 一旦被部署 其他应用程序和 Web 服务就可以发现并调用这些
服务[164 165]
虽然目前关于 Web 服务还没有一个非常统一的定义 但一般情况下 Web 服务都具有
以下一些特点[166]
z 能够通过标准的 Web 协议向 Web 用户提供有用的功能 多数情况下使用 SOAP 协
z 可以非常详细地说明其接口
议 这使用户能够创建客户端应用程序与它们进行通
信 这种说明通常包含在称为 Web 服务描述语言(WSDL)文档的 XML 文档中
z 可以通过注册 使得潜在用户能够轻易地找到这些服务 通常情况下 这是通过
通用描述 发现与集成(UDDI)规范来完成的
Web 服务建立在 HTTP 协议 SOAP 和 UDDI 等标准 以及 XML 等技术之上的 其最大优
势是允许在不同平台上 以不同语言编写的各种程序以基于标准的方式相互通信 通过
HTTP 协议极大地扩展了传统应用软件的服务范围 并通过 SOAP UDDI 和 XML 等标准技术
为应用软件提供了基于 Web 的统一应用标准 屏蔽了应用软件底层具体的实现技术
传统的中间件平台 RMI, CORBA, DCOM 等)虽然也能够在某种程度上允许位于不同平
台 以不同语言编写的程序之间的通信 但是这些中间件平台往往存在这以下的不足
[163 165 167]
z 这些中间件技术通常都要求服务客户端与系统提供的服务之间采用紧密耦合的模
式 即要求一个同类基本结构 在这种模式下 如果一端的执行机制发生变化
那么另一端就会崩溃 这个要求本来是无可厚非的 特别是在诸如构造一个小型
企业内部应用的系统等情况时 这些中间件技术有着很大的优势 但是 当需要
向基于 Internet 的应用扩展 特别是需要多个公司之间的通力合作时 由于各个
公司之间可能采取了不同的技术和结构 将很难利用这些传统的技术来解决问
z 无法很好地穿越防火墙 在基于 Internet 的应用中 通常情况下
题 客户端和服务
器之间通常都会有防火墙作为与外界的隔离 在这种情况下 采用类似 DCOM 的传
统中间件技术将很难解决问题
z 当采用传统的中间件技术来实现大型 基于网络的分布式应用时 系统的配置和
实现具有很大的难度和挑战性
z 此外 到目前为止 在这些中间件平台中还没有出现一个绝对的胜利者能够 一
统天下 这些中间件平台之间的互操作和相互兼容还很不完善 这在客观上导
致了中间件世界的分裂
相较于传统的中间件技术 Web 服务存在这以下优势[166 167 168]
z 在 Web 服务中 服务之间采用的是一种松散偶合的模式 在这种模式中 建立服
务连接的双方并不关心对方的具体执行机制 连接中的任何一方均可更改执行机

71
北京大学 2002 届博士研究生学位论文

制 却不影响应用程序的正常运行[164] 这种机制为大型企业内部不同构应用程
序之间的集成 以及商务领域企业之间应用程序之间的集成提供了有效的途径
z 由于 SOAP 等技术的使用 使得 Web 服务能够有效地穿越防火墙 从而解决了传统
中间件技术的防火墙问题
z Web 服务所涉及的很多技术 实现起来都相对简单 例如 用于 Web 服务之间通
信的 SOAP 就比以前的方法要简单得多 而要实现与标准兼容的 SOAP 障碍也要
少得多
z Web 作为信息和服务发布者的力量在于简单且无处不在 这对解决现有中间件的
分裂世界十分重要 Web 服务在传统的中间件平台之上提供了一个统一且广泛适
用的接口 为分裂的中间件平台之间带来了新的桥梁
虽然 Web 服务在很多方面都优于传统的中间件技术 但是这并不意味着 Web 服务技术
就可以取代传统的中间件技术 事实上 从一个多层应用程序结构的角度来看 Web 服务
只是一个方便程序访问的包装 具体的服务还是要靠中间件来实现 访问包括服务请求处
理 监听者 和一个支持商业逻辑操作的接口 商业逻辑本身是由传统的中间件平台实现
的[164 165]

服务中介

2 发现 1 发布

3 绑定
服务请求者 服务供应商

图 5.3 Web 服务模型 角色与操作

Web 服务的模型如图 5.3 所示 该模型中主要涉及了以下三种基本的角色[169]


z 服务提供者 该对象提供服务 并对服务进行注册以便于服务的利用
z 服务代理 是服务提供者和服务请求者之间的媒介 提供了一定的机制使得服务
提供者和服务请求者能够发现对方
z 服务请求者 向服务代理请求服务 并调用这些服务以完成具体的任务
Web 服务模型中还包括了以下几种基本操作
z 发布 Publish 服务提供者向服务代理发布服务 即进行服务的注册
z 发现 Find 服务请求者向服务代理提交发现操作的请求 描述所需的服务
服务代理在完成匹配之后分发相应的结果
z 绑定 Bind 在服务请求者和服务提供者之间建立绑定 使得服务请求者可以
访问和调用服务提供者所提供的服务
Web 服务主要利用了用于描述 Web 服务的 Web 服务描述语言 WSDL Web Services
Description Language 用于 Web 服务注册和元数据管理的统一描述 发现与集成协议

72
第五章 基于 GeoAgent 的空间信息服务与应用集成

UDDI Universal Description Discovery and Integration 标准 以及用于调用 Web


服务的简单对象访问协议 SOAP Simple Object Access Protocol 等标准

5.3.1 Web 服务描述语言

Web 服务描述语言 WSDL Web Services Description Language 是 W3C 用于描述 Web
服务的新规范 能够被用来描述一个 Web 服务能够做什么 该服务在什么地方 以及如何
调用该服务 WSDL 利用 XML 格式来描述 Web 服务 把 Web 服务看成是一系列能够对消息
message 操作的端点 endpoints 这些消息包含了面向文档的信息或者面向过程的
信息 WSDL 首先对操作和消息进行抽象描述 然后将其绑定到具体的网络协议和消息格式
上以定义端点 而相关的具体端点组合成了服务[74 170 171]

类型 符号说明

引用


包含
象 消息

修饰

端口类型 操作

绑定 操作




服务 端口

图 5.4 WSDL 文档各元素关系

一个 WSDL 文档的节可分成两组 上层的组包含抽象定义 而下层的组包含具体说明


抽象各节以独立于语言和平台的方式定义类型 消息 和端口类型等元素 与具体实现相
关的问题 如序列化等 被放到下层各节 这些节包含具体的说明[170] WSDL 文档中各
个元素之间的关系如图 5.4 所示
1 抽象定义
z 类型 types 独立于计算机和语言的类型定义
z 消息 message 包含函数参数 输入与输出分开 或文档说明
z 端口类型 portType 引用消息节中的消息定义来说明函数签名 操作名称
输出参数和输出参数等
2 具体说明

73
北京大学 2002 届博士研究生学位论文

z 绑定 binding 指定端口类型节中每个操作的绑定
z 服务 service 指定每个绑定的端口地址
一个典型的 WSDL 文档通常包括了类型节 消息节 端口类型节 绑定节和服务节 具
体例子可以参考附录一
在类型节中定义了文档中需要用到的数据类型 如果不需要声明数据类型 可以省略
该节 该节还可以用来声明文档中使用的架构名称空间
消息节中定义了该文档用到的各种消息元素 <message> 如果把操作看作函数 那
么消息元素就定义了该函数的参数 消息元素中的每个<part>子元素都对应一个参数 输
入的参数在一个单独的 消息元素中定义 与输出元素分开 输出元素在自己的消息元素中
定义 操作的输入和输出参数在输入和输出消息元素中都有各自对应的<part>元素 这些
<part>元素的类型可以是 XSD 基本类型 SOAP 定义类型(soapenc) WSDL 定义类型(wsdl)
或类型节定义类型 当用于文档交换时 WSDL 允许使用消息元素来说明要交换的文档
[170]
端口类型节中可以有零个 一个或多个<portType>元素 因为抽象的端口类型定义可
以放在独立的文件中 所以 WSDL 文件中可能有零个<portType>元素 <portType>元素用
<operation>子元素来定义一个或多个操作 每个<operation>元素都声明了操作的名称
参数 使用消息元素 以及每个参数的类型 每个消息中声明的<part>元素 可以有一
个 两个或三个子元素 即<input> <output>和<fault>元素 每个<input>和<output>
元素中的消息属性引用消息节中相关的消息元素
绑定节可以有零个 一个或多个<binding>元素 其目的是指定如何通过线路发送每个
<operation>的调用和响应 该节把类型节 消息节和端口类型节的抽象内容具体化 绑定
规范与数据和消息声明的分离意味着参与同种业务的服务提供商可以将一组操作标准化
(portType) 然后 每个提供商可以通过提供不同的自定义绑定来彼此区分 WSDL 同样有
一个导入构造 这样抽象定义就能够放到自己的文件中 而与绑定和服务节分开 这些文
件可以在服务提供商之间分发 并把抽象定义用作标准 例如 多家银行可以将一组银行
业务操作标准化 在抽象 WSDL 文档中进行准确说明 然后 每个银行就可以自由地 自
定义 底层协议 序列化优化和编码[170]
服务节也可以有零个 一个或多个<service>元素 <service>元素中包含了一组
<port>元素 每个<port>元素以一对一的方式将位置与来自绑定节的<binding>元素相关
联 如果有多个<port>元素与同一个<binding>相关联 那么其他 URL 位置将用作备用项

5.3.2 简单对象访问协议

简单对象访问协议 SOAP Simple Object Access Protocol 为在分散 分布式的环


境中利用 XML 实现点对点间交换结构化信息提供了一种简单且轻量级的机制 该协议自身
并不定义任何与应用有关的语义 它通过定义的模块化包装模型和模块中数据的编码机制
来描述应用的语义 这使得 SOAP 能够被应用于多种系统 从消息系统到远程过程调用等
[68]
简单对象访问协议包含三个主要部分

74
第五章 基于 GeoAgent 的空间信息服务与应用集成

z SOAP 信封 定义了一个完整的框架 包括一个消息中包含了什么内容 需要谁来


响应它 以及说明该消息的处理是必须的 还是可选的
z SOAP 编码规则 定义了用于交换应用定义数据类型的实例的串行化机制
z SOAP 远程过程调用 RPC 描述 定义了用于描述远程过程调用和应答的协定
一个 SOAP 消息通常是由一个强制的信封 SOAP Envelope 一个可选的消息头 SOAP
Header 和一个强制的消息体 SOAP Body 所组成的 XML 文档[68 172 173] 具体例子
可以参考附录二 其中
z 信封 SOAP Envelope 是表示 SOAP 消息的 XML 文档的顶级元素
z 消息头 SOAP Header 是为了支持在松散环境下在通讯方(可能是 SOAP 发送
者 SOAP 接受者或者是一个或多个 SOAP 的传输中介)之间尚未预先达成一致的情
况下为 SOAP 消息增加特性的通用机制 SOAP 定义了很少的一些属性来用于指明
谁可以处理该特性以及它是可选的还是强制的
z 消息体 SOAP Body 为该消息的最终接收者所想要得到的那些强制信息提供了
一个容器 此外 SOAP 定义了 Body 的一个子元素 Fault 用于报告错误
从本质上说 SOAP 是一种基于 XML 的远程过程调用 RPC 机制 也就是说 SOAP 以
XML 为媒介 为分布式环境下的程序和系统之间 提供了一套简单的信息通讯协议[174]
这涉及到远程过程调用 RPC 这项很早就有的技术 在远程过程调用中 由于机器通常通
过网络进行通信 发送到执行计算的机器的数据必须被编码 也就是说 需要转换成某种
容易在网络传输的格式 在远程过程调用中 通常采用外部数据表示 XDR 标准 该标准
是专门为远程过程调用设计的 由于与远程过程调用的联系太紧密 在几乎所有应用程序
中 开发人员仅对远程过程调用使用 XDR[175]
过去几年内 最为知名的 RPC 机制包括了 CORBA Java RMI 及 COM 这些技术在今日
乃至可预见的未来 仍会在 IT 领域中扮演着重要的角色 然而 网络所带来的信息革命及
电子商务 加上企业并购风潮的盛行 促使企业对系统整合的需求日盛 异构性系统间的
通信亦随着大量增加 CORBA Java RMI COM 等 RPC 机制 开始显得僵硬 弹性不足 而
这正是 XML 和 SOAP 诞生 并开始大放异彩的时代背景 SOAP 利用 XML 纯文字的特性 提
供一套机制 以 XML 来包装程序调用和信息 由于采用了 XML SOAP 顺理成章地继承了许
多 XML 的优点 可轻易透过 HTTP SMTP 等网络上最常使用 极为流行的通信通道来夹带
更能穿越企业的防火墙 还可利用 SSL S/MIME 等机制加密 安全性高 透过 XML 来传递
信息 还有一项更大的优点 就是 CORBA Java RMI 及 DCOM 这些以专属二进制格式传送数
据所不及的 那就是对程序语言 操作系统的独立性 由于是纯文字 XML 格式 SOAP 信息
可由任何一种程序语言所产生 被任何程序语言 甚至肉眼所解读[174]
除了 SOAP 协议之外 还有一些其他基于 XML 的远程过程调用协议 XML-RPC[162
176 177]就是一个比较有影响的代表 XML-RPC 和 SOAP 都是基于 XML 的远程过程调用
但是 SOAP 协议比 XML-RPC 多了一些特性 包括能够为消息体提供描述信息的信封和一套应
用程序特定数据类型编码的规则 前者为更好地实现过程调用提供了更为丰富的信息 例
如消息编码规则 指定消息该由谁来处理 如何处理等等 后者则使得任意数据类型的传
输成为可能 XML-RPC 的优势在于十分简单 易于被集成到现有的体系结构之中 实现代
价小 并且非常稳定 不足在于目前只能支持对预先定义的数据类型的编码 无法传输过

75
北京大学 2002 届博士研究生学位论文

且非常稳定 不足在于目前只能支持对预先定义的数据类型的编码 无法传输过于复杂


的 自定义的数据类型 而其优势在于功能更为强大 能够支持任意数据类型 但相对于
XML-RPC 来说较为复杂 实现代价相对较大
不过 由于简单和可扩展是设计 SOAP 的主要目标 因此 在 SOAP 中也尽可能地忽略
了传统消息系统和分布式对象系统中的一些复杂特性 因此 与许多早期的协议相比
SOAP 已经显得十分小巧 而且更易于实现 例如 DCE 和 CORBA 的实现需要数年时间 而
SOAP 可以利用现有的 XML 分析器和 HTTP 库完成大部分艰苦的工作 因此 SOAP 实现方案在
数月内便可完成[166] 当然 如此一来 SOAP 就无法具备 DCE 或 CORBA 的全部功能 不
过 虽然功能减少了 但由于复杂程度的大大降低 使得 SOAP 更加易于应用

5.3.3 统一描述 发现与集成协议

在目前的电子商务领域中 由于各种企业使用各种各样的方法与他们的客户或合作伙
伴交互产品和 Web 服务方面的信息 同时由于全球电子商务的参与者仍然没有就是用同一
种技术标准活体系构件作为彼此服务联系的方法达成一致 使得发现那些潜在的贸易伙伴
冰河他们合作 变得非常的困难[72 178 179]
直到现在 仍然没有方便直接的方法来得到关于不同的公司所支持的不同的标准方面
的信息 也不能通过简单的方法检索获得所有的是市场机遇 更不能使用一种简便快捷的
方式与那些所有的可能的贸易伙伴进行方便的联系和系统对接[72 178 179]
这极大的限制了通过 Web 进行电子商务的合作的可能 使得对电子商务的投资无法得
到应用的回报 同时企业应用也无法方便的接收新的和作者或是增加新的服务[72 178
179]
为了解决这个问题 一个由技术领域和商业领域的领导者组成的开发小组开发了统一
描述 发现与集成协议 UDDI Universal Description Discovery and Integration 标
准 这是一个全新的计划 意图建立一个全球话的 平台无关的 开放式的架构 使得企
业能够[73 179 180]
z 发现彼此
z 定义如何通过 Internet 交互
z 使用一个全球性的商务注册中心 以共享各种相应信息 并加速全球 B2B 的电子
商务的应用
UDDI 建立在 XML 和 SOAP 的基础上 并借助这些技术来解决集成和交互的问题 其中
XML 提供了跨平台的数据编码和组织方法 而 SOAP 在 XML 之上定义了一种跨系统平台的信
息交换的简单包装方法 绑定于 HTTP 之上的 SOAP 协议 可以跨语言 跨操作系统进行远
程过程调用 实现了编程语言和系统平台的无关性 而 UDDI 规范在 XML 和 SOAP 的基础之
上定义了新的一层 在这一层次 不同企业可以用相同的方法描述自己所能题的服务 并
能查询对方所能提供的服务 如图 5.5 所示
统一描述 发现与集成协议 UDDI 是一套基于 Web 的 分布式的 为 Web 服务提供
信息注册中心的实现标准规范 同时也包含了一组使企业能够将自身提供的 Web 服务加以
注册以使得别的企业能够发现的访问协议的实现标准

76
第五章 基于 GeoAgent 的空间信息服务与应用集成

UDDI 的核心组件是 UDDI 商业注册 它使用一个 XML 文档来描述企业及其提供的 Web


服务 从概念上说 UDDI 商业注册所提供的信息包含三个部分 白页 White Page
包括了地址 联系方法 和已知的企业标识 黄页 Yellow Page 包括了基于标准分
类法的行业类别 绿页 Green Page 则包括了关于该企业所提供的 Web 服务的技术
信息 其形式可能是一些指向文件或是 URL 的指针 而这些文件活 URL 是为服务发现机制
服务的[73 179 180]

通用服务交互协议 这些层尚未定义

互操 通用描述 发现和集成 UDDI

作协
简单对象访问协议 SOAP
议栈
可扩展标记语言 XML

通用互联网协议 HTTP TCP/IP

图 5.5 互操作协议栈

统一描述 发现和集成协议 UDDI 包括了 SOAP 消息的 XML schema 和 UDDI 规范 API
的描述 它们两者一起形成了基础的信息模型和交互框架 具有发布各种 Web 服务描述信
息的能力
UDDI 注册使用的核心信息模型由 XML schema 定义 选择 XML 是因为它提供了平台无
关的数据描述并很自然的描述了数据的层次关系 而选择 XML schema 是因为它支持丰富的
数据类型 便捷的描述方式及其按信息模型验证数据的能力

<businessEntiry>
名字 联系方法
描述 标识符 分类
< tModel >
名字
< businessService > 1..n 描述
名字 指向技术规范的 URL 指针

< bindingTemplate > 1..n


技术信息

图 5.6 UDDI 信息模型之间的关系

UDDI XML schema 定义了四种主要信息类型 它们是技术人员在使用商业伙伴的 Web

77
北京大学 2002 届博士研究生学位论文

服务时必须了解的技术信息 包括 商业实体信息 服务信息 绑定信息和服务调用规范


的说明信息 如图 5.6 所示
1 商业信息 businessEntiry 元素
很多合作伙伴需要准确定位你所提供服务的相关信息 并把这些信息作为了解你们企
业的开发 技术人员 程序员或应用程序需要知道你的企业名称和一些关键性的标识符
以及那些可选的分类信息和联系方法等 支持对 UDDI 商业注册的商业信息发布和发现的核
心 XML 元素被包含在 businessEntity 结构中 这个结构是商业机构专属信息集的最高
管理者 位于整个信息结构得最上层
所有 businessEntiry 中的信息支持 黄页 分类法 因此可以执行这样的搜索
如可以定位属于某个行业分类或提供某种产品的企业 也可以定位处于某个地域范围内的
企业
2 服务信息 businessService 和 bindingTemplate 元素
绿页 是 Web 服务的技术和商业描述 是 businessEntiry 的子结构 这里定义了两
个结构 businessService 和 bindingTemplate BusinessService 结构是一个描述性的容
器 它将一系列商业流程或有关分类目录的 Web 服务组合到一起 其中 一个可能的商业
流程的例子是一组相关的 Web 服务信息 包括采购服务 运输服务和其它高级商业流程
这些 businessService 信息集合可以被进一步分类 使 Web 应用服务的描述可以按不
同行业 产品 服务或地域进行分类
在每一个 businessService 中存在一个或几个 Web 服务的技术描述 包括应用程序连
接远程 Web 服务并与之通讯所必须的信息 这些信息包括与 Web 应用服务的地址 应用服
务宿主和调用服务前必须调用的附加应用服务等 另外 通过附加的特性还可以实现一些
复杂的路由选择 诸如负载平衡等
3 规范描述的指针和技术标识
调用一项服务所必须的信息在 bindingTemplate 元素中描述 但是 仅仅知道在哪里
与某项 Web 服务连接是不够的 比如 如果我知道我的合作伙伴提供了一个 Web 服务来让
我下订单 同时也知道这个服务的 URL 不过如果不知道一些具体的信息 如订单的具体
格式 应该使用的协议 需要采用的安全机制 调用返回的响应格式等 通过 Web 服务将
两个系统集成起来将非常困难
当一个程序或是程序员需要调用某个特定的 Web 服务时 必须根据应用要求得到了足
够充分的相关信息 才能确保调用的正确执行 因此 每一个 bindingTemplate 元素都包
含了一个特殊的元素 该元素包含了一个列表 列表的每个子元素分别使一个调用规范的
引用 这些引用作为一个标识符的杂凑集合 组成了类似指纹的技术标识 用来查找 识
别实现了给定行为或编程接口的 Web 服务
在刚才提到的订单例子中 接受订单的 Web 服务提供了一套定义良好的处理方法 当
然前提是格式正确的信息以正确的方式被送到了正确的地点 这项服务的 UDDI 注册将包
括用于描述商业伙伴的信息条目 描述订单服务的逻辑服务的信息条目 描述订单服务技
术调用规范的 bindingTemplate 信息条目 其中 bindingTemplate 信息条目包含了服务的
URL 和一个 tModel 引用

78
第五章 基于 GeoAgent 的空间信息服务与应用集成

实际上 这些引用是访问服务所需要的关键的调用规范信息 被称为 tModel”的数据


项是关于调用规范的元数据 包括服务名称 发布服务的组织以及指向这些规范本身的
URL 等 在前面的例子中 bindingTemplate 中可以得到指向描述订单服务的关于调用规范
的信息的 tModel 引用 这个引用本身可以被看作是提供这项 Web 服务的公司的承诺 承
诺他们实现了一项与所引用的 tModel 相兼容的服务 通过这种方式 很多公司可以提供与
同一种调用规范相兼容的 Web 服务
UDDI 规范包括 Web 服务的接口定义 使得能通过编程实现对 UDDI 注册中心的信息进
行访问 程序员 API 规范详细定义了程序员 API 包括查询 API 和发布 API 两个逻辑部分
其中查询 API 又分为两个部分 一部分被用来构造查询和浏览 UDDI 注册信息的程序 另一
部分在 Web 服务出现错误时使用 程序员可以用发布 API 为直接与 UDDI 注册交互的工具创
建丰富的接口 便于企业技术人员管理 businessEntity 或 tModel 结构的发布信息

5.4 GeoAgent 与 Web 服务


GeoAgent 的目的是为了使得空间信息服务能够更好地适应于分布式的网络环境 并为
构件层次的共享和互操作提供良好的途径 在实现过程中 GeoAgent 采用的是一种动态加
载构件的紧密耦合模式 对服务和构件的实现机制有一定限制 而 Web 服务希望解决的是
各种 Web 服务在 Web 层面的互操作和无缝的集成 采用的服务之间松散耦合的模式 对服
务的具体实现机制没有特定要求 这两种模式的集成和融合 能够为空间信息服务的实现
模式和应用模式 为空间信息处理能力在不同层面的共享和互操作提供一个相对完整而有
效的体系
GeoAgent 强调的是空间信息服务的实现模式 和以往地理信息系统或者服务所不同的
是 这里的空间信息服务是以 GeoAgent 的机制来实现的 能够充分利用基于 Agent 的分布
式计算的各种优势 而且 相对于 Web 服务模式 GeoAgent 的实现模式对于需要调用的构
件有着较大的要求 除了要求构件必须符合特定的接口 在构件注册管理器中正确注册
以及在网络上正确配置等之外 对构件的实现也有着特定的要求 例如 为了能够在网络
上迁移并被基于 Java 的 GeoAgent 顺利调用 这些构件也必须采用 Java 语言来实现 这种
工作模式的优势主要包括 GeoAgent 自身的迁移和功能构件的动态装载所带来的处理功能的
网络迁移 以及 GeoAgent 之间的协作所带来的对分布式问题和协作问题的良好适应性和有
效解决途径等 这些优势是在 Web 服务的模式中难以实现的
在 Web 服务模式中 为了实现服务之间的共享和互操作 对服务同样有着一定的要
求 主要包括这些服务必须能够利用 Web 服务描述语言完成自我描述 能够按照规定的模
式在 UDDI 注册中心中完成注册 并正确地部署到网络之中 以便被其他服务或者应用通过
SOAP 等机制进行调用和集成 但是 该模式对于服务的具体实现机制并没有加以限制 这
使得在不同平台上 以不同语言编写的各种程序以开放 标准的方式进行交互成为可能
虽然基于 GeoAgent 的空间信息服务也能够以 Agent 的方式和 Agent 系统进行交互或者和其
他基于 Web 的应用通过 HTTP 机制进行交互 但是 相对而言 Web 服务的模式具有更好的
开放性 而且 由于已经得到 IT 领域很多大型厂商的支持 Web 服务可以说已经是 IT 领
域服务调用和集成的准标准 因此 Web 服务模式的应用在客观上将为空间信息服务真正
地融入 IT 领域 更好地服务于人类的日常生活提供了良好的机制

79
北京大学 2002 届博士研究生学位论文

入 IT 领域 更好地服务于人类的日常生活提供了良好的机制
GeoAgent 和 Web 服务的集成可以体现在以下几个方面
1 把基于 GeoAgent 的空间信息服务包装成 Web 服务
可以根据 Web 服务的相关标准把基于 GeoAgent 的空间信息服务包装成 Web 服务 以便
其他的服务和应用能够以更加开放 标准的方式来获取相应的空间信息服务

其他Web服务
基于GeoAgent的空间信息网络服务

SOAP Web服 GeoAgent


务代理

其他
应用

图 5.7 基于 GeoAgent 的空间信息网络服务

由于 GeoAgent 的创建过程与生存空间和一个普通的 Java 类有一些差别 需要在


GeoAgent 服务器内才能被创建和存活 因此 把基于 GeoAgent 的空间信息服务输出成 Web
服务之前 需要为该 GeoAgent 创建一个代理 并把这个代理输出成为一个标准的 Web 服
务 作为空间信息服务请求者和 GeoAgent 之间的中介 如此一来 基于 GeoAgent 的空间
信息网络服务的工作过程将主要包括以下几个步骤 如图 5.7 所示
z 服务请求者向 Web 服务代理发出空间信息服务请求
z Web 服务代理把空间信息服务请求转发给 GeoAgent
z GeoAgent 处理完空间信息服务请求之后 把处理结果反馈给 Web 服务代理
z Web 服务代理把请求处理结果反馈给服务请求者
2 利用 Web 服务中的有关标准来解决 Agent 领域中的问题
Web 服务中利用了大量被 IT 领域广为认可的标准 这些标准可以被用来解决 Agent 领
域中的一些相关问题 例如 在 Agent 领域 特别是多 Agent 系统中 一个非常关键的难
点就是每个 Agent 都必须能够清楚地说明 我在哪里 以及 我能干什么 等问题 通
过与 Web 服务技术的集成 GeoAgent 可以按照统一描述 发现与集成 UDDI 协议在 UDDI
注册中心中进行注册 也就是说 利用 UDDI 技术来构建 Agent 系统中的目录管理器 使得
其他 GeoAgent 对自己有充分的认识和了解 当然 为了能够准确地描述和理解类似 我能
干什么 这样的问题 还需要涉及到语义理解和语义匹配方面的工作
3 GeoAgent 调用其他 Web 服务
在 GeoAgent 中调用其他 Web 服务 就是让 GeoAgent 成为调用 Web 服务的客户 以便
当 GeoAgent 中需要其他非空间信息服务 以其他机制实现的空间信息服务或者历史遗留系
统时 能够以一种开放而标准的模式来获取所需的服务 这主要是通过在 GeoAgent 中向所
需服务的访问入口点发送相关请求来完成的

80
第五章 基于 GeoAgent 的空间信息服务与应用集成

4 基于 GeoAgent 的 Web 服务流


这是一种综合性的集成模式 涉及到前面所提的所有模式 这种模式将由一个作为工
作流引擎的 Agent 来解析和控制整个工作流的执行 并在工作流的执行过程中以 Web 服务
的调用模式调用各种所需的服务 包括空间信息服务和非空间信息服务 当然 该引擎也
可以通过 Agent 之间交互的模式来调用基于 GeoAgent 的空间信息服务 这种模式将能够充
分发挥 Agent 之间的协作能力 利用 GeoAgent 的动态装配特性和 Web 服务的无缝集成特
性 为各种应用提供多种粒度 组织灵活的服务

5.5 Web 服务流语言


Web 服务及其相关技术使得不同单位的应用系统都能够包装成为标准的 Web 服务 并
跨越平台和具体的实现机制实现了 Web 服务之间的互操作 即本质上实现了不同应用系统
之间的交互 这种特性在电子商务领域或者数字城市等综合性应用中可以发挥很大的作
用 能够为参与某个商业过程的应用系统之间 或者共同解决某个综合性问题的应用系统
之间提供标准的交互途径 然而 为了解决一个综合性的问题或者完成一个相对完整的商
业过程 往往需要多个应用系统的交互 而且这些交互过程通常情况下都遵循相对固定的
顺序关系和规则 因此 如果能够在为应用程序提供标准交互途径的基础上 对解决综合
性问题的过程或者商业过程进行建模 把需要参与的应用程序都集成起来 并明确定义在
过程中各个参与者之间的关系和约束 将为问题的解决或者商业过程的完成带来极大的便
利 这在本质上就是基于 Web 服务的工作流的思想
工作流的思想最初起源于 JCL Job Control Language 其目的就是为实现某一特
定目标而必须完成得一类任务的序列及执行过程 它包括一组活动及其相互顺序关系 包
括过程或活动的启动或中止条件 以及对每个活动的描述 如活动的执行者 相关应用程
序 需要或产生的数据等 是业务过程的全部或部分自动化过程[181] 该技术在这几年得
到的快速的发展 目前许多公司都已经开发出各具特色的工作流系统产品 如 Action 公司
的 Action Workflow IBM 公司的 Flowmark 和 Lotus Notes Xerox 公司的 InConcert 等
但是 目前的这些工作流产品多数都无法跨越技术和商业的边界来对商业流程进行建模
[182]
而基于 Web 服务的工作流 由于 Web 服务能够使应用程序在网络上进行无缝集成的优
势 将能够成为跨越各种平台边界的桥梁 跨越技术和商业的边界来对商业流程进行建
模 使得商业流程和利用了大量 Web 服务的交易生命周期能够进行同样的无缝集成
Web 服务流语言 Web Services Flow Language WSFL 正是这样一种基于 Web 服务
的工作流描述语言 该语言是 IBM 针对两个层面上的工作流提出的一项新标准
z 试图用一个有向图模型来定义和执行商业流程
z 定义了一个公共接口 该接口允许商业流程把自己输出成为 Web 服务
从本质上说 WSFL 是一种对精确图表进行建模的工具 它使用人和机器都能理解的
XML 语法 通过使用 WSFL 一个按照活动和控制点层层递进的工作流引擎可以在商业流程
中贯穿始终 虽然这并不是一个新概念 然而 由于 Web 服务能够成为跨越各种平台边界
的桥梁 使得 WSFL 能够跨越技术和商业的边界来对商业流程进行建模 这种能力是绝大多
数的工作流引擎所无法实现的

81
北京大学 2002 届博士研究生学位论文

工作流引擎所无法实现的
在 Web 服务流语言中 主要涉及以下一些术语[182 183 184]
z 商业流程 就是通过组合能实现一个特定商业目标的各项活动的任一集合 例
如 处理一个信用卡号 雇佣一个新职员 提交一个专利等都是商业流程的示
z 流模型 Flow Models
例 就是用 XML 表示的一个对商业流程建模的指示性图表
该模型常常被用于把 Web 服务组成工作流 而 Web 服务则由它们各自的 Web 服务
描述语言 WSDL 文档来定义
z 全局模型 Global Models 仅仅对一个工作流中两个活动之间的处理流程进行
建模是不够的 除流程模型之外 还需要有种方法来明确指定在整个过程中 Web
服务相互之间如何实现预期的交互作用 而全局模型就是当流程被执行时 用来
指定 Web 服务之间的消息在流程模型中如何传递的一系列必需链接
z 递归嵌套 一旦为一个指定的商业流程定义了全局模型和流程模型 就可以把整
个商业流程定义为一个单独的 Web 服务 并能够被其它商业流程使用 也就是
说 在 WSFL 商业流程中可以递归嵌套 WSFL 商业流程 这样能大大提高定义模型
的灵活性 并丰富了相应的可能性
z 服务提供者 Service Providers 就是一个商业流程中负责执行一个特定活动
的团体
z 服务提供者类型 Service Provider Types 为了明确区分商业流程及其实现
WSFL 的流程模型和全局模型把每个活动定义为由特定类型的服务提供者来实现
而不是由特定的服务提供者本身来实现 服务提供者类型由一个使用 WSFL 的 Web
服务接口文档来定义 为了在商业流程中做到不同类型的服务提供者能够控制与
之相应的特殊活动 服务提供者必须正确实现与之相适应的 Web 服务接口
z 控制链 Control Links 是 WSFL 中的活动顺序控制机制 也就是说 是在商
业流程中通过工作流处理器把每个活动贯通起来的机制
z 数据链 Data Links 数据链是工作流处理器用来控制通过商业流程的数据流
的机制 尽管多数情况下 数据流和控制流紧密相连 但很可能整个商业流程中
的信息流传递方式与所激活的各项活动的序列有所不同
z 转移条件 Transition Conditions 作为一个正在运作的商业流程 工作流处
理器必须能够识别一个特定的活动何时结束以及下一个活动何时被判定和被激
活 转移条件就是一条是或者否的语句 处理器借以判定任何一个特定活动的当
前状态
z 生命周期接口 Lifecycle Interface 正如前面所说的 WSFL 商业流程本身
能够被定义成 Web 服务 而生命周期接口就是由 WSDL 定义的 Web 服务接口 该接
口描述了在一个特殊的 Web 服务应用程序中所有 WSFLWeb 服务支持的一组基本操
作 这些操作包括 商业流程的激活 挂起 恢复 阻塞 终止 以及查询其当
前状态
通常情况下 一个 WSFL 文档将包含一个或多个流模型 Flow Models 和全局模型
Global Models [183] 并涉及若干个用以完成具体商业流程的角色

82
第五章 基于 GeoAgent 的空间信息服务与应用集成

5.5.1 角色

角色对应着 WSFL 中的服务供应商类型 不同的角色代表了能够完成流程中不同工作的


服务供应商类型 例如 在一个典型的旅游者定购旅游计划的商业流程中 通常会涉及到
旅游者 代理商和航空公司等角色 如图 5.8 所示[185]
在 WSFL 中 必须明确指定流程所涉及的角色及其接口类型 例如 针对图 5.8 所示
的旅游计划流程 需要在 WSFL 文档中完成以下角色定义
<definitions name=“totalTravelPortTypes“>
<serviceProviderType name=”airlineFlow”>
<portType name=”tio:ticketHandler”/>
<portType name=”tio:ticketDelivery”/>
</serviceProviderType>
<serviceProviderType name=”agentFlow”>
<portType name=”tio:tripHandler”/>
<portType name=”tio:ticketRequester”/>
</serviceProviderType>
<serviceProvider name=”travelerType”>
<portType name=”tio:ticketBuyer”/>
</serviceProvider>
</definitions>

图5.8 旅游计划定购流程

83
北京大学 2002 届博士研究生学位论文

其中 每个角色对应于一个 serviceProviderType 元素 该元素描述了在特定商业流


程模型的上下文中每个角色类型的标识以及相应的 Web 服务接口 采用 WSDL 定义的
portTypes 形式 [186] 相应的 Web 服务提供者必须能够实现这些 Web 服务接口 以履行
相应角色的职责

5.5.2 流模型

在一个完整的工作流中可能会涉及到若干个相对独立的处理过程 通常情况下 需要
为每个相对独立的处理过程建立相应的流模型 例如 在上面所提的旅游者定购旅游计划
的例子中 就涉及到代理商面向旅游者的旅游计划定购处理和航空公司面向旅游代理商的
机票定购处理这两个相对独立的处理过程
流模型的主要任务就是要通过一定的机制 把一组相关的活动 操作 连接在一起
以形成一个相对独立的商业处理流程 流模型主要描述两类问题 其一是如何把孤立的
Web 服务组合成一个流 其二是组合后的流能够提供什么服务 即流的服务接口定义 流
模型中的主要元素包括[183 186]
1 服务供应商 serviceProvider 流模型中的服务供应商描述了完成该流模型
的处理流程所需要的不同角色的责任者 在该元素中 可以内嵌一个用于定位具
体提供服务供应商的服务定位器 Locator
服务供应商示例
<serviceProvider name="agent" type="agentType">
<locator type=“static” service=“agent.com”/>
</serviceProvider>
2 输入消息 flowSource 描述了在启动一个流模型实例的时候提供相应输入参
数的消息 该消息能够被流模型中的活动所利用
输入消息示例
<flowSource name="ticketFlowSource">
<output name="processInstanceData" message="tio:receivedTicketOrder"/>
</flowSource>
3 启动外部接口 定义了能够用来启动本流模型的外部接口
启动外部接口示例
<export lifecycleAction="spawn">
<target portType="tio:ticketHandler" operation="receiveTicketOrder">
<map sourceMessage="receiveTicketOrderInput"
targetMessage="processInstanceData" targetPart="request"/>
<map sourceMessage="processInstanceData"
sourcePart="airlineWorkId"
targetMessage="receiveTicketOrderOutput"
targetPart="airlineWorkId" />
</target>

84
第五章 基于 GeoAgent 的空间信息服务与应用集成

</export>
4 活动 activity 描述了流模型所代表的处理流程中一项相对独立的任务 通
常情况下 一个活动包含一个输入消息 一个输出消息 若干个错误消息 以及
具体完成该活动的操作等元素
活动示例
<activity name="confirmFlights" >
<input name="confirmFlightsInput" message="tio:chargedReservation"/>
<output name="confirmFlightsOutput" message="tio:eTicketMsg"/>
<performedBy serviceProvider="agent"/>
<implement>
<export portType="tio:ticketHandler" operation="sendConfirmation">
<map sourceMessage="confirmFlightsInput"
sourcePart="confirmationInfo"
targetMessage="sendConfirmationOutput"
targetPart="confirmationInfo"/>
</export>
</implement>
</activity>
5 控制链 controlLink 描述了流模型中各个活动之间的执行顺序 这些控制
链把各个孤立的活动连接成了一个相对完整的工作流
控制链示例
<controlLink name="cF-sT" source="confirmFlights" target="issueETicket"/>
6 数据链 dataLink 描述了流模型中各个活动之间的数据传递关系 为了能够
确保活动之间数据的正确传递 必须确保数据链的源活动能够通过控制链连到数
据链的目标活动
数据链示例
<dataLink name="cF-sTdata" source="confirmFlights" target="issueETicket"/>
7 输出消息 flowSink 描述了一个流模型实例完成之后包含了返回数据的消
息 或者出现错误时的错误消息
输出消息示例
<flowSink name="ticketFlowSink">
<input name="issueETicket" message="tio:eTicketMsg"/>
</flowSink>
除了以上描述的信息之外 在一个流模型中 还可能包括活动和处理流程自身的启动
和退出条件等信息 在上面提到的各个元素中 特别值得一提的是内嵌在服务供应商元素
serviceProvider 中的服务定位器元素 Locator 通过该元素 可以在执行商业流
程时 采用 4 种不同的方法来定位具体的 Web 服务 主要包括静态方法 本地方法 通过
UDDI 的方法或动态方法[187] 其中

85
北京大学 2002 届博士研究生学位论文

z 静态定位方法 该方法非常简单 只需要添加一个指向 WSDL 服务定义的直接链接


即可 该链接能够告诉 WSFL 工作流引擎 Web 服务的确切位置 而无需作出任何附
加动作
z 本地定位方法 在该方法中 服务提供者通常是一个能够在本地访问的应用程序
或者软件构件 例如一个 Java 类 这些本地服务仍然可以采用 WSDL 文档来进
行描述 但是 为了实现对遗留系统的支持和简化本地服务的定位过程 还可以
在定位器中内置一些扩展元素 用以说明如何定位本地的服务
z UDDI 定位方法 这种方法通过对 UDDI 注册中心的检索来动态确定所需的服务
由于可能在检索过程中会发现一系列符合条件的服务 因此 还需要使用选择策
略来判定返回的搜索结果中哪个 Web 服务将被用于履行商业流程中的角色 合法
的选择策略包括选择列表中的第一个服务 从列表中随机选择服务或使用用户自
定义的选择算法 此外 该方法还允许指明何时执行 UDDI 查询 第一种选择是在
部署时运行查询 在这种情况下 当 WSFL 模型部署到生产环境中时 UDDI 查询
将被静态定位器取代 第二种选择是在启动时运行查询 在这种情况下 将在实
例化流模型的时候执行 UDDI 查询 第三种选择是在首次触发服务供应商的某个操
作时执行 UDDI 查询[183] 这种模式使 WSFL 变得十分灵活和强大 并允许多个服
务提供者通过竞争获取在商业流程中履行一个角色的权利
z 移动定位器机制 这种机制比之 UDDI 定位方式具有更大的灵活性 而定位服务的
信息可以通过定位之前的一些交互过程来获得[183]
除了描述流的组成 流模型还能够把所描述的处理流程当成一个独立完整的 Web 服
务 并通过一定的机制把处理流程中的某些活动输出成为该服务公共接口的操作 从而形
成一个对应于该服务的外部接口 即服务供应商类型 这些工作是通过在活动中嵌入输出
export 元素来完成的 在流模型中 所有需要和外部服务供应商进行交互的活动都需
要输出成为服务公共接口中操作 以便和外界建立联系 这些联系信息主要在全局模型中
描述

5.5.3 全局模型

全局模型是 WSFL 中的另一种关键模型 该模型以一种递归的模式来描述已有 Web 服务


之间的交互关系 并通过组合形成新的服务 与流模型不同的是 该模型中并没有涉及任
何流程的东西 而是描述已有 Web 服务之间的交互关系 例如前面所说的流模型中输出操
作和外部服务供应商接口中操作之间的对应关系 对于全局模型来说 一个流模型所描述
的独立处理过程仅仅是一个独立的 Web 服务 可以说 流模型描述的是 Web 服务的内部行
为 而全局模型描述的是 Web 服务之间的交互关系[183]
这些关系主要是通过插入链 plug link 来完成的 插入链描述了在一个流模型中输
出的操作和一个外部服务供应商接口中的操作之间的交互 这意味着在实现流模型某个特
定活动的过程中两个建立连接的操作之间将发生一定的交互动作 事实上 插入链所连接
的操作并不一定要包含流模型所输出的操作 也就是说 所连接的两个操作可以都和流模
型无关

86
第五章 基于 GeoAgent 的空间信息服务与应用集成

5.6 基于 GeoAgent 的服务流引擎


目前 基于 Agent 的工作流管理系统是工作流技术的一个重要发展方向 已经受到了
越来越多的关注[188] 之所以采用 Agent 技术来构建工作流管理系统 主要是因为[188
189]
z Agent 具有良好的自治性和主动性 一旦接收某个任务之后 就能够主动承担相
应的责任 自主地完成相应的任务 并灵活处理在完成任务过程中可能出现的一
些问题 例如意外情况的处理 或者在需要的时候请求其他 Agent 来协作完成任
务等
z 良好的协商机制 一个工作流的两个并行的活动或是两个工作流之间可能会出于
竞争同一资源而发生冲突 利用多 Agent 的协商技术可以有效的解决这个问题
[188]
z 良好的并行执行与协作机制 Agent 系统具有良好的异步通信机制 Agent 在接受
任务之后 能够与其他 Agent 并行执行 并在执行过程中通过相互之间的协作来
提高执行的效率和灵活性
本论文在分析 Web 服务流语言的基础上 选取了该语言的一个核心子集 并根据系统
的需要对该子集作了一定的扩展 然后在 Aglets 的平台之上 利用 Agent 技术 实现了一
个能够解析和执行基于该语言的服务流的服务流引擎
本论文所采用的服务流语言忽略了 Web 服务流语言 WSFL 中一些相对复杂的部分
对转移条件 Transition Conditions 生命周期接口 Lifecycle Interface 服务
定位器 Locator 和全局模型 Global Models 等方面作了相应的简化 与此同时 为
了让负责活动具体执行的 Agent 能够和基于 GeoAgent 的空间信息服务以直接的方式进行通
信 还允许把基于 GeoAgent 的空间信息服务作为本地服务 使得两者之间能够以 Agent 通
信语言的方式进行交互
在服务流引擎中 主要包含了 FlowAgent 和 ActivityAgent 两类 Agent 其中
FlowAgent 负责管理和控制一个服务流的实现 其主要工作是解析与服务流相关的 WSFL 文
档 确定流模型中的起始活动 控制整个工作流的执行 并返回服务流的最终执行结果
而 ActivityAgent 的主要工作就是完成服务流中的一个具体任务 即负责一个 活动 的
实现 并在活动处理完毕时及时地向相应的 FlowAgent 汇报 在一个服务流的执行过程
中 通常需要一个 FlowAgent 和多个 ActivityAgent 的共同参与
1 WSFL 文档的解析
WSFL 文档的解析就是解析和一个工作流相关的流模型文档和全局模型文档 并把解析
后的各种元素保存在以下的列表之中 以便于工作流执行过程中的利用
z serviceProviderList 服务供应上列表 保存了工作流中涉及的各个服务供应商
及其相关信息
z activityList 活动列表 保存了工作流中涉及的各个活动及其相关信息
z controlLinkList 控制链列表 保存了工作流中涉及的各个控制链及其相关信
z dataLinkList
息 数据链列表 保存了工作流中涉及的各个数据链及其相关信息
z plugLinkList 插入链列表 保存了工作流中涉及的各个插入链及其相关信息

87
北京大学 2002 届博士研究生学位论文

文档的解析过程主要涉及了以下函数
z parseFlowModel 用于解析一个流模型文档
z parseGlobalModel 用以解析一个全局模型文档
z parseServiceProvider 用于解析一个服务供应商元素
z parseServiceLocator 用于解析服务供应商标签中的服务定位器元素
z parseUddiSearchInfo 用 于 解 析 服 务 定 位 器 标 签 中 的 uddi-
api:find_service 元素
z parseControlLink 用于解析一个控制链元素
z parseDataLink 用于解析一个数据链元素
z parseDataLinkMap 用于解析数据链标签中数据映射元素
z parsePlugLink 用于解析一个插入链元素
z parseActivity 用于解析一个活动元素
z parseActivityImplement 用于解析活动标签中的实现元素
z parseActivityInput 用于解析活动标签中的输入元素
z parseActivityOutput 用于解析活动标签中的输出元素
z parseActivityServiceProvider 用于解析活动标签中的供应商元素
2 流模型起始活动的确定
在 WSFL 流模型中 即如果某项活动不是其他活动的后续活动 则该活动为起始活动
而如果某个活动是其他活动的后续活动 则必然存在一个相应的控制链以表达该关系 因
此 可以采用以下规则来确定流模型中的起始活动 如果一个活动不是任何一个控制链的
目标活动 则该活动是一个起始活动 其确定流程如图 5.9 所示
其中活动列表保存了流模型中的所有活动及其相关信息 而起始活动列表则被用来保
存流模型中被确定为起始活动的所有活动及其相关信息 该活动列表也称为已激活活动列
表 在服务流执行的过程中 一旦一个活动被激活 则该活动将被放入到已激活活动列表
之中得到执行
3 服务流的执行
服务流中活动的执行可以采用串行执行的方式 也可以采用并行执行的方式 其中
串行执行的优势是控制简单明了 易于实现 不足是当存在可以并行执行的活动时 这些
本来可以并行执行的活动却只能串行的执行 影响了执行的效率 而并行执行的优势则是
执行效率相对较高 但是其控制比较复杂 实现难度比较高
由于 Agent 的工作模式非常适合于实现活动的并行执行 因此本论文中采用了并行执
行模式 其流程如图 5.10 所示 相应的基本思想如下
z FlowAgent 解析相关文档 并确定起始活动
z 如果起始活动列表 即已触发活动列表 中还有未执行的活动 则 FlowAgent 为
每个活动都创建一个独立执行的 ActivityAgent 并通知该 ActivityAgent 去执
行相应的活动
z 每个 ActivityAgent 实例化后将根据 FlowAgent 给定的任务执行相应的活动 并
在活动执行完毕后把执行的结果以消息的形式告诉 FlowAgent

88
第五章 基于 GeoAgent 的空间信息服务与应用集成

z FlowAgent 在接收到 ActivityAgent 发送的活动处理结果之后 如果活动正常执


行 则 FlowAgent 需要判断是否存在以该活动为源活动的控制链 如果存在这样
的控制链 则需要判断这些控制链的目标活动的启动条件是否成立 如果成立则
把这些目标活动放入到以触发活动列表之中 如果活动执行失败 则 FlowAgent
需要了解失败的原因 并做出相应的处理 例如 FlowAgent 可 以 把
ActivityAgent 反馈回来的失败原因告诉客户 并终止其他 ActivityAgent 的活
动 结束本次服务流的执行
z 如果已触发活动列表不为空 则继续执行从第二步开始的循环

从活动列表中取出一个活动

该活动是否是某
个控制链的目标 是

把活动加入到起始活动列表中

是 活动列表中还
有未判断活动

结束

图 5.9 流模型起始活动确定流程图
4 活动的执行
活动的执行由 ActivityAgent 负责 但该 Agent 并不是具体的实现者 具体的实现者
是与该活动相对应的服务供应商来 ActivityAgent 在接受了执行活动的任务之后 需要
先确定执行活动的具体实现者 然后再通过调用这些实现者的相关功能来执行相应的活
动 在本系统中 可以通过静态定位方法 UDDI 方法和本地方法来确定具体的实现者 如
果具体实现者是通过前两种方法来确定的 则 ActivityAgent 会通过调用 Web 服务的方式
向具体实现者发送服务请求 如果具体实现者是通过本地方法来确定的 则
ActivityAgent 将通过 Agent 之间发送消息的机制来发送服务请求 基于 GeoAgent 的空间
信息服务可以在 UDDI 注册中心进行注册 以便按照 Web 服务的模式进行调用 也可以描述
为本地服务类型 以便和 ActivityAgent 建立直接的交互

89
北京大学 2002 届博士研究生学位论文

已触发活动列
表是否为空 是

否 初始化子 agent

从活动列表中取出一个活动

执行具体活动

创建子 agent 以执行该活动

返回处理结果

是否所有活动都已 结束
经执行完毕 是

等待

接收到某子 agent 返回处理


结果的消息 接收处理结果


是否 还 有以该活
动为源活动的控制链


当前控制链的目标活
动触发条件是否成立

把控制链的目标活动也加
入到已触发活动列表中

图 5.10 活动执行流程图

90
第五章 基于 GeoAgent 的空间信息服务与应用集成

此外 需要说明的是 这里设计和实现的服务流引擎对 Web 服务流的解析和执行是基


于一定的假设前提的 这主要表现为 服务流引擎假设服务流中涉及的所有 Web 服务的访
问入口点都是正确的 并且这些服务都能够正确提供它们在 UDDI 注册中心所注册并承诺的
服务

5.7 基于 GeoAgent 和 Web 服务的空间信息服务及应用集成体系

用户请求
请求解析模块 应用模板库

第五层

Web 服务流

Web 服务流引擎
第四层
UDDI 注册中心 WSFL

UDDI
第三层

基于 GeoAgent 的 Web 服务 SOAP


其他 Web
服务
Web 服务描述语言 WSDL
基于 Web 服务
GeoAgent 基于 GeoAgent 的空间信息服务
的集成模式 第二层

消息 其他基
于 Agent 的
GeoAgent 系统 构件管理器 GeoAgent 系统
应用系统

基于 GeoAgent
的消息机制

功能构件

元数据库
第一层
数据库 数据库 数据库 数据库

图 5.11 基于 GeoAgent 和 Web 服务的空间信息服务及应用集成层次体系

GeoAgent 和 Web 服务的集成和融合 能够为空间信息服务的实现模式和应用模式 为

91
北京大学 2002 届博士研究生学位论文

空间信息处理能力在不同层面的共享和互操作 以及空间信息服务和其他应用之间的集成
提供一个相对完整而有效的体系 如图 5.11 所示 其中
第一层时数据层 用于存储和管理数据 该层利用元数据库来保存和管理各种数据
库 的元数据 并为应用系统提供所需数据的导航信息
第二层为基于 GeoAgent 的空间信息服务层 该层利用 GeoAgent 技术把空间信息处理
能力包装成了 GeoAgent 的模式 通过 GeoAgent 的特点和优势来克服原有地理信息系统的
不足 为空间信息服务的实现提供了更好的实现模式 这突出的表现为该模式使得空间信
息服务能够很好地适应开放式的网络环境 能够提供各种粒度大小的服务 具有良好的共
享和互操作机制 以及具有良好的系统扩展性等方面 其中 共享和互操作主要表现为
通过构件的注册 动态装配机制 以及构件管理器的相关功能 实现地理信息功能构件的
共享和互操作
在该层中 基于 GeoAgent 的空间信息服务能够通过 Agent 的模式与其他基于 Agent 的
系统进行交互 充分发挥 Agent 的优势
第三层为基于 GeoAgent 的 Web 服务层 该层通过 Web 服务描述语言把上一层中基于
GeoAgent 的空间信息服务输出成了标准的 Web 服务 通过 Web 服务的各种相关标准 为基
于 GeoAgent 的空间信息服务与其他 Web 服务或者应用系统的集成提供了开放和标准的模
式 从而实现应用程序跨越企业 平台 实现技术的无缝集成
该层的共享和互操作主要体现在通过 Web 服务的统一描述 发现与集成协议和基于简
单对象访问协议来实现基于 GeoAgent 的空间信息服务与其他空间信息服务或者非空间信息
服务之间在服务层次的共享和互操作
第四层为基于 Web 服务的服务流层 该层通过 Web 服务流语言 WSFL 把处理某个综
合性问题或者完成某个商业流程的一系列 Web 服务联系了起来 形成了一个相对完整的服
务流 并利用一个基于 GeoAgent 的服务流引擎来解析和完成服务流的执行 充分发挥
Agent 技术在工作流引擎实现方面的各种优势
该层能够凭借 Web 服务跨越平台 技术边界的桥梁作用 实现跨越了技术和商业边界
的商业流程建模 从而使得商业流程和利用了大量 Web 服务的交易生命周期能够进行无缝
的集成
第五层是应用层 该层通过一个用户请求的解析模块在理解用户请求的基础上 利用
系统的应用模板库和 UDDI 注册中心保存的服务元数据 生成能够应对用户请求的 Web 服务
流 并提交给 Web 服务流引擎作具体的解析和执行
在理想模式下 系统的用户请求解析模块可以在分析用户请求的基础上完全自动地形
成服务流 甚至可以通过引入界面 Agent Interface Agent 来学习用户的习惯和爱好
并在准确理解用户意图的基础上来形成应对的服务流 当然 这种模式需要解决的问题很
多 难度也很大
在本论文中 目前主要采用了基于应用模板的固定服务流模式和半自动的服务流生成
模式 其中 前者是通过人为的方式来形成面向某些特定请求的固定服务流 该模式要求
定制服务流的人员对服务流中各种服务的功能以及服务之间的交互关系有比较清晰的了
解 后者则是先通过人为的方式来生成应对某些请求的应用模板 然后再由应用程序根据

92
第五章 基于 GeoAgent 的空间信息服务与应用集成

用户的具体请求对应用模板作出局部的调整 最终形成应对请求的服务流 这种模式要求


定制应用模板的人员对模板所用到的各种服务的功能以及服务之间的交互关系有比较清晰
的了解 这部分将在第六章作更进一步的说明

93
第六章 原型系统应用实例 面向事件的旅游预订服务系统

本论文的研究重点在于探讨一种比现有地理信息系统更适合于数字地球和数字城市的
空间信息服务及其应用集成模式 旅游信息服务 作为数字城市中不可或缺的一部分 涉
及了吃 住 行 游 购 娱等多个方面的信息服务 是一个典型的数字城市综合性应
用 而且 在旅游信息服务的过程中 需要涉及大量地理信息服务和其他服务在网络上的
互操作和集成问题 充分反映了数字城市在新的历史时期对地理信息服务的各种要求 因
此 本论文选择旅游信息服务领域作为论文中原型系统的应用领域

6.1 应用领域介绍
近年来 随着经济生活水平的不断提高 人们在满足了吃 穿 住基本的生活需要之
后 开始选择更高的精神追求 旅游消费 这使得旅游业逐渐成为新的国际型大产业
在旅游消费过程中 信息与引导在旅游功能系统中虽然不是直接创造经济效益的环
节 但对开发旅游市场实际上是至关重要的[190] 旅行者在旅行以前需要了解旅游目的地
的信息以制订旅游计划 到了目的地以后还需要根据相关信息解决食 住 行等方面的问
题 这些信息的一个共同特点就是与旅游资源密切相关 离不开自然界的地理要素 而借
助地理信息系统强大的地学分析与空间数据管理功能 将能够为旅游消费者和旅游服务提
供者提供良好的查询 漫游 导航 管理和分析服务
此外 随着旅游业的日趋成熟 随着网络化 信息化的进一步推进和电子商务的不断
发展 旅行者对旅游信息的要求在日趋个性化的同时 也变得越来越综合化 也就是说
旅行者往往希望能够得到与旅游相关的一条龙服务 通过在一个集中平台或者网站的一系
列相关查询和一次预订来获取所需的全部服务 这在客观上需要涉及到旅游相关信息服
务 包括空间信息服务和非空间信息服务的集成问题 并相对集中地体现在旅游预订服务
系统之上
目前 虽然很多旅游网站都提供了相应的旅游预订服务系统 但是这些系统普遍都存
在以下一些问题
z 大多数系统都没有提供与旅游预订相配套的良好地理信息服务 难以给用户直观
的了解 无法支持基于位置的商情分析
z 大多数系统都相对孤立 并没有把空间信息 旅游信息和其它社会经济信息有机
地集成和融合起来 无法形成旅游服务的供应链和价值链
当然 除了上面提到了问题外 现有的旅游预订服务系统通常还存在着只能提供静态
信息 无法实现实时预订 难以实现良好的网上支付等问题 由于本论文实现的系统并不
着眼于解决这些问题 因而在这里不对这些问题作一一列举和进一步讨论
事实上 正象前面所说的 旅游预订的过程和空间信息或地理位置是有着紧密联系
的 空间信息的引入不但能够给预订的客户非常直观的了解 还可以为客户预订过程的决
策提供很多关键性的位置信息 甚至能够为企业用户提供基于位置的商情分析等服务 正
是由于这些原因 在旅游系统中引入空间信息目前已经受到人们极大的重视

94
第六章 原型系统应用实例 面向事件的旅游预订服务系统

然而 利用现有的 WebGIS 虽然在一定程度上能够把地理信息和旅游信息结合起来 并


为旅游服务提供相应的地理信息服务 但是仍然有很大的局限性 这主要表现为
z 旅游系统需要和 WebGIS 进行强耦合的绑定才能够提供相应的表现力
z 现有的 WebGIS 无法以一种松耦合的模式来提供多种粒度的服务 从而良好地服务
与旅游系统中的各种不同需求
z 现有 WebGIS 所提供的地理信息服务和其他应用或者服务之间缺乏良好的互操作机
制和集成机制
而基于 GeoAgent 的空间信息服务及其 Web 服务应用集成模式的引入将能够以一种松耦
合的模式为旅游系统提供多种粒度的空间信息服务 为这些空间信息服务 旅游服务和其
他相关服务之间的互操作和集成提供良好的模式 也为企业用户定制各种服务套餐提供了
相应的支撑

6.2 面向事件的旅游预订服务系统
本论文利用实现的几种基于 GeoAgent 的空间信息服务和 Web 服务流引擎 结合其他相
关服务 实现了一个海口市面向事件的旅游预订服务系统的原型 这里所谓的 事件
是指与旅游相关的 具有特定主题的大型活动或会议 如海南博鳌 亚洲论坛 大会等
需要说明的是 本论文并不着眼于解决旅游预订服务系统中的所有问题 主要是针对
旅游信息服务过程中需要用到的空间信息服务 以及空间信息服务与其它信息服务的集成
问题 并利用本论文所探讨和实现的基于 GeoAgent 的空间信息服务及其基于 Web 服务的应
用集成模式来提供相应的解决方案

旅游事件参加者

旅游事件
活动/会议
旅行社 组织机构

票务中心 旅游景点 酒店/宾馆 交通/车队 娱乐/购物

图 6.1 旅游预订系统业务逻辑

6.2.1 系统业务逻辑

面向事件的旅游预订系统在业务上需要涉及旅行社 票务中心 酒店 宾馆 旅游景

95
北京大学 2002 届博士研究生学位论文

点 交通/车队 娱乐/购物等多个方面 如图 6.1 所示 此外 该系统中还包括了旅游事


件组织者和旅游事件参加者这两个重要的角色

旅游者 事件组织者

企业数据库

面 服务请求解析模块 界面 Agent



基于 GeoAgent 的服务流引擎 服务注册中心



空间信息服务
预 旅游预订服务
基于 GeoAgent 的数据访问服
订 酒店预订服务
基于 GeoAgent 的数据转换服

租车预订服务
务 基于 GeoAgent 的交通信息服

系 数据可视化服务

系统元数据库

地图数据库 交通数据库 旅游数据库

图 6.2 面向事件的旅游预订服务系统体系结构

对于旅游事件组织者来说 在活动/会议召开之前往往需要发布一系列相关的信息 并
确定有哪些参加人员 以什么形式来参加活动 这需要涉及到活动/会议的注册问题 而
且 为了能够为参加者提供相对完整的服务 活动/会议的注册服务中还需要包括相关的旅
游预订服务 以便解决活动参加者在活动期间的食 住 行 游等问题 一种典型的模
式 就是旅游事件组织者把活动/会议注册和旅游预订有机地组合起来 从而为参加者提供
完整的套餐服务
而对于旅游事件参加者来说 则需要在了解活动/会议和旅游相关信息的基础上 根据
自己的习惯和要求选择符合需求的套餐服务 或者制订个性化的活动/会议参加计划 包括
一系列旅游服务的预订

96
第六章 原型系统应用实例 面向事件的旅游预订服务系统

6.2.2 系统体系结构和功能逻辑

面向事件的旅游预订服务系统的体系结构如图 6.2 所示 系统的客户包括了真正消费


旅游服务的旅游事件参加者 以及把旅游服务集成到活动/会议注册服务之中以形成完整服
务包的旅游事件组织者 系统中主要利用了基础地图数据库 交通数据库和旅游信息数据
库等几个数据库 其中 地图数据库存放的主要是海口市的基本地图数据 包括了行政区
域 水系 企事业单位 娱乐等多个基本数据图层 交通数据库存放的是海口市的主要交
通路线和相关信息 而旅游数据库存放的是系统中需要使用到的旅游信息 在本应用实例
中主要用到酒店和宾馆的空间信息和属性信息

服 务 流 引 擎

基于 GeoAgent 的
础 空 数据访问服务 旅游预订服务
间 基于 GeoAgent 的

信 数据转换服务
息 基于 GeoAgent 的 其他服务

服 交通信息服务
活动/会议预订服务
服 务 空间数据可视化服务
其他服务

数 据 服 务

图 6.3 面向事件的旅游预订服务功能逻辑结构

旅游预订服务系统的功能逻辑结构如图 6.3 所示 其中
z 基础设施服务为系统的运行提供了一系列基础性的服务 为 Web 服务机制的实现
提供了相关的支撑功能 包括服务注册 更新 匹配和删除等服务
z 服务流引擎为系统中服务流 或者服务包 的解析和执行提供相应的支撑 采用
的是本论文设计和实现的基于 GeoAgent 的 Web 服务流引擎
z 空间信息服务为旅游预订过程中需要用到的一系列与空间信息有关的服务 在本
系统中 空间信息服务主要来自两个部分 一部分是基于 GeoAgent 的数据访问服
务 数据转换服务 交通信息服务和空间数据可视化服务 这部分服务主要针对
的是交通数据库和旅游数据库 另一部分是基于 MapXtreme Java 的空间数据管理
服务和空间数据可视化服务 如地图图像描绘服务 这部分服务主要针对基础
地图数据库
z 旅游预订服务为旅游者提供了相关地旅游信息查询和预订服务 在本实例中 主
要是针对酒店/宾馆的预订服务
z 其他服务 主要指旅游事件组织者自身所提供的服务 例如活动/会议注册服务
等 这些服务可以注册到旅游预订服务系统的服务注册中心之中 并通过 Web 服
务流语言把这些服务和系统提供的旅游预订服务 空间信息服务等集成在一起
从而形成能够面向特定需求的服务流或者服务包
z 数据服务为系统提供所需的各种数据及其简单的元数据信息

97
北京大学 2002 届博士研究生学位论文

需要说明的是 上面所提到的各种基于 GeoAgent 的空间信息服务 都能够通过 Web 服


务的模式与其它配套服务实现互操作与集成 并能够根据需要充分发挥按需装配和可移动
的优势 例如 本系统所实现的数据访问服务能够先通过空间信息的元数据信息了解需访
问数据的类型 然后迁移到数据所在地 并调用相关的数据访问模块以获取相关数据 而
空间数据转换服务则能够根据需要转换的数据类型调用相应的构件来实现数据的转换 由
于数据访问功能和数据转换功能在不少情况下都紧密相关 因此 在本系统中也有把这两
种服务集成在一起的复合型空间信息服务 图 6.4 给出了一个相对完整的例子 在这个例
子中 GeoAgent 将根据用户的需求截取某个范围内酒店的分布数据并以图示的方式返回给
用户 以 GML 格式为例 主要实现步骤如下

显示酒店分布
系统元数据库
空间信息
反馈酒店分布图 服务器

酒店数据 酒店元数据库
源服务器

数据处理

逻辑 构件注册管理器
构件库

图 6.4 GeoAgent 执行流程示例


z 系统接收用户发出的显示某个范围内酒店分布的请求
z 系统通过元数据库了解酒店数据源的所在地
z 系 统 创 建 一 个 能 够 完 成 数 据 访 问 功 能 和 数 据 转 换 功 能 的 GeoAgent 并让该
GeoAgent 迁移到酒店数据源的所在地
z GeoAgent 通过酒店数据源所在地的元数据库了解到数据源的类型
z GeoAgent 根据数据源的类型发出构件匹配请求 并从构件注册管理器获得所需构
件的有关情况 包括构件基地的网络地址和构件的类名称等
z GeoAgent 以按需装配的方式通过逻辑构件库装载所需的构件
z GeoAgent 在酒店数据源所在地进行相应的操作 并把有关数据转换成 GML 格式
z GeoAgent 把处理结果反馈给用户
此外 系统中基于 MapXtreme Java 的空间信息服务和旅游预订服务 如地图图像描绘
和酒店预订等服务也被包装成了 Web 服务 能够通过 Web 服务的模式与其它服务实现互
操作与集成 并被基于 GeoAgent 的 Web 服务流引擎调用

98
第六章 原型系统应用实例 面向事件的旅游预订服务系统

在旅游预订服务系统中 这些空间信息服务既可以在旅游者选定某项服务之前起到辅
助决策的作用 也可以在旅游者选定了一系列服务之后嵌入到反馈给旅游者的最终处理结
果之中 例如 旅游者可以通过空间信息服务了解酒店的位置情况 或者酒店和活动/会议
地点之间的交通信息来确定最终希望入住的酒店 系统也可以在旅游者选定了特定的酒店
和到达方式之后 在反馈结果中给出旅游者到达点 如飞机场 码头 火车站 与选定酒
店之间的交通信息

6.2.3 系统环境建设

6.2.3.1 系统运行环境

本系统的运行环境如下
z 每个主机都使用 Windows2000 Server 或 WindowsNT Server 4.0
z 每台涉及到空间信息服务的主机上都要安装 GeoAgent 的运行环境 具体地说就是
需要安装一个 Aglets 的运行环境和若干面向特定问题的 GeoAgent 类 构件注册管理器安
装在其中某一台主机上
z 每台涉及到 Web 服务的主机上都要安装 Web 服务支撑软件 本系统采用的是 HP
Bluestone Web Service 1.0 此外 还需要指定一台主机作为服务注册中心
z 各个数据库分别安装在不同的主机上 在存放基础地图数据库的主机上安装了
MapXtreme Java Edition 4.0 用于管理和配置基础地图数据
z 各主机用以太网连接起来 形成局域网

6.2.3.2 数据库建设

在本应用实例中 总共建立了基础地图数据库 交通数据库 旅游信息数据库 旅游


事件信息数据库以及系统元数据库等五个数据库 其中 系统元数据主要保存的是分布式
存放的几个空间数据库的一系列元数据 在系统运行过程中起到数据导航的作用 此外
在每个空间数据库的所在地还建立了更为详细的本地元数据库 而旅游事件信息数据库存
放的是与旅游事件相关的一系列信息 包括活动/会议的注册信息等

6.3 服务流定制

6.3.1 服务流定制说明

本实例面向的是旅游事件的组织者 为了能够给旅游事件参加者提供相对完整的信息
服务 组织者需要把活动/会议的注册服务与相关的旅游预订服务和空间信息服务有机地集
成起来 综合地体现在活动/会议的注册过程之中 这里旅游预订服务主要指酒店/宾馆的
预订服务 而空间信息服务则是指在信息查询和注册结果反馈过程中需要利用到的空间信
息服务 利用这些服务 可以直观地说明酒店的位置 酒店和活动/会议地点之间的交通信
息 酒店的周边情况等等
通常情况下 组织者可以通过以下几种方式把旅游事件的注册服务和相关的旅游预订
服务及空间信息服务集成起来

99
北京大学 2002 届博士研究生学位论文

z 固定式的套餐服务模式 如果用户选择了这种服务 将得到固定的活动/会议注册


服务 指定酒店的预订服务 以及注册结果基于位置的图示 通常情况下 组织
者将为用户准备多种类型的套餐服务
z 有限选择的套餐服务模式 这种模式有些类似于上一种模式 主要的不同在于用
户可以在一定的范围内选择所需的服务 例如 对于酒店预订服务 组织者将给
出几个推荐的酒店 而用户只能在推荐范围内做出选择
z 灵活的自定义模式 在这种模式中 用户可以自由 个性化地选择所有的服务
包括活动/会议注册服务的选择 通过配套的空间信息服务了解酒店的周边情况或
者酒店和活动/会议地点之间的交通信息来确定最终入住的酒店 以及确定内嵌了
空间信息服务的反馈结果的模式等
目前的系统可以实现第一种和第二种模式的服务流定制 至于第三种模式 可以说是
比较理想化的模式 目前还没有实现 这种模式的实现过程需要考虑的问题比较多 例
如 有可能用户选择的酒店并没有提供相应的酒店预订 Web 服务等

6.3.2 服务流定制实现

对于第一种模式即固定式套餐模式来说 旅游事件组织者需要事先定制和套餐相对应
的服务流 一旦用户选择的该套餐 则系统自动解析和执行相应的服务流 这种模式下
组织者定制服务流的过程主要包括两个步骤
z 组织者获得服务套餐中每个服务的访问入口点 对于组织者自身而言 需要把活
动/会议的注册过程输出成为一个标准的 Web 服务 并注册到 UDDI 注册中心以便
通过 Web 服务的模式来调用 对于酒店预订而言 组织者需要通过搜索 UDDI 注册
中心以获取指定酒店的预订服务的访问入口点 对于空间信息服务而言 组织者
需要根据套餐中需要的空间信息服务搜索 UDDI 注册中心以获取相应服务的访问入
口点
z 组织者根据 Web 服务流语言的有关规定 利用上一步所得到的服务访问入口点把
服务套餐中的几个服务按照顺序编制成一个合法的 Web 服务流 从而把活动注册
服务 旅游预订服务和空间信息服务整合在一起 不足的是 目前的系统还没有
提供相应的图形化界面用于定制服务流
这种模式的实现如图 6.5 至图 6.8 所示 其中 图 6.5 是活动/会议注册服务的有关信
息 图 6.6 是酒店预订服务的有关信息 图 6.7 是行车路线服务的有关信息 而图 6.8 是
一个 Web 服务流语言的示意图

100
第六章 原型系统应用实例 面向事件的旅游预订服务系统

图 6.5 会议注册服务有关信息

图 6.6 酒店预订服务有关信息

图 6.7 空间信息服务有关信息

101
北京大学 2002 届博士研究生学位论文

图 6.8 Web 服务流示例

对于有限选择套餐模式来说 组织者需要事先设定服务流的模板 然后根据用户选择


的具体服务在模板的基础上形成最终的服务流 主要步骤包括
z 设定与服务流相关的服务模板 该模板中将包含服务流中固定的部分 并预留相
应的 空位 给可选择的服务
z 对于服务套餐中固定的服务 直接获得服务的访问入口点并集成到服务模板之
中 对于可选的服务 则需要事先确认所有服务都存在相应的 Web 服务访问入口
点 然后应用程序将根据所选服务的相关信息自动搜索 UDDI 注册中心以获得这些
服务的访问入口点
z 应用程序根据用户选择的服务 以及这些服务之间内在的交互与约束关系 例
如 酒店的预订服务必须发生在通过地图显示酒店具体位置的地图服务之前
形成最终的 Web 服务流

6.4 服务流的解析与执行

6.4.1 服务流解析与执行说明

不论旅游者是通过选择一个完整的服务套餐来启动一个服务流 还是通过个性化的服
务选择过程来启动一个服务流 最终都会涉及到服务流的解析和执行问题

6.4.2 服务流解析与执行实现

在本系统中 服务流解析与执行工作是由基于 GeoAgent 的服务流引擎来完成的 例


如 一旦用户选择了一个如图 6.9 所示与 第三届中国海南岛欢乐节 相关的 Web 服务流
则相应的服务流执行过程如下

102
第六章 原型系统应用实例 面向事件的旅游预订服务系统

z 首先 是 完 成 对 Web 服 务 流 的解 析 过 程 为 了 完 成 该任 务 系统将启动一个
FlowAgent 来完成具体的解析工作 并得到与该服务流相关的活动列表 控制链
列表 数据链列表和插入链列表
z 然后是根据解析的结果 实现服务流的并行执行 在本实例中 FlowAgent 首先
通过起始活动的确定方法知道起始活动包括会议注册活动和酒店预订活动 因此
该 FlowAgent 将创建两个 ActivityAgent 并行的完成这两个活动 当酒店预订活
动完成之后 将触发最后的一个空间信息服务 该服务将在客户端显示一张说明
用户本次预订的酒店和相关活动地点的位置分布图片 最后 这些服务的处理结
果将被打包在一起反馈给用户 如图 6.10 至图 6.12 所示
其中 图 6.10 是返回的会议注册和预订结果 图 6.11 给出的是用户即将入住的酒店
和即将参加的所有活动所在地的地理位置说明 图 6.12 给出了详细的地址说明 涉及了系
统中的数据访问服务 数据格式转换服务和可视化服务等

旅游者 活动组织者 酒店服务商 地图服务商

制订服 接收会议
务计划 注册请求 接收酒店
预订请求
分析会议
可以包括
提交会议 注册请求 酒店预订
显示酒店地理位置
注册请求 处理
显示酒店到会议地点
会议注册 交通信息等多种请求
反馈预订
提交酒店 结果
接收地图
预订请求 处理请求

接收酒店 空间信息
预订结果 处理

提交地图 反馈处理
处理请求
结果
接收会议
注册结果 接收地图
处理结果

图 6.9 服务预订流程示例

103
北京大学 2002 届博士研究生学位论文

图 6.10 用户预订结果显示图

图 6.11 酒店与活动地点地理位置说明

104
第六章 原型系统应用实例 面向事件的旅游预订服务系统

图 6.12 酒店与活动地点地址说明

系统在返回服务流执行结果的过程中除了可以根据旅游者的请求返回酒店和活动地点
的位置分布情况之外 还可以通过其他空间信息服务返回以下一些信息 用户入住酒店到
相关活动地点的交通信息 酒店的周边环境 旅游者到达地点 如飞机场 码头 火车
站 到选定酒店的交通信息等 如图 6.13 到图 6.15 所示 其中 图 6.13 给出了用户入住
酒店到相关活动地点的交通信息 包括图 6.14 给出的行车路线图和图 6.15 给出的行车路
线说明 涉及了系统中的数据访问服务 格式转换服务 交通信息服务和可视化服务等

图 6.13 酒店到活动地点的交通信息说明

105
北京大学 2002 届博士研究生学位论文

图 6.14 酒店到活动地点的行车路线图

图 6.15 酒店到活动地点的行车路线说明

106
第六章 原型系统应用实例 面向事件的旅游预订服务系统

6.5 系统应用简要分析
在面向事件的旅游预订服务系统中 本论文所探讨和实现的空间信息服务和 Web 服务
流引擎的应用情况如下
z 基于 GeoAgent 的空间信息服务以及 Web 服务流引擎基本工作正常 能正常完成相
应的功能
z 从现有基于空间信息服务的执行情况看 执行时间相对还是比较长 有待于进一
步改进和完善
z 空间信息服务 旅游信息服务和其他服务跨平台 跨技术的互操作基本正常 但
受现有 Web 服务技术的限制 服务之间传递的数据类型有限
z 作者在设计并行执行的 Web 服务流引擎的同时也设计了一个串行执行的 Web 服务
流引擎 当 Web 服务流中存在多个可以并行执行的分布式活动时 前者的执行效
率明显高于后者
总得来说 设计与实现的原型系统基本实现了本论文的目标 并表现出了良好的发展
前景 但是 由于现有 Agent 技术和 Web 服务技术的限制 以及系统设计和现有实现技术
等方面的局限性 基于 GeoAgent 的空间信息服务以及基于 Web 服务技术的应用集成模式离
真正的实用阶段还有较长的距离 需要在后续工作中结合相关领域的发展做进一步的改进
和完善
需要说明的是 本论文所实现的原型系统 包括各种基于 GeoAgent 的空间信息服务和
Web 服务流引擎 除了能够应用于旅游信息服务领域 还可以应用于数字城市中需要空间
信息服务以及应用集成的其他领域 并为目前正在建设的数字北京等工程提供一定的借鉴
作用 此外 作为应用实例的旅游预订服务系统也能够为正在设计和建设的北京市信息资
源网公众信息服务平台 CISP 提供一定的借鉴

107
第七章 总结与展望

7.1 总结
本论文的研究重点是在地理信息领域中引入 Agent 和 Web 服务的理念 在提出
GeoAgent 概念的基础上 提出了基于 GeoAgent 的空间信息服务 以及这种空间信息服务
基于 Web 服务的应用和集成模式 以克服现有地理信息系统存在的一些不足 使地理信息
系统能够更好地服务于数字地球和数字城市的建设 总的来说 本论文的研究工作主要包
括了以下几个方面
1 数字地球和数字城市在为地理信息系统的发展带来巨大机遇的同时 也对地理信
息系统提出了新的要求 而现有的地理信息系统由于客户/服务器模式所带来的不足和应用
模式上的不足 目前仍然无法应对这些的要求 基于 Agent 的新型分布式计算技术为全面
准确地研究分布计算系统的特点提供了合理的概念模型 一方面强调单个 Agent 的强调智
能体自身的自治性 交互性 反应性和主动性 另一方面强调智能体之间对等 灵活松散
的消息通信机制和协作模式 为打破客户/服务器模式中或为客户或为服务器的束缚带来的
有效的途径 使得分散对等的协同计算成为可能 而 Web 服务 通过一系列标准的应用
能够允许在不同平台上 以不同语言编写的各种程序以基于标准的方式相互通信 实现松
耦合模式的调用和集成 这为解决现有地理信息系统在应用模式上的不足带来了有效途
径 使得地理信息系统和服务能够灵活有效地融入到 IT 领域和数字城市的应用之中 因
此 在地理信息领域中引入 Agent 和 Web 服务的理念是地理信息系统应对数字地球和数字
城市需求的有效途径
2 提出了按需装配 Agent 的概念 给出了按需装配 Agent 的层次结构和独特的体系
结构 分析了这种新型 Agent 的特点和优势
3 在分析可移动 Agent 和按需装配 Agent 的特点及其在地理信息领域的优势的基础
上 针对地理信息领域的特点 提出了新型 Agent GeoAgent 的概念 给出了 GeoAgent
的体系结构 比较了 GeoAgent 系统和一般 Agent 系统在体系结构上的不同 基于 IBM 的
Agent 开发平台 Aglets 设计并实现了 GeoAgent 的通用性模板 以及系统中的构件注册管
理器 在按需装配的基础上 提出了 GeoAgent 迁移与构件迁移相结合的新型迁移策略 提
出了一种应对工作流的解析与执行的 Agent 协作模式 探讨了 Agent 系统的一般性安全问
题 并在分析 Aglets 平台安全策略的基础上给出了 GeoAgent 系统的安全考虑
4 提出了基于 GeoAgent 的空间信息服务的理念 给出了这种空间信息服务的层次
结构 分析了这种空间信息服务的优越性 并根据开放式 GIS 协会的相关标准 给出了一
个基于 GeoAgent 的空间信息服务分类 此外 我们还探讨了基于 GeoAgent 的空间信息服
务的几种应用模式
5 研究和探讨了 GeoAgent 和 Web 服务的几种整合可能 重点分析了如何把一个基
于 GeoAgent 的空间信息服务包装成一个标准的 Web 服务的过程 在分析和研究 Web 服务流
语言 WSFL 的基础上 设计并初步实现了一个基于 GeoAgent 的 Web 服务流引擎 以实现

108
第七章 总结与展望

Web 服务流的解析和执行工作
6 最后 在所实现的空间数据访问服务 空间数据转换服务 公交信息服务 空间
数据可视化服务等空间信息服务和 Web 服务流引擎的基础上 设计并初步实现了一个面向
事件的旅游预订服务系统

7.2 进一步研究
总的来说 Agent 技术和 Web 服务技术在地理信息领域的研究和应用还刚刚起步 本
论文所设计和实现的原型系统距离真正的实用还有相当长的一段距离 在今后的工作中
还需要作进一步研究和完善的内容主要包括
z 需要改进 完善现有基于 GeoAgent 的空间信息服务 并增加其他类型的空间信息
服务 构造相对完整的服务集
z 需要跟踪 Agent 领域和安全领域的最新进展 进一步改进和完善 GeoAgent 系统的
安全和可靠性
z 需要进一步完善 GeoAgent 系统的迁移策略
z 需要进一步改进和完善基于 GeoAgent 的 Web 服务流引擎
z 需要为 Web 服务流的创建提供良好的交互性图形界面
z 需要进一步探讨和推动构件层次的接口标准研究 便于不同服务供应商能够根据
标准的构件接口创建各种能够通过按需装配机制进行共享和互操作的功能构件
z 需要进一步研究和构建地理信息领域基于 GIS 操作语义的公共词汇集 为空间信
息服务基于语义的描述 发现和匹配提供相应的标准
z 需要进一步探讨和推动基于 Agent 的 GIS 互操作规范研究 为各种基于 Agent 的
分布式地理信息系统或者空间信息服务之间以 Agent 通信语言的方式进行交互和
集成提供互操作规范

7.3 展望
二十一世纪 将是地理信息系统发展的黄金时期 一方面 数字地球的提出和大量数
字城市相关研究和工程项目的启动和进一步推动将为地理信息系统带来巨大的发展空间和
良好的机遇 据不完全统计 目前仅我国就已经有近百个城市正在或将要进行有关数字城
市的综合或专业应用建设 从这一点不难看出 数字城市的建设已经开始升温 进入一个
稳步 快速发展的时期[1] 另一方面 信息领域正在发生和即将发生的技术变革将为地理
信息领域的发展带来更为先进的技术 工具和手段 包括先进的网络技术 人工智能技
术 Web 服务技术 三维技术和图象处理技术等等
在地理信息领域中引入 Agent 和 Web 服务的理念和相关技术 能够有效解决现有地理
信息系统在计算模式和应用模式方面的不足 为地理信息系统更好地服务于数字地球和数
字城市的建设提供更为灵活 高效 松散的模式 使得地理信息系统继续在国防建设 环
境监测 城市规划和土地管理等重要领域发挥重要作用的同时 也逐渐地融入到人们的日
常生活之中 为老百姓的日常生活提供各种定位和导航服务 潜移默化地改变人们的生活
方式

109
北京大学 2002 届博士研究生学位论文

随着 Agent 技术 Web 服务技术和其他相关技术的进一步发展和成熟 随着开放式地


理信息系统协会等标准化组织相关研究的进一步发展 相信会有越来越多的 GIS 厂家和研
究人员加入到 GeoAgent 和 Web 服务的研究中来 使得基于 GeoAgent 的各种空间信息服务
及其基于 Web 服务的应用集成模式变得越来越实用 并在数字地球和数字城市的建设中发
挥越来越重要的作用

110
参 考 文 献

参考文献

[1] 赖明等 数字城市导论 中国建筑工业出版社 北京 2001.9


[2] Al Gore, The Digital Earth: Understanding our planet in the 21st Century, January
31, 1998
[3] 陈述彭 刘高焕 杨崇俊 李琦 陈军 周成虎等编 数字地球百问 科学出版社
北京 1999
[4] 徐冠华 构筑 数字地球 促进中国和全球的可持续发展 遥感信息 1999 第 4 期
[5] 承继成 李琦 易善桢 编著 国家空间信息基础设施与数字地球 清华大学出版
社 北京 1999
[6] 赵燕霞 姚敏 数字城市的基本问题 城市发展研究 2001 No.01
[7] 李琦 吴少岩 数字地球 人类认识地球的第三次飞跃 北京大学出版社 北京
[8] 1999
数字地球 北京宣言 遥感信息 1999 年 第 4 期 No.4 1999
[9] 徐冠华 孙枢 陈运泰 吴忠良 迎接 数字地球 的挑战 遥感学报 1999 3
2 pp 85 89
[10]承继成 王宏伟 林珲 李琦 秦其明 走向城市信息化时代 数字城市的理论
方法和应用 中国城市出版社 北京 2001
[11]什么是数字地球 交通与计算机 2001 Vol.19 No.03
[12]林绍福 李琦 数字城市 创建 21 世纪的智能服务平台 计算机科学 已接收
2002 年 7 月发表
[13]李琦 林绍福 创建 21 世纪的智能服务平台 数字城市的理论与实践 2001 年 9 月
pp. 89-104
[14]http://www.digitalcity.com
[15]http://www.bristol.digitalcity.org
[16]http://www.virtuocity.com
[17]http://www.stedengids.net
[18]http://www.digitalcity.gr.jp
[19]数字北京工程总体框架及发展规划 北京 北京市信息化工作办公室 2000 年
[20]赖明等 十五 重大科技项目可行性研究报告----城市规划 建设 管理与服务的
数字化工程科技专项 北京 建设部科技司 2000 年 7 月
[21]李琦 林绍福 数字城市技术框架研究 武汉大学学报・信息科学版 第 27 卷增刊
2002 年 4 月 pp. 9-13
[22]Li Qi, Lin Shao-fu, Research On Digital City Framework Architecture, 2001
International Conferences on Info-tech and Info-net PROCEEDINGS, ICII 2001 –
Beijing October 29 – November 1, 2001, Conferences A 30-36
[23]陈述彭 鲁学军 周成虎 编著 地理信息系统导论 科学出版社 北京 2000

111
北京大学 2002 届博士研究生学位论文

[24]武法东 付宗堂 王小牛等译 Michael N. DeMers 著 地理信息系统基本原理 第


二版 电子工业出版社 北京 2001.10
[25]邬伦 刘瑜 张晶 马修军 韦中亚 田原 地理信息系统 原理 方法和应用
科学出版社 北京 2001
[26]汤国安 赵牡丹 地理信息系统 科学出版社 北京 2000
[27]龚健雅 地理信息系统基础 科学出版社 北京 2001
[28]黄晓斌 基于 Mobile Agent 的分布式应用研究 硕士学位论文 武汉测绘科技大学
1999
[29]陈滢 樊惠娟 王能斌 分布对象技术综述 计算机科学 No.3.1997
[30]侯梅竹 软件产业的机会来了 计算机世界 1998.1.26
[31]杨莉萍 细观 DCOM 与 CORBA 计算机世界 1998.1.19
[32]Object Management Group Inc. The Common Object Request Broker Architecture
and Specification http://www.omg.org/corba/ 1997
[33]郭腾云 GIS 应用体系结构发展演化及 Web GIS 实现方法与应用研究 科技导报
[34]罗英伟
1999.09 基于 Agent 的分布式地理信息系统研究 博士研究生学位论文 北京大学
1999.6
[35]http://www.mapinfo.com/software/mapxtreme/index.html
[36]http://www.intergraph.com
[37]http://www.esri.com/software/internetmaps/index.html
[38]http://www.mapguide.com/
[39]赵波 GIS 与数字地球 测绘工程 Vol.9 No.2 2000 pp 6—9
[40]赫建忠 陈军 数字地球 时代 GIS 的发展 工程勘察 2001 No.02 pp 69—72
[41]杨超伟 WebGIS 的理论 技术与实现方法研究 博士研究生学位论文 北京大学
[42]宋关福
2000 钟耳顺 王尔琪 WebGIS-基于 Internet 的地理信息系统 中国图象图形学
报 1998(3)
[43]李琦 杨超伟 王京傲等 WebGIS 研究 中国图象图形学报 1999(数字地球专刊)
106-108
[44]Jihong Guan Shuigent Zhou Fuling Bian Aoying Zhou 2000 Mobile Agent-
Based Distributed Geographic Information Systems under Internet Environment
IEEE 2000
[45]李琦 黄晓斌 数字城市中基于 GeoAgent 的空间信息服务 中国国际数字城市建设技
术研讨会 广州 2001
[46]王怀民 Agent 技术与分布计算技术 计算机世界 1998.1.26
[47]丛升日 罗英伟 汪小林 伍键 李慕华 许卓群 Geo-Agent 的体系结构 中国图
象图形学报 Vol.4(A) 1999 97-101
[48]Ming-Hsiang Tsou Barbara P. Buttenfield 2000 An Agent-based
Communication Mechanism for Distributing Geographic Information Services on the
Internet GIScience 2000: First International Conference on Geographic
Information Science, Octorber 28-31, Savannah, Georgia.
112
参 考 文 献

Science, Octorber 28-31, Savannah, Georgia.


[49]OGC, Open GIS Consortium, OpenGIS Specification marks new era of geo-information
access, http://www.opengis.org/info/press/pr_simple_features.htm, 1997
[50]ISO/TC211 Secretariat, ISO/TC211 Geographic Information/Geoinformatics,
http://www.Statkart.no/isotc211, 1996
[51]FGDC Work Group, http://www.fgdc.gov/Org/FGDCWG_org.html, 1999
[52]陈爱军 空间信息共享机理与标识语言研究 博士研究生学位论文 北京大学
[53]OGC
2000.5 The OpenGIS Abstract Specification Topic 12: OpenGIS Service
Architecture Version 4.3 http://www.opengis.org/techno/abstract/02-
[54]OGC
112.pdf,
Web Services
2002 Initiative, http://ip.opengis.org/ows/index.html, 2001
[55]ISO/TC211 http://www.opengis.org/techno/abstract/02-112.pdf Geographic
information — Services 2002
[56]OpenGIS Guide Introduction to Interoperable Geoprocessing and the OpenGIS
specification http://www.opengis.org/techno/guide/guide/Guide980629.pdf
Third Edition 1998
[57]Open GIS Consortium, Request For Quotation And Call For Participation In the
OGC Web Services Initiative Initial Operating Capability and Demonstration
Annex B—OGC Web Services Architecture, http://ip.opengis.org/ows/cfp/index.html,
2001
[58]Open GIS Consortium, A Request for Technology In Support of an OGC Web Services
Initiative http://ip.opengis.org/ows/rft/OGC_Web_Services_Initiative_RFT.doc, 2001
[59]OGC Request For Quotation And Call For Participation In the OGC Web Services
Initiative Initial Operating Capability and Demonstration Annex B: OWS1.2
Architecture http://ip.opengis.org/ows1.2/docs/020314_OWS1.2_Annex_B.doc
2002
[60]OGC http://feature.opengis.org/members/archive/arch01/01-022r1.pdf Basic
Service Model V0.0.8 Discussion Paper, 2001
[61]OGC http://feature.opengis.org/members/archive/arch01/01-037.pdf Location
Organizer Folder OGC Discussion Paper 2001
[62]OGC XML for Imagery and Map Annotations (XIMA) OGC Discussion Paper 01-018:
Web Coverage Server http://www.opengis.org/techno/discussions/01-019.pdf
2001
[63]OGC http://www.opengis.org/techno/specs/00-029/GML.html Geography Markup
Language (GML) v2.0 2000
[64]OGC Request For Quotation And Call For Participation In the OGC Web Services
Initiative Initial Operating Capability and Demonstration Annex B: OWS1.2
Architecture Appendix C: OpenGIS® Service Framework
http://ip.opengis.org/ows1.2/docs/020314_OWS1.2_Annex_B_appC.doc 2002

113
北京大学 2002 届博士研究生学位论文

[65]OGC Request For Quotation And Call For Participation In the OGC Web Services
Initiative Initial Operating Capability and Demonstration Annex B: OWS1.2
Architecture Appendix D: OGC Interoperability Program Service Model (IPSM)
http://ip.opengis.org/ows1.2/docs/020314_OWS1.2_Annex_B_appD.doc 2002
[66]OGC Abstract Specification, Topic 12, Service Architecture, Version 4.1,
http://www.opengis.org/public/abstract/01-112.pdf, 2001
[67]W3C, Web Services Description Language, http://www.w3.org/TR/2001/NOTE-
wsdl-20010315, 2001
[68]W3C Simple Object Access Protocol (SOAP) 1.1
http://www.w3.org/TR/2000/NOTE-SOAP-20000508 2000
[69]OGC, Simple Features Specification For OLE/COM, Revision 1.1,
http://www.opengis.org/techno/specs/99-050.pdf, 1999
[70]OGC, Simple Features Specification For CORBA, Revision 1.0,
http://www.opengis.org/public/sfr1/sfcorba_rev_1_0.pdf, 1998
[71]OGC, Simple Features Specification For SQL Revision 1.1
http://www.opengis.org/techno/specs/99-049.pdf, 1999
[72]UDDI.ORG UDDI Executive White Paper 英 文 http://www.uddi-
china.org/pubs/UDDI_Executive_White_Paper.pdf 2000
[73]UDDI.ORG UDDI Technical White Paper 英 文 http://www.uddi-
china.org/pubs/UDDI_Technical_White_Paper.pdf 2000
[74]W3C Web Services Description Language (WSDL) 1.1
http://www.w3.org/TR/wsdl.html 2001
[75]Robin Cover, Web Service Flow Language, www.oasis-open.org/cover/wsfl.html,
2002
[76]Robin Cover, XLANG, http://xml.coverpages.org/xlang.html, 2001
[77]H. S. Nwana and D. T. Nudmu, An Introduction to Agent Technology, in H. S. Nwana
and N. Azarmi (Eds.), Software Agents and Soft Computing: Towards Enhancing
Machine Intelligence, XIV, page 3~26, 1997
[78]史忠植 王文杰 田启家 智能主体研究现状与发展趋势 计算机世界 1998.1.26
[79]Moore, R. A Formal Theory of Knowledge and Action. In Formalizing Common Sense,
Ablex Publishing Corperation, 1990, 319—358
[80]史忠植 智能主体及其应用 科学出版社 北京 2000
[81]Bratman, M. E. Intentions, Plants, and Practical Reason. Harvard Univ. Press,
Cambridge, MA, 1987
[82]Rao A. S. and Georgeff M. P., Formal Models and Decision Procedures for
Multi-Agent Systems. Technical Note 61, Australian Artificial Intelligence
Institute, 1995
[83]Rao A. S. and Georgeff M. P., A Model-Theoretic Approach to the Verification

114
参 考 文 献

of Situated Reasoning Systems. IJCAI-93, 1993, 318—324


[84]吴朝晖 褚凌昆 潘云鹤 支持多 agent 的计算环境 MACE-ZIPE 和一个 CAPP 应用
DES-CAPP 模式识别与人工智能 No.1.1998
[85]阮永韶 王珏 Multi-Agen 系统的社会及生态模型 计算机世界 1998.1.26
[86]沈达阳 林作铨 Internet 上的软件 Agent 计算机科学 No.4.1997
[87]周立柱 赵洪彪 Internet 环境中的软件 Agent 计算机科学 No.3.1999
[88]Maes, P. Artificial life meets entertainment: life like autonomous agents,
Communications of the ACM, Vol38 , No11 1995: 108-114
[89]刘弘 曾广周 林宗楷 软件 Agent 的构筑 计算机科学 No.2.1998
[90]Brooks R A, A Robust Layered Control System for a Mobile Robot, IEEE J Robotics
and Automation, 2, No 1, pp 14—23, 1986
[91]Agre P E and Chapman D, Pengi: An Implementation of a Theory of Activity, Proc
6th National Conf on Artificial Intelligence, San Mateo. CA, Morgan Kaufmann,
pp 268—272, 1987
[92]Agent Platform Special Interest Group Agent Technology Green Paper Version
1.0 Object Management Group http://www.objs.com/agent/index.html 2000
[93]Maes, P., Pattie Maes and Alan Wexelblat, Interface Agents, APRIL 13-18, CHI
96, 1996
[94]IBM Japan Fiji- running aglets in web pages http://www.trl.ibm.co.jp/aglets/
[95]IBM
1998 Tokyo Research Lab Aglets Mobile Java Agents
http://www.trl.ibm.co.jp/aglets 1998
[96]The Agent Society Organization Agent Code http://www.agent.org/pub/ 1998
[97]The Agent Society Organization Agent Product and Research Activities
http://www.agent.org/pub/ 1998
[98]J. E. White Telescript Technology Mobile Agents General Magic White Paper
1996
[99]Robert Gray David Kotz Mobile Agent for mobile computing Technical Report
Department of Computer Science Dartmouth College 1996
[100] Dartmouth University http://www.cs.dartmouth.edu/~agent/search/
Research and Applications 1998
[101] General Magic Odyssey http://www.genmagic.com/agents/ 1998
[102] Dartmouth University Agent Tcl http://www.cs.dartmouth.edu/~agent/
1998
[103] 史忠植 面向主体的软件开发环境—AOSDE 技术报告 中国科学院计算技术研究
所 1998
[104] D. Wong N. Paciorek T. Walsh J. DiCelie M. Young B. Peet Concordia:
An Infrastructure for Collaborating Mobile Agents In Mobile Agents: First
International Workshop Lecture Notes in Computer Science Vol.1219

115
北京大学 2002 届博士研究生学位论文

Springer-Verlag Berlin Germany 1997.


[105] Sargent, p. Back to School for a Brand New ABC. In: The Guardian, 1992
[106] Shoham Y, Agent-Oriented Programming, Artificial Intelligence, 60, No. 1,
pp 51~92, 1993
[107] Michael Wooldridge and Nick Jennings, Intelligent Agents: Theory and
Practice, http://www.csc.liv.ac.uk/~mjw/pubs/ker95/ker95.html
[108] David Parks, Agent-Oriented Programming : A Practical Evaluation,
http://www.cs.berkeley.edu/~davidp/cs263/
[109] Pont, M. J., Moreole, E., Towards a practical Methodology for Agent Oriented
Software Engineering with C++, Technical Report 96-33, Department of
Engineering, Leicester University, 1996
[110] Nicholas R. Jennings and Michael Wooldridge, Proceedings of the 9th European
Workshop on Modelling Autonomous Agents in a Multi-Agent World : Multi-Agent
System Engineering (MAAMAW-99), 2000
[111] Michael Wooldridge, Nicholas R. Jennings, and David Kinnyt A Methodology
for Agent-Oriented Analysis and Design Autonomous Agents ‘99 Seattle WA USA
1999
[112] H. S. Nwana and M. Wooldridge, Software Agent Technologies, in H. S. Nwana
and N. Azarmi (Eds.), Software Agents and Soft Computing: Towards Enhancing
Machine Intelligence, XIV, page 59~78, 1997
[113] 李斌 张东摩 朱梧木贾 面向 AGENT 的程序设计语言 AOPLID 扬州大学学报
Vol.2 No.3 1999
[114] Thomas S R, The PLACA Agent Programming Language, in Wooldridge M and
Jennings N R (Eds) Intelligent Agents—Theories, Architectures, and Languages,
Lecture Notes in Artificial Intelligence 890, Heidelberg, Springer Verlag, 1995
[115] Levesque H J, Reiter R, Lesperance Y, et al. GOLOG: A logic programming
language for dynamic domains. Journal of Logic Programming, 1997, 31(1 3): 59
83
[116] Oustershout J K, Tcl and the Tk Toolkit, New York, Addison Wesley, 1994
[117] McCabe F G, APRIL Reference Manual, Version 2.1, Department of Computer
Science, Imperial College, London, 1995
[118] McCabe F G and Clark K L, APRIL—Agent PRocess Interaction Language, in
Wooldridge M and Jennings N R (Eds) Intelligent Agents—Theories, Architectures,
and Languages, Lecture Notes in Artificial Intelligence 890, Heidelberg,
Springer Verlag, 1995
[119] Agha G:(1986), Actors: A Model of Concurrent Computation in Distributed
Systems, London, MIT Press, 1986
[120] Wavish P and Graham M, A Situated Action Approach to Implementing Characters

116
参 考 文 献

in Computer Games, Applied AI Journal, 10, No.1, pp 53~74, 1996


[121] D.B.Lange and M.Oshima. Programming and Deploying Java Mobile Agents with
Aglets, Addision-Wesley,1998
[122] Dennis Volpano and Geoffrey Smith, Language Issues in Mobile Program
Security, in G. Vigna (Eds): Mobile Agents and Security, LNCS 1419, pp.25~43,
Springer Verlag, 1998
[123] 马俊涛 刘积仁 Mobile Agent 体系结构及关键技术探讨 小型微型计算机系
统 No.2.1998
[124] OMG Agent SIG Agent Technology Green Paper Version 1.0 Object
Management Group http://www.objs.com/agent/index.html 2000
[125] FIPA http://www.fipa.org 2001
[126] 陶先平 吕建 董桓 李新 流动 agent 一种未来的分布计算模式 计算机科
学 No.2.1999
[127] IETF http://www.scguild.com/agentx/ 2001
[128] Jonathan Dale Ebrahim Mamdani Open Standards for Interoperating
Agent-Based Systems http://www.fipa.org/ 2000
[129] FIPA, Personal Travel Assistance Specification, Foundation for Intelligent
Physical Agents, http://www.fipa.org/specs/fipa00080/, 2000
[130] FIPA, Audio/Visual Entertainment and Broadcasting Specification,
Foundation for Intelligent Physical Agents, http://www.fipa.org/specs/fipa00081/,
2000
[131] FIPA, Network Management and Provision Specification, Foundation for
Intelligent Physical Agents, http://www.fipa.org/specs/fipa00082/, 2000
[132] FIPA, Personal Assistant Specification, Foundation for Intelligent
Physical Agents, http://www.fipa.org/specs/fipa00083/, 2000
[133] FIPA, Agent Software Integration Specification, Foundation for Intelligent
Physical Agents, http://www.fipa.org/specs/fipa00079/, 2000
[134] OMG Mobile Agent Facility Specification , version 1.0 Object Management
Group http://www.omg.org 2000
[135] 黄晓斌 李琦 Agent 技术在地理信息领域的作用 计算机科学 已接收 将于
2002 年 9 月发表
[136] Li Qi Huang Xiaobin Wu Shaoyan Applications of Agent Technique on GIS
信息技术与信息网络国际会议 ICII2001 北京 2001
[137] Todd Papaioannou, On the Structuring of Distributed Systems: The Argument
for Mobility, Doctoral Thesis, Loughborough University, February 2000
[138] Danny B. Lange and Mitsuru Oshima, Programming and Deploying Java Mobile
Agents with Aglets, ADDISON-WESLEY, 1998
[139] CONCORDIA --Redefining Mobile Agent Technology Mitsubishi Electric

117
北京大学 2002 届博士研究生学位论文

Information Technology Center America. ITA


http://www.meitca.com/HSL/Projects/Concordia/mobile.htm 1998
[140] Todd Papaioannou Using Mobile Agents To Improve the Alignment Between
Manufacturing and its IT Support Systems Journal of Robotics and Autonomous
Systems, Vol 27, pp 45-57, 1999.
[141] 黄晓斌 李琦 吴少岩 一种按需装配的 Agent 计算机科学 已接收 将于
2001 年 5 月发表
[142] Huang Xiaobin Li Qi Wu Shaoyan Assemble-on-demand Agent 信息技术与
信息网络国际会议 ICII2001 北京 2001
[143] Qiming Chen, Meichun Hsu, Umeshwar Dayal, and Martin Griss, Multi-Agent
Cooperation, Dynamic Workflow and XML for E-Commerce Automation, Agents 2000,
Barcelona Spain, 2000
[144] Q. Chen, P. Chundi, Umesh Dayal, M. Hsu, Dynamic Agents, International
Journal on Cooperative Information Systems, 1999, USA.
[145] Johnny Wong Guy Helmer Venkatraman Naganathan Sriniwas Polavarapu
Vasant Honavar Les Miller SMART Mobile Agent Facility
http://www.cs.iastate.edu/~honavar/Papers/smart.pdf
[146] Qiming Chen, Umesh Dayal, Meichun Hsu, Martin Griss Dynamic-Agents,
Workflow and XML for E-Commerce Automation
http://www.hpl.hp.com/org/stl/dmsd/publications/qchen_EC2000.pdf 2000
[147] http://www.meitca.com/HSL/Projects/Concordia/ Mobile Agent Computing -
-A White Paper Mitsubishi Electric Information Technology Center America
(ITA). 1998.
[148] IBM http://www.trl.ibm.co.jp/aglets Aglets Mobile Java Agents IBM
Tokyo Research Lab 2001
[149] http://www.aglets.org/
[150] Yariv Aridor and Danny B. Lange, Agent Design Patterns:Elements of Agent
Application Design, http://www.acm.org/pubs/articles/proceedings/ai/280765/p108-
aridor/p108-aridor.pdf, 1998
[151] G. Vigna (Eds): Mobile Agents and Security, Lecture Notes in Computer
Science 1419, Springer Verlag, 1998
[152] T. Walsh N. Paciorek D. Wong Security and Reliability in Concordia
In Proceedings of the 31st Annual Hawaii International Conference on System
Sciences (HICSS31) Kohala Coast Big Island Hawaii January 1998
[153] David M. Chess, Security Issues in Mobile Code Systems, in G. Vinga (Ed.),
Mobile Agents and Security, Lecture Notes in Computer Science No.1419, pp. 1-14,
Springer-Verlag, 1998
[154] Tomas Sander and Christian F. Tschudin, Protecting Mobile Agents Against

118
参 考 文 献

Malicious Hosts, in G. Vinga (Ed.), Mobile Agents and Security, Lecture Notes
in Computer Science No.1419, pp. 44-60, Springer-Verlag, 1998
[155] Fritz Hohl, Time Limited Blackbox Security: Protecting Mobile Agents from
Malicious Hosts, in G. Vinga (Ed.), Mobile Agents and Security, Lecture Notes
in Computer Science No.1419, pp. 92-113, Springer-Verlag, 1998
[156] GÜNTER KARJOTH DANNY B. LANGE AND MITSURU OSHIMA A SECURITY MODEL FOR
AGLETS IEEE INTERNET COMPUTING JULY • AUGUST 1997
[157] Mitsuru Oshima, Guenter Karjoth, and Kouichi Ono Aglets Specification 1.1
Draft http://www.trl.ibm.co.jp/aglets/spec11.html 1998
[158] H.S. Nwana, L. Lee and N.R. Jennings, Co-ordination in Multi-Agent Systems, in H.S.
Nwana and N. Azarmi (Eds) Software Agents and Soft Computing: Towards Enhancing
Machine Intelligence, Lecture Notes in Artificial Intelligence 1198 Springer-Verlag, Berlin
and Heidelberg 1996
[159] 计算机世界 认识 EAI http://www2.ccw.com.cn/01/0130/b/0130b18_2.asp
[160]
2001 柴 晓 路 EAI 和 Web 服 务 轻 松 进 行 企 业 应 用 集 成
http://www.ccw.com.cn/htm/center/app/02_2_28_2.asp 2002
[161] 施 晓 军 电 子 商 务 集 成 模 式
http://www.ccidnet.com/html/tech/app/2001/06/04/58_2280.html 2001
[162] Eric Kidd XML-RPC HOWTO http://xmlrpc-c.sourceforge.net/xmlrpc-
howto/xmlrpc-howto.html 2001
[163] Web 服 务 到 底 是 什 么 http://www.techng.com/content.asp?titleid=2453
[164]
2001 Venu Vasudevan http://www.xml.com/pub/a/2001/04/04/webservices/index.html A
Web Services Primer 2001
[165] Web Service 初探 推荐 http://www.techng.com/content.asp?titleid=1685 2001
[166] Roger Wolter XML Web Service 基 础
http://www.microsoft.com/china/msdn/library/Dnwebsrv/html/webservbasics.asp 2001.12
[167] 什么时候应该使用 Web Service http://www.techng.com/redirect.asp?titleid=3336
2001
[168] 为什么需要 Web Service http://www.techng.com/redirect.asp?titleid=3798 2002
[169] Web Services 体系 http://www.techng.com/content.asp?titleid=3797 2002
[170] Carlos C. Tapang Web 服 务 说 明 语 言 (WSDL) 浅 释
http://www.techng.com/redirect.asp?titleid=2728 2001 年 7 月
[171] Erik Christensen Francisco Curbera Greg Meredith Sanjiva Weerawarana
Web 服 务 描 述 语 言 (WSDL) 1.0
http://www.techng.com/redirect.asp?titleid=244 2000.9.25
[172] W3C SOAP Version 1.2 W3C Working Draft 9 July 2001
http://www.w3.org/TR/2001/WD-soap12-20010709/ 2001
[173] 柴晓路 SOAP Version 1.2 W3C Working Draft 9 July 2001 中文

119
北京大学 2002 届博士研究生学位论文

http://www.uddi-china.org/pubs/misc/soap12.htm 2001
[174] XML 领 域 内 的 几 项 重 要 技 术 第 一 讲 XML 与 SOAP
http://www.techng.com/content.asp?titleid=1993 2001.7
[175] 深入探讨 SOAP http://www.techng.com/content.asp?titleid=2308 2001
[176] Eric Kidd XML-RPC vs_ SOAP http://xmlrpc-c.sourceforge.net/xmlrpc-
howto/xmlrpc-howto-soap.html 2001
[177] Simon St. Laurent, Joe Johnston, and Edd Dumbill, Programming Web Services
with XML-RPC, O’REILLY, Sebastopol, CA, 2001
[178] 柴晓路 阮文骏 UDDI Executive White Paper 中文 http://www.uddi-
china.org/pubs/UDDI_Executive_White_Paper_CN.pdf 2001.5
[179] http://www.zdnet.com.cn/developer/rescnter/story/0,2000081634,20026852-
1,00.htm UDDI 技术白皮书 2002
[180] 柴晓路 阮文骏 UDDI Technical White Paper 中文 http://www.uddi-
china.org/pubs/UDDI_Technical_White_Paper_CN.pdf 2001.5
[181] 辛明军 李伟华 何华灿 基于黑板 Agent 结构的应用模块工作流通用模板设
计 计算机工程与应用 2001 Vol.37 No.14
[182] James Snell Web 服务内幕 第 4 部分 介绍 Web 服务流语言 http://www-
900.ibm.com/developerWorks/webservices/ws-ref/ws-ref4/index.shtml 2001
[183] IBM Web Services Flow Language (WSFL 1.0) http://www-
4.ibm.com/software/solutions/webservices/pdf/WSFL.pdf 2001
[184] James Snell, The Web Services Insider, Part 4: Introducing the Web Services
Flow Language, http://www-900.ibm.com/developerWorks/webservices/ws-
peer4/index _eng.shtml, 2001
[185] James Snell Web 服务内幕 第 6 部分 实现 WSFL 中的角色 http://www-
900.ibm.com/developerWorks/webservices/ws-ref/ws-ref6/index.shtml 2001
[186] James Snell The Web services insider, Part5 Getting into the flow
http://www-900.ibm.com/developerWorks/webservices/ws-ref/ws-
ref5/index_eng.shtml 2001
[187] James Snell The Web services insider, Part 6 Implementing roles in WSFL
http://www-900.ibm.com/developerWorks/webservices/ws-ref/ws-
ref6/index_eng.shtml 2001
[188] 王建华 刘卫东 徐万鸿 基于 Agent 的工作流模型的研究与应用 计算机工程
于应用 2001 Vol.37 No.17
[189] 彭中华 肖田元 基于 Internet 的协同产品开发中基于 Agent 的工作流管理系统
框架 计算机工程与应用 2001 Vol.37 No.23
[190] 黄怡然 黄杏元 基于 Internet 的旅游信息系统研究 计算机应用研究
Vol.17 No.1 2000 P.114-117

120
附 录

附录

附录一 WSDL 文档示例


<?xml version="1.0" encoding="UTF-8" ?>
<definitions name="FooSample"
targetNamespace="http://tempuri.org/wsdl/"
xmlns:wsdlns="http://tempuri.org/wsdl/"
xmlns:typens="http://tempuri.org/xsd"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:stk="http://schemas.microsoft.com/soap-toolkit/wsdl-extension"
xmlns="http://schemas.xmlsoap.org/wsdl/">

<types>
<schema targetNamespace="http://tempuri.org/xsd"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
elementFormDefault="qualified" >
</schema>
</types>

<message name="Simple.foo">
<part name="arg" type="xsd:int"/>
</message>

<message name="Simple.fooResponse">
<part name="result" type="xsd:int"/>
</message>

<portType name="SimplePortType">
<operation name="foo" parameterOrder="arg" >
<input message="wsdlns:Simple.foo"/>
<output message="wsdlns:Simple.fooResponse"/>
</operation>
</portType>

<binding name="SimpleBinding" type="wsdlns:SimplePortType">


<stk:binding preferredEncoding="UTF-8" />
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="foo">
<soap:operation soapAction="http://tempuri.org/action/Simple.foo"/>
<input>
<soap:body use="encoded" namespace="http://tempuri.org/message/"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>

121
北京大学 2002 届博士研究生学位论文

<output>
<soap:body use="encoded" namespace="http://tempuri.org/message/"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
</binding>

<service name="FOOSAMPLEService">
<port name="SimplePort" binding="wsdlns:SimpleBinding">
<soap:address location="http://carlos:8080/FooSample/FooSample.asp"/>
</port>
</service>
</definitions>

附录二 SOAP 消息示例

示例 1 带有消息头的请求消息
POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.com
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
SOAPAction: "http://example.org/2001/06/quotes"

<env:Envelope
xmlns:env="http://www.w3.org/2001/06/soap-envelope" >
<env:Header>
<t:Transaction
xmlns:t="http://example.org/2001/06/tx"
env:encodingStyle="http://www.w3.org/2001/06/soap-encoding"
env:mustUnderstand="1" >
5
</t:Transaction>
</env:Header>
<env:Body >
<m:GetLastTradePrice
env:encodingStyle="http://www.w3.org/2001/06/soap-encoding"
xmlns:m="http://example.org/2001/06/quotes" >
<m:symbol>DEF</m:symbol>
</m:GetLastTradePrice>
</env:Body>
</env:Envelope>

示例 2 带有消息头的响应消息
HTTP/1.1 200 OK
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn

122
附 录

<env:Envelope xmlns:env="http://www.w3.org/2001/06/soap-envelope" >


<env:Header>
<t:Transaction xmlns:t="http://example.org/2001/06/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xsi:type="xs:int"
env:encodingStyle="http://www.w3.org/2001/06/soap-encoding"
env:mustUnderstand="1" >
5
</t:Transaction>
</env:Header>
<env:Body>
<m:GetLastTradePriceResponse
env:encodingStyle="http://www.w3.org/2001/06/soap-encoding"
xmlns:m="http://example.org/2001/06/quotes" >
<Price>34.5</Price>
</m:GetLastTradePriceResponse>
</env:Body>
</env:Envelope>

123
北京大学 2002 届博士研究生学位论文

攻读博士期间公开发表的主要学术论文

1. Huang Xiaobin Li Qi Wu Shaoyan Assemble-on-demand Agent 信息技术与信息网


络国际会议 ICII2001 Conferences C p286--291 北京 2001
2. Li Qi Huang Xiaobin Wu Shaoyan Applications of Agent Technique on GIS 信息技
术与信息网络国际会议 ICII2001 Conferences A p238--243 北京 2001
3. 李琦 黄晓斌 数字城市中基于 GeoAgent 的空间信息服务 中国国际数字城市建设
技术研讨会 数字城市的理论与实践 p680--685 2001
4. Shaoyan Wu, Xiaobin Huang, Qi Li, GeoAgents, ISDE’99 1999 年 11 月 p723--727
5. 黄晓斌 吴少岩 基于 GeoAgent 的数字地球自适应网络系统模型 中国图形图像
学报 第四卷[A 版] 第 11 期 1999 年 11 月 p1002--1005
6. 陈爱军 黄晓斌 数字地球中的元数据管理技术 中国图形图像学报 第四卷[A
版] 第 11 期 1999 年 11 月 p996--1001
7. 黄晓斌 李琦 吴少岩 一种按需装配的 Agent 计算机科学 已接收 将于 2002 年
5 月发表
8. 黄晓斌 李琦 Agent 技术在地理信息领域的作用 计算机科学 已接收 将于 2002
年 9 月发表

124
致 谢

致 谢

北大求学的三年 是痛并快乐的三年 既有成功的喜悦和经验 也有失败的惨痛和教

训 这三年有很多的事情值得我去回味 也有很多的老师和同学令我终生难忘

三年来 我的导师李琦教授在学习 工作和生活等各个方面都给予了我无微不至的关

怀与照顾 我的每一次前进和成功都浸透着李老师的心血 从刚进遥感所在专业上的辅

导 到论文选题和研究工作中的悉心指导 再到论文完成过程中的启发 鞭策 指导和帮

助 所有的这一切都令我终生难忘 在此 谨向李老师致以最衷心的感谢 李老师那种对

事业执着追求 勇攀科学高峰 勇于创新 永不言败和日以继夜忘我工作的精神为我树立

了良好的榜样 并将永远激励着我在人生的道路上奋勇拼搏

在论文选题和完成的过程中 作为我博士生指导小组成员的北大计算机系许卓群教

授 遥感所吴少岩副教授 装甲兵工程学院王精业教授和中科院数学应用研究所崔晋川研

究员对我的论文提出了许多建设性的意见 给予了悉心的指导和巨大的帮助 在此谨向他

们表示感谢 同时 也感谢遥感所承继成教授 方裕教授 秦其明教授 北京市信息资源

管理中心的俞全宏总工及北大计算机系何小朝老师对论文提出的宝贵意见和建议

感谢遥感所的所有领导和老师努力营造的良好学术氛围和学习环境 感谢遥感所马蔼

乃教授 徐希孺教授 邬伦教授 陈秀万教授 李京教授 晏磊教授和北大城环系吕斌教

授给予的课程辅导 感谢遥感所办公室主任林茵老师 班主任陈良富老师 毛善君老师和

地空院任小英老师三年来给予了大力支持和帮助

感谢北京市信息资源管理中心的董宝青主任 毛东军助理 任世强助理和其他同仁在

论文完成期间给予的支持和帮助

感谢林绍福同学三年来一如既往的支持和帮助 这段同甘共苦 患难与共的日子为我

留下了美好而难忘的回忆 感谢陈爱军师兄 王浒师姐和夏晖师妹多年来在学习 工作和

生活等方面的大力支持 关怀和帮助 一起度过的快乐时光将是难以忘怀的 感谢工作室

的刁红军博士后 李军博士后和杨超伟 易善桢 夏曙东 刘纯波 江洲 曹健 罗志

清 郭玲玲 甘杰夫 林俞先 胡波 陈韫敏 王长杰 王成远 史文勇 虞盛超 常

磊 王凌云等同学对我的支持和帮助 能够在北大求学并成为数字地球工作室的一名成

员 是我终生的荣幸 是工作室所有成员的共同努力一起创造了一个友好 轻松愉快 积

极向上的学习环境 使得我的论文得以按时完成

125
北京大学 2002 届博士研究生学位论文

感谢我的好朋友毛青松和单寅在论文完成过程中给予的大力支持和帮助 海南省公共

信息网络有限公司的林莉工程师 海口市交通局韩文雄科长 海南省基础地理信息中心吴

雄副主任为论文案例研究所需的电子地图数据的采集和处理提供了大量的帮助 海南在

线 和 海南旅游电子商务网 的邢明总经理为论文的案例研究也提供了重要支持 在

此 向他们表示衷心的感谢

特别感谢二十多年来一直默默支持着我的父亲 母亲和哥哥 没有他们对我的理解

支持 鼓励 关怀和帮助 就没有我的今天 感谢我的嫂嫂这几年来对我的支持 关怀和

帮助 同时也祝我那尚未谋面 可爱的小侄女六一儿童节愉快

谨以此文献给所有支持 帮助和关心我的老师 同学 家人和朋友

黄晓斌
二零零二年六月一日于北大燕园

126

You might also like