基于Silverlight的网络虚拟教学系统的设计与实现
2009-11-04刘红王士勇
刘 红 王士勇
【摘要】随着网络教学中用户对交互性和体验感的要求越来越高,传统的以数据为中心,以HTML为表现形式的Web网络教学应用程序已远不能满足学习者更高的、全方位的体验要求,而RIA及微软Silverlight技术平台的出现正好为这个问题提供了很好的解决途径。文章重点介绍了如何通过微软的Silverlight技术来设计和实现高体验度的网络虚拟教学系统。
【关键词】虚拟教学;Silverlight;RIA
【中图分类号】G40-057 【文献标识码】A 【论文编号】1009—8097(2009)10—0114—03
一 前言
随着人们对网络的依赖性越来越强,基于网络的现代远程教育成为了继第一代的函授远程教育和第二代的广播电视校阅之后新一代教育方式。为此,基于web的网络教学平台以其功能丰富,结构完整迅速成为了网络教育的主载体。其开放的学习条件、丰富的学习资源使得网络教学具有传统教学方法无法比拟的优势。但是随着网络教学中用户对交互性和体验感的要求越来越高,传统的以数据为中心,以HTML为表现形式的Web网络教学应用程序已远不能满足学习者更高的、全方位的体验要求。而RIA的适时出现为这个问题提供了全新的解决途径。
RIA是Rich Internet Application(富互联网应用系统,亦称富客户端)的缩写,维基百科对它有如下定义:所谓RIA,首先,它应该是一个网络应用程序;其次,它还要具有桌面应用程序的特征和功能。简单地说,如果你的桌面程序(比如说Word、Photoshop和Eclipse)能在网络上运行,并且能保持其原来的功能和特征,那么我们就可以称它们为RIA应用(富客户端应用)。因此,RIA的技术特点使得其非常适用于网络虚拟教学系统的开发,在网络教育领域必将具有广阔的应用前景。
二 Silverlight介绍及其在网络虚拟教学系统的应用优势
RIA作为未来Web应用程序的发展方向。许多公司和研究机构,包括Microsoft、Adobe、Sun等软件业巨头,都积极投入到了RIA的研发当中。本节将重点介绍Microsoft Silverlight的一些技术特点。
众所周知,微软是一个优秀的平台开发商。它的Windows和Microsoft 0ffice产品都符合工业级标准,在Web展现技术方面,以往微软并没有太多表现,不过在推出了名为Microsoft SiIverlight的新技术之后,希望在这方面有所突破。Silverlight实际上是一个运行在Web浏览器上的应用程序界面开发平台。与应用已久的Adobe Flash/Flex相比,Sliverlight是一个仍在完善中的技术平台,目前版本为SilveHight2.0。但由于微软强大的技术实力和宣传力度,Silverlight一经推出就受到开发人员的热捧。
Silverlight是一个跨浏览器、跨平台的插件,为网络带来下一代基于.NET的媒体体验和丰富的交互式Web应用程序。从编程的角度来看,Silverlight程序使用的是.NET托管代码, 可以用XAML(Extensible Application Markup Language,扩展应用程序标记语言)编写,XAML是微软为Windows Vista创建的基于XML的标记语言。它提供了对动画和3D众多方面的支持。XAML程序可以用最简单的文本编辑器编写,当然最好是使用图形工具(如Expression Blend)来创建XAML代码,之后就可以开放给Web搜索引擎和其它在线工具。这是Silverlight与Flash另外一点截然不同的地方,Flash实际上是一个对外封闭的“黑盒”环境。而由于Silverlight除了支持IE以外,还可以支持Apple的Safari和Mozilla的Firefox浏览器,因此它可以运行在任何计算机平台上,包括Macintosh和Linux。从根本上来说,Silverlight最关键的与众不同之处,实际上就是它创建出的UI质量,它是真正以XAML格式进行数据传输,到用户前端后再解析为具体图像,文本的大小是非常小的,所以完全不用担心带宽。此外,Silverlight还提供灵活的编程模型,支持AJAX,VB,C#,Python,Ruby等语言,并集成到现有的网络应用程序中。而对于使用Windows平台开发工具的用户来说,可以使用 C# ,VB等多种语言进行开发,而不需要抛弃原本的知识去学习ActionScript,而且这些语言在进行Silverlight开发时,也继承了很多这些语言的特性,如在网络虚拟教学应用程序中,会大量使用各种多媒体素材,如音频、视频等,而Silverlight就可以很方便的使用最常用的底层的传输工具Sockets。同时Silverlight的System.Net命名空间里还有很多通讯组件比如Webclient等,完全可以实现SOA和Flex的Httpservice的功能。
从上面介绍的一些Silverlight的技术特点,我们不难得出它在网络虚拟教学系统中的诸多应用优势:
丰富的表现力:Silverlight技术具有丰富的多媒体表现能力, 可以将文字、图片、音频、视频进行无缝的结合,从而使得教学内容的表现更加生动和丰富,使学生的体验感更强,提高了学生的学习兴趣。
强大的交互性:传统的数字图书馆信息服务以文本为主,缺乏交互,响应速度缓慢。Silverlight技术支持动画、视频、音频、双向的数据通信和创建复杂的窗体,使得强调以学生为中心的网络教育系统具有强大的交互能力。包括学生与课程的交互,以及学生与学生、学生与教师之间的交互。
高效的数据传输:服务端与客户端之间的数据流传输方式采取XAML数据,客户端和服务器端仅传递必要的数据。从而大大降低了数据通讯量,降低了对网络带宽的要求,大大提高网络访问速度,使得学生对教学系统的访问更加流畅。
三 基于Silverlight的网络虚拟教学系统的设计与实现
1 系统框架
基于Silverlight网络虚拟教学平台为三层B/S模式,开发技术主要使用XAML、.NET、Javascript等,数据库采用SQL Server 2005。系统框架如图1所示,第一层为表示层,通过在Web浏览器上外挂Silverlight浏览器插件实现用户与整个系统的交互;第二层为业务层,该层主要负责系统的各种逻辑业务,完成表示层与数据层之间的通讯。如调用数据库中的虚拟元件和学习模块信息,生成虚拟实验室场景。第三层为数据层,提供平台所需要的数据信息,如场景信息和角色信息等。
用户登录后,建立与服务器的连接,服务器为其分配标识,建立角色模型,并下载教学课件,通过XAML控制文件进行交互,模拟真实学习情景。同时服务器还负责存放共享空间、管理和维护虚拟教学场景的一致性,监听客户端的连接请求和响应连接。客户端是基于浏览器的,第一次使用时,只需不到几秒钟的时间就可以自动下载安装了Silverlight浏览器插件。客户端程序以插件方式运行在浏览器中,创建与服务器之间的Socket连接,接收服务器的报文进行解析,发送客户端的请求,从而实现虚拟场景的更新和用户交互。
2 主要功能模块
网络虚拟教学系统通过模拟和实现课堂的教学功能来为网络在线学生提供逼真的教学环境,使其不仅可以享受自由的学习和实践空间,而且还可以进行各种实时的交流与协作。系统的主要功能模块如下:
(1) 虚拟教学场景生成模块
虚拟教学系统中会存在多种虚拟场景,如虚拟教学场景、虚拟讨论场景和自主学习场景等。每个场景具有不同的场景片段和属性,系统根据学习者的属性,学习者选择的课程属性和选择学习场景载入与学习者需要相符合个中虚拟元件,构建出学习者特有的虚拟情境。
(2) 教学白板模块
教学白板是虚拟教学中一个重要的工具,它的主要功能是实现教学过程中老师与学生,学生与学生之间的实时交流和讨论。教师在教学的过程中可通过白板讲解教学内容和提出问题,学生也可以通过白板提出问题,查看老师和其他学生的发言,实现师生之间的实时在线讨论和交流。
(3) 规则管理模块
虚拟教学系统中存在多种规则,如教学规则、考试规则、作业规则、评判规则和关联规则等。规则管理模块负责添加、删除和修改这些规则。
(4) 信息管理模块
该模块主要负责管理系统所需的各种数据。系统的数据主要包括用户信息,课程信息,虚拟场景(元件)信息和其他教学资源等信息。信息管理模块实现对这些信息的统一组织和管理。
3 关键模块的实现
(1) 虚拟场景的构建
场景建模是构建虚拟场景最关键的一步。模型的复杂度、精细度直接关系到系统性能的好坏,因此建模主要解决两个问题:1)如何生成数据量小、适于网络传输的模型;2)如何模拟场景的真实感。通过本文第二节对Silverlight的介绍,我们可以知道Silverlight采用XAML作为描述语言,它提供了对动画和3D等众多方面的支持。因此系统平台的三维模型设计采用了如下方式:简单的模型直接采用XAML设计;复杂的模型采用AutoCAD应用软件PRO/E进行造型,然后输入到3DMAX中,在Lightwave中进行材质、纹理等处理后,通过微软提供的转换软件输出为XAML文件,从而通过Silverlight在浏览器中生成虚拟场景。图2为构建的虚拟化学实验室模型。
(2) 基于Silverlight的电子教学白板
基于Silverlight的电子教学白板可以使多人可同时使用白板绘制图形,发送文本消息,而这些动作都将会反映在每个使用者的屏幕上。因此,通过电子白板,老师和学生、学生和学生之间就可以进行便捷的交流和讨论,图3是我们实现的一个电子教学白板的截屏图。
电子白板采用XAML+WCF实现,XAML作为表示层用来进行白板的绘制,而用户操作的反馈则是通过WCF进行传递的。WCF(Windows Communication Foundation)的核心目的是允许程序与同一台计算机或网络上的,或跨越互联网的其它程序实现通讯。WCF编程模型把Web服务、.NET远程技术、分布式事务和消息队列统一到单个面向服务的编程模型中,从而实现真正意义上的分布式计算。由于电子教学白板既需要从浏览器端调用服务器端方法来完成动作的反馈(即浏览器端把用户的动作发送到服务器),服务器端又需要完成用户动作的分发(即服务器接收到用户的反馈后把动作分发到各浏览器端),因此,教学电子白板需要调用WCF的双向通信(Duplex Service),其相关代码如下:
// Page 为浏览器端方法调用器的启动页面
ClientSideMethodCaller caller = new ClientSideMethod Caller(Page);
// clientMethodName:浏览器端方法名
// param1,param2,……… 调用参数
// returnValueReader 返回值阅读器
caller.Call(“clientMethodName”, param1, param2, ………, returnValueReader);
四 总结
RIA是未来Web应用程序的发展方向,它的技术特点使得其非常适用于网络虚拟教学系统的开发,在网络教育领域必将具有广阔的应用前景。而微软最新推出的Silverlight的技术平台也旨在RIA市场占有一席之地,相信凭借微软雄厚的技术实力和强大的用户群体,Silverlight也必将放出其应有的光彩。本文通过Silverlight建立构建一个逼真的虚拟教学场景以达到现实中的效果,从而给学习者以真实感、归属感和沉浸感,实现人与虚拟环境的统一,从而大大提高了学生的学习兴趣和效率。
参考文献
[1] 杨宗凯,吴砥,刘清堂.网络教育标准与技术[M].北京:清华大学出版社,2003.
[2] 孙超,钟珞,基于Silverlight的富界面应用研究[J].武汉理工大学学报,2008,(12).
[3] 马明山,张明.虚拟现实技术在教学中的应用研究[J].安阳师范学院学报,2008,(2).
[4] Dan Wahlin.Silverlight 2中的新特性[J].程序员,2008(10).