摘 要: 基于NetBeans IDE 6.5開發(fā)環(huán)境,采用客戶機/服務器結構,,利用J2ME技術,、SVG技術及PUSH技術,針對高校學生借閱書籍開發(fā)的手機終端應用程序軟件,闡述了移動應用程序的開發(fā)過程,。
關鍵詞: 移動圖書館,; J2ME; SVG,; PUSH
隨著互聯(lián)網(wǎng)和移動通信技術的不斷發(fā)展,,全球進入了信息化時代,人類的通信方式發(fā)生了根本性的改變,,網(wǎng)絡和手機成為越來越普遍的通信工具,。越來越多的手機增值服務應運而生,一種嶄新的以手機為移動終端的數(shù)字圖書館服務方式也悄然興起,。這種基于圖書館的手機增值服務,,即“手機圖書館”作為一個概念被提出來,,并逐漸成為圖書館繼網(wǎng)絡服務之后的新興服務領域[1-3],。
1 系統(tǒng)分析
手機圖書館是在無線通信網(wǎng)絡環(huán)境下對數(shù)字圖書館服務功能的進一步延伸,,其實現(xiàn)的三個基本組成部分為手機終端、無線互聯(lián)網(wǎng),、數(shù)字圖書館系統(tǒng),。系統(tǒng)采用基于J2ME嵌入式軟件的實現(xiàn)方式。
1.1 J2ME體系結構
J2ME是SUN公司針對嵌入式,、消費類電子產(chǎn)品推出的開發(fā)平臺,,可將手機圖書館系統(tǒng)設計成一個可在手機上安裝的客戶端軟件,讀者可以通過該軟件訪問圖書館提供的無線移動服務功能[4-5],。
J2ME定義了一種靈活的層次結構來規(guī)范眾多的移動設備,,不同層次的規(guī)范相互協(xié)作來提供一個完整的移動JAVA平臺。J2ME定義的移動JAVA平臺分為四層:主機操作系統(tǒng),、配置(Configuration),、簡表(Profiles)和廠商可選包。其體系結構如圖1所示,。
其中,,配置是將基本運行環(huán)境定義為一組核心類和一個運行在特定類型設備上的特定的JVM[6]。簡表定義了應用程序所支持的設備類型,。特別地,,它向J2ME配置添加了特定域的類來定義設備的某種作用,它建立在配置的頂部,。廠商可選包指的是由廠商提供給程序開發(fā)人員的一組與其他規(guī)范沒有任何依賴性的類庫,,開發(fā)人員可以利用這一類庫來開發(fā)出具有特定功能的應用程序。
1.2 功能需求分析
根據(jù)調(diào)查與研究,,考慮目前中國移動通信的發(fā)展和主流手機設備的狀況,,系統(tǒng)主要提供用戶登錄、修改密碼,、設置還書提醒,、書籍檢索、預約與取消預約圖書,、續(xù)借書籍,、查看用戶信息和服務信息及幫助等功能。移動圖書館需求的總體用例圖如圖2所示,。
系統(tǒng)主要功能如下:
(1) 設置提醒:系統(tǒng)要求用戶能夠為自己借的每本書籍單獨設置還書提醒功能,。提醒時間到時,如果用戶沒有使用本系統(tǒng),,程序應該能夠自動啟動移動圖書館軟件顯示提醒書籍的相關信息及播放音樂直到用戶點擊確定,;若用戶正在使用本系統(tǒng),該提醒會被忽略,。
(2) 檢索書籍:可分為按關鍵字檢索和按書的索引號檢索兩種情況,。用戶可以根據(jù)自己的需要選擇檢索方式,。
(3) 預約圖書:當某本書已經(jīng)全部借出時,用戶可以建立圖書預約,,待別人還后,,用戶可以在第一時間借到該書。若該書在圖書館有庫存,,則該書不能預約,,用戶可自行到圖書館借閱。
(4) 取消預約:用戶可以登錄自己的帳號取消該書的預約,。
(5) 續(xù)借圖書:系統(tǒng)要求提供圖書續(xù)借功能,。若該書沒有人預約,用戶可續(xù)借,,續(xù)借后該書的還書時間為當前日期的30天之后,;若該書已經(jīng)有人預約了,則用戶不能續(xù)借,。
(6) 查看帳號:包括查看已借書籍,、查看預約圖書和查看帳單三個功能。查看已借書籍,可以查看自己已借書籍的列表,,選擇某本書后還可以查看該書的相關信息,,包括該書的到期時間;查看預約圖書,可以查看自己已經(jīng)預約的書籍的相關情況,,包括該書是否可借的狀態(tài),,以方便用戶盡快借到自己想借的書;查看帳單,可以查看到目前用戶還沒有交的罰款信息,。列出每本書欠款的情況,,包括每本書的書名、罰款數(shù)目以及罰款原因等信息,。
(7) 服務信息:包括查看圖書館通知,、開放時間、與圖書館聯(lián)系和向圖書館提建議等幾個功能,。用戶無論登錄與否都可以使用本功能,。
(8) 幫助:相當于用戶教程,指導用戶如何使用本系統(tǒng),。它包括如何檢索書籍,、設置還書提醒、預約與取消預約以及續(xù)借書籍等方法,。
2 系統(tǒng)設計
2.1 模塊結構設計
移動圖書館分為服務器端和客戶端兩部分,,其中服務器端提供類似于現(xiàn)有大部分網(wǎng)上圖書館的功能;客戶端這里特指手機客戶端,它提供還書提醒,、檢索書籍,、用戶管理、預約圖書,、續(xù)借圖書和服務信息等功能,總體結構圖如圖3所示,。
2.2 類設計
對系統(tǒng)主要類的設計說明如下,。
2.2.1 主MIDlet類
主MIDlet類由MobileLibraryMidlet.java文件實現(xiàn)。該文件中定義了MobileLibraryMidlet類,,該類派生自MIDlet類,,同時還實現(xiàn)了CommandListener接口。該類主要繼承了MIDlet類的startApp(),、pauseApp(),、destroyApp(boolean unconditional)和一些其他自定義的方法。其中startApp()是本程序的啟動方法,,它負責啟動應用程序,。該方法主要有兩個分支,如果是由PUSH注冊機制喚醒應用程序,,就顯示提醒用戶還書的界面并且播放提示背景音樂,,否則程序就執(zhí)行init()方法正常啟動。判斷程序是否由PUSH注冊機制喚醒的方法是通過讀取Remind對象中存儲的注冊時間與當前時間進行比較,,如果兩個時間相等說明是由PUSH機制喚醒的,,否則是程序正常啟動。
2.2.2 主界面類
主界面作用由MainUI類來實現(xiàn),。它實現(xiàn)了SVGEventListener和Runnable兩個接口,,這兩個接口主要是實現(xiàn)SVG的交互性。本類當中有5個SVGAnimationElement類型的數(shù)組變量,,這些數(shù)組保存的是SVG中的各種動畫元素,,例如顏色、位置的變化等,,這5個數(shù)組分別用于存儲選擇器動畫元素的marker數(shù)組,、保存當動畫元素被選擇時顏色的selectedColor數(shù)組、保存動畫元素未被選擇時顏色的unSelectedColor數(shù)組,、保存動畫元素被選擇的位置的selectedPosition數(shù)組以及保存動畫元素未被選擇的位置的數(shù)組unSelectedPosition,。
2.2.3 界面導航類
系統(tǒng)的界面導航由UIController類實現(xiàn),其主要成員函數(shù)如下,。
(1) goBack()
goBack()方法主要實現(xiàn)界面導航中返回上一個界面的功能,,其過程是首先從棧頂彈出當前的顯示控件,然后獲得當前的棧頂元素,最后通過midlet回調(diào)顯示上一個界面,,從而實現(xiàn)返回上一個界面的功能,。
(2) forward(Displayable display)
forward(Displayable display)方法實現(xiàn)進入到下一個顯示屏幕的功能。其過程是首先將要顯示的控件壓入棧中,,然后通過midlet回調(diào)setCurrent(display)顯示該控件,。當調(diào)用goBack()返回時仍回到原先的屏幕。
(3) repalce(Displayable next)
聯(lián)網(wǎng)時經(jīng)常會有一個暫時等待的界面,然后再進入所需要的界面,。這時若要返回,,應該是返回到聯(lián)網(wǎng)之前的界面而不是返回到等待界面,因此當從等待界面轉(zhuǎn)到聯(lián)網(wǎng)之后的界面時,,不應該調(diào)用forward(Displayable display)方法,,應使用repalce方法,拋棄等待屏幕,,從而實現(xiàn)聯(lián)網(wǎng)后的屏幕可以直接goBack到聯(lián)網(wǎng)之前的屏幕。
2.2.4 HTTP通信類
一個完整的HTTP連接為:用戶通過某個命令發(fā)起連接請求,,然后系統(tǒng)給出一個等待屏幕提示正在連接,,當連接正常結束后,前進到下一個屏幕并處理下載的數(shù)據(jù),。如果連接過程出現(xiàn)異常,,將提示用戶并返回到前一個屏幕。用戶在等待過程中能夠隨時取消并返回前一個屏幕,。HTTP通信類是系統(tǒng)中很重要的一個類,,它負責客戶端和服務器端的通信。雙方的通信采用前面介紹的通信協(xié)議,。HTTP通信類由HttpHandler類實現(xiàn),,該類繼承了Thread類并重寫了Thread類的run()方法。run()方法是HTTP通信類的核心方法,,實現(xiàn)通信功能,。本方法的大致思想是與Web服務器建立連接,發(fā)送請求動作信息,,收到服務器的響應后根據(jù)響應碼分配給相應的處理類對來自服務器的響應數(shù)據(jù)進行解析,。
系統(tǒng)采用J2ME作為客戶端的開發(fā)基礎,通過SVG,、PUSH等技術豐富系統(tǒng)功能并美化系統(tǒng)界面,。服務器端使用成熟的Servlet技術實現(xiàn)。同時系統(tǒng)在開發(fā)過程中使用類似于MVC模式,,實現(xiàn)了符合系統(tǒng)的要求,。
參考文獻
[1] Chen Xiaomei,Guan Xin. The value of mobile phone library in information broadcasting[J]. Information Science,2006(11).
[2] Tung Weifeng,, Yuan Soetysr,, Lin Binshan. M-Library: a mobile service in online WebPAC[J].International Journal of Mobile Communications 2007,5(5):487-507.
[3] Nor Shahriza Abdul Karim,, Siti Hawa Darus,, Ramlah Hussin.Mobile phone applications in academic library services:a students’ feedback survey[D].Malaysia:International Islamic University,2006.
[4] 陸東林,,賓晟,,國剛.J2ME開發(fā)技術原理與實踐教程[M].北京:電子工業(yè)出版社,2008.
[5] 郝玉龍,,李向前.J2ME移動應用開發(fā)[M].北京:清華大學出版社;北京交通大學出版社,,2006.
[6] 施錚.J2ME無線移動游戲開發(fā)[M].北京:人民郵電出版社,,2006.