面對(duì)不斷攀升的手機(jī)銷(xiāo)售數(shù)字,全球超過(guò)1億部的J2ME的手機(jī)格外引人注目。J2ME設(shè)備的增加為手機(jī)網(wǎng)絡(luò)運(yùn)營(yíng)商和應(yīng)用開(kāi)發(fā)商提供了擴(kuò)展其服務(wù)的好機(jī)會(huì)。用戶將從這種形勢(shì)中獲益,他們可以選擇眾多獨(dú)立于蜂窩網(wǎng)絡(luò)運(yùn)營(yíng)商的應(yīng)用提供商。
人們通常隨時(shí)攜帶手機(jī),如此一來(lái),這些手機(jī)就可以很好的被用來(lái)做定位服務(wù),并通過(guò)一個(gè)地圖服務(wù)客戶端提供空間信息。雖然目前有許多地圖服務(wù)可用于手機(jī),但這些服務(wù)大都基于用戶識(shí)別模塊( SIM )工具或無(wú)線應(yīng)用協(xié)議(WAP)的。這些標(biāo)準(zhǔn)的使用界面往往不夠豐富和友好。另一方面,基于J2ME的設(shè)備高度支持交互式應(yīng)用,支持特定設(shè)備的自定義設(shè)置。因此開(kāi)發(fā)ArcIMS的無(wú)線地圖瀏覽器是實(shí)現(xiàn)這一類(lèi)型交互式應(yīng)用的理想辦法。
J2ME設(shè)備的缺點(diǎn)
當(dāng)然,與個(gè)人電腦相比,大多數(shù)的J2ME設(shè)備功能相當(dāng)有限。最明顯的是:
·顯示器小(單色96×56,彩色128×128 )。
·處理能力低。
·內(nèi)存有限。通常提供不超過(guò)64 KB內(nèi)存供應(yīng)用代碼使用,另外提供200KB給應(yīng)用運(yùn)行時(shí)使用。
·網(wǎng)絡(luò)帶寬窄,延遲時(shí)間長(zhǎng)。
·用戶界面有限(UI),輸入設(shè)備(手機(jī)及其他無(wú)線設(shè)備沒(méi)有普通鍵盤(pán)和鼠標(biāo))。
這些限制要求ArcIMS開(kāi)發(fā)的J2ME客戶端必須具有精妙的設(shè)計(jì),以保證應(yīng)用的完整無(wú)誤,在該框架內(nèi)運(yùn)行并向用戶提供多要素服務(wù)。
J2ME客戶端和ArcIMS 服務(wù)器之間的通訊
實(shí)現(xiàn)基于J2ME的ArcIMS客戶端的關(guān)鍵是無(wú)線客戶端和服務(wù)器之間的通訊。ArcIMS有一個(gè)非常強(qiáng)大的基于XML的通信協(xié)議ArcXML。但不幸的是,J2ME設(shè)備通常沒(méi)有足夠動(dòng)力和內(nèi)存處理XML通訊,這種協(xié)議也就成為開(kāi)發(fā)J2ME客戶端的阻礙。當(dāng)前J2ME設(shè)備的XML解析器消耗了很多本可以用到應(yīng)用本身的內(nèi)存。此外,大尺寸的XML消息也是一個(gè)大缺點(diǎn)。
為克服這些問(wèn)題,作者設(shè)計(jì)了MultiProtocol二進(jìn)制協(xié)議,專門(mén)用于地圖瀏覽器和服務(wù)器之間的通信。該協(xié)議通過(guò)定義一套可相互發(fā)送的消息實(shí)現(xiàn)客戶端與服務(wù)器的通信。該協(xié)議包含以下消息:
·MapMessage——用于一定范圍和圖像大小的地圖請(qǐng)求和包含地圖的返回
·IdentifyMessage——用于一個(gè)給定坐標(biāo)的要素識(shí)別請(qǐng)求和包括識(shí)別要素的返回
·MetadataServiceMessage——用于獲取地圖服務(wù)器上的可利用服務(wù)信息
MultiProtocol還可以包括許多其他的定義消息。目前完成的有FeaturemMessage,用來(lái)獲取一定范圍內(nèi)的要素信息;CrossStreetMessage,用來(lái)獲取街道交叉點(diǎn)的位置識(shí)別。消息之間也可以相互組合(例如,CrossStreetMessage可包括MapMessage)。
為最大限度地利用的通訊通道,作者還設(shè)計(jì)該協(xié)議能夠在單一的請(qǐng)求中發(fā)送或返回一個(gè)或多個(gè)信息。舉例來(lái)說(shuō),客戶端可在單一的請(qǐng)求中發(fā)送MapMessage和FeatureMessage消息,地圖服務(wù)器處理兩個(gè)消息,并返回MapMessage消息的地圖圖像和FeatureMessage消息的可利用要素信息,這兩個(gè)信息是同時(shí)返回。
ArcIMS作為J2ME客戶端的服務(wù)器
ArcIMS不支持這一二進(jìn)制協(xié)議,因此需要中間件翻譯MultiProtocol協(xié)議的請(qǐng)求到ArcXML和ArcXML對(duì)MultiProtocol的服務(wù)器返回。幸運(yùn)的是,利用ArcIMS的JavaConnector庫(kù),可以通過(guò)定制Java類(lèi)(即中間件)來(lái)實(shí)現(xiàn)這一功能。中間件增強(qiáng)了標(biāo)準(zhǔn)版ArcIMS的功能,將更多的服務(wù)提供給基于J2ME的無(wú)線客戶端。中間件的目的是使每個(gè)MultiProtocol消息類(lèi)型被自己的服務(wù)處理。例如,當(dāng)手機(jī)通過(guò)MapMessage消息發(fā)送一個(gè)地圖請(qǐng)求,中間件觸發(fā)MapMessage服務(wù),然后從JavaConnector中啟動(dòng)相應(yīng)的對(duì)象和方法,生成地圖圖像,并通過(guò)MapMessage將其返回到手機(jī)。方案結(jié)構(gòu)如圖1所示。
圖1:應(yīng)用框架
中間件被封裝為Java 2 Enterprise Edition ( J2EE)的Servlet,運(yùn)行在基于Java Servlet技術(shù)的web服務(wù)器上。客戶端使用J2ME的MIDP(Mobile Information Device Profile ),而服務(wù)器使用基于J2EE的應(yīng)用程序接口(API)。因?yàn)榭蛻魴C(jī)和服務(wù)器都使用Java編寫(xiě),生成同一個(gè)MultiProtocol來(lái)提供消息處理代碼和協(xié)議,所以MultiProtocol的一個(gè)重要特點(diǎn)就是能更快更容易地開(kāi)發(fā)額外服務(wù)??蛻舳瞬荒苤苯酉蚍?wù)器發(fā)送任何消息,反之亦然,這就有效地減少了可能的錯(cuò)誤狀態(tài)。
ArcIMS的J2ME地圖客戶端
移動(dòng)地圖瀏覽器(MEx)是面向能夠連接互聯(lián)網(wǎng)的小型Java設(shè)備的一個(gè)簡(jiǎn)單地圖瀏覽器,如手機(jī)等。盡管應(yīng)用大小限制為64KB,通常這些設(shè)備的功能比較有限,但這個(gè)J2ME的地圖客戶端包括了一般地圖瀏覽器的所有重要功能,用戶可以選擇任意地圖服務(wù)器,移動(dòng)顯示的地圖,縮小與放大,識(shí)別地圖上的對(duì)象,查看重要要素的地圖小貼士。MEx能使用名字查找道路交叉點(diǎn)位置。顯示的地圖也可以保存為一個(gè)書(shū)簽,用戶可以輕松的返回和繼續(xù)瀏覽。如果設(shè)備有一個(gè)彩色的高分辨率顯示屏,J2ME的地圖客戶端將完美的替代基于HTML的ArcIMS地圖瀏覽器。
即將推出的MIDP 2.0 和Location API for J2ME
盡管當(dāng)前的技術(shù)已經(jīng)能夠建立可行的手機(jī)地圖瀏覽器應(yīng)用,也必須考慮無(wú)線設(shè)備領(lǐng)域的最新技術(shù)進(jìn)展。目前,有兩項(xiàng)新技術(shù)值得一提:移動(dòng)信息設(shè)備模式Mobile Information Device
MIDP 2.0是移動(dòng)設(shè)備的一個(gè)新模式,已被嵌入到幾種新設(shè)備(例如,諾基亞6600,摩托羅拉A760)。[模式是一個(gè)電子編程芯片的J2ME API。更多關(guān)于J2ME信息,見(jiàn)所附文章"What Is J2ME?"] 這個(gè)模式包括新的功能,如用戶界面增強(qiáng),能夠獲得進(jìn)入網(wǎng)絡(luò)的消息,并通過(guò)HTTPS支持加密通信。訪問(wèn)java.sun.com/products/midp/獲取更多MIDP 2.0信息。
Location API for J2ME是作為J2ME的一個(gè)可選包開(kāi)發(fā)的。API開(kāi)發(fā)由Nokia公司牽頭,參加的公司有:Motorola, Cisco, Sun, IBM, ESRI, Symbian, and Vodafone。Location API使設(shè)備得到當(dāng)前位置等有關(guān)信息,但它沒(méi)有指定用哪一種方法來(lái)確定位置。例如,可以利用如GPS的衛(wèi)星方法,蜂窩網(wǎng)絡(luò)方法,藍(lán)牙的近程定位方法。開(kāi)發(fā)也可能組合上述幾種方法以取得最佳效果。更多有關(guān)信息可訪問(wèn)jcp.org/en/jsr/detail?id=179。作者認(rèn)為未來(lái)這兩種技術(shù)將集成到大多數(shù)無(wú)線設(shè)備中,使其成為更具吸引力的空間信息系統(tǒng)客戶端。
總結(jié)
J2ME無(wú)線設(shè)備的普及,以及人們通常隨時(shí)攜帶無(wú)線設(shè)備的事實(shí),使J2ME平臺(tái)成為開(kāi)發(fā)空間客戶端軟件的一個(gè)很好選擇。
上述具備空間屬性的J2ME客戶端可以很容易地應(yīng)用到現(xiàn)在的大多數(shù)手機(jī)和個(gè)人數(shù)字助理( PDA )設(shè)備中,這樣就很好的補(bǔ)充了標(biāo)準(zhǔn)ArcIMS客戶端的應(yīng)用,例如ArcExplorer或基于HTML的地圖瀏覽器。
{{item.content}}