移动端融合通信中企业通讯录增量更新的研究①
2016-06-15贾正锋杨剑中国科学院沈阳计算技术研究所沈阳068中国科学院大学北京00049
贾正锋,杨剑,(中国科学院 沈阳计算技术研究所,沈阳 068)(中国科学院大学,北京 00049)
移动端融合通信中企业通讯录增量更新的研究①
贾正锋1,杨剑1,2
1(中国科学院 沈阳计算技术研究所,沈阳 110168)
2(中国科学院大学,北京 100049)
摘 要:近年来,随着移动互联网的快速发展,通信行业也进入了移动时代,企业的通信业务可以借助移动互联网结合融合通信拓展到移动领域.企业通讯录作为企业通信的入口起着至关重要的作用.传统的企业通讯录更新技术未考虑到移动互联网资源有限的特点已经不适合用于目前的融合通信中.因此本文提出了基于LDAP目录服务实现增量更新的方法,以此来降低移动端和服务器端的资源消耗.最后通过将传统的企业通讯录中全量更新技术与本文提出的增量更新技术作实验对比分析,验证增量更新在移动互联网方面优于全量更新.
关键词:移动互联网; 融合通信; LDAP; 增量更新
融合通信中企业通讯录(下称通讯录)作为企业核心通信业务的入口,起着至关重要的作用; 随着最近几年移动互联网的快速发展,企业的通讯业务也拓展到移动领域,移动互联网的一大特点是资源有限如流量、功耗以及传输等.所以,企业通讯录的实时更新对移动端是一项新的挑战[1].
目前各大厂商都提出了各自的统一通讯解决方案,其中采用的通讯录技术各有千秋.基于CPM 架构的平台基本采用融合地址薄的技术来实现通讯录的功能,其它方案则大多采用私有协议来实现通讯录功能[2-4].传统通讯录技术只是针对个人通讯录,并没有考虑到企业通讯录需要对企业用户进行访问权限控制这一特殊性,并且提出之时并没有智能移动设备和这些设备的应用场景,都是针对于PC端提出的,采用的通讯录更新技术都是全量更新,没有考虑到目前移动移动互联网资源有限的特点; 如果采用传统的针对PC端的通讯录技术必将导致移动终端流量消耗过多,功耗损失过快、服务器压力过大; 以上两大难题正是本文需要解决的; 本文提出了一种针对于企业移动终端通讯录更新的解决方案-增量更新通讯录技术[5-7]; 该方案通过采用LDAP协议提供通讯录服务[8,9],并结合本文提出的role/type模型可以进行版本控制[10-13]从而实现增量更新模型.此既考虑到了企业通讯录的特殊性,又针对移动互联网进行了优化,从而降低移动端和服务端的,资源消耗.
本文首先论述了通讯录的特点,并根据这些特点对版本进行建模,随后提出增量更新的具体实现,并最终通过将传统的更新方式即全量更新方式与本文提出的增量更新方式进行对比实验以及对实验结果的分析,论证了本方案的合理性可行性以及优越性.
1 企业通讯录的特点
1.1企业通讯录的结构
企业通讯录与个人通讯录不同,由于企业员工职位的不同导致企业通讯录呈现出分层树状结构; 传统的关系型数据库不适合存储这类结构,LDAP (Lightweight Directory Access Protocol)协议即轻量级目录访问协议用来提供目录服务,LDAP协议优化了数据库的读速度,提供较高的读操作效率,而通讯录服务的一个特点是有很高的读操作,所以本文采用LDAP协议的开源实现openLDAP[14-16]来实现通讯录的存取访问.
1.2企业通讯录服务的特点及难点
通讯录服务系统中企业的整个通讯录存储在服务器的数据库中,但是由于企业员工访问权限的不同,导致每个员工的通讯录可能不同,从而导致在服务器通讯录发生变化时只能更新受到影响的用户.这既是企业通讯录的特点又是本方案的难点所在; 通讯录的同步一般体现在两种场景中,场景一是当管理员改变了企业通讯录某员工信息或终端改变了自己的信息,服务器需要对受到影响的各终端通讯录版本进行信息同步.场景二是用户每次登录时需要验证自己的通讯录版本是否是最新版本,若不是则需要从服务器中获得最新版本通讯录.
若用传统的更新方式即全量更新方式,当通讯录发生变化时,服务器端需要重新从数据库获得用户最新版本通讯录,再把信息推送给受影响的用户; 这无论是对服务器还是对移动端都会带来不小的开销; 为此本文提出两种模型实现增量更新来减少传统更新方式所带来的各种资源开销.
2 增量更新
2.1role/type模型
本文前面提到过企业通讯录的一个特点是每位员工所能看到的企业通讯录范围不同,导致员工的通讯录可能不同.因此,我们需要对员工的访问的权限进行控制,同样当服务器通讯录发生变化时只能更新受到影响的用户.
为此本文提出了role/type模型,利用role/type模型可以完成用户的访问权限控制和定向更新通知.
图1显示的是一个利用role/type模型进行访问控制的的示例图.在创建员工时,我们会给每位员工分配至少一个role和一个type作为成员角色和成员类型,给每个部门分配一个type,我们就可以通过建立role 和type的映射关系来控制访问权限,每个role会映射到一条访问规则,在访问规则中规定了这类role的两个属性: 一个是可以访问哪类type的部门,另一个是可以访问哪类type的员工.
图1 企业结构图示例
图1中如果我们想使角色为r1的用户访问部门p1、p2下的e2、e3类成员,角色为r2的用户访问部门 p1、p4下的e1、e3类成员,角色为r3的用户访问部门 p2、p3下的e1、e2类成员,角色为r4的用户访问部门 p5、p6下的e3类成员; 建立如表1所示的role/type关系即可.
如p2部门下的e2类型员工的信息发生变化,则根据反向映射可得需要通知的角色,本示例中需要通知角色为r1和r3类员工.
表1 role/type 模型权限控制表
2.2版本控制模型
本节描述版本控制模型,采用版本控制就需要引入版本号的概念,首先介绍下版本控制的相关定义:
定义1.终端版本号: 指用户当前在终端上使用的通讯录版本的版本号
定义2.标准版本号: 指服务器上存储的用户最新通讯录版本的版本号
定义3.企业通讯录: 指存储在服务器数据库上整个企业的通讯录.
定义4.终端通讯录: 指某个用户根据他的访问权限能够从企业通讯录中获得的通讯录.
定义5.版本变更记录: 指记录引起标准版本号变化的变更信息.
3.2.1版本变更记录表
当企业通讯录或role/type关系发生变更时,我们会将受到影响的用户的标准版本号进行加一,并创建版本变更记录表,用来记录下用户变化的信息.如表2所示.
表2 版本变更记录表
通过版本控制模型建立版本变更记录表我们就可以实现差量更新.
2.3通讯录服务体系结构
本文提出的企业通讯录服务系统由移动终端用户、管理端、中心服务器、和数据库组成如图2给出的是本文提出的通讯录服务系统的体系结构:
图2 通讯录服务系统体系结构图
3 增量更新的示例
本文提出的增量更新体现在两个场景中,场景一是当终端用户改变自己的信息如签名或者管理人员改变员工信息时需要告知服务器,以便服务器及时将变更发送给受到影响的终端用户实现增量更新,二是当终端在登录时会将终端版本号发送到服务器与标准版本号最对比,若不一样,则将变更记录中变更发送给终端用户实现增量更新.如下图所示: 场景1中当终端A在改变了自己的签名时会通知服务器,服务器会更新A在LDAP数据库中的签名信息,并通过role/type的关系找到被影响的终端D、E和F,随后服务器会将D、E和F的标准版本号加一,并记录下改变签名这一变更,最后将这一变更以增量更新的方式发送到D、E和F,但F当时不在线未收到变更通知.最后终端E和F更新A的签名信息.场景1中,当F上线时服务器会将F的终端版本号与标准版本号最对比,发现标准版本号较新,服务器从变更记录数据库中查找到F的变更记录,发现是通讯录中A的签名发生改变,随后从LDAP数据库中取出A的签名信息发送给F实现增量更细.流程图如图3所示.
图3 增量更新示例图
4 实验分析
本节主要对本文提出的针对移动端的增量更新与传统的针对PC端的全量更新做实验对比,本文主要做移动端消耗流量、功耗以及服务器性能的对比.
本文提出的面向移动端实现增量更新的设计已经在项目中的服务器中实现,为了验证本文提出的增量更新能更好的适应移动互联网,我们通过设计实验将增量更新与传统的全量更新方式对比.通过在服务器端使用wireshark抓包,分析数据包[17],在流量消耗和性能上做出了对比.
4.1增量更新测试
终端我们模拟100部智能手机代表100个用户且这100个用户可以相互看到,起初70个用户在线,30个用户离线,我们改变其中一个在线用户的签名,我们统计出服务器完成通知所消耗的流量,这个过程也就是上文中所描述的增量更新1的场景,然后让这30个用户上线,统计出服务器端的流量消耗,此过程也就是上文中所描述的增量更新2的场景.
通过以上这个测试环境我们分别测试出增量更新和全量更新分别所消耗的流量.如图4和图5所示.
图4 场景1的流量对比
图5 场景2的流量对比
由于全量更新是当用户的信息发生改变时服务器会将各个终端通讯录发送给受到影响的用户.而增量更新仅仅只是将终端通讯录中发生的变化信息发送给受到影响的用户,所以全量更新的流量消耗远远高于增量更新.
4.2性能测试
本文提出的增量更新被用于前文所述的两个场景中,因此,在性能测试中我们同样测试在两个场景中全量更新和增量更新各自的性能情况.我们主要通过逐渐增加移动终端数量来统计内存使用量、cpu占用率以及响应时间(服务器更新推送完毕所用时间).实验所用服务器配置如表3所示.
表3 服务器端配置
下图表4显示的是场景1中的增量更新(ID)和全量更新(FD)的性能测试结果表,表5所示的是场景2中的增量更新(ID)和全量更新(FD)的性能测试结果,从两张表中看出无论是哪个场景响应时间和cpu使用率增量更新远远小于全量更新,但是为了记录变更记录增量更新消耗了一点内存,但是可以换得更好的时间和传输效率.
表4 场景1性能对比
表5 场景2性能对比
4.3功耗测试
以上给出的是服务端和客户端在实验中的一些性能和流量消耗的对比图,本实验为了更加突出本方案的优势对移动端的功耗也进行了测试[18],实验场景以4.1中设计的为基础,功耗统计如图6所示.
从图6看出,随着时间推移,增量更新的功耗明显小于传统的全量更新技术.
图6
5 总结
针对目前融合通信中传统企业通讯录的更新技术在流量、功耗和传输上不能很好地适应移动互联网,本文主要提出了基于LDAP目录服务实现增量更新的方法.本文首先提出通过建立role/type模型来进行通讯录访问权限控制,并且通过这一模型来达到定向更新通知; 随后提出了,版本控制模型,通过版本控制模型我们可以进行版本对比并且结合版本变更记录表和role/type关系实现定向差量化更新.使得增量更新消耗更少的流量和功耗从而更加适合于移动互联网;但是,增量更新也有不足之处,为了达到增量更新我们需要记录版本号和变更记录,这会消耗部分服务器资源以及增加了我们维护的难度,并且为了达到增量更新,客户端需要设计更新解析器,这无疑会给客户端带来负担.
参考文献
1韩秀红,张全英.基于企业单位通讯录系统设计与实现.硅谷,2012,(17):2.
2柏祖进.XCAP协议研究.中国科技信息,2008(14):121–125
3Benoit Marchal SAX.The power API.http://www.im.com/ developerworks/xml/library/x-saxapi/2001.
4 YD/T 2013.基于Android的统一通信移动终端技术研究.
5张莲,李京.云同步系统中采用增量存储的版本控制技研究.小型微型计算机系统,2015,(36):109-112.
6Wu XY,Li HN.Remote backup system based on file type.Network & Computer Security,2012,(3): 40–42
7Xu D,Sheng YH,Ju DP.High effective two-round remote file fast synchronization algotithm.Journal of Frontiers of Computer Science and Technology,2011,5(1): 38–49
8任军.基于LDAP的目录服务综述.计算机应用研究,2005,(5):48–53
9Lightweight Directory Access Protocol (LDAP).IETF,RFC4519,June 2006
10付喜梅,陈家新.协同设计中版本存储控制策略的研究.微计算机信息,2006,(12):105–108.
11杨富玉,单纯.大型数据库应用系统的版本控制设计与实现.计算机应用,2003(7):102–104.
12刘黎志,刘军.时变维度层次版本控制方法研究.计算机应用,2007(1):79–83
13The OpenLDAP Project Web Site.http://www.openldap.org/project/.
14Active Directory Services Interface(ADSI).http://msdn.microsoft.com.
15Timothy AH,Smith MC,et al.Understanding and Deploying LDAP Directory Services,Second Edition.USA: Addison -Wesley Pub Co.,2003.
16王群.计算机网络安全技术.北京:清华大学出版社,2011.
17李建伟,刘臻,来志京,尹丰.基于用户体验的智能手机功耗测试研究.电信网技术,2014(10):3–5.
Research of Business Contacts Incremental Update in Unified Communications for Mobile Internet
JIA Zheng-Feng1,YANG Jian1,2
1(Shenyang Institute of Computer Technology,Chinese Academy of Sciences,Shenyang 110168,China)2(University of Chinese Academy of Sciences,Beijing 100049,China)
Abstract:In recent years,with the rapid development of mobile Internet,the telecommunications industry has entered the mobile era.Against this significant background,companies can make use of the mobile Internet and converge communication traffic to expand into the mobile field.As an entrance to corporate communication,the significance of business contacts can't be ignored.However,the limited characteristic of mobile Internet resources has not been paid attention to by the update technology of traditional.As a result,it is no longer conducive to the current converged communications.Therefore,this paper puts forward an incremental update methods based on LDAP directory service in order to reduce resources consumed in the mobile client and server side.In conclusion,an experimental and comparative analysis of the full amount update technology used in traditional corporate directory and incremental update technology presented in this paper is conducted with an aim to verify and confirm that the incremental update method applied in the mobile Internet gains advantages over the full amount of update.
Key words:mobile internet; unified communication; LDAP; incremental update
收稿时间:①2015-08-11;收到修改稿时间:2015-10-26