基于能耗的协同感知消息传递方法*
2009-05-08李军怀
李军怀,高 苗,张 璟
(西安理工大学计算机科学与工程学院,陕西 西安 710048)
随着移动设备的广泛应用,移动协同工作(Mobile CSCW)成为必然趋势[1-2]。在移动CSCW中,用户与远程协同工作的同事及相关资源构成了一个虚拟的工作空间,用户在虚拟空间中交互信息,克服了时空的限制,但是却缺乏在面对面的协作环境下工作的自然性和真实性,为了保证协同工作顺利进行,群组成员之间的感知就变得非常重要了。移动终端设备通过无线网络进行通信时,由于无线网络带宽小,连接稳定性差,常常会导致暂时的网络断接,妨碍了协作者之间流畅的信息交流,不利于群组成员之间的协同工作。而且移动终端设备的存储能力、可用能量有限,例如,电池的供电时间有限,这也许会导致意想不到的中断,对协同工作的结果造成极大的危害[2-4]。针对这些问题,本文通过对能耗与消息大小之间的关系进行分析,采用消息队列和减少消息大小的上下文存储等机制,保证移动环境下协同工作感知消息的有效传递,同时减小网络中传输的感知消息大小,以减小响应时间,达到减少能耗的目的。
1 基于能耗的协同感知模型
无线网络连接稳定性差,经常会出现客户端与服务器端网络断接的情况,随着移动设备的广泛应用,在短时间网络中断的情况下保证协同工作的正常进行成为一种必然要求[5-6]。同时,移动设备受到可用能量的限制,它的工作状态是在睡眠模式和活动模式之间转换,如果移动设备处于睡眠模式,几乎不消耗电池能量;如果其运行在活动模式下就可以进行诸如消息传送等操作,这时移动设备开始消耗电池能量。客户端在活动模式下接收消息,其监听通道的持续时间被称为调谐时间,调谐时间与能量消耗是成比例的。从调谐时间与能量消耗的相关公式出发,可以推导出通过减小网络中传输的消息大小,达到节约能量的目的。
1.1 问题分析
假设一个客户端每tp个时间单位调谐一次网络,调谐时间保持tc个时间单位。如果我们用X表示客户端成功接收两条消息之间的时间间隔,用f表示处于活动模式的客户端单位时间的能量消耗,那总的能量消耗就是E0=λ·f·tc,λ表示在这个周期内的网络调整次数,即
(1)
因此,我们有
(2)
客户端连续的从网络中接收消息,消息的大小为Y,消息在网络中的传输速率为V,那么第一条消息与第二条消息之间的时间间隔即为第二条消息在网络中的传输时间,分为两种情况:
第一种情况:第2条消息到来时,移动设备处于活动模式,这时X=Y2/V2;
第二种情况:第2条消息到来时,移动设备处于睡眠模式,等待设备转换到活动模式后接收消息,这时X=Y2/V2+tp,即:
(3)
或者
(4)
从公式(3)和(4)可以看到,由于消息在网络中的传输速率V一般是固定的,那能量消耗E0与消息的大小Y有很大关系,随着消息的变小,Y2/V2变小,能量消耗变小。因此,可以得出结论,通过减小网络中传输的消息大小,可以达到节约能量的目的[7]。
1.2 基于能耗的协同感知模型
在对消息大小与能量消耗之间的关系进行了数学分析以后,本节从如何收集感知信息,如何描述感知信息以及采用一种什么样的信息传递方式出发,着重从减小消息大小,保证信息完整性、协作流畅性为目的,给出了一个基于能耗的感知模型感知消息处理模型,如图1所示。
考虑到无线网络不稳定的局限性,为了保证用户之间流畅的感知信息交互,使得协同工作顺利的进行,我们使用消息队列来收集感知信息。为了减少移动客户之间传输消息的大小,以达到降低移动设备能量消耗的目的,我们引入了一种基于消息上下文存储机制的方法。同时,采用远程指针来体现感知性[8-9]。
图1 基于能耗的感知模型
2 关键技术实现
2.1 感知消息的收集
基于消息队列的感知信息收集方法主要思想是将消息缓存在消息队列中,以防止由于网络断接造成的信息丢失。为了便于区分,将位于服务器的消息队列称为通知队列。我们将发送消息的移动主机称为生产者客户,接收消息的移动主机称为消费者客户。生产者客户产生的消息缓存在消息队列中,如果网络连接正常,消息出队发送到服务器。服务器接收来自生产者客户的消息,并将其缓存在通知队列中,如果消费者客户与服务器连接正常,消息从通知队列中出队,发往消费者客户端。
服务器端接收来自客户端的消息,经过数据处理以后放入相应的通知队列,准备分发消息之前先判断所有的协作者是否能够顺利的收到消息,如果发现有协作者与网络断接,消息会被重新送入通知队列,然后将其发送出去。
2.2 消息处理
由于无线网络的不稳定性和断接性,使得客户端不一定能够收到完整的一条或多条消息,这就需要客户端进行消息的整合和解析。客户端从网络中以字节流的方式接收消息并存储在一个字节数组中等待处理,我们假设一条数据处理完毕后,紧接着的第二条数据经过判断已经不符合处理规则,就将这条数据暂时存放在数据缓冲区中,等待下一条数据的到来,我们将接收到的新数据与缓冲区中的旧数据整合在一起,再一次判断是否符合处理规则,如果不符合,他们将继续被保存在数据缓存区中,直到符合为止。
数据解析就是将数据分别提取出来,判断一条数据是否符合处理规则以及是否读取完毕。 它和数据整合部分结合起来完成了用户的数据处理请求。
2.3 感知消息的分发
消息的分发方法主要从两个方面考虑:减小数据在网络传输过程中的大小和设计合理的通信方式以减少客户端接收数据时的延时。
减小数据在网络传输过程中的大小,通常采用无失真冗余度压缩算法,其中较为常用的有动态Huffman算法及LZW压缩算法以及Zip压缩算法[10]。以Zip压缩算法为例进行测试,实验发现压缩一条消息需要0.031 25 s,解压一条消息需要0.032 1 s,随着消息数量的增加,压缩和解压消息的时间会逐渐增长。因此,无论采取何种压缩方法,压缩和解压都要占用一定时间,虽然消息在网络中的传送时间减少,但是从客户端发送消息到收到消息的响应时间却增长了。
针对数据压缩方法存在的问题,通过分析感知消息的结构,可以发现其由动态和静态两部分组成。因此,为了减小网络中传输的消息大小,将消息的静态部分存储在消息存储器中,避免了冗余信息在网络中重复传送[7,11]。消息分发结构如图2所示。
在技术实现中,使用普通的text作为消息存储器来存储消息的静态部分,原因是text文档存取速度快,节省访问时间。每一个客户端都有一个消息存储器,消息从消息队列出队,客户发送消息之前,首先判断消息的静态部分是否已经发送过,从text中读出的消息都是以流的形式存在,对信息存储器初始化以后的格式为“flag 00 length sender ”,所以标记位的值在字段flag和字段length之间的位置。读取标记位的值和消息携带的标记号flag进行比较,如果匹配,则表明该客户是非首次发送消息,这时我们仅向服务器端发送消息的动态部分及标记号。
图2 基于能耗的感知消息分发结构图
如果不匹配,则表明该客户端是首次发送消息,这时我们将message.flag, message.length,message.sender存入消息存储器,然后向网络中发送完整的消息。
客户端接收到消息后,先检查消息存储器中是否有匹配项,如果有,直接从消息存储器中取出sender和length进行解析,最后根据length的值得到消息的body。如果没有就按照普通的方式进行数据的整合与解析,同时将message.flag,message.length和message.sender存入消息存储器。
实现步骤如下:
(1)客户端向服务器端发送信息前访问消息存储器,判断消息存储器中是否有与消息本身携带的标志匹配的项;
(2)如果有,仅发送消息的动态部分;
(3)如果没有,将消息的标志及静态部分一起存入消息存储器中,然后发送完整的消息;
(4)服务器收到消息,判断消息携带的标志是否与消息存储器中的标志相一致;
(5)如果一致,将消息的动态部分发送出去;
(6)如果不一致,在消息存储器中存储消息标志及静态部分,发送完整的消息;
(7)客户端收到消息以后分为两种情况,如果客户端收到的是自己发出的消息,则不予处理;如果收到的是来自其他客户端的消息,先判断消息本身携带的标志是否与消息存储器中一致;
(8)如果一致,从消息存储器中拿出静态部分进行解析,接着解析动态部分;
(9)如果不一致,对整条消息进行解析,然后将静态部分存入到消息存储器中。
2.4 感知消息传递方式
移动CSCW中的感知支持协议必须获得能量消耗和通知时间之间的平衡,因为通报消息所需的时间越少,能量消耗就会越低。另一方面,如果客户端为了刷新他们的感知信息频繁的转换到活动模式,这样虽然可以更快的接收信息,但却消耗了更多的能量。
广播通信很有可能导致用户的中断(当信息传递给对它没有兴趣的用户时,将会干扰这些用户的注意力,强迫他们去合作),因此我们采用多点传送的方式通告感知信息。这种方式将需要接收组播数据的所有用户加入到一个多播组中,设定客户端监听组播的端口。服务器端接收到的来自客户端的一条消息(称为一个数据项),这些数据项按照简单的先来后到的顺序在通知队列中连成串,然后依次被服务器组播出去,如果有客户端没有收到消息,消息将再次入队,等待下一次组播。这种方式可以较好地解决单播和广播方式存在的问题。
3 协同感知方法性能对比与分析
实验主要针对感知消息传递中分别采用组播和单播循环方式、消息存储机制和压缩方法的性能进行比较,对这些方法进行评价。
图3中每条消息的大小为248B,可以看出,要传输的信息较少时,组播与单播循环下消息的响应时间是非常接近的。随着信息量的增加,组播方式下消息的响应时间明显少于单播循环下消息的响应时间,传输效率得到显著提高。
图3 组播方式与单播循环方式的比较
从图4中可以看出,在信息量较少时,使用Zip压缩方法改变消息的大小和使用消息存储机制改变消息大小所产生的结果相近,但是信息量增加,压缩和解压的时间就会增长,从客户产生消息到客户接收消息的响应时间增加的很快,而使用消息存储机制,消息的响应时间增加幅度比之较小。因此,消息存储机制要优于Zip压缩。
图5中对本文涉及的方法进行了综合比较,每条消息的大小为248B,消息在网络中的传输数量取48、138、670和1524条。Normal表示使用单播循环方式,不对消息作任何处理的情况;Multicast表示使用组播方式,不对消息作任何处理的情况;Mess-Store表示采用组播的通信方式,同时采用基于消息存储器的消息处理方法的情况,从图中可以明显的看到,综合使用两种方法后,更加优化了消息的响应时间。
图4 Zip压缩和消息存储机制的对比
图5 综合比较
4 结 语
本文介绍了一种基于能耗的移动协同感知模型,分析了感知消息大小与能量消耗之间的关系,然后重点介绍了采用消息队列机制收集感知信息,在网络断接的情况下在队列中缓冲消息,连接恢复时发送消息以及从节省能耗角度出发,采用上下文存储机制减小网络中传输的感知消息大小,减小响应时间,达到减少能耗的目的等关键技术的实现方法。下一步的工作主要集中在针对移动用户的带宽动态分配和采用数据广播技术进一步降低能耗等方面。
参考文献:
[1] LUFF P, HEATH C. Mobility in Collaboration[C]//Proceedings of the 1998 ACM Conference on Computer Supported Cooperative Work. Seattle, Washington, USA, 1998:305-314.
[2] WIBERG M, GRONLUND A. Exploring mobile CSCW:Five areas of question for further research[C]// IRIS23, Sweden, 2000.
[3] ROUSSEV V, PRIEGO G P, RICHARD G G. Touchsync: lightweight synchronization for Ad-Hoc mobile collaboration[C]//Collaborative Technologies and Systems, 2006: 181-188.
[4] OHARA P M, SELLEN K, BROWN A, et al.Dealing with mobility understanding access anytime, anywhere[J]. ACM Transactions on Computer Human Interaction,2001, 8(4): 323-347
[5] RODRíGUEZ PERALTA L M, GONCALVES S. A M. A model-based awareness tool for synchronous collaborative sessions[C]// Proceedings of the 15th International Conference on Computing (CIC′06), Mexico City, USA, November 2006: 347-354.
[6] BORDETSKY ALEX, HUTCHINS S G, KEMPLE W G. Network awareness for wireless peer-to-peer collaborative environments[C]//Proceedings of the 37th Hawaii International Conference on System Sciences,2004:89-99
[7] PAPADOPOULOS C. Improving awareness in mobile CSCW[J]. IEEE Transactions on Mobile Computing, 2006,5(10):1331-1346.
[8] MARSIC I. Adaptive collaboration for wired and wireless platforms[J]. IEEE Internet Computing,2001,5(4):26-35.
[9] WIBERG M. Knowledge management in mobile CSCW:Evaluation results of a mobile physical/virtual meeting support system[C]//Proceedings of the 34th Hawaii International Conference on System Sciences,2001:11-13.
[10] NIKITAS M. Improve XML Web Services' Performance by Compressing SOAP[EB/OL]. http: //www.dotnetjun ies.com/Article/46630AE2-1C79-4D5F-827E-6C2857FF1D23.dcik, 2003.
[11] GANESAN P, OUCH K A. Context awareness in ad-hoc communication[C]// Proceedings of IEEE Pacific Rim Conference on Communications, Computers and Signal Processing,February,2003:28-30.