基于移动Agent的地理信息服务设计与实现
2012-11-14曹振宇刘建川
曹振宇,杨 军,甘 泉,刘建川
(1.武汉大学测绘遥感信息工程国家重点实验室,湖北武汉430079;2.四川省基础地理信息中心,四川成都610041)
基于移动Agent的地理信息服务设计与实现
曹振宇1,2,杨 军2,甘 泉2,刘建川2
(1.武汉大学测绘遥感信息工程国家重点实验室,湖北武汉430079;2.四川省基础地理信息中心,四川成都610041)
首先从提升基础地理信息公共服务平台地理信息服务能力的角度,引入移动Agent技术,并设计了基于移动Agent的地理信息服务模型;然后,以库容计算为例,在.NET平台下研究基于移动Agent的地理信息服务实现过程;最后,对在基础地理信息公共服务平台上发布基于移动Agent的地理信息服务提出展望。
移动Agent;地理信息服务;.NET平台
一、引 言
测绘的发展正经历一场由地图生产为主转向以地理信息服务为主的变革[1]。可以说地理信息服务为测绘成果应用开辟了新途径。测绘部门不再仅仅是地理信息数据的生产和管理者,而应转变为地理信息服务的提供者和维护者。近年来,国家、省、市级公众版基础地理信息公共平台陆续上线,开始为政府、企业和公众提供地理信息服务。这些基础地理信息公共平台主要提供的地理信息服务是二维和三维地图浏览、地名搜索定位、距离和面积量算、驾车路径规划等。有些平台还为专业用户提供API调用地理信息服务以便其搭建自己的业务系统。
国内外开展地理信息服务研究与应用比较多,主要集中在基于Web Services和网格的地理信息服务方面。杨崇俊从网格和Web Services结合的角度,提出了计算环境和数据环境结合实现地理信息服务的途径[2];王家耀指出网格服务为实现信息资源共享和协同解决问题提供了新的机遇和技术途径,并分析了Web Services和Grid Service间的相互联系和区别[3]。Comito基于网格技术建立面向服务分布式空间数据查询系统[4]。而在地理信息公共服务平台建设研究方面的文献可以看出其地理信息服务主要是基于Web Services技术,并且是在基于面向服务架构(SOA)下,遵循OGC服务规范来实现的[5-7]。
由于基于Web Services地理信息服务存在着数据和功能相对绑定、处理功能相对简单等不足,从而导致目前在线的地理信息公共服务平台提供的地理处理功能服务简单,不能按用户需要提供动态地理信息服务。本文研究在基础地理信息公共服务平台构建的基础上,引入移动 Agent(mobile agent,MA)技术,建立支持分布异构地理信息服务环境,在数据资源、计算资源共享的层次上提供地理信息服务,并整合数据服务提供方、计算服务提供方和用户之间的关系。
二、基于MA的地理信息服务
Agent起源于人工智能领域,是能代表用户完成指定任务的软件实体,它的基本特性有自治性、反应性、主动性和环境适应性。而MA除了具有上述基本特性外,另一个重要特性就是可以在它的宿主主机间相互迁移。将MA技术引入到地理信息服务领域,使MA成为地理信息服务的载体,具有强大的优势[8-9]。
1)提升数据安全,减少地理信息服务中的数据传输量。MA的本质是将计算移动到数据端,直接在数据端进行本地处理,只返回最终结果,从而避免了大量中间数据在通信两端的传输。
2)提升地理信息服务质量。因为MA支持离线计算,当派出 Agent之后,可以断开网络连接,Agent会在网络上自主地运行,当Agent完成任务之后,会将结果反馈给用户,而复杂的GIS功能计算往往需要很长的时间消耗。正是因为计算过程可以是离线计算,因此可以避免网络故障而导致的服务失败,从而提高了服务的稳健性。
3)具有动态适应性。MA能和其运行环境进行交互,感知环境的变化,并自主地、快速地作出反应,使整个系统始终保持在最优状态。
4)提供个性化地理信息服务。使用MA技术,用户可以根据服务器端提供的API编写满足自己特定需要的Agent,然后发送到相应的环境中运行,利用MAE数据资源和计算资源提供地理信息服务。这种方式可以有效地增加服务器功能的伸缩性。
国内利用MA技术实现地理信息服务的研究比较多,如李琦提出了基于空间智能体GeoAgent的地理信息服务模式[8],该模式能够充分利用空间智能体GeoAgent的特点和优势;方志祥、李清泉研究了基于MA的地理信息服务及其模型,并对MA地理信息服务潜在的领域进行了探讨[9]。
本文研究的重点是从地理信息服务提供者的角度,研究了MA地理信息服务模型,设计了基于MA的地理信息服务框架,并利用.NET远程对象和反射技术开发了基于MA的地理信息服务原型系统。最后对在地理信息公共服务平台上发布基于MA的地理信息服务提出了展望。
三、基于MA的地理信息服务模型
1.基于MA的地理信息服务模型
MA是一种新型的分布式计算技术。作为一个能完成特定任务的软件实体,MA的网络结构如图1所示,MA在网络中必须驻留在宿主系统中,并根据任务在网络中自由移动,选择相应的服务器主机完成计算任务。
图1 MA及其相应网络环境
一个基于MA的地理信息服务系统由MA、移动Agent的宿主(mobile agent host,MAH)、移动Agent环境(mobile agent environments,MAE)和移动Agent管理中心(mobile agent manager,MAM)等几个部分构成。MAM负责MA和MAE资源的管理,其服务过程模型如图2所示。用户向MA管理中心提出服务请求,MA管理中心在MA和MAE资源列表的基础上进行任务求解,选择组织MA,并将MA派遣到相应的MAE中计算,得到结果后返回给用户。
图2 基于MA的地理信息服务模型
2.基于MA地理信息服务框架体系设计
根据基于MA的地理信息服务模型,笔者设计了基于MA的地理信息服务框架,框架包括3个部分,如图3所示。
1)MAM。MAM由MA目录管理模块、MA地址管理模块、MA通信管理模块、MA安全管理模块和MA支撑环境管理模块构成。MA目录管理模块负责MA功能和描述性信息的发布和管理;MA通信管理模块负责MA通信管理,如通信协议和通信通道管理;MA地址管理主要管理MA驻留的宿主在网络中的位置;MA安全管理模块负责服务过程中安全策略的管理;MA支撑环境管理模块负责MA数据环境和软、硬件环境的管理。
2)MA及MAH系统。MA由计算服务提供方提供,在网络上任意节点间移动。MA的功能、运行环境、通信等描述性信息在MAM注册和发布。
3)(MAE)系统。MAE是MA运行的支撑环境,包括数据环境、软件环境和硬件环境,相关信息在MAM中注册和发布。
图3 基于MA的地理信息服务框架体系
3.Agent实现
MA已经从理论走入应用,可以选择基于传统的解释性语言、基于Java语言或者CORBA平台来实现。现有的比较典型的商业Agent开发环境有General Magic公司的Odysses、IBM公司的Aglet和Recursion公司的Voyager。但由于这几种商业开发环境和主流开发语言的兼容性问题制约了它们的普及和发展。MA系统开发面临着通信建立、代码移动、程序集加载运行等主要难题,而微软.NET平台中的Remoting和反射技术,则为系统开发提供了很好的环境支撑,简化了开发过程。本文选择.NET平台实现基于MA的地理信息服务,利用.NET提供的反射机制和通信机制,实现了基于反射机制的MA在新的运行环境中的重构,即实现了Agent在不同主机间的迁移,从而完成基于MA的地理信息服务系统的开发。
本文参照微软MSDN中给出的MA系统的实现方法实现了基于MA的地理信息服务系统[10]。系统主要包括MA基类、AgentHost类。MA类作为所有MA的基类定义成一个抽象类,它包含Run和Move两个方法,能实现移动MA的移动和工作。具体的MA子类继承MA基类,并完善基类中Run方法。以库容计算为例,MA基类和MA子类的关系如图4所示,类 GISAgent为 MA基类,GISAgent_ CalStorageCapacity为库容计算子类。工作时MA子类先调用Move方法迁移到目标主机,然后调用Run方法完成库容计算工作。
图4 MA类设计图
而AgentHost类作为MA接待类,包含一个Host-Agent方法,以实现主机间的通信和远程对象的调用。
本文在以上类库设计的基础上开发原型系统,实现了库容计算地理信息服务,用户界面如图5所示。
图5 基于MA库容计算服务界面
四、结束语
本文讨论了基于MA地理信息服务的优势,在.NET平台下设计了基于MA的地理信息服务模型,并以库容计算为例,实现了基于MA的地理信息服务。试验表明,在.NET平台下开发的基于MA的地理信息服务能实现MA的迁移和工作,在节约网络带宽、突破数据迁移限制等情况下实现了地理信息服务,从而提高了地理信息服务能力。
本文研究的主要目的是提出一个基于MA的地理信息服务框架,整合数据服务提供方、计算服务提供方和用户之间的关系,创新地理信息服务的模式,提升省级地理信息公共服务平台服务水平。用户、数据提供方、计算提供方(MA提供方)都可以将本身资源在省级地理信息公共服务平台上注册。用户在登录后,既是地理信息服务的接受方,同时作为基于MA的地理信息服务系统网络中的一个节点,又可以容许MA迁移到自身进行访问,转而作为数据资源和计算资源的提供方。随着计算机网络和人工智能技术的进一步发展,基于MA的地理信息服务必将进一步整合数据服务提供方、计算服务提供方和用户资源之间的关系,具有很大的商业价值和应用前景。
[1] 李德仁,邵振峰.信息化测绘的本质是服务[J].测绘通报,2008(5):1-4.
[2] 杨崇俊.网格及其对地理信息服务的影响[J].地理信息世界,2003,1(1):20-22.
[3] 王家耀.地理信息系统的发展与发展中的地理信息系统[J].中国工程科学,2009,11(2):10-16.
[4] COMITO C,GOUNARIS A,SAKELLARIOU R,et.al.A Service-oriented System for Distributed Data Querying and Integration on Grids[J].Future Generation Computer Systems,2009,25(5):511-524.
[5] 贾文珏,龚健雅,李斌.Web要素服务的优化方法[J].测绘学报,2005,34(2):169-174.
[6] 袁存忠.基础地理信息公共平台的设计和实现[J].地理空间信息,2009,7(1):22-24.
[7] 周耀学,卫东,邱文.省级地理信息公共服务平台服务体系建设[J].测绘通报,2011(8):23-25.
[8] 李琦,黄晓斌.基于GeoAgent的地理信息服务[J].测绘通报,2002(6):44-47.
[9] 方志祥,李清泉.基于Mobile Agent的地理信息动态服务模型[J].测绘通报,2005(3):13-15.
[10] MATT N.Write Mobile Agents In.NET to Roam and Interact on Your Network[EB/OL].[2012-02-02].http:∥msdn.microsoft.com/en-us/magazine/cc163649.aspx.
Design and Implementation of Mobile Agent Based Geographic Information Service
CAO Zhenyu,YANG Jun,GAN Quan,LIU Jianchuan
0494-0911(2012)08-0018-03
P208
B
2012-02-02
曹振宇(1978—),男,湖南岳阳人,高级工程师,博士生,主要从事地理信息服务、多维地理信息数据模型方面的研究工作。