




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于無線網(wǎng)絡(luò)的圖書館輔助管理系統(tǒng)專業(yè):班級:組號:指導教師:二0一0年04月 15日基于無線網(wǎng)絡(luò)的圖書館輔助管理系統(tǒng)摘要隨著3G時代的到來,3G無線網(wǎng)絡(luò)規(guī)模逐漸擴大,移動電子通訊設(shè)備將不僅僅只是打電話和發(fā)短信的工具,屆時將會有更多的更豐富的移動應(yīng)用程序應(yīng)用在移動電子通訊設(shè)備的終端上,而移動商務(wù)以及移動辦公作為3G無線網(wǎng)絡(luò)傳輸應(yīng)用的重要分支,將會廣泛地流行起來。本系統(tǒng)為圖書館文獻查詢輔助系統(tǒng)(手機客戶端,使用C/S結(jié)構(gòu),實現(xiàn)了無線網(wǎng)絡(luò)傳輸HTTP協(xié)議、UDP傳輸協(xié)議、以及套接字傳輸協(xié)議。本文完整地描述了在 Eclipse 平臺應(yīng)用 J2ME 技術(shù),利用TOMCAT服務(wù)器,使用ORACLE數(shù)據(jù)庫,
2、開發(fā)本手機軟件的過程。其中主要涉及的技術(shù)有Java Servlet技術(shù)、Java Socket 技術(shù)等。第一章介紹了系統(tǒng)背景,使用的開發(fā)平臺及主要技術(shù),對論文中術(shù)語的約定;第二章介紹了系統(tǒng)需求及系統(tǒng)的設(shè)計方案;第三章介紹了系統(tǒng)具體實現(xiàn),并描述一些關(guān)鍵性技術(shù)和核心模塊的設(shè)計;第四章介紹了對本系統(tǒng)進行的測試及測試結(jié)果。關(guān)鍵詞:J2ME;無線網(wǎng)絡(luò)傳輸;GCF;HTTP;移動圖書館;3G通信技術(shù)目錄論文總頁數(shù):42頁1引言 (11.1系統(tǒng)背景 (11.2開發(fā)平臺 (11.3主要技術(shù) (41.4術(shù)語與縮寫解釋 (72需求分析及項目方案 (82.1目標 (82.2假定和約束 (82.3需求規(guī)定 (82.4
3、數(shù)據(jù)結(jié)構(gòu)及表的定義 (92.5運行環(huán)境規(guī)定 (133項目設(shè)計及開發(fā) (143.1整體框架 (143.2程序核心功能 (153.3兼容性 (353.4打包與混淆 (353.5特殊問題與解決方法 (364結(jié)果測試及性能分析 (374.1測試思路 (374.2測試結(jié)果 (38結(jié)論 (39致謝 (40參考文獻 (41插圖和附表清單表格清單 插圖清單 1引言3G,是指第三代移動通訊技術(shù)。隨著3G的到來,移動終端不僅僅是打電話,發(fā)短信的工具,屆時會有更多豐富的移動應(yīng)用程序出現(xiàn)。國家工信部3G牌照已經(jīng)正式發(fā)放,標志著中國3G元年的到來,現(xiàn)已經(jīng)有多家3G網(wǎng)絡(luò)牌照運營商進行發(fā)放3G牌照,3G網(wǎng)絡(luò)已經(jīng)正式覆蓋全國
4、多個省會城市,將有多家移動網(wǎng)絡(luò)門戶運營商提供低費用高傳輸速度的無線網(wǎng)絡(luò)服務(wù)。移動商務(wù),移動辦公作為無線網(wǎng)絡(luò)傳輸應(yīng)用的重要分支,將會廣泛流行。無線網(wǎng)絡(luò)傳輸程序包括HTTP協(xié)議下的Web頁面數(shù)據(jù)傳輸,基于UDP傳輸協(xié)議的數(shù)據(jù)包傳輸,基于套接字連接的數(shù)據(jù)傳輸。在這三種無線網(wǎng)絡(luò)傳輸基礎(chǔ)上設(shè)計實現(xiàn)的手機程序,將在3G廣泛盛行起來的同時,發(fā)揮出重大作用,提高人們的生活水平和生活質(zhì)量。1.1系統(tǒng)背景本程序的設(shè)計實現(xiàn)了HTTP協(xié)議,UDP傳輸協(xié)議,套接字傳輸協(xié)議。本作品采用移動無線網(wǎng)絡(luò)傳輸?shù)膱D書館輔助系統(tǒng)(手機客戶端的形式整體實現(xiàn)了上述協(xié)議,并且具有使用價值,因為現(xiàn)在移動通訊使用的范圍已經(jīng)愈來愈廣泛,移動手機
5、的用戶界面也越來越友好,移動通訊的網(wǎng)絡(luò)傳輸質(zhì)量也越來越優(yōu)越,所以使用手機客戶端的形式將用戶從繁瑣的計算機使用中解脫出來,使得用戶能在隨時隨地登入到圖書館系統(tǒng),進行自己期望的操作;而且同時也使得管理員對圖書館的管理越來越靈活,提高了管理員的能動性,加快了對書籍的整合和管理的效率。本作品主要采用J2ME技術(shù)進行設(shè)計和實現(xiàn),因為UDP協(xié)議的實現(xiàn)與套接字傳輸協(xié)議的實現(xiàn)基本一致,所以在設(shè)計程序時,考慮到時間以及程序模塊的因素,將其縮減。1.2開發(fā)平臺Eclipse是替代 IBM Visual Age for Java(以下簡稱 IVJ的下一代IDE 開發(fā)環(huán)境,但它未來的目標不僅僅是成為專門開發(fā)JAVA程
6、序的IDE環(huán)境,根據(jù)Eclipse的體系結(jié)構(gòu),通過開發(fā)插件,它能擴展到任何語言的開發(fā),甚至能成為圖片繪制的工具。更難能可貴的是Eclipse是一個開放源代碼的項目,任何人都可以下載 Eclipse 的源代碼,并且在此基礎(chǔ)上開發(fā)自己的功能插件。也就是說未來只要有人需要,就會有建立在Eclipse之上的COBOL,Perl,Python等語言的開發(fā)插件出現(xiàn)。同時可以通過開發(fā)新的插件擴展現(xiàn)有插件的功能,比如在現(xiàn)有的Java開發(fā)環(huán)境中加入Tomcat 服務(wù)器插件??梢詿o限擴展,而且有著統(tǒng)一的外觀,操作和系統(tǒng)資源管理,這也正是 Eclipse的潛力所在。在本項目中,Eclipse 正是通過第三方插件Ec
7、lipse me實現(xiàn)了開發(fā) J2ME 應(yīng)用。EclipseME是幫助你開發(fā)J2ME MIDlet的Eclipse插件。 EclipseME幫助你輕松的把無線工具包整合到Eclipse開發(fā)環(huán)境中,使你不必再擔心J2ME開發(fā)有何特殊需求,而可以把所有精力集中在應(yīng)用開發(fā)上。EclipseME提供了下列功能以幫助開發(fā)者輕松的創(chuàng)建Midlets:無線工具包首選項創(chuàng)建新的J2ME Midlet套件項目創(chuàng)建新的MidletJava應(yīng)用描述文件(JAD編輯器對class文件進行增量的/自動的預檢驗支持從Eclipse中啟動運行J2ME模擬器打包以及部署(包括無線下載方式測試,可以使用ProGuard對輸出包進
8、行混淆Proguard 是一個出色的混淆器,用以增加程序被破譯的難度,并可以減小最后生成jar 的體積,ProGuard,除了在壓縮操作刪除的無用類、字段和方法外,也能在字節(jié)碼級提供性能優(yōu)化,內(nèi)部方法有:常量表達式求值刪除不必要的字段存取刪除不必要的方法調(diào)用刪除不必要的分支刪除不必要的比較和 instanceof 驗證刪除未使用的代碼刪除只寫字段刪除未使用的方法參數(shù)像 push/pop 簡化一樣的各種各樣的 peephole 優(yōu)化在可能的情況下為類添加 static 和 final 修飾符在可能的情況下為方法添加 private, static 和 final 修飾符在可能的情況下使 get/
9、set 方法成為內(nèi)聯(lián)的當接口只有一個實現(xiàn)類的時候,就取代它選擇性的刪除日志代碼Tomcat 服務(wù)器是一個免費的開放源代碼的Web 應(yīng)用服務(wù)器,Tomcat是Apache 軟件基金會(Apache Software Foundation的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn), Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 規(guī)范。因為Tomcat 技術(shù)先進、性能穩(wěn)定,而且免費,因而深受Java 愛好者的喜愛并得到了部分
10、軟件開發(fā)商的認可,成為目前比較流行的Web 應(yīng)用服務(wù)器。Tomcat 是一個小型的輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。對于一個初學者來說,可以這樣認為,當在一臺機器上配置好Apache 服務(wù)器,可利用它響應(yīng)對HTML 頁面的訪問請求。實際上Tomcat 部分是Apache 服務(wù)器的擴展,但它是獨立運行的,所以當運行tomcat 時,它實際上作為一個與Apache 獨立的進程單獨運行的。本系統(tǒng)采用Tomcat服務(wù)器,因為它運行時占用的系統(tǒng)資源小,擴展性好,支持負載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進和完善
11、中。手機客戶端可以通過與Tomcat的訪問連接來實現(xiàn)各個模塊功能。Oracle Database 10g 提供了4個版本分別是Oracle Database 10g標準版1、Oracle Database 10g標準版、Oracle Database 10g企業(yè)版和Oracle Database 10g個人版。提供了一系列常見的應(yīng)用程序開發(fā)功能,包括與SQL對象相關(guān)的功能、用于編寫存儲過程和觸發(fā)器的PL/SQL語言和JAVA編程接口。企業(yè)版還提供了額外的性能、可伸縮性、可用性、和安全性,這些功能一般對應(yīng)用程序開發(fā)人員是透明的。Oracle Database 10g 企業(yè)版主持的API,Orac
12、le Database 10g 個人版和標準版也支持。Oracle Database 10g產(chǎn)品全部是用同一個健壯和可靠地數(shù)據(jù)庫引擎體系結(jié)構(gòu)構(gòu)建的。在許多不同的平臺上,Oracle Database 10g標準版和Oracle Database 10g個人版都和Oracle Database 10g企業(yè)版完全兼容,因此用戶的數(shù)據(jù)庫應(yīng)用程序可以從筆記本電腦簡單地擴展到臺式電腦,然后再擴展到整個企業(yè)網(wǎng)絡(luò),而不需要重新設(shè)計。Rational Rose 是一個完全的,具有能滿足所有建模環(huán)境需求能力和靈活性的一套解決方案。Rose 允許開發(fā)人員,項目經(jīng)理,系統(tǒng)工程師和分析人員在軟件開發(fā)周期內(nèi)在將需求和系
13、統(tǒng)的體系架構(gòu)轉(zhuǎn)換成代碼,消除浪費的消耗,對需求和系統(tǒng)的體系架構(gòu)進行可視化,理解和精練。通過在軟件開發(fā)周期內(nèi)使用同一種建模工具可以確保更快更好的創(chuàng)建滿足客戶需求的可擴展的、靈活的并且可靠的應(yīng)用系統(tǒng)。Rose是美國的Rational公司的面向?qū)ο蠼9ぞ?利用這個工具,可以建立用UML描述的軟件系統(tǒng)的模型,而且可以自動生成和維護C+、Java、VB和Oracle等語言和系統(tǒng)的代碼。Rational Rose包括了統(tǒng)一建模語言(UML,OOSE,以及OMT。本系統(tǒng)采用Rose進行UML用例建模。1.3主要技術(shù)本作品分為服務(wù)器端和手機客戶端兩個部分,采用C/S結(jié)構(gòu)設(shè)計系統(tǒng),采用GCF框架中定義的網(wǎng)絡(luò)連
14、接類和方法,制定雙方都能理解的協(xié)議來交換數(shù)據(jù),前后臺通過servlet進行數(shù)據(jù)傳輸及頁面顯示,整個系統(tǒng)采用MVC模式進行模塊劃分,實現(xiàn)界面和模型數(shù)據(jù)的分離,結(jié)構(gòu)清晰,便于維護。Java技術(shù)是一系列產(chǎn)品的集合,目前主要包括Java2平臺標準版(Java 2 platform Standard Edition, J2SE、Java2 平臺企業(yè)版(Java 2 platform Enterprise Edition, J2EE、Java2 平臺微型版(Java 2 platform Micro Edition, J2ME和Java卡平臺。J2ME 為運行在嵌入式消費類電子產(chǎn)品的設(shè)備,如移動電話、PD
15、A、游戲終端之上的應(yīng)用程序提供了一個健壯的、靈活的環(huán)境。與 J2SE、J2EE 和 Java Card 一樣,J2ME 同樣包含一個小型的虛擬機和一系列的 Java API。J2ME 還提供了靈活的圖形用戶界面、健壯的安全模型、廣泛的聯(lián)網(wǎng)協(xié)議支持。目前 J2ME 平臺已經(jīng)部署到上億個的設(shè)備上,前景非??春?。J2ME 平臺由多種配置(Configuration、簡表(Profile和可選包(OptionalPackage組成。平臺的實現(xiàn)者和應(yīng)用程序的開發(fā)者可以從中選擇并組合出一個完整的Java運行環(huán)境來滿足特定范圍內(nèi)的設(shè)備需求。每種組合都應(yīng)該使這一系列設(shè)備的內(nèi)存、處理器和 I/O 能力達到最優(yōu)化
16、。GCF(通用連接框架 Generic Connection Framework是基于CLDC及其對應(yīng)簡表,提供了各種連接的基礎(chǔ)API,包括基于數(shù)據(jù)包和基于數(shù)據(jù)流的輸入/輸出方法。它按照層次的形式組織各種連接接口,使用URL表示不同的連接。通用連接框架定義了7種接口:Connection接口、CintentConnection接口、DatagramConnection接口、InputConnection接口,OutputConnection接口, StreamConnection接口和StreamConnectionNotifie r接口。Connection接口是所有接口的基類,它產(chǎn)生了用于
17、數(shù)據(jù)包連接的DatagramConnection連接接口、用于數(shù)據(jù)流連接的InputConnection接口、OutputConnection接口和StreamConnectionNotifier接口。其中StreamConnection接口繼承自數(shù)據(jù)流連接的輸入/輸出接口,并派生了用于數(shù)據(jù)內(nèi)容解析的CintentConnection接口。GCF是一個容易擴展的框架結(jié)構(gòu),用戶可以根據(jù)自身的需要在現(xiàn)有的類和接口上建立自己的類或者實現(xiàn)自己的接口。RMS(記錄管理系統(tǒng)Record Management System類似于普通計算機的文件管理系統(tǒng)。在手持電子設(shè)備中,用以統(tǒng)一的機制管理持續(xù)性存儲資源。記
18、錄管理系統(tǒng)具有數(shù)據(jù)庫管理系統(tǒng)的特征,即記錄管理系統(tǒng)組織數(shù)據(jù)是按照行列的方式進行組織的,每條信息在記錄管理系統(tǒng)中都表現(xiàn)為一條記錄,類似于數(shù)據(jù)庫一行,每一條記錄可以包含多個數(shù)據(jù),類似于數(shù)據(jù)庫某一行中的多列。我們可以通過添加記錄的方式將數(shù)據(jù)持久地保存在記錄管理系統(tǒng)中;通過刪除記錄的方式刪除信息;同時記錄管理系統(tǒng)還允許為你們對記錄進行排序和查找。記錄管理系統(tǒng)允許以下操作:創(chuàng)建記錄存儲器;在已建立的記錄存儲器中添加記錄;在已建立的記錄存儲器中刪除已經(jīng)存在的記錄;在已建立的記錄存儲器中讀取已經(jīng)存在的記錄;在已建立的記錄存儲器中建立枚舉器;在已建立的記錄存儲器中建立比較器;在已建立的記錄存儲器中建立篩選去。
19、MVC是一種設(shè)計模式,強制把應(yīng)用程序的輸入、處理和輸出分開。MVC把應(yīng)用程序分為三個核心模塊:模型、視圖和控制器,他們分別負擔不同的任務(wù)。盡管構(gòu)造MVC應(yīng)用程序需要一些額外的操作,但是給我們帶來的好處是毋庸置疑的。首先,多個視圖能共享一個模型。在MVC設(shè)計模式中,模型響應(yīng)用戶請求并返回響應(yīng)數(shù)據(jù),視圖負責格式化數(shù)據(jù)并把它們呈現(xiàn)給用戶,業(yè)務(wù)邏輯和表示層分離,同一個模型可以被不同的視圖重同,所以大大提高了代碼的可重用性。其次,模型是自包含的,與控制器和視圖保持相對獨立,所以可以方便地改變應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。由于MVC的三個模塊相互獨立,改變其中一個不會影響到其他兩個,因此依據(jù)這種設(shè)計思想能構(gòu)
20、造良好的松耦合的構(gòu)件。此外,控制器提高了應(yīng)用程序的靈活性和可配置性??刂破骺梢杂脕磉B接不同的模型和視圖去完成用戶的需求,也可以為構(gòu)造應(yīng)用程序提供強有力的手段。給定一些可重用的模型和視圖,控制器可以根據(jù)用戶的需求選擇適當?shù)哪P瓦M行處理,然后選擇適當?shù)囊晥D將處理結(jié)果顯示給用戶。JavaBeans是一個類,它有無參的構(gòu)造函數(shù),并且遵從JavaBeans的命名約定。bean的屬性可以通過獲取(getter方法和設(shè)置方法(setter來訪問,這兩個方法統(tǒng)稱為bena的存取方法,每一個單詞的首字母都要大寫。除了簡單的屬性外,bean還可以有多值屬性,多值屬性是由一個任意類型的數(shù)組組成。在規(guī)范中這稱為索引的
21、屬性。JavaBeans技術(shù)能實現(xiàn)封裝數(shù)據(jù),實現(xiàn)對代碼的重用。JavaBeans技術(shù),涉及到組件構(gòu)件技術(shù),是Java的核心基礎(chǔ)部分。很多軟件設(shè)計模式都是通過JavaBeans實現(xiàn)的。JavaBeans具有以下特性:內(nèi)透性指一個類的信息,都可以被另一個類獲知。JavaBeans遵循某種命名規(guī)則,這樣外部類就可以知道這個Bean類。支持自定義屬性的方法用來對JavaBeans進行自定義支持事件支持屬性支持永久性Servlet是與平臺無關(guān)的服務(wù)器端組件,可以運行在Servlet容器中。Servlet容器負責Servlet和客戶的通信以及調(diào)用Servlet的方法。Servlet和客戶的通信采用“請求/
22、響應(yīng)”的模式。Servlet的技術(shù)特點有以下幾個方面:Java servlet技術(shù)具有JAVA技術(shù)的所有優(yōu)點。Java servlet技術(shù)要比傳統(tǒng)的CGI技術(shù)效率更高。傳統(tǒng)的GCI技術(shù)對于每個HTTP請求都要產(chǎn)生一個新進程。Servlet技術(shù)對于每一個請求產(chǎn)生Java線程來響應(yīng)。Java servlet技術(shù)要比傳統(tǒng)的CGI技術(shù)更強大。Java servlet能方便的處理HTML表單數(shù)據(jù),能夠讀取和設(shè)置HTTP頭信息,并且能夠處理Cookies,跟蹤Session等其他功能。Java servlet 是模塊化的。每一個Servlet可以執(zhí)行一個特定的任務(wù),并且可以講他們并在一起工作。Java s
23、ervlet之間能共享數(shù)據(jù)。Java servlet技術(shù)要比傳統(tǒng)CGI技術(shù)更安全。Socket通常也稱作"套接字",用于描述IP地址和端口,是一個通信鏈的句柄。應(yīng)用程序通常通過"套接字"向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求。Socket是網(wǎng)絡(luò)應(yīng)用程序的核心,在服務(wù)器端或客戶端網(wǎng)絡(luò)應(yīng)用程序中,皆為不可缺少的要素。它主要包括ServerSocket和Socket。ServerSocket用于服務(wù)器端,Socket是建立網(wǎng)絡(luò)連接時使用的。在連接成功時,應(yīng)用程序兩端都會產(chǎn)生一個Socket實例,操作這個實例,完成所需的會話。對于一個網(wǎng)絡(luò)連接來說,套接字是平等的,并沒有
24、差別,不因為在服務(wù)器端或在客戶端而產(chǎn)生不同級別。不管是Socket還是ServerSocket它們的工作都是通過 SocketImpl類及其子類完成的。1.4術(shù)語與縮寫解釋KVM: 全稱 Kilobyte Virtual Machine,J2ME 虛擬機;IDE: 全稱 Integrated Development Environment,集成開發(fā)環(huán)境;WTK: 全稱 Wireless Toolkit,是 Sun 公司發(fā)布的 J2ME 應(yīng)用開發(fā)套件;MIDlet: 一個 MIDP 應(yīng)用程序稱作 MIDletMIDP 小應(yīng)用程序,這個概念與 J2SE 中的 applet 十分類似;APIAppl
25、ication Programming Interface應(yīng)用程序編程接口;MIDPMobile Information Device Profile 移動信息設(shè)備簡表;CLDCConnected Limited Device Configuration 有限無線設(shè)備配置;UIUser Interface 用戶界面;HTTPHypertext Transfer Protocol 超文本傳輸協(xié)議;UDPUser Datagram Protocol 用戶數(shù)據(jù)報協(xié)議;Socket"套接字",用于描述IP地址和端口,是一個通信鏈的句柄。2需求分析及項目方案2.1目標基于無線網(wǎng)絡(luò)傳輸
26、的圖書館輔助系統(tǒng)(手機客戶端使用C/S結(jié)構(gòu),實現(xiàn)無線網(wǎng)絡(luò)傳輸下的HTTP協(xié)議和套接字協(xié)議進行數(shù)據(jù)傳輸。系統(tǒng)分為服務(wù)器端和手機客戶端兩個部分,其中服務(wù)器端提供模擬學校網(wǎng)上圖書館功能,提供數(shù)據(jù)存儲的服務(wù)器終端。手機客戶端包括讀者登入和管理員登入兩個模塊,讀者用戶可以進行借閱書籍基本信息查看,書刊續(xù)借,密碼修改,書刊信息查詢,書刊增訂;管理員用戶可以進行書籍信息修改,個人信息查詢。還設(shè)置書籍討論區(qū)公共模塊,管理員用戶和讀者用戶可以進行書籍的交互討論。2.2假定和約束本系統(tǒng)軟件是在模擬器上模擬實現(xiàn)輔助圖書館的管理的客戶端軟件,因為使用者是該校學生或者老師,所以學校已經(jīng)分配給每個用戶以用戶名和密碼,所以
27、沒有設(shè)置用戶注冊模塊;此外,本系統(tǒng)主要實現(xiàn)手機客戶端與后臺服務(wù)器之間的數(shù)據(jù)傳輸,提供了模擬的服務(wù)接口,所以服務(wù)器端數(shù)據(jù)庫設(shè)計為個人理想狀態(tài)下設(shè)計,忽略了繁瑣的數(shù)據(jù)訪問機制;最后由于是手機客戶端難免受到手機軟硬件的限制,將重點放在實現(xiàn)系統(tǒng)功能以及界面設(shè)計方面,降低了物理層的無線承載能力的要求。2.3需求規(guī)定對精度的規(guī)定:用戶應(yīng)按照界面提示輸入數(shù)據(jù),后臺代碼提供了對數(shù)據(jù)精度出錯提供了一定得處理功能。時間性要求:對于一般的頁面操作,延時可忽略不計。但如果涉及網(wǎng)絡(luò)數(shù)據(jù)請求、傳輸,或者用戶進行的操作相當耗費CPU的時候,延時會很明顯。如果某項操作耗費時間已經(jīng)超過1分鐘還沒結(jié)束,用戶應(yīng)自行決定放棄此操作或
28、退出本軟件。靈活性要求:系統(tǒng)采用視圖、模型、控制器分離設(shè)計,增加了系統(tǒng)訪問的靈活性和可理解性,更方便了系統(tǒng)后天的維護,通過增加系統(tǒng)的通訊協(xié)議可快速對系統(tǒng)進行功能增加。本系統(tǒng)具體功能需求如表1所示: 阿拉伯數(shù)字均為十進制無正負;索引號更具規(guī)定的ISBN編號設(shè)置;日期格式為:yy-mm-dd2.4數(shù)據(jù)結(jié)構(gòu)及表的定義數(shù)據(jù)庫表格定義了系統(tǒng)服務(wù)器端所用到的基本數(shù)據(jù)表,詳細描述了數(shù)據(jù)表中的字段、類型、約束條件、說明等信息,如下表所示: 網(wǎng)絡(luò)通訊協(xié)議是客戶端和服務(wù)器端交互數(shù)據(jù)的基礎(chǔ),主要由動作和數(shù)據(jù)組成,動作定義如下表所示: 界面控制器內(nèi)部定義的協(xié)議實現(xiàn)了界面中的跳轉(zhuǎn)以及和網(wǎng)絡(luò)連接控制器之間的請求。請求協(xié)議
29、定義如下表所示: 在書籍討論區(qū)模塊中,客戶端和服務(wù)器端連接是采用如下表通訊協(xié)議格式進行信息傳遞和解析;表12 書籍討論區(qū)協(xié)議 2.5運行環(huán)境規(guī)定本軟件目標運行平臺為所有支持 CLDC1.1、MIDP2.0,屏幕分辨率不小于200×200 的手機設(shè)備(包括Palm ,Blackberry或者其他PDA,并要求在各型號手機上均有良好的兼容性。內(nèi)存堆棧>1M Byte。開發(fā)包:windows xp sp2下的WTK。3項目設(shè)計及開發(fā)3.1整體框架 圖2 管理員客戶端系統(tǒng)結(jié)構(gòu)圖手機客戶端用戶初始化本軟件后,選擇用戶登入類型,轉(zhuǎn)入響應(yīng)該用戶歡迎界面,用戶用圖書館分配的初始密碼登入成功后。
30、進入菜單界面,選擇響應(yīng)操作,客戶端收到用戶發(fā)來的界面請求,向服務(wù)器端發(fā)送用戶請求操作的命令,得到服務(wù)器端發(fā)送回來的數(shù)據(jù)后,在客戶端顯示頁面或者提示,用戶則進行后續(xù)操作,如果操作結(jié)束,用戶可以選擇退出。具體執(zhí)行過程如圖3所示: 圖3 系統(tǒng)總體流程圖3.2程序核心功能1.模塊描述:用戶使用該系統(tǒng)時,選擇讀者用戶身份初始化后,在歡迎菜單中選中“讀者信息”選項,將來到讀者信息查詢界面,在讀者登入后,系統(tǒng)將提示進行網(wǎng)絡(luò)連接,將提示用戶借閱幾本書籍,建立連接后,服務(wù)器端將返回該讀者用戶借閱書籍的列表信息,用戶選中書籍后點擊“設(shè)置”,系統(tǒng)將顯示該本書籍的具體信息,用戶可以在界面中給該本書籍設(shè)置鬧鐘提示時間,
31、或者點擊“menu”,對該本書籍進行客戶端續(xù)借,系統(tǒng)將提示續(xù)借結(jié)果信息。對應(yīng)需求如表13、14、15、16對應(yīng)類如表17顯示: 表16 書續(xù)借閱IPO表 表17 類表 2.程序設(shè)計思想:界面控制類接到了主菜單傳遞的頁面調(diào)用請求(SHOW_LOGIN,就調(diào)用顯示讀者用戶登入界面,當接收到用戶輸入用戶名和密碼后,就請求界面控制類發(fā)送網(wǎng)絡(luò)連接請求(LOGIN,當網(wǎng)絡(luò)連接控制類和服務(wù)器端控制類建立連接后,將請求發(fā)送給服務(wù)器端,服務(wù)器端控制類調(diào)用用戶實體類初始化一個用戶對象,再調(diào)用用戶控制類訪問數(shù)據(jù)庫核對用戶密碼,如果登入錯誤,就返回錯誤信息(LOGIN_ERROR_PWD/ LOGIN_NO_USER
32、;如果密碼正確,就調(diào)用書本控制類訪問數(shù)據(jù)庫,如果沒有查詢用戶借閱書籍信息,就返回響應(yīng)信息(LOGIN_SUCCESS_NO_BOOK,顯示沒有借閱書籍信息界面;如果查詢該用戶借書籍信息后,返回響應(yīng)信息(LOGIN_SUCCESS_HAS_BOOK,將查詢到的每本借閱書籍的實體類封裝成書本信息列表傳回網(wǎng)絡(luò)連接控制類,然后以借閱書籍信息顯示模式類中定義的實現(xiàn)模式顯示該查詢結(jié)果列表和具體書籍信息;用戶在借閱書籍顯示界面上,設(shè)定好鬧鈴提示時間后,系統(tǒng)將通過鬧鈴設(shè)置模式類,將設(shè)置的時間保存在手機的持久化存儲中;用戶如果續(xù)借該選中的借閱書籍,顯示頁面將此書籍名稱和請求(GOON_BORROWBOOK發(fā)送給
33、界面控制類,當網(wǎng)絡(luò)連接控制類和服務(wù)器端控制類建立連接后,服務(wù)器端控制類調(diào)用書籍控制類查詢書籍續(xù)借情況,如果能續(xù)借,就更新數(shù)據(jù)庫字段,并且返回提示信息(GOON_SUCCESS_BORROWBOOK/ GOON_ERROR_BORROWBOOK然后界面控制類導航顯示提示信息。具體順序圖如圖4所示: 圖4 讀者借閱查詢順序圖1.模塊描述:用戶使用該系統(tǒng)時,選擇讀者用戶身份初始化后,在歡迎菜單中選中“密碼修改”選項,將來到讀者密碼修改界面,在讀者輸入用戶名、新舊密碼后,系統(tǒng)將提示進行網(wǎng)絡(luò)連接,建立連接后,服務(wù)器端返回響應(yīng)信息,體統(tǒng)將提示讀者用戶是否密碼修改成功。對應(yīng)需求如表18,對應(yīng)類如表19顯示:
34、 2.程序設(shè)計思想:界面控制類接到了主菜單傳遞的頁面調(diào)用請求(SHOW_CHANGE_PWD,就調(diào)用顯示讀者用戶密碼修改界面,當接收到用戶輸入用戶名和新舊密碼后,就請求界面控制類發(fā)送網(wǎng)絡(luò)連接請求(CHANGE_PWD,當網(wǎng)絡(luò)連接控制類和服務(wù)器端控制類建立連接后,將請求發(fā)送給服務(wù)器端,服務(wù)器端控制類調(diào)用用戶實體類初始化一個用戶對象,再調(diào)用用戶控制類訪問數(shù)據(jù)庫核對用戶名,如果用戶名錯誤就返回提示信息(CHANGEPWD_NO_USER;如果用戶名存在,再調(diào)用用戶控制類訪問數(shù)據(jù)庫,核對用戶密碼,如果密碼錯誤,就返回錯誤提示信息(CHANGEPWD_ERROR_PWD,如果密碼正確,就調(diào)用用戶控制類修
35、改數(shù)據(jù)庫中該用戶的密碼,如果修改失敗就返回失敗信息(CHANGEPWD_FAIL;如果修改完成就返回成功信息(CHANGEPWD_SUCCESS,客戶端網(wǎng)絡(luò)控制器接受到各種返回信息后,就傳遞給界面控制器類導航各種不同的提示信息顯示界面。具體順序圖如圖5所示: 圖5讀者密碼修改順序圖1.模塊描述:用戶使用該系統(tǒng)時,選擇讀者用戶身份初始化后,在歡迎菜單中選中“書刊檢索”選項,將來到查詢書刊信息輸入界面,在查詢書刊信息界面中輸入用戶期望查詢的書刊名稱后,點擊“開始查詢”,系統(tǒng)將提示進行網(wǎng)絡(luò)連接,建立連接后,服務(wù)器端將返回查找信息,如果查找到用戶查詢的書籍后,將顯示所有包涵書籍名稱的信息列表,用戶選擇
36、其中某本書籍條目后,點擊“選擇”,將顯示改本館藏書籍的具體信息;如果沒有查找到用戶查詢的書籍,系統(tǒng)將提示沒有書籍信息,然后跳轉(zhuǎn)到預定書籍信息輸入界面,用戶可以輸入自己期望管理員購買的書籍信息,或者用戶可以選擇返回主菜單界面。對應(yīng)需求如表20、21、22,對應(yīng)類如表23顯示:表20 書刊檢索IPO表 表22 書增訂IPO表 表23 類表 2.程序設(shè)計思想:界面控制類接到了主菜單傳遞的頁面調(diào)用請求(SHOW_SEARCH_BOOK,就調(diào)用顯示查詢書籍信息輸入界面,當接收到用戶輸入書籍名稱后,就請求界面控制類發(fā)送網(wǎng)絡(luò)連接請求(SEARCH_BOOK,當網(wǎng)絡(luò)連接控制類和服務(wù)器端控制類建立連接后,將請求
37、發(fā)送給服務(wù)器端,服務(wù)器端控制類調(diào)用書本控制類訪問數(shù)據(jù)庫,如果查詢到相似書籍后,返回響應(yīng)信息(SEARCH_HAS_BOOK,將查詢到的每本書的實體類封裝成書本信息列表傳回網(wǎng)絡(luò)連接控制類,然后以書籍信息顯示模式類中定義的實現(xiàn)模式顯示該查詢結(jié)果列表和具體書籍信息;如果沒有查詢到相似書籍信息,就返回響應(yīng)信息(SEARCH_NO_BOOK,界面控制類就導航顯示書籍增訂界面,當接收用戶輸入預定書籍基本信息后,就請求界面控制類發(fā)送網(wǎng)絡(luò)連接請求(NEEDBOOK,當網(wǎng)絡(luò)連接控制類和服務(wù)器端控制類建立連接后,服務(wù)器端控制類調(diào)用書本控制類更新數(shù)據(jù)庫信息,并返回提示信息(SUCCESS_NEED_BOOK/ ER
38、ROR_NEED_BOOK,然后界面控制類導航顯示提示信息。具體順序圖如圖6所示: 圖6 讀者書刊檢索順序圖1.模塊描述:用戶使用該系統(tǒng)時,選擇讀者用戶身份初始化后,在歡迎菜單中選中“新書查詢”選項,將來到新書查詢界面,在新書查詢界面中輸入用戶期望查詢的書刊的日期后,點擊“開始查詢”,系統(tǒng)將提示進行網(wǎng)絡(luò)連接,建立連接后,服務(wù)器端將返回查找信息,如果查找到新增書籍信息后,將顯示所有新增書籍信息列表,用戶選擇其中某本書籍條目后,點擊“選擇”,將顯示該本館藏書籍的具體信息;如果沒有查找到用戶查詢的書籍,系統(tǒng)將提示沒有書籍信息,用戶可以選擇返回主菜單界面。對應(yīng)需求如表24,對應(yīng)類如表25顯示:表24
39、新書發(fā)布IPO表 2.程序設(shè)計思想:界面控制類接到了主菜單傳遞的頁面調(diào)用請求(SHOW_NEWBOOK,就調(diào)用顯示查詢新增書籍信息界面,當接收到用戶輸入查詢?nèi)掌诤?就請求界面控制類發(fā)送網(wǎng)絡(luò)連接請求(NEWBOOK,當網(wǎng)絡(luò)連接控制類和服務(wù)器端控制類建立連接后,將請求發(fā)送給服務(wù)器端,服務(wù)器端控制類調(diào)用書本控制類訪問數(shù)據(jù)庫,如果查詢到新增書籍信息后,返回響應(yīng)信息(HAS_NEWBOOK,將查詢到的每本書的實體類封裝成書本信息列表傳回網(wǎng)絡(luò)連接控制類,然后以新增書籍顯示模式類中定義的實現(xiàn)模式顯示該查詢結(jié)果列表和具體書籍信息;如果沒有查詢到書籍信息,就返回響應(yīng)信息(NO_NEWBOOK,然后界面控制類導航
40、顯示提示信息。具體順序圖如圖7所示: 圖7 讀者新書查詢順序圖1.模塊描述:用戶使用該系統(tǒng)時,選擇管理員用戶身份初始化后,在歡迎菜單中選中“書籍信息修改”選項,將來到管理員登入界面,在管理員輸入用戶名、密碼后,系統(tǒng)將提示進行網(wǎng)絡(luò)連接,建立連接后,服務(wù)器端返回響應(yīng)信息,若登入成功系統(tǒng)將顯示二級菜單。在二級菜單中選擇“書籍增訂信息”,系統(tǒng)將顯示讀者所有預定的書籍列表,選擇“設(shè)置”對預定書籍進行處理,如果管理員已經(jīng)購買了該本書籍,點擊“預訂完成”。對應(yīng)需求如下表26,對應(yīng)類如表27顯示:表26 書籍增訂信息修改IPO表 2.程序設(shè)計思想:界面控制類接到了主菜單傳遞的頁面調(diào)用請求(SHOW_MAN_L
41、OGIN,就調(diào)用顯示管理員用戶登入界面,當接收到用戶輸入用戶名和密碼后,就請求界面控制類發(fā)送網(wǎng)絡(luò)連接請求(MAN_LOGIN,當網(wǎng)絡(luò)連接控制類和服務(wù)器端控制類建立連接后,將請求發(fā)送給服務(wù)器端,服務(wù)器端控制類調(diào)用用戶實體類初始化一個用戶對象,再調(diào)用用戶控制類訪問數(shù)據(jù)庫核對用戶名,如果用戶名錯誤就返回提示信息(MAN_LOGIN_NO_USER;如果用戶名存在,再調(diào)用用戶控制類訪問數(shù)據(jù)庫,核對用戶密碼,如果密碼錯誤,就返回錯誤提示信息(MAN_LOGIN_ERROR_PWD,如果密碼正確,就返回登入成功信息(MAN_LOGIN_SUCCESS,界面控制類收到返回信息后就導航顯示書籍信息修改二級界面
42、,在該頁面選擇操作后就向界面控制器發(fā)送網(wǎng)絡(luò)連接請求(SHOW_MAN_NOTICEBOOK,當網(wǎng)絡(luò)連接控制類和服務(wù)器端控制類建立連接后,將請求發(fā)送給服務(wù)器端,調(diào)用書本控制類訪問數(shù)據(jù)庫,如果沒有查詢書籍預定信息,就返回響應(yīng)信息(MAN_NO_NEEDBOOK;如果查詢到有書籍預定信息后,返回響應(yīng)信息(MAN_HAS_NEEDBOOK,將查詢到的每本預定書籍的實體類封裝成書本信息列表傳回網(wǎng)絡(luò)連接控制類,然后以預定書籍信息顯示模式類中定義的實現(xiàn)模式顯示該查詢結(jié)果列表和具體書籍信息;如果要完成預定,書籍顯示界面向界面面管理類發(fā)送網(wǎng)絡(luò)連接請求(MAN_DELL_NEEDBOOK,當網(wǎng)絡(luò)連接控制類和服務(wù)器
43、端控制類建立連接后,將請求發(fā)送給服務(wù)器端,調(diào)用書籍控制類修改數(shù)據(jù)庫中預定書籍表的信息字段,并且返回提示信息(MAN_SUCCESS_DELLNEEDBOOK/ MAN_ERROR_DELLNEEDBOOK然后界面控制類導航顯示提示信息。具體順序圖如圖8所示: 圖8 管理員查詢書籍增訂信息順序圖1.模塊描述:用戶使用該系統(tǒng)時,選擇管理員用戶身份初始化后,在歡迎菜單中選中“書籍信息修改”選項,將來到管理員登入界面,在管理員輸入用戶名、密碼后,系統(tǒng)將提示進行網(wǎng)絡(luò)連接,建立連接后,服務(wù)器端返回響應(yīng)信息,若登入成功系統(tǒng)將顯示二級菜單。在二級菜單中選擇“新書發(fā)布”,系統(tǒng)將顯示書籍添加頁面,管理員填寫書籍基
44、本信息后,選擇“添加”,系統(tǒng)將提示完成信息。對應(yīng)需求如表28,對應(yīng)類如表29顯示: 2.程序設(shè)計思想:界面控制類接到了主菜單傳遞的頁面調(diào)用請求(SHOW_MAN_LOGIN,就調(diào)用顯示管理員用戶登入界面,當接收到用戶輸入用戶名和密碼后,就請求界面控制類發(fā)送網(wǎng)絡(luò)連接請求(MAN_LOGIN,當網(wǎng)絡(luò)連接控制類和服務(wù)器端控制類建立連接后,將請求發(fā)送給服務(wù)器端,服務(wù)器端控制類調(diào)用用戶實體類初始化一個用戶對象,再調(diào)用用戶控制類訪問數(shù)據(jù)庫核對用戶名,如果用戶名錯誤就返回提示信息(MAN_LOGIN_NO_USER;如果用戶名存在,再調(diào)用用戶控制類訪問數(shù)據(jù)庫,核對用戶密碼,如果密碼錯誤,就返回錯誤提示信息(
45、MAN_LOGIN_ERROR_PWD,如果密碼正確,就返回登入成功信息(MAN_LOGIN_SUCCESS,界面控制類收到返回信息后就導航顯示書籍信息修改二級界面,在該頁面選擇操作后就向界面控制器發(fā)送請求(SHOW_MAN_ADDBOOK,界面控制類導航書籍信息添加頁面,當添加書籍信息后,就向界面控制器發(fā)送網(wǎng)絡(luò)請求(ADDBOOK,當網(wǎng)絡(luò)連接控制類和服務(wù)器端控制類建立連接后,將請求發(fā)送給服務(wù)器端,服務(wù)器端控制類調(diào)用書本實體類初始化一個書本對象,再調(diào)用書本控制類訪問數(shù)據(jù)庫對書籍表進行更新,更新時將該本書籍借閱狀態(tài)自動標記為inlib,并且返回提示信息(MAN_SUCCESS_UPDATE_BO
46、OK / MAN_ERROR_UPDATE_BOOK然后界面控制類導航顯示提示信息。具體順序圖如圖9所示: 圖9 管理員新書發(fā)布順序圖1.模塊描述:用戶使用該系統(tǒng)時,選擇管理員用戶身份初始化后,在歡迎菜單中選中“書籍信息修改”選項,將來到管理員登入界面,在管理員輸入用戶名、密碼后,系統(tǒng)將提示進行網(wǎng)絡(luò)連接,建立連接后,服務(wù)器端返回響應(yīng)信息,若登入成功系統(tǒng)將顯示二級菜單。在二級菜單中選擇“舊書刪除”,系統(tǒng)將顯示書籍刪除頁面,管理員填寫書籍基本信息后,選擇“刪除”,系統(tǒng)將提示完成信息。對應(yīng)需求如表30,對應(yīng)類如表31顯示: 表31 類表 2.程序設(shè)計思想:界面控制類接到了主菜單傳遞的頁面調(diào)用請求(S
47、HOW_MAN_LOGIN,就調(diào)用顯示管理員用戶登入界面,當接收到用戶輸入用戶名和密碼后,就請求界面控制類發(fā)送網(wǎng)絡(luò)連接請求(MAN_LOGIN,當網(wǎng)絡(luò)連接控制類和服務(wù)器端控制類建立連接后,將請求發(fā)送給服務(wù)器端,服務(wù)器端控制類調(diào)用用戶實體類初始化一個用戶對象,再調(diào)用用戶控制類訪問數(shù)據(jù)庫核對用戶名,如果用戶名錯誤就返回提示信息(MAN_LOGIN_NO_USER;如果用戶名存在,再調(diào)用用戶控制類訪問數(shù)據(jù)庫,核對用戶密碼,如果密碼錯誤,就返回錯誤提示信息(MAN_LOGIN_ERROR_PWD,如果密碼正確,就返回登入成功信息(MAN_LOGIN_SUCCESS,界面控制類收到返回信息后就導航顯示書
48、籍信息修改二級界面,在該頁面選擇操作后就向界面控制器發(fā)送請求(SHOW_MAN_DELBOOK,界面控制類導航書籍信息刪除頁面,當填寫書籍信息后,就向界面控制器發(fā)送網(wǎng)絡(luò)請求(DELBOOK,當網(wǎng)絡(luò)連接控制類和服務(wù)器端控制類建立連接后,將請求發(fā)送給服務(wù)器端,服務(wù)器端控制類調(diào)用書本實體類初始化一個書本對象,再調(diào)用書本控制類判斷該書是否存在,如果不存在,返回提示信息(MAN_NO_HASBOOK,如果存在,書本控制類再判斷該書籍是否被借出,如果被借出,返回提示信息(MAN_ERROR_STATEBOOK,如果沒有借出,書本控制類訪問數(shù)據(jù)庫對書籍表進行刪除字段,并且返回提示信息(MAN_SUCCESS
49、_DELLBOOK / MAN_ERROR_DELLBOOK然后界面控制類導航顯示提示信息。具體順序圖如圖10所示:圖10 管理員舊書刪除順序圖1.模塊描述:用戶使用該系統(tǒng)時,選擇管理員用戶身份初始化后,在歡迎菜單中選中“密碼修改”選項,將來到管理員密碼修改界面,在管理員輸入用戶名、新舊密碼后,系統(tǒng)將提示進行網(wǎng)絡(luò)連接,建立連接后,服務(wù)器端返回響應(yīng)信息,體統(tǒng)將提示管理員用戶是否密碼修改成功。對應(yīng)需求如表32,對應(yīng)類如表33顯示: 2.程序設(shè)計思想:界面控制類接到了主菜單傳遞的頁面調(diào)用請求(SHOW_CHANGE_MANPWD,就調(diào)用顯示管理員用戶密碼修改界面,當接收到用戶輸入用戶名和新舊密碼后,
50、就請求界面控制類發(fā)送網(wǎng)絡(luò)連接請求(CHANGE_MANPWD,當網(wǎng)絡(luò)連接控制類和服務(wù)器端控制類建立連接后,將請求發(fā)送給服務(wù)器端,服務(wù)器端控制類調(diào)用用戶實體類初始化一個用戶對象,再調(diào)用用戶控制類訪問數(shù)據(jù)庫核對用戶名,如果用戶名錯誤就返回提示信息(MAN_CHANGEPWD_NO_USER;如果用戶名存在,再調(diào)用用戶控制類訪問數(shù)據(jù)庫,核對用戶密碼,如果密碼錯誤,就返回錯誤提示信息(MAN_CHANGEPWD_ERROR_PWD,如果密碼正確,就調(diào)用用戶控制類修改數(shù)據(jù)庫中該用戶的密碼,如果修改失敗就返回失敗信息(MAN_CHANGEPWD_FAIL;如果修改完成就返回成功信息(MAN_CHANGEP
51、WD_SUCCESS,客戶端網(wǎng)絡(luò)控制器接受到各種返回信息后,就傳遞給界面控制器類導航各種不同的提示信息顯示界面。具體順序圖請參看讀者用戶密碼修改模塊。1.模塊描述:用戶使用該系統(tǒng)時(無論是讀者還是管理員,在歡迎菜單中選中“書籍討論區(qū)”選項,將來到聊天室歡迎界面,在用戶輸入用戶名,選擇聊天室號后,將進入該聊天室,用戶在聊天室內(nèi)可以和所有用戶聊天,或者可以選擇個別用戶單獨聊天。系統(tǒng)提示進入聊天室的用戶,將顯示退出聊天室用戶。對應(yīng)需求如表34、對應(yīng)類如表35顯示: 2.程序設(shè)計思想:界面控制類接到了主菜單傳遞的頁面調(diào)用請求(SHOW_TALKPAGE/ SHOW_MANTALK,就調(diào)用顯示用戶書籍討
52、論區(qū)歡迎界面,當接收到用戶輸入用戶名和聊天室號后,就請求界面控制類發(fā)送網(wǎng)絡(luò)連接請求(TALKPAGE/ MAN_TALKPAGE,向討論區(qū)網(wǎng)絡(luò)連接控制器類發(fā)送該用戶注冊信息,同時界面控制類調(diào)用討論區(qū)用戶名記錄模式類記錄用戶登入的用戶名,討論區(qū)網(wǎng)絡(luò)連接控制器初始化后,在后臺設(shè)置了討論區(qū)用戶名類表,并且解析客戶端發(fā)送的注冊信息,向客戶端發(fā)送回在線客戶名單類表??蛻粲懻搮^(qū)網(wǎng)絡(luò)連接控制器接收這個列表,當用戶希望私聊時就可以自動更新該列表。當用戶端希望發(fā)送消息時,界面控制類收到請求(SEND_NESSAGE將消息進行封裝,然后討論區(qū)網(wǎng)絡(luò)控連接制器類將消息發(fā)送到服務(wù)器端,討論區(qū)服務(wù)器端消息處理類將發(fā)送的消
53、息進行解封,根據(jù)解封出的不同請求將消息采用單播或者多播的方式發(fā)送給另外的客戶端,客戶端討論區(qū)網(wǎng)絡(luò)連接控制器類接收到消息后將消息解封,然后調(diào)用討論區(qū)修飾類將該條信息顯示在討論區(qū)聊天界面上。當用戶退出時,界面控制類就將用戶退出信息封裝,然后討論區(qū)網(wǎng)絡(luò)連接控制器類將該條退出信息發(fā)送給服務(wù)器端,服務(wù)器端消息處理類將該條退出信息根據(jù)用戶列表,廣播發(fā)送給其他在線用戶接收。具體順序圖如圖11所示: 圖11書籍討論區(qū)順序圖1.模塊描述:用戶使用該系統(tǒng)時(無論是讀者還是管理員,在歡迎菜單中選中“幫助”選項,將來到幫助界面。對應(yīng)需求如表36,對應(yīng)類如表37顯示: 表37 類表 2.程序設(shè)計思想:界面控制類接到了主
54、菜單傳遞的頁面調(diào)用請求(SHOW_HELP/ SHOW_MAN_HELP,就導航到幫助界面,幫助界面實現(xiàn)了一個文本輸入流,將外部文件夾中的文本信息導入到系統(tǒng),顯示在幫助界面上。具體順序圖、流程圖、如下所示:圖 12 幫助順序圖3.3兼容性因為手機模擬器各不相同,雖然在開發(fā)程序的時候使用單一的模擬器進行編寫和測試,可已經(jīng)盡量考慮到這些因素,避免了硬編碼,使用了相對坐標計算來繪圖,盡量減少在其他屏幕大小不同的手機上的影響,保證運行效果3.4打包與混淆EclipseME 插件提供了直接將程序打包成 JAR 的方法,并同時生成與之配合的JAD 文件。如果指定了混淆器的話,它還能將源代碼經(jīng)過混淆后再打包
55、。如圖13,對項目點擊右鍵,選擇J2ME,在展開的下一級菜單中選擇Create Package可以制作普通JAR包,選Create Obfuscated Package可以制作混淆JAR 包(前提是要在EclipseMe選項中設(shè)置好混淆器。生成的JAR和JAD文件將保存在項目文件夾的deployed目錄下。 圖13打包界面截圖Java 程序被編譯后生成的.class 文件是字節(jié)碼文件,使得其很容易被反編譯成 Java 源碼,這讓 Java 編譯出來的東西很不安全?;煜骶褪菫榇硕?經(jīng)過混淆后的程序反編譯出來代碼將變成難以閱讀,增加了代碼被竊用的難度(其實作用有限?;煜闹饕硎菍⒃创a中的長
56、變量名替換成了簡短的字母,這樣帶來的一個副作用是編譯后的.class文件會比原來更小,對于對程序體積要求格的手機來說,這多出來的幾 K 可能至關(guān)重要的?,F(xiàn)在的混淆器除了上面提到的替換變量名外,還會對代碼進行一些優(yōu)化。3.5特殊問題與解決方法問題:在軟件設(shè)計中,書籍討論區(qū)的設(shè)計時,服務(wù)器端存儲用戶列表信息是以一個HASHMAP的數(shù)據(jù)結(jié)構(gòu)存儲的,可是當同討論區(qū)中出現(xiàn)同名用戶時候,原先的用戶列表會被更新,如果使用原有的SendToOne(UserName,Msg函數(shù)發(fā)送消息,導致原來在聊天室的用戶被踢出聊天室、解決辦法:解決辦法:為了保證實現(xiàn)同一聊天室內(nèi)不許出現(xiàn)同名用戶,采用CheckUser(St
57、ring name函數(shù)判定,對于原始用戶不被踢出的解決辦法采用同名重構(gòu)函數(shù)SendToOne(UserSocket,Msg,以用戶套接字端口為發(fā)送目標,保證原始用戶能夠接收到發(fā)送的消息。代碼:synchronized int CheckUser(String name int flag = 0;int total = 0;Set set = list.keySet(; /使用keySet方法獲取所有key值 Iterator it = set.iterator(;while (it.hasNext( /遍歷所有用戶名String user = list.get(it.next(;total+;if (user.equals(name flag = 1;if (total > 3 flag = 2;return flag;synchronized int sendToOne(String name, String content PrintWriter writer = null;Socket socket;Set set = list.keySet(; /使用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園環(huán)境創(chuàng)設(shè)家長參與2025年度合作協(xié)議
- 二零二五年度劇院包場合同-電影院租賃年度文化合作協(xié)議
- 2025年度跨境電商平臺國際人才招聘與派遣合同
- 二零二五年度茶山租賃及茶葉種植與農(nóng)業(yè)觀光旅游開發(fā)合同
- 二零二五年度商業(yè)街房地產(chǎn)招商代理執(zhí)行協(xié)議
- 2025年度金融科技股權(quán)分紅與風險防范協(xié)議
- 二零二五年度健身房浴室共享租賃合同范本
- 二零二五年度物業(yè)公司員工職業(yè)發(fā)展規(guī)劃合同
- 二零二五年度雇主免責協(xié)議書:網(wǎng)絡(luò)安全防護責任免除合同
- 2025年度煙草店店鋪轉(zhuǎn)讓與品牌形象統(tǒng)一化及區(qū)域市場拓展合同
- “雙減”下初中道德與法治分層作業(yè)設(shè)計研究 論文
- 實驗室CNASCMA內(nèi)部審核檢查表
- 護理學概述課程
- 2022年常州工業(yè)職業(yè)技術(shù)學院單招職業(yè)適應(yīng)性測試試題及答案解析
- 第一章《原子結(jié)構(gòu)與性質(zhì)》測試題 高二化學人教版(2019)選擇性必修2
- GB/T 22080-2016信息技術(shù)安全技術(shù)信息安全管理體系要求
- GB/T 13915-2013沖壓件角度公差
- 蹴球-公開課教學設(shè)計
- 瑜伽師地論(完美排版全一百卷)
- 主體結(jié)構(gòu)實體檢測方案
- 電焊工培訓課件
評論
0/150
提交評論