之一:WAP技術(shù)和開(kāi)發(fā)要點(diǎn)
移動(dòng)設(shè)備(諸如智能電話和PDA)正在被充分應(yīng)用到企業(yè)應(yīng)用架構(gòu)之中。這種想法最初是逐漸潛入人心的,但是發(fā)展趨勢(shì)卻顯而易見(jiàn):企業(yè)用戶正在將移動(dòng)設(shè)備運(yùn)用到日常工作當(dāng)中。這就是結(jié)構(gòu)設(shè)計(jì)者在勾畫(huà)應(yīng)用于整個(gè)企業(yè)的程序結(jié)構(gòu)時(shí)需要考慮將Java運(yùn)用到電話中(甚至給手機(jī)配備基本的上網(wǎng)功能)的原因。
基于Wireless Application Protocol (WAP)技術(shù)的具有瀏覽網(wǎng)頁(yè)功能的手機(jī)在北美和歐洲一帶逐漸流行起來(lái)。WAP是由無(wú)線應(yīng)用協(xié)定論壇(the WAP Forum)發(fā)展并流傳開(kāi)來(lái)的,該論壇是由一群無(wú)線和通訊產(chǎn)業(yè)的公司組成,發(fā)布了能夠在無(wú)線設(shè)備上所使用Web內(nèi)容和應(yīng)用的“產(chǎn)業(yè)標(biāo)準(zhǔn)” 規(guī)范。于近期被認(rèn)可的WAP版本是2.0版,但要到2003年我們才可能看到支持該版本的手機(jī)批量問(wèn)世。目前,WAP1.1和WAP1.2.1版本是最為流行的。
WAP開(kāi)發(fā)要點(diǎn):
在企業(yè)Web應(yīng)用程序中將諸如電話和PDA等基于WAP的設(shè)備作為最終用戶。
雖然通過(guò)使用HTTP和HTML等著名的協(xié)議會(huì)使WAP2.0開(kāi)發(fā)更容易些,但近期內(nèi)我們?nèi)孕枰訵AP1.x為途徑進(jìn)行開(kāi)發(fā)。
編寫(xiě)服務(wù)器端代碼使其可以生成HTML和WML,同時(shí)也要考慮屏幕大小和數(shù)據(jù)流量。
雖然有可用的代碼轉(zhuǎn)換器及HTML和WML間的轉(zhuǎn)換器,但很少能夠?qū)⒃O(shè)計(jì)漂亮的HTML頁(yè)面轉(zhuǎn)換成同樣漂亮WML頁(yè)面。你需要有特殊設(shè)計(jì)的中間件或使用系統(tǒng)自帶的XML/XSL解決方法。
WAP Forum 在設(shè)計(jì)1.x版本的時(shí)候是經(jīng)過(guò)深思熟慮的,但它和我們熟知和喜愛(ài)的3W協(xié)議 (比如HTTP, SSL 和HTML)并不兼容。WAP1.x堆棧被定義為五層,自底向上依次是:WDP (Wireless Datagram Protocol), WTLS (Wireless Transport Layer Security), WTP (Wireless Transaction Protocol), WSP (Wireless Session Protocol), 和 WAE (Wireless Application Environment,包括 Wireless Markup Language 或 WML, 以及 WMLScript )。每一層都和3W堆棧層面大致吻合:WDP->IP, WTP->TCP, WTLS->SSL/TLS, WSP->HTTP, 以及WML->HTML.
2002年,WAP Forum引入3W協(xié)議并將其加入WAP堆棧當(dāng)中。如今WAP2.0開(kāi)發(fā)者能夠象使用WAP 1.x協(xié)議一樣運(yùn)用TCP/IP, HTTP和SSL, 以WAP2.0電話為目標(biāo)進(jìn)行開(kāi)發(fā)。雖然現(xiàn)在難以確定這種雙向方法是否可行,這種做法無(wú)疑使WAP與World Wide Web Consortium 和IETF( Internet Engineering Task Force)的建議和標(biāo)準(zhǔn)更好的同步。WAP協(xié)議和3W協(xié)議的合并將很可能使無(wú)線Web應(yīng)用更容易投入使用,但是如何設(shè)計(jì)一種可以良好運(yùn)用于大或小的 form factors的程序顯示還是具有一定的挑戰(zhàn)性的。Web設(shè)計(jì)師不得不用一種不同的方法在小型設(shè)備上進(jìn)行頁(yè)面設(shè)計(jì),同時(shí)平衡移動(dòng)設(shè)備的優(yōu)點(diǎn)(諸如輕便性,及時(shí)性和位置識(shí)別性)和缺點(diǎn)(諸如傳輸速度慢,顯示屏太小,以及輸入法笨拙等)。
之二:移動(dòng)標(biāo)示語(yǔ)言和開(kāi)發(fā)要點(diǎn)
移動(dòng)標(biāo)示語(yǔ)言(Mobile Markup Languages),建立并傳送信息到移動(dòng)設(shè)備上(例如Web電話,傳呼和手持設(shè)備)的過(guò)程和將其建立和傳送到臺(tái)式電腦或其他Web應(yīng)用程序的過(guò)程相似。當(dāng)然它們也有重要的差別。開(kāi)發(fā)者必須因?yàn)橐苿?dòng)設(shè)備屏幕更小,內(nèi)存更小,計(jì)算能力較弱,以及數(shù)據(jù)流量更小而做出各種權(quán)衡。因此,許多傳送到移動(dòng)設(shè)備中的內(nèi)容沒(méi)有象在Web的目前標(biāo)示標(biāo)準(zhǔn)HTML4.0的版本中那樣被完全格式化。這里有三種被推薦的替代方法:
•WML
•Compact HTML (cHTML)
•XHTML Basic 及 XHTML Mobile Profile
WAP是一套包含WML的協(xié)議,它符合XML1.0標(biāo)準(zhǔn)。WML是一個(gè)由WAP Forum設(shè)計(jì)并實(shí)施的全球工業(yè)標(biāo)準(zhǔn)。WAP2.0中對(duì)WML和低層傳輸協(xié)議進(jìn)行了重要改進(jìn)。WAP Forum設(shè)計(jì)的2.0版本將適應(yīng)W3C中關(guān)于HTTP 和XHTML的標(biāo)準(zhǔn),安全性更好,更新后的用戶界面和輸入法將跟上移動(dòng)電話硬件的飛速發(fā)展。
移動(dòng)標(biāo)示語(yǔ)言開(kāi)發(fā)要點(diǎn):
•應(yīng)重新設(shè)計(jì)內(nèi)容和應(yīng)用,尤其是面向移動(dòng)設(shè)備的。
•應(yīng)通過(guò)平衡移動(dòng)設(shè)備的便攜性和屏幕大小以及數(shù)據(jù)流量而突出其特性。
•應(yīng)使用中間件和服務(wù)器端生成動(dòng)態(tài)頁(yè)面來(lái)支持多種標(biāo)示語(yǔ)言。
cHTML是由Access公司推出的一種標(biāo)示語(yǔ)言,于1998年被吸收成為W3C標(biāo)準(zhǔn)。cHTML因其用在日本DoCoMo公司提供的時(shí)下流行的i- mode無(wú)線Web服務(wù)中而名噪一時(shí)。cHTML和HTML結(jié)合使用讓i-mode應(yīng)用發(fā)展得以輕松入門(mén)。結(jié)合DoCoMo公司的低成本B2C傳輸費(fèi)用和 i-mode在年輕人當(dāng)中的聲望,cHTML的成功指日可待。
目前,cHTML和WML兩種語(yǔ)言處于競(jìng)爭(zhēng)狀態(tài),CHTML的優(yōu)勢(shì)是普及廣,而對(duì)WML來(lái)說(shuō),作為XML語(yǔ)言的實(shí)現(xiàn)者以及被設(shè)備制造公司和內(nèi)容供應(yīng)商廣泛采納則是其優(yōu)勢(shì)所在。如今,cHTML和WML被溶入了結(jié)合所有最佳標(biāo)示選項(xiàng)的HTML新版本-XHTML Basic 和 XHTML Mobile Profile.XHTML Basic 語(yǔ)言規(guī)范的制定者來(lái)自于各大公司,包括Openwave(Phone.com支持WML),Access Co. Ltd. (支持cHTML), W3C (從 XML 和 HTML 的角度出發(fā)), Sun, Ericsson, 以及Panasonic.
XHTML Basic是XML中對(duì)HTML4.01版本的實(shí)現(xiàn)。XHTML花費(fèi)了相當(dāng)長(zhǎng)的時(shí)間改進(jìn)了在HTML規(guī)范中的許多模棱兩可的問(wèn)題。在XML的嚴(yán)格引進(jìn)下, XHTML給瀏覽用器及其他瀏覽設(shè)備提供了清楚的頁(yè)面輸出導(dǎo)向,并允許使用“模塊”組件選擇處理瀏覽器性能的變化。XHTML是HTML的接替版,在未來(lái)的版本中所有的瀏覽器都將支持XHTML.
2000年12月,W3C發(fā)布了XHTML Basic 規(guī)范作為限定資源設(shè)備的推薦規(guī)范。2001年,WAP Forum 和DoCoMo正式采用XHTML Basic作為未來(lái)瀏覽器開(kāi)發(fā)的基本標(biāo)示語(yǔ)言。XHTML Basic是通過(guò)使用XHTML模塊來(lái)實(shí)現(xiàn)的XML文檔類(lèi)型,這些模塊是構(gòu)造XML文檔類(lèi)型的“積木”。XHTML Mobile Profile是增加了用于顯示元素和內(nèi)部style sheets模塊的XHTML Basic的擴(kuò)展集。
符合WAP2.0技術(shù)的設(shè)備將通過(guò)同時(shí)支持WML 1.x 和 XHTML Basic或通過(guò)實(shí)現(xiàn)XSLT轉(zhuǎn)換來(lái)和WML1.x向下兼容。符合XHTML Basic規(guī)范的WAP2.0設(shè)備將具有先進(jìn)的用戶界面,動(dòng)畫(huà)效果,彈出式菜單以及顏色,這些將使得WAP內(nèi)容與i-mode 內(nèi)容一致。另外,Access公司和DoCoMo已就向XHTML Basic規(guī)范靠攏方面達(dá)成部分一致。
之三:多模式標(biāo)示語(yǔ)言和開(kāi)發(fā)要點(diǎn)
多模式標(biāo)示語(yǔ)言(Multimodal Markup Languages)
對(duì)無(wú)線Web程序的開(kāi)發(fā)者來(lái)說(shuō),最難的一關(guān)是設(shè)計(jì)用戶輸入法以及在設(shè)備上顯示出信息,這在很大程度上是一種使用性能大挑戰(zhàn)。對(duì)許多缺乏耐心的人來(lái)說(shuō)在電話的數(shù)字鍵盤(pán)上打字是最為乏味和痛苦的。而且,電話機(jī)以及手持電話的屏幕太小也會(huì)使信息難以閱讀,并給大量信息的顯示造成一定困難。
現(xiàn)在有一種方法可以使這種情況得以改善,它可以在一定程度上解決問(wèn)題,而且效果非常明顯:使用語(yǔ)音傳輸。每種電話的聽(tīng)筒都有一個(gè)擴(kuò)音器和揚(yáng)聲器用于語(yǔ)音的傳入和傳出。很多PDA產(chǎn)品都配有擴(kuò)音器和音質(zhì)良好的揚(yáng)聲器。有了這些語(yǔ)音傳輸工具,移動(dòng)程序設(shè)計(jì)者就可以給用戶提供一種其他方法去捕獲和傳送信息。
多模式標(biāo)示語(yǔ)言開(kāi)發(fā)要點(diǎn):
絕大多數(shù)人將電話作為通話手段,其次才是將它作為數(shù)據(jù)終端。
研究智能電話的Java開(kāi)發(fā)者通過(guò)結(jié)合使用XHTML+Voice 和 SALT設(shè)計(jì)出多模式程序(包括語(yǔ)音,文本,圖形),并以此同時(shí)滿足消費(fèi)者和公司的要求。
盡管XHTML+Voice 和 SALT還處于早期開(kāi)發(fā)階段,但它們很可能迅速流行起來(lái)。而VoiceXML(XHTML+Voice 的前身)則被廣泛用于只傳輸聲音或其他交互式聲音回應(yīng)程序當(dāng)中。
但是如何將語(yǔ)音傳輸功能運(yùn)用到無(wú)線Web應(yīng)用中去呢?在VoiceXML中定義了一套用于捕獲和傳送語(yǔ)音的的語(yǔ)言,但它不支持例如文本,圖形或視頻等其他形式的輸入和輸出。IBM和Motorola以及Opera共同研制了一種在Web程序中加入聲音,文本和圖形等多種性能的的方法:模塊化 VoiceXML 2.0并將它結(jié)合到XHTML當(dāng)中 (XHTML+Voice)。這種方法與W3C所提倡的在內(nèi)容的形式化、使XHTML易于擴(kuò)展及保持該語(yǔ)言的靈活性方面的指導(dǎo)思想相一致。XHTML+ Voice支持語(yǔ)音合成,語(yǔ)音對(duì)話,命令,控件以及語(yǔ)音語(yǔ)法。
SALT(Speech Application Language Tags)是另一種解決方法,和XHTML+Voice不同,SALT 不但沒(méi)有借助于VoiceXML,反而特意避免VoiceXML的開(kāi)發(fā)模式以及VoiceXML支持本語(yǔ)言中特有的重用性。SALT能夠充分利用支持語(yǔ)言的所有事件和腳本。例如,在使用HTML時(shí),SALT標(biāo)簽的用法就和其他HTML標(biāo)簽一樣。SALT標(biāo)簽可以通過(guò)使用腳本和包含屬性,方法和事件等進(jìn)行設(shè)計(jì),而這些屬性,方法和事件可以通過(guò)HTML頁(yè)面的文檔對(duì)象模式進(jìn)行訪問(wèn)。這并不是說(shuō)SALT是綁定在HTML上的,其實(shí)SALT標(biāo)簽?zāi)軌蚝蚐GML家族中的任何標(biāo)示語(yǔ)言結(jié)合使用,比如Wireless Markup Language,Compact HTML,以及用在移動(dòng)電話和手機(jī)上的具有新特性的XHTML profiles.同時(shí)開(kāi)發(fā)者也可以將SALT和一些可視性標(biāo)示結(jié)合使用,比如WML,XHTML,或用于只傳輸聲音(voice-only browsing)的標(biāo)示(2000年12月,W3C發(fā)布了XHTML Basic 規(guī)范作為限定資源設(shè)備的推薦規(guī)范。2001年,WAP Forum 和DoCoMo正式采用XHTML Basic作為瀏覽器未來(lái)開(kāi)發(fā)的基本標(biāo)示語(yǔ)言。XHTML Basic是通過(guò)使用XHTML模塊來(lái)實(shí)現(xiàn)的XM在這一點(diǎn)上和VoiceXML很相似)。
之四:短信傳送和開(kāi)發(fā)要點(diǎn)
短信傳送(Short Messaging)
Short Messaging Service (SMS) 短信息服務(wù)是指在無(wú)線電話或傳呼機(jī)等無(wú)線設(shè)備之間傳遞小段文字或數(shù)字?jǐn)?shù)據(jù)的一種服務(wù)。SMS是一種相對(duì)較簡(jiǎn)單和可靠的技術(shù)。SMS在1992年首次出現(xiàn)在 GSM電話中,而今所有的主要無(wú)線設(shè)備都支持它,而且大多數(shù)移動(dòng)電話都有發(fā)送和接收SMS信息的功能。有數(shù)據(jù)顯示僅在2001年的12月其間全球就有 300億條文本消息被發(fā)送出去。用戶可以通過(guò)電話鍵將160個(gè)以內(nèi)的數(shù)字或字母仔細(xì)地輸入一條SMS信息中。用戶也可以借助使用縮寫(xiě)字母或者其他捷徑輕松完成信息輸入過(guò)程。
短信息開(kāi)發(fā)要點(diǎn):
SMS的地位已經(jīng)確立;而EMS和MMS直到2002年底或更晚才會(huì)流行起來(lái)。
SMS并不容易開(kāi)發(fā),將短信和程序結(jié)合起來(lái)的最簡(jiǎn)單的方法是使用第三方工具,比如Simplewire的 Java SMS SDK 和 object XP jSMS.
EMS是SMS的升級(jí)版本,而MMS是其未來(lái)版本,它要求使用3G無(wú)線構(gòu)架模式。
如果WAP2.0連同OpenWave中的新興瀏覽器能在今明兩年贏得市場(chǎng),那么MMS會(huì)很快流行起來(lái)。
由于短信息的流行,老式的SMS面臨著革新。一種新的換代產(chǎn)品增強(qiáng)型信息服務(wù)(Enhanced Messaging Service EMS)問(wèn)世了,它使用了SMS技術(shù)并新增了對(duì)二進(jìn)制對(duì)象如聲音、圖像和動(dòng)畫(huà)等的支持。EMS可以使用預(yù)加到手機(jī)中的圖像和聲音。接收的信息中可以參照這些對(duì)象而不用將其下載。由于EMS對(duì)象是二進(jìn)制編碼,所以會(huì)使開(kāi)發(fā)過(guò)程就變得更復(fù)雜一些,而且會(huì)比單一的文本信息載荷更容易出錯(cuò)。因此在使用SMS或者 EMS系統(tǒng)的界面中編寫(xiě)代碼不是輕松的工作。Simplewire的 Java SMS SDK和object XP的 jSMS等產(chǎn)品將同各種SMSC進(jìn)行交互的大量細(xì)節(jié)方面的內(nèi)容掩藏了起來(lái),并給用戶呈獻(xiàn)一種清晰的對(duì)象界面以執(zhí)行傳信功能。
一些手機(jī)制造商正在研究一種更為前衛(wèi)的多媒體短信發(fā)送功能。這種多媒體信息服務(wù)(MMS)是在SMS產(chǎn)生10周年后的一個(gè)新生代產(chǎn)品。MMS使用XML格式和現(xiàn)有的HTTP及WAP基礎(chǔ)結(jié)構(gòu)。MMS在產(chǎn)業(yè)界有著強(qiáng)大的后盾,WAP Forum已將其加入新的WAP 2.0建議書(shū)中,而手機(jī)制造巨頭Nokia, Motorola, 和Ericsson也開(kāi)始將MMS用于他們未來(lái)的產(chǎn)品中。MMS網(wǎng)絡(luò)將手機(jī)和其他MMS用戶連接到MMS代理和服務(wù)器上,它們會(huì)依次連接到 Internet電子郵件服務(wù)器上,以及SMS和EMS系統(tǒng)中。這樣將會(huì)使開(kāi)發(fā)者輕松進(jìn)入傳信系統(tǒng)中,只要使它兼容于我們熟知的Web和無(wú)線開(kāi)發(fā)界面及工具就可以了。
MMS已被安裝到50多種裝置上,但要普及的話恐怕要等到更快性能更好的第三代網(wǎng)絡(luò)和電話的問(wèn)世了。在它的首次迭代過(guò)程中,MMS使用了W3Cd 一個(gè)標(biāo)準(zhǔn)-Synchronized Multimedia Integration Language( SMIL)和WAP的WML作為其基本語(yǔ)言在多媒體信息中體現(xiàn)其文本風(fēng)格和色彩圖像。
之五:SyncML及開(kāi)發(fā)要點(diǎn)SyncML
信息化同步是無(wú)線設(shè)備產(chǎn)生之后應(yīng)運(yùn)而生的產(chǎn)物。負(fù)責(zé)管理著我們的日程安排,通訊簿,任務(wù)目錄和電子郵件的個(gè)人數(shù)字助理和智能電話通常并不能完全發(fā)揮其作用,除非將他們的信息庫(kù)與個(gè)人電腦中的類(lèi)似信息庫(kù)或者企業(yè)信息服務(wù)器相連才能將其完全利用。有很多實(shí)現(xiàn)同步化的方法,但通常最簡(jiǎn)便的方法也就是最好的方法:用一個(gè)普通協(xié)議將基于文本的更新材料從一個(gè)數(shù)據(jù)源傳到另一個(gè)。而SyncML就是這樣一種方法。
SyncML開(kāi)發(fā)要點(diǎn):
•數(shù)據(jù)同步化是電話和其他移動(dòng)設(shè)備應(yīng)用的需求。
•
幾乎所有的同步化服務(wù)器產(chǎn)品提供者都支持SyncML.
•如果你自己處理同步化工作,請(qǐng)?jiān)赟ourceForge中查閱sync4j項(xiàng)目。
由Ericsson, IBM, Lotus, Motorola, Nokia, Matsushita, Openwave, Psion, 和 Starfish Software提供贊助,SyncML 聯(lián)盟建立和發(fā)行了SyncML協(xié)議,它是一種使依從該協(xié)議的設(shè)備、開(kāi)發(fā)程序和服務(wù)在網(wǎng)絡(luò)中實(shí)現(xiàn)信息同步化的通用語(yǔ)言。SyncML用于在HTTP,WSP (會(huì)議層協(xié)議,基于WAP的無(wú)線Web應(yīng)用),OBEX(一種對(duì)象交換協(xié)議,它基于紅外線和藍(lán)牙技術(shù)并用于構(gòu)建多種操作系統(tǒng))和低層的TCP/IP以及電子郵件協(xié)議諸如SMTP, POP3, and IMAP當(dāng)中。
SyncML協(xié)議使用XML語(yǔ)言來(lái)編譯命令和數(shù)據(jù)并旨在成為和HTTP,SSL,和WAP一樣的最好的Web協(xié)議,因此它兼容用于Web- friendly移動(dòng)平臺(tái)(如J2ME)的開(kāi)發(fā)程序。開(kāi)發(fā)者只需使用最少的工具便可在移動(dòng)程序中加入同步化性能。用來(lái)建立和讀取XML文檔的剖析器是處理 XML執(zhí)行過(guò)程最好的方法,但卻不是必須的方法。一條SyncML信息本身就是一個(gè)經(jīng)過(guò)處理的包含標(biāo)題和正文的XML文檔。標(biāo)題由SyncHdr元素和該信息的路由和版本信息組成。正文包括SyncBody元素和同步命令,以及相關(guān)數(shù)據(jù)。
正文部分是真正執(zhí)行處理過(guò)程的地方。SyncML指定13種必帶命令。例如,Add元素可以包括授權(quán)認(rèn)證,指定同步化數(shù)據(jù)格式的元數(shù)據(jù),以及數(shù)據(jù)本身。這個(gè)元數(shù)據(jù)可以直接被使用,例如,通過(guò)調(diào)用適當(dāng)?shù)腦ML命名空間來(lái)確定被附上的數(shù)據(jù)是一個(gè)vCard.然后該數(shù)據(jù)將出現(xiàn)在“text/x-vcard”命名空間里。
SyncMl語(yǔ)言有相應(yīng)的SyncML框架支持,這種框架體現(xiàn)出用于完全的端到端交叉平臺(tái)同步化解決方案(幾乎包含所有移動(dòng)設(shè)備,臺(tái)式機(jī)和服務(wù)器數(shù)據(jù)源)的結(jié)構(gòu),但是SyncML聯(lián)盟也不會(huì)擯棄現(xiàn)存的端對(duì)端單一平臺(tái)解決方案。Microsoft的 ActiveSync技術(shù)在Windows平臺(tái)上運(yùn)行的很好并且Windows很可能是其單一平臺(tái)。然而我們還是期待Microsoft和Palm、 IBM等大的移動(dòng)電話制造商合作,那么其他制造商將有可能實(shí)現(xiàn)同單一設(shè)備中普通實(shí)例間的同步化。
之六:802.11b無(wú)線局域網(wǎng)開(kāi)發(fā)要點(diǎn)
在無(wú)需考慮耗電量但需要考慮傳輸速度的時(shí)候(比如在使用手提電腦瀏覽Web時(shí))可以利用802.11b,802.11a和802.11gWLANs.其他無(wú)線協(xié)議如藍(lán)牙和IRDA(紅外線數(shù)據(jù))則由于其耗電量低而更廣泛地用于PDAs和電話上,但是它們的傳輸速度比802.11低,而且發(fā)射范圍也小。
和幾乎所有的網(wǎng)絡(luò)協(xié)議一樣,802.11協(xié)議完全符合七層開(kāi)放式系統(tǒng)互聯(lián)參考模型(Open Systems Interconnection (OSI) Reference Model),所以協(xié)議中的全部細(xì)則均被摘列并能夠通過(guò)應(yīng)用層、表象層和網(wǎng)絡(luò)操作層中體現(xiàn)出來(lái)。
和藍(lán)牙設(shè)備,便攜電話,小型監(jiān)視器(baby monitor)及其他無(wú)線電設(shè)備一樣,802.11b和802.11a的無(wú)線電操作系統(tǒng)也具有不規(guī)則的頻段。可以借助一些高級(jí)別的協(xié)議(比如用于藍(lán)牙技術(shù)的HTTP和Java API)來(lái)解決這種互用性問(wèn)題。
IEEE小組的802.11b標(biāo)準(zhǔn)可能算是當(dāng)今無(wú)線計(jì)算技術(shù)應(yīng)用下最重要的主要產(chǎn)物了。IEEE的802.11b是802.11家族中的一種新標(biāo)準(zhǔn),它利用無(wú)線電發(fā)射頻率將電腦及移動(dòng)設(shè)備同局域網(wǎng)連接起來(lái)。它不像“藍(lán)牙”一樣有個(gè)容易記住的名字(有人曾試圖給它取個(gè)好聽(tīng)的別名叫做“Wi-Fi”),而且它也沒(méi)有象CDMA2000 或者 UMTS (Universal Mobile Telecommunications System)那樣被冠以第二代無(wú)線技術(shù)奇跡的美譽(yù)。802.11b連接通常比其他類(lèi)型的無(wú)線網(wǎng)絡(luò)連接的速度更快,而且使用802.11b無(wú)線區(qū)域網(wǎng)(WLANs)非常經(jīng)濟(jì),也很易于安裝,甚至對(duì)在家里使用的用戶來(lái)說(shuō)也是如此。雖然在此之前,802.11b只使用在公司辦公室和家用網(wǎng)絡(luò)中,但現(xiàn)在 802.11b網(wǎng)絡(luò)的使用(常常是收費(fèi)的)已遍布公共區(qū)域的“熱點(diǎn)區(qū)”之中。結(jié)合無(wú)線局域網(wǎng)在辦公室、家庭中的普及和在公共熱點(diǎn)區(qū)的收益,802.11b 絕對(duì)是一個(gè)大賣(mài)點(diǎn)。
802.11b的成功基于以下幾個(gè)原因:應(yīng)用程序開(kāi)發(fā)者無(wú)需知道他們的程序是在哪種網(wǎng)絡(luò)連接(無(wú)線或有線)中運(yùn)行的,因?yàn)?02.11b(還有其后續(xù)標(biāo)準(zhǔn) 802.11a 和 802.11g)及其有線標(biāo)準(zhǔn)使用同樣高級(jí)別的協(xié)議,類(lèi)似的還有TCP/IP, HTTP, TLS等等。802.11b采用2.4GHz無(wú)線頻段并支持最大數(shù)據(jù)為11Mb/s傳輸速率,盡管在實(shí)際應(yīng)用中的速率會(huì)低一些,那是由于用戶在同一射頻中共享帶寬或是因超過(guò)支持范圍而使性能降低。802.11a在5GHz頻段下提供56Mbit/s數(shù)據(jù)傳輸率,盡管它在實(shí)際應(yīng)用中的速率也同樣會(huì)有所降低,但它還是比802.11b快好幾倍。802.11g是802.11家族中的另一成員,它能在2.4GHz頻段下提供56Mbit/s數(shù)據(jù)傳輸率。目前只有 802.11b標(biāo)準(zhǔn)是市場(chǎng)的主流,但802.11a和802.11g將緊隨其后并成為其替代產(chǎn)品。
IEEE802.11標(biāo)準(zhǔn)一個(gè)主要的安全問(wèn)題已經(jīng)解決。在WLAN安全性檢測(cè)性的庇護(hù)下,運(yùn)行在802.11標(biāo)準(zhǔn)設(shè)備中的軟件更新有很大改進(jìn),但對(duì)于那些處理機(jī)密信息的應(yīng)用開(kāi)發(fā)人員來(lái)說(shuō),最好還是給代碼加一個(gè)額外的保護(hù)層。
之七:新一代無(wú)線電話網(wǎng)絡(luò)和開(kāi)發(fā)要點(diǎn)
新一代無(wú)線電話網(wǎng)絡(luò)
新一代的無(wú)線電話和數(shù)據(jù)網(wǎng)絡(luò)使企業(yè)應(yīng)用中的無(wú)線廣域電話和數(shù)據(jù)網(wǎng)絡(luò)在速度上邁進(jìn)了一大步。不僅網(wǎng)速將提高5到10倍,而且連接模式由原來(lái)的回路交換(circuit-switched)提升到包交換(packet-switched)。這就意味著設(shè)備會(huì)始終連接到指定IP地址并能進(jìn)入到所有 Internet服務(wù)中去。新一代技術(shù)中最有代表性的三種是:CDMA2000,General Radio Packet Service(GPRS), 和Enhanced Data Rates for Global Evolution (EDGE)。
新一代無(wú)線電話網(wǎng)絡(luò)開(kāi)發(fā)要點(diǎn):
新一代無(wú)線廣域網(wǎng)將始終和Internet相連,并實(shí)現(xiàn)包交換模式。在2002年,GPRS和CDMA2000的使用將遍布全世界,這使企業(yè)開(kāi)發(fā)者開(kāi)發(fā)出高速可靠的無(wú)線數(shù)據(jù)傳輸成為可能。同時(shí)由于其使用包交換,而且速度相對(duì)更快,所以這些技術(shù)將使無(wú)線應(yīng)用程序更加完善和成熟。
筆記本和大多數(shù)PDA產(chǎn)品通過(guò)適配器連接到GPRS和CDMA2000中去,通常是以PC卡的形式連接。電話和一些手持設(shè)備配有內(nèi)置無(wú)線電發(fā)射。如此一來(lái),制造商通常會(huì)提供SDKs,它可以供給接用于顯示一個(gè)應(yīng)用程序用戶界面(諸如信號(hào)強(qiáng)度和連接狀態(tài))的相關(guān)信息。一些SDKs還將觸發(fā)事件,通過(guò)這些事件開(kāi)發(fā)者能夠在出現(xiàn)問(wèn)題和捕獲網(wǎng)絡(luò)中的數(shù)據(jù)(比如位置信息)時(shí)提示用戶。
CCMA2000是現(xiàn)存的第二代CDMA(碼分多址數(shù)字無(wú)線技術(shù)Code Division Multiple Access)移動(dòng)電話系統(tǒng)的后續(xù)產(chǎn)品,主要流行與美國(guó)和亞洲一帶。它派生出的CDMA2000 3x是一種用于快速的(碼片速率2至4)第三代(3G)無(wú)線通信國(guó)際電信聯(lián)盟標(biāo)準(zhǔn)。網(wǎng)絡(luò)系統(tǒng)使CDMA2000 1x的最高傳輸速率達(dá)到144Mbps(但在實(shí)際應(yīng)用中的速率大約只達(dá)到最高速率的三分之一或一半而已)。和GPRS和EDGE一樣,CDMA2000 1x被看作是一個(gè)2.5代移動(dòng)通訊產(chǎn)品,因?yàn)樗翘幱诘诙降谌倪^(guò)渡產(chǎn)品。
GPRS將第二代GSM移動(dòng)系統(tǒng)的速度提升到一個(gè)更高的階段,并實(shí)現(xiàn)了包交換網(wǎng)絡(luò),它在歐洲和美國(guó)一帶最為流行。和CDMA2000相比,GPRS的同時(shí)傳輸語(yǔ)音和數(shù)據(jù)的速度比目前傳輸速率是10Kbps的標(biāo)準(zhǔn)更快。在2002年,開(kāi)發(fā)人員能將CDMA2000和GPRS應(yīng)用推向全美國(guó),多數(shù)通訊公司期待能夠?qū)崿F(xiàn)一種接近56Kbs傳輸速度的數(shù)據(jù)服務(wù)。
EDGE是GSM技術(shù)的未來(lái)一代。EDGE使用增強(qiáng)型調(diào)制系統(tǒng)將數(shù)據(jù)傳輸速度提高到400Kbps,它比現(xiàn)存的GSM無(wú)線電頻波的速度高很多。
2002年之后(具體可能要到2003之后),世界會(huì)邁進(jìn)很多人認(rèn)為的真正的第三代移動(dòng)通訊階段。屆時(shí)CDMA2000將發(fā)展到3x階段,而GSM網(wǎng)絡(luò)也將邁進(jìn)寬帶CDMA(WCDMA)時(shí)期。WCDMA是Universal Mobile Telecommunication Service (UMTS)的基礎(chǔ)。目前看來(lái)CDMA2000和UMTS將同時(shí)占領(lǐng)3G市場(chǎng)。
之八:無(wú)線應(yīng)用中的安全性開(kāi)發(fā)要點(diǎn)
無(wú)線應(yīng)用中的安全問(wèn)題
無(wú)論是無(wú)線連接或是無(wú)線設(shè)備,端到端安全模式都是任何無(wú)線應(yīng)用程序開(kāi)發(fā)需要解決的首要問(wèn)題。業(yè)界新聞報(bào)道說(shuō)目前無(wú)線網(wǎng)絡(luò)安全缺乏的情況很普遍,包括 IEEE802.11b WLANs都有未經(jīng)授權(quán)的登陸以及遭受到使一些無(wú)線Web網(wǎng)絡(luò)頗為頭疼而臭名昭著的“WAP gap”的侵襲。那么端對(duì)端的無(wú)線安全模式真的難以實(shí)現(xiàn)嗎?其實(shí)對(duì)于任何一種安全模式來(lái)說(shuō),沒(méi)有一種是完全牢不可破的,但所有大的無(wú)線協(xié)議都提供一些方法用來(lái)保護(hù)機(jī)密信息和阻止未經(jīng)授權(quán)的訪問(wèn)。
無(wú)線應(yīng)用中的安全性開(kāi)發(fā)要點(diǎn):
目前使用的大多數(shù)802.11 WLAN由于缺乏安全性而受到直接的攻擊。SSID和WEP不足以保護(hù)網(wǎng)絡(luò)資源。目前一種能夠執(zhí)行Extended Authentication Protocol combined with Transport Layer Security (EAP/TLS) 的新型硬件可以用來(lái)進(jìn)行有效驗(yàn)證和加密。但要確保你運(yùn)行在WLAN上的無(wú)線應(yīng)用程序能夠利用EAP/TLS.
一些移動(dòng)設(shè)備支持虛擬專(zhuān)用網(wǎng),一些無(wú)線中間件(比如Infowave Wireless Business Engine)將實(shí)現(xiàn)端對(duì)端安全通訊,即使是在安全性被置疑網(wǎng)絡(luò)中也是如此(比如WAP)。
一些藍(lán)牙設(shè)備將提供難以編譯的PIN. 這樣將通過(guò)使用額外的盤(pán)問(wèn)式授權(quán)(authorization challenge)來(lái)提高程序的安全性。
要確保所有的移動(dòng)設(shè)備用戶啟用本設(shè)備特有的訪問(wèn)控制權(quán)(比如PIN)并確保不使用系統(tǒng)默認(rèn)的或太簡(jiǎn)單的密碼。
控制設(shè)備訪問(wèn)權(quán)限。企業(yè)對(duì)幾乎所有的PDA、電話和移動(dòng)設(shè)備實(shí)行加密保護(hù)。企業(yè)開(kāi)發(fā)者可以采用這種平臺(tái)層的保護(hù)來(lái)阻止未經(jīng)授權(quán)的訪問(wèn),或者用一個(gè)單獨(dú)的個(gè)人識(shí)別號(hào)碼(PIN)進(jìn)入程序一個(gè)額外的保護(hù)層。
驗(yàn)證、授權(quán)和審核。Triple-A是安全工作做的很好的企業(yè)一直采用的一種方法。企業(yè)無(wú)線開(kāi)發(fā)人員可以將用于extranet和intranet程序中的相同的triple-A用在無(wú)線開(kāi)發(fā)中,由于經(jīng)常在內(nèi)部使用的密碼很難從電話鍵上輸入,所以另一種全數(shù)字型的密碼被廣泛用于移動(dòng)設(shè)施。
保密性和完整性。目前許多移動(dòng)設(shè)備都有足夠的功率支持?jǐn)?shù)據(jù)加密。開(kāi)發(fā)人員很容易使用運(yùn)行在Web上的SSL/TLS和無(wú)線Web中的WTLS(源自WAP堆棧)。使用被批準(zhǔn)的證書(shū)也是確保從正常的渠道獲得內(nèi)容的一種直接方法。
已知的弱點(diǎn)。最有名的無(wú)線安全漏洞是在IEEE802.11b和WAP中發(fā)現(xiàn)的。802.11b安全模式的主要組件是Wireless Equivalent Privacy (WEP), 其加密方法和有線Ethernet (802.3) 的標(biāo)準(zhǔn)相類(lèi)似。安全專(zhuān)家已經(jīng)證實(shí)WEP的安全層是可以被破壞的,然而許多基于802.11b的WALN連WEP保護(hù)都沒(méi)有。用于無(wú)線Web 的第一版WEP中列舉出一個(gè)被稱作是wireless transport layer security (WTLS) 的SSL-like實(shí)現(xiàn)能夠很好的運(yùn)行安全模式,除非在某一時(shí)刻信息的保護(hù)權(quán)由WTLS轉(zhuǎn)向TLS時(shí)(此時(shí)無(wú)線Web會(huì)連接到World Wide Web上)才會(huì)發(fā)生意外。這種情況一般發(fā)生在WAP代理或網(wǎng)關(guān)之中,但在公司或網(wǎng)絡(luò)操作服務(wù)器室中通常是安全的。要確保網(wǎng)管能夠?qū)Ψ?wù)器的使用權(quán)加以限制。
之九:藍(lán)牙技術(shù)和開(kāi)發(fā)要點(diǎn)
用于藍(lán)牙技術(shù)的Java APIs
藍(lán)牙是一種無(wú)線網(wǎng)絡(luò)技術(shù),最初是由計(jì)算機(jī)制造商和其它制造商提出的,它替代了電纜,在計(jì)算機(jī)、PDA、電話和外設(shè)之間實(shí)現(xiàn)了連接。例如,藍(lán)牙設(shè)備現(xiàn)在可以用來(lái)連接移動(dòng)電話和免提耳機(jī)。自出現(xiàn)了藍(lán)牙技術(shù)以來(lái),它就給我們?cè)O(shè)立了更高的目標(biāo),使我們可以創(chuàng)建“個(gè)人網(wǎng)絡(luò)(personal area networks,PAN)”或“piconets”。理論上,當(dāng)藍(lán)牙設(shè)備之間建立了連接時(shí),就自然地形成了PANs.例如,當(dāng)一臺(tái)筆記本電腦連接到一臺(tái)打印機(jī)時(shí),就會(huì)形成一個(gè)PAN.實(shí)際上,驗(yàn)證、訪問(wèn)權(quán)限的控制以及其它的安全問(wèn)題,再加上來(lái)自其它無(wú)線網(wǎng)絡(luò)可能的干擾,會(huì)使這種情況變得復(fù)雜。
藍(lán)牙技術(shù)開(kāi)發(fā)要點(diǎn):
•JABWT盡可能地影響著J2ME類(lèi)和框架。
•在使用JABWT開(kāi)發(fā)時(shí)會(huì)使用到The Connected Limited Device Configuration (CLDC)。
•JABWT API已經(jīng)開(kāi)始在其他普通協(xié)議中和其他傳輸媒體(OBEX和RECOMM)結(jié)合使用。
總的來(lái)說(shuō),無(wú)線網(wǎng)絡(luò)的藍(lán)牙版本受到了越來(lái)越多的人的喜愛(ài),從本質(zhì)上說(shuō),藍(lán)牙技術(shù)很可靠。無(wú)線和計(jì)算機(jī)業(yè)界的倡導(dǎo)者們將藍(lán)牙技術(shù)作為一種規(guī)范來(lái)開(kāi)發(fā),將它作為一種低成本、低功耗的無(wú)線通訊方法,來(lái)連接運(yùn)用未經(jīng)授權(quán)的2.4GHz頻帶的設(shè)備。該規(guī)范主要針對(duì)三種電源,它們與三個(gè)連接間距相應(yīng):100 米,10 米和0.1 米。最常用的是在多達(dá)七種不同設(shè)備之間提供10米的連接間距。藍(lán)牙硬件和軟件的設(shè)計(jì)人員考慮到了由于安全性和網(wǎng)絡(luò)競(jìng)爭(zhēng)帶來(lái)的復(fù)雜性(如801.11b無(wú)線 LANs)。
想在應(yīng)用程序中運(yùn)用藍(lán)牙技術(shù)的Java開(kāi)發(fā)人員可以從兩方面來(lái)考慮。首先,藍(lán)牙技術(shù)可以是操作系統(tǒng)提供的一個(gè)服務(wù),它可以從應(yīng)用程序得以實(shí)現(xiàn),這同 HTTP掩蓋了潛在的網(wǎng)絡(luò)協(xié)議(如802.11b和Ethernet)的低級(jí)實(shí)現(xiàn)有很多共同之處。第二,開(kāi)發(fā)人員可以用Java APIs for Bluetooth Wireless Technologies(JABWT)來(lái)直接訪問(wèn)藍(lán)牙服務(wù)。Java Community Process于2002年3月將JABWT作為最終規(guī)范發(fā)布了。JABWT至少需要512k的內(nèi)存用于Java 2、一個(gè)藍(lán)牙堆棧和頻帶和J2ME Connected Limited Device Configuration(CLDC)的一個(gè)兼容配置或擴(kuò)展配置。
JABWT為藍(lán)牙技術(shù)的實(shí)現(xiàn)提供了范圍很廣的一組接口,在JSR-82中有文件證明。JABWT將APIs根據(jù)discovery、設(shè)備管理和通訊加以分類(lèi)。第一組接口可以幫助我們發(fā)現(xiàn)設(shè)備、查找設(shè)備并推廣設(shè)備。設(shè)備管理APIs包括安全性和Generic Access Profile方面的信息,它們用來(lái)描述本地設(shè)備并得到遠(yuǎn)程設(shè)備的信息。通訊APIs用來(lái)同其它藍(lán)牙設(shè)備進(jìn)行通訊,這些通訊是通過(guò)協(xié)議來(lái)完成的,如 OBEX(Object Exchange,也廣泛用于紅外線)、RFCOMM(通過(guò)Serial Port Profile提供)、L2CAP(Logical Link Control and Adaptation Protocol)和更高級(jí)的協(xié)議(如TCP/IP)。JABWT運(yùn)用J2ME的Commected Limited Device Configuration中定義的Generic Connection Framework來(lái)提供基本的連接功能。
之十:JavaPhone API和開(kāi)發(fā)要點(diǎn)
JavaPhone API
JavaPhone API定義了一組基于Java的接口,可以用來(lái)訪問(wèn)智能電話和其它無(wú)線設(shè)備的功能。網(wǎng)絡(luò)操作人員、設(shè)備制造商和內(nèi)容提供商運(yùn)用JavaPhone在 PersonalJava平臺(tái)上構(gòu)建設(shè)備。企業(yè)級(jí)Java開(kāi)發(fā)人員將JavaPhone API作為一種穩(wěn)固的、易用的對(duì)象接口用于設(shè)備所提供的服務(wù),如Java Telephony API(JTAPI)、數(shù)據(jù)包信息傳遞、數(shù)據(jù)訪問(wèn)(聯(lián)系人、日歷、任務(wù)和用戶配置信息)、電源管理和應(yīng)用程序安裝。
JavaPhone開(kāi)發(fā)要點(diǎn):
Secure Sockets Layer (SSL) API在PersonalJava中是可選的,但是必須包含在任何JavaPhone的實(shí)現(xiàn)中,它支持應(yīng)用程序在HTTPS上運(yùn)行,這是保證無(wú)線應(yīng)用程序的安全的一種常見(jiàn)的、相對(duì)容易的方法。只有可以信賴的應(yīng)用程序才可以訪問(wèn)JavaPhone的data stores和消息。
Java開(kāi)發(fā)人員可以在JavaPhone智能電話上發(fā)送并接受短消息,而不需要知道所運(yùn)用的具體的傳輸方式,如SMS或WAP Push.
開(kāi)發(fā)人員可以將JavaPhone的聯(lián)系人、任務(wù)和日程管理作為vCard和vCalendar條目來(lái)訪問(wèn),它們存儲(chǔ)在“object soup”式的平面數(shù)據(jù)庫(kù)中,互相之間沒(méi)有關(guān)連,不能輸入。
Java開(kāi)發(fā)人員用核心的Java Telephony APIs來(lái)執(zhí)行基本的打電話、接電話的任務(wù)。JTAPI的擴(kuò)展功能可以用于呼叫中心,擴(kuò)展電話的控制(如持機(jī)等候和電話會(huì)議)以及媒體數(shù)據(jù)流(如按鍵音)。JTAPI移動(dòng)核心接口是專(zhuān)門(mén)用于移動(dòng)電話的。例如,MobileProvider接口提供了一個(gè)有效的方法來(lái)檢查該平臺(tái)是否實(shí)現(xiàn)了一個(gè)特殊的功能。Datagram Messaging APIs可以讓我們發(fā)送并接收文本信息而不需要知道根本的傳輸細(xì)節(jié)。應(yīng)用程序的開(kāi)發(fā)人員只需要知道如何格式化并發(fā)送信息就行了。JavaPhone可以支持在GSM上運(yùn)用Short Messaging Service(SMS),也支持其它的傳輸形式。
AddressBook、Calendar和User Profile APIs給開(kāi)發(fā)人員提供了一個(gè)基于對(duì)象的接口,可以用來(lái)訪問(wèn)智能電話的個(gè)人信息管理(PIM)庫(kù)。AddressBook將vCard規(guī)范(RFC 2426)用于聯(lián)系信息,Calendar將vCalendar規(guī)范(RFC2445)用于日程管理和任務(wù)管理。對(duì)于移動(dòng)和無(wú)線設(shè)備來(lái)說(shuō),安全性總是一個(gè)關(guān)鍵的問(wèn)題,所以JavaPhone開(kāi)發(fā)人員應(yīng)該只允許可以信任的應(yīng)用程序從數(shù)據(jù)庫(kù)讀取信息、將信息寫(xiě)到數(shù)據(jù)庫(kù)以及發(fā)送和接收信息。
Power Monitor API提供了有關(guān)電池標(biāo)準(zhǔn)、預(yù)計(jì)電池壽命、以及設(shè)備是否接通電源的信息。Power Management API可以讓開(kāi)發(fā)人員感受到設(shè)備狀態(tài)發(fā)生的變化并作出響應(yīng),如設(shè)備關(guān)機(jī)狀態(tài)、全功耗狀態(tài)、有效電源狀態(tài)、掛起狀態(tài)(suspend)和睡眠狀態(tài)。 Install API支持為開(kāi)發(fā)和發(fā)布應(yīng)用程序進(jìn)行打包,包括對(duì)Jar文件、主程序切入點(diǎn)、圖標(biāo)和版本的支持。