让移动学习加速响应
2011-11-09孔峰郭清娟
文/孔峰 郭清娟
让移动学习加速响应
文/孔峰1郭清娟2
在移动学习平台中增加更多的实时交互式功能的同时,也意味着增加系统数据传输量,增强对系统实时性的要求,通过AJAX技术实现终端数据异步更新的方法,移动学习平台有效减少无线终端与后台系统的数据传输量,提高响应速度。
随着移动计算技术的快速发展和移动终端运算能力的不断提高,一种全新的学习模式——移动学习逐渐得到广泛应用。移动学习是指利用无线移动通信网络技术以及无线移动通信设备(如移动电话、个人数字助理PDA、Pocket PC等)获取教育信息、教育资源和教育服务的一种新型学习形式。与其他形式的学习相比,移动学习具有学习便捷性、教学个性化、交互丰富性、情境相关性等特点。移动学习是移动计算技术与数字化学习技术相结合的产物,代表着学习的未来。
移动学习也面临着诸多问题,如平台资源不够丰富、通信费用过高、移动终端类型不一致、学习效率难以保证等。针对这些问题,可以采取不同的应对措施,如大力加强学习平台的建设,丰富学习资源;采用最新的终端软件和服务器软件设计技术,尽量压缩辅助信息的传输量,以节省带宽、降低费用;采用平台无关的软件开发方法设计开发终端软件等。针对减少网络数据传输量的问题,本文提出采用WAP2.0技术和AJAX应用程序开发技术构建移动学习平台。
WAP2.0的三个独特优势
WAP(Wireless Application Protocol,无线应用协议)是在数字移动电话、互联网、个人数字助理(PDA)、计算机系统、信息家电之间进行通信的全球性开放标准。这一标准的诞生是WAP论坛成员努力的结果。WAP论坛是在1997年6月,由诺基亚、爱立信、摩托罗拉和无线星球(Unwi redPlanet)共同组成的。1998年5月,WAP论坛推出WAP1.0版。由于WAP1.0与TCP/IP协议不能完全兼容、带宽限制等原因,WAP1.0的发展并没有预期的乐观。WAP论坛吸收iMode等的成功经验和WAP的失败教训,于2001年8月公布WAP2.0版本。
WAP2.0在WAP1.X的基础上进行很大的改进,对WAP协议的结构进行重大变革,关键性地增加了对标准Internet通信协议的支持,提供适合于无线通信环境的互通优化功能,并为无线设备利用现有的Internet技术提供应用环境;能够利用现有的和可以预见的空中接口技术及其载体(GPRS和3G通信)运行应用业务等等。
WAP2.0在移动学习平台建设中具有独特的优势,主要体现在以下方面:
1.WAP推送业务
这种业务可以通过推送代理发送或者推送给基于服务器应用的多种终端。有了这种推送功能后,无线设备不再需要询问应用服务器就能得到新的信息。它尤其适合移动学习平台中布置教学任务、下达通知等应用。
2. 用户代理简介业务
这种业务为把客户机能力和用户选择应用的个性喜好介绍给应用服务器而提供一种机制:它通过对服务器发送客户机和用户所要求的信息,支持客户机/服务器会话模式。该模式可以提供在线流媒体点播,在线Flash课件欣赏等多种业务和方式,更好地表现学习的内容,并可提供学习者之间的相互交流功能。
3.外部功能接口业务
这一业务类似于提供扩大或增强浏览器能力或其他应用的插件模块,为将来扩充WAP设备的能力和增加应用提供基础,并可用于定义连接外部设备,如智能卡、GPS和数字摄像机等所需要的特殊接口,这为今后使用视频连线进行学习交流提供技术储备。
AJAX高速响应且省带宽
AJAX即Asynchronous JavaScript and XML(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。AJAX由Adaptive Path公司的Jesse James Garrett首次提出,它可以为用户提供更为自然丰富的浏览体验,更重要的是,它可以实现移动设备和Web的即时通讯。
AJAX使用XMLHttpRequest对象与服务器进行异步通信;使用CSS定义外观;使用DOM实现动态显示与交互;使用XML与XSTL进行数据交换处理;使用JavaScript绑定和处理所有数据,其工作原理见图1。
通过AJAX技术,JavaScript可使用XMLHttpRequest 对象来直接与服务器进行通信。通过这个对象, JavaScript 可在不重载页面的情况与 Web 服务器交换数据,这就是所谓的异步通信。用户触发请求时,由JavaScript立即更新UI,并向服务器发出异步请求,执行业务流程。当请求返回时,使用JavaScript和CSS相应地更新用户接口UI,而不是刷新整个页面。传统的Web应用允许用户填写表单,当提交表单时就向Web服务器发送一个请求。服务器接收并处理传来的表单,然后返回一个新的网页。而在前后两个页面中的大部分HTML代码往往是相同的,这样显然浪费带宽。对于移动终端而言,带宽很宝贵,因而利用AJAX技术既可以提高响应速度又可以节省带宽。
这一异步通信操作是凭借放置在一个隐藏的Frame中的AJAX引擎实现的,引擎采用JavaScript编写。在会话开始时,AJAX装载该引擎,用户与AJAX引擎交互。如果用户交互不需要从服务器上获得数据,AJAX引擎会自主处理这个交互。当用户交互需要从服务器上获取数据时,AJAX引擎会完成一个异步调用,而不打断用户流。
图1 AJAX的工作原理
图2 系统整体功能结构
即时交互的移动学习平台
系统功能
系统要能够实现学习、交流、反馈等主要功能,包括注册登录模块、信息发布模块、个人学习模块、交流协作模块、系统管理模块等。系统整体功能结构如图2所示。
由于移动学习时间、地点的随机性以及个人对学习系统使用方法掌握不够等问题,移动学习的效果较难得到保障。为了保证学习效果,除了改进学习工具、增加学习资源的趣味性等方式外,还可以采用构建学习共同体、注重过程性评价等方式,提高学习者兴趣、促进深入学习。
为构建学习共同体,我们可以在系统中加入更多的交互式模块,如讨论区(BBS)、小组合作社(CSCL)、电子档案袋(ELP)、电子绩效评估系统(EPSS)等。BBS、CSCL可以实现学习者之间的即时交互、协作学习,ELP、EPSS模块可以及时反馈、激励促进学习者的学习,从而有效提高学习者的学习积极性,提高学习效果。在增加更多的实时交互式功能的同时,也意味着增加系统数据传输量、增强对系统实时性的要求,使用AJAX技术可以有效降低系统传输数据量、提高系统的响应速度。
体系架构
移动学习平台包括服务器端应用和客户端应用两部分。我们在服务器端采用性能优良的服务器,提供应用服务、Web服务和数据库服务等;客户端可以使用手机、PDA等多种移动设备。鉴于手机的普及程度,我们首选手机作为客户端设备。
由于移动终端设备资源有限,不能提供直接对后台数据库的访问能力。因此,在建立移动学习平台时,使用J2EE技术建立服务器,而使用J2ME技术建立终端应用。
J2EE是目前流行的多层企业应用技术,它利用Java2平台来简化企业解决方案的开发、部署、管理等体系结构,以下是J2EE 典型的四层结构:
1.运行在客户端机器上的客户层组件;
图3 J2EE应用层次结构
2.运行在服务器上的表示层(Web层)组件;
3.运行在服务器上的业务逻辑层组件;
4.运行在MIS服务器上的企业信息系统层软件。
J2EE应用程序是由组件构成的,J2EE组件是具有独立功能的软件单元,它们通过相关的类和文件组装成J2EE应用程序,并与其他组件交互。J2EE说明书中定义应用客户端程序和Applets客户层组件两种J2EE组件,Java Servlet和JavaServer Pages(JSP)是Web层组件,Enterprise Java Beans(EJB)是业务层组件。J2EE的优点之一是能够适应不同类型的客户端,如Web浏览器、Java Applets和Java应用程序等,实现跨平台。图3展示了典型的基于J2EE的移动学习平台结构。
J2ME是当前使用较多的移动终端开发技术。它定位于那些只有有限的内存、有限的处理能力以及有限的图形用户界面能力的设备,如手机、PDA、机顶盒等设备,它具有Java语言的简单、安全、与平台无关、代码可移植等优点,可以与J2EE无缝结合。为了在达到标准化和兼容性的同时尽量满足不同方面的需求,J 2ME的架构分为Configuration、Profile和Optional Packages(可选包)。它们的组合取舍形成具体的运行环境。已经标准化的Configuration有Connected Limited Device Configuration(CLDC)和Connected Device Configuration(CDC)。CLDC上已经标准化的Profile有Mobile Information Device Profile ( MIDP)和Information Module Profile(IMP)。J2ME手机开发采用CLDC/MIDP结构。MIDP包括用户接口以及设备生产厂商根据需要构造的一系列Java API。而CLDC提供手机移动终端支持的Java API。
在J2ME客户端,移动设备通过HTTP协议连接到Web服务器上,Web服务器使用Servlet容器来处理客户端的连接和请求,再将这些请求发送到企业级服务器上,企业级服务器使用EJB进行会话,处理请求,并通过JDBC连接到数据库系统上。当数据库系统处理完SQL语句后,将会形成一个数据集,并将这个数据集发送到企业级服务器,企业级服务器把接收到的信息提交给WebServer,WebServer再通过HTTP将信息发送到客户端。
为了保证学习效果,除了改进学习工具、增加学习资源的趣味性等方式外,还可以采用构建学习共同体、注重过程性评价等方式,提高学习者兴趣、促进深入学习。
基于AJAX的解决方案
AJAX为客户端技术,在服务器端的应用常使用功能强大的J2EE支持开发,我们采用二者相结合的方式来进行设计。AJAX引擎发出XMLHTTPRequest的目的只是为了从服务器端得到一个数据响应,而对服务器端响应的产生方式并不敏感。因此,为使AJAX引擎能够在服务器端得到强大支持,可在服务器端Servlet容器中设置一个专用的Servlet来处理AJAX引擎发出的请求,我们将这个Servlet定义为AjaxServlet,它主要完成如下任务:1.接收AJAX引擎发出的请求;2.解析请求参数;3.调用Bean或EJB等进行业务逻辑处理;4.处理响应内容并向客户端发出响应。
尽管在AjaxServlet中可直接存取持久化数据或持久化业务逻辑,但是我们并不鼓励这样做,因为这会破坏系统的整体结构,影响系统的易维护性和可扩展性。这些工作可借助Bean、EJB等来完成。
AJAX引擎发出XMLHttpRequest请求时,将请求的URL地址指向服务器端声明的映射到AjaxServlet的地址,AJAX引擎在浏览器端向服务器端的Servlet发出请求时可携带多个参数来限定所需要的数据和操作。搭建开发环境
我们采用J2EE技术进行服务器端系统的开发,通过Java Servlet和Java Server Pages(JSP)建立Web页面,通过EJB实现业务层应用的开发。
我们采用J2ME开发环境进行客户端系统开发。首先下载安装Java-SDK,这是开发Java程序必备的开发包;其次需要有移动设备模拟器,这是从Java开发具体到J2ME的一步,模拟器根据要开发的应用所使用的手机来选择,通用的是WTK(我们选用WTK2.5.2版本);最后下载一个开发软件,我们选用Eclipse集成开发环境,在使用Eclipse前需要安装Eclipse-ME插件。AjaxServlet的实现
为实现客户端与服务器端的数据交换,我们采用JSON(JavaScript Object Notation)作为数据交换格式。JSON是轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换语言。
在J2EE服务器端AjaxServlet代码框架如下:
客户端页面的JavaScript通过异步传输XMLHTTP发送参数到Ajax Servlet,经上述接收处理返回符合条件的数据。
本文基于WAP2.0,采用AJAX应用程序开发技术,在J2ME与J2EE开发环境下构建移动学习平台,探索相关技术的实现方法,重点介绍通过AJAX技术实现终端数据异步更新的方法,对比相关技术的特点,采用该方法开发的移动学习平台具有响应迅速、占用带宽少、交互性好等优点。在今后的研究中还要加强客户端与服务器端交互功能的深入开发,以期能够更好地提高系统应用效率。
(作者单位1为曲阜师范大学计算机科学学院,2为日照市教育局)