Professional Documents
Culture Documents
题目 基于 GeoAgent 的
空间信息服务与应用集成研究
姓 名 黄晓斌
学 号 19915841
单 位 遥感与地理信息系统研究所
专 业 地图学与地理信息系统
研究方向 空间信息科学与技术
导 师 李琦 教授
二零零二年五月二十日
博士研究生学位论文
题目 基于 GeoAgent 的
空间信息服务与应用集成研究
姓 名 黄晓斌
学 号 19915841
单 位 遥感与地理信息系统研究所
专 业 地图学与地理信息系统
研究方向 空间信息科学与技术
导 师 李琦 教授
版权声明
任何收存和保管本论文各种版本的单位和个人 未经本论文
作者授权 不得对本论文进行复制 修改 发行 出租 改
编等有碍作者著作权益之行为 否则 将可能承担法律责任
二零零二年五月二十日
北 京 大 学 学 位 论 文 原 创 性 声 明
学位论文作者签名 黄晓斌
日期 2002 年 6 月 4 日
中文摘要
中文摘要
I
北京大学 2002 届博士研究生学位论文
II
英文摘要
Research on GeoAgent-Based
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 届博士研究生学位论文
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
第三章 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
目 录
参考文献..........................................................111
附录..............................................................121
攻读博士期间公开发表的主要学术论文................................124
致谢..............................................................125
VII
北京大学 2002 届博士研究生学位论文
图 表 索 引
VIII
图表索引
IX
第一章 前言
1.1 数字地球与数字城市
近半个世纪以来 空间科学技术得到了高速的发展 遥感 地理信息系统 全球定位
系统等领域都相继取得了巨大的突破 特别是全球范围内对地观测系统 国家信息基础设
施和国家空间数据基础设施等重大计划的实施 使得人类对地球不同层面 不同现象的综
合观测能力以及信息的处理 传输和应用能力达到了空前的水平[1] 而数字地球[2]适时
的提出则为人们从系统性 整体性和综合性的角度来观察 认识与监控我们赖以生存的地
球提出了新的视角和思维模式 同时 也为不同学科的研究工作者提出了新的问题 那就
是 数字地球的提出为本学科的发展带来了什么样的机遇和挑战 如何使本学科更好地融
入数字地球 服务于数字地球
1.1.1 数字地球
1
北京大学 2002 届博士研究生学位论文
1.1.2 数字城市
1.1.2.1 数字城市的概念和总体框架
目前 国外的有关文献中基本上对数字城市还没有明确的定义 国内对数字城市的概
念定义综合体现在广义和狭义两个方面[19 20]
2
第一章 前言
综合决
策层
城市综合决策指挥系统
政 技
策 术
政府类 企业类 区域类 公众类 标
法
应用 应用 应用 应用 准
规
规 及
章 应用服务平台 应用层 各
及 种
管 城市数据仓库 应
理 支撑和 用
制 空间数据基础设施 配套层 规
度 范
网络信息基础设施
基础层
信息机构实体
图 1.1 数字城市总体框架
1.1.2.2 数字城市的目标
3
北京大学 2002 届博士研究生学位论文
1.1.2.3 数字城市的技术体系
应用与服务技术体系
标准
支撑平台技术体系
与规范 多元数据分布式管理与融合技术体系
体系 城市空间数据的获取与更新技术体系
网络与传播技术体系
图 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 现有地理信息系统面临的挑战
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 届博士研究生学位论文
应用服务器 应用服务器
1.3.2 从地理信息系统走向地理信息服务
目前 分布计算还处于客户/服务器计算的中间阶段 但由于受到新的应用需求的冲击
已经开始向分散对等的协同计算方向发展 将 Agent 的概念和技术引入分布计算 发展基
于 Agent 的分布计算技术是这一发展阶段的重要特征[46]
Agent 技术之所以能够在基于网络的分布计算领域中发挥着越来越重要的作用 主要
是因为以下两个原因 一方面是 Agent 技术为解决新的分布式应用问题提供了有效途径
另一方面是 Agent 技术为全面准确地研究分布计算系统的特点提供了合理的概念模型[34
46]
从逻辑上讲 一个分布式系统可以定义为由多个相互作用的 Agent 组成的系统 各种
分布式系统的差异主要表现为其中 Agent 的角色和交互方式上的差别[46] 已有的分布式
地理信息系统都基于客户/服务器模式 在这种模式中 系统中的 Agent 或为客户或为服务
8
第一章 前言
由于现有的地理信息系统在应用模式 与其他应用的集成上还存在着很多问题 因此
需要引入一种新模式 即基于 Web 服务 Web Services 的应用模式和集成模式 为基
于 GeoAgent 的空间信息服务在数字地球和数字城市中应用和集成提供有效的途径
Web 服务技术最大的优势是采用的大量的标准化技术 建立在 HTTP 协议 WSDL SOAP
和 UDDI 等标准 以及 XML 等技术之上的 从而允许在不同平台上 以不同语言编写的各种
9
北京大学 2002 届博士研究生学位论文
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
第一章 前言
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
第二章 空间信息服务理论基础
13
北京大学 2002 届博士研究生学位论文
2.4.1 基本服务和数据构建模块抽象体系结构
14
第二章 空间信息服务理论基础
的资源和资源类型
工作流服务 查询
客户服务 构建
数据转换
调用
目录 &注
册服务 容器 持有
查询
关联
调用 存储
&获取
包含 处理
服务 更新 指向
数据 创建
服务
描述
持有 名称
元数据
识别
空间数据
说明
数据
服务
OWS 应用/数据
客户端服务 服务供应商平台 服务平台
服务器断客户应用
•Web制图
网页 •基于Web的图象应用
符号化图形 •决策支持
Web/Portal •…...
数据,
平台
元数据
应用服务
OGC •支撑Web制图
API •支撑基于Web的图象应用
OGC •支撑决策支持
可视化/显示 API •…...
提供经过整合与裁剪的图片
数据服务
OWS •WFS, WMS, WCS
平台
公共体系结构
•服务模型
安全服务 •编码
•Web注册服务
OGC •公共服务
外部应用服务 API
&数据服务
OWS OWS
响应 请求
15
北京大学 2002 届博士研究生学位论文
2.4.2 操作体系结构系统概念
2.4.3 技术体系结构
16
第二章 空间信息服务理论基础
2.5.1 注册服务
17
北京大学 2002 届博士研究生学位论文
z 资源需求这发现关于资源类型和实例的有关信息
z 资源需求者访问或者绑定资源提供者
注册服务定义了一个允许应用程序和服务与注册实例进行交互以发现 访问和管理空
间数据和服务的公共信息模型和标准操作
处理
2.5.2 处理服务
18
第二章 空间信息服务理论基础
2.5.3 描绘服务
2.5.4 数据服务
19
北京大学 2002 届博士研究生学位论文
的处理 服务请求者可以对这些数据作进一步的分析
z 影像存档服务 IAS Image Archive Service 提供对大量数字影像和相关元数
据的存储和访问服务 只要客户拥有相应的权限 就可以增加新的影像或者删除
旧的影像
2.5.5 编码
20
第二章 空间信息服务理论基础
2.6.1 服务角色与操作
中介
2. 发现 1. 发布
请求者 供应商
3. 绑定 4. 链接
供应商
21
北京大学 2002 届博士研究生学位论文
2.6.2 元素
OGC 互操作程序服务模型中主要涉及了服务 接口 操作 消息和绑定等基本构建模
块 元素 如图 2.6 所示 下面是关于这些基本构建模块的简要解释
服务
1..n 绑定
协议
1..n
地址
接口
1..n
1..n
操作
1..n
1..n
消息
22
第二章 空间信息服务理论基础
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 届博士研究生学位论文
2.6.4 服务互操作层次
24
第二章 空间信息服务理论基础
服务描述
WSDL,ISO-19119, etc.
25
北京大学 2002 届博士研究生学位论文
服务发现层是一组用于发布和发现服务供应商的标准和技术 服务描述关注的是如何
访问 Web 服务 而服务发现则使得服务请求者能够发现和利用服务的相关描述 UDDI[72
73]是一个新的定义了服务发现机制的技术 OGC 的目录服务实现规范则定义了支持发现地
理空间内容和服务的服务
最好的整合与工作流 层关注的是允许服务整合的标准和技术 用以支持在组织和信息
团体之内的决策制定 建模 工作流和商业处理整合等
2.6.5 主要相关技术
SOAP
26
第二章 空间信息服务理论基础
27
第三章 Agent
28
第三章 Agent
29
北京大学 2002 届博士研究生学位论文
控制自身的行为
z 反应性 Agent 能够感知到其所在的外部环境 包括用户的界面 实际的物理环
境以及该环境中其它的 Agent 等 并能够针对一些特定的事件作出相应的反
z 交互性
应 Agent 能够与其它对象 包括其它 Agent 或者用户等 以特定的语言进
行各种各样的交互 也能和其它各类 Agent 一起有效地完成各种层次的协同工
z 主动性
作 Agent 能够遵循其承诺采取主动行动 表现出面向目标 包括静态目标
和动态目标 的行为
在上述几个特性中 自治性 反应性和交互性是基本的 人们也称具有这 3 个特性的
计算实体为反应式 Agent 而目前在主流分布计算领域为人们广泛认同的 Agent 一般都具
有上述 4 个特性[46 87]
根据Agent的上述特点 可以用图3.1来抽象地描述其行为
外部环境
作用及反应 作用及反应
自作用 自作用
Agent Agent
交互 协作
任 务 集
30
第三章 Agent
内部状态信息 数据集
3.4.1 根据体系结构分类
31
北京大学 2002 届博士研究生学位论文
3.4.2 根据属性分类
3.4.3 根据功能分类
32
第三章 Agent
3.5.1 电信领域应用
3.5.2 兴趣匹配应用
这类应用是相对较多的一类 而很多这类应用的用户可能并没有察觉到事实上他们正
在使用着兴趣匹配 Agent 这些 Agent 主要都被应用于商业网站 用以向用户提供建议
例如 MIT 多媒体实验室的 Patti Maes 等研究人员在这个领域做了很多的工作 相应的研究
成果也曾被用于亚马逊书店和一些销售唱片和影碟得网站中[92]
3.5.3 用户助理应用
3.5.4 组织结构应用
3.5.5 信息处理应用
信息处理类应用涉及的面比较广 主要包括以下几个方面
3.5.5.1 信息检索
33
北京大学 2002 届博士研究生学位论文
3.5.5.2 信息过滤
3.5.5.3 信息监控
3.5.5.4 决策支持
决策支持系统通常都需要大量综合性的信息以及对信息经过深度加工的结果和知识
在这类系统中 Agent 能够监控系统的一些关键信息 在系统可能出现问题的时候警告相
应的操作员 并在数据挖掘技术和决策支持模型的协助下为复杂的决策提供有效的支持
3.5.5.5 数据源中介
在数据管理系统中可能会遇到很多种不同类型的系统和数据源类型 且系统之间 数
据源之间无法进行相互之间的直接沟通 这类问题在地理信息领域中经常出现 在这种情
况下 Agent 可以作为不同数据源之间的中介 通过设定高层次的语言和通信协议 为不
同数据源之间的互操作提供有效的机制
3.5.6 移动领域应用
34
第三章 Agent
3.6 现有开发平台
虽然目前大部分关于 Agent 技术的研究还停留在研究和实验室阶段 但也已经出现了
一些相对成熟的产品 其中有些已经被成功的应用在商业领域之中 表 3.1 是目前比较主
要的一些 Agent 开发平台/系统[80 92 94~104] 这些产品有的需要购买 有的可以免费
下载 这些平台和系统的出现极大的促进了 Agent 领域的发展
表 3.1 部分已有的开发平台/系统
35
北京大学 2002 届博士研究生学位论文
3.7 程序设计方法和语言
3.7.1 程序设计方法
3.7.2 开发语言
36
第三章 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 届博士研究生学位论文
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 基金会
39
北京大学 2002 届博士研究生学位论文
40
第四章 GeoAgent
41
北京大学 2002 届博士研究生学位论文
42
第四章 GeoAgent
外部环境
作用及反应 作用及反应
自我增强 自我增强
按需装配 按需装配
Agent Agent
交互 协作
构 件 集 任 务 集
图 4.2 单功能螺丝刀
44
第四章 GeoAgent
构件
标准接口
图 4.3 多功能螺丝刀
4.2.2 按需装配 Agent 的特点和优势
45
北京大学 2002 届博士研究生学位论文
内部状态信息 数据集
按需装配 Agent
46
第四章 GeoAgent
空间知识库 外部环境
作用及反应
作用及反应
自迁移 自我增强 自迁移 自我增强
GeoAgent GeoAgent
交互 协作
构 件 集 任 务 集
47
北京大学 2002 届博士研究生学位论文
GeoAgent
空间 内部 迁移 数据集
空间知识库 知识 状态 路线
48
第四章 GeoAgent
Agent 安全
管理器 管理器
多 Agent 系统
Agent Agent
Acl
目录 协作
管理器 管理器
图4.7 一般多Agent系统的体系结构
49
北京大学 2002 届博士研究生学位论文
协作 迁移
管理器 管理器
GeoAgent 安全
管理器 管理器
GeoAgent 系统
GeoAgent GeoAgent
GeoAcl
构件目录
管理器
目录 空间
管理器 知识库
构件库
图4.8 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 具有更好的效果
在这种情况下 就没有必要采用迁移和按需装配等特性
构件管理器
网 络
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 简介
52
第四章 GeoAgent
网络主机
服务器 服务器
执行环境 执行环境
代理 Aglet 代理 Aglet
… …
代理 Aglet 代理 Aglet
… … …
执行环境 执行环境
代理 Aglet 代理 Aglet
… …
代理 Aglet 代理 Aglet
4.6.1.3 通信模型
Aglet
SendMessage()
消息发送方 代理 消息处理器
图 4.11 消息发送与处理
53
北京大学 2002 届博士研究生学位论文
sendFutureMessage() Aglet
代理
消息发送方 getReply() 消息处理器
Future
Reply
图 4.12 异步通信模式
4.6.1.4 事件模型
54
第四章 GeoAgent
的结构作了一定的扩展 如图 4.13 所示
符号说明
Aglet 方法
类
一般化
…
onCreation
handleMessage
GeoAgent
matchComponent
loadClass
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.6.3 构件注册管理器的设计与实现
56
第四章 GeoAgent
GeoAgent coordinatorAgent
消息类型 = 构件注册
注册
消息类型 = 构件匹配
匹配
消息类型 = 构件更新
更新
消息类型 = 构件注销 注销
AccessService FormatTran
构件名称 数据格式 … 构件名称 源数据格式 目标数据格式 …
AccessShp Shp … Shp2Gml Shp Gml …
AccessMif Mif … Mif2Gml Mif Gml …
… …
图 4.16 构件注册管理器
57
北京大学 2002 届博士研究生学位论文
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服务器 数据源服务器
迁移 下载构件
逻辑构件库
创建
本地处理
返回处理结果
59
北京大学 2002 届博士研究生学位论文
一种相应的工作流协作模式
一个工作流 由一系列相关的活动按照一定的机制组合而成 在工作流协作模式中
主要包括负责整个工作流的 FlowAgent 和负责工作流中某个活动的 ActivityAgent 两类
Agent 其中 FlowAgent 负责整个工作流的解析和执行 但是该 Agent 并不具体完成工作
流中的某个活动 工作流中的所有活动都是由 ActivityAgent 完成的 FlowAgent 在完成
工作流的解析之后将根据解析结果不停地创建 ActivityAgent 来负责具体的活动 这些
ActivityAgent 完成不同活动的过程是可以并行的 当 ActivityAgent 完成了交给的任务
之后 将把结果反馈给 FlowAgent 并结束自己的生命周期 而 FlowAgent 在接收到每个
ActivityAgent 的 反 馈 之 后 将会进行相应的判断 并决定是否需要启动新的
ActivityAgent 来完成新的任务 如图 4.19 所示
解析
执行
图 4.19 工作流协作模式
4.9 安全考虑
安全问题是任何系统都需要考虑的一个重要问题 只有在安全上得到了相应的保证
系统才能够得到广大用户的认可 并逐步进入商务领域 Agent 领域也一样存在着需要解
决的安全问题 特别是可移动 Agent 技术的提出和应用 为该领域带来了不少新的问题
近年来 安全技术得到了快速发展 为 Agent 领域安全问题的解决带来了不少有效的解决
途径 解决了很多安全问题 但是 目前在 Agent 领域仍然存在一些安全问题需要做进一
步的研究
60
第四章 GeoAgent
61
北京大学 2002 届博士研究生学位论文
62
第四章 GeoAgent
者和 Agent 用户的身份
z Agent 在执行时的检查和限制 检查主要是指通过语言安全性检查来确保 Agent
在执行过程中不会非法访问内存或者一些私有的信息 限制主要是指利用访问控
制来授权和约束 Agent 的行为和权限
z 可以采用联盟的模式 并确保一个联盟内部的主机 Agent 用户之间是可以相互
信任的 因此 当主机接收到联盟内部的 Agent 时 就可以把该 Agent 当成是可
信任的 Agent 并允许该 Agent 的相关操作
4 网络的安全问题
z 可以通过对 Agent 的限制来预防 Agent 对网络安全问题的威胁 例如可以限制
Agent 在网络中的迁移次数 限制 Agent 在网络中的逗留时间 以及限制 Agent
在网络中的最大克隆次数等
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";
}
64
第四章 GeoAgent
以上两类安全策略信息可以在构件注册管理器中得到集中的体现 当构件属主注册其
构件时 可以指定其构件能够被使用的约束条件 而当 GeoAgent 通过构件注册管理器检索
匹配所需的构件时 构件注册管理器可以利用 Aglet 属主安全策略中关于哪些构件是可信
任的安全信息 以及构件属主安全策略来决定最终反馈给 GeoAgent 的构件
65
第五章 基于 GeoAgent 的空间信息服务与应用集成
66
第五章 基于 GeoAgent 的空间信息服务与应用集成
67
北京大学 2002 届博士研究生学位论文
68
第五章 基于 GeoAgent 的空间信息服务与应用集成
WebServerAgent
Web 应用 Web 服务器
Web 应用 网络
Web 应用
GeoAgent GeoAgent GeoAgent
69
北京大学 2002 届博士研究生学位论文
Web 服务包装
基于 Web 服务
GeoAgent 基于 GeoAgent 的空间信息服务
的集成模式
消息 其他基
于 Agent 的
GeoAgent 系统 构件管理器 GeoAgent 系统
应用系统
基于 GeoAgent
的消息机制
功能构件
图 5.2 基于 GeoAgent 的空间信息服务的应用集成模式
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 绑定
服务请求者 服务供应商
72
第五章 基于 GeoAgent 的空间信息服务与应用集成
Web 服务描述语言 WSDL Web Services Description Language 是 W3C 用于描述 Web
服务的新规范 能够被用来描述一个 Web 服务能够做什么 该服务在什么地方 以及如何
调用该服务 WSDL 利用 XML 格式来描述 Web 服务 把 Web 服务看成是一系列能够对消息
message 操作的端点 endpoints 这些消息包含了面向文档的信息或者面向过程的
信息 WSDL 首先对操作和消息进行抽象描述 然后将其绑定到具体的网络协议和消息格式
上以定义端点 而相关的具体端点组合成了服务[74 170 171]
类型 符号说明
引用
抽
包含
象 消息
定
修饰
义
端口类型 操作
绑定 操作
具
体
说
明
服务 端口
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 简单对象访问协议
74
第五章 基于 GeoAgent 的空间信息服务与应用集成
75
北京大学 2002 届博士研究生学位论文
在目前的电子商务领域中 由于各种企业使用各种各样的方法与他们的客户或合作伙
伴交互产品和 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 的空间信息服务与应用集成
通用服务交互协议 这些层尚未定义
作协
简单对象访问协议 SOAP
议栈
可扩展标记语言 XML
图 5.5 互操作协议栈
统一描述 发现和集成协议 UDDI 包括了 SOAP 消息的 XML schema 和 UDDI 规范 API
的描述 它们两者一起形成了基础的信息模型和交互框架 具有发布各种 Web 服务描述信
息的能力
UDDI 注册使用的核心信息模型由 XML schema 定义 选择 XML 是因为它提供了平台无
关的数据描述并很自然的描述了数据的层次关系 而选择 XML schema 是因为它支持丰富的
数据类型 便捷的描述方式及其按信息模型验证数据的能力
<businessEntiry>
名字 联系方法
描述 标识符 分类
< tModel >
名字
< businessService > 1..n 描述
名字 指向技术规范的 URL 指针
77
北京大学 2002 届博士研究生学位论文
78
第五章 基于 GeoAgent 的空间信息服务与应用集成
79
北京大学 2002 届博士研究生学位论文
入 IT 领域 更好地服务于人类的日常生活提供了良好的机制
GeoAgent 和 Web 服务的集成可以体现在以下几个方面
1 把基于 GeoAgent 的空间信息服务包装成 Web 服务
可以根据 Web 服务的相关标准把基于 GeoAgent 的空间信息服务包装成 Web 服务 以便
其他的服务和应用能够以更加开放 标准的方式来获取相应的空间信息服务
其他Web服务
基于GeoAgent的空间信息网络服务
其他
应用
80
第五章 基于 GeoAgent 的空间信息服务与应用集成
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 角色
图5.8 旅游计划定购流程
83
北京大学 2002 届博士研究生学位论文
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 届博士研究生学位论文
5.5.3 全局模型
86
第五章 基于 GeoAgent 的空间信息服务与应用集成
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 的空间信息服务与应用集成
从活动列表中取出一个活动
该活动是否是某
个控制链的目标 是
把活动加入到起始活动列表中
是 活动列表中还
有未判断活动
结束
图 5.9 流模型起始活动确定流程图
4 活动的执行
活动的执行由 ActivityAgent 负责 但该 Agent 并不是具体的实现者 具体的实现者
是与该活动相对应的服务供应商来 ActivityAgent 在接受了执行活动的任务之后 需要
先确定执行活动的具体实现者 然后再通过调用这些实现者的相关功能来执行相应的活
动 在本系统中 可以通过静态定位方法 UDDI 方法和本地方法来确定具体的实现者 如
果具体实现者是通过前两种方法来确定的 则 ActivityAgent 会通过调用 Web 服务的方式
向具体实现者发送服务请求 如果具体实现者是通过本地方法来确定的 则
ActivityAgent 将通过 Agent 之间发送消息的机制来发送服务请求 基于 GeoAgent 的空间
信息服务可以在 UDDI 注册中心进行注册 以便按照 Web 服务的模式进行调用 也可以描述
为本地服务类型 以便和 ActivityAgent 建立直接的交互
89
北京大学 2002 届博士研究生学位论文
已触发活动列
表是否为空 是
否 初始化子 agent
从活动列表中取出一个活动
执行具体活动
返回处理结果
是否所有活动都已 结束
经执行完毕 是
否
等待
否
是否 还 有以该活
动为源活动的控制链
否
当前控制链的目标活
动触发条件是否成立
把控制链的目标活动也加
入到已触发活动列表中
图 5.10 活动执行流程图
90
第五章 基于 GeoAgent 的空间信息服务与应用集成
用户请求
请求解析模块 应用模板库
第五层
Web 服务流
Web 服务流引擎
第四层
UDDI 注册中心 WSFL
UDDI
第三层
消息 其他基
于 Agent 的
GeoAgent 系统 构件管理器 GeoAgent 系统
应用系统
基于 GeoAgent
的消息机制
功能构件
元数据库
第一层
数据库 数据库 数据库 数据库
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
第六章 原型系统应用实例 面向事件的旅游预订服务系统
6.2 面向事件的旅游预订服务系统
本论文利用实现的几种基于 GeoAgent 的空间信息服务和 Web 服务流引擎 结合其他相
关服务 实现了一个海口市面向事件的旅游预订服务系统的原型 这里所谓的 事件
是指与旅游相关的 具有特定主题的大型活动或会议 如海南博鳌 亚洲论坛 大会等
需要说明的是 本论文并不着眼于解决旅游预订服务系统中的所有问题 主要是针对
旅游信息服务过程中需要用到的空间信息服务 以及空间信息服务与其它信息服务的集成
问题 并利用本论文所探讨和实现的基于 GeoAgent 的空间信息服务及其基于 Web 服务的应
用集成模式来提供相应的解决方案
旅游事件参加者
旅游事件
活动/会议
旅行社 组织机构
图 6.1 旅游预订系统业务逻辑
6.2.1 系统业务逻辑
95
北京大学 2002 届博士研究生学位论文
旅游者 事件组织者
企业数据库
面 服务请求解析模块 界面 Agent
向
事
件
基于 GeoAgent 的服务流引擎 服务注册中心
的
旅
游
空间信息服务
预 旅游预订服务
基于 GeoAgent 的数据访问服
订 酒店预订服务
基于 GeoAgent 的数据转换服
服
租车预订服务
务 基于 GeoAgent 的交通信息服
…
系 数据可视化服务
统
系统元数据库
图 6.2 面向事件的旅游预订服务系统体系结构
对于旅游事件组织者来说 在活动/会议召开之前往往需要发布一系列相关的信息 并
确定有哪些参加人员 以什么形式来参加活动 这需要涉及到活动/会议的注册问题 而
且 为了能够为参加者提供相对完整的服务 活动/会议的注册服务中还需要包括相关的旅
游预订服务 以便解决活动参加者在活动期间的食 住 行 游等问题 一种典型的模
式 就是旅游事件组织者把活动/会议注册和旅游预订有机地组合起来 从而为参加者提供
完整的套餐服务
而对于旅游事件参加者来说 则需要在了解活动/会议和旅游相关信息的基础上 根据
自己的习惯和要求选择符合需求的套餐服务 或者制订个性化的活动/会议参加计划 包括
一系列旅游服务的预订
96
第六章 原型系统应用实例 面向事件的旅游预订服务系统
6.2.2 系统体系结构和功能逻辑
服 务 流 引 擎
基
基于 GeoAgent 的
础 空 数据访问服务 旅游预订服务
间 基于 GeoAgent 的
设
信 数据转换服务
息 基于 GeoAgent 的 其他服务
施
服 交通信息服务
活动/会议预订服务
服 务 空间数据可视化服务
其他服务
务
数 据 服 务
图 6.3 面向事件的旅游预订服务功能逻辑结构
旅游预订服务系统的功能逻辑结构如图 6.3 所示 其中
z 基础设施服务为系统的运行提供了一系列基础性的服务 为 Web 服务机制的实现
提供了相关的支撑功能 包括服务注册 更新 匹配和删除等服务
z 服务流引擎为系统中服务流 或者服务包 的解析和执行提供相应的支撑 采用
的是本论文设计和实现的基于 GeoAgent 的 Web 服务流引擎
z 空间信息服务为旅游预订过程中需要用到的一系列与空间信息有关的服务 在本
系统中 空间信息服务主要来自两个部分 一部分是基于 GeoAgent 的数据访问服
务 数据转换服务 交通信息服务和空间数据可视化服务 这部分服务主要针对
的是交通数据库和旅游数据库 另一部分是基于 MapXtreme Java 的空间数据管理
服务和空间数据可视化服务 如地图图像描绘服务 这部分服务主要针对基础
地图数据库
z 旅游预订服务为旅游者提供了相关地旅游信息查询和预订服务 在本实例中 主
要是针对酒店/宾馆的预订服务
z 其他服务 主要指旅游事件组织者自身所提供的服务 例如活动/会议注册服务
等 这些服务可以注册到旅游预订服务系统的服务注册中心之中 并通过 Web 服
务流语言把这些服务和系统提供的旅游预订服务 空间信息服务等集成在一起
从而形成能够面向特定需求的服务流或者服务包
z 数据服务为系统提供所需的各种数据及其简单的元数据信息
97
北京大学 2002 届博士研究生学位论文
显示酒店分布
系统元数据库
空间信息
反馈酒店分布图 服务器
酒店数据 酒店元数据库
源服务器
数据处理
逻辑 构件注册管理器
构件库
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 届博士研究生学位论文
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.4 服务流的解析与执行
6.4.1 服务流解析与执行说明
不论旅游者是通过选择一个完整的服务套餐来启动一个服务流 还是通过个性化的服
务选择过程来启动一个服务流 最终都会涉及到服务流的解析和执行问题
6.4.2 服务流解析与执行实现
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 届博士研究生学位论文
110
参 考 文 献
参考文献
111
北京大学 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
参 考 文 献
115
北京大学 2002 届博士研究生学位论文
116
参 考 文 献
117
北京大学 2002 届博士研究生学位论文
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
附 录
附录
<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>
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>
示例 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
附 录
123
北京大学 2002 届博士研究生学位论文
攻读博士期间公开发表的主要学术论文
124
致 谢
致 谢
训 这三年有很多的事情值得我去回味 也有很多的老师和同学令我终生难忘
了良好的榜样 并将永远激励着我在人生的道路上奋勇拼搏
在论文选题和完成的过程中 作为我博士生指导小组成员的北大计算机系许卓群教
授 遥感所吴少岩副教授 装甲兵工程学院王精业教授和中科院数学应用研究所崔晋川研
管理中心的俞全宏总工及北大计算机系何小朝老师对论文提出的宝贵意见和建议
感谢遥感所的所有领导和老师努力营造的良好学术氛围和学习环境 感谢遥感所马蔼
地空院任小英老师三年来给予了大力支持和帮助
论文完成期间给予的支持和帮助
磊 王凌云等同学对我的支持和帮助 能够在北大求学并成为数字地球工作室的一名成
极向上的学习环境 使得我的论文得以按时完成
125
北京大学 2002 届博士研究生学位论文
感谢我的好朋友毛青松和单寅在论文完成过程中给予的大力支持和帮助 海南省公共
雄副主任为论文案例研究所需的电子地图数据的采集和处理提供了大量的帮助 海南在
线 和 海南旅游电子商务网 的邢明总经理为论文的案例研究也提供了重要支持 在
此 向他们表示衷心的感谢
帮助 同时也祝我那尚未谋面 可爱的小侄女六一儿童节愉快
黄晓斌
二零零二年六月一日于北大燕园
126