APP下载

自动管理多媒体教学设备

2013-10-25梁正和

中国教育网络 2013年1期
关键词:命令通讯组件

文/梁正和

一直以来,多媒体教学设备的维护和使用等繁重的管理工作使很多学校感到头疼。河海大学开发了一套基于校园网络的分布式多媒体教学设备控制及使用管理系统,实现多媒体教室实时状态的监控。该系统的使用大大降低了管理人员的工作量,提高了管理效率。

随着社会的发展,教学方式也在悄悄地发生变化,教学不再是一支粉笔、一块黑板,而是利用多媒体设备制作生动的图像、视频等,从而达到更好的教学效果。因此,学校建设越来越多的多媒体教室,师生也越来越依赖多媒体教室。然而,随着多媒体教室的大量增加,多媒体教学设备的维护和使用等繁重的管理工作使很多学校感到头疼。目前高校多媒体教学设备管理还是采用人工方式,每个教室有一个多媒体设备的中央控制器(简称:中控),分别控制投影机的开关、幕布的升降、电脑的开关、投影信号的切换等。一个教室是一个独立的整体,每天必须有人根据当日教室的上课情况为教师打开多媒体设备,在教师上课结束后要关闭多媒体设备。当多媒体教室很多时,这是一个很大的工作量。当一个教室投影机灯泡使用达到一定的时间以后,投影机投影效果大大下降,就会影响教师上课。

在物联网思想越来越深入人心的今天,河海大学开发了一套基于校园网络的分布式多媒体教学设备控制及使用管理系统,实现多媒体教室实时状态的监控,实现多媒体设备根据课表的时间自动开启和关闭,也可以通过网络远程手动开启或关闭,自动统计各个教室的投影机灯泡使用时长,设置时长上限,实现自动提前预警。通过网络可以上报多媒体设备的故障。当教室存在没有处理的故障报告时,多媒体教室的监控屏上出现黄灯警告提示。这个系统的使用大大降低了管理人员的工作量,提高了管理效率。目前国内多媒体设备集中控制系统的现状是:有的采用专门总线,实施困难;有的采用通用网络,没有采用分布式架构。该系统完全采用的是Java分布式架构和B/S模式。

采用J2EE分布式多层架构

多媒体教学设备控制及使用管理系统采用了J2EE分布式多层架构,分为数据库层、实体组件层、会话组件层、Web界面组件层。Web界面层采用JSF+Ajax,组件采用EJB组件。

整个系统从功能上分为通讯层和应用管理层。通讯层是由一个多线程服务器和所有多媒体教室的中控组成,负责与所有多媒体教室的中控进行通讯,将管理层下达给某教室的控制命令发送到教室的中控,并将中控执行的结果写入数据库。应用管理层完成对多媒体教室的上层管理。通讯层和应用管理层通过数据库实现数据交换与共享。系统总体架构如图1所示。

图1 多媒体教学设备控制及使用管理系统总体架构

系统的基础——通讯层

通讯层完成服务器和所有教室中控的通讯,是整个系统的基础。我们在TCP/IP协议基础上设计了专门的应用层通讯协议,根据不同的发起方分为两类:一类是由服务器发起的向教室的中控下达命令的协议;另一类是教室的中控由教室手动改变多媒体设备状态而发起的通知服务器关于教室多媒体设备状态改变的协议。实现的功能可以分为三类:第一类是服务器向教室的中控询问多媒体设备的状态;第二类是服务器根据管理层下达的多媒体控制命令发送到教室的中控,并将中控执行的结果返回,修改数据库中的教室多媒体设备的状态信息;第三类是教室的中控主动向服务器汇报多媒体设备状态的变更信息。

教室的中控作为通讯的客户端,而通讯服务器是一个多线程的通讯服务器,一个服务器进程始终处于监听状态。一旦有新的教室连接后立刻创建新的线程,让新的线程专门为该教室服务,完成与该教室有关的一切通讯任务。管理层给教室下达的命令是宏命令,一个宏命令由一个或多个微命令组成,完成一个相对完整的功能,微命令是一个教室中控所能执行的基本命令,功能单一,并不完整。为教室服务的线程将管理层下达的宏命令分解成若干条微命令,再将一条一条的微命令发送到教室的中控执行,教室的中控将执行的结果返回给服务器线程,一个宏命令的所有微命令都执行成功,那么教室的多媒体设备状态就会成功地改变,并写入数据库。当教室多媒体设备状态由于手动操作而改变,由中控主动将此改变通知服务器,服务器将教室多媒体设备的状态改变写入数据库。

通讯服务器是Java单实例对象,只能创建一个实例,由于整个系统是B/S结构,因此在Web服务器中通过WebListener创建服务器实例,将必要的服务器需要的EJB组件接口及系统变量设置对象创建好放置在ServletContext中,创建好的服务器实例放置在ServletContext的“MMCSERVE”变量中,通过应用管理中的专门功能使服务器进程处于监听状态或退出监听状态,如图2所示。

图2 通讯服务器启动或关闭

图3 实现教室多媒体设备状态监视的原理

应用管理层自动监控教室设备

应用管理层完成整个多媒体教室设备的控制和使用管理,完全采用B/S结构,其功能包括实现通过课表自动开启或关闭某个教室的多媒体设备;手动远程控制某教室的多媒体设备;接受来自校园内的多媒体教室的设备故障报告;实现对所有多媒体教室设备状态的监视等。需要解决的关键问题有两个,一个是根据课表按时自动向即将上课或已经下课的教室下达多媒体设备开启或关闭的命令;另一个是当通讯层改变了多媒体设备在数据库中的状态时,在B/S模式下,如何将数据库中多媒体设备状态的变化主动推送到客户端,从而实现多媒体教室设备状态的监视。

通过课表自动开启或关闭教室多媒体设备

根据课表按时自动向即将上课或已经下课的教室下达多媒体设备开启或关闭命令,这通过一个定时EJB会话组件来实现。我们设计了一个定时EJB组件,可以通过系统参数定时,如果没有设定参数,那么默认时间是1分钟。定时EJB组件每隔一个时间就轮询当日课表,如果某个教室即将上课,距离上课时间在10分钟以内,那么就向通讯层下达该教室上课命令,通讯层将上课命令分解为一联串的微命令发送给上课教师的中控。EJB定时组件在通讯服务器启动时一起启动定时。由于投影机开关时延较长,因此必须将一个教室连续上课时间段合并成一个时间段,合并时间段是组件编程中的一个重要内容。

在B/S模式下实现信息服务器方推送

由于通讯服务器将多媒体教室的设备状态写入数据库中,在应用管理层要实现教室多媒体设备状态的监视(可以通过大屏幕)。在B/S模式下,就必须实现信息由服务器主动推至浏览器,违背了Web服务的get/response模式。实现服务器方信息推送技术方法有多种,最常用的且最基本的方法是利用客户端脚本设计一个定时器,定时向Web服务器发送页面请求,利用Ajax技术,通过XmlHttp协议将页面请求发送至控制器MonitorServlet,由控制器调用JSF中的受管Bean重新访问数据库,获取最新的多媒体设备状态信息。在JSF中,由于页面显示是由JSF控制器完成的,必须调用JSF底层方法重新生成页面HTML代码,最终实现页面的刷新。其原理如图3所示。

多媒体教学设备控制及使用管理系统在河海大学的几十个教室里使用,取得很好的效果,系统稳定、可靠,大大提高了多媒体教室的管理效率。然而,目前服务器和教室中控的通讯方式是教室中控客户端,一旦与服务器连接,就一直处于连接状态,增加了网络的流量。如果教室中控既是客户端,也是服务器,那么当服务器向教室中控发送命令时,服务器以客户连接教室中控的服务器,发送控制命令,当教室中控向服务器发送信息时,以客户连接服务器向服务器发送信息,这样服务器无须一直和中控处于连接状态,按需连接,可大大降低网络流量。目前的中控是没有操作系统的单片机,实现多进程或多线程存在一定困难。采用带有操作系统的嵌入式编程,实现按需连接,是中控在今后需要改进之处。

猜你喜欢

命令通讯组件
《茶叶通讯》简介
《茶叶通讯》简介
通讯报道
无人机智能巡检在光伏电站组件诊断中的应用
只听主人的命令
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
安装和启动Docker
移防命令下达后
桥梁组件搭配分析