张立生
(河北经贸大学信息技术学院,河北石家庄 050051)
移动实时协同标绘系统的设计与实现
张立生
(河北经贸大学信息技术学院,河北石家庄 050051)
传统的标绘系统都是基于固定的单机设备,不能满足用户的随时随地的实时标绘需求。针对此现状,本文针对移动计算环境的特点设计并实现了具有高度实时性的移动实时协同标绘系统,并引入协同感知、并发控制等技术,使得该系统充分适用于高度动态的移动协同环境。由于本系统具有实时地图标绘、协作交流等功能,因此本系统可以用于紧急情况的协同部署、调度指挥以及作战指挥中的部署及态势分析工作,同时在其他协同绘图领域也有着应用前景。
实时标绘;协同感知;移动协同标绘;协同部署
目前,协同标绘系统被广泛应用于军事、科研、教育、医疗等领域。但是,传统的标绘系统都是基于有线网络或单用户模式,不能满足多用户的随时随地的实时标绘需求。
符合移动用户需求的移动实时协同标绘系统应该具有以下特点:
(1)分布式:移动实时协同标绘系统中客户端用户的载体是手持设备,在地理位置上往往分布在不同的区域,保证这些用户随时随地访问系统进行协作;(2)实时性:系统中的服务器一直处于开启状态,等待客户端的连接,并随时接收己经连接的移动客户端发送过来的数据以及对处理消息的转发。当有三个以上终端参与时,通过服务器的转发实现它们之间的实时交流;(3)简易交互:针对手机用户,而目前多数手机进行交互需靠键盘输入,因此移动用户只能通过完成基本图形的绘制,以完成协作;(4)感知性:协作用户能够对协作中其他用户的行为进行感知,以便于协作效率的提高;(5)多用户性:协作任务的完成需要多个移动用户的参与,因此界面需要具有多用户性,数据的共享及操作都具有多用户性。
本文将在系统总体结构、服务器端设计、客户端设计及关键问题进行阐述,并对相关技术问题进行详细介绍。
本系统的构建集无线网络和有线网络于一体,移动客户端(包括手机、PDA、笔记本等)通过无线网络(CDMA、GPRS等)向有线网络中的服务器端发送数据和请求而进行通信。
在典型的移动计算模型中,无线网络的每个无线单元(Wireless Cell)中都有若干个MU(Mobile Unit,移动单元),在MSS(Mobile Support Station,移动基站)的支持下与有线网络进行连接,通过无线通信接口与有线网络中的服务器端进行数据通信。其中,同一无线单元中的MU可以互相进行通信,不同无线单元中的MU也可以互相进行通信,从而对应用系统的分布式提供了支持。
系统采用C/S架构体系进行构建,因此,将系统划分为移动客户端和服务器端两部分。客户端分为协同标绘和协作交流两大模块,其中协同标绘支持最简单的草图绘制和基于加载地图的标绘,协作群组内的用户对标绘内容进行屏幕共享;协作交流模块提供协作群组内的用户进行信息共享和实时交流的功能,从而达到提高实时协作效率的目的。服务器端主要完成对客户端协作的支持和协调,包括对协作交流的管理、用户信息的管理、协作信息的实时监控、协作时发言权控制、并发操作的相应控制策略支持、对标绘图形的控制等功能模块,这些模块通过操作数据库完成对移动客户端的请求进行相应的处理。
移动客户端登录系统后,在协作组内和其他成员间进行协作,在服务器端为每个协作组开启一个线程进行侦听及处理,多个管理线程(图1中的Work Group Admin)由线程池统一管理。客户端和服务器端的通信是通过消息的形式来完成,从而大大减少了在网络中传输的数据量。整个系统的总体结构如图1所示。
移动实时协同标绘系统中采用了“多线程”技术,在协同标绘系统中服务器端始终运行着多个管理线程,处理用户的各种请求。将每一个正在协作的协作组看作一个整体,服务器端为每一个协作组启动一个“组”管理线程,由“组”管理线程负责维护共享数据,并把结果以消息的形式转发给所有协作组内协作的用户,用户根据收到的消息进行具体的响应操作。除了组管理线程,客户端还存在一个与服务器交互的线程,它将用户输入的数据和本身逻辑产生的控制信息传送给服务器,同时接收服务器转发过来的其他用户的数据和控制信息,再根据这些数据和控制信息完成相应的操作。
在共享空间中,为了实现协同标绘时的信息共享而又避免在网络中传输大量的数据,本系统采用消息的形式实现。每个移动客户端都存有基本图元,在绘制和操作(如拖动、修改、删除等)图元时可直接从本地进行调用,只需将相应的操作以消息的形式(包含操作、图元、位置等参数信息)转发给服务器端的组管理线程,该线程完成相应处理后将操作结果转发给协作组内的其他协作用户,其他用户接收到该消息后只需调用本地基本图元根据消息中的参数信息进行相应的更新即可。
本系统对协同感知的实现通过对协作成员的加入/退出的感知、协作组创建者的感知和对用户操作的感知。
客户端通过在线用户列表以及加入退出消息的显示来完成对成员在协作组内行为的感知。当用户加入协作时,在线列表显示加入协作所有用户的名称并在协作信息显示区域显示用户加入信息。当用户退出时,用户列表中不再出现该退出用户信息,同时在协作信息区域显示用户退出信息。用户还可以通过协作用户在线列表查看所有用户信息,包括图像信息和其他数据信息。
系统中协作组的创建者具有较高的权限,通过创建协作组的用户始终显示在成员的最前列来实现该感知功能。而对用户操作的感知,是通过在实时协作信息显示区域,显示当前操作是由哪个用户来进行而实现。
移动实时协同标绘系统支持多用户实时协同工作,则不可避免地要发生多用户的并发操作,也带来了多用户间的协作冲突。而移动终端用户之间使用无线网络传输共享信息,因移动网络的自身不稳定性,以及时延和传输的不可靠性,再加上多用户协同之间的人为因素,都给移动协同带来了很严峻的问题。
对数据加锁是保证数据一致性的常用手段,可分为“乐观锁”和“悲观锁”。前者是基于用户对共享对象的操作较少发生冲突,以申请锁的行为一般都会成功为前提。用户发出请求后立即获得实验锁,并可立即对共享对象进行操作。而后者必须确认加锁成功后才能进一步执行其它操作。“乐观锁”的响应时间很短,而“悲观锁”不利于交互操作。
根据用户在等待请求的批准期间的行为方式,“乐观锁”又被分为“全乐观锁”和“半乐观锁”两种。“全乐观锁”也即普通意义上的乐观锁,在等待期间继续执行其他操作,因此请求不成功时要撤消一系列操作,这样会使用户屏幕内容恢复到多个操作之前显示的内容,视觉上会使用户有不连续的感觉。而“半乐观锁”在申请后获批准前不再进行其它操作,故若请求失败时仅需撤消当前操作。本系统采用“半乐观锁”来解决并发冲突问题,其算法描述如下:
图1 系统的总体结构
本系统中,客户端与服务器间的通信是通过一系列的消息来完成的。在移动网络条件的限制下,为了提高系统的响应时间,将共享对象复制到各用户本地,各用户对共享对象的操作以消息的形式通知其他协作用户,其他用户在接收到消息后在本地执行相应操作,从而保持各用户端共享对象的一致性和达到用户间相互感应的目的。将这些信息分为两类:一类是控制信息,如授权信息、在线用户更新信息、用户的登录/退出等;另一类是数据信息,即图形的内容,如标绘中要用到的圆形、直线、矩形等图元。消息中包含消息类型,能反映出用户的各类操作信息。消息格式如图2所示:
图2 系统消息格式
服务器接收到消息之后,首先识别消息的类型,然后调用消息管理模块的消息解析方法,对消息进行相应处理。然而,存在多种消息类型的条件下,如果使用switch-case语句或if-else语句来逐个判断并处理,不但程序代码显得臃肿,可读性差,若对消息进行改动或扩充则很难做到代码的一致性,因此,实现中采用了消息多态性的模式对每个消息进行封装,也即首先定义一个消息处理的接口,接口中定义消息的属性和处理的方法handle(),每个具体的消息都实现该接口,相应的处理只要重写消息处理方法handle()即可。
本系统中,客户端的设计尽量遵循瘦客户端的要求,多数的逻辑处理都通过消息的形式转发给服务器端进行处理,只有少数的处理功能交给客户端,比如调用程序中本地图元进行相应添加、更改、删除操作。此外,客户端的用户分为普通用户和组创建者两种,组创建者有一定的管理及处理功能,从而减轻服务器端处理所有逻辑的负担。客户端的功能用例图如图3所示。
用户创建协作组成功后,服务器端返回当前在线用户列表,创建者可以选择用户进行召集,接收到召集消息的用户决定是否接受邀请,用户接收邀请后便加入到当前协作,否则不参与此次协作。用户加入到协作组后便可以同组内其他协作者进行协作,在协作工程中,创建者可以对组员进行管理、对发言权进行管理以及将管理权限移交给其他人。协作过程的活动图如图4所示。
图3 客户端用例图
本系统中,服务器端主要负责对不同协作组协作的协调处理和消息转发,其中协调处理包括对不同协作组协作中的并发控制、冲突检测、发言控制;消息转发包括对所有处理消息及广播消息的转发。
系统中所有处理过程都是基于消息的,对客户端的操作请求以消息的形式接收,经过几个模块之间的协调处理完成对消息的处理,并对结果进行相应的组内转发操作。
发言权问题,即在同一时刻只能有一个用户在进行输入操作,并保证对任意用户的响应是实时性的。所有无发言权的协作者可以对服务器端发出申请,要求得到发言权。其中,操作权限申请的流程如图5所示。
本文详细介绍了基于J2ME的移动实时协同标绘系统的设计与实现,重点阐述了系统构建的主要思想,着重论述了实现过程中采用的关键技术。本文实现了移动协同标绘的原型系统,解决了移动协同感知、并发控制、发言控制等技术难点,从而进一步实现了随时随地的多用户实时协作。随着对移动实时协同标绘系统的进一步开发,将会对系统的统计性、扩展性、可用性等方面进行完善。
本文设计的移动实时协同标绘系统支持多个移动用户进行实时的地图标绘、协作交流、文件传输等操作,实现标绘信息的交流及协同感知。因此本系统可以用于紧急情况的协同部署、调度指挥以及作战指挥中的部署及态势分析工作,同时在其他协同绘图领域也有着应用前景。
图4 客户端的活动图
图5 发言权申请流程
[1]雒伟群,何丕廉.协同虚拟实验室关键技术的研究[J].计算机仿真,2004,21(12):252-257.
[2]周蕾.基于CSCW的电子白板在移动警务系统中的研究与设计:[D].郑州.解放军信息工程大学,2007.
[3]武严严,王玉玫.基于以活动为中心的协同标绘集成系统[J].计算机工程与设计,2009,22(30):248-254.
[4]张俊升,李庆华.地图协同标绘感知系统的设计与实现[J].计算机应用,2004,24(06):174-178.
[5]张伟.协同设计技术研究与系统实现:[D].西安.西北大学,2006.
The design and implementation of mobile Real-time collaborative plotting system
ZHANG Li-sheng
(CollegeofInformationTechnology,HebeiUniversityofEconomicsandBusiness,ShijiazhuangHebei050051,China)
Traditional plotting systems are based on fixed stand-alone devices,which can not meet the user's needs of real-time plotting anytime and anywhere.In this paper designed and implemented with the characteristics of mobile computing environment,a highly collaborative mobile real-time plotting system is designed and implemented.The co-awareness,concurrency control techniques are introduced.It makes the system fully fit for highly dynamic mobile collaborative environment.Since the system has functions of real-time chart plotter,collaboration and communication,so the system can be used for deployment of emergency coordination and control,command of the deployment and operational situation analysis,at the same time it also has application prospects in other areas.
Real-time plotting;Co-awareness;Mobile Collaborative Plotting;Collaborative Deployment
TP319
:A
1001-9383(2011)03-0056-05
2011-06-30
张立生(1985-),男,河北秦皇岛人,硕士研究生,研究方向:移动计算技术.