测量仪表
1 引言
随着移动通信技术的迅速发展以及移动计算终端的大量普及,使得人们随时随地访问任何所需信息成为可能。对于传统的分布式计算以及分布式数据库的研究都是基于有线网络和固定主机的,采用了一些如固定网络连接、对等通信代价、主机结点固定不变等默认的隐含假设。若计算结点在自由移动的过程中与网络建立连接,则上述这些假设条件不再成立,由此需要一种更加复杂、灵活的分布式计算环境,因此研究移动计算以及移动数据库成为一个新兴的热点领域。
移动Agent作为一种前沿技术,也是计算机领域的一个研究热点。近年来国内外对移动Agent技术研究的投入都非常大,并且在移动Agent的并行计算、移动Agent系统安全、多Agent建模等方面都有突出成果。移动Agent作为一种可携带执行代码和数据的迁移对象,带有一定的智能性,能够自主结合客户机和服务器的知识,并在服务器上进行推理以确定自己的下一步工作。其次移动Agent对于用户没有实时网络连接的要求,仅仅是在发送请求和接受结果时需要网络连接,可以大幅减少无线通信网络上的通信流量,基于移动Agent具有的这些优势,在嵌入式移动数据库中引入移动Agent技术并进行研究探讨,具有一定的价值。
2 移动Agent技术
移动Agent是一个代替人或其它程序执行某种任务的程序,它在复杂的网络系统中能自主地从一台主机移动到另一台主机,该程序能够选择何时、何地移动,在移动时该程序可以根据要求挂起其运行,然后转移到网络的其它地方重新开始或继续执行,最后返回结果和消息。移动Agent具有自治性、移动性、智能性、异步计算性等特性。
从实现技术的角度看,移动Agent系统主要由移动Agent平台(MAE)和移动Agent(MA) 组成。移动Agent平台是一个虚拟机,通常被称为移动Agent服务器,为移动Agent的移动和执行提供执行环境,为移动Agent的发射、接收、恢复、安全管理和服务调用等提供基础设备设施。移动Agent携带完成计算任务所需的代码和数据以及Agent的运行状态,在网络上不同主机之间迁移并完成相应的动作,移动Agent迁移示意图如图1。
将移动Agent技术应用于嵌入式移动数据库主要具有如下一些优势:
1)移动Agent可以减少通信网上的流量。将任务请求通过Agent移动到服务器端执行,使得Agent不经过网络传输这个中间环节而直接访问服务器资源,任务在远地执行完后直接返回结果,从而降低系统对网络带宽的依赖,这恰好适合移动计算环境所具有的断接性的特点;2)移动Agent可以异步计算。移动Agent不需要统一的调度,由用户创建的移动Agent可以异步的在不同网络节点上运行,对于相对复杂的任务,用户还可以创建多个Agent,同时在相同或不同的节点上运行,不需要客户端与主机永久连接。也恰好适合移动计算环境所具有的低带宽和弱可靠性的特点;3)移动Agent可以方便的访问异构数据库。在数据库系统中存在一些异构的环境,此时如果采用传统的数据库访问方式,往往需要客户端预先安装多种类型的数据库连接驱动程序,并在访问时执行这些连接驱动程序,这会大大增加移动终端的负载[2],因此,传统的数据库访问方式很难适用于移动计算环境中移动数据库的访问,但由于移动Agent本身的特性却使得访问异构数据库较其他方式更加方便;4)移动Agent可以方便的实现负载平衡。移动Agent能携带自身的代码从一个平台移动到另一个平台,在目的主机上也无需预先安装就能运行,因此移动Agent可以方便的实现负载平衡。
3、 基于移动Agent的移动数据库的体系结构
传统的基于Agent的移动数据库的体系结构一般采用如图2所示的客户层、客户Agent层、服务器Agent层、服务器层的体系结构,该结构能对移动数据库的数据复制与缓存、断接期间的管理、减少客户与服务器之间的通信量等方面都能提供有效的支持。但该体系结构对于服务器之间的协同工作、客户端在网络中的自由移动等方面不能提供理想的支持,对此,本文采用一种更加灵活的体系结构。该体系结构对传统的基于Agent的移动数据库的体系结构模型进行扩充,在客户机和服务器之间加入一个新的层次移动Agent层。如图3所示。
其中客户Agent层主要负责本地缓存以及本地事物的管理;移动Agent层根据客户Agent提出的任务请求完成相应的功能并返回结果;服务器Agent主要负责提供数据访问接口。基于移动Agent的移动数据库的体系结构可设计成如图4所示。[page]
注: MSS: Mobile Support Station(具有无线通信接口的支持移动计算机的固定节点)
SVR: Server(固定主机) LDB: Local Database(本地数据库)
MA: Mobile Agent (移动代理) MC: Mobile Client(移动客户)
4 基于移动Agent的嵌入式移动数据库的研究侧重点
1) 移动Agent的协同。移动Agent具有自主性,同时也具有协作性,能够相互合作,从而高效透明的使用网络上的资源。通常各种数据资源存储在各个不同的网络节点上,随着数据库技术的发展,很多应用都涉及到访问不同位置的数据库,对此,用户可以创建多个Agent,让其分散到网络的多个节点上去执行,当多个移动Agent共同完成一个任务时,Agent之间需要进行通信,移动Agent系统可采用的通信方式有很多,比如 RPC,RMI等,在具体的代理系统中,通信的实现方式则有很大的差别。如:Cornell大学的Tocama通过一个携带数据的briefcase来交换数据;General Magic公司的Telescript中Agent只能在会话点中用本地方法调用的方式相互通信; Dartmouth学院的D’Agent既支持底层的基于字节流的消息传递方式,也支持基于Agent层次的高层通信方式。
2) 移动Agent的重定位。移动Agent在完成客户Agent所提出的任务时,由于所需的资源可能分布在网络不同的节点上, Agent需要在网络中移动。在移动数据库系统中,移动客户端的位置通常不断发生变化,这时,Agent也需要根据移动客户端的位置重新在网络中进行定位,从而缩短与移动客户端的距离,达到减少通信时间以及网络通信开销的目的。对于移动Agent的重定位方法可以采取如下方式:(1)通过使用位置服务器。当移动Agent创建时,在相应的位置服务器中注册当前位置,当移动Agent发生位置变化时,要在位置服务器中更新自己的位置信息,要定位所需的移动Agent通过向位置服务器查询即可。(2)通过跟踪移动Agent的移动路径。移动Agent迁移时,记录下移动Agent的迁移路径,从而可以根据路径来定位所需的移动Agent。(3)通过发送广播消息,采取与局域网中ARP协议类似的方法,向系统内所有节点发送广播消息,由符合的条件的移动 Agent发回响应消息。
3) 并发操作的控制。嵌入式移动数据库在实际应用中必须解决好数据的一致性,在移动数据库系统中,有时存在多个Agent并发访问共享信息的情况,为了保证数据的一致性,需要对并发操作进行正确的控制,目的是为了避免出现使数据处于不一致状态的并发事物调度。在基于移动Agent的系统中,既要维护本地数据库系统的一致性,也要维护网络节点上数据库系统的一致性。并发控制可以借助DBMS本身的功能来完成,因为目前一般的数据库管理系统都有较好的并发控制功能,同时也可借助一些开发工具来实现并发控制。相对于传统的数据库系统,Agent并发控制相对较复杂,可能存在网络节点上的数据库不完全接受Agent的控制、本地数据库与网络节点上的数据库之间存在相互约束关系等一些影响因素。
4)故障的恢复。在基于移动Agent的移动数据库系统中,故障恢复较传统的数据库系统也相对复杂一些,需要恢复网络节点上的各个数据库中的数据、恢复每个Agent的本地数据以及运行时的环境。对于网络节点上的各个数据库以及每个Agent的本地数据的故障恢复可以借助DBMS本身的功能来完成。对于Agent运行时的环境的恢复可以通过专门为对应的Agent新建一个数据库来维护运行时的环境,当Agent需要对数据进行更新操作时,先更新在为其新建的那个数据库中,当整个事物完成时再提交数据给本地数据库。
5 结束语
针对移动数据库具有的移动性、断接性、网络条件多样性、网络通信的非对称性、移动计算机的弱电源能力等特性,将移动Agent技术引入到移动数据库中,移动Agent计算模式能有效的减少网络通信流量、减少访问服务器的延迟、支持断接操作、支持异步计算等,使得移动Agent的优点得到了很大的发挥,有助于实现移动数据库的各种操作。由于移动Agent技术本身还处于发展过程中,应用移动Agent来完善移动数据库技术还有待于更加深入的研究和探索。
本文作者创新点:
鉴于在分布式数据库中使用的多层架构技术在访问量大的情况下能较好的适应数据库的各种操作,笔者在移动数据库中借鉴其相关技术同时利用了移动Agent的特点,并对由此产生的部分问题探讨了其初步的解决方式。
责任编辑:gt
全部0条评论
快来发表一下你的评论吧 !