APP下载

基于异构终端的云信息服务平台设计与实现

2017-07-12甘西军

电子设计工程 2017年12期
关键词:功能模块异构终端

宋 刚,甘西军,杜 雯

(贵州省新技术研究所 贵州 贵阳550001)

基于异构终端的云信息服务平台设计与实现

宋 刚,甘西军,杜 雯

(贵州省新技术研究所 贵州 贵阳550001)

针对一种信息服务平台只能支持一种架构或者一种操作系统的展示终端,而不能同时支持多种架构或多种操作系统的展示终端,导致每个平台都是信息孤岛,无法进行数据共享和大数据统计分析的目的。采用HTML5跨平台多媒体展示方法,通过设计支持异构终端的云信息服务平台应用,实现平台支持多种异构终端统一管理、统一发布、统一数据采集、统一服务,用户可针对不同的应用场景,灵活选择不同的展示终端。

异构终端;云服务;插件式设计;HTML5

在信息化时代,传统的文字阅读已由纸质逐渐向以手机、平板等可视化屏幕的阅读方式过渡;传统的广告、信息发布渠道,已由电视、广播逐渐过渡到以IP网络为载体的信息推送模式。试想一个城市居民,每天可以接收到多少信息推送服务?比如:机场的立体式广告机、商场的交互式信息服务终端、电梯口(电梯内部)的壁挂式广告机、以及在自己的手机、平板上阅读信息等等。

以IP网络为载体,以可视化、交互式终端为界面的信息化推送方式无疑会继续深入社会的每个角落。同样,以大数据为背景,实现数字化信息的跨平台共享,这也是不可逆转的技术趋势!延续上一个例子继续说明:机场的立体式广告机,广告内容来自于某承包商的服务器;商场的交互式信息服务终端,信息内容来自于商场自己的信息发布;电梯的壁挂式广告机,来自于某知名广告商的广告推送;手机、平板上阅读的信息,由某知名APP提供商所推送。所有这些信息,是由完全不搭边的信息提供商各自推送,所推送的信息也只能在特定的终端平台上阅读、观看;即使有一天你在这些平台上看到了相同的信息,也是因为信息在多个平台上重复推送所达成的。从技术的角度来讲,这种由于平台不同而造成的信息孤岛,有悖于大数据的发展趋势。

文中将介绍一种基于异构终端的云信息服务平台实现技术。异构终端,是指CPU构架不同、操作系统不同的各种终端设备。基于异构终端的云信息服务,是指在一个服务器上的一次推送,不同构架多个终端设备的同时接收和播放。一次推送,服务于所有构架的信息终端,这是真正的大数据跨平台共享。

目前,市场上应用较多的信息服务平台大多采用C/S或者B/S架构模式。C/S构架模式有效率高、安全性高的特点,但是技术封闭、很难做到平台间兼容。采用B/S构架的模式则相反,平台易于搭建、兼容性好,但是安全性低、实时性差。另外,各厂家常常以其封闭技术搭建信息发布系统,这会导致不同品牌间的信息服务平台不能兼容,而这种不兼容的根本,往往来自于终端平台技术的局限性。通常一种信息服务平台只能支持一种架构或者一种操作系统的展示终端,而不能同时支持多种架构或多种操作系统的展示终端。比如,常使用的终端操作系统有:Ubuntu、μClinux[1]、Android、Window 7、Window CE 等操作系统,常使用的终端架构有:嵌入式架构终端、X86架构终端。正是由于网络构架的不同、技术封闭性、各种播放终端的技术局限性这些原因,用户很难用这个厂家的信息终端去接入另一个厂家的信息服务平台。

1 平台总体设计

基于异构终端的云信息服务平台主要功能是对异构展示终端进行集中管理(状态查看、参数配置以及软件升级等)以及展示内容的更新控制。平台的信息服务采用B/S架构,终端管理采用C/S构架。服务器端开发工具为JAVA[2],底层采用MySql数据库进行支撑,客户端采用extjs[3]进行开发。服务器运行于Windows Server 2003或者更高版本[4]。展示终端支持嵌入式架构和X86架构两种不同终端设备。整个平台主要包含6个主功能模块:展示终端管理、展示模版管理、媒体文件管理、节目制作管理、节目发布管理以及用户权限管理。如图1所示。

图1 系统基础架构

管理计算机与云端服务器的交互方式:管理员通过任何可以接入广域网的计算机,以浏览器登录云端服务器进行平台的管理。展示终端与云端服务器的交互方式:展示终端与云端服务器保持一个HTTP[5]的长连接,当云端服务器有任何消息需要通知展示终端时(例如展示终端配置参数改变,发布内容改变或者需要显示即时消息等),均通过这个长连接向展示终端下达指令。展示终端收到消息通知后,再通过访问云端服务器的指定服务接口(也为HTTP服务),获得具体的消息内容(如具体的配置参数、发布内容等)并进行相应的动作。终端与服务器之间的即时HTTP通讯,是融入了HTTPS[6]标准的安全B/S构架;两者之间维持的长连接,是一个标准的C/S构架。

对于异构特性的支持,主要表现在云端服务器能同时对A类和B类两种不同构架的终端提供信息服务。A类终端的信息播放行为按照自定义的语法实现,而B类终端的信息播放行为则按照HTML5[7]标准语法实现。基于HTML5标准语法的终端可以覆盖市面上大多数展示终端平台,包括X86、Android[8]、Linux[9]手持设备等,HTML5是正真的跨平台交互式信息媒体形式,是我们当前设计的主推模式。A类仅针对某类特定展示终端,但是可以通过插件方式扩展,以在服务器端插入新功能模块的方式支持更多范围的特定展示终端。

2 功能模块设计

2.1 功能模块逻辑关系

如前所述,基于异构终端的云信息服务平台包含6个主要的功能模块,这6个功能模块的逻辑联系和先后顺序如图2所示。

图2 功能模块逻辑关系与先后顺序

首先,为了保证系统的安全和便于进行权限控制,除了“展示终端管理模块”外,其他几个功能模块都需要“用户权限管理模块”来参与工作,“用户权限管理模块”此时的作用是对其他模块产生的中间结果进行审核 (只有具有相应权限的用户才能进行审核),审核通过的中间结果才能供下一级模块使用。

其次,为了使展示终端能够播放一个发布包,需要经历以下几个步骤:

1)通过“展示模版管理模块”制作展示模版,这一步完成后将产生一个中间结果,描述播放布局(视频、图片、字幕等区域的位置和大小信息),这些信息将被存入数据库中指定的表中。

2)通过“媒体文件管理模块”上传媒体文件至服务器端,对上传的媒体文件进行CRC校验,然后将文件保存至存储系统,并在数据库中指定的表中记录文件的相应信息(文件名、大小、存储的位置、CRC校验结果等)。

3)在第 1),2)步完成后,就可以通过“节目制作管理模块”来进行节目的制作了,节目制作完成后将会在数据库中记录节目的相关信息,同时还将产生一个中间结果,称为一个“节目包”或者“发布包”,包含以下内容:一个html文件,该文件描述了各个区域的位置和大小信息,以及各个区域需要展示的媒体文件列表。同时还有控制播放逻辑的javascript脚本;一个media文件夹,里面包含了所需要的媒体文件。

4)“节目发布管理模块”用于指定展示终端使用第3步生成的“发布包”进行节目的播放。发布生效后,服务器通过长连接通知展示终端从服务器的指定位置下载“发布包”,最后自行进行播放。

在6个功能模块中,异构终端共享“用户权限管理”、“媒体文件管理”、“展示终端管理”、和“节目发布管理”4个模块,异构的区别在于 “展示模版管理”、“节目制作管理”两个模块。当前系统设计集成了对A类播放器、B类播放器的模版和节目制作功能,同时提供插件接口,让其他用户集成更多特定的模版和节目制作功能的实现,以支持更多的异构展示终端。如图3所示。

图3 发布包制作与发布流程

2.2 单个功能模块的插件式设计

虽然系统的6个主要功能模块在逻辑上是有逻辑联系和先后顺序的,但是考虑到整个平台各个功能优先实现的先后顺序不同,并且为了合理利用开发团队资源和加快开发进度。需要有一种“插件式”的方式来实现各个功能模块,就是可以按照需要的顺序实现各个功能模块,为了解决各个功能模块间的逻辑联系和插件式实现的矛盾,这里采用针对某些功能模块提供额外接口和部分功能延迟实现的方式来解决。具体实现方式如下:

“展示终端管理模块”和“节目发布管理模块”是系统运行的必不可少的功能模块,所以这两个模块在最小系统中也是必须实现的。各个功能模块中可以暂时延迟“用户权限的功能”,即用户直接具有审核和发布的权限,待“用户权限管理模块”功能实现后再修改各个功能模块的权限逻辑,这种方式可以将“用户权限管理模块”作为一个插件,后期实现。“展示模版管理模块”、“媒体文件管理模块”和“节目制作管理模块”这3个功能模块,可以通过“插件式”的方式来实现,原因在于这3个模块都是产生中间结果,这些中间结果最终被“节目发布管理模块”使用。如图4所示。

图4 功能模块中间结果

2.3 功能模块实现顺序

为了使平台尽快达到可用状态,将按照以下顺序开发各个功能模块:展示终端管理模块→节目发布管理模块(提供接口A及接口B)→媒体文件管理模块→展示模版管理模块→节目制作管理模块→用户权限管理模块。

3 服务器端与展示终端通信

服务器与展示终端的通信协议[10]是平台中的关键技术之一,它决定了平台控制与信息发布的智能化、高效化、人性化等问题。服务器端为B/S结构的网络应用程序,它主要由两部分组成,一个是面向编辑需求的客户端,为用户提供播放列表的编辑、组的管理、组私有媒体库的管理等服务功能;另一个是面向展示终端提供的媒体更新服务。为了扩展服务器和展示终端之间通讯的实时性,在两者之间的HTTP多个连接中,通过连续的、有一定时间间隔的HTTP数据通讯维持了一个常态的TCP链接,以这种方式在两者之间维持一种扩展的、类似C/S的通讯模型。服务器端可以在局域网内或跨广域网构建,服务器与展示终端之间通常以一对多的模型构建。如果服务器是在局域网内,而需要使用网关设备向外网提供服务,则必须要在网关设备上设置端口映射。展示终端与服务器之间的连接通常由展示终端发起,所以在子网内的展示终端访问外网的服务器时,不需要端口映射。

在设计服务器时,首先服务器生成play_list.smil(smil为“同步多媒体集成语言”,是为XML[11]文件针对多媒体播放控制的一个子集)和output_conf.xml文件,同时还需要提供上传下载服务。简单来说,有了以上机制,就已经可以通过服务器来驱动展示终端进行工作。当然为了使程序稳定健壮的工作,还必须加入其他辅助机制。如表1所示,服务器与展示终端通讯协议[12]。

表1 服务器与展示终端通讯协议

服务器作为展示终端媒体文件及配置的发布服务器,为多个展示终端提供分组配置管理,提供播放列表、媒体文件以及其它配置文件下载的文件服务器。两者之间的通讯过程大致如图5所示。

图5 通讯过程

1)展示终端与服务器建立常连接:

在展示终端的设置上需要设置相应的服务器的IP地址服务端口号以及该展示终端的分组地址,然后展示终端再启动后会自动根据该IP地址和端口与服务器建立TCP连接,并通过HTTP协议,访问服务器建立常连接的入口页面EntryPage.php[13],完整的URL如:/EntryPage.php?groupid=分组ID,通过访问此页面完成与服务器建立常连接。对服务器而言,可以通过传递过来的groupid确定该展示终端属于哪一个分组,这样在后面将会将该分组对应的配置信息发送给它。

2)服务器通过常连接发送信息到展示终端,包括一下3个方面:

①发送时间同步信息。如果你需要将展示终端的时间与服务器进行同步的话应该每隔一段时间(如30秒)向展示终端发送一次时间同步的数据,并且时间同步应该在发送所有其它数据之前进行至少一次,保证在展示终端运行时它的时间是正确的。

②发送展示终端的基本配置信息。在展示终端刚与服务器建立常连接时或者更改了配置信息时,将发送该展示终端对应分组的配置信息到展示终端中。

③发送当前分组中正处于更新的Dl_Msg到展示终端。如果当前分组有正处于更新的更新计划,将在刚建立常连接后,无条件发送一次给展示终端,此后如果有新的更新才会发送新的Dl_Msg给展示终端。

3)展示终端从服务器下载相关的媒体文件或其它的配置文件:

展示终端检查发送过来的Dl_msgID,如果已经存在此Dl_msgID表示此Dl_Msg已经被处理过了,不需要再处理了。如果没有处理则从服务器下载Dl_msg指定的dl_list.xml,下载成功后,读取dl_list.xml中的需要下载的文件列表,然后依次从服务器下载这些指定的文件到展示终端。下载完成后,记录当前处理的Dl_MsgID,然后重新启动展示终端。

以上简单介绍了服务器与展示终端的通讯过程,下面从展示终端通讯流程和服务器端通讯流程两方面,详细介绍一下服务器与展示终端的通讯流程。

1)展示终端通讯流程

前面说过,展示终端的所有展示功能都是通过配置文件来实现的。下面我们从展示终端描述通讯流程。为方便起见,我们假设已经有了服务器,存在所有的配置文件,并且提供了文件下载服务。IP为192.168.16.123服务端口为80组ID为1。该组中有一个已经配置好的播放列文件play_list.smil和相应的播放文件 test.avi,输出配置文件output_conf.xml,同时服务器提供HTTP服务,可以下载所需的文件。

①展示终端连接请求,展示终端上电启动,并初始化完成后,服务器首先会查找存储介质目录下 /sys_conf.xml文件。该文件为展示终端生成,通过解析文件,展示终端会向serv2_ip(即192.168.16.123)端口serv2_port(80)发送连接请求信息,信息定义如下:“GET/%s&Mac=%s&ip=%s HTTP/1.1 Host:%s ”。GET/%s中的%s为serv1_constant_rq的值,这里即entrypage.php?groupid=1;Mac=%s中的%s为展示终端的Mac地址;ip=%s中的%s为展示终端的本机ip;Host:%s中的%s为serv2_ip的值,这里即192.168.16.123。

②展示终端的侦听,服务器接收到连接请求后,会建立网页“192.168.16.123/entrypage.php?groupid=1”,该网页会不断发送数据,用于保持展示终端与HTTP协议的常链接(HTTP协议如一段时间无数据传输将会自动断开),保证服务器端信令与展示终端的通讯。如该组有多个展示终端,它们都会与此网页连接。作为服务器端,客户指令都将经过处理发布到该网页,展示终端通过侦听该网页来获取更新。当展示终端完成与服务器的链接后,将进入侦听阶段,展示终端始终侦听服务器的指定分组的更新信令。EntryPage.php代码中可以发布3组信息 OConfObj、syscfgObj、dlMsg。

OConfObj输出配置更新信令,当用户更改输出配置文件后,服务器生成output_conf.xml,读取该文件以字符串形式发布到该网页,展示终端获取后更改其输出配置。

syscfgObj为时间同步信令,它会以服务器的系统时间用来生成一个xml语言的字符串,该字符串会被展示终端的时间同步线程侦听到,进而同步展示终端的系统时间。

dlMsg为更新信令,服务器生成play_list.smil之后,会根据播放列表把所有需要的文件生成dl_list.xml,再由dl_list.xml生成dl_msg.xml文件。服务器通过字符串方式将dl_msg.xml的内容发布到该网页,展示终端侦听到该字符串,解析后得到dl_list.xml路径信息。而后启动文件下载程序,下载dl_list.xml,再由其得到文件更新列表,最后按更新列表继续下载需要的文件。

③展示终端的状态反馈信息,以2秒一次的频率向服务器反馈播放状态,也就是所说的“心跳”功能,发送字符串如下:“GET/status.php?groupid=%d&Mac =% s&playstatus =% d&playfile =%s&syncstatus=%d&syncfile=%s HTTP/1.1 Host:%s ”。groupid=%d中%d的值为展示终端的分组ID序号;Mac=%s中的%s为展示终端的Mac地址用于服务器区分不同的展示终端;playstatus=%d中%d有3 个取值:“0”播放停止,“1”正在播放媒体文件,“2”媒体文件被暂停;playfile=%s中%s为展示终端正在播放的文件名,如展示终端处于停止播放状态则为空;syncstatus=%d中%d有2个取值:“0”展示终端未进行更新动作,“1”展示终端正在更新节目列表;Syncfile=%s中%s为展示终端更新文件时正在更新的文件名,如未更新,该项为空;Host:%s中%s为sys_conf.xml中定义的serv2_ip的值。

2)服务器端流程

对于服务器流程设计需要考虑的有以下几个方面:用户交互界面,包括用户上传文件,设置输出参数生成output_conf.xml,编辑播放列表生成play_list.smil等;设置下载服务器,提供可下载的文件用于展示终端下载;底层通讯协议的握手、同步、数据发送等。

①用户交互界面,用于人机交互,是用户直接可以看到的部分,主要考虑操作的便捷性、直观性。从与展示终端的通讯角度来说,交互界面至少应实现以下功能:用户上传文件的管理。出于下载安全,校验等方面的考虑,用户上传的媒体文件,我们会在其文件名后加上该文件的CRC值。如经计算test.avi的CRC值为0123456789,那么文件在服务器中存放的名称应该为test_0123456789.avi。生成播放列表文件,输出参数配置文件。用户界面需要为用户提供一个直观的操作平台,使用户能够方便的表达对展示终端的操作意图,而其最终目的是生成展示终端所能解析的xml语言文件为底层通讯协议提供支持。文件play_list.smil和output_conf.xml是根据用户操作得来。

②通讯协议的握手,展示终端连接到网页后,会一直侦听指定端口的指定分组,只要获取到新信令,展示终端将主动解析信令进行指定动作。另一方面,收到任何一台展示终端的连接请求后,服务器生成常链接网页entrypage.php,来保持与展示终端的连接。

服务器通过用户交互界面产生控制播放的若干文件,等待展示终端的连接。展示终端与服务器端成功连接后,不断侦听网络信令,如发现服务器有新的信令就执行信令指定动作,与服务器端进行同步完成后,展示终端会自行执行新的动作。

4 平台实现

基于异构终端的云信息服务平台客户管理界面,其中包含6个主功能模块:展示终端管理、展示模版管理、媒体文件管理、节目制作管理、节目发布管理以及用户权限管理。平台经过黑盒测试[14]、压力测试和试运行,其中共设计了11个测试用例,执行用例11个,未执行用例0个,通过测试用例11个,未通过测试用例0个。并且平台可根据网络带宽情况,实时调整信息内容发布策略,管理1000台以上异构终端设备。平台的实现,大大提高了信息服务平台的工作效率和工作质量,解决了信息孤岛问题,使不同展示终端的数据得到了共享,为以后的大数据统计和分析做好了准备。

5 结束语

基于异构终端的云信息服务平台设计与实现,从平台总体设计、功能模块设计、服务器端与展示终端通信、平台实现四个方面对平台进行了介绍。该平台的设计解决了多种异构终端不能由一个平台管理的缺点,解决了信息的跨平台重复发布的缺点,提高了工作效率,节省了运营成本,并真正实现了信息的跨平台共享。目前该平台已开发完成,并投入商业运行。未来,我们将对平台的加密技术[15]进行深入研究,加入数字水印技术、3DES加密,使平台安全性更高、应用场景更多。

[1]W.Richard Stevens.Unix环境高级编程[M].张亚英,戚正伟,译.北京:人民邮电出版社,2014.

[2]Elliotte Rusty Harold.Java网络编程[M].李帅,荆涛,译.北京:中国电力出版社,2014.

[3]钟协良.Ext JS开发实战[M].北京:清华大学出版社,2012.

[4]杨秋黎.Windows网络编程[M].北京:人民邮电出版社,2015.

[5] 上野宣.图解HTTP[M].于均良,译.北京:人民邮电出版社,2014.

[6]David Gourley.HTTP权威指南[M].陈涓,赵振平,译.北京:人民邮电出版社,2012.

[7]Adam Freeman.HTML5权威指南[M].谢廷晟,牛化成,刘美英,译.北京:人民邮电出版社,2014.

[8]朱桂英.android网络开发技术实战详解[M].北京:电子工业出版社,2012.

[9]宋敬彬.Linux网络编程[M].北京:清华大学出版社,2014:181-232.

[10]Andrew S.Tanenbaum,Davi J.Wetherall.计算机网络[M].严伟,潘爱民,译.北京:清华大学出版社,2012.

[11]Joe Fawcett,Liam R.E.Quin,Danny Ayers.XML入门经典[M].刘云鹏,王超,译.北京:清华大学出版社,2013.

[12]马宏斌.数据通信与网络协议[M].北京:清华大学出版社,2015.

[13]明日科技.PHP从入门到精通[M].北京:清华大学出版社,2013.

[14]朱少民.全程软件测试[M].北京:电子工业出版社,2014.

[15]Bruce Schneier.应用密码学[M].吴世忠,祝世雄,张文政,译.北京:机械工业出版社,2014.

Design and implementation of cloud information service platform based on heterogeneous terminal

SONG Gang ,GAN Xi-jun ,DU Wen
(Guizhou Institute for New Technology,Guiyang 550001,China)

Aimed at an information service platform can only support a structure or an operating system of the terminal display while not simultaneously support multiple architecture or multiple operating systems display terminal, result in each platform is the information isolated island,it can not data sharing and big data statistical analysis.Using HTML5 cross platform multimedia display method,through the design of the support cloud information service platform and application of heterogeneous terminals,realize the platform to support heterogeneous terminal unified management, unified release, unified data acquisition and service,the users can flexibility to choose different display terminal according to different application scenarios.

heterogeneous terminal; cloud services; plug-in design; HTML5

TN915.03

A

1674-6236(2017)12-0128-06

2016-04-20稿件编号:201604200

宋 刚(1984—),男,贵州贵阳人,硕士。研究方向:物联网技术、嵌入式系统。

猜你喜欢

功能模块异构终端
试论同课异构之“同”与“异”
X美术馆首届三年展:“终端〉_How Do We Begin?”
通信控制服务器(CCS)维护终端的设计与实现
异构醇醚在超浓缩洗衣液中的应用探索
多功能北斗船载终端的开发应用
overlay SDN实现异构兼容的关键技术
基于ASP.NET标准的采购管理系统研究
LTE异构网技术与组网研究
输电线路附着物测算系统测算功能模块的研究
M市石油装备公服平台网站主要功能模块设计与实现