Java基于RFID的景點導(dǎo)覽系統(tǒng)_第1頁
Java基于RFID的景點導(dǎo)覽系統(tǒng)_第2頁
Java基于RFID的景點導(dǎo)覽系統(tǒng)_第3頁
Java基于RFID的景點導(dǎo)覽系統(tǒng)_第4頁
Java基于RFID的景點導(dǎo)覽系統(tǒng)_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、. . . . 理工大學(xué)畢業(yè)設(shè)計(論文)題題 目目 基基于于 R RF FI ID D 的的景景點點導(dǎo)導(dǎo)覽覽系系統(tǒng)統(tǒng)專專 業(yè)業(yè) 軟軟件件工工程程 摘 要隨著移動設(shè)備普與和無線通信技術(shù)的迅猛發(fā)展,無線射頻識別技術(shù)應(yīng)用的圍越來越廣。本文從現(xiàn)實需求出發(fā),設(shè)計一個基于 RFID 的景點導(dǎo)覽系統(tǒng)。J2ME(JAVA 2 MICRO EDITION)是 JAVA 語言三大平臺之一,它主要針對資源受限設(shè)備進(jìn)行應(yīng)用程序的開發(fā)。它將 JAVA 語言的與平臺無關(guān)的特性移植到小型電子設(shè)備上,允許移動無線設(shè)備之間共享應(yīng)用程序。J2EE JAVA2 平臺企業(yè)版(JAVA 2 PLATFORM,ENTERPRISE ED

2、ITION)是一套全然不同于傳統(tǒng)應(yīng)用開發(fā)的技術(shù)架構(gòu),包含許多組件,主要可簡化且規(guī)應(yīng)用系統(tǒng)的開發(fā)與部署,進(jìn)而提高可移植性、安全與再用價值。本文采用這兩種技術(shù)來進(jìn)行基于 RFID 的景點導(dǎo)覽系統(tǒng)的設(shè)計與開發(fā)。論文首先介紹了 J2ME 技術(shù)的一些基本概念與體系結(jié)構(gòu),MIDP 的基本編程方法。然后介紹了 J2ME 的技術(shù)以與 STRUTS 的相關(guān)知識。接著,重點的介紹了基于 RFID 的景點導(dǎo)覽系統(tǒng)的設(shè)計與開發(fā)過程,根據(jù)總體設(shè)計,提出了系統(tǒng)設(shè)計模型。系統(tǒng)分為服務(wù)器端和客戶端,服務(wù)器端由一系列 STRUTS 框架開發(fā)實現(xiàn),客戶端利用開發(fā) MIDLET 實現(xiàn)。服務(wù)器端有兩種用戶:管理員和游客,管理員功能主

3、要是對景點信息的修改、. . . . 標(biāo)簽的管理、景點客流量的統(tǒng)計、游客的旅游日志管理以與客戶端服務(wù)信息管理功能??蛻舳斯δ苤饕遣樵兌ㄎ还δ?、地圖展示、地圖展示、行程規(guī)劃以與隨身貼士功能。本文重點介紹了這些功能的實現(xiàn)與設(shè)計。然后對系統(tǒng)設(shè)計與編碼過程中所遇到的重點難點作了介紹,最后,對本文工作做出了總結(jié),并提出了進(jìn)一步工作的設(shè)想。關(guān)鍵詞:RFID、J2ME、J2EE、STRUTS、框架AbstractAlong with mobile equipment popular and wireless communication technology rapid development, the w

4、ireless radio frequency recognition technology applications scope is getting more and more broad. This article embarks from the realistic demand, designs one based on the RFID scenic spot survey system. J2ME (JAVA 2 MICRO EDITION) is JAVA language one of three big platforms, it mainly aims at the re

5、sources to limit the equipment to carry on the application procedure the development.It the characteristic which has nothing to do with the platform transplants the JAVA language to the miniaturized electronics on, between the permission migration radio equipment rep shares the application procedure

6、.J2EE the JAVA2 platform enterprise version (JAVA 2 PLATFORM, ENTERPRISE EDITION) is a set is completely different in the traditional application development technical construction, contains many modules, mainly may simplify, and the standard application systems development and the deployment, then

7、enhance the probability, the security and use the value again. This article uses these two kind of technologies to carry on based on the RFID scenic spot survey systems design and the development. . . . 3 / 65The paper first introduced J2ME technology some basic concepts and the architecture, the MI

8、DP basic programming method. Then introduced the J2ME technology and the STRUTS related knowledge.Then, the key introduction based on the RFID scenic spot survey systems design and the performance history, according to the system design, proposed the system design model.The system divides into the s

9、erver end and the client side, the server origin a series of STRUTS frame development realizes, the client side use develops MIDLET to realize. The server end has two kind of users: The manager and the tourist, the manager function is mainly to the scenic spot information revision, labels management

10、, the scenic spot passenger capacity statistics, tourists traveling diary management as well as the client side service information management function. The client side function is mainly inquires the localization function, the map demonstration, the map demonstration, the traveling schedule plan as

11、 well as along with the tips function. This article introduced with emphasis these functions realization with designs.Then the key difficulty which meets to the system design and the code process makes said that finally, worked to this article has made the summary, and proposed further worked tentat

12、ive planKeywords:RFID、J2ME、J2EE、struts、Frame. . . . 1 / 65目錄目錄第一章緒論 11.1 課題背景與意義 11.1.1 基于 RFID 的景點導(dǎo)覽系統(tǒng)概述 11.1.2 移動通信技術(shù)的發(fā)展現(xiàn)狀與趨勢 21.1.3 射頻識別系統(tǒng)的定義 21.1.4 選題的目的和意義 21.2 無線射頻識別 RFID31.2.1 RFID 簡介 31.2.2 RFID 組成與工作原理 41.2.3 RFID 的優(yōu)勢 51.3 論文主要工作與結(jié)構(gòu) 5第二章相關(guān)技術(shù) 72.1 J2ME 技術(shù)介紹 72.1.1 Java 技術(shù)的分類 72.1.2 J2ME 的優(yōu)勢

13、 82.1.3 J2ME 的體系結(jié)構(gòu) 82.2 MIDP 的編程方法 112.2.1 J2ME Wireless Toolkit 的安裝 112.2.2 MIDlet 程序的基本結(jié)構(gòu) 112.2.3 MIDlet 的生命周期 132.2.4 MIDlet 應(yīng)用程序開發(fā)流程 142.3 STRUTS開發(fā) 142.3.1 struts 的定義 142.3.2 Struts 的概念和體系結(jié)構(gòu) 152.3.3 struts 配置 162.3.4 struts 的基本元素 172.3.5 struts 的國際化 182.3.6 struts 的特點 18第三章基于 RFID 的景點導(dǎo)覽系統(tǒng)實現(xiàn) 203.

14、1 系統(tǒng)概述 203.2 客戶端功能模塊實現(xiàn) 223.2.1 查詢定位功能 22. . . . 3.2.2 地圖展示功能 243.2.3 行程規(guī)劃功能 313.2.4 旅游黃頁功能 313.2.5 景點介紹功能 323.2.6 隨身貼士功能 363.3 服務(wù)器功能實現(xiàn) 363.3.1 服務(wù)器訪問數(shù)據(jù)庫數(shù)據(jù) 363.3.2 游客登陸注冊 383.3.3 游客訂票服務(wù) 393.3.3 景點查詢功能 413.3.4 景點維護功能 413.3.5 系統(tǒng)設(shè)備管理功能 423.3.6 游客信息管理功能 433.3.7 客流量信息管理功能 453.3.8 服務(wù)信息管理功能 483.4 數(shù)據(jù)庫功能實現(xiàn) 49第

15、四章難點與對策 544.1 STRUTS學(xué)習(xí) 544.2 J2ME 地圖處理 54第五章結(jié)論 565.1 總結(jié) 565.2 展望 56致語 57參考文獻(xiàn) 57. . . . 1 / 65第一章 緒 論1.1 課題背景與意義1.1.1 基于 RFID 的景點導(dǎo)覽系統(tǒng)概述最近幾,RFID(無線射頻識別技術(shù))被廣泛的用在各方面,現(xiàn)在越來越多的移動設(shè)備都提供了無線上網(wǎng)功能,也有越來越多的地方開始設(shè)置無線網(wǎng)絡(luò)基站以提供無線上網(wǎng)服務(wù)。移動設(shè)備與無線網(wǎng)絡(luò)的結(jié)合將帶給生活更多便利。同時,已經(jīng)有很多款移動智能終端提供了 RFID 讀寫器配件,可以方便的將 RFID 技術(shù)和智能終端的無線網(wǎng)絡(luò)服務(wù)相結(jié)合?,F(xiàn)階段,在

16、旅游區(qū)所采用的導(dǎo)覽服務(wù)大概分為如下兩種方式:(1)用錄音帶的語音導(dǎo)覽。它的優(yōu)點是參觀者可自由走動,選擇本身有興趣的展品或展區(qū)參觀學(xué)習(xí)。但由于儲存容量的限制,當(dāng)參觀者想多獲取比較感興趣的展品的一些相關(guān)知識時,其往往無法提供較全面的知識,且互動性不足,加之體積龐大,難吸引小朋友使用。此外,聽障朋友們也無法享受語音導(dǎo)覽的解說方式。(2)解說員導(dǎo)覽方式。它由一名解說員帶領(lǐng)一群參觀者重點式地解說重要的文物或景點,其優(yōu)點為可以即問即答,但是參與的參觀者必須亦步亦趨地跟隨解說員,且須凝神注意聆聽解說,給參觀者在學(xué)習(xí)中造成不便,且解說人員的數(shù)目有限,加之培養(yǎng)專業(yè)解說人員需要花費大量的人事開銷,非常不符合經(jīng)濟效

17、應(yīng)。本文提出使用 RFID 技術(shù)開發(fā)出一套運行在移動終端的導(dǎo)覽系統(tǒng)基于RFID 的景點導(dǎo)覽系統(tǒng)。本系統(tǒng)可以在客戶端通過查看電子閱讀器來選擇相關(guān)景點的圖文聲像的信息,也可以根據(jù)景點客流量以與喜好程度來選擇導(dǎo)覽線路,服務(wù)器端可以由管理員來管理相關(guān)的設(shè)備、游客和景點信息。. . . . 1.1.2 移動通信技術(shù)的發(fā)展現(xiàn)狀與趨勢當(dāng)前,移動、無線技術(shù)領(lǐng)域正處在一個高速發(fā)展的時期,各種創(chuàng)新移動、無線技術(shù)不斷涌現(xiàn)并快速步入商用,移動、無線應(yīng)用市場異常活躍,移動、無線技術(shù)自身也在快速演進(jìn)中不斷革新。在網(wǎng)絡(luò)融合的大趨勢下,3G、WIMAX、WLAN 等各種移動、無線技術(shù)在演進(jìn)中相互融合。在多元融合的大趨勢下,3

18、G、WIMAX、WLAN 等各種無線技術(shù)在競爭中互相借鑒和學(xué)習(xí),涌現(xiàn)出了同時被上述無線技術(shù)采用的新型射頻技術(shù),如 MIMO和 OFDM 技術(shù)等。與此同時,在以 ITU 和 3GPP/3GPP2 為引領(lǐng)的蜂窩移動通信從 3G 到 E3G,再走向 B3G/4G 的演進(jìn)道路上,以與 IEEE 引領(lǐng)的無線寬帶接入從無線個人域網(wǎng)到無線局域網(wǎng)、無線城域網(wǎng),再到無線廣域網(wǎng)的演進(jìn)道路上,都開始增加對方的容,例如:移動通信不斷強化寬帶傳輸性能,無線寬帶接入不斷增強漫游性能以與安全性能。1.1.3 射頻識別系統(tǒng)的定義射頻識別(RADIO FREQUENCY IDENTIFICATION, RFID):俗稱電子標(biāo)簽

19、,是一種非接觸式的自動識別技術(shù),它通過射頻信號自動識別目標(biāo)對象并獲取相關(guān)數(shù)據(jù),識別工作無須人工干預(yù),可工作于各種惡劣環(huán)境。RFID 技術(shù)可識別高速運動物體并可同時識別多個標(biāo)簽, 操作快捷方便。它由標(biāo)簽(TAG)、閱讀器(READER)、天線(ANTENNA)組成。RFID 技術(shù)的基本工作原理:標(biāo)簽進(jìn)入磁場后,接收解讀器發(fā)出的射頻信號,憑借感應(yīng)電流所獲得的能量發(fā)送出存儲在芯片中的產(chǎn)品信息(PASSIVE TAG,無源標(biāo)簽或被動標(biāo)簽),或者主動發(fā)送某一頻率的信號(ACTIVE TAG,有源標(biāo)簽或主動標(biāo)簽);解讀器讀取信息并解碼后,送至中央信息系統(tǒng)進(jìn)行有關(guān)數(shù)據(jù)處理。1.1.4 選題的目的和意義“隨著

20、計算機技術(shù)、無線網(wǎng)絡(luò)通信以與互聯(lián)網(wǎng)技術(shù)飛速發(fā)展,RFID 產(chǎn)業(yè). . . . 3 / 65將在各個領(lǐng)域大放異彩。”,彼得哈若普如是說。RFID 應(yīng)用領(lǐng)域日益擴大,現(xiàn)已涉與到人們?nèi)粘I畹母鱾€方面,并將成為未來信息社會建設(shè)的一項基礎(chǔ)技術(shù)。RFID 可以應(yīng)用于圖書與文檔管理、門禁管理、定位與物體跟蹤、環(huán)境感知和支票防偽等多種應(yīng)用領(lǐng)域。但在旅游業(yè)上的應(yīng)用還僅限于門禁管理。RFID 技術(shù)作為未來最有前途的信息技術(shù)之一,更得到了全世界的廣泛重視,在很短的時間取得了巨大發(fā)展。近兩年,社會各界也越來越重視 RFID 技術(shù)在國的發(fā)展和應(yīng)用。領(lǐng)域的各大企業(yè)紛紛投入到研究、開發(fā)技術(shù)與應(yīng)用的隊伍中來。研究與開發(fā) R

21、FID 導(dǎo)覽系統(tǒng)的目的是為參觀者自動提供個性化和交互式的多媒體信息。參觀者利用帶有 CF RFID 讀寫器的 PDA 讀取景點處的 RFID 標(biāo)簽后,關(guān)于此景點的詳細(xì)數(shù)據(jù)、資料、圖片或者影片等豐富的多媒體導(dǎo)覽資訊馬上顯示出來。RFID 導(dǎo)覽系統(tǒng)讓參觀者可隨興趣,自然地取得景點的導(dǎo)覽資料,給參觀者帶來極大的便利。1.2 無線射頻識別 RFID1.2.1RFID簡介RFID 是一種非接觸式的自動識別技術(shù),它通過射頻信號自動識別目標(biāo)對象并獲取相關(guān)數(shù)據(jù),識別工作無須人工干預(yù)。作為條形碼的無線版本,RFID技術(shù)具有條形碼所不具備的防水、防磁、耐高溫、使用壽命長、讀取距離大、標(biāo)簽上數(shù)據(jù)可以加密、存儲數(shù)據(jù)容

22、量更大、存儲信息更改自如等優(yōu)點,已經(jīng)被世界公認(rèn)為本世紀(jì)十大重要技術(shù)之一,在生產(chǎn)、零售、物流、交通等各個行業(yè)等各個行業(yè)有著廣闊的應(yīng)用前景。利用智能電子標(biāo)簽來標(biāo)識各種物品的一種新的識別技術(shù),其核心是智能電子標(biāo)簽,這種標(biāo)簽根據(jù)無線射頻標(biāo)識原理 RFID(RADIO FREQUENCY IDENTIFICATION SYSTEM)而生產(chǎn),它與讀寫器通過無線射頻信號交換信息,電子標(biāo)簽是未來標(biāo)簽市場的一種終極產(chǎn)品。. . . . 現(xiàn)在,RFID 是 AIDC 領(lǐng)域最熱門的技術(shù),盡管這種技術(shù)已經(jīng)存在發(fā)展了許多年了,但它只有在從本領(lǐng)域眾多的發(fā)明技術(shù)中總結(jié)規(guī)劃出一個技術(shù)標(biāo)準(zhǔn)以后才能得到快速的切實的應(yīng)用,ISO

23、和 AIM(AUTO-ID MANUFACTURES)正在進(jìn)行這方面的工作,相信不久的將來,RFID 會得到很快的發(fā)展。1.2.2 RFID 組成與工作原理(1)標(biāo)簽標(biāo)簽也被稱為電子標(biāo)簽或智能標(biāo)簽,它是存帶有天線的芯片,芯片中存儲有能夠識別目標(biāo)的信息。RFID 標(biāo)簽具有持久性,信息接收傳播穿透性強,存儲信息容量大、種類多等特點。有些 RFID 標(biāo)簽解讀器通過接收標(biāo)簽發(fā)出的無線電波接收讀取數(shù)據(jù)。最常見的是被動射頻系統(tǒng),當(dāng)解讀器遇見 RFID 標(biāo)簽時,發(fā)出電磁波,周圍形成電磁場,標(biāo)簽從電磁場中獲得能量激活標(biāo)簽中的微芯片電路,芯片轉(zhuǎn)換電磁波,然后發(fā)送給解讀器,解讀器把它轉(zhuǎn)換成相關(guān)數(shù)據(jù)。控制計算器就可

24、以處理這些數(shù)據(jù)從而進(jìn)行管理控制。在主動射頻系統(tǒng)中,標(biāo)簽中裝有電池在有效圍活動。支持讀寫功能,目標(biāo)物體的信息能隨時被更新。(2)讀寫器讀寫器分為手持和固定兩種,由發(fā)送器,接收儀,控制模塊和TRANSCEIVER 組成,TRANSCEIVER 和控制計算機或 PLC 連接從而實現(xiàn)它的溝通功能。解讀器也有天線接收和傳輸信息。(3)數(shù)據(jù)傳輸和處理系統(tǒng) 工作原理:解讀器通過接收標(biāo)簽發(fā)出的無線電波接收讀取數(shù)據(jù)。最常見的是被動射頻系統(tǒng),當(dāng)解讀器遇見 RFID 標(biāo)簽時,發(fā)出電磁波,周圍形成電磁場,標(biāo)簽從電磁場中獲得能量激活標(biāo)簽中的微芯片電路,芯片轉(zhuǎn)換電磁波,然后發(fā)送給解讀器,解讀器把它轉(zhuǎn)換成相關(guān)數(shù)據(jù)??刂朴嬎?/p>

25、器就可以處理這些數(shù)據(jù)從而進(jìn)行管理控制。在主動射頻系統(tǒng)中,標(biāo)簽中裝有電池在有效圍活. . . . 5 / 65動。1.2.3 RFID 的優(yōu)勢(1)RFID 通過自動的方式迅速簡便無誤的獲得關(guān)于產(chǎn)品,地點,時間,交易的信息。不用接觸,看見目標(biāo),即使物品被牢固包裝或是環(huán)境不適,也不會影響它的識別功能。這是它有別于條形碼的一大特點。(2)RFID 并不僅僅是代碼,它能夠讀寫數(shù)據(jù),能夠在處理系統(tǒng)中儲存資料,并可以將其連接到 PC 或 PLC 網(wǎng)絡(luò)上。RFID 能夠提高數(shù)據(jù)質(zhì)量,貨物管理,資料持久保存等。(3)RFID 在供貨鏈中的運用能夠提高管理,加強終端對終端的連接。RFID 的運作不需要人工介入,

26、它無線運作,具有讀寫功能。1.3 論文主要工作與結(jié)構(gòu)本文的工作主要包括:(1)學(xué)習(xí)和了解了移動 RFID 相關(guān)概念、理論和設(shè)計方法。(2)分析現(xiàn)階段 RFID 的設(shè)計原理和實現(xiàn)方法。(3)學(xué)習(xí)掌握 SQL SERVER 數(shù)據(jù)庫、服務(wù)器開發(fā)原理與其應(yīng)用,深入學(xué)習(xí)J2EE 與 J2ME 的開發(fā)原理,采用三層結(jié)構(gòu)模型。(4)基于 J2ME 技術(shù),開發(fā)實現(xiàn)一個基于 RFID 的景點導(dǎo)覽系統(tǒng),系統(tǒng)包括三個層次:服務(wù)器端:A)采用 TOMCAT 服務(wù)器作為 SERVLET 的引擎,支持不同類型的應(yīng)用服務(wù)程序。B) 采用 STRUTS 框架設(shè)計和設(shè)計和開發(fā)課題。. . . . 客戶端:A)采用 J2ME 的

27、 CLDC/MIDP 規(guī),通過 協(xié)議向服務(wù)器發(fā)出請求。B)采用多線程技術(shù)和消息隊列處理用戶操作和服務(wù)器消息,有效解決了響應(yīng)與顯示的與時性。數(shù)據(jù)層:A) 采用數(shù)據(jù)庫 SQL SERVER 2000 數(shù)據(jù)。(5)對本文所開發(fā)的系統(tǒng)的重點難點作出了總結(jié)。論文共分 5 章,結(jié)構(gòu)如下:第一章為前言,簡單介紹了當(dāng)前 RFID 應(yīng)用的發(fā)展現(xiàn)狀,RFID 實現(xiàn)的意義和目標(biāo)以與 RFID 的基本理論。第二章主要對景點導(dǎo)覽系統(tǒng)的開發(fā)技術(shù)進(jìn)行了介紹。對 J2ME 技術(shù)、J2EE技術(shù)、MIDP 的編程方法進(jìn)行詳細(xì)的介紹。第三章是本文的重點,詳細(xì)講述了景點導(dǎo)覽系統(tǒng)的實現(xiàn)過程。分別講述了客戶端的實現(xiàn)原理、代碼與圖示,服務(wù)

28、器端的實現(xiàn)原理、代碼與圖示,比較清晰的展現(xiàn)了系統(tǒng)的功能實現(xiàn)。第四章主要是針對在開發(fā)過程中遇到的難點的一個回顧。因為在每個階段都會遇到很多問題、難點,所以在這里列出幾個來重點講解一下,也從側(cè)面來反映系統(tǒng)的開發(fā)過程。第五章是對整個學(xué)習(xí)過程的總結(jié),講述自己在學(xué)習(xí)過程中的心得體會。. . . . 7 / 65第二章相關(guān)技術(shù)2.1 J2ME 技術(shù)介紹2.1.1 Java 技術(shù)的分類圖 21 Java 體系結(jié)構(gòu)JAVA 的最大目標(biāo)和特點,就是“一次編寫,到處運行”的平臺無關(guān)性。但是,正如 SUN 認(rèn)識到的,一套標(biāo)準(zhǔn)無法適應(yīng)各式各樣的需求。因此,JAVA技術(shù)目前共有三套,分別針對不同的平臺的應(yīng)用。JAVA2

29、 PLATFORM STANDARD EDITION ( J2SE,JAVA 標(biāo)準(zhǔn)版 ):針對桌面端的 PC 和工作站的個人和低端商務(wù)應(yīng)用。JAVA2 PLATFORM ENTERPRISE EDITION ( J2EE,JAVA 企業(yè)版 ):針對服務(wù)器端企業(yè)級應(yīng)用,支持 SERVLET、JSP 和 XML 等等。JAVA2 PLATFORM MICRO EDITION ( J2ME, JAVA 移動版 ):針對有限存、顯示和處理能力的設(shè)備,主要是消費電子和嵌入式設(shè)備領(lǐng)域(這實際正是JAVA 語言設(shè)計最初的目標(biāo)領(lǐng)域)。. . . . 2.1.2J2ME 的優(yōu)勢移動設(shè)備 PDA 市場的繁榮發(fā)展造

30、成了五花八門的廠商與品種異常廣泛的設(shè)備例如兩種設(shè)備也許具有一樣的功能當(dāng)實現(xiàn)的方法可能會有相當(dāng)大的區(qū)別例如對 PDA 和手持來說都具有顯示的功能但屏幕的實際尺寸卻有很大的區(qū)別支持的色深也不一樣重復(fù)的開發(fā)工作以與移植的不便性使得開發(fā)成本與開發(fā)難度不斷提高這就使得設(shè)備廠商要求擁有一個統(tǒng)一的開發(fā)平臺2.1.3 J2ME 的體系結(jié)構(gòu) 值得注意的是,JAVA 所宣稱的“一次編譯,到處運行”在這里是不適用的。這種“跨平臺”在某些時候是毫無意義的。在 J2SE 上編譯好的程序在J2ME 上是沒辦法運行的,因為從兩種平臺所支持的類庫到程序的結(jié)構(gòu)都有所不同。所以在設(shè)計 J2ME 應(yīng)用時應(yīng)該充分考慮到這些因素。下圖

31、給出 J2ME 一個總體的構(gòu)架。圖 22 J2ME 一個總體的構(gòu)架. . . . 9 / 65下面我們分別來介紹這三部分:CONFIGURATIONJ2ME 將嵌入式設(shè)備分為兩類:一種是 CDC(CONNECTED DEVICE CONFIGURATION,資源無限設(shè)備),另一種是 CLDC ( CONNECTED LIMITED DEVICE CONFIGURATION,資源受限設(shè)備)。資源受限設(shè)備一般指手機、PDA 這種運算能力有限、電力供應(yīng)依靠電池、網(wǎng)絡(luò)帶寬有限的設(shè)備。而資源無限設(shè)備是相對資源有限設(shè)備來說的,它們一般有充足的電力供應(yīng),如電視機頂盒等。在 CDC 和 CLDC 規(guī)中,又分別

32、定義硬件要滿足的要求。如表 2-1:表 2-1 CLDC 和 CDC 的比較JSR 編號JSR-36JSR-30電源供應(yīng)充足電池供電有限網(wǎng)絡(luò)必須有連接網(wǎng)絡(luò)的能力僅支持有線方式的網(wǎng)絡(luò)連接功能主要應(yīng)用電視機頂盒、高端 PDA etc.手機、雙向?qū)ず魴C、PDA etc.虛擬機CVMKVM支持的ProfileFoundation ProfileMIDPRAM不小于 256KRAM 與 ROM 再加閃存要為 128k512kROM不小于 512KRAM 與 ROM 再加閃存要為 128k512k在規(guī)中所定義的類庫除了 JAVA 標(biāo)準(zhǔn)核心類庫的子集外,也加入了與該類型的設(shè)備特性相符的擴充類庫。整體來說,J

33、2ME 先把所有的嵌入式設(shè)備利用CONFIGURATION 概念化分成兩種類型,與其它 JAVA 版本對于核心類庫與擴充類庫的概念相比較。CLDC 和 CDC 的圍應(yīng)該如圖 23 所示:. . . . 圖 23 CDC、CLDC 的圍PROFILE通常同一個 JAVA 程序在不同的嵌入式設(shè)備上所顯示的用戶界面風(fēng)格不完全一樣。在不同設(shè)備上具體應(yīng)該怎樣顯示就定義在 PROFILE 中。PROFILE 中也定義了程序應(yīng)該如何與用戶或設(shè)備交互(例如,程序的生命周期,如何接受來自用戶的信息)。PROFILE 中定義的擴充類庫是根據(jù)底層 CONFIGURATION 所定義的核心類庫所建立的,為了更符合特殊

34、設(shè)備的需求,PROFILE 會在CONFIGURATION 中的類增加新的方法,或是讓方法拋出新的異常。在 PROFILE中也定義了特定種類嵌入式設(shè)備的最小配備需求。一般情況下 PROFILE 對顯示功能、網(wǎng)絡(luò)功能以與耗電量等相關(guān)需求會比 CONFIGURATION 中的需求要高。建立在 CLDC 上的 PROFILE 有:MIDP (MOBILE INFORMATION DEVICE PROFILE),這個 PROFILE 是針對移動設(shè)備所定義的,如手機、尋呼機等,本文客戶端的實現(xiàn)就是采用MIDP2.0。所以說本系統(tǒng)的客戶端不只是手機,而是所有采用 MIDP2.0 規(guī)的移動設(shè)備。INFORM

35、ATION MODULE PROFILE,是為不需要圖形界面的小型設(shè)備定制的。. . . . 11 / 65另外各個手機生產(chǎn)廠商也制定了自己的各種 PROFILES。OEM EXTENSIONS/ OPTIONAL PACKAGE。除了 CONFIGURATION 和 PROFILE之外,在 J2ME 規(guī)中還定義了廠商選擇性實現(xiàn)包。廠商選擇性實現(xiàn),通常是一些本身具有獨立價值的 API,廠商可以依照自己的需求,選擇性的實現(xiàn)其中某些 OPTIONAL PACKAGES 規(guī)。廠商選擇性實現(xiàn)包與 CLDC 和 MIDP 的關(guān)系如下圖 2-4 所示:圖 24 CLDC 和 MIDP 的關(guān)系2.2 MID

36、P 的編程方法2.2.1 J2ME Wireless Toolkit 的安裝MIDP 應(yīng)用程序的外,還必須借助一些特殊的開發(fā)工具和程序庫。因此必須要額外安裝 J2ME WIRELESS TOOLKIT(簡稱 WTK)。您可以該站點:JAVA.SUN./PRODUCTS/SJWTOOLKIT/DOWNLOAD-2_2_1.HTML,下載該軟件的最新版本 J2ME WIRELESS TOOLKIT2.2.1。如果您已經(jīng)配置好 JDK,只需點擊安裝文件就可以迅速安裝 WTK。. . . . 2.2.2 MIDlet 程序的基本結(jié)構(gòu)在 MIDP 中定義了一種新的應(yīng)用程序模型 MIDLET。MIDLET

37、 是一個可以執(zhí)行的應(yīng)用程序與基本單位,它繼承自 JAVAX.MICROEDITION.MIDLET. MIDLET,被 JAM (JAVA APPLICATION MANAGER) 管理,同時 MIDLET 可以和JAM 通信。通知應(yīng)用管理軟件自己狀態(tài)的變化,通常是通過方法NOTIFYDESTROYED()和 NOTIFYPAUSED()實現(xiàn)的。MIDLET 繼承自 JAVAX.MICROEDITION.MIDLET. MIDLET。該類中定義了三個抽象方法 STARTAPP(), PAUSEAPP()和 DESTROYAPP()。因此,我們編寫的程序必須重寫這三個方法。一個 MIDLET 應(yīng)

38、用程的基本程序結(jié)構(gòu)如下:import javax.microedition.midlet.*;import javax.microedition.lcdui.*; public class HelloWorld extends MIDlet implements CommandListener private Command exitCommand; private TextBox tb; public HelloWorld()exitCommand =new Command(Exit,Command.EXIT,1); tb =new TextBox(Hello MIDlet,Hello,Wo

39、rld!,15,0); tb.addCommand(exitCommand); tb.setCommandListener(this); protected void startApp() Display.getDisplay(this).setCurrent(tb); protected void pauseApp() . . . . 13 / 65protected void destroyApp(boolean u) public void commandAction(Command c,Displayable d) if (c =exitCommand) destroyApp(fals

40、e); notifyDestroyed(); 2.2.3 MIDlet 的生命周期MIDLET 有三個狀態(tài),分別是 PAUSE, ACTIVE 和 DESTROYED。在啟動一個MIDLET 的時候,應(yīng)用管理軟件會首先創(chuàng)建一個 MIDLET 實例并使得他處于PAUSE 狀態(tài),當(dāng) STARTAPP()方法被調(diào)用的時候 MIDLET 進(jìn)入 ACTIVE 狀態(tài),也就是所說的運行狀態(tài)。在 ACTIVE 狀態(tài)調(diào)用 DESTROYAPP(BOOLEAN UNCONDITIONAL)或者 PAUSEAPP()方法可以使 MIDLET 進(jìn)入 DESTROYED 或者PAUSE 狀態(tài)。事實上,當(dāng) DESTROY

41、APP()方法被調(diào)用的時候,AMS 通知 MIDLET進(jìn)入 DESTROYED 狀態(tài)。在 DESTROYED 狀態(tài)的 MIDLET 必須釋放了所有的資源,并且保存數(shù)據(jù)。如果 UNCONDITIONAL 為 FALSE 的時候,MIDLET 可以在接到通知后,拋出 MIDLETSTATECHANGEEXCEPTION 而保持在當(dāng)前狀態(tài)。如果設(shè)置為TRUE。的話,則必須立即進(jìn)入 DESTROYED 狀態(tài)。圖 2-5 說明了 MIDLET 狀態(tài)改. . . . 變情況。圖 25 MIDlet 生命周期2.2.4 MIDlet 應(yīng)用程序開發(fā)流程圖 2-7 所示是標(biāo)準(zhǔn)的 JAVA 手機程序的開發(fā)流程。首

42、先編寫代碼,然后編譯源代碼為 CLASS 文件。編譯好的 CLASS 文件還要經(jīng)過預(yù)先審核才能在 KVM上運行。根據(jù) MIDP 規(guī),一個程序最終必須經(jīng)過打包合成,才能被 JAM 順利加載運行。所以最后利用 JDK 附的 JAR.EXE 這個包裝工具產(chǎn)生 JAR 文件。至此一個 MIDLET 應(yīng)用程序的開發(fā)就完成了。一個完整的 MIDLET 應(yīng)用程序是由兩個文件組成:應(yīng)用程序主體(JAR 文件,ZIP 壓縮文件)和應(yīng)用程序描述文件(JAD 文件,純文本文件)。JAD 文件有兩個作用:一是用戶在下載 MIDLET 前可以先下載 JAD 文件,JAD 文件一般體積比較小,看過 JAD 文件后決定是否

43、下載應(yīng)用程序,這樣可以節(jié)省費用;二是在 JAD 文件中可以加入證書(CERTIFICATE),以確保通過網(wǎng)絡(luò)傳輸?shù)膽?yīng)用程序在傳輸過程中沒有被篡改。2.3 struts 開發(fā)2.3.1struts的定義框架(FRAMEWORK)是可重用的,半成品的應(yīng)用程序,可以用來產(chǎn)生專門的定制程序JOHNSON??蚣芟蜷_發(fā)人員提供一系列具有以下特征的骨架組件:(1) 已經(jīng)知道它們在其它程序上工作的很好;(2) 它們隨時可以在下一個項目中使用;(3) 它們可以被組織的其它團隊使用;STRUTS 框架是基于 MODEL 2 的架構(gòu)。它提供一個控制器 SERVLET 來處. . . . 15 / 65理導(dǎo)航流和一些

44、特殊類來幫助數(shù)據(jù)訪問。隨框架也提供一個豐富的標(biāo)簽庫,以使 STRUTS 易于和 JSP 一起使用。2.3.2Struts 的概念和體系結(jié)構(gòu)STRUTS 有其自己的控制器(CONTROLLER),同時整合了其他的一些技術(shù)去實現(xiàn)模型層(MODEL)和視圖層(VIEW)。在模型層,STRUTS 可以很容易的與數(shù)據(jù)訪問技術(shù)相結(jié)合,包括 E,JDBC 和 OBJECT RELATION BRIDGE。在視圖層,STRUTS 能夠與 JSP, VELOCITY TEMPLATES,XSL 等等這些表示層組件相結(jié)合。STRUTS FRAMEWORK 是 MVC 模式的體現(xiàn),下面我們就從分別從模型、視圖、控制

45、器來看看 STRUTS 的體系結(jié)構(gòu)(ARCHITECTURE)。下圖顯示了 STRUTS FRAMEWORK 的體系結(jié)構(gòu)響應(yīng)客戶請求時候,各個部分工作的原理:圖26 struts的體系結(jié)構(gòu)從視圖角度(VIEW)首先,STRUTS 提供了 JAVA 類 ORG. APACHE.STRUTS.ACTION.ACTIONFORM,JAVA 開發(fā)者將該類細(xì)分來創(chuàng)建表單BEAN。在運行時,該 BEAN 有兩種用法:(1)當(dāng) JSP 準(zhǔn)備相關(guān)的 HTML,表單以進(jìn)行顯示時,JSP 將訪問該 BEAN(它保存要放入表單中的值)。那些值是從業(yè)務(wù)邏輯或者是從先前的用戶輸入來提. . . . 供的。(2)當(dāng)從 W

46、EB 瀏覽器中返回用戶輸入時,該 BEAN 將驗證并保存該輸入以供業(yè)務(wù)邏輯或(如果驗證失敗的話)后續(xù)重新顯示使用。其次,STRUTS 提供了許多定制 JSP 標(biāo)記,它們的使用簡單,但是它們在隱藏信息方面功能強大。例如,除了 BEAN 名稱和給定 BEAN 中每個段的名稱之外,頁面設(shè)計者不需要知道有關(guān)表單 BEAN 的更多信息。從模型角度(MODEL)STRUTS 雖然不直接有助于模型開發(fā)。在 STRUTS 中,系統(tǒng)模型的狀態(tài)主要由 ACTIOMFORM BEAN 和值對象體現(xiàn)。從控制器角度(CONTROLLER)在 STRUTS FRAMEWORK 中, CONTROLLER 主要是 ACTI

47、ONSERVLET,但是對于業(yè)務(wù)邏輯的操作則主要由 ACTION、ACTIONMAPPING、ACTIONFORWARD 這幾個組件協(xié)調(diào)完成(也許這幾個組件,應(yīng)該劃分到模型中的業(yè)務(wù)邏輯一塊)。其中,ACTION 扮演了真正的控制邏輯的實現(xiàn)者,而 ACTIONMAPPING 和ACTIONFORWARD 則指定了不同業(yè)務(wù)邏輯或流程的運行方向。2.3.3 struts 配置(1)STRUTS 可以不需要安裝(2)拷貝 STRUTS LIB 下的所有的 JAR 包到 WEB-INF/LIB 下(3)修改 WEB.XML 文件,配置 ACTIONSERVLET ACTION ORG.APACHE.ST

48、RUTS.ACTION.ACTIONSERVLET CONFIG. . . . 17 / 65 /WEB-INF/STRUTS-CONFIG.XML DEBUG 3 DETAIL 3 0 ACTION *.DO (4)配置 STRUTS-CONFIG.XML是 STRUTS 配置文件的根元素,和它對應(yīng)的配置類為ORG.APACHE.STRUTS.CONFIG.MODULECONFIG。它的 DTD 定義如下:。在 STRUTS 配置文件中,必須按以上 DTD 指定. . . . 2.3.4struts 的基本元素視圖:視圖是由一組 JSP 文件組成。視圖和控制器與模型之間交互,并為模型提供用戶

49、界面。模型:模型表示應(yīng)有程序的狀態(tài)和業(yè)務(wù)邏輯。業(yè)務(wù)邏輯常由 E 或JAVABEAN 組件實現(xiàn)。在 MVC 應(yīng)用程序中,模型層通常是最大最重要的部分,它負(fù)責(zé)保存事務(wù)邏輯代碼和數(shù)據(jù)庫訪問代碼;模型是應(yīng)用程序的核心。因此,模型決定了應(yīng)用程序的功能??刂破鳎嚎刂破饔?ACTIONSERVLET 類和 ACTION 類實現(xiàn)。業(yè)務(wù)邏輯的操作主要由 ACTION 實現(xiàn)。ACTIONMAPPING、ACTIONFORWARD 這幾個組件協(xié)調(diào)完成。ACTION 扮演了真正的控制邏輯的實現(xiàn)者。ACTIONSERVLET 繼承自JAVAX.SERVLET. . SERVLET 類。ACTIONSERVLET 主要負(fù)

50、責(zé)將的客戶請求信息組裝后,根據(jù)配置文件的指定描述,轉(zhuǎn)發(fā)到適當(dāng)?shù)奶幚砥靼凑誗ERVELT 的標(biāo)準(zhǔn),所有的 SERVLET 必須在 WEB 配置文件(WEB.XML)聲明。同樣,ACTOINSERVLET 必須在 WEB APPLICATION 配置文件(WEB.XML)中描述。2.3.5 struts 的國際化STRUTS 允許將不同語言的文字寫在多個資源文件中,每個資源對應(yīng)一種語言,而在 JSP 頁面上則通過 STRUTS 標(biāo)簽來顯示文字,該標(biāo)簽可以根據(jù)瀏覽器的當(dāng)前語言設(shè)置確定從對應(yīng)的語種資源文件中取出字符串,顯示在頁面上。資源文件的存放目錄可以是/WEB-INF/CLASSES/下的任意目錄

51、,為了便于管理 ,建議在/WEB-INF/ CLASSES/下建立目錄 RESOURCES,將所有的資源文件都放在該目錄下。STRUTS 通過配置文件 STRUTS-CONFIG.XML 配置資源文件的所在位置。2.3.6 struts 的特點(1) STRUTS 不僅是線程安全(THREAD- D-DEPENDENT)的。. . . . 19 / 65(2) ACTIONFORM BEAN 最小化子類代碼并縮短子類層次。(3) STRUTS 標(biāo)簽庫提供通用功能。(4) STRUTS 組件對應(yīng)用來說都是可重用的。(5) STRUTS 是輕量型架構(gòu)。(6) STRUTS 是標(biāo)準(zhǔn)兼容的。(7) S

52、TRUTS 是開源的,具有良好的文檔。. . . . 第三章 基于 RFID 的景點導(dǎo)覽系統(tǒng)實現(xiàn)3.1 系統(tǒng)概述本系統(tǒng)采用 B/S 模式開發(fā),并且詳細(xì)設(shè)計了服務(wù)器端和客戶端的功能模塊,如圖 3-1 所示:圖 3-1 系統(tǒng)功能模塊結(jié)構(gòu)從圖中可以看出,系統(tǒng)為三層結(jié)構(gòu):數(shù)據(jù)層、服務(wù)器層、客戶層。服務(wù)器端實現(xiàn)管理員功能,游客功能;客戶端實現(xiàn)查詢定位、地圖展示、行程規(guī)劃、旅游黃頁、景點介紹、隨身貼士等功能。使用移動終端的導(dǎo)覽示意圖如圖 3-2 所示,網(wǎng)絡(luò)拓?fù)淙鐖D 3-3 所示。. . . . 21 / 65eWLAN媒體庫展品RFID DBWeb Browser游客介紹/推薦服務(wù)器游客日志3-2 使用移

53、動終端的導(dǎo)覽示意圖3-2 RFID 網(wǎng)絡(luò)結(jié)構(gòu)示意圖. . . . 3.2 客戶端功能模塊實現(xiàn)系統(tǒng)功能模塊共分為六塊:查詢定位、地圖展示、行程規(guī)劃、旅游黃頁、景點介紹、隨身貼士。3.2.1 查詢定位功能J2ME 手機查詢定位功能分為三種,定點查詢、模糊查詢和類別查詢。主要是通過客戶端向服務(wù)器發(fā)送查詢請求,通過服務(wù)器處理向客戶端返回相應(yīng)信息的地圖。如圖 3-2 所示:定點查詢:通過輸入所熟悉的游客的標(biāo)簽 Id 號,系統(tǒng)連接服務(wù)器,服務(wù)器返回該標(biāo)簽持有者所在的位置,以與該位置的景點詳細(xì)信息。模糊查詢:輸入景點的代號(拼音首字母) ,系統(tǒng)連接服務(wù)器,服務(wù)器根據(jù)景點代號返回相應(yīng)的景點的位置信息。類別查詢

54、:根據(jù)景點類別,服務(wù)器返回同一類別的景點的詳細(xì)信息。圖 3-4 查詢定位實現(xiàn)連接 的代碼段:public class CommHandler private String URL;. . . . 23 / 65 public CommHandler(String URL) this.URL = URL; /發(fā)送消息 public String sendMessage(String message) throws IOException Connection Conn; DataInputStream input; DataOutputStream output; String result;

55、try Conn = open(); output = this.openDataOutputStream( Conn); output.writeUTF(message); output.close(); input = this.openDataInputStream( Conn); result = input.readUTF(); System.out.println(result); closeConnection( Conn,input,output); return result; finally /打開連接 public Connection open() throws IOE

56、xception try Connection connection = ( Connection) Connector.open(URL); connection.setRequestProperty(User-Agent, System .getProperty(files);. . . . connection.setRequestProperty(Content-Type, application/octet-stream); connection.setRequestMethod( Connection.POST); return connection

57、; catch (IOException ioe) throw ioe; /打開數(shù)據(jù)連接 private DataInputStream openDataInputStream( Connection conn) throws IOException int code = conn.getResponseCode(); if (code = Connection. _OK) return conn.openDataInputStream(); else throw new IOException(); 3.2.2 地圖展示功能本系統(tǒng)對地圖實行放大縮小和漫游等操作,并且可以定位到相應(yīng)的景點上。對

58、于圖片的放大縮小,簡單的來說就是圖像的變形變換,就是把源圖像每個點坐標(biāo)通過變形運算轉(zhuǎn)為目標(biāo)圖像相應(yīng)點的新坐標(biāo),但是這樣會導(dǎo)致一個問題就是目標(biāo)點的坐標(biāo)通常不會是整數(shù)。所以在做放大變換時,需要計算生成沒有被映射到的點;而在縮小變換時,需要刪除一些點。這樣,最簡單. . . . 25 / 65的辦法就是插值算法:“最近鄰域法” 。顧名思義,就是把非整數(shù)坐標(biāo)作一個四舍五入,取最近的整數(shù)點。而圖片的漫游功能則是根據(jù)按鍵來選擇,設(shè)計一個方法來根據(jù)按鍵的不同設(shè)置 x 、y 坐標(biāo)的變換。如圖 3-3 所示: (原圖) (縮小 50%) (放大 50%)圖 3-5 地圖的放大縮小功能/實現(xiàn)地圖縮放功能的代碼段:

59、插值算法private Image ZoomImage(Image srcImg, int desW, int desH) int srcW = srcImg.getWidth(); /原始圖像寬 int srcH = srcImg.getHeight(); /原始圖像高 /計算插值表 int tabY = new intdesH; int tabX = new intdesW; int sb = 0; int db = 0; int tems = 0; int temd = 0; int distance = srcH desH ? srcH : desH; for (int i= 0; i

60、 distance) tems -= distance; sb+; if (temd distance) temd -= distance; db+; sb = 0; db = 0; tems = 0; temd = 0; distance = srcW desW ? srcW : desW; for (int i = 0; i distance) tems -= distance; sb+; if (temd distance) temd -= distance; db+; /生成放大縮小后圖形像素 buf . . . . 27 / 65 Image desImg = Image.creat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論