基于GRAILS的网络学习环境的建构|
[摘 要] 基于Web技术在各个领域得到了广泛的应用 ,并且正迅速成为最有发展前景的网络设计框架,导致了互联网的展现手段、方法、形式等方面发生了深刻的变化。本文分析了Grails框架在网络程序设计中的特点、优势以及发展状况。针对网络学习环境的特点,应用Grails框架开发了具有实用价值的在线测试系统。最后对网络学习环境的应用前景进行了展望。
[关键词] grails;网络;学习环境;建构;测试
[中图分类号] G434 [文献标识码] A [文章编号] 1672―0008(2010)01―0105―06
一、引言
随着现代计算机技术的发展 ,基于Web技术在各个领域得到了广泛的应用 ,并且正迅速成为最有发展前景的网络设计框架,导致了互联网的展现手段、方法、形式等方面发生了深刻的变化。网络学习环境的构建提到了非常重要的位置。网络学习环境一般以建构主义学习理论为基础,强调以学生为中心进行知识的建构,强调学生之间的协作和交互,强调学生的探究性学习[1]。
本文实现了网络学习环境的一个重要模块:在线测试模块。该模块是一个基于Web的考试系统,为学生提供一个可以自己随时检测学习成果的平台,也可用来实现在线考试,实现了测试、阅卷、试卷分析等主要功能。还分析了Grails框架在网络程序设计中的特点、优势以及发展状况,并应用Grails框架实现了一个在线测试系统。最后对其相关技术与方法进行了总结,并且对网络学习环境的发展进行了展望。
二、Java Web框架的系统环境
Grails 是一种基于敏捷开发思想设计建立在Java平台之上的一个面向企业级应用、基于MVC模式的开源框架之上的一站式(full-stack) Web框架,其中集成了Spring、Hibernate、Quartz和SiteMesh 等多款成熟的可扩展的开源框架[2]。
Grails 是用 Groovy 编写的,它可以提供与遗留 Java 代码的无缝集成,同时还可以加入脚本编制语言的灵活性和动态性。Grails采用“约定优于配置( Convention Over Configuration )”和“不要重复自己(Don’t Repeat Yourself)”的原则,降低了对配置文件和各种模板代码的需求,使用“规约编程”,如果文件的名称本身就能说明此文件的用途,那么就不需要在配置文件中再次声明这些内容了。此框架会查看文件名,并自动弄清文件用途。通过使用“规约编程”,Grails还将自动生成Web应用程序中需要的许多内容。因此可以大大降低了在Java平台上进行Web开发的难度和复杂度,从而可以极大的提高Web应用的开发效率。
Grails框架的出现为我们进行教育信息化应用提供了一个有力的选择。通过使用Grails,将能够在很短的时间内、以最小的复杂性使Web应用程序就绪。
1.研究内容
传统的客户/服务器(Client/Server)结构,客户机都通过网络连接到同一个服务器上,这种结构存在一定的问题,最主要的就是维护困难,数据同一性和完整性难以控制。同时由于每一个客户机都必须安装特定的软件,用户使用维护起来非常不方便。
近几年来因特网飞速发展,人们的生活因为网络而在慢慢的改变。现在的个人电脑(PC)上都安装了浏览器(Browser)因此人们就利用浏览器作为客户端程序,万维网服务器(Web Server)作为中间层和客户端沟通服务器,这就是现在流行的B/S(Browser/Server)结构方式。
当前的网络应用具有数据集中的特点和要求,云计算的提出就是数据集中的重要体现。数据集中主要是向服务器端集中,程序的设计从C/S模式逐步向以服务器为中心的B/S的模式转化 。在这种结构下,本地的计算机无须安装任何客户端程序,只要有浏览器,可以使用因特网就可以使用系统了。不仅仅减少了开发客户端带来的成本,更重要的是,大大减少了整个系统维护的成本和时间,当系统进行修改或升级时,不需要对客户端做任何的改动。并且用户也可以在任何计算机上使用此系统而不要做特别的设置。
2.技术路线
Grails基于开源技术,例如Spring、Hibernate和SiteMesh等框架,并隐藏了这些框架的大多数底层复杂性,并与Spring、Hibernate和其他程序的集成,将其自身推行为一个简单快速的Web应用程序开发框架。
Grails应用程序的三个层(如图1所示)[3]:
大多数框架都有数十种特性,其中只有很少几种得到了广泛使用。对于Grails来说,这种关键特性是指“规则编程”(coding by convention)范例和构件的自动生成。Grails的其他特性包括对Ajax、验证、单元测试和功能测试的内置支持。它使用免费的开源Canoo WebTest项目来实现Web应用程序的功能测试。Grails还提供了与Quartz Scheduler的集成[4]。
3.系统环境的构建
系统环境的构建如下表1所示[5]:
三、基于网络的学习环境建构
1.MVC模式
MVC(Model-View-Controller,模型―视图―控制器模式)用于表示一种软件架构模式。它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller)。(如图2所示) [6]。
MVC由Trygve Reenskaug提出,最早被应用在SmallTalk-80环境中。模型―视图―控制器模式的目的是实现一种动态的程式设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外此模式通过对复杂度的简化使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。
控制器(Controller)――程序员编写程序应有的功能(实现算法等)。Grails使用了Spring MVC框架作为底层,实现对Web MVC的支持。控制器负责处理用户的所有操作。根据领域模型可以生成与领域模型同名的Controller。控制器通过操作(Action)来协调请求并编译模型,然后委托给视图或直接生成视图。
控制器是一个请求有效期(request-scope)的对象,每次请求都会创建新的实例[7]。其中有如下几种处理请求的方式:①简单的委托给一个合适的视图;②操作领域模型(Domain Model),然后将它在视图上显示;③直接写入响应(Response)的write对象中;④重定向到另一个操作(Action)或另一个控制器的操作。控制器是一个类,位于grails-app/controllers目录中,文件名按照约定(Convention)以Controller结尾。
视图(View)――界面设计人员进行图形界面设计。视图(View)用来生成用户接口,一般Web程序的用户接口就是HTML页面, Grails采用GSP(Groovy Server Page)作为表现层技术。GSP中的 Groovy 不仅代表底层技术,还代表可以快速编写scriptlet 的语言。从这方面来说,GSP 非常类似于 Java服务器页面(JSP)技术,JSP 允许在 Web 页面上混合使用一些 Java 代码。GSP也允许静态和动态内容混合在同一个文件中,这样可以让动态生成的HTML、XML或其他类型文件来响应Web客户端的请求[8]。
视图一般需要从控制器(Controller)中得到想要的模型数据(Model)。根据约定,视图(View)存储在 grails-app/views 目录内。每个Controller在View下对应一个同名目录,Controller每个action 对应一个同名的gsp页面。
MVC 关注点隔离的整体要点在于:它能够使您轻松地用自己喜欢的任何视图作为 Web 应用程序的外观。
模型(Model)――数据库专家进行数据管理和数据库设计。Grails使用了Hibernate作为底层,实现GORM(Grails Object Relational Mapping)对象关系映射框架;Grails利用GORM来实现持久层的解决方案,GORM是在Hibernate3基础上进行封装而成的,因此Grails在对象的关联、映射、继承、级联、删除、更新、加载、悲观锁和乐观锁等方面的处理都直接来源于Hibernate[9]。
领域模型(Domain Model)是Grails应用程序的核心,因为业务实体定义在领域模型中。Grails通过领域模型来驱动程序的开发,首先我们需要进行领域模型的业务实体的系统设计,根据“约定优于配置”的原则, 领域模型类一方面代表模型(Model),Grails会根据领域模型类自动创建同名的关系数据库表,另一方面领域模型类也是程序中数据对象的模板。Grails采用完全面向对象的思想,当程序需要持久化逻辑时,GORM负责数据的持久化工作,在底层GORM利用集成的Hibernate技术实现。领域模型类之间可能存在着一对一、一对多、多对多等多种关系。
2.网络学习系统结构设计
根据Jonassen, Peck 以及Wilson的观点,建构学习环境是一种基于信息技术的、新型的学习环境。在这个学习环境中,信息技术提供一些探索、体验、建构、交谈以及思考的工具, 以便他们能够在已有经验的基础上, 在与外界信息交互的过程中建构出新的知识。建构学习环境所具有的基本特征如下表2所示[10] [11]:
根据学习环境所具有的基本特征,我们的学习环境主要是由计算机网络构建的。在系统中, 以Grails框架和学习系统模型为主体,辅以专家知识模型、学习目标模型和知识测试模型(如图3所示) [12] 。
学习系统的工作过程――教师、学生通过浏览器访问学习系统提供的WWW服务: 使用学习系统。学习系统从学习数据库中读出学习目标;根据学习目标从知识库中提取学习内容供学生学习;在学习过程中, 系统可以对学生进行不定期的考核, 并将学生的学习状态及时更新到学生数据库;当学生的学习状态变化时, 系统动态地更新学习目标;使学习目标能更好满足学生的需求, 提高学习水平和学习效率。就这样, 在学习、考核、更新学习目标的循环过程中完成学习, 使之时刻适应学生的个性化需求。
整个学习过程中, 系统能根据学生情况的变化智能地做出调整, 充分发挥了智能系统的优势。同时, 教师可以使用系统对知识库的内容进行管理和更新, 当学生有疑难问题时,系统会查询知识库中分类索引的知识点, 智能地匹配学生的问题并给出解答;如果有些问题系统无法给出满意的解答, 系统将连接老师进行人工解答。通过系统和人工的结合, 使系统更加完善, 可用性更高。
3.数据库
系统要与Internet 连接, 需要一个专用的服务器。允许学生和教师远程登录, 并提供广阔的信息资源。因此专用数据库的建设与管理也是应当考虑的(如图4所示) [13]。
学习系统是采用Grails技术开发的Web 应用程序, 数据库采用MySQL5.0数据库, 以WWW服务的方式供学生和老师使用。老师可以通过Web 浏览器发布学习资源、管理课程信息, 学生则通过Web 浏览器阅读课程内容, 进行学习和交流。
(1)知识库: 存放着学习内容、学习信息;存放所有知识点分类索引的信息, 便于查询以及自动答疑。需要明确的是,如今的教师已经不可能如过去一样被当作圣人对待,教师只不过是学习的引领者,特别是一些与技术有关的学习, 教师建立知识库的同时也是学习的体验。任何学习活动在演示技能时需要做到的是,为学习者提供掌握信息的机会,并给予充足的时间让他们自己动手进行实践活动。
(2)学生库: 存放学生学习状态的数据,例如:学生的学习进度、学生对各知识点的掌握情况以及历史考核情况的记录。学生是学习者、受训者。进行学习之前必须首先了解学生,以便更好地选择媒体和技术来完成学习的学习目标。
可以从以下几个方面来分析学生(如表3所示) [14]:首先,教师必须了解学习者的认知偏爱和强度,主要的选择有听觉、视觉、触觉或运动知觉。例如反应比较慢的学习者倾向于运动知觉型的学习体验。其次,教师必须了解学习者的信息处理习惯,包括一个很大范围的各种可变的信息认知过程。最后,教师必须了解学习者动机和生理因素,动机方面如焦虑、建构强度、成就动机、社会动机、谨慎度、竞争性等;最重要的生理因素是性别差异、健康度和环境条件。
(3)学习库: 存放每个学生个性化的学习目标。每份学习目标是根据每个学生的学习进度以及对各知识点的掌握情况量身定做的, 并且随着学习的推进, 根据学生的情况及时更新。这些目标可能是从教科书中的课程提纲或者课程指导获得,也可能是教师自己确定。确立的形式主要包括通过学习学习者将能够做什么、学习者将在什么条件下来实施、知识的掌握程度等等。
目标的阐明意味着向学习者展示学习的结果,因此在制定目标时特别需要注意的是:关注学习者,而不是教师;要运用那些可以反应真实世界的行为术语。描述学习目标主要采用:①弄清目标所指向的对象或观众(Audience);②学习的行为或能力(Behavior);③学习行为或能力的条件(Condition);④学习该项行为或能力的精熟程度(Degree)。
在制定目标时还需要根据课程要求对目标进行科学评价,也包括四个方面:①确定目标是否符合大部分学习者的期望;②确定学习环境中是否具有实现学习目标的仪器设备;③对未来可能的学习过程进行评价;④确定实现目标有哪些媒体和技术需要。
学习者可以通过自主学习、探究学习、小组学习、个性化学习来达到学习的目的。为了更有效地学习,需要学习者积极的智力参与。其中允许学习者练习知识或者技能,并且对于他们的努力在正式的评价之前能够得到反馈。练习包括学习者自我检查、计算机辅助教学、通过因特网进行相关的活动,反馈可以由教师、计算机、其他的学习者或者自我评价提供。
四、基于Grails的学习环境建构案例
下面我们以在线测试系统的构建来说明Grails在学习环境建构中的应用情况。Grails附带了一个内嵌的HSQLDB数据库,但实际的应用还是需要一个专业的数据库,在此我们采用MySQL5.0来存储我们的数据。
到https://dev.省略/downloads/mysql/5.0.html下载MySQL Community版本,按照说明装好,在GTest/grails-app/conf/中,程序包含了数据库的配置文件。我们为每个环境分别创建了独立的数据库,开发环境――我们将定义一个叫GTest_dev的数据库来支持开发过程;调试环境――我们的单元测试和功能测试将依赖于GTest_test数据库;产品环境――最后,我们创建的GTest_prod数据库将建立最终的产品;并且在打开DataSource.groovy文件,进行相应的设置[15] 。
1.系统流程设计
下面我们开始设计系统的处理流程(如图5所示):
2.建立领域类
配置好变量环境以后,还必须要为Grails程序创建一个目录。任意命名并且可以放置在任何目录位置。接着,在放置的目录下生成项目结构。在命令行提示符的上述目录下输入grails create-app,当提示输入程序名称时,输入Gtest,稍后会出现建立成功的信息。
在此基础上,我们设计了领域类,其中类之间的关系设计如下(如图6所示):
建立领域类的命令,在上述的目录行提示符下输入:grails create-domain-class User,建立User的领域类。并在领域类内填入相应的内容(如上图6)。其它的领域类采用同样的方式建立。
3.生成控制器
在确保在当前文件目录的根目录下,继续在当前目录的命令行提示符下输入: grails generate-all User能够生成与User相关的控制action和显示gsp文件。这样,Grails就自动生成了User的控制器。
我们的最终目标就是通过用户界面来管理信息。控制器自动生成了诸如显示、列表、新建、编辑、更新、删除等的功能。而我们所需要做的,则是往控制器里面加入控制登入、登出用户信息和登陆检查的功能。
Grails只提供了最基础的一些Action。而在原有自动生成的Action的基础上,我们需要添加了login()、logout()以及logcheck()等的Action功能。这样,一个领域类的设计就大功告成了。按照相同的原则,我们添加修改了其他的Controller类,添加一些相应功能。
4.运行
现在再来看一下程序执行的情况。在程序目录下(GTest),输入grails run-app。当看到程序成功启动的时候,打开浏览器并访问https://localhost:8080/GTest(如图7所示):
五、基于Grails的网络学习环境的应用展望
随着现代教育技术在教育领域的迅速普及,有关如何有效利用现代教育技术的讨论一直在教育和科技领域进行着。如何建构以学习者为中心,以现代教育技术为平台,探索研究性学习、协作式学习等多种学习模式,恰当应用的学习环境,是广大一线教师面临的紧迫问题。
为了更有效地把信息技术和课程整合在教学之中,需要我们针对学习活动的需要来设计我们的学习环境,细心考虑使用何种方式、使用何种信息技术来支持和促进这种我们的学习活动[16]。
1.以网络学习环境促进接受性学习
以学生对现成知识技能的理解记忆、巩固熟练和迁移应用为主线,目的是系统地学习基本知识,训练基本技能。在教学过程中需要:引发学生的注意;引入新知识;进行新知识的传递和内化;通过练习应用进行巩固熟练;进行测评和补救。具体表现为:
(1)促进新信息的传递和内化:借助多媒体进行信息呈现、现象演示,让学生接触通过传统手段无法接触到的信息;借助辅导型CAI课件学习新内容;借助网络资源让学生结合课本内容进行扩展性学习,进一步拓展视野,增强融会贯通能力。
(2)促进知识的巩固熟练和深化迁移:通过操练练习型和游戏型CAI课件,有效地进行练习和应用活动,并得到及时的反馈;通过问题解决型课件可以应用知识解决高水平的问题。
(3)辅助教学测评:通过题库和计算机辅助测验系统进行测验考试,获得评价结果和学习建议;通过数据库软件来有效地管理学习成绩。在进行接受性学习时,需要对整个教学过程进行精心设计,采取各种途径启发学生的积极思考,避免因为使用技术而进一步出现“灌输”的弊端,即从“人灌”变为“电灌”。
2.以网络学习环境促进探究性学习
以学生发现问题和解决问题为主线,使学生通过探究活动来建构可以灵活迁移的知识技能,发现问题解决问题的能力、自主学习的能力和综合实践的能力,培养对探究和发现的内在兴趣。具体表现为:
(1)呈现有吸引力的问题情境:通过视频、动画或模拟等呈现情境性的问题。
(2)搜集资料、获取数据:借助网络教学资源库、数字图书馆、数字博物馆、多媒体百科全书等获得丰富的相关资源。借助计算机辅助实验系统、模拟和建模软件等工具或软件,通过操纵获得数据、发现规律。
(3)处理分析资料:可以将信息技术用作解决问题的工具,利用数据库、电子表格和统计软件等对通过调查、实验收集到的数据进行分析处理,通过文字处理软件对收集到的文献资料进行整合加工等。
(4)总结和呈现结果:可以用文字处理软件来撰写报告;用演示文稿软件制作发言提纲;可以让学习者作为设计者用多媒体和网页著作工具来制作和发布电子作品,表达自己对知识的理解。
(5)评价反思:除了利用计算机辅助测验工具之外,可以利用学生生成的电子学档对探究过程进行追踪评价,促进学生的自我反思。
3.以网络学习促进合作学习
合作学习活动既可以在课堂中进行,也可以在互联网进行。网络上的合作学习活动中的功能集中表现为社群互动工具和学习监控工具。具体表现为:
(1)支持协同工作:例如协同学习、协同讨论、协同实验等。
(2)提供强大的交流工具:学生可以将自己对研讨问题的思考做成演示文稿,让自己的表达更清楚、更条理;利用交互式电子白板对讨论过程进行记录和整理,利用“头脑风暴”,促进讨论的深度和广度;利用网络促进广泛便捷的实时和非实时的交流。
(3)学习评价:合作和讨论过程中形成的资料记录可以构成电子学档,对小组及其成员的活动表现进行追踪评价。
4.以网络学习促进个别化学习
通过学生的自我管理和自主活动来进行学习,学习者在学习内容、学习步调、学习方式、学习时间、学习地点等方面具有较大的自主选择空间。信息技术与课程整合的教学中以及数字化学习(e-Learning)的发展中,给个别化学习提供了更大的空间。按照个别化学习环境的开放程度,分为以下两类:
(1)基于结构化程序的个别化学习:将某类学习任务、学习程序和相应的指导反馈信息嵌入到预先设计的教学软件中,让学习者通过与这种教学软件的交互来个别化地完成某种学习任务。
(2)基于资源的个别化学习:教师首先给学生明确一个主题,学生围绕这一主题在可利用的资源中进行调研,搜集与问题相关的信息,并对这些材料进行分析处理,最终解决问题。
六、结语
Grails为我们构建学习环境提供了一个非常好的框架。Grails框架在教育领域的作用一方面表现在可以使广大教师在选择和使用Web展现技术时多了一个有力的选择,使我们能够快速的构建基于Web的教育应用;另一方面也使广大教师重新审视我们的软件设计能力,通过成熟的框架技术,使我们快速开发教育技术领域的应用程序提供了良好的支持。对于还没有完全具备驾驭媒体技术和教学设计方法的教师,Grails框架可以提供一套明确的指引,让教师按步骤设计实际应用于课堂上的教学程序,根据规约编程,为我们减少了大量繁琐的配置问题,加快了程序设计的进度和学习的难度。为广大教师构建指导学习者有效搜寻和整合资料的平台,使学习者参与的主动性大大提高。
当然,基于Grails框架的并不是不再需要我们编写代码,对于复杂的应用我们仍然需要进行大量的编程。随着软件技术的发展以及教师驾驭技术的能力不断提高,基于Web的教育技术平台将真正成为一个以人为本的环境,真正成为我们学习的工具,Grails技术将在教育领域发挥更大的作用。
[参考文献]
[1]张剑平. 现代教育技术[M].北京:高等教育出版社,2006.
[2][5][15]Jason Rudloph. Getting Started with Grails[M/OL].省略/book/bookdetail.html?bid=103205
[3]Graeme Rocher,Peter Ledbrook,Marc Palmer. The Grails Framework - Reference Documentation[DB/OL].2008.省略/doc/1.1/.
[4][8][9]Scott Davis. IBM Mastering Grails[DB/OL].2008. https://www.省略/developerworks/cn/java/j-grails/.
[6][7]Graeme Rocher.Grails权威指南[M].北京:电子工业出版社,2007.
[10]刘华. 基于网络的建构学习环境的创建探析[J].教育技术导刊,2006,(1).
[11]王其云.创建基于网络的建构学习环境[J].开放教育研究,2003,(1).
[12]钟志贤.论学习环境设计[J].电化教育研究,2005,(7).
[13]陈燕,万利平. Web2.0时代网络学习环境的构建[J].中国教育技术装备,2009,(9).
[14]丁卫泽.基于ASSURE 模型的学习环境构建[J]. 电化教育研究,2008,(12).
[16]陈琦,张建伟.信息时代的整合性学习模型――信息技术整合于教学的生态观诠释[DB/OL]. 省略/articledigest21/xin4.htm#_edn4.省略) ;杨进中,硕士,讲师,青岛大学师范学院教育技术系,研究方向为教育信息化技术应用开发、Web2.省略)。
Grails-Based Network Learning Environment to Build
――Online Testing System as an Example
Wu Weimin & Yang Jinzhong
(Teachers College, Qingdao University, Qingdao shandong266071)
【Abstract】 Web-based technology in various fields has been widely used, and is quickly becoming the most promising framework for network design, resulting in display of the Internet means, methods, forms, etc., profound changes have occurred. This paper analyzes the Grails framework of the network programming features, advantages and the development of the situation. Learning environment for network characteristics, application Grails framework, developed with the practical value of online testing system. Finally its application prospected.
【Keywords】 Grails;Network;Learning environment;Construction;Test
本文责编:陈 媛
