王立峰 鄭燕林
【摘要】針對學(xué)習(xí)者在網(wǎng)絡(luò)學(xué)習(xí)環(huán)境中全面而準(zhǔn)確獲取學(xué)習(xí)資源這一難點問題,文章設(shè)計和實現(xiàn)了JavaFX RIA框架下桌面學(xué)習(xí)資源獲取MASHUP富客戶端解決方案。該方案能夠?qū)崿F(xiàn)互聯(lián)網(wǎng)上不同學(xué)習(xí)資源的整合檢索及匯聚等功能,方便學(xué)習(xí)者快速定位、瀏覽、下載自身所需的學(xué)習(xí)資源。
【關(guān)鍵詞】學(xué)習(xí)資源;JavaFX RJA;桌面富客戶端;MASHUP
【中圖分類號】G40-057 【文獻(xiàn)標(biāo)識碼】A 【論文編號】1009-8097(2013)07-0090-05
引言
學(xué)習(xí)資源是學(xué)習(xí)者學(xué)習(xí)的對象,在學(xué)習(xí)中起重要的支撐作用,是學(xué)習(xí)者增進(jìn)知識、發(fā)展能力必要的外部條件。在網(wǎng)絡(luò)學(xué)習(xí)環(huán)境中,如何獲取和管理學(xué)習(xí)者所需要的學(xué)習(xí)資源一直是教育者與學(xué)習(xí)者共同關(guān)注的熱點及難點問題。本文在總結(jié)常用學(xué)習(xí)資源獲取技術(shù)與Mashup學(xué)習(xí)資源獲取技術(shù)優(yōu)缺點的基礎(chǔ)上,進(jìn)一步深入的探討了如何利用JavaFX RIA框架技術(shù),設(shè)計開發(fā)具備學(xué)習(xí)資源整合檢索、檢索結(jié)果整理與匯聚、檢索結(jié)果快捷瀏覽等功能的桌面學(xué)習(xí)資源獲取MASHUP富客戶端。
一 常用的學(xué)習(xí)資源獲取技術(shù)
1 搜索引擎
在網(wǎng)絡(luò)學(xué)習(xí)環(huán)境下,大多數(shù)學(xué)習(xí)者習(xí)慣利用搜索引擎進(jìn)行學(xué)習(xí)資源的檢索與獲取。利用搜索引擎幾乎是學(xué)習(xí)者在互聯(lián)網(wǎng)上進(jìn)行學(xué)習(xí)資源檢索首選方式或唯一方式。其原因主要是該種方式操作簡單、方便快捷。但這種檢索方式還存在以下缺點:一是檢索結(jié)果數(shù)量巨大,篩選困難。如在百度(http://www.baidu.com)網(wǎng)站上輸入檢索詞“心理學(xué)”,檢索結(jié)果達(dá)到l億以上。在這1億多條記錄中找到學(xué)習(xí)者需要的學(xué)習(xí)資源幾乎是無法完成的任務(wù)。因此利用搜索引擎進(jìn)行學(xué)習(xí)資源的檢索,還需要學(xué)習(xí)者不斷的學(xué)習(xí)和積累搜索引擎檢索的知識和技巧。二是搜索引擎無法實現(xiàn)目標(biāo)網(wǎng)站的內(nèi)容查詢。搜索引擎只能檢索Web索引網(wǎng)頁和Web數(shù)據(jù)庫里面的其他文件類型,包括PDF、DOC、PPT等類型文件。對于網(wǎng)站后臺的資源數(shù)據(jù)庫則無法實現(xiàn)有效檢索。
2 網(wǎng)站檢索
互聯(lián)網(wǎng)上的學(xué)習(xí)資源網(wǎng)站十分豐富,并各具特色。主要包括電子書、教學(xué)課件、教學(xué)音頻視頻、學(xué)術(shù)性期刊、學(xué)位論文、試題庫、專家?guī)?、網(wǎng)絡(luò)課程等。通過專業(yè)的學(xué)習(xí)資源網(wǎng)站,學(xué)習(xí)者可以獲得許多學(xué)術(shù)性較強(qiáng)的各種資源,但是由于各學(xué)習(xí)網(wǎng)站實力、商業(yè)利益和版權(quán)等諸多因素的限制,學(xué)習(xí)網(wǎng)站在學(xué)習(xí)資源建設(shè)上只能是偏重某一個方面。這種情況,給學(xué)習(xí)者在學(xué)習(xí)資源查找和獲取等方面帶來了許多負(fù)擔(dān)。學(xué)習(xí)者為了獲取自己需要的學(xué)習(xí)資源,不但要收集、管理數(shù)十個、甚至上百個不同網(wǎng)站的書簽,還要花費(fèi)大量的時間在眾多不同的網(wǎng)站上依次查詢。
3 社會軟件
論壇、學(xué)習(xí)社區(qū)、QQ群等社會軟件也是學(xué)習(xí)者獲取學(xué)習(xí)資源的重要途徑。具有共同學(xué)習(xí)目標(biāo)的學(xué)習(xí)者可以形成學(xué)習(xí)共同體,他們不但可以通過社會軟件交流學(xué)習(xí)經(jīng)驗、咨詢解答各種學(xué)習(xí)上遇到的問題,還可以分享各自的學(xué)習(xí)資源、學(xué)習(xí)成果(作品)等。通過社會軟件這種方式獲取學(xué)習(xí)資源優(yōu)點是針對性、適用性比較強(qiáng),缺點是學(xué)習(xí)資源相對零散、缺乏組織,而且系統(tǒng)性、完整性不高。
二 基于RIA的MASHUP學(xué)習(xí)資源獲取技術(shù)
混搭(Mashup)是一種新型的基于Web的數(shù)據(jù)集成應(yīng)用程序。傳統(tǒng)上,Mashup源于流行音樂,是一種音樂類型,也被稱為bastard pop,指的是藝術(shù)家組合或者混合兩首不同的歌曲(通常屬于不同的流派)的音樂和歌詞來創(chuàng)作新的歌曲。其概念后來被逐漸引申到計算機(jī)應(yīng)用中,維基百科的說法:Mashup混搭(互聯(lián)網(wǎng))是一種網(wǎng)絡(luò)聚合應(yīng)用,有一個或者多個信息源整合起來的網(wǎng)站或者網(wǎng)絡(luò)應(yīng)用。由此可見,Mashup是合并多個源的信息和服務(wù)的網(wǎng)頁或網(wǎng)站。一個熟知的Mashup典型范例是housingmaps.com,該網(wǎng)站合并了Google的地圖服務(wù)和Craigslist.com的公寓租售信息,包括與住宅購買數(shù)據(jù)相結(jié)合,創(chuàng)建了一種交互式的房屋搜索工具。
1 Mashup的分類及典型應(yīng)用
按照數(shù)據(jù)整合的形式,Mashup可以分為整合型融匯(Mashups by integration)與聚合型融匯(Mashups byaggregation)兩種(Mohanmed等。整合型融匯即數(shù)據(jù)層及功能層融匯,是指從不同來源中獲取數(shù)據(jù),并通過APIs整合形成更復(fù)雜的應(yīng)用,其中涉及到數(shù)據(jù)獲取、數(shù)據(jù)融合等技術(shù)。由于數(shù)據(jù)源具有不同的類型,例如數(shù)據(jù)庫、Web服務(wù)(SOAP/REST)、RSS/Atom Feeds,因此從分布式資源中獲取數(shù)據(jù)時要采用不同的技術(shù),包括Web Feed技術(shù)、API調(diào)用技術(shù)、屏幕抓取技術(shù)。數(shù)據(jù)獲取之后,還要對這些格式各異的數(shù)據(jù)進(jìn)行相關(guān)處理,包括數(shù)據(jù)轉(zhuǎn)換、映射、過濾、連接、排序等,最后構(gòu)建出新的綜合性數(shù)據(jù)對象。以上各種操作對用戶提出了較高的編程要求,為了降低用戶的門檻,一些機(jī)構(gòu)推出了用于數(shù)據(jù)融匯的工具,例如Yahoo!Pipes、GoogleMashuo Editor等等。
按照Mashup運(yùn)行的位置,可以分為服務(wù)器端和客戶端兩種。服務(wù)器端Mashup是將網(wǎng)站內(nèi)容與服務(wù)有機(jī)的結(jié)合成一體,接受用戶所有的委托服務(wù),并將運(yùn)算結(jié)果最終返回到用戶終端??蛻舳薓ashup是直接對服務(wù)器的服務(wù)及內(nèi)容提出要求,而無需通過委托服務(wù)。
Mashup典型的應(yīng)用主要是地圖Mashup、視頻和圖象Mashup、搜索和購物Mashup、新聞Mashup等。在網(wǎng)絡(luò)學(xué)習(xí)領(lǐng)域研究中,Mashup的應(yīng)用與研究主要集中在個人環(huán)境構(gòu)建中。外爾德(Wild,2008)等人進(jìn)一步提出了Mashup個人學(xué)習(xí)環(huán)境的概念。Mashup個人學(xué)習(xí)環(huán)境(Mashup Personal Learning Environment,MUPPLE)“是指利用Mashup技術(shù)聚合網(wǎng)絡(luò)中分布的資源及服務(wù),形成開放的、易用的、個性化的個人學(xué)習(xí)環(huán)境(PLE)”。學(xué)習(xí)者可以通過Mashup站點整合不同的資源或服務(wù)來生成新的服務(wù),構(gòu)建一種具有一站式體驗的個人學(xué)習(xí)環(huán)境。
2 基于RIA的MASHUP學(xué)習(xí)資源獲取技術(shù)
富因特網(wǎng)應(yīng)用程序(Rich Intemet Applications,RIA)是開發(fā)MASHUP桌面客戶端的最佳解決方案?;赗IA的Mashup充分利用本地資源實現(xiàn)與遠(yuǎn)程服務(wù)的交互并給用戶帶來更為豐富體驗,與傳統(tǒng)基于瀏覽器方式訪問互聯(lián)網(wǎng)服務(wù)網(wǎng)站的方式相比更具有交互性和靈活性。富客戶端技術(shù)一般采用C/S結(jié)構(gòu),基于HTTP協(xié)議實現(xiàn)與遠(yuǎn)程服務(wù)器的數(shù)據(jù)通信,來實現(xiàn)數(shù)據(jù)交換、遠(yuǎn)程操作、數(shù)據(jù)聚合、數(shù)據(jù)整合等功能。
與常用的學(xué)習(xí)資源獲取技術(shù)相比,基于RIA的MASHUP學(xué)習(xí)資源獲取技術(shù)具有以下特點:
(1)支持?jǐn)?shù)據(jù)整合
MASHUP的最基本特征就是實現(xiàn)不同網(wǎng)站內(nèi)容的聚合。富客戶端在實現(xiàn)匯聚不同學(xué)習(xí)資源的基礎(chǔ)上,還能夠利用本地計算機(jī)的信息處理能力,進(jìn)一步加工整理來自不同網(wǎng)站的學(xué)習(xí)資源數(shù)據(jù),從而達(dá)到數(shù)據(jù)層MASHUP不同學(xué)習(xí)資源的能力。通過對學(xué)習(xí)資源進(jìn)行必要的分析與整理,能夠更加方便學(xué)習(xí)者過濾冗余信息,從而快速定位所需學(xué)習(xí)資源。
(2)支持個性化
Mashup關(guān)注用戶的自我服務(wù)?;赗IA的MASHUP是完全個性化的,能夠幫助學(xué)習(xí)快速而精準(zhǔn)的獲取自身切實需要的學(xué)習(xí)資源。主要體現(xiàn)在兩個方面,一是學(xué)習(xí)者根據(jù)自身的學(xué)習(xí)目的、學(xué)習(xí)興趣、學(xué)習(xí)風(fēng)格自主選擇和配置目標(biāo)網(wǎng)站;二是學(xué)習(xí)者通過設(shè)置數(shù)據(jù)整合參數(shù),快速定位學(xué)習(xí)資源。
(3)開發(fā)難度低
雖然各學(xué)習(xí)資源網(wǎng)站數(shù)據(jù)結(jié)構(gòu)及元數(shù)據(jù)各異,但是許多網(wǎng)站都不同程度的提供了API接口(AJAX、REST、RSS/Atom等)。如豆瓣網(wǎng)提供了完全開放的基于OAuth2,0協(xié)議的授權(quán)訪問。開發(fā)者可以比較容易的利用API實現(xiàn)對遠(yuǎn)程服務(wù)學(xué)習(xí)資源的登陸、檢索、下載、更新等操作。
三 基于JAVAFX-RIA的桌面學(xué)習(xí)資源獲取MASHUP富客戶端的功能設(shè)計
桌面學(xué)習(xí)資源獲取富客戶端DEMO版(見圖1桌面學(xué)習(xí)資源獲取MASHUP富客戶端DEMO版)以北京萬方數(shù)據(jù)庫(http://www.wanfangdata.com.cn)、中國大學(xué)視頻公開課(http://www.icourses.edu.cn)、中國人博客搜索引擎(http://so.blogchinese.com)三個互聯(lián)網(wǎng)站為例進(jìn)行學(xué)習(xí)資源檢索與獲取。同時系統(tǒng)允許用戶自己設(shè)定主頁,如主頁可設(shè)置東北師范大學(xué)圖書館為系統(tǒng)初始界面。上述三個互聯(lián)網(wǎng)站分別代表商業(yè)學(xué)術(shù)文獻(xiàn)數(shù)據(jù)庫、公益學(xué)習(xí)資源視頻數(shù)據(jù)庫、社會軟件和搜索引擎。這三類學(xué)習(xí)資源網(wǎng)站各具特色、且網(wǎng)站后臺數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)各異,具有一定的代表性。
1 桌面獨立運(yùn)行
桌面學(xué)習(xí)資源獲取MASHUP富客戶端DEMO版(以下簡稱系統(tǒng))可以在桌面上獨立運(yùn)行,運(yùn)行環(huán)境為JAVA JRE1.7、JAVAFX JRE 2.0。系統(tǒng)采用JAVA語言開發(fā),繼承了JAVA強(qiáng)大了系統(tǒng)跨平臺性,具有較強(qiáng)的面向智能手機(jī)、PAD等終端的可移植性。
2 整合檢索
系統(tǒng)實現(xiàn)了一次輸入,多個網(wǎng)站后臺同時進(jìn)行整合檢索,并將檢索結(jié)果自動匯聚(見圖2檢索結(jié)果列表)的功能。主要涉及數(shù)據(jù)獲取、數(shù)據(jù)融合等技術(shù),由于數(shù)據(jù)源具有不同的類型,因此從分布式資源中獲取數(shù)據(jù)時要采用不同的技術(shù),如Web Feed技術(shù)、API調(diào)用技術(shù)、屏幕抓取等技術(shù)。數(shù)據(jù)獲取之后,還需要對這些格式各異的數(shù)據(jù)進(jìn)行進(jìn)一步的分析、加工處理,包括數(shù)據(jù)轉(zhuǎn)換、映射、過濾、連接、排序等,最后構(gòu)建出新的綜合性數(shù)據(jù)對象。整合后的數(shù)據(jù)庫以表格形式反饋給用戶,分別顯示學(xué)習(xí)資源名稱、學(xué)習(xí)資源網(wǎng)址、學(xué)習(xí)資源類型等信息。
3 檢累結(jié)果統(tǒng)計
系統(tǒng)分別自動讀取不同目標(biāo)網(wǎng)站的檢索結(jié)果匯總數(shù)量,并顯示給用戶(見圖3檢索結(jié)果統(tǒng)計)。檢索結(jié)果統(tǒng)計功能的作用主要有兩個:一是用戶可以根據(jù)系統(tǒng)提供的檢索結(jié)果數(shù)量,了解目標(biāo)網(wǎng)站學(xué)習(xí)資源的收錄情況;二是用戶根據(jù)統(tǒng)計后的檢索結(jié)果,來制定下一步的檢索策略。
4 檢索結(jié)果快捷進(jìn)入
系統(tǒng)在返回目標(biāo)服務(wù)器檢索結(jié)果的同時記錄了檢索結(jié)果的URL。通過系統(tǒng)的內(nèi)置瀏覽器,用戶可以方便的點擊任何一條檢索結(jié)果中的數(shù)據(jù),自動連接綁定該記錄的URL,實現(xiàn)自動查看學(xué)習(xí)資源細(xì)覽頁面(見圖4)。用戶也可以利用系統(tǒng)檢索目標(biāo)網(wǎng)站返回綁定的概覽頁面的URL,通過點擊目標(biāo)網(wǎng)站名稱,進(jìn)入目標(biāo)網(wǎng)站檢索結(jié)果的概覽頁面(見圖5)。
5 檢索結(jié)果下載
對于目標(biāo)網(wǎng)站所提供下載服務(wù)的學(xué)習(xí)資源,資源下載地址自動在系統(tǒng)內(nèi)置的瀏覽器中顯示出來,用戶不但可以在線瀏覽學(xué)習(xí)資源,也可以在系統(tǒng)中將學(xué)習(xí)資源進(jìn)行直接下載并保存到本地。
6 檢索結(jié)果導(dǎo)出
系統(tǒng)與本地學(xué)習(xí)資源管理系統(tǒng)連接,導(dǎo)出基于SCORM標(biāo)準(zhǔn)的數(shù)據(jù)。學(xué)習(xí)者可以通過桌面學(xué)習(xí)資源獲取MASHUP富客戶端與本地學(xué)習(xí)資源管理系統(tǒng)組合使用,方便的實現(xiàn)學(xué)習(xí)資源的檢索、獲取及管理等功能。通過本地學(xué)習(xí)資源管理系統(tǒng),用戶還可以實現(xiàn)離線管理和利用各種類型的學(xué)習(xí)資源。
7 檢索目標(biāo)網(wǎng)站選擇
系統(tǒng)允許用戶對目標(biāo)網(wǎng)站進(jìn)行管理。用戶根據(jù)自身的需求以及檢索需求,在使用系統(tǒng)時可以提前設(shè)置目標(biāo)數(shù)據(jù)庫選項,從而精煉的選擇檢索內(nèi)容,也就是說用戶可以根據(jù)自己的需要來確定系統(tǒng)在一個或幾個學(xué)習(xí)資源網(wǎng)站中進(jìn)行整合檢索。
四 基于JAVAFX-RlA的桌面學(xué)習(xí)資源獲取MASHUP富客戶端的實現(xiàn)
桌面學(xué)習(xí)資源獲取MASHUP富客戶端DEMO版的軟件開發(fā)環(huán)境是:操作系統(tǒng)為WINDOWS7,開發(fā)語言是Java 1.7jdk和javafx2.3JDK,開發(fā)工具是NETBEANS 7.2.1和JavaFXScene Builder 1.0;硬件開發(fā)環(huán)境是:英特爾第二代酷睿I3-2310M@2.10GHz雙核處理器、2G內(nèi)存。
1 關(guān)鍵技術(shù)
當(dāng)前RIA流行的開發(fā)工具主要有Adobe公司的AdobeFlash/Flex、微軟公司的SilverLight、Oracle公司的Java FX等幾款開發(fā)工具。這幾種工具各具特色,F(xiàn)lex先入為主,目前占有比較大的份額,Silverlight的優(yōu)勢是有Windows平臺的支持,而JavaFX作為后起之秀,其優(yōu)勢在于Java語言的廣泛使用及自身的開源策略。本文無意比較這幾款產(chǎn)品的孰優(yōu)孰劣,依據(jù)開源、跨平臺、開發(fā)人員技術(shù)特點等方面,桌面學(xué)習(xí)資源獲取MASHUP富客戶端DEMO采用了Java FX作為主要的開發(fā)工具。
桌面學(xué)習(xí)資源獲取MASHUP富客戶端DEMO版涉及的關(guān)鍵技術(shù)主要包括JAVA、Httpclient、HttpParser、JAVAFX框架技術(shù)等幾方面:
(1)Httpclient
HttpClient是Apache Jakarta Common下的子項目,用來提供高效的、最新的、功能豐富的支持HTTP協(xié)議的客戶端編程工具包,主要的功能實現(xiàn)了所有HTTP的方法(GET,POST,PUT,HEAD等)、支持自動轉(zhuǎn)向、支持HTTPS協(xié)議、支持代理服務(wù)器等。在本系統(tǒng)的開發(fā)中,主要應(yīng)用Htq)Client技術(shù)實現(xiàn)瀏覽器后臺模擬,并利用遠(yuǎn)程學(xué)習(xí)資源服務(wù)器提供的API接口,通過HttpClient對遠(yuǎn)程學(xué)習(xí)資源數(shù)據(jù)庫進(jìn)行建立連接、登陸、檢索、關(guān)閉連接等操作,具體實現(xiàn)交互的方法主要有GET、POST、PUT、HEAD等。
(2)HtmlParser
Htmlparser是一個純的java寫的html解析的庫,它不依賴于其它的java庫文件,主要用于改造或提取html。HtmlParser主要靠Node、AbstractNode和Tag來表達(dá)Html。目前各學(xué)習(xí)資源網(wǎng)站提供的API接口開放程度有所不同,對于MASHUP能力較弱的的遠(yuǎn)程服務(wù)器,本系統(tǒng)利用HtmlParser技術(shù)分析檢索后的網(wǎng)頁結(jié)果,提取學(xué)習(xí)者需要的必要信息,如學(xué)習(xí)資源名稱、學(xué)習(xí)資源作者、學(xué)習(xí)資源鏈接等。
(3)JAVAFX框架技術(shù)
JavaFX編程語言是著名的富互聯(lián)網(wǎng)應(yīng)用程序(RIA)開發(fā)程序之一。基于JavaFX SDK開發(fā)的程序可以在JAVA JRE與JavaFX JRE運(yùn)行時下獨立運(yùn)行。JavaFX具有可以直接調(diào)用Java API的能力以及開發(fā)簡單、界面友好等特點,是開發(fā)富客戶端程序的有力工具。特別是Oracle公司新推出的JavaFXScene Builder 1.0工具實現(xiàn)了界面設(shè)計的可視化操作,使系統(tǒng)界面工作變得更加快捷。本系統(tǒng)主要應(yīng)用了Java FX中的JavaFX Scene Builder 1.0工具、Table View和WebView等部件。界面設(shè)計過程主要有兩個部分,首先是利用JavaFX Scene Builder 1.0工具進(jìn)行界面可視化設(shè)計,形成FXML文件,其次在JavaFX框架內(nèi)編寫界面的UI,將程序控制代碼與界面中的各個部件進(jìn)行關(guān)聯(lián),從而完成界面整個過程的設(shè)計與制作。
五 總結(jié)
本文在總結(jié)常用學(xué)習(xí)資源獲取技術(shù)的基礎(chǔ)上,闡述了基于MASHUP方式獲取學(xué)習(xí)資源的層次以及應(yīng)用途徑等方案。并利用JavaFX RIA框架設(shè)計開發(fā)了學(xué)習(xí)資源獲取MASHUP富客戶端。該客戶端繼承各種常用學(xué)習(xí)資源獲取技術(shù)的優(yōu)點、屏蔽檢索結(jié)果繁雜、多次登錄檢索、檢索結(jié)果單一等缺點,為學(xué)習(xí)者提供高效的整合檢索與資源利用方案。其主要工作原理是:通過OPEN API接口或網(wǎng)頁抓取等技術(shù),在系統(tǒng)后臺遠(yuǎn)程登錄各種學(xué)習(xí)資源服務(wù)器,將檢索結(jié)果下載到本地計算機(jī),并充分利用本地計算機(jī)的信息處理能力,進(jìn)一步匯聚、加工、整理來自不同網(wǎng)站的檢索結(jié)果,從而達(dá)到幫助學(xué)習(xí)者快速定位與獲取學(xué)習(xí)資源的目的。同時,桌面學(xué)習(xí)資源獲取MASHUP客戶端在學(xué)習(xí)者獲取學(xué)習(xí)資源、圖書館個人門戶、個人學(xué)習(xí)環(huán)境構(gòu)建等軟件開發(fā)方面具有一定的啟發(fā)意義。
本研究是網(wǎng)絡(luò)學(xué)習(xí)境脈視角下個人學(xué)習(xí)環(huán)境構(gòu)建的重要組成部分,在后續(xù)的工作中,將著重實現(xiàn)學(xué)習(xí)資源獲取工具與學(xué)習(xí)資源管理工具、學(xué)習(xí)資源利用工具、學(xué)習(xí)資源分享工具的完美整合及無縫連接。