吴宏森, 李建洋
(镇江市高等专科学校 电气电竞与交通学院, 江苏 镇江 212003)
基于MOOC(massive open online courses)的移动实验学习是变被动学习为主动学习,实现翻转课堂的重要手段[1-2]。教师从学生的操作中发现问题并进行有针对性的指导和问题解答,从而达到更好的教学效果[3]。MOOC的规模和开放性使得学生可以自由获取海量学习内容[4-6],在实验实践教学指导环节具有非常好的教学效果。学生可以利用手机提前预习实验实践过程,快速熟悉实验环境和注意事项。实训教师可以将自己的知识和经验——特别是书本上没有提到,但是在生产活动中会遇到的特殊情况和特别重要的知识点,通过MOOC视频分享给学生[7]。
MOOC采用短视频、过程测验、在线交流、在线考核等环节,建立了一种新型的在线学习模式。但目前基于安卓的移动实验平台并未提供实验辅导、答疑工具和音视频直播辅助通道[8]。因此,要实现理想的MOOC实验平台,必须增加移动端的音视频直播和师生交互应用功能[9],满足实验过程中师生互动的需要。本文采用HTML5、WebRTC技术设计了一个基于WebRTC技术的移动实验辅导平台。该平台既可以满足移动端和PC端的同步使用;又可以提供低成本音视频交互辅助通道。HTML5可以实现跨平台无障碍访问;WebRTC技术可以用较低的成本实现传统移动实验平台没有的音视频交互功能,满足师生双向交流的需要。这对于课下实验辅导非常必要。
本文设计的基于HTML5和WebRTC技术的MOOC移动实验辅导平台,主要提供MOOC实验课程的浏览和播放、存储和管理课程资源、在线讨论、跨平台跨系统无障碍访问,实现师生多人音视频交流,实现学生公选课的移动教学。平台提供教学系统的学分管理接口,实现精品课程教学资源支撑,实现高校优质学习资源的共享,对社会提供知识服务。
基于WebRTC技术的移动实验辅导平台主要为学生课余实训学习提供学习资源和音视频辅导服务,实现“课堂翻转”[10]。该平台包括精品课程、公选课程、大众课程、学分管理、音视频辅导、在线考核、综合测评等栏目。
系统流程图如图1所示。用户通过4G/WiFi接入校园网,登录服务器并完成注册。校内人员实名认证后可以免费使用资源。
图1 系统流程图
用户分为教师用户和学生用户。学生用户由班主任实名认证,教师用户的身份由系统管理员实名认证。
教师用户可以通过平台发布和浏览MOOC课程视频资料,学生用户能浏览和下载视频资料,可以发送学习需求信息和定制实训课程。
移动实验辅导平台专设留言和解答界面,用户可以对课程内容进行提问和讨论。对于学生的提问,由课程教师团队每日定时解答,系统提供音视频直播,由教师发起、学生用户参与,同屏提供音视频服务、电子白板、文字讨论区。
通过对传统实训平台进行研究,满足实验教学的一般需求,设计了平台的功能流程(见图2)。流程包括教育规划、需求分析、课程创建、在线讨论、线下学习、课程评价等主要功能。
Redis数据库的使用不必像关系型数据库那样需先设计表的结构和关系。Redis数据库没有表概念,可以随时根据需要非常方便地增加字段。在研发NoSQL数据库时,可以边设计、边实现,后续增加的字段对前面无影响,非常适合快速开发系统。
图2 功能流程图
Redis是一个键值对数据库,只能通过键查找值,而不能通过值查找键。在进行数据库设计时,必须考虑系统需要,进行检索的关键字都要建立对应的记录。非关系型数据库的设计更注重速度而不是存储空间。传统的关系型数据库,数据是存放在硬盘里的,任何查询操作都需要先读取硬盘,然后加载内存;而Redis是一个内存数据库,所有数据都在内存当中,不用花费读取硬盘的时间,直接在内存中读取数据,处理更加迅速。由于Redis基于内存操作,因而需要的服务器内存越大越好,当用户数量足够多时,可以考虑采用云计算服务器集群技术进行快速扩展[11]。
客户端之间采用对等网络(peer-to-peer networking)模式交换音视频信息,但是部分任务仍然需要服务器的介入。有4个阶段任务需要服务器参与处理:
(1) 客户端获取移动MOOC实训课程平台的服务,要通过访问Web服务器获取信息;
(2) 在通信过程中,客户端需要交换数据,如信令(signaling)、会话控制信息以及处理错误信息、元数据、网络数据等,需要服务器的中介和处理;
(3) 不在相同网段的通信双方穿透NAT和防火墙时,需要STUN服务器、TURN服务器的中介和处理;
(4) 对等网络适合小规模、低成本的音视频服务;而中大规模扩展服务需要专门的流媒体服务器进行音视频的压缩处理和转发。
通信过程中,通信双方处于平等地位。每一个客户端同时充当客户端和服务器的角色,二者之间可以直接通信,传递数据量较大的音视频信息。WebRTC在建立点对点连接时采用ICE协议,能够穿透全锥型、限制锥型以及对称型NAT和防火墙。ICE协议最重要的特点是融合了STUN和TURN协议,能够提供更加高效的公网候选地址。
通信开始,ICE协议首先尝试直接连接另一方客户端。如果能够顺利连通,说明该客户端在公网环境或者通信双方在相同网段;否则开始尝试使用STUN协议,连接该客户端对应的NAT公网地址。若成功连通,则说明该客户端处于非对称性NAT;若仍然失败,则说明该客户端处于对称型NAT,必须使用TURN服务器进行中转(见图3)。
图3 系统架构图
音视频会话模式分为对等网络模式和服务器模式。
在对等网络模式下,用户之间端对端连接,视频和音频的传递不经过服务器,因此成本低、安全性和实时性高,适合中小型交合服务场景。根据客户端设备性能和网络带宽的不同,对等网络模式下最大可以支持数百人的中型会话。
服务器模式面向大型的交互会话。在该模式下,音视频流经过服务器压缩转发给其他客户端,能支持人数更多的会话。
本移动实验辅导平台采取低成本的对等网络模式进行音视频会话功能设计。
HTML5新增了Audio和Video标签,不需安装插件就可以通过浏览器播放音频和视频。音视频会话模块是整个平台最难实现的核心模块,涉及建立通信、接入、音视频处理和网络传输的整个流程。
3.3.1 建立会话流程
为避免音视频会话的无效使用,造成系统负担过大和系统不稳定,只有教师身份才有开通实时会话的权限、设定实时会话功能参数,例如指定参与对象为特定的学生或者指定班级成员对象。这个阶段会有一个建立连接的过程。教师客户端发起信令(signaling)请求后,首先会建立一个连接池(connection pool),然后与流媒体服务器和Web服务器建立连接。流媒体服务器向本地客户端添加通信的各个用户信息和监控媒体流的变化,本地客户端发起请求给服务器,服务器向远程学生客户端发起连接请求,同意后建立连接。
会话(session)建立时,授课涉及到的教师、课程、学生ID等信息存入会话的自定义参数组(customized dataset)中,以供连接各方调用。默认情况下,会话仅在1天内有效,通过服务器实时生成。会话发起者在任一时间只可以创建1个会话,因为根据实际情况,教师也不可能同时为多个班级学生辅导。
学生客户端若要连入会话,需要有效的令牌(token),令牌由会话生成。会话创建后,生成的会话ID(session ID)在会话生成端进行存储和维护。会话代表授课“容器”,那么令牌就是进入的“门卡”,用来验证用户的身份和权限。一个令牌只对应一个会话,会话和令牌是一对多的关系。
令牌分为两类:课程发布者(publisher)和课程订阅者(subscriber)。某一时间点上只有会话发布者有权发布视频、音频、文字、文件、共享屏幕和白板等;而订阅者此时只能接收这些信息,在其需要发布权限的时候提出请求,由会话发布者授权后才有临时发布权限,同时发布者有强制取消和删除的权利。
使用会话之前,需要通过“Session.Connect”创建连接,创建成功后触发Connected事件,并回调获取所有在线用户的令牌,之后可以通过Session.Send函数给所有相关订阅者发送自己的Stream对象,或使用Session.SendTo函数给某个具体用户发送Stream对象,如果需要在连接时增加额外的信息,可以通过发送的对象里增加Attribute属性。
在发送Stream之后,如果连接成功,本地触发Local事件,回调返回本地通道Sender。远程触发Remote事件,回调返回远程通道Receiver。
连接成功后,可以监听In事件,在其他人连入此Session时触发。此时可以发送本次讨论内容提要和课件等相关信息,回调返回连入人的令牌;同样可以监听Out事件,在其他人退出此Session时触发断开连接Disconnected事件。可以通过Session.Disconnect函数主动断开Session连接。
3.3.2 接通会话
远程客户端接到发送端会话请求后,服务器将其加入会话发起者建立的连接池,与会话服务器和Web服务器建立连接。随后,服务器向本地客户端发送信令(signaling)消息,本地客户端添加媒体流给服务器,同时服务器监控本地媒体流的变化情况。最后,本地客户端与远程客户端之间开始直接会话。
3.3.3 音视频处理和网络传输
音视频引擎采用了WebRTC技术。WebRTC为基于浏览器的音视频功能开发提供了一个开发框架,实现了音视频采集、编码、传输、显示的全部功能。音视频引擎通过会话发起端的摄像头采集本地音视频数据并编码,然后经过网络传输层,由音视频会话服务器发送到各个音视频会话客户端。客户端通过Chrome浏览器WebRTC技术进行数据的接收和处理。最后,处理好的音视频流在客户终端上播放。
本系统采用了VP8编解码技术。VP8能以较少的数据通信实现高质量的视频传输,并且只需较低的处理能力即可播放视频,专为低迟延而设计开发,特别适合应用于基于浏览器的音视频通信系统。
建立了系统测试环境。利用学校公网服务器搭建Web服务器、STUN服务器和TURN服务器,PC和Android智能终端安装最新的Chrome浏览器。
我校教师每年都要带毕业班学生做毕业设计,学生还要到校外完成毕业实习,且95%的实习在外地进行,为教师的毕业设计辅导带来了很大的困扰。本系统的构建提供了一个很好的毕业设计远程实验辅导手段。作为本系统的测试案例,在系统中开设一个毕业设计指导课程,制作了“信息系统设计毕业设计指导及规范”MOOC课程,进行远程实验指导和视频辅导,测试了全组讨论等音视频会话功能。教师可以随时查阅学生参与课程学习的记录,对毕业设计的工作量进行统计备案。
在手机界面上,有教师的视频图像、参与视频辅导的学生的视频图像和电子白板区域。由于手机屏幕显示范围较小,只能显示1位教师和4位学生的视频图像,但可以通过滑动屏幕显示其他在线的学生的图像。电子白板显示的图像可以放大至全屏,能更好地看清课件信息。测试结果显示,观看和下载MOOC课程功能正常,视频会话辅导效果良好,语音清晰、图像流畅,基本达到了设计目标。
经实际测量,语音通信实时码率为35~40 KB/s,视频通信为620~700 KB/s。教师端在4 MB/s已可以满足5画面同时视频交流,如学生端需要减少移动流量消耗,可以只打开音频会话,辅导45 min只消耗流量1.8 MB。目前普通家庭宽带、移动4G和局域网环境都可以满足这一速率要求。
基于WebRTC技术的移动实验辅导平台,系统地融合了目前先进的HTML5和WebRTC技术,实现了一种新颖的视频会话功能和结构,可用于视频会议、网络课堂、网络社交中。由于实验条件和成本的考量,目前该平台只能满足一对多实时远程教学辅导。进一步的研究将采用多点控制单元MCU(multipoint control nit),在大量参与者之间分发流媒体。MCU是一个起到桥梁作用的服务器,可以应对不同的分辨率、编解码器和帧速率的多人音视频通信,可做选择性流媒体的转发,混合音频和视频流。但这种服务方式需要添加MCU服务器,进行音视频的压缩和转发,也会增加实验成本。