文/孔峰 郭清娟
讓移動(dòng)學(xué)習(xí)加速響應(yīng)
文/孔峰1郭清娟2
在移動(dòng)學(xué)習(xí)平臺(tái)中增加更多的實(shí)時(shí)交互式功能的同時(shí),也意味著增加系統(tǒng)數(shù)據(jù)傳輸量,增強(qiáng)對(duì)系統(tǒng)實(shí)時(shí)性的要求,通過AJAX技術(shù)實(shí)現(xiàn)終端數(shù)據(jù)異步更新的方法,移動(dòng)學(xué)習(xí)平臺(tái)有效減少無線終端與后臺(tái)系統(tǒng)的數(shù)據(jù)傳輸量,提高響應(yīng)速度。
隨著移動(dòng)計(jì)算技術(shù)的快速發(fā)展和移動(dòng)終端運(yùn)算能力的不斷提高,一種全新的學(xué)習(xí)模式——移動(dòng)學(xué)習(xí)逐漸得到廣泛應(yīng)用。移動(dòng)學(xué)習(xí)是指利用無線移動(dòng)通信網(wǎng)絡(luò)技術(shù)以及無線移動(dòng)通信設(shè)備(如移動(dòng)電話、個(gè)人數(shù)字助理PDA、Pocket PC等)獲取教育信息、教育資源和教育服務(wù)的一種新型學(xué)習(xí)形式。與其他形式的學(xué)習(xí)相比,移動(dòng)學(xué)習(xí)具有學(xué)習(xí)便捷性、教學(xué)個(gè)性化、交互豐富性、情境相關(guān)性等特點(diǎn)。移動(dòng)學(xué)習(xí)是移動(dòng)計(jì)算技術(shù)與數(shù)字化學(xué)習(xí)技術(shù)相結(jié)合的產(chǎn)物,代表著學(xué)習(xí)的未來。
移動(dòng)學(xué)習(xí)也面臨著諸多問題,如平臺(tái)資源不夠豐富、通信費(fèi)用過高、移動(dòng)終端類型不一致、學(xué)習(xí)效率難以保證等。針對(duì)這些問題,可以采取不同的應(yīng)對(duì)措施,如大力加強(qiáng)學(xué)習(xí)平臺(tái)的建設(shè),豐富學(xué)習(xí)資源;采用最新的終端軟件和服務(wù)器軟件設(shè)計(jì)技術(shù),盡量壓縮輔助信息的傳輸量,以節(jié)省帶寬、降低費(fèi)用;采用平臺(tái)無關(guān)的軟件開發(fā)方法設(shè)計(jì)開發(fā)終端軟件等。針對(duì)減少網(wǎng)絡(luò)數(shù)據(jù)傳輸量的問題,本文提出采用WAP2.0技術(shù)和AJAX應(yīng)用程序開發(fā)技術(shù)構(gòu)建移動(dòng)學(xué)習(xí)平臺(tái)。
WAP(Wireless Application Protocol,無線應(yīng)用協(xié)議)是在數(shù)字移動(dòng)電話、互聯(lián)網(wǎng)、個(gè)人數(shù)字助理(PDA)、計(jì)算機(jī)系統(tǒng)、信息家電之間進(jìn)行通信的全球性開放標(biāo)準(zhǔn)。這一標(biāo)準(zhǔn)的誕生是WAP論壇成員努力的結(jié)果。WAP論壇是在1997年6月,由諾基亞、愛立信、摩托羅拉和無線星球(Unwi redPlanet)共同組成的。1998年5月,WAP論壇推出WAP1.0版。由于WAP1.0與TCP/IP協(xié)議不能完全兼容、帶寬限制等原因,WAP1.0的發(fā)展并沒有預(yù)期的樂觀。WAP論壇吸收iMode等的成功經(jīng)驗(yàn)和WAP的失敗教訓(xùn),于2001年8月公布WAP2.0版本。
WAP2.0在WAP1.X的基礎(chǔ)上進(jìn)行很大的改進(jìn),對(duì)WAP協(xié)議的結(jié)構(gòu)進(jìn)行重大變革,關(guān)鍵性地增加了對(duì)標(biāo)準(zhǔn)Internet通信協(xié)議的支持,提供適合于無線通信環(huán)境的互通優(yōu)化功能,并為無線設(shè)備利用現(xiàn)有的Internet技術(shù)提供應(yīng)用環(huán)境;能夠利用現(xiàn)有的和可以預(yù)見的空中接口技術(shù)及其載體(GPRS和3G通信)運(yùn)行應(yīng)用業(yè)務(wù)等等。
WAP2.0在移動(dòng)學(xué)習(xí)平臺(tái)建設(shè)中具有獨(dú)特的優(yōu)勢(shì),主要體現(xiàn)在以下方面:
1.WAP推送業(yè)務(wù)
這種業(yè)務(wù)可以通過推送代理發(fā)送或者推送給基于服務(wù)器應(yīng)用的多種終端。有了這種推送功能后,無線設(shè)備不再需要詢問應(yīng)用服務(wù)器就能得到新的信息。它尤其適合移動(dòng)學(xué)習(xí)平臺(tái)中布置教學(xué)任務(wù)、下達(dá)通知等應(yīng)用。
2. 用戶代理簡介業(yè)務(wù)
這種業(yè)務(wù)為把客戶機(jī)能力和用戶選擇應(yīng)用的個(gè)性喜好介紹給應(yīng)用服務(wù)器而提供一種機(jī)制:它通過對(duì)服務(wù)器發(fā)送客戶機(jī)和用戶所要求的信息,支持客戶機(jī)/服務(wù)器會(huì)話模式。該模式可以提供在線流媒體點(diǎn)播,在線Flash課件欣賞等多種業(yè)務(wù)和方式,更好地表現(xiàn)學(xué)習(xí)的內(nèi)容,并可提供學(xué)習(xí)者之間的相互交流功能。
3.外部功能接口業(yè)務(wù)
這一業(yè)務(wù)類似于提供擴(kuò)大或增強(qiáng)瀏覽器能力或其他應(yīng)用的插件模塊,為將來擴(kuò)充WAP設(shè)備的能力和增加應(yīng)用提供基礎(chǔ),并可用于定義連接外部設(shè)備,如智能卡、GPS和數(shù)字?jǐn)z像機(jī)等所需要的特殊接口,這為今后使用視頻連線進(jìn)行學(xué)習(xí)交流提供技術(shù)儲(chǔ)備。
AJAX即Asynchronous JavaScript and XML(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。AJAX由Adaptive Path公司的Jesse James Garrett首次提出,它可以為用戶提供更為自然豐富的瀏覽體驗(yàn),更重要的是,它可以實(shí)現(xiàn)移動(dòng)設(shè)備和Web的即時(shí)通訊。
AJAX使用XMLHttpRequest對(duì)象與服務(wù)器進(jìn)行異步通信;使用CSS定義外觀;使用DOM實(shí)現(xiàn)動(dòng)態(tài)顯示與交互;使用XML與XSTL進(jìn)行數(shù)據(jù)交換處理;使用JavaScript綁定和處理所有數(shù)據(jù),其工作原理見圖1。
通過AJAX技術(shù),JavaScript可使用XMLHttpRequest 對(duì)象來直接與服務(wù)器進(jìn)行通信。通過這個(gè)對(duì)象, JavaScript 可在不重載頁面的情況與 Web 服務(wù)器交換數(shù)據(jù),這就是所謂的異步通信。用戶觸發(fā)請(qǐng)求時(shí),由JavaScript立即更新UI,并向服務(wù)器發(fā)出異步請(qǐng)求,執(zhí)行業(yè)務(wù)流程。當(dāng)請(qǐng)求返回時(shí),使用JavaScript和CSS相應(yīng)地更新用戶接口UI,而不是刷新整個(gè)頁面。傳統(tǒng)的Web應(yīng)用允許用戶填寫表單,當(dāng)提交表單時(shí)就向Web服務(wù)器發(fā)送一個(gè)請(qǐng)求。服務(wù)器接收并處理傳來的表單,然后返回一個(gè)新的網(wǎng)頁。而在前后兩個(gè)頁面中的大部分HTML代碼往往是相同的,這樣顯然浪費(fèi)帶寬。對(duì)于移動(dòng)終端而言,帶寬很寶貴,因而利用AJAX技術(shù)既可以提高響應(yīng)速度又可以節(jié)省帶寬。
這一異步通信操作是憑借放置在一個(gè)隱藏的Frame中的AJAX引擎實(shí)現(xiàn)的,引擎采用JavaScript編寫。在會(huì)話開始時(shí),AJAX裝載該引擎,用戶與AJAX引擎交互。如果用戶交互不需要從服務(wù)器上獲得數(shù)據(jù),AJAX引擎會(huì)自主處理這個(gè)交互。當(dāng)用戶交互需要從服務(wù)器上獲取數(shù)據(jù)時(shí),AJAX引擎會(huì)完成一個(gè)異步調(diào)用,而不打斷用戶流。
圖1 AJAX的工作原理
圖2 系統(tǒng)整體功能結(jié)構(gòu)
系統(tǒng)功能
系統(tǒng)要能夠?qū)崿F(xiàn)學(xué)習(xí)、交流、反饋等主要功能,包括注冊(cè)登錄模塊、信息發(fā)布模塊、個(gè)人學(xué)習(xí)模塊、交流協(xié)作模塊、系統(tǒng)管理模塊等。系統(tǒng)整體功能結(jié)構(gòu)如圖2所示。
由于移動(dòng)學(xué)習(xí)時(shí)間、地點(diǎn)的隨機(jī)性以及個(gè)人對(duì)學(xué)習(xí)系統(tǒng)使用方法掌握不夠等問題,移動(dòng)學(xué)習(xí)的效果較難得到保障。為了保證學(xué)習(xí)效果,除了改進(jìn)學(xué)習(xí)工具、增加學(xué)習(xí)資源的趣味性等方式外,還可以采用構(gòu)建學(xué)習(xí)共同體、注重過程性評(píng)價(jià)等方式,提高學(xué)習(xí)者興趣、促進(jìn)深入學(xué)習(xí)。
為構(gòu)建學(xué)習(xí)共同體,我們可以在系統(tǒng)中加入更多的交互式模塊,如討論區(qū)(BBS)、小組合作社(CSCL)、電子檔案袋(ELP)、電子績效評(píng)估系統(tǒng)(EPSS)等。BBS、CSCL可以實(shí)現(xiàn)學(xué)習(xí)者之間的即時(shí)交互、協(xié)作學(xué)習(xí),ELP、EPSS模塊可以及時(shí)反饋、激勵(lì)促進(jìn)學(xué)習(xí)者的學(xué)習(xí),從而有效提高學(xué)習(xí)者的學(xué)習(xí)積極性,提高學(xué)習(xí)效果。在增加更多的實(shí)時(shí)交互式功能的同時(shí),也意味著增加系統(tǒng)數(shù)據(jù)傳輸量、增強(qiáng)對(duì)系統(tǒng)實(shí)時(shí)性的要求,使用AJAX技術(shù)可以有效降低系統(tǒng)傳輸數(shù)據(jù)量、提高系統(tǒng)的響應(yīng)速度。
體系架構(gòu)
移動(dòng)學(xué)習(xí)平臺(tái)包括服務(wù)器端應(yīng)用和客戶端應(yīng)用兩部分。我們?cè)诜?wù)器端采用性能優(yōu)良的服務(wù)器,提供應(yīng)用服務(wù)、Web服務(wù)和數(shù)據(jù)庫服務(wù)等;客戶端可以使用手機(jī)、PDA等多種移動(dòng)設(shè)備。鑒于手機(jī)的普及程度,我們首選手機(jī)作為客戶端設(shè)備。
由于移動(dòng)終端設(shè)備資源有限,不能提供直接對(duì)后臺(tái)數(shù)據(jù)庫的訪問能力。因此,在建立移動(dòng)學(xué)習(xí)平臺(tái)時(shí),使用J2EE技術(shù)建立服務(wù)器,而使用J2ME技術(shù)建立終端應(yīng)用。
J2EE是目前流行的多層企業(yè)應(yīng)用技術(shù),它利用Java2平臺(tái)來簡化企業(yè)解決方案的開發(fā)、部署、管理等體系結(jié)構(gòu),以下是J2EE 典型的四層結(jié)構(gòu):
1.運(yùn)行在客戶端機(jī)器上的客戶層組件;
圖3 J2EE應(yīng)用層次結(jié)構(gòu)
2.運(yùn)行在服務(wù)器上的表示層(Web層)組件;
3.運(yùn)行在服務(wù)器上的業(yè)務(wù)邏輯層組件;
4.運(yùn)行在MIS服務(wù)器上的企業(yè)信息系統(tǒng)層軟件。
J2EE應(yīng)用程序是由組件構(gòu)成的,J2EE組件是具有獨(dú)立功能的軟件單元,它們通過相關(guān)的類和文件組裝成J2EE應(yīng)用程序,并與其他組件交互。J2EE說明書中定義應(yīng)用客戶端程序和Applets客戶層組件兩種J2EE組件,Java Servlet和JavaServer Pages(JSP)是Web層組件,Enterprise Java Beans(EJB)是業(yè)務(wù)層組件。J2EE的優(yōu)點(diǎn)之一是能夠適應(yīng)不同類型的客戶端,如Web瀏覽器、Java Applets和Java應(yīng)用程序等,實(shí)現(xiàn)跨平臺(tái)。圖3展示了典型的基于J2EE的移動(dòng)學(xué)習(xí)平臺(tái)結(jié)構(gòu)。
J2ME是當(dāng)前使用較多的移動(dòng)終端開發(fā)技術(shù)。它定位于那些只有有限的內(nèi)存、有限的處理能力以及有限的圖形用戶界面能力的設(shè)備,如手機(jī)、PDA、機(jī)頂盒等設(shè)備,它具有Java語言的簡單、安全、與平臺(tái)無關(guān)、代碼可移植等優(yōu)點(diǎn),可以與J2EE無縫結(jié)合。為了在達(dá)到標(biāo)準(zhǔn)化和兼容性的同時(shí)盡量滿足不同方面的需求,J 2ME的架構(gòu)分為Configuration、Profile和Optional Packages(可選包)。它們的組合取舍形成具體的運(yùn)行環(huán)境。已經(jīng)標(biāo)準(zhǔn)化的Configuration有Connected Limited Device Configuration(CLDC)和Connected Device Configuration(CDC)。CLDC上已經(jīng)標(biāo)準(zhǔn)化的Profile有Mobile Information Device Profile ( MIDP)和Information Module Profile(IMP)。J2ME手機(jī)開發(fā)采用CLDC/MIDP結(jié)構(gòu)。MIDP包括用戶接口以及設(shè)備生產(chǎn)廠商根據(jù)需要構(gòu)造的一系列Java API。而CLDC提供手機(jī)移動(dòng)終端支持的Java API。
在J2ME客戶端,移動(dòng)設(shè)備通過HTTP協(xié)議連接到Web服務(wù)器上,Web服務(wù)器使用Servlet容器來處理客戶端的連接和請(qǐng)求,再將這些請(qǐng)求發(fā)送到企業(yè)級(jí)服務(wù)器上,企業(yè)級(jí)服務(wù)器使用EJB進(jìn)行會(huì)話,處理請(qǐng)求,并通過JDBC連接到數(shù)據(jù)庫系統(tǒng)上。當(dāng)數(shù)據(jù)庫系統(tǒng)處理完SQL語句后,將會(huì)形成一個(gè)數(shù)據(jù)集,并將這個(gè)數(shù)據(jù)集發(fā)送到企業(yè)級(jí)服務(wù)器,企業(yè)級(jí)服務(wù)器把接收到的信息提交給WebServer,WebServer再通過HTTP將信息發(fā)送到客戶端。
為了保證學(xué)習(xí)效果,除了改進(jìn)學(xué)習(xí)工具、增加學(xué)習(xí)資源的趣味性等方式外,還可以采用構(gòu)建學(xué)習(xí)共同體、注重過程性評(píng)價(jià)等方式,提高學(xué)習(xí)者興趣、促進(jìn)深入學(xué)習(xí)。
基于AJAX的解決方案
AJAX為客戶端技術(shù),在服務(wù)器端的應(yīng)用常使用功能強(qiáng)大的J2EE支持開發(fā),我們采用二者相結(jié)合的方式來進(jìn)行設(shè)計(jì)。AJAX引擎發(fā)出XMLHTTPRequest的目的只是為了從服務(wù)器端得到一個(gè)數(shù)據(jù)響應(yīng),而對(duì)服務(wù)器端響應(yīng)的產(chǎn)生方式并不敏感。因此,為使AJAX引擎能夠在服務(wù)器端得到強(qiáng)大支持,可在服務(wù)器端Servlet容器中設(shè)置一個(gè)專用的Servlet來處理AJAX引擎發(fā)出的請(qǐng)求,我們將這個(gè)Servlet定義為AjaxServlet,它主要完成如下任務(wù):1.接收AJAX引擎發(fā)出的請(qǐng)求;2.解析請(qǐng)求參數(shù);3.調(diào)用Bean或EJB等進(jìn)行業(yè)務(wù)邏輯處理;4.處理響應(yīng)內(nèi)容并向客戶端發(fā)出響應(yīng)。
盡管在AjaxServlet中可直接存取持久化數(shù)據(jù)或持久化業(yè)務(wù)邏輯,但是我們并不鼓勵(lì)這樣做,因?yàn)檫@會(huì)破壞系統(tǒng)的整體結(jié)構(gòu),影響系統(tǒng)的易維護(hù)性和可擴(kuò)展性。這些工作可借助Bean、EJB等來完成。
AJAX引擎發(fā)出XMLHttpRequest請(qǐng)求時(shí),將請(qǐng)求的URL地址指向服務(wù)器端聲明的映射到AjaxServlet的地址,AJAX引擎在瀏覽器端向服務(wù)器端的Servlet發(fā)出請(qǐng)求時(shí)可攜帶多個(gè)參數(shù)來限定所需要的數(shù)據(jù)和操作。搭建開發(fā)環(huán)境
我們采用J2EE技術(shù)進(jìn)行服務(wù)器端系統(tǒng)的開發(fā),通過Java Servlet和Java Server Pages(JSP)建立Web頁面,通過EJB實(shí)現(xiàn)業(yè)務(wù)層應(yīng)用的開發(fā)。
我們采用J2ME開發(fā)環(huán)境進(jìn)行客戶端系統(tǒng)開發(fā)。首先下載安裝Java-SDK,這是開發(fā)Java程序必備的開發(fā)包;其次需要有移動(dòng)設(shè)備模擬器,這是從Java開發(fā)具體到J2ME的一步,模擬器根據(jù)要開發(fā)的應(yīng)用所使用的手機(jī)來選擇,通用的是WTK(我們選用WTK2.5.2版本);最后下載一個(gè)開發(fā)軟件,我們選用Eclipse集成開發(fā)環(huán)境,在使用Eclipse前需要安裝Eclipse-ME插件。AjaxServlet的實(shí)現(xiàn)
為實(shí)現(xiàn)客戶端與服務(wù)器端的數(shù)據(jù)交換,我們采用JSON(JavaScript Object Notation)作為數(shù)據(jù)交換格式。JSON是輕量級(jí)的數(shù)據(jù)交換格式,采用完全獨(dú)立于語言的文本格式,是理想的數(shù)據(jù)交換語言。
在J2EE服務(wù)器端AjaxServlet代碼框架如下:
客戶端頁面的JavaScript通過異步傳輸XMLHTTP發(fā)送參數(shù)到Ajax Servlet,經(jīng)上述接收處理返回符合條件的數(shù)據(jù)。
本文基于WAP2.0,采用AJAX應(yīng)用程序開發(fā)技術(shù),在J2ME與J2EE開發(fā)環(huán)境下構(gòu)建移動(dòng)學(xué)習(xí)平臺(tái),探索相關(guān)技術(shù)的實(shí)現(xiàn)方法,重點(diǎn)介紹通過AJAX技術(shù)實(shí)現(xiàn)終端數(shù)據(jù)異步更新的方法,對(duì)比相關(guān)技術(shù)的特點(diǎn),采用該方法開發(fā)的移動(dòng)學(xué)習(xí)平臺(tái)具有響應(yīng)迅速、占用帶寬少、交互性好等優(yōu)點(diǎn)。在今后的研究中還要加強(qiáng)客戶端與服務(wù)器端交互功能的深入開發(fā),以期能夠更好地提高系統(tǒng)應(yīng)用效率。
(作者單位1為曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院,2為日照市教育局)