基于构件技术的移动SNS 服务端架构*
2011-06-11张同光李继光张龙昌
张同光,李继光,张龙昌
(1.新乡学院计算机与信息工程学院 新乡453003;2.北京邮电大学网络与交换技术国家重点实验室 北京100876)
1 引言
近年来,社交网络服务(social network service,SNS)飞速发展,并且出现了一大批优秀的提供社交网络服务的网站,如国外的 Facebook、MySpace和国内的51.com、开心网等。人们将自己实际的社交网络关系数字化并虚拟存储在社交网站后,社交网站就可以集中管理大量的个人社交网络数据,并挖掘其中潜在的人际关系资源。因此,有研究认为,社交网站在从根本上改变人际交往和社区活动等社会生活方式方面具有很大的潜力[1]。
目前互联网应用模式正在从普通互联网向移动互联网发展,同样的,SNS也在向移动互联网模式发展。移动SNS服务和应用是基于分布式网络软件的形式实现,可以通过网络服务、移动通信服务以及网站应用的形式提供给用户,而其用户可以是人,也可以是另外的网络服务或者应用。移动SNS系统是处在异构网络融合、内容聚合基础上的社会网络服务系统,是移动通信应用和Web应用的融合应用。移动通信技术涉及到短信、彩信、位置、视频、计费等相关技术;Web技术包括Web2.0、Mobile2.0等众多关键技术。由于移动SNS服务的提供技术包含了众多的关键技术,研制过程中存在平台复杂度高、模块复用率低、系统结构灵活性较差、不能快速适应应用变化、第三方系统之间的有机集成困难等问题。
关于移动SNS的研究已经有大量工作[3~6],然而还没有相关工作能有效解决上述问题。因此本文提出一种基于构件的移动SNS系统的设计方法,设计出移动SNS服务端系统架构,并给出系统的构件模型,有效地解决了以上的问题,从而为移动SNS系统的构建提供了一种可行方案。
2 构件技术
构件[7](component)是指应用系统中可以明确辨识的构成成分。可复用构件[7](reusable component)是指具有相对独立的功能和可复用价值的构件。构件可以包括软件工作产品、软件子系统、源代码构件、构架、领域分析、设计、文档、个案分析、经验教训、研究成果以及有创见的软件工程思想与表述等[8]。
软件构件的分类方法很多,根据构件的不同侧面可以分为不同的种类。分析应用系统的本质,可以发现其中通常包含以下3类成分[7]。
通用基本构件是特定于计算机系统的构成成分,如基本的数据结构、展现构件、逻辑构件、运算构件、基础服务等,可以存在于各种应用系统中。
领域共性构件是应用系统所属领域的共性构成成分,它们存在于该领域的各个应用系统中。在各行业领域中,这些构件具有极其重要的作用,所以领域共性构件的开发要从全局的角度进行开发,必须统一规划,通盘考虑,联合建设,使其能够适应行业领域内各专业领域的需要。
应用专用构件是每个应用系统的特有构成成分。应用系统开发主要在于前两类构成成分的重复开发。应用系统中具体业务功能模块就是应用专用构件的范畴。
3 移动SNS需求
首先,移动SNS以移动终端为媒介。当然,移动SNS也需要对用户通过PC接入SNS网站进行信息的管理、与朋友的互通等。但是,移动SNS主要还是以手机移动终端作为用户接入和使用SNS服务的手段,从而充分发挥移动终端的可携带性。这就要求移动SNS在网页设计、用户交互方式、信息传递方式等方面突出移动终端的特点。
第二,移动SNS以更为真实的社会关系为基础。在移动SNS中,用户主要通过手机接入,因此在技术上,很容易将SNS中的用户与其真实身份联系起来,从而使得在移动SNS中,更容易建立真实的社会关系。移动SNS最大价值体现在用户关系上,要帮助用户维护好第一度的联系,促进信任关系的产生,方便关系扩展,不仅要为大家提供一个认识朋友的平台,更要提供丰富多样的线上线下社交活动,为用户提供一种真实的社交生活;不仅使用户的社交面更广,同时也节约了使用者在拓展人际关系上所花费的时间成本、物质成本。
第三,将SNS与移动通信技术有机结合。移动通信是目前人们通信的主要手段之一,而通信行为绝大多数是基于一定关系的,如朋友、工作、商务等。基于SNS构建的各种社会化网络,正好能够体现这种多纬度的社会化关系。因此,基于SNS建立的社会化网络关系数据以及其他的信息可以为用户的通信提供有效的支持。同时,用户的各种通信行为,很大程度上反映了用户真实的社会关系,如果能够得到有效的利用,将能够为SNS社会关系的构建起到非常重要的支撑作用。
因此,本文设计的移动SNS平台是基于实名制的,向用户提供个性化服务、好友管理、同步通信录、社区服务、开放平台上的应用、站内搜索、沟通交流、管理平台、移动通信服务等功能。这些功能可以Web页面的方式提供,用户可通过PC或者手机终端接入进行手工操作,也可以API的方式供其他应用使用,以使得SNS建立的社会关系信息能够促进其他网络服务或应用的更加有效的使用。而作为运营移动SNS的服务商应当能够有效地管理移动SNS相关数据,所以提供了业务运营商的应用管理功能。
因此移动SNS的主要功能包括下面几种。
·个性化服务:移动SNS需要为用户提供方便展示自己个性的地方,从而让其他用户能够全面完整地了解用户。
·好友管理:移动SNS需要为用户对其各种人际关系进行的操作管理提供支持。
·移动通信录:可以在个人电脑、掌上电脑、移动电话等任何联网设备上录入联系人的移动电话号码、固定电话号码、E-mail、QQ、MSN和通信地址等通信录信息,或对以前的信息进行分组、管理和更新。
·社区服务:移动SNS需要为用户方便地构建和管理社区提供支持。
·开放平台上的应用:移动SNS需要为各种应用与移动SNS的交互提供良好的支持。
·站内搜索:能够为用户提供方便的搜索功能。
·管理平台:移动SNS用户可以对自己的以上相关操作进行批量管理。
·移动通信服务:移动SNS能够提供短信、彩信、视频和位置等移动通信相关功能。
4 基于构件技术的移动SNS服务端架构
4.1 移动SNS服务端架构
移动SNS系统总体架构,如图1所示,其中包括了移动SNS客户端、移动SNS服务端、移动网络运营商系统和第三方服务4个域。用户通过终端登录移动SNS服务域,具有编程能力的终端提供相关系统支撑模块;移动SNS服务运营域根据请求为用户提供相关业务服务,其中有可能通过与第三方服务或者移动网络运营商系统交互共同完成。
移动SNS服务端架构是移动SNS系统架构的核心,图1中的虚线部分为移动SNS服务端。移动SNS服务端位于用户、第三方应用服务和移动通信服务提供商的中心位置,其通过与上述3种角色间的交互完成社交服务。下面详细介绍移动SNS服务端提供服务的相关技术。
4.2 功能模块设计
根据移动SNS服务端架构 (见图1)中列举的移动SNS服务端的有关功能,本节设计出服务端系统的功能模块结构(见图2)。图2所示是传统的应用软件系统划分方法,移动SNS服务端系统由若干子系统组成,而每个子系统又由若干个业务模块组成,可以根据实际情况考虑是否要将业务模块继续细分为业务子模块。比如,移动通信服务可以划分成短信服务、彩信服务、位置服务、视频服务子模块。其实这样的拆分,就是一个构件业务化分割的过程。而在基于面向构件开发的过程中,应用专用构件就对应着模块这个层次。因此,可以将上述各个功能模块映射成为相应的应用专用构件,然后确定应用专用构件需求,最后还要确定哪些构件是可复用的应用专用构件。应用专用构件描述并实现了某个相对独立的业务功能模块。例如,图2中的“移动通信服务”就可以作为一个独立的业务功能模块,也适合以应用专用构件形式分割。
4.3 移动SNS服务端的构件模型
在构建移动SNS服务端系统的体系结构后,就可以确立“横切竖割,构件编织”的构件模型架构。各个子系统的功能以业务构件的形式进行部署,这样,一个应用专用构件将通过各个层次的领域共性构件和通用基本构件的协作来完成移动SNS服务功能的运行,而各个层次的构件则由具体的构件环境和应用服务器进行解析执行。从这个角度看,应用专用构件是由不同层次上的构件组合而成的。图3是由构件封装的移动SNS服务端系统架构。
4.4 移动SNS服务端的逻辑层次结构
分层的体系结构可以避免系统部件的耦合,实现了对功能的分割和保护,提高了开发的效率,可以降低系统的复杂性,增强系统的可扩展性、可复用性和可维护性,因此,适合变化复杂的移动SNS服务端系统。
根据移动SNS服务端的特点,采用面向构件方法的分层策略,设计了如图4所示的移动SNS服务端的逻辑层次结构。
移动SNS服务端的逻辑层次自顶向下分别是:应用层、展现层、逻辑层、基本能力数据层和API数据交换。这些层次正对应着各层构件。下面是各层构件的详细描述。
(1)移动SNS应用专用构件
移动SNS应用专用构件对应不同移动SNS系统的特色应用,属于移动SNS应用专用构件范畴。能够完成移动SNS具体业务功能。本文所提系统的应用专有构件包括:推荐服务、个性化服务、好友管理、移动通信录、社区服务、第三方应用管理、移动通信服务和位置服务等。
(2)移动 SNS展现构件
移动SNS展现构件对应着展现层,负责系统的界面表现、控制页面的流转和对业务服务的调用,并控制页面和业务服务之间的数据传递。
(3)移动 SNS通用构件
移动SNS通用构件对应着逻辑层,对移动SNS的属性和功能进行逻辑控制,体现移动SNS的业务规则;提供对移动SNS数据、移动通信功能、计费和Internet服务各项处理,满足移动SNS的功能需求;确保对移动SNS业务和移动SNS信息展现的有效性和合理性。
“SNS+LBS”是将SNS与移动通信中的位置服务结合生成高级的、能够实现移动SNS运营商为用户提供与位置服务相关的交友业务和应用业务。其在系统架构和开发中表现很简单,只要调用底层基本能力封装的移动运营商提供的位置服务、第三方提供的地图展示接口,即可形成定制的位置相关的服务流程。
“SNS+彩信”是将SNS与移动通信中的彩信服务结合生成高级的、能够完成移动SNS运营商为用户提供与彩信服务相关的交友业务和应用业务。其在系统架构和开发中表现很简单,只要调用底层基本能力封装的移动运营商提供的彩信服务接口即可。
“SNS+短信”是将SNS与移动通信中的短信服务结合生成高级的、能够完成移动SNS运营商为用户提供与短信服务相关的交友业务和应用业务。其在系统架构和开发中表现很简单并且目前短信业务平台非常多,没有什么特色而言。
“SNS+视频”是将SNS与移动通信中的视频服务结合生成高级的、能够完成移动SNS运营商为用户提供与视频服务相关的交友业务和应用业务。其在系统架构和开发中相对复杂,对于点对点的服务类似于视频通话业务,对于点对多点的服务类似于多媒体会议业务,其应用对移动通信网络带宽和质量要求较高,目前尚不宜作为主打应用推广。
SNS也与互联网上已有的其他服务结合,如即时消息(QQ、MSN 等)、RSS、Blog、VIKI等,这些应用通过调用第三方开放的接口和SNS中的关系数据为上层提供支持。
SNS用户数据分析是用来汇总和分析注册用户的个人数据、交友网络数据、生成内容数据(如发帖和照片等)和行为数据(如上下线时间、在线时长等)等应用移动SNS服务过程中所产生的各类数据,其分析结果可在服务端为客户提供更精准化、个性化的服务时提供参考。具体内容可参见§5.2。
(4)移动SNS基本能力与数据构件
该层构件对应着基本能力和数据层,为各项移动SNS应用提供基本能力和数据服务,包括数据库、短信、彩信、位置、视频、计费和Internet开放服务等,可以根据实际情况在其中增减各层次的构件,并提供对关系和多维数据库的支持。通过基本能力与数据层,能够成功地收集、管理移动SNS基本数据信息和获取移动通信服务能力。
(5)各层次开放 API构件
各层次开放API构件对应着基本能力与数据层、逻辑层、展现层,对于不同外部应用的需求级别给予不同层次的开放能力。由于移动SNS系统和其他交互的外部系统的结构环境的差异,因此,面临的是一个物理上分散、异质异源的环境。在这样一个异构环境中,如果没有统一的、接口良好的、包容性很强的信息集成和处理技术来为不同系统提供数据服务和业务逻辑计算服务,移动SNS服务端系统就很难做到真正的一体化,因此必须解决异构环境中的数据交换和功能利用问题。API构件将异构数据的组织形式转换成统一的数据形式,解决系统的信息集成问题;同时将异构系统间的消息交互和功能互用转换成统一的调用格式,方便系统间交互。
4.5 构件粒度设计
(1)构件粒度
构件的粒度可以分为粗粒度、中等粒度、细粒度。对于粗粒度的构件来讲,往往含有非常复杂的业务逻辑;而中等粒度的构件是由细粒度的构件组成的,其中含有一些不复杂却特殊的业务逻辑;细粒度构件往往是由一些RAD工具提供的,它具有很清晰的逻辑结构。在移动SNS服务端系统的设计中,粗粒度构件主要指应用专有构件,中等粒度构件主要指领域共性构件,细粒度构件指通用基本构件。
(2)构件粒度模型
为了识别出构件的类型(通用基本构件、领域共性构件、应用专有构件),有必要通过定量公式计算业务构件的粒度,以保证得出合理的构件设计结果。构件的粒度计算离不开业务用例。业务用例的内部实现流程通常采用活动图描述,经验表明,过程构件粒度随着活动图中的分支数和活动数这两个因素而线性增加。参考文献[9]提出构件粒度计算式如下:
其中,PC为某过程构件,Granularity为该构件的粒度,u为过程构件所聚集的某一用例,Branch(u)为该用例的活动图中的分支数,Activity(u)为该用例的活动图中的活动数,α为分支数所占的权重比例,β为活动数所占的权重比例,α+β=1。对于一般的业务用例,可以认为合理的α值为0.6,β值为0.4;但是,对于某些分支条件很多(大于7)的业务用例,可将α值提高为0.7,β值降低为0.3,以更好地反映实际特征。在移动SNS服务端系统中,通用基本构件将α调整为0,领域共性构件和应用专有构件按照上述式子适当调整α和β参数。
鉴于上述式量化粒度还是比较粗糙,还不能很好反映运行时业务构件的粒度,在其基础上,还可继续扩展其计算方法为分别代表串行结构、循环结构、选择结构、并行结构中的活动数,r为经过评估后循环执行的次数,ci为选择分支中的可能概率。那样,粒度计算式可改写为:(αus+βul+χuc+δup)×(w1,w2,…,wtotal)T,其中(w1,w2,…,wtotal)T是用例中每个活动的权值,并且 α+β+χ+δ=1。设计构件时可以适当调整 α、β、χ、δ权值,从而体现构件的粒度值。
4.6 移动SNS服务端软件架构
根据移动SNS服务端功能模块划分和逻辑层次结构的定义,设计出适合异构网络应用的移动SNS服务端软件架构,如图5所示。
移动SNS服务端软件架构由移动SNS核心模块(mobile SNS core)和移动SNS服务模块(mobile SNS service)组成。移动SNS核心模块为移动SNS运营平台的搭建提供技术支持,移动SNS服务模块为开发、执行第三方应用提供技术支持。
移动SNS核心模块由模板引擎(template engine)和移动SNS扩展模块组成。模板引擎提供了定制模板的运行环境,其中模板管理(template manager)模块定义模板、维护模板,模板运行(template runtime)负责解析、展现模板。模版引擎采用模版代码分离技术,将网站管理功能、模版制作和前台程序模块3层分离,实现了日常网站管理的易用性、模版定制的任意性、程序模块的独立性等3项满足个性化网站开发的需求。移动SNS扩展模块包括WAP、Web浏览器的扩展功能和一些完成移动SNS业务的引擎。Web Extension是Web核心模块的扩展,提供一些通用的标记语言,为第三方开发应用提供统一规范。Ajax Extension是Ajax核心功能的扩展,绑定一些移动SNS功能的动态页面应用。JS Extension是JS脚本的扩展,为开发者提供通用的JS函数和标准。JS通过调用扩展的Ajax模块功能实现用户的异步数据获取。WAP Extension是WAP核心的扩展,定义支持WML的通用的标记语言,为开发者提供统一的WML开发规范。移动SNS引擎(mobile SNS engine)由工作流引擎(workflow engine)、搜索引擎(search engine)、实体引擎(entity engine)组成。工作流引擎(workflow engine)负责解析、执行工作流。搜索引擎(search engine)负责文本、图片、内容、数据等在移动SNS系统内搜索。实体引擎(entity engine)负责数据库定义、数据查询、数据维护。
移动SNS服务为第三方应用开发提供开放API管理(API management)和第三方应用服务 (third application service)。第三方应用服务主要提供了应用定义(application creation)和应用监管(application monitor)。应用定义负责第三方应用的定义,提交移动SNS工作流系统执行,应用监管负责监督、管理第三方应用的执行。
5 结束语及展望
移动SNS是一个热点研究领域,然而目前的研究都不能解决平台复杂度高、模块复用率低、系统结构灵活性较差、不能快速适应应用变化、第三方系统之间的有机集成困难等问题。本文提出了移动SNS服务端架构,给出了详细功能描述,提出了移动SNS构件模型,描述了移动SNS构件间逻辑层次关系,提出了构件粒度模型,提出了移动SNS服务端软件架构,为移动SNS服务端设计提供了一套有效的解决方案。
然而,移动SNS的终端用户设备能力差距较大,因此需要提出一个适应能力较强的终端架构;另外,移动SNS要能提供异构网络环境的第三方应用集成,因此需要提出移动SNS的异构网络应用集成方法。
1 Ellison N B,Steinfield C,Lampe C.Social network sites and society:currenttrendsand future possibilities.Interactions Magazine,2009,16(1):6~9
2 Haobin Zhong,Lingyan Bi,Zewei Feng,et al.Research on the design method of mobile social network services.In:International Conference on Information Management,Innovation Management and Industrial Engineering,Taipei,Taiwan,2008
3 Song Li,Wendong Wang,Yidong Cui,et al.A novel prefetching method forscene-based mobile socialnetwork service.In:International Conference on Broadband Network and Multimedia Technology,Beijing,China,2010
4 Quan Chen,Yang Ji,Chunhong Zhang.Implementation of cloud and terminalcollaboration MSNS system.In:International Conference on Advanced Computer Theory and Engineering,Chengdu,China,2010
5 Yanpeng Wei,Zhigang Wen,Chunxiao Fan,etal.The simulation platform for mobile social networking.In:International Conference on Broadband Network and Multimedia Technology,Beijing,China,2010
6 张龙昌,刘志晗,董昊.基于FOAF的分布式移动SNS应用.电信科学,2010,26(5):88~92
7 杨芙清,梅宏,李克勤.软件复用与软件构件技术.电信科学,1999,15(2):68~75
8 林正奎,杨德礼.软件构件复用技术综述.计算机工程与设计,2004,25(6):877~880
9 徐伟,尹宝林.企业信息系统业务构件设计研究.软件学报,2003,14(7):1 213~1 220