支持移动终端多用户协同交流的云黑板平台实现 参考论文
摘要:本文针对基于云计算的远程教育对实时性、多样化、个性化交流的需求,提出了支持移动自主学习的云黑板教学模式,并设计开发了基于移动WEB的多用户协同交流云黑板系统。
关键词:远程教育;协同技术;云黑板
中图分类号:G40-057 文献标识码:A 论文编号:1674-2117(2016)19-0069-04
● 引言
当前的远程教育系统,无法充分发挥教室内传统教学实时交互交流的优势。虽然能为用户提供一定的协作交互环境,但都是按照系统预先设置好的步骤进行,缺少灵活性。当需要实时沟通时,基本上是通过视频、语音和文字的方式进行交流,可许多沟通是需要通过一种类似传统课堂的黑板媒介来实时交互进行的,这一点在现有的远程教学系统中却很难实现。
因此,笔者结合当前的云教育平台,研究了一种基于移动终端的支持自主移动学习的“云黑板”教学平台,它具有支持模拟黑板协同交流、支持移动WEB跨平台和支持多用户在线实时参与的特点,能为远程用户提供实时交流,更能激发学生的学习兴趣和学习动力,体现学生学习的能动性和自主性。
● 支持移动自主学习的云黑板模式
现代远程教育由教师、网络和学生三个关键要素组成。传统的网络教育是教师在线直播,学生连接网络接受授课的在线教育模式。然而直播并不能真正体现远程教育对实时性的需求,即使学生能够在线提问、在线留言。笔者提出的云黑板教学模式,不仅会有基本的多用户语言交流,更能支持师生在云黑板平台实现模拟黑板的操作,即教师在授课的同时,可以在云黑板上作图,学生可以实时参与从而协同绘制,最终实现实时“你见即我见”的效果。云服务资源服务器的支持,以及云黑板移动终端客户端的适配让远程教育用户有了多样化、个性化的选择。对移动设备的支持,可以最大程度地减少教师开课以及学生上课时受到的时空限制;学生可以实时参与多种课程的学习,为自己制订学习计划,充分体现云黑板系统对多样化、个性化需求的满足。这样,移动终端多用户协同交流云黑板,真正做到了适应任何人在任何时间、任何地点,选择任何内容进行学习,真正让使用对象脱离计算机屏幕的约束,给参与者提供了一种舒适休闲状态的学习启发空间,提供了便利的随时随地参与学习的自主移动学习途径。
作为为移动终端客户端提供云黑板的后台支持,服务器端运行云黑板支持系统还需要建立相应的远程教学资源库。移动终端主要提供云黑板客户端模块,如下页图1所示,需要解决的关键技术有浏览器矢量图形绘制与编辑、矢量图形对象并发控制,同时需要解决基于服务器推送的协同设计功能。
● 关键技术
1.系统架构
移动终端以安卓为例。图2是云黑板系统的技术架构,从图中可以看出这是一个混合应用的设计方式,移动WEB客户端被一个原生应用承载。混合型的云黑板系统移动客户端不仅保留了一定的可移植性,还保证了类似原生应用的体验。移动终端客户端主要分为基本矢量图形接口、各功能模块实现层、用户接口调用层三层。底层基本矢量图形的接口函数,提供绘制矢量图形的上层调用,这一层是整个矢量图形的核心层。功能模块实现层能实现网页矢量绘制平台的大部分功能。在该层调用底层绘图函数实现动态绘制、图形数据的异步保存和协同绘制。最上层是矢量图形显示及用户接口层,它为用户提供绘制基本矢量图形、选择矢量图形、编辑矢量图形的工具,以及用户当前操作的图形显示和操作状态显示。
2.关键技术
(1)移动终端的多用户协同技术
在大多数情况下,协同设计架构主要是C/S(Client/Server)结构,服务器能够实时向客户端推送更新的消息,而不需要客户端向服务器请求。云黑板客户端为了保持自身的优点,采用了混合模式APP,其核心是移动WEB。且在移动WEB的B/S(Browser/Server)结构中,移动WEB客户端需要获得服务器上更新的信息,必须通过请求响应模式,这种模式下用户获得的数据没有实时性,而且有大量不必要的数据更新,因此会产生大量冗余数据的传输。为了解决这一问题,笔者专门研究了服务器推送的原理,实现了通过长连接技术,将服务器端更新的矢量图形推送给相应的移动WEB客户端,从而达到类似C/S结构实时推送的效果。
为了能在移动WEB客户端的B/S结构中保证前后端通信的实时性,需要建立客户端和服务器端之间的长连接。这里采用的WebSocket能更好地节省服务器资源和带宽,并达到实时通讯。为了在原生应用下实现用户登录以及聊天功能,客户端使用了socket.io,而与服务器建立了另外一条消息通道。socket.io封装了WebSocket,同时包含了其他的连接方式,如Ajax等。
矢量图形的协同数据交换过程包括矢量图形的特征基本属性信息到矢量图形协同特征数据模型交换、矢量图形协同特征数据模型的网络传输服务器数据推送、矢量图形协同特征数据模型到矢量图形的数据交换。
每一个绘制的图形将被保存到一个Model对象中,协同的基本原理是:一个客户端更新图形后,将更新后的Model通过socket.io提交到服务器,由服务器向其他客户端进行广播,再由其他客户端对数据进行显示。
(2)矢量图形绘制及冲突检测
图形的绘制包括图形对象的创建、更新、存储。所有矢量图形绘制都是基于像素的,它们是矢量图形的最基本单元。如果能在网页中创建一个最基本的像素单元,使其通过控制这些像素单元的显示来绘制矢量图形,就方便多了。基于此原理,笔者以DHTML和JavaScript为开发语言,使用宽为lpx,高为lpx的Div对象作为一个像素。有了像素单元,所有标准图形将可以直接应用计算机图形学相关绘图算法实现绘图。例如,直线将可直接应用Bresenham快速画直线的算法。简单地说,就是直接在满足给定直线方程的坐标上绘制像素。据此类推,矩形可由四个直线方程表示,填充则是在一个封闭区域画满像素。
由于当前移动WEB浏览器平台纯网页模式下不存在图形绘制环境,不存在基本的图形库,因此需要从底层最基本的矢量绘制开始,构建相应的图形库,主要建立二维基本矢量图形库。基于移动WEB浏览器网页的图形绘制实现,性能好坏至关重要。它一方面与移动终端硬件以及浏览器的Render Engine紧密相关,另一方面与图形的实现算法并结合网页元素的特性来表示一些基本的矢量图形。这样能大大减少表示矢量图形的基本像素网页元素,性能优化主要做这方面的工作。这个过程可以在浏览器支持和安全允许的前提下,借用HTML5的canvas图形引擎功能,直接进行图形绘制和性能优化的实现。
在网页上,支持二维矢量图形协同绘制平台中所定义的图元的操作有矢量图形绘制、选择、修改、移动、删除等操作。假设我们定义矢量图形的操作集合OP,OP={P,S,C,M,D},其中P代表绘制,S代表选择,C代表修改,M代表移动,D代表删除。
针对网页矢量图形绘制环境下并发操作的冲突检测,设用户Ui,执行操作为OPi,该操作所作用的矢量图形记为Gi,用户Uj,执行操作为OPj,该操作所作用的特征对象记为Gj,(Gi可以等于Gj),通过以下步骤检测并发冲突:①如果Ui操作是绘制矢量图形Gi,OPi=P,则Uj的操作不与其他用户产生冲突,检测结束。②如果Ui操作是选择矢量图形Gi,OPi=S,则Uj的操作与其他用户操作不产生冲突,冲突检测结束。③如果Ui操作是修改矢量图形Gi,则Uj与所有与其并发的且对Gi的操作OPj且OPj不属于{P,S},产生操作冲突,冲突检测结束。④如果Ui操作是移动或删除矢量图形Gi,则Uj与所有与其并发的且对Gi的操作OPj且OPj不属于{P,S},产生操作冲突,冲突检测结束。
(3)多用户并发控制策略
多用户同时操作有很大可能会产生冲突,因此需要并发控制。在分布式系统、多线程系统中,并发控制是普遍需要解决的问题,它也是计算机协同系统需要解决的关键技术之一。在实时计算机协同系统中,会存在多个不同用户都需要访问的共享对象(如云黑板中的矢量图形图元等),因此系统需要对多个不同用户访问共享对象的操作进行实时响应,这样才能达到“你见即我见”的效果。由于多个不同用户同时对一个矢量图形的并发访问是不可避免的,因此会发生不可避免的冲突,并发控制策略是为保证数据的一致性而必须采取合适的策略。其主要目标是保证在对共享资源并发访问的情况下,能正确地操作共享资源。笔者主要采用对矢量图形加锁和协同感知技术,来解决和避免多用户同时操作矢图元产生的冲突。
对所绘制的矢量图形加锁是保证数据一致性的常用手段,它是对用户访问的共享对象进行加锁和解锁操作。用户在对矢量图形进行绘制、修改、删除操作之前,必须先对该矢量图形对象进行加锁,防止其他用户进行操作,从而满足用户对矢量图形对象进行操作的要求。其他用户在访问加锁以后的矢量图形对象时,如果得不到该对象的访问权限,就必须等待,直到用户释放控制此矢量图形对象的锁后,才能访问。
所谓协同感知是指群体协作环境能够在不影响其他参与者协同工作的情况下,将一个参与者的信息传递给各协作参与者,使得各协作参与者能够彼此感知到对方的状态信息。其目的是模拟现实世界的协作过程,让参与协作的人在计算机环境中了解其他人的活动,从而为自己的活动提供一个“上下文”环境,消除由空间上的分布带来的割裂感。
笔者将上述两种方法融合,应用到云黑板系统中,实现了当一个用户编辑某个对象以后,整个编辑过程将被协同,其他用户可以看到其编辑过程,但不能获得图形对象的编辑焦点,需要等待当前编辑用户完成编辑才能操作。
● 系统实例
云黑板系统采用Nodejs服务器,当网络正常连接到服务器且登录成功后,可以直接选择工具箱中的内容协同作图。图3中左图即为协同作图效果图,显示了当前参与协同的用户。图3中右图为用户聊天的实现效果。用户可以随时交流,获取资源,体现移动自主学习。
● 总结
云黑板系统不仅可作为远程教育教学平台,也可推广到各种教育培训机构中使用,作为企业集团培训、企业客户培训等移动终端辅助产品。终端用户可以是教育人员,也可以是企业客户以及其他类型参与人员。该系统既吸收了传统远程教育平台优点,又突出了移动终端的优势,真正做到了施教者与受教者能够不受时空限制,随时随地学习。可见,面向移动终端的云黑板系统使用范围广泛,应用前景广阔。
参考文献:
[1]马丽洁.远程教育与当代信息技术的整合研究[J].成人教育,2016(1):19-22.
[2]孙立会.开放教育基本特征的变迁——兼议MOOC之本源性问题[J].远程教育杂志,2014(2):30-38. 参考论文
[3]徐苑苑,张际平.基于云架构的网络教学平台设计与实现[J].远程教育杂志,2013(03):71-78.
[4]张波.基于对象视图模型WebView的Web应用框架[J].软件学报,2002(10):1985-1990.
[5]胡晶.基于HTML5的Web移动应用开发研究[J].工业控制计算机,2014(10):80-81.
[6]黄经赢.基于Socket.io+Node.js+Redis构建高效即时通讯系统[J].现代计算机(专业版),2014(13):62-69.
[7]许会元.NodeJS的异步非阻塞I/O研究[J].工业控制计算机,2015(3):127-129.
[8]陈岭.基于Web的实时协同编辑系统中的一致性控制[J].计算机研究与发展,2001(12):1505-1511.
[9]王越.移动互联网时代协同感知技术研究[J].河南科技,2015(5):9-11.
作者简介:应悦,副研究员,硕士,研究方向为远程教育与技术发展;简琤峰,副教授、博士,研究方向为云计算、CAD。
基金项目:本文为浙江省科技厅公益技术研究工业项目“支持移动终端手势识别的‘云黑板’教学平台”(项目编号:2014C31068)的部分研究成果。