一种基于流媒体的电子白板业务的实现
2013-08-30刘革汪洋夏猛丁慧霞
刘革汪洋夏猛丁慧霞
(1四川省电力公司四川成都610041)
(2中国电力科学研究院北京100192)
(3河北远东哈里斯通信有限公司河北石家庄050200)
1 引言
即时通信系统是指能够即时发送和接收互联网消息,允许通信双方即时地传送文字、语音和视频等信息,能够跟踪网络用户在线状态的网络应用软件。随着互联网的发展和需求的不断变化,传统的即时通信系统暴露出对图形即时通信支持方面的不足。在信息社会里,人们的工作方式具有群体性、交互性、分布性和协作性等特征[1]。电子白板是指一个虚拟的公共区域,支持图形绘制和文档共享,每个共享白板用户对白板的操作都能实时反映到其他用户的白板视图上[2,3],即所谓的"你见即我见"。通过电子白板,地理上分散的人们可以实时地进行交流与协作[4]。
针对即时通信系统对图形传输支持方面的不足,本文将电子白板与即时通信相融合,在即时通信系统中添加电子白板功能,实现图形的即时通信,使网上交流的形象性和直观性大大加强[5]。电子白板弥补了文字交流的不足,促使通信双方更好地进行交流与协作,使即时通信软件发挥出更大的商业价值和社会价值。
2 关键技术
2.1 流媒体
流媒体(Streaming Media)是指以流的方式在网络中传输音频、视频和多媒体形式的文件。流媒体传输方式是将多媒体文件经过特殊的压缩方式分成一个个压缩包,由流媒体服务器向用户计算机连续和实时传送。用户不用等待整个文件全部下载完毕之后才能看到当中的内容,而是只需经过几秒或者几十秒的启动延迟即可在用户的计算机上播放,此时多媒体文件的剩余部分将在后台继续下载,直至播放完毕。
2.2 OpenMeetings
OpenMeetings是一个基于Flash流媒体的多语言可定制的开源视频会议和协作系统,通过RTMP和HTTP协议传送数据[6],OpenMeetings系统提供视频会议、桌面共享、后台管理、白板、文档转换和文字聊天等功能,通过白板可以导入各种格式的图片和涂鸦。OpenMeetings采用B/S架构,它的服务器基于开源的Flash服务器---Red5,所有支持Flash的IE浏览器都可以使用OpenMeetings的白板,提供doc、ppt、pdf及jpg等文件的白板共享及涂鸦。
OpenMeetings服务器端是使用Java语音开发的,采用了Spring和Hibernate框架。前台的浏览器页面请求与后台服务器的交互大部分通过RPC(Remote Procedure Call)远程调用实现,也有少部分是通过http协议完成的,比如图片的上传和显示,文档的上传等等。这一部分与传统的B/S架构类似,后台的servlet和service接口处理业务逻辑时通过Hibernate访问数据库,并将获得的数据返回给前台,由浏览器负责页面显示。
OpenMeetings白板能够实现多种格式的文档和图片的共享,如图1所示。需要下面几种外部扩展工具的支持:开源办公软件OpenOffice,主要用来处理OpenMeetings白板中演示的MS Word、Excel、PowerPoint和txt等多种格式的文件转换成PDF文件;图像处理ImageMagick,OpenMeetings通过它处理白板中的图像操作以及生成等工作;Flash转换工具SWFTools,将上传的文件或者系统中运行的文件转换成swf文件,以便前台可以访问。
图1 OpenMeetings系统结构
3 电子白板界面设计及实现
OpenMeetings是一个针对网络视频会议的开源软件,提供了大量视频会议方面的功能,如视频会议、预约会议、音视频播放和桌面共享等,而即时通信软件中只需要使用OpenMeetings的白板功能,因此需要对其做一定的改造,去掉多余的功能,重新设计电子白板界面。电子白板的界面设计包括点击白板按钮后直接进入到电子白板的房间列表,房间的界面设计以及房间界面的汉化等。
3.1 直接进入房间列表
OpenMeetings的电子白板与即时通信软件融合后用户都是通过即时通信软件登录,在使用电子白板功能时不需要重新登录OpenMeetings,因此需要去掉OpenMeetings提供的登录界面。系统默认使用登录即时通信软件的用户名和密码后台登录OpenMeetings服务器,绕过OpenMeetings的登录界面直接使用白板,还需要考虑即时通信软件和OpenMeetings的账号同步问题。
OpenMeetings提供的登录界面中包含一个选择语言的下拉菜单,如果绕过登录界面则默认语言为英文。为了方便用户使用,需要将默认语言从英文改为中文,这样用户就可以使用默认语言直接进入中文界面。用户登录OpenMeetings后会进入到主界面,主界面提供视频会议、电子白板、系统配置和桌面共享文字聊天等多种功能。由于用户只需要使用电子白板功能,登录以后需要直接进入到房间列表界面。
经过上面的修改,可以实现在即时通信客户端上点击电子白板按钮,直接进入到房间列表,选择进入相应的房间与房间内其他用户一起进行共享白板操作。
3.2 房间界面设计
进入房间后会发现房间内包含许多与电子白板不相关的其他功能,为了使白板界面整洁,需要去掉这些多余的功能。房间界面中包含导航菜单,通过导航菜单能够方便的从电子白板房间切换到其他房间,如视频会议。由于用户不需要OpenMeetings除电子白板以外的其他功能,导航菜单对用户操作白板也没用任何用处,需要在房间界面中去除导航菜单。房间顶部有一排功能菜单,如申请主持和投票等等,用户使用电子白板时用不到这些功能,而且这些功能全都可以在即时通信软件中实现,所以可以根据需要将这部分功能菜单删除。房间列表右侧有一个聊天窗口,即时通信软件已经提供了相同的功能,因此需要修改房间列表,删除房间列表右侧的聊天窗口。
4 白板流程设计及实现
4.1 白板流程
电子白板的业务流程图如图2所示,要实现该流程,需对OpenMeetings服务器端进行改造,改造后的服务器称为WhiteBoard服务器。
图2 白板业务流程图
用户在登录即时通信软件后,点击电子白板按钮,客户端会弹出一个WebBrowser界面,通过url登录到WhiteBoard服务器。客户端绕开WhiteBoard服务器提供的用户登录界面,直接进入房间列表。
进入房间列表后,用户可以选择一个房间进入或者创建一个房间。如果用户选择创建一个房间,则WhiteBoard服务器为该用户分配一个空闲的房间号,用户利用这个房间号创建一个空房间并进入,新创建的房间将显示在房间列表中,方便其他用户加入。创建房间的用户拥有房主权限,房主有权邀请某一用户加入房间或者将某一用户踢出房间,并且可以修改房间内其他所有用户对白板的操作权限。如果用户选择进入房间,那么用户只具有操作白板的权限,而不能够增加或者删除房间内的用户。用户进入房间之前需要房主认证,认证通过之后才可以进入房间并能够看到之前房间内所有用户对白板的操作。
WhiteBoard的电子白板为用户提供了丰富的功能,用户可以在白板中绘制一些简单图形,共享图片和电子文档,并对共享的图片或文档进行标注等操作。用户进入房间后默认具有对白板的读写权限,房主也可以根据实际情况将某一用户的权限改为只读,此时该用户只能看到别的用户对白板的操作而不能对白板进行修改。在使用完电子白板后,普通用户可以选择退出房间,退出房间之后房间仍然存在,如果房主退出房间,则房间消失。
4.2 流程实现
WhiteBoard提供了一个名为SOAP网关的WebService,它集成了一系列用户操作功能,包括用户登录、进入房间、创建房间和房间管理等功能等。
为实现上述白板操作流程,利用WhiteBoard的SOAP接口来实现一个servlet,这个servlet接收房间号和用户昵称等信息,然后组装一个进入房间的url,并将用户WebBrowser重定向到这个url,实现房间登录。使用SOAP网关登录房间的步骤如下:
①调用getSession方法向系统申请一个SessionID;
②提交用户名和房间号等信息,使用loginUserEx方法验证用户身份。loginUserEx方法是自定义的扩展方法,目的是把原有基于管理员的用户身份验证方式改为基于房主的身份用户验证,增加房主对房间内人员的管理功能;
③如果用户身份验证通过,则更新session里的数据,获得hash;若用户身份验证失败,则返回错误信息,并禁止其进入房间;
④使用第三步中获得的hash码组装一个能够进入房间的url,重定向到这个url,进入房间。
通过以上步骤,可以实现用户自动登录、登录后直接进入房间列表、房间的进入和创建及房主对用户的身份验证等功能,实现了整个电子白板的业务流程。
5 结束语
用户通过上面介绍的这种电子白板业务能够实现共享多种格式的图片和电子文档及绘制一些简单图形来表达自己的想法和对文档进行标注等功能,并提供白板保存功能,方便用户以后查看。电子白板与即时通信软件的融合丰富了用户的沟通方式,使通信双方获得了更好的用户体验。尽管如此,基于流媒体的电子白板业务仍存在一些问题。例如,采用B/S架构的电子白板和采用C/S架构的即时通信软件融合时由于风格不统一[7],如何保证用户体验是关键,这将是未来的研究方向。总之,基于流媒体的电子白板业务仍然具有很好的实际应用意义。
[1]肖 波,王兆青,诸鸿文.电子白板互操作的研究和设计[J].上海交通大学学报,1998,32(8):12-15.
[2]胡晓胜,贾一竹.多媒体网络教学系统中电子白板的设计与实现[J].中国现代教育装备,2008(9):148-150.
[3]华致立,江 红,顾君忠.分布式网络会议的电子白板的原理及其实现[J].计算机工程,2002,28(2):172-176.
[4]杜呈伟,李伟荣,吴新国.基于B_S的电子白板的设计与实现[J].计算机工程与设计,2006,27(16):3021-3023.
[5]许建龙,王兆青,彭来发,等.基于Java的电子白板设计[J].浙江工程学院学报,1999,16(4):303-309.
[6]彭凌华,赵 蕊.OpenMeetings的网络视频会议系统的研究[J].电脑知识与技术,2011,7(12):2909-2911.
[7]洪 晟,熊华钢,张其善.一种改进的协同式电子白板的设计与实现[J].计算机工程,2008,34(2):261-263.