大型园区网络下基于EXI的移动数据交换模型
2015-08-02于春燕王汇彬黄晓玲赵生慧
于春燕,王汇彬,黄晓玲,赵生慧
大型园区网络中,用户数以万计,同一用户可能拥有多台移动设备,计算及服务均有可能引发大量的异构系统之间的互操作与数据交换,造成网络使用高峰期带宽资源的紧缺。Web服务是目前广泛应用的异构数据交换形式,主要采用XML(eX-tensible Markup Language)实现服务的描述、数据共享和交换。由于XML文档采用文本表示数据,在数据量较大及移动智能设备访问Web Services时,由于移动设备存在计算、存储、电量及网络访问等限制,效率明显降低[1],同时带来了较大的数据流量和费用,影响了用户体验。EXI是由W3C(World Wide Web Consortium)组织推荐、针对带宽受限等环境发布的数据交换标准,是对XML文档的高度压缩形式,比Gzip的压缩率要高10倍[2]。
本文在现有研究的基础上,分析了面向大型园区网络的移动数据交换系统组成,进而提出了一种适用于移动智能设备的数据交换模型,该模型在客户端和服务器端均加入EXI处理、实现对Web服务交换数据的压缩。在对模型的形式化分析的基础上,设计了一个校园移动学习系统,通过实验分析了加入EXI处理前后的Web服务数据量、服务调用时间及移动设备的电量损耗等。
1 相关工作
研究人员对基于XML的数据交换开展了诸多研究,并有相关产品。Marcelo[3]等对XML与关系数据库间的转换进行了深入研究。Hossam[4]等人设计了一种框架,实现将数据库模型转换为XML Schema并成功应用于某医疗系统。彭涛[5]等将XML Schema中的结构与本体中的概念对应,使得XML数据模型具有结构信息和语义信息。
近年来,研究人员在Web服务的移动数据交换、移动网络和物联网等情景下提高Web效率等方面开展了研究,并有少量关于EXI应用的文献。Lars[6]等人研究了移动网络中的Web服务压缩技术,对GZIP等通用压缩技术和针对XML的压缩技术进行了比较试验,并在实际的GPRS等网络中进行了测试。芬兰阿尔托大学的研究者[7]试验了移动优化、HTTP压缩、缓存、代理等节约手机能耗的方案。Sebastian[8]等人研究了传感器网络中的数据交换技术,设计了EXI处理器将XML文档与EXI数据流进行互相转换,并在微处理器设备上测试运行一个真实的基于XML的Web服务。Joana[9]等针对军事网络不稳定、低带宽等特点,比较了Gzip、EXI等方法压缩SOAP消息、压缩JPEG图片等空间和时间性能。Angelo[10]等人在温湿度等传感器节点上运行用于数据收集的Web服务,具有较好的内存利用率。李建兴[11]研究了优化 Web Service性能的方法,对 Web service的SOAP报文进行EXI编码,对Web服务的Servlet进行EXI编码和解码进行了分析,并在模拟环境中进行了测试。在基于XML的数据交换模型及形式化描述方面,文献[12-13]采用了有限状态机、UML模型、进程代数等方式对Web数据交换模型分析。
上述研究对于改善基于XML的数据交换开展了有益探索,但对移动及嵌入式环境下采用EXI进行数据交换的模型及具体应用的效率等问题,还需要进一步研究其实现模型,基于EXI的实际应用系统也仍不多见。
2 移动服务实现框架与模型
2.1 大型园区网络移动数据交换系统架构
基于上述园区网络及应用的特点,大型园区网络环境下,移动数据交换系统主要包括通信网络、网络设备、移动智能设备、基于云的服务器群、存储设备五个部分,如图1所示。其中服务器群由数据库服务器、Web服务器、UDDI(Universal Description Discovery and Integration)注册服务器等组成。每台服务器为物理服务器或虚拟机,UDDI服务器提供简单的服务注册服务。
图1 大型园区网络的移动数据交换系统组成
当前Web服务的主要实现方法为SOAP(Simple Object Access Protocol,简单对象访问协议 )方 式 和 REST (Representational Service Transfer)方式,都采用XML描述消息,其移动数据交换的完整过程为:(1)Web服务提供者(表现为Web服务器)通过有线网络向Web服务代理发布服务,并在UDDI注册;(2)移动智能设备通过园区无线网络向UDDI中心请求特定的服务,或者通过链接等直接获取服务地址;(3)UDDI向Web服务请求者返回满足条件的Web服务描述信息WSDL文档;(4)移动智能设备根据服务描述信息生成SOAP消息,发送给 Web服务提供者;(5)Web服务提供者根据SOAP消息运行相应的Web服务,如进行数据库处理等,并将服务响应结果返回给Web服务请求者。
2.2 基于EXI的移动数据交换模型ECMDE
基于EXI的移动数据交换模型ECMDE(EXI-based Campus Mobile Data Exchange),描述了移动智能设备与Web服务提供者之间的数据交换过程。模型包括资源管理层、SOAP消息处理层、EXI处理层、HTTP处理层和传输层,如图2所示。与传统的Web服务交换模型不同,该模型在服务器端和移动智能设备上增加EXI处理器,对XML格式的Web请求和响应数据进行EXI编码压缩后传输,接收方收到EXI数据后再解压为XML格式的数据。
图2 客户端根据Web请求与服务器端进行数据交换
2.2.1 ECMDE模型的形式化描述
为了对系统进行精确描述并进行系统开发,基于代数理论,将基于ECMDE模型的系统表示为一个代数系统,由对象、对象的操作及操作的约束等组成。为便于分析,对系统定义如下。
定义1:移动数据交换系统,是一个抽象的代数系统,包括系统中的对象、对象的操作及操作的约束。表示为S(Ob,Op,Cons),其中Ob是对象的集合,Op是对这些对象所进行的操作的集合,Cons是对操作的约束。
定义2:对象,是系统的各组成部分,包括移动智能设备浏览器MClient、HTTP服务器HServer、UDDI服务器UServer、无线通信网络 WNetwork、SOAP 处 理 器 SProcessor,EXI处 理 器EProcessor,SOAP请求文档SRequest,SOAP响应文档SResponse,HTTP请求文档 HRequest,HTTP处理器 HProcessor,HTTP响应文档HResponse,EXI流 EStream。表 示 为 Ob={HServer,
MClient,UServer,WNetwork,SProcessor,EProcessor,SRequest,SResponse,HRequest,HResponse,EStream}
定义3:对象的操作,是系统中各对象上的操作的集合,表示为 Op={HServer.Op,Mclient.Op,WNetwork.Op,
UServer.Op,SProcessor.Op,EProcessor.Op},包括操作:
HServer.Op:发送服务注册请求,接收 HTTP报文,缓存,发送HTTP响应,接收SOAP请求,发送SOAP响应。
Mclient.Op:发送服务查找请求、接收服务查找结果,发送SOAP请求、接收SOAP响应、发送HTTP报文、接收HTTP报文。
WNetwork.Op:传输HTTP报文。
UServer.Op:服务注册,服务查找,发送 WSDL文档。
SProcessor.Op:接 收 SOAP 请 求,发 送SOAP响应。
EProcessor.Op:接收 XML文档,发送 EXI文档,编码,解码,发送 XML文档,接收 EXI文档。
将ECMDE模型定义为一个五元组:CMDE=(S,∑ ,f,S0,Z),其中,S是有限状态集;f是转换函数;∑ 是有限输入信息集,S0是初始状态,Z是最终状态,S0,Z∈S,∑ ={SRequest,SResponse,HRequest,HResponse,EDoc};状态对象S={S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10},其中:
S0(wait):MClient根据UServer提供的 Web服务地址,准备向服务器端发送服务请求。
S1(SOAPRequest):MClient利用 SOAP消息处理中间件,根据 WSDL生成XML格式的SOAP消息。
S2(EXIEncode):MClient将 XML文档编码压缩为EXI文档。
S3(HttpRequest):MClient将EXI文档封装到HTTP报文中,并将HTTP报文向Web服务器端发送。
S4(Transmit):无线网络传输HTTP报文到HServer。
S5(HttpRecieve):从中 HTTP报文解析出EXI文档。
S6(EXIDecode):HServer解码 EXI文档为XML文档。
S7(SOAPResponse):HServer根据 XML文档中SOAP信封中的请求信息,进行数据库操作等处理,将响应结果封装成XML格式的SOAP响应文档。
S8(EXIEncode):HServer编码 XML文档为EXI文档。
S9(HttpResponse):HServer将 EXI文档封装到HTTP报文中,并将HTTP报文向Mclient发送。
S10(EXIEncode):Mclient从 HTTP报文中解析出EXI文档。
S11(EXIEncode):Mclient将EXI文档转换为XML文档并添加样式进行显示。
采用UML行为图中的序列图[15]描述一次Web服务调用过程中,该模型中的 MClient和WServer的行为、工作流及消息传递。如图3、图4所示。
图3 MClient发送Web服务请求的序列图
图4 HServer接收Web请求并发回响应的序列图
可以得出ECMDE模型中与EXI处理相关的约束包括:EProcessor的编码方式、编码时间和解码时间、Web服务中的数据库操作时间、XML解析时间、EDoc的传输时间和 MClient的电量损耗。表示为:Cons={EncodeOptions,TimeEncode,TimeDecode,TimeTransmit,TimeDataP-roc,TimeXMLPrase,Power,error}
ECMDE模型的一次的Web服务调用时间为以上各时间的和,即TimeEncode+TimeDecode+TimeTrAnsmit+TimeDataProc+TimeXMLPrase。
2.3 EXI处理过程
ECMDE模型的核心是EXI处理层,部署在移动智能终端和服务器端,能将XML文档无损地编码为EXI文档,以及从EXI文档解码为XML文档。EXI解码过程为编码过程的逆序,包括编码为事件流、预压缩和压缩三个步骤[1]。图5为某SOAP请求文档,以该文档说明编码过程。
图5 示例SOAP消息的XML文档内容
(1)根据EXI语法,将XML文档编码为head流和boady流。XML文档可采用Shema informed语法和builted-in(适用于无schema的XML)语法模式。Shema informed语法模式中对属性进行了排序等优化策略,处理效率更高。
EXI文档包括EXI Header和EXI Body两个部分。EXI Header是关于EXI的描述信息,由EXI Cookie(可选,用于区分EXI流与其他数据流)、Distinguishing Bits(表示为“10”,用于区分于 XML文档)、Presence Bit for EXI Options、EXI Format Version(EXI数据流的版本)、EXI Options(编码时的选项,如是否保留注释等),Padding
Bits(可选,字节压缩模式时填充为N个字节)等组成。
EXI Body是XML文档压缩后的部分,由一系列事件流和相关数据内容组成。XML文档中的标记、标记的属性为结构信息,属性值、值为内容信息。将结构信息编码为事件流,如XML文档开始标记表示为SD,文档结束标记表示为EE,元素起始标记表示为SE,元素结束标记表示为EE,属性表示为AT。属性值和值的内容信息存储在临时数组中,编码时用相应的地址表示。图6为图5所示SOAP响应文档编码为事件流的示意图,包括编码过程中的临时表、编码后的EXI事件流。
图6 示例文档编码过程产生的临时数组及生成的事件流
(2)预压缩。将事件流中的结构信息与内容信息分开,以位对齐或字节对齐的方式重新排列,以便快速压缩。
(3)压缩。将body流压缩为二进制信息。压缩后的EXI文档中标记名称、元素值均只出现一次。
预压缩和压缩的过程示意图如图7所示。
图7 SOAP文档预压缩、压缩过程示意图
3 EXI处理层的自动化实现
根据ECMDE模型的序列图,并利用符合EXI标准的开源软件OpenEXI[16]的开放接口,开发服务器端和智能手机端EXI处理程序。OpenEXI基于Java编写,提供了GrammarOp-tions、 GrammarCache、 Transmogrifier 和TransmogrifierException等几个包,可根据不同压缩选项、是否有Schema等方式进行EXI编码等。服务器端接收 Web请求、进行处理及返回SOAP响应的伪代码如下所示,其中也加入了传输时间及编码时间的计算。
4 实验与分析
结合实际应用,以校园移动学习为应用场景,开发了“基于EXI的移动学习管理系统”,提供如下Web服务:登录、认证;用户信息修改;浏览课程列表、浏览指定课程的课程资源列表;下载课程资源,如PPT、DOC、PDF等文档;对课程资料进行评分等。
测试环境:服务器端配置为Intel Xeon2.2G,内存4G,JDK1.7,Tomcat6.0.36,RESTeasy;路由器为 TP-link TL-WR745N。移动智能设备分别采用HTCA810E进行测试。
测试目的和方法:比较普通的 Web服务、基于ECMDE模型的Web服务的传输文档大小、时间消耗和手机电量消耗。根据上述的分析,ECMDE模型的Web服务调用过程中需进行EXI编码和解码,有一定的时间消耗,但减小了文档尺寸,缩短了传输时间。需要比较缩短的传输时间与增加的编码解码时间。
实验过程:手机充满电后,关闭服务器端缓存功能,访问服务器端的5个Web服务。分别对每个Web服务、EXI处理后的Web服务连续重复测试50次,记录每次Web服务调用的总时间(从发出访问请求开始,收到响应的SOAP消息结束)、手机上XML文档的压缩时间、手机上EXI文档的解压缩时间、传输时间,取各项值的平均值,由于数据处理时间;50次调用完毕后的检查手机电池的剩余电量百分比。编程计算请求时间和响应时间,采用电池监控软件Battery Left查看电池剩余电量。
测试结果如表1所示,其中,SizeX表示SOAP文档的大小,SizeE表示压缩后SOAP文档的大小,TimeX表示Web服务调用的传输时间,TimeE表示基于EXI的Web服务调用时间,TimeE1为XML文档编码时间,TimeE2为EXI文档解码时间,TimeE2为文档传输时间,PowerX表示手机调用 Web服务后剩余的电量,PowerE表示手机调用基于EXI的Web服务后剩余的能量。
表1 智能手机1访问Web service测试数据
实验表明,采用EXI处理后的Web消息文档大小显著减小,实验采用builted-in压缩模式,5个文档的平均压缩率也达到了55%,对于尤其是含有较多注释、重复标记的XML文档,压缩率更高。传输时间也相应缩短,传输时间平均减少65.2%,移动智能终端尽管仍需花费时间和能量进行EXI编码和解码,但总时间损耗和电量消耗未明显增加。此外,服务器端因其计算等资源相对充足,其EXI处理时间均为几毫秒至十几毫秒。
针对大型园区网络的特点,在移动终端与服务器间增加EXI处理器来降低通信的数据量和通信时间,通过对移动数据交换模型的形式化描述和分析,开发了移动学习系统对该移动数据交换模型进行实验,实验显示移动数据交换量显著减少,同时移动智能终端的时间和能量消耗并没有显著增加,在高并发的情况下,将能有效减少网络数据传输量。下一步的工作是进一步降低智能终端的EXI处理时间和能量消耗,通过采用缓存等多种策略进一步提升移动数据交换系统的整体性能。
[1] W3C.Efficient XML Interchange(EXI)Format 1.0 [EB/OL]2011-3-10..http://www.w3.org/TR/exi/.
[2] W3C.XML Binary Characterization User Case [EB/OL].2004-11-9.http://www.w3.org/TR/2004/WD-xbc-use-cases-20041109/.
[3] Marcelo Arenas,Pablo Barcelo,Leonid Libkin.First Editon XML-Managing Data Exchange[M].Morgan & Claypool Publishers.2011.
[4] Hossam Jumaa,Paul Rubel,Jocelyne Payn.An XML-Based Framework for Automating Data Exchange in Healthcare[C].e-Health Networking Applications and Services(Healthcom),2010 12th IEEE International Conference.
[5] 彭涛,张力.基于本体和XML的数据交换研究[J]计算机工程.2006,32(1):90-92.
[6] LarsJohnsrud,Dinko Hadzic,Trude Hafsoe.Efficient Web Services in Mobile Networks[C].Sixth European Conference on Web Services,pp.197-204,2008.
[7] Le Wang,EdwardMutafungwa,Yeswanth Puvvala,Jukka Manner.Strategies for Energy-Efficient Mobile Web Ac-cess:An East African Case Study[C]//AFRICOMM,Zanzibar Islands,Tanzania:Springer,2011.
[8] Sebastian Kabisch,Daniel Peintner,Jorg Heuer.Efficient and Flexible XML-based Data-Exchange in Microcontrollerbased Sensor Actor Networks[C]//2010IEEE 24th International Conference on Advanced Information Networking and Applicating Workshops.,.IEEE Computer Society Washington,2012.
[9] Joanna S′liwa,Tomasz Podlasek,Marek Amanowicz.Web Services Efficiency in Disadvantaged Environment[J].Journal of Telecommunications and Information Technology.2011.62-68.
[10] Angelo P.Castellani,Nicola Bui,Paolo Casari.etc.Architecture and Protocols for the Internet of Things-A Case Study[C]//Proceedings of 2010 8th IEEE International Conference on Pervasive Computing and Communications Workshops,Mannheim:Germany.IEEE Conference Publications,2010.
[11] 李建兴.基于EXI的 WebService性能优化研究[D].广州:华南理工大学硕士论文.2010.
[12] 石彦华,李蜀瑜.动态服务的数据交换模型研究[J].计算机应用研究.2011,28(12):4576-4580.
[13] 钟巍.数据交换模型研究与实践[D].武汉:武汉理工大学硕士论文.2008.
[14] W3C.Efficient XML Interchange(EXI)Primer[EB/OL].2009-12-8.http://www.w3.org/TR/2009/WD-exi-primer-20091208/.
[15] 姚全珠,王江.基于UML的软件形式化需求分析与验证[J].计算机工程.2010,36(13):30-33.
[16] OpenEXI.OpenEXI Introduction.[EB/OL].http://openexi.sourceforge.net/.2013-9-15.