基于智能终端控制的嵌入式多媒体控制系统
2018-11-22张辉
张 辉
(安徽师范大学皖江学院,安徽 芜湖 241000)
0 引 言
目前,高校多媒体教室建设已经有20多年的时间,按照控制的方式大体上可以分为两个阶段。一阶段:本地控制阶段,这一阶段的特点是使用本地中央控制来管理各种多媒体设备,特征体现为整套多媒体设备的操作必须在本地完成,管理人员必须要在现场操作设备,给设备管理带来了很大的不变;二阶段:网络远程控制阶段,利用有线网络通过远程中央控制系统实现多媒体设备的管理,管理人员无需到现场便可以对设备进行远程控制和管理,对所有设备进行了集中管理,但是存在远距离布线成本高,管理权限过于集中,一旦出现故障影响范围大等缺点[1-4],解决这些问题成为了一个重要课题。
因此,文中提出一种利用智能终端控制的嵌入式多媒体控制系统,每个智能终端设备都可以实现多媒体设备的维护和管理工作,硬件选择了嵌入式设备,提高了设备的稳定性,通信选择了WIFI模式,节约了安装设备的成本,并附加了很多新颖实用的功能,以期扩展多媒体控制系统的应用范围。
1 嵌入式多媒体控制系统的主要特点和功能
多媒体控制系统是整套多媒体控制系统的核心部分,它是各种多媒体设备相互连接的桥梁,传统方式一般使用数字电路或者台式电脑来实现。数字电路的优点是成本低,可靠性高,缺点是功能固定,扩展性差,台式电脑的优点是性能强、智能化,但是也有成本高、体积大的缺点[5]。因此本套系统采用了嵌入式设备作为设计平台,在保留原有优点的同时又克服了以往的缺点。
本套设备的中央控制系统在硬件上选用了嵌入式设备后,软件上通过安装操作系统,极大地扩展了设备的应用范围[6]。采用相应的APP软件将多个物理上完全独立的嵌入式多媒体控制系统通过互联网或者局域网相互连接起来,实现了网络化的中央控制系统整体[7],只需要简单地使用智能设备就能实现远程控制、网络附加存储、分布式存储、校园云存储[8]等特色功能,使得多媒体控制系统可以更好地为教学工作服务,提高教学质量[9]。
系统功能结构如图1所示。
图1 嵌入式多媒体控制系统的功能结构
2 嵌入式多媒体控制系统的硬件及软件设计
硬件平台方面选用了由英国“Raspberry Pi基金会”开发的Raspberry Pi开发板,如图2所示。这一款开发板专为物联网应用设计,可以广泛地应用在很多领域。此开发板使用ARM构架,CPU使用64位四核ARM Cortex-A53处理器,运行频率高达1.2 GHz;GPU使用双核Video core IV多媒体协处理器,能够实现OpenGL ES 2.0,1080p 30 h.264/MPEG-4 AVC高清解码;内存配有1 GB LPDDR2存储器,外存使用microSD卡;网络通信上配备了10/100以太网端口和802.11 b/g/n无线网卡;多媒体方面配备HDMI视频/音频连接口、RCA视频/音频连接口、CSI摄像机连接口;IO扩展方面预留USB 2.0端口、GPIO引脚。
在众多的嵌入式操作系统中选择了Raspbian操作系统。Raspbian是一个基于Linux的免费开源操作系统,在此平台上可以实现LAMP网站架构。该框架的基础内容为:Linux操作系统,Apache网络服务器,MySQL数据库,PHP编程语言,所有组成软件均是开源软件。该框架具有应用资源丰富、程序体积轻量、可实现快速开发等特点,与传统网站架构相比,LAMP具有高度通用性、跨平台性、性能高效、成本低廉等多项优势,因此是搭建小型轻量网站的首选平台[10]。在此基础上,利用VNC和SSH实现远程控制功能;Samba实现网络附加存储功能;Gluster实现分布式存储功能;ownCloud实现校园云存储功能[11]。
图2 Raspberry Pi开发板
3 系统软件的配置与使用
3.1 智能终端设备对嵌入式中央控制设备的无线远程控制功能
SSH为Secure Shell的缩写,由IETF的网络小组(Network Working Group)所制定;SSH为建立在应用层基础上的安全协议。SSH具有较高的可靠性,可以为远程登录会话以及其他多种网络服务提供安全可靠的通信协议。远程管理过程中的防止信息泄露这一重要的安全问题可以由SSH协议实现解决[12]。SSH早期是应用在UNIX系统上的应用程序,因为其自身的优势很快迅速地扩展到其他多种操作系统平台。合理正确地使用SSH可以弥补网络通信中的漏洞问题。Raspbian操作系统基于Linux操作系统,可以运行SSH。传统的网络服务程序,如:常见的ftp、pop和telnet通信协议在本身具有缺陷,安全性不高,因为它们在网络上传送口令和数据都是采用明文方式,并且上述服务协议的安全验证方式也存在漏洞,因此极易受到“中间人”(man-in-the-middle)这种方式的攻击。然而通过使用SSH协议,管理员将所有传输的数据都进行加密处理,这样传统的"中间人"攻击方式就无法奏效,并且还能够防止DNS欺骗和IP欺骗等问题。使用SSH时,通过传输的数据是进行压缩的,极大地加快了数据传输的速度。SSH主要由三部分组成:传输层协议[SSH-TRANS]、用户认证协议[SSH-USERAUTH]、连接协议[SSH-CONNECT]。
在登录方式上,该系统采用基于口令的安全验证方式,只要管理人员知道自己的账号和口令,就可以登录到远程主机。所有传输的数据都会被加密,系统启动后,因为Raspbian操作系统自动设置了SSH服务随系统自动启动,只需要等待启动完成。使用一台安装了JuiceSSH软件的智能终端来连接中央控制系统就可以。Raspbian自带了x window,因此可以使用GUI界面,但是SSH服务是不支持GUI图形界面的,需要操作系统上安装tightvncserver:sudo apt-get install tightvncserver,完成后配置好显示的分辨率:vncserver -geometry 1 024×768,就可以通过默认端口5901进行访问了。智能终端可以通过VNC View来登录图形化的界面,当然也可以使用监听模式,使用反向连接命令:vncconnect -display:1 192.168.2.110。
SSH和VNC连接配置如图3所示。
图3 SSH和VNC连接配置图
3.2 网络附加存储功能
该系统可以通过接口添加USB外接硬盘,扩大自身的存储容量,还可以将空间分享给其他设备,实现网络附加存储功能。为了实现此项功能,采用了SMB技术。SMB(server messages block,信息服务块)是一种在局域网内部实现共享文件的通信协议,利用该协议可以为局域网内的多台计算机之间提供文件资源的共享服务。SMB协议采用的是客户机/服务器型协议,客户机可以通过该协议实现服务器上共享文件系统的访问。通过设置“NetBIOS over TCP/IP”不但能实现与局域网内主机分享资源,还可以进一步实现与互联网上的其他电脑共享资源。台式机一般搭载Windows操作系统,智能设备一般搭载IOS或者Android操作系统[13],而该设备使用的是Raspbian,因此让环境中不同的操作系统实现文件分享,只需搭建文件服务器Samba:sudo apt-get install samba,然后将USB存储设备通过USB扩展口接入系统,再添加一个用户名:sudo smbpasswd -a user。这样只需在各自的操作系统上通过文件管理器或者网页浏览器输入IP地址和用户名即可登录,实现共享。
3.3 分布式存储功能
该系统使用分布式文件系统备份数据,不用担心存储设备损坏,造成数据遗失,在此系统中,当某一存储设备出现问题时,可以通过备份的文件来取得数据,这样就不会出现数据遗失[14]。为了实现该功能,采用了Gluster技术。
Gluster是一种免费开源的分布式文件系统,可以实现很强的横向扩展性,通过扩展存储设备能够支持多达数PB存储容量和实现数千个客户端处理。Gluster利用TCP/IP或InfiniBand RDMA网络将物理上分散分布的多个存储资源实现了逻辑上的聚集,通过使用单一全局命名空间来管理所有数据。Gluster采用基于可堆叠的用户空间设计,能够为多种不同的数据负载提供优异的服务性能。Gluster可以支持运行在任何标准IP网络上标准应用程序的标准客户端,用户可以在全局统一的命名空间中使用NFS/CIFS等标准协议来访问应用数据。因此用户使用Gluster系统可摆脱原有的独立式、成本高昂的封闭存储系统,实现普通廉价的存储设备来部署利于集中管理、便于横向扩展、高度虚拟化的存储池,其存储容量可扩展至TB/PB级[15]。Gluster主要特征如下:
3.3.1 扩展性和高性能
利用系统的双重特性来提供高扩展存储解决方案。可以简单地通过增加物理设备资源来提高存储容量和性能,例如存储磁盘、计算部件和外部I/O资源都可以实现独立的增加,并且支持高速网络互联技术。解除了对原有数据服务器硬件的高需求,实现单点故障和性能瓶颈的消除,真正实现了并行化数据访问。
3.3.2 高可用性
Gluster可以实现文件的自动复制功能,如镜像复制或多次复制等,从而确保任何情况下数据总是可以顺利访问的,甚至在部分硬件出现故障时也能正常实现数据访问。其自我修复功能能够把丢失的数据恢复到丢失前的正确状态,因为数据的修复是在后台以增量的方式执行的,对系统几乎不会产生性能负载。因为采用了现有操作系统中广泛使用的主流标准磁盘文件系统(如EXT3、ZFS)来存储文件,因此数据可以通过多种标准工具进行访问和复制等操作。
3.3.3 全局统一命名空间
采用全局统一命名空间将所有的物理磁盘和内存资源实现汇聚,形成一个单一的虚拟存储池设备,实现了对上层用户和应用程序屏蔽了底层的物理硬件。所有的存储资源可以根据情况的需要在虚拟存储池中实现实时的弹性扩展,比如增加容量或释放空间。当存储虚拟机采用映像时,其存储的虚拟映像文件数据是没有任何限制的,多台虚拟机都可以通过单一挂载点来实现数据的共享。虚拟机I/O可在命名空间内的所有服务器上均能自动进行负载均衡调整,解决以往系统环境中时常发生的硬件设备性能瓶颈问题。
使用时各设备上安装好Gluster,然后添加节点node: sudo glusterprobe192.168.0.101,接着准备好存储路径,再引导Volume:gluster volume start volume,最后创建与之对应的路径:mkdir /mnt/volume, mount glusterfs 192.168.0.101:/volume /mnt/volume。这样以后只要设置文件方式/mnt/volume,就会自动和即时的在其他设备上完成备份。
3.4 校园云存储功能
系统使用ownCloud来实现校园云存储,允许用户以浏览器或WebDAV方式登录服务端,进行各项管理工作[16-17]。ownCloud是一个可以实现私有云存储的免费开源项目,通过它能够将一套专属的私有云文件同步网盘架设在个人服务器上,实现诸如文件跨平台同步、资源共享、团队协作等功能。管理人员将在系统安装好ownCloud的服务器端设备设置为主机,其他各种设备就可以通过网络形式来访问和使用私有云。ownCloud跨平台支持市面上常用的Windows、Android、iOS等多种操作系统平台,因此用户可以在任何电脑、智能设备上获取云端文件[18]。特别好的一点是ownCloud将文件保存在服务器硬盘,目录结构跟客户端上看到的一样,所以云端文件的备份和导出都非常方便。教师和学生可以很方便地使教学设备与服务端上存储的课件、案例和作业等保持同步。在已安装并配置好LAMP构架的基础上,用MySQL新建一个供ownCloud使用的数据库和相应的用户并赋予权限,再为服务器安装缓存的组件:sudo apt-get install php-apc -y,然后设置ownCloud存放文件的目录并改权限。
sudo mkdir /home/hdd/www/owncloud;
sudo mkdir /home/hdd/ownclouddata;
sudo chown www-data:www-data -R /home/hdd/www/owncloud;
sudo chown www-data:www-data -R /home/hdd/ownclouddata;
sudo chmod 770 /home/hdd/www/owncloud;
sudo chmod 770 /home/hdd/ownclouddata;
最后输入命令:sudo nano /var/www/owncloud/config/config.php
在配置的文件里面添加可以访问ownCloud的信任域。
4 结束语
该设备采用嵌入式平台,在降低设备成本的同时还缩小了设备的体积,管理上可以使用智能设备来访问,使得设备的管理更加便捷;软件功能上使得系统具有智能设备远程控制、网络附加存储、分布式存储、校园云存储等功能,扩展了多媒体控制系统的应用范围。综上所述,该套系统是对现有设备功能的一次创新、突破。