您现在正在浏览:首页 > 职教文章 > 职教论文 > 基于移动Agent的LBS模型的应用

基于移动Agent的LBS模型的应用

日期: 2013/8/25 浏览: 2 来源: 学海网收集整理 作者: 华北电力大学 李晨

Research and Application on the Mobile Agent in LBS System
  
   1.移动Agent平台Aglet
   Aglet是由IBM日本公司开发的移动Agent运行平台,是最早的基于Java的移动Agent开发平台之一。Aglet是移动Agent和applet结合的产物,是具有移动Agent行为的Java Applet。一个Aglet就是一个java实例,它可以在主机间自主迁移。Aglet以线程的形式产生,执行过程中可以被任意中断,当迁移到另一台机器后,继续执行尚未完成的工作[1]。
   Aglet的系统框架由Aglet Runtime层、ATCI(Agent Transport and Communication Interface)层及网络传输层组成。执行分为几个阶段。首先,如果Aglet要发生迁移,先向Runtime层提出申请,申请通过,Runtime层将字节处理过的Aglet交由ATCI层,系统以位流的形式将Aglet传送至目标主机,目标主机接收到后对Aglet反序列化处理并加载执行。
  
   图1.1 Aglet系统框架图
   模式通常表示的是某些具有共性的东西,Aglet系统将这些共性的东西提取出来,构成Aglet中的设计模式,以便重用。Aglet系统中的设计模式主要有三类[42]:巡行模式、任务模式、交互模式[2]。
   2.开发环境
   目前的移动Agent开发平台,有基于java语言的,也有基于非Java语言的。基于非java语言的平台,往往对硬件环境有着比较高的要求,因此,对移动Agent的运行不免造成限制;而基于java的移动Agent平台,具备了java 语言的所有优势:平台无关性,分布式、安全等,而这些正是移动Agent高效运行必不可少的。因此,本文选用java作为开发语言。 本模型开发工具使用Eclipse,数据库系统采用SQL Server 2005,操作系统采用Windows XP。移动Agent执行环境采用IBM公司开发的移动Agent平台Aglet。环境包括多台Android智能手机,作为用户代理终端,一台PC,作为LBS系统服务器,用于移动Agent之间的迁移和通信[3]。
   3.数据库设计
   在本模型中,数据存储中心主要有两个:位置数据库、地图数据库。其中,位置数据库存储用户的当前或之前的位置信息;地图数据库存储地图文件。 其中比较重要的数据表有用户注册信息表、位置信息表、Aglet信息表、地图信息表[4]。
   表3.1 用户注册信息表
   字段名 字段类型 描述
   USERNAM Char(15) 用户名(主键)
   PASSWOR Char(10) 用户密码
   PHONE Char(20) 联系电话
   E-MAIL Char(40) 邮箱地址
   ADDRESS Char(40) 联系地址
   表3.2 位置信息表
   字段名 字段类型 描述
   USERNAME Char(15) 用户名
   TIME Char(20) 时间
   LATITUDE Char(20) 纬度
   LONGITUDE Char(20) 经度
   表3.3 Aglet信息表
   字段名 字段类型 描述
   AGLETID Char(15) AgletID(主键)
   CREATTIME Char(20) 创建时间
   CREATLOCATION Char(20) 创建位置
   表3.4 地图信息表
   字段名 字段类型 描述
   SMID Char(15) 地图ID
   SMNAME Char(40) 地图名称
   SMANGLE Integer 旋转角度
   SMGRANULE Integer(40) 可见节点数
   SMGEOMETRY LONG RAW 比例尺
   SMCOORDINATE Char(20) 坐标系
   SMLENGTH Integer 长度
   SMAREA Interger 面积
   SMCOLORMODE Char(20) 颜色模式
   SMWORKSPACE Char(20) 工作空间
   4.系统的实现
   从横向看,位置信息服务系统主要功能模块包括Agent管理模块、信息查询模块、位置获取模块、预警模块、地图修改模块组成,系统结构图如图4.2所示。
  
   图4.1 系统结构图
   从系统的物理结构上,可以将其划分成四个主要的组成部分:移动终端、移动基站、移动通信网络及位置服务器。在系统涉及到的这几个组成部分中,移动终端通过http协议与服务器进行通信,通信过程涉及两个方向的数据流,一个数据流把数据从服务器发送给客户端,另一个数据流从客户端转送给服务器[5]。系统的物理框架图如下:
  
   图4.2 系统物理框架图
   系统的实现首先需要在服务器及各终端设备安装Aglet运行环境。目前由IBM日本公司开发的Aglet平台最新版本是Aglet2.0.2,其运行支持环境包括Windows X操作系统、Linux Java操作系统、Solaris Java操作系统及Java虚拟机,但不支持手机操作系统Android,因此,本文采用Windows XP环境下安装有Aglet的PC进行模拟,使用端口号4434的平台作为服务器,使用端口号2000的平台作为客户端。
   4.1 管理模块的实现
   在位置服务平台启动之前,首先要搭建移动Agent运行环境,然后创建一个用于协调各移动Agent的管理Agent,用于接收用户需求,派遣功能Agent完成某些任务或对LBS平台实施监控[6]。管理Agent核心代码如下: 管理Agent的核心代码如下:
   ManageAglet.java
   public class ManageAglet extends Aglet implements Runnable{
   public void onCreation(Object init){
   //一个Aglet程序初始化时执行的操作
   }
   public boolean handleMessage(Message msg){
   ……
   try{
   AgletProxy quaryProxy=
   getAgletContext().getAgletProxy(proxy id);
   }
   catch(Exception e){e.printStackTrace();}
   /*根据用户请求查询的信息,激活不同的功能Agent,获取查询
   结构并返回用户*/ operate();
   }}}
   4.2 位置获取模块的实现
   位置周期监控模块功能是对各用户位置进行持续监控。他是基于GPS(全球定位系统)实现的。GPS由空间部分、控制设备及用户设备三部分组成[44],其中空间部分由24颗卫星组成(21颗定位卫星和3颗备份卫星),均匀分布在6个轨道面上,使得任何时间任何地点都可以检测到4颗以上的卫星;控制设备负责收集由卫星发回的信息,并计算获取所需数据;用户设备能够捕获视场内4颗最佳卫星,跟踪卫星运行[7]。
  
   图4.3 手机定位
   4.3 信息查询模块的实现
   通过位置获取模块获得用户位置信息后,信息查询模块依据用户的查询请求,对这些信息进行检索、分析,为用户提供查询服务,根据服务类型的不同可以分为空间分析服务、在线导航服务、友邻服务等。以友邻功能为例,主要由三个类来实现:ManageAglet、NeighbourAgletSlave和NeighbourAglet。当用户有查询需求时,将要查询的手机号码及GPS设备序号生成NeighbourAgletSlave发送到服务器,由ManageAglet负责接收信息并派遣真正负责完成任务的NeighborAgent到位置服务数据中心,查询被请求用户当前位置,之后将查询信息返回ManageAglet,并由ManageAglet返回用户[8]。
  
   图4.4 关键类关系示意图
   本系统采用纯java语言开发,采用SQL Server2005数据库系统。Java提供的JDBC API接口可以实现对数据库的高效访问和操作。
   友邻查询是由客户端发起的,因此,在客户端的Aglet平台上创建neighbourSlaveAglet,弹出友邻查询入口界面,用户输入要查询对象的手机号,点击确定按钮,即可查询到对方的坐标,地址及在地图上的位置。如下图所示:
  
   图4.5 友邻查询结果
   4.4 地图控制模块的实现
   地图控制模块主要实现功能包括地图显示及相关操作、地理信息发生改变时地图文件的实时更新。 地图显示及相关操作主要依托超图公司提供的SuperMap平台及接口,利用它可以方便的将地图信息和自己的数据进行整合。SuperMap有一个最主要的Map类,包含的操作有:设置地图的投影坐标系、设置地图当前可见范围、设置地图当前所关联的工作空间、指定地图放大或缩小比例等[9]。地图在移动设备及在PC中的显示如图:
  
   图4.6 地图在移动设备中的显示 图4.7 地图在PC中的显示
   地图修改模块是为了实现如下功能:当地理环境发生改变时,移动终端的地图文件也要作相应修改,为了避免对整个地图文件进行下载,浪费大量的网络资源,将MapRepairAglet发送到用户终端,完成地图修补工作。
   当位置服务平台地图数据中心数据发生改变时,ManageAglet检测到改变发生并生成MapRepairAglet,MapRepairAglet携带改动的图层文件,以及相应的更新代码,通过移动通信网络迁移到各移动终端,到达之后MapRepairAglet检测原有图层文件,将之替换掉即可。修补完成,MapRepairAglet将修补成功的消息带回位置信息服务平台,ManageAglet接收到消息,确保任务已完成,之后将MapRepairAglet销毁。 地图修改是服务器端发起的操作,因此在端口号为4434的Aglet平台创建地图修改Agent,到达客户端后,首先弹出窗口打印原地图,接着执行修改操作,最后执行repaint(),查看修改完成后的地图[10]。如下图所示:
  
   图4.8 创建MapRepairAglet
  
   图4.9地图修改前效果 图4.10 地图修改后效果
   4.5 预警模块的实现
   预警模块的功能是对用户当前所处环境给出警示,在某些地形较为复杂的地区,防止移动用户进行户外活动时进入到恶劣的地理环境中,如沼泽、沙漠。预警模块根据周期采集到的用户位置信息,分析用户位置走势,如果有进入恶劣地理环境的趋势,即向用户发出警告,提醒用户转移方向[11]。预警模块的实现比较简单,只需将预警内容以消息的形式附带到AlertAglet,发送到对应客户端即可。
   5.结论
   本文将移动Agent引入LBS系统,对构建分布式位置服务具有重要意义,可以有效提高系统效率、节省带宽,为用户提供更加方便快捷的服务。本文首先介绍了传统位置信息服务系统的不足之处,指出将移动Agent技术引入位置服务系统的意义所在。然后介绍了移动Agent的相关内容,包括移动Agent的特性、体系结构及应用领域等,接着介绍了位置服务系统的四个关键技术。在前面理论研究基础上,根据位置信息服务目前的建构及存在问题,本文给出了基于移动Agent的位置服务模型,介绍了模型组成部分及各个Agent的角色划分,最后依靠Aglet平台,对系统进行了简要的模拟和实现。
   摘要:位置服务LBS(Location Based Services)是基于移动互联网和卫星定位系统的空间地理信息增值服务。通过集成GIS、GPS定位及移动互联技术,为用户提供定位、导航、友邻、预警以及紧急救助、移动办公、监控调度等全面的信息服务。本文首先详细阐述移动Agent技术,论述了搭建位置信息服务系统的关键技术。之后设计了基于移动Agent的位置服务模型,阐述了模型组成结构。最后,研究移动Agent平台Aglet,并以Aglet为平台,在某农业综合开发管理信息系统中对基于移动Agent位置信息服务模型进行了应用。
   关键词:位置信息服务,移动Agent,Aglet
  
   Abstract
   LBS(Location Based Services)are geographic information value-added services based on Mobile Internet and Global Positioning System. By integrating GIS, GPS and Mobile Internet Technology, LBS provide users with comprehensive information services including positioning, navigation, neighboring, alarming, emergency relief, mobile office, monitoring and scheduling. LBS offer an important way to popularize geographic information. This paper firstly gives a detailed introduction of Mobile Agent and discusses the key technologies to build up a LBS system. Then we design a novel LBS model based on Mobile Agent and describe the composition of the model. Finally, we research on the Mobile Agent platform Aglet, based on which we apply the above model to a Agricultural Development Information Management System.
   Key Words:LBS, Mobile Agent, Aglet
  
   参考文献
   [1]薛曼芝.移动Agent在位置信息服务系统中的研究[D].杭州:浙江工业大学硕士论文,2008.
   [2]E.A1-Hashel, Bala M.Balachandran.A Comparison of three Agent-Oriented Software Development Methodolo-gies: ROADMAP, Prometheus, and MaSE [J], Knowledge-Based Intelligent Information and Engineering Systems.2007.Vol (46):909-916.
   [3]Axel Burkle, Alice Hertel.Evaluating the Security of Mobile Agent Platforms[C].auto Agent Multi-Agent System.2009:295-311.
   [4]温惠容,王志良,牟世堂等.Java平台下基于移动Agent的信息服务系统[J] .计算机工程2006,32(22) :91-93.
   [5]陈能成,龚健雅,朱欣焰,刘琳.基于J2EE的移动定位服务研究[D].武汉:武汉大学学报•信息科学版,2004:46.
   [6]钟世明,邵锐,张胜等.基于XML的LBS系统架构设计与实现[J] .武汉理工大学学报(交通科学与工程版),2006,30(3) :409-412.
   [7]刘宇,朱仲英.位置信息服务(LBS)体系结构及其关键技术[D].微犁电脑应用,2003:Vol.19,No.5,P5-7.
   [8]Matt Neely. Write Mobile Agents. In .NET To Roam And Interact On Your Network,MSDN.http://msdn.microsoft.com/zh-cn/magazine/cc163649(en-us).aspx.
   [9]梅贤昌.基于J2EE的LBS系统的设计与实现[D].成都:四川大学硕士论文,2004.
   [10]An embeddable mobile agent platform supporting runtime code mobility, Interaction and Coordination of Mobile Agents and Host Systems [J].Information and software technology, 2010, 52(2):185-196.
   [11]邵森.位置服务平台中间件的研究与设计[D] .西北工业大学,2007.

返回顶部