劉 俊 陳曦軼
摘 要:隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展與普及,越來越多群體通過手機(jī)等移動(dòng)設(shè)備來獲取互聯(lián)網(wǎng)信息,本文結(jié)合無線網(wǎng)絡(luò)協(xié)議設(shè)計(jì)并實(shí)現(xiàn)了畢業(yè)生就業(yè)信息查詢系統(tǒng),豐富了畢業(yè)生獲取就業(yè)信息的渠道,為畢業(yè)生掌握最新的就業(yè)信息提供有力保障。
關(guān)鍵詞:WAP 就業(yè)信息化 Rails
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1673-8454(2009)15-0044-04
一、引言
隨著社會(huì)科技、文化和經(jīng)濟(jì)的發(fā)展,特別是計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和通信技術(shù)的飛速發(fā)展,人類社會(huì)從工業(yè)社會(huì)向信息社會(huì)過渡的趨勢(shì)越來越明顯。人們對(duì)信息的意識(shí)、對(duì)開發(fā)和使用信息資源的重視越來越加強(qiáng),在教育過程中較全面地運(yùn)用以計(jì)算機(jī)、多媒體和網(wǎng)絡(luò)通訊為基礎(chǔ)的現(xiàn)代信息技術(shù),對(duì)促進(jìn)與深化教育改革、實(shí)施素質(zhì)教育,具有重大的意義。
目前,使用范圍最為廣泛的計(jì)算機(jī)網(wǎng)絡(luò)是Internet,它把世界各地的計(jì)算機(jī)網(wǎng)絡(luò)和主機(jī)連接起來,有著極為豐富的信息資源,人們通過連接在網(wǎng)絡(luò)上的計(jì)算機(jī)方便地交換和使用信息,提高了人類的生存、發(fā)展、組織、管理和決策能力。在信息技術(shù)的領(lǐng)域里有另一種重要的技術(shù),那就是移動(dòng)通信技術(shù)。隨著科技的不斷進(jìn)步,移動(dòng)電話用戶的數(shù)量也在突飛猛進(jìn),人們也迫切需要在移動(dòng)的過程中能高速接入互聯(lián)網(wǎng)。于是,通信技術(shù)和互聯(lián)網(wǎng)技術(shù)相結(jié)合便產(chǎn)生了“移動(dòng)互聯(lián)網(wǎng)”技術(shù)。WAP將互聯(lián)網(wǎng)和移動(dòng)電話技術(shù)相結(jié)合,使通過移動(dòng)設(shè)備隨時(shí)隨地訪問豐富的網(wǎng)絡(luò)資源成為現(xiàn)實(shí),可享受新聞瀏覽、股票查詢、郵件收發(fā)、在線游戲、聊天等多種應(yīng)用服務(wù)。
WAP是無限應(yīng)用協(xié)議Wireless Application Protocol的縮寫,它是一種向移動(dòng)終端提供互聯(lián)網(wǎng)內(nèi)容和先進(jìn)增值服務(wù)的全球統(tǒng)一的開放式協(xié)議標(biāo)準(zhǔn),是一組協(xié)議和標(biāo)準(zhǔn)的集合,涵蓋了WAP設(shè)備與用戶代理的工作方式、傳輸協(xié)議與載體之間的交互方式的所有內(nèi)容。[1] WAP由WAP論壇(WAP forum)發(fā)布,被愛立信、摩托羅拉、諾基亞以及Unwired Planet創(chuàng)建于1997年,論壇成員占據(jù)著超過90%的全球手機(jī)市場(chǎng),同時(shí)又是領(lǐng)先的基礎(chǔ)設(shè)施提供商、軟件提供商及其他機(jī)構(gòu)。WAP標(biāo)準(zhǔn)基于因特網(wǎng)標(biāo)準(zhǔn)(HTML、XML以及TCP/IP),包括WML語言規(guī)范、WMLScript規(guī)范以及無線電話應(yīng)用接口規(guī)范(WTAI)。
就業(yè)信息網(wǎng)站是畢業(yè)生獲取單位需求信息的重要途徑,許多需求信息時(shí)效性非常強(qiáng),由于畢業(yè)生不可能整天守在電腦旁邊瀏覽單位需求信息以及招聘會(huì)安排情況等,“移動(dòng)互聯(lián)網(wǎng)”技術(shù)在就業(yè)信息網(wǎng)站的運(yùn)用很大程度上解決了這一問題。手機(jī)作為現(xiàn)代通訊的必備工具,在人們的工作、學(xué)習(xí)和生活中顯得越來越重要,在大學(xué)生中的普及率也是相當(dāng)高。本文提出基于WAP的畢業(yè)生就業(yè)信息查詢系統(tǒng)的研究與設(shè)計(jì),作為目前就業(yè)信息網(wǎng)站W(wǎng)eb訪問方式的補(bǔ)充,學(xué)生可以通過移動(dòng)通信設(shè)備(主要是手機(jī))隨時(shí)隨地獲取就業(yè)信息,幫助學(xué)生更便捷、多渠道地掌握需求信息。
二、相關(guān)技術(shù)簡(jiǎn)介
1.WAP工作原理
為實(shí)現(xiàn)移動(dòng)終端與網(wǎng)絡(luò)服務(wù)器之間的通信,WAP定義了一套標(biāo)準(zhǔn)組,采用與WWW類似的編程模型,并在其基礎(chǔ)上進(jìn)行了優(yōu)化和擴(kuò)展以適應(yīng)無線應(yīng)用環(huán)境的特征:使用標(biāo)準(zhǔn)URL標(biāo)識(shí)源服務(wù)器上的WAP內(nèi)容,將內(nèi)容定義與WWW分類相一致的特定類型,通過用戶代理技術(shù)把WWW和無線領(lǐng)域連接起來。如圖1所示,為WAP編程模型圖,展示了WAP的工作原理。
2.WML介紹
WML(Wireless Markup Language,無線標(biāo)記語言)是一種基于標(biāo)記的文檔語言,它基于XML從HTML繼承而來。WML頁面既可以是存儲(chǔ)在源服務(wù)器上的“靜態(tài)”文件,也可以是由源服務(wù)器動(dòng)態(tài)生成的內(nèi)容。WML也可以向使用者提供交互界面,接受使用者輸入的查詢等信息,然后向使用者返回他想要獲得的最終信息。
3.WMLScript介紹
WMLScript是WAP應(yīng)用層的組成部分之一,是在WML頁面中使用的腳本語言。這種語言是基于ECMAScript語言的,但是它更適合于窄道通信。在應(yīng)用時(shí),WMLScript可以和WML文檔一起,為客戶端增加動(dòng)態(tài)功能,此外WMLScript也可以作為一種獨(dú)立的工具使用。WMLScript是一種程序語言,它可以調(diào)用在本地安裝的標(biāo)準(zhǔn)庫函數(shù)。為了在傳輸時(shí)節(jié)省帶寬,WMLScript程序先被編譯成字節(jié)碼(bytecode),傳到客戶端后,再通過解釋器執(zhí)行。
4.Rails簡(jiǎn)介
與其它Web框架相比,Rails使用更簡(jiǎn)單而且更少的代碼編寫應(yīng)用程序。Rails具有非常清晰的MVC構(gòu)架方式,其中所有的層都是為協(xié)同工作而構(gòu)造的,打破了傳統(tǒng)典型的應(yīng)用程序開發(fā)框架,具有全棧式的MVC框架、命名約定、零周轉(zhuǎn)時(shí)間等等眾多特點(diǎn)。
三、基于WAP的畢業(yè)生就業(yè)信息查詢系統(tǒng)功能分析
基于WAP的畢業(yè)生就業(yè)信息查詢系統(tǒng)的主要功能:畢業(yè)生通過具有WAP功能的手機(jī)查詢單位需求信息和招聘會(huì)安排信息,以及國家的政策法規(guī)、地方出臺(tái)的相應(yīng)政策,以及學(xué)校的舉措。本系統(tǒng)中就業(yè)信息的發(fā)布以及更新操作均通過就業(yè)網(wǎng)站的Web平臺(tái)進(jìn)行管理,僅提供WAP方式的查詢和讀取功能。
系統(tǒng)功能包括以下內(nèi)容:
(1)就業(yè)信息查詢系統(tǒng)導(dǎo)航;
(2)通過輸入單位需求信息關(guān)鍵詞和發(fā)布的起始時(shí)間進(jìn)行組合查詢;
(3)通過輸入招聘會(huì)安排信息關(guān)鍵詞和召開的起始時(shí)間進(jìn)行組合查詢;
(4)通過輸入文章的關(guān)鍵詞和選擇文章類別進(jìn)行組合查詢。
四、基于WAP的畢業(yè)生就業(yè)信息查詢系統(tǒng)設(shè)計(jì)
1.搭建開發(fā)環(huán)境
本文以Aptana Studio作為系統(tǒng)開發(fā)工具,采用Rails的REL2.2.2和Ruby1.8.6作為Web框架,Mongrel作為HTTP服務(wù)器,使用SQL Server數(shù)據(jù)庫進(jìn)行實(shí)現(xiàn)。
2.創(chuàng)建項(xiàng)目
首先在命令提示窗口中使用rails命令“rails jobwap”創(chuàng)建一個(gè)名為jobwap的項(xiàng)目,命令將生成整個(gè)項(xiàng)目的目錄結(jié)構(gòu),主要內(nèi)容如下:
app:目錄存放大部分項(xiàng)目的開發(fā)代碼;
app/controllers:存放控制器類代碼,用于處理發(fā)送來的請(qǐng)求以及做出相應(yīng)的響應(yīng);
app/models:存放模型類代碼,負(fù)責(zé)業(yè)務(wù)邏輯及業(yè)務(wù)邏輯到數(shù)據(jù)庫的映射;
app/views:存放視圖文件代碼,負(fù)責(zé)將內(nèi)容呈現(xiàn)給訪問者;
app/helpers:存放輔助類代碼;
config:存放項(xiàng)目所有的配置文件;
public:存放圖片、樣式表以及JavaScript文件的子目錄。
為使項(xiàng)目支持wml類型,需為項(xiàng)目增加一個(gè)新的MIME類型,在config/environment.rb中增加“Mime::Type.register "text/vnd.wap.wml", :wml”,告訴服務(wù)器支持wml類型的資源訪問。
3.配置數(shù)據(jù)庫
Rails支持DB2、MySQL、Oracle、Postgres、SQL Server和SQLite等眾多主流數(shù)據(jù)庫,編寫或程序運(yùn)行時(shí)調(diào)用通用的方法,而實(shí)現(xiàn)的細(xì)節(jié)則委托給針對(duì)數(shù)據(jù)庫定制的適配器來處理。本文使用SQL Server數(shù)據(jù)庫進(jìn)行實(shí)現(xiàn),Rails根據(jù)運(yùn)行時(shí)的環(huán)境連接對(duì)應(yīng)環(huán)境下的數(shù)據(jù)庫,對(duì)config目錄下的database.yml文件進(jìn)行如表1所示的配置。在命令行中輸入“rake db:migrate”,若沒有任何錯(cuò)誤信息,表明數(shù)據(jù)庫配置正確。
4.創(chuàng)建模型
根據(jù)需求分析建立四個(gè)模型,在命令提示窗口中使用rails命令“ruby script/generate model Corporation CorpOffer CorpMeeting Article”后,在models目錄下生成需要的四個(gè)模型:單位模型Corporation,單位需求模型CorpOffer,招聘會(huì)安排模型CorpMeeting和文章模型Article。Corporation包含單位基本信息(名稱name、地址address、郵政編碼zipcode、電子郵箱email、電話telephone)。CorpOffer包含單位需求信息(主題subject、內(nèi)容content和單位關(guān)聯(lián)外鍵corp_id)。CorpMeeting包含招聘會(huì)安排信息(主題subject、開始時(shí)間start_time、結(jié)束時(shí)間end_time、安排arrange、需求demand和單位關(guān)聯(lián)corp_id)。Article包含文章信息(主題subject、內(nèi)容content、文章類型types)。Corporation和CorpOffer、CorpMeeting之間是一對(duì)多關(guān)系,即一個(gè)用人單位包含多條招聘需求和多條招聘會(huì)安排。在模型中用has_many和belongs_to來聲明雙方的關(guān)聯(lián),建立關(guān)聯(lián)后模型可以像訪問屬性一樣訪問所關(guān)聯(lián)的模型,如圖2所示為三個(gè)模型以及之間的關(guān)聯(lián)。
Rails運(yùn)用Ruby中的反射和元數(shù)據(jù)編程技術(shù),允許用戶將類和方法視為對(duì)象以及作為一個(gè)代碼塊進(jìn)行調(diào)用或者傳遞給另一個(gè)方法,最大程度上避免編寫重復(fù)性代碼。當(dāng)聲明一個(gè)類繼承Rails中ActiveRecord的Base基類,在程序運(yùn)行時(shí)這個(gè)繼承事件會(huì)發(fā)送到Base類當(dāng)中,Base類會(huì)做數(shù)據(jù)庫反射操作,獲得這個(gè)子類所要包裝的表,然后再動(dòng)態(tài)地修改子類的實(shí)現(xiàn),為它添加對(duì)應(yīng)的屬性和方法。表2是四個(gè)模型的全部代碼。
5.控制器設(shè)計(jì)
為項(xiàng)目創(chuàng)建四個(gè)控制器CorpMeetings、CorpOffers、Corporations、Article,分別用于處理招聘會(huì)、招聘需求、用人單位基本信息和文章請(qǐng)求。表3是CorpMeetings處理查詢功能的代碼,對(duì)輸入的關(guān)鍵詞、開始時(shí)間和結(jié)束時(shí)間進(jìn)行組合篩選,若未輸入匹配值則不加入刪選限制,否則根據(jù)輸入值加入到查詢條件中。用respond_to語句是為根據(jù)HTTP首部的Accept-Type字段來決定向客戶端返回請(qǐng)求類型的資源表示,WAP系統(tǒng)中請(qǐng)求資源為wml類型。
6.頁面設(shè)計(jì)
系統(tǒng)共設(shè)計(jì)7個(gè)頁面,導(dǎo)航頁面、招聘信息查詢輸入頁面、招聘信息顯示頁面、招聘會(huì)查詢輸入頁面、招聘會(huì)信息顯示頁面、用人單位基本信息顯示頁面、文章顯示頁面,進(jìn)入導(dǎo)航頁面后通過點(diǎn)擊不同的鏈接進(jìn)行相應(yīng)操作。本文結(jié)合招聘會(huì)查詢輸入頁面和招聘會(huì)信息顯示頁面介紹系統(tǒng)的頁面設(shè)計(jì)。
本文使用Rails中的layout功能,為整個(gè)WAP項(xiàng)目創(chuàng)建基于WML的模板。在layouts目錄下創(chuàng)建wap. html.erb文件,指定文件的編碼方式以及文件類型聲明,完整代碼如表4所示。
WML文件是由“卡片(Card)”和“卡片組(Deck)”構(gòu)成,當(dāng)移動(dòng)設(shè)備訪問一個(gè)WML文件時(shí),頁面所有Card都會(huì)從WAP服務(wù)器下載到設(shè)備里。招聘會(huì)查詢頁面由一個(gè)Card組成,包括三個(gè)輸入框,分別是主題、開始時(shí)間、結(jié)束時(shí)間,通過
招聘會(huì)顯示頁面由Rails根據(jù)查詢結(jié)果動(dòng)態(tài)生成,首先名為“l(fā)ist”的Card用于顯示招聘會(huì)主題名列表,具體招聘會(huì)安排內(nèi)容通過鏈接方式進(jìn)入到各個(gè)Card,再通過返回鏈接回到列表Card,便于逐條信息的查看,頁面實(shí)現(xiàn)代碼如表6所示。
五、結(jié)束語
WAP具有光明的未來,但同時(shí)其自身也存在著缺陷,需要進(jìn)一步完善。WAP應(yīng)用產(chǎn)品所依賴的無線信道帶寬有限,要想提供更多的服務(wù),比如動(dòng)態(tài)圖像、視頻/音頻等媒體信息服務(wù),必須解決傳輸對(duì)帶寬的要求。另外,移動(dòng)終端的目標(biāo)、存儲(chǔ)和處理能力有限,對(duì)于更高級(jí)的應(yīng)用也會(huì)是一個(gè)阻礙。WAP的實(shí)現(xiàn)還需要來自移動(dòng)終端制造商、網(wǎng)絡(luò)運(yùn)營商、ISP以及軟件開發(fā)商等多方面的大力協(xié)作。WAP需要完善的方面還包括對(duì)cookie的支持,以方便會(huì)話管理;數(shù)據(jù)源服務(wù)器對(duì)PUSH(即主動(dòng)把信息從WAP網(wǎng)關(guān)發(fā)送給客戶機(jī))操作的支持;對(duì)于安全性要求較高的應(yīng)用,如何保證在WAP網(wǎng)關(guān)和數(shù)據(jù)源服務(wù)器之間的數(shù)據(jù)安全以及對(duì)協(xié)議數(shù)據(jù)單元大小的改進(jìn)等等。但我們有理由相信,隨著WAP的規(guī)范發(fā)展,這些問題都會(huì)得到解決。WAP作為移動(dòng)通信與互聯(lián)網(wǎng)之間的橋梁,給用戶提供了獨(dú)立于網(wǎng)絡(luò)載體,靈活而方便地訪問因特網(wǎng)的解決方法,必將取得巨大的成功。
參考文獻(xiàn):
[1]Dale Bulbrook,天宏工作室譯.WAP實(shí)用指南[M].北京:清華大學(xué)出版社,2003.
[2]張祿林.WAP技術(shù)及其應(yīng)用[M].北京:人民郵電出版社,2001.
[3]馬華興.解惑3G業(yè)務(wù):概念、實(shí)現(xiàn)和規(guī)劃[M].北京:北京郵電大學(xué)出版社,2006.
[4]Dave Thomas著,林芷薰譯.應(yīng)用Rails進(jìn)行敏捷Web開發(fā)[M].北京:電子工業(yè)出版社,2006.
[5]Lucas Carlson著,鄭路長(zhǎng)譯.Ruby Cookbook[M].北京:清華大學(xué)出版社,2007.
[6]Eldon Alameda著,張若飛譯.Practical Rails Projects[M].北京:電子工業(yè)出版社,2008.
[7]鄭惠芳.WAP技術(shù)在學(xué)生成績(jī)查詢系統(tǒng)中的應(yīng)用[J].閩江學(xué)院學(xué)報(bào),2008(2).
[8]葉成緒.基于WAP手機(jī)學(xué)生成績(jī)查詢系統(tǒng)的實(shí)現(xiàn)[J].青海師范大學(xué)學(xué)報(bào),2008(3).