基于三层架构的移动协同应用平台的研究

2012-12-27 01:05张立生郝艳梅
河北省科学院学报 2012年1期
关键词:服务器端群组消息

张立生,李 亮,郝艳梅

(河北经贸大学研究生学院,河北石家庄 050061)

基于三层架构的移动协同应用平台的研究

张立生,李 亮,郝艳梅

(河北经贸大学研究生学院,河北石家庄 050061)

传统的协同应用平台多是基于有线网络环境,现有的少数支持移动计算环境的应用平台已不能更好的满足多用户多服务的需求,从而不能很好的对移动群组协同提供支撑。针对此现状,本文结合移动协同应用平台的应用特点,对构建应用平台的两种体系架构进行了综合分析,并给出了基于三层可扩展体系架构的应用平台框架。此外,对三层架构下的移动协同应用平台构建的关键问题进行了详细阐述。

移动计算;移动群组协同;三层可扩展体系架构;移动协同应用平台

自20世纪90年代以来,移动计算这种以移动性为主要特征的、全新的计算模式已逐渐将人们从具有时空局限性的、传统的桌面计算中解放出来,使得人们能够以更为自然、本能的方式进行工作、学习。

然而,因无线网络特性及移动群组的自身行为特性,使得为移动群组协作提供支撑的移动协同应用平台的构建较为复杂,且从已有研究工作中发现很少具有普遍适用意义的应用平台构建框架,因而构建具有普遍适用性的移动协同应用平台框架有一定的现实意义。

针对此现状,笔者通过对移动协同应用平台的特点的研究,探讨了移动协同应用平台构建的体系架构,并得出三层可扩展的应用平台体系架构。最后,对三层体系架构应用平台构建中的关键问题及解决方案进行了详细阐述。

1 移动协同应用平台的应用特点

一般来说,符合移动用户需求的移动协同应用平台应该具有以下特点:

(1)分布式:移动协同应用平台中客户端用户的载体是手机、PDA等移动设备,不受时间、空间等条件的限制,用户可以通过手持设备随时随地访问平台进行协作,而且这些移动用户在地理位置上往往分布在不同的区域,所以平台在整体上具有分布式的特点;

(2)实时性:移动协同应用平台中的服务器一直处于开启状态,等待客户端的连接,并随时接收己经连接的移动客户端发送过来的数据以及对处理消息的转发。当有三个以上终端参与时,通过服务器的转发可以实现它们之间的实时交流,所以平台具有实时性的特点;

(3)简易交互:移动协同应用平台主要针对手机用户,而目前多数手机进行交互需靠键盘输入,因此移动用户只能通过简易的图形或文字交流,以完成协作;

(4)感知性:移动协同应用平台中协作用户能够对群组中其他协作用户的行为进行感知,即了解谁在什么时间做了什么,以便于协作效率的提高;

因此,作为对移动群组协作提供支撑的应用平台,要实时处理多群组多用户的实时请求,并对群组及用户进行综合管理,这就对应用平台提出了较高要求。

2 移动协同应用平台体系架构分析

通过上述对移动移动协同应用平台特点的分析,可以得知应用平台的构建集无线网络和有线网络于一体,移动客户端(包括手机、PDA、笔记本等)通过无线网络(CDMA、GPRS、3G等)向有线网络中的服务器端发送数据和请求而进行通信。本节将对移动协同应用平台的体系架构进行分析,在客户端与服务器端通信方面对传统的体系架构进行简单阐述,从而得出具有可扩展性的三层体系架构。

2.1 传统的体系架构分析

传统的体系架构采用两层C/S模型进行构建,因此,将系统划分为移动客户端和服务器端两部分,传统体系架构如图1所示。客户端分为协同任务和协作交流两大部分,其中协同任务部分主要完成具体应用场景下的协同任务;协作交流部分提供协作群组内的用户进行信息共享和实时交流的功能,从而达到提高实时协作效率的目的。服务器端主要完成对客户端协作的支持和协调,包括对协作交流的管理、用户信息的管理、协作信息的实时监控、协作时发言权控制、并发操作的相应控制策略支持等功能,这些功能的完成通过操作数据库来对移动客户端的请求进行相应的处理。

移动客户端登录系统后,在协作组内和其他成员进行协作,在服务器端为每个协作组开启一个线程进行侦听及处理,多个管理线程(图1中的Work Group Admin)由线程池统一管理。在群组协作中,移动客户端间通过彼此间的通信实现共享资源的利用及任务的完成,而应用平台中是以消息的形式进行通信。在该体系架构下,每个操作都以消息的形式交由服务器端进行处理,服务器端处理完毕后再进行消息的转发,将反馈转达给操作用户。

2.2 三层可扩展的体系架构分析

前述介绍了传统的两层C/S体系架构,在此模式下,应用程序被分为客户端和服务器端。客户端程序由客户启动并可以与服务器端进行通信以及简单的逻辑控制,服务器端完成各种逻辑控制和问题解决等,直到应用问题处理完毕。它采用了所有处理集中到服务器端的工作方式,这样就增加了服务器端的处理压力,当用户数量较大时,客户端与服务器端的通信及服务器端对各协作组协作的控制便成为了瓶颈。

此外,传统的C/S模式只适用于同一应用程序内部各功能模块之间的协同工作,并不能满足多种服务共同发展的需要。在多服务环境中,不仅仅同一应用程序内部各功能模块需要协同工作,不同应用程序之间也可能需要协同工作,以便协同完成任务。因此,传统的两层C/S体系架构已经不能满足多服务协同工作的需要。为此,本文采用了具有三层架构的扩展C/S模式,整个应用平台由一个平台监控端、多个应用服务器端以及若干客户端组成,体系架构如图2所示。

上述方法是直接对语句进行翻译,再加上注解,可保留原始语句。但解释过程中需要的时间比较长,也可以选择意译法来进行,直接对语句的含义进行范围,以对方国家的寓意来进行,这样能够节省大量交谈时间,对事物的理解间接达成一致。例如“She was born with a sliver spoon in her mouth,she can do what she likes.”其中“She was born with a sliver spoon in her mouth”直译为她出生时嘴里含着一支银勺子,这样直译就曲解了文章原有的意思,结合英语文化,可以意译为“她出生在富贵之家”。

图1 传统两层C/S体系架构

在三层C/S体系架构中,由平台监控端管理移动用户的加入和退出,并负责管理各应用服务器端的注册、注销等全局信息,协调各个应用服务器端从协同而完成某项任务,在协作用户服务选择及通信上起到路由作用。最重要的是,对各应用服务端进行管理及对所有协作进行实时监控。平台监控端的加入有以下优点:

(1)平台监控端提供了一些全局信息,为移动用户进行协作提供了便利,这些信息包括当前所有的在线用户信息、当前可用的应用服务信息以及各用户的应用服务分布情况等,进而为移动用户访问各应用服务提供了导航功能。此外,应用服务的名称修改、通信端口修改及服务注销等信息,无需通知所有注册该服务用户,只需通知平台监控端即可。

(2)平台监控端设有对各个应用服务器端进行协同控制模块,使得各应用服务器端专注于进行服务相关的逻辑控制和处理工作,从而大大简化应用服务器端的设计。

在该体系架构下,移动用户可以任意使用向平台监控端注册的应用服务,也可以同时使用多个应用服务。此外,也正是由于平台监控端这一层的加入,使得平台具有更好的可扩展性。当添加新的服务时,只需将服务向平台监控端注册即可应用,而多个服务同时共存时,相互并不受影响,每个服务只做好自身逻辑控制即可。当某个服务需要与其他服务进行协作时,只需将请求发送到平台监控端,平台监控端接收到该请求后交给其协同控制模块进行相应的处理,从而完成服务间的协同工作,本平台的体系架构如图3所示。

图2 三层架构的C/S模式

图3 三层可扩展平台体系架构

3 应用平台的关键问题及解决方案

移动计算的网络环境具有频繁断接性、低带宽性、弱可靠性(即高时延性)以及移动终端的设备差异性等自身特性,这些特性便成为了移动协同应用平台构建的关键问题,本节将针对上述关键问题给出相应的解决方案。

3.1 频繁断接问题

频繁断接,即在无线网络中,由于网络环境的不稳定性和移动终端的电话或信息的接入,使得移动终端在平台应用中频繁的断接。此外,在断接后移动IP可能发生改变,如果不进行相应处理,则该移动终端便不能与平台其他移动用户进行通信。

为此,本文提出解决办法为:每个移动用户登录到平台后,为每个Socket和用户ID建立一个集合,集合中每条记录为一键值对,以用户ID为键值索引,Socket为键值。当移动用户断开连接时,向监控平台发送断开连接消息,平台监控端开启一个计时器并为该用户单独开启一个代理线程,计时器用来计时用户断开连接的时间,该代理线程用来接收用户断接期间的协作消息。

若用户断开连接超过设定的最大超时值T,则释放掉该用户占用的资源,向群组内其他用户广播该用户退出的消息并修改与该用户有关的存储信息;若用户断开连接未超过最大超时值T,则再次向平台监控端发送请求时,平台监控端接收到该用户的请求后,用当前Socket替换原有建立连接的通信Socket,并将代理线程中接收的协作信息一同转发给该用户,实现协作的连续性。

3.2 低带宽问题

由于无线网络的网络带宽较低,因此,平台应用不能像有线网络一样,直接传输大容量的数据对象,如音频文件、图像文件等。本文提出的解决办法是所有操作都采用消息封装的形式,将通信内容划分为数据消息和操作消息,为每个数据和操作都定义了消息原语。通信中只传输相应的消息,接收端将消息解析后根据消息类型进行本地化操作,做出相应处理。这样就减少了通信中的数据量,从而避免了网络阻塞等问题。其中,消息格式如图4所示:

图4 消息格式

发送者和接收者决定了通信双方,而消息类型决定了是数据信息还是操作信息。客户端将消息封装后进行简单的序列化操作,序列化后的消息类在网络中只以字符串的形式传输消息中的各元素,经过平台监控端的服务Agent路由转发到应用服务器端,应用服务器端的消息Agent接收到序列号的消息后,进行简单的反序列化操作,解析出消息类型后,根据消息类型进行相应的处理,最后将消息转发给相关接收者,该过程示意图如图5所示。

图5 数据对象的消息化处理

3.3 弱可靠性问题

无线网络的不稳定决定了其弱可靠性,因此,在通信方式上采用基于TCP/IP的Socket通信,进行可靠通信。移动用户与平台的连接都是基于Socket的可靠连接,平台为每个移动用户单独开启一个通信线程,接收和转发与该用户相关的协作消息,从而不会出现转发错误的现象。

在协作过程中,协作群组内的不同协作请求由于无线网络的高时延性,可能会导致先提交的请求到达服务端晚于其他用户后提交的请求,因此,本文采取两种方式来解决网络的延迟,一种是时间同步比较法,另一种是基于时间戳的处理方法。

时间同步比较法,是先按照一定的算法将客户端、应用服务器端和平台监控端进行时间同步,同步时间后平台监控端接收到消息后进行发送时间和接收时间的比较,若时间间隔大于等于1s,则丢弃该消息不进行路由转发,并通知发送者消息超时的通知,以便进行消息重发。时间同步算法可以描述为:

首次登录时,将本地时间以消息的形式发送给平台监控端,为防止出现网络阻塞情况而干扰实践差值的计算,每隔1s发送1条带有本地时间的消息,共发送3条,平台监控端接收到消息后,计算出三次的时间差值ΔT1,ΔT2,ΔT3,最后,求其平均值ΔT,忽略网络传输数据的时间即为同步时间差值。

基于时间戳的处理方法,是根据请求到达的时间戳来进行处理。服务端为每个用户请求都加上时间戳,消息Agent根据时间戳的大小进行消息的解析处理,这样就能解决由于高时延性带来的弱可靠性问题。

3.4 设备差异性问题

移动终端设备的处理能力远不及个人电脑,因此,要充分利用设备感知能力,为处理能力不同的终端设备提供不同的实现方案。有些终端设备如PDA、智能手机等处理能力比普通手机强,因此,平台针对这些有较高处理能力的移动终端,让其客户端具有一定的处理能力,如群组决策及群组管理等,体现出“胖客户端”特性;而处理能力相对较弱的普通手机等终端设备,客户端不具有处理功能,所有的处理功能都交给服务器端或智能终端处理,体现出“瘦客户端”特性。

4 结束语

本文重点介绍了移动协同应用平台构建的体系架构,通过对比传统体系架构的特点,得出具有可扩展性的三层体系架构。最后,针对三层体系架构应用平台的关键问题提供相应的解决方案。随着对移动协同应用平台的进一步研究与开发,将会对系统的统计性、扩展性、等方面进行完善。

[1]Tomasz Imielinski,Henry F Korth.Mobile computing[M].Kluwer Academic Publishers.Baston.1996.

[2]雒伟群,何丕廉.协同虚拟实验室关键技术的研究[J].计算机仿真,2004,21(12):252-257.

[3 周蕾.基于CSCW的电子白板在移动警务系统中的研究与设计[D].郑州.解放军信息工程大学,2007.

[4]张伟.协同设计技术研究与系统实现[D].西安.西北大学,2006.

[5]吴巍枫,彭德纯,林子禹等.CSCW分布式多任务协作机制的研究[J].计算机工程,1997,23(5);4-5.

The Research based on three-tier architecture application platform for mobile collaboration

ZHANG Li-sheng,LI Liang,HAO Yan-mei

(GraduateFacultyofHebeiUniversityofEconomics&Business,ShijiazhuangHebei050061,China)

The traditional collaborative application platform is based on wired network environment,and there are few application platforms,which supporte mobile computing,is no longer enough to meet the needs of multi-user and multi-service.So it could not be good for providing support for mobile groups work together.For this situation,this paper,combining the application features of mobile collaborative application platform,provides a comprehensive analysis of architecture for building application platform,and gives application platform framework based on the three-tier scalable architecture.In addition,we provide more detail of the key issues about building the three-tier architecture for mobile collaborative application platform.

Mobile computing;Mobile group collaboration;Three-tier scalable architecture;Mobile collaborative application platform

TP311

:A

1001-9383(2012)01-0031-06

2011-09-30

张立生(1985-),男,河北青龙人,硕士研究生,研究方向:移动计算与移动电子商务.

猜你喜欢
服务器端群组消息
Linux环境下基于Socket的数据传输软件设计
一张图看5G消息
浅析异步通信层的架构在ASP.NET 程序中的应用
RSMSobol法的参数群组敏感性快速定量评估分析
基于Qt的安全即时通讯软件服务器端设计
基于统计模型的空间群组目标空间位置计算研究
消息
消息
消息
网页防篡改中分布式文件同步复制系统