編者按:Java語言能夠完善無線應用從而使開發(fā)者更好地滿足企業(yè)的需求。一直以來,Java語言都是移動和無線應用程序的最佳平臺,但是現有的技術使Java難以應用到應用程序中去。比如設備的處理功率能力不足,網速太慢和網絡不安全等問題。直到設備和網絡提升了速度才得以支持運用無線技術的應用程序。Java在使用網絡資源方面強調的安全性和高效性使其成為在小而功能強大設備上(如智能電話和手持電話)構建企業(yè)應用程序的理想平臺。這里列舉出10種重要的能夠完善無線應用程序的技術,以及它們對于Java開發(fā)者而言至關重要的原因。
之一:WAP技術
移動設備(諸如智能電話和PDA)正在被充分應用到企業(yè)應用架構之中。這種想法最初是逐漸潛入人心的,但是發(fā)展趨勢卻顯而易見:企業(yè)用戶正在將移動設備運用到日常工作當中。這就是結構設計者在勾畫應用于整個企業(yè)的程序結構時需要考慮將Java運用到電話中(甚至給手機配備基本的上網功能)的原因。
基于Wireless Application Protocol (WAP)技術的具有瀏覽網頁功能的手機在北美和歐洲一帶逐漸流行起來。WAP是由無線應用協(xié)定論壇(the WAP Forum)發(fā)展并流傳開來的,該論壇是由一群無線和通訊產業(yè)的公司組成,發(fā)布了能夠在無線設備上所使用Web內容和應用的“產業(yè)標準” 規(guī)范。于近期被認可的WAP版本是2.0版,但要到2003年我們才可能看到支持該版本的手機批量問世。目前,WAP1.1和WAP1.2.1版本是最為流行的。
WAP開發(fā)要點:
在企業(yè)Web應用程序中將諸如電話和PDA等基于WAP的設備作為最終用戶。
雖然通過使用HTTP和HTML等著名的協(xié)議會使WAP2.0開發(fā)更容易些,但近期內我們仍需要以WAP1.x為途徑進行開發(fā)。
編寫服務器端代碼使其可以生成HTML和WML,同時也要考慮屏幕大小和數據流量。
雖然有可用的代碼轉換器及HTML和WML間的轉換器,但很少能夠將設計漂亮的HTML頁面轉換成同樣漂亮WML頁面。你需要有特殊設計的中間件或使用系統(tǒng)自帶的XML/XSL解決方法。
WAP Forum 在設計1.x版本的時候是經過深思熟慮的,但它和我們熟知和喜愛的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堆棧當中。如今WAP2.0開發(fā)者能夠象使用WAP 1.x協(xié)議一樣運用TCP/IP, HTTP和SSL, 以WAP2.0電話為目標進行開發(fā)。雖然現在難以確定這種雙向方法是否可行,這種做法無疑使WAP與World Wide Web Consortium 和IETF( Internet Engineering Task Force)的建議和標準更好的同步。WAP協(xié)議和3W協(xié)議的合并將很可能使無線Web應用更容易投入使用,但是如何設計一種可以良好運用于大或小的form factors的程序顯示還是具有一定的挑戰(zhàn)性的。Web設計師不得不用一種不同的方法在小型設備上進行頁面設計,同時平衡移動設備的優(yōu)點(諸如輕便性,及時性和位置識別性)和缺點(諸如傳輸速度慢,顯示屏太小,以及輸入法笨拙
之二:移動標示語言和開發(fā)要點
移動標示語言(Mobile Markup Languages),建立并傳送信息到移動設備上(例如Web電話,傳呼和手持設備)的過程和將其建立和傳送到臺式電腦或其他Web應用程序的過程相似。當然它們也有重要的差別。開發(fā)者必須因為移動設備屏幕更小,內存更小,計算能力較弱,以及數據流量更小而做出各種權衡。因此,許多傳送到移動設備中的內容沒有象在Web的目前標示標準HTML4.0的版本中那樣被完全格式化。這里有三種被推薦的替代方法:
·WML
·Compact HTML (cHTML)
·XHTML Basic 及 XHTML Mobile Profile
WAP是一套包含WML的協(xié)議,它符合XML1.0標準。WML是一個由WAP Forum設計并實施的全球工業(yè)標準。WAP2.0中對WML和低層傳輸協(xié)議進行了重要改進。WAP Forum設計的2.0版本將適應W3C中關于HTTP 和XHTML的標準,安全性更好,更新后的用戶界面和輸入法將跟上移動電話硬件的飛速發(fā)展。
移動標示語言開發(fā)要點:
·應重新設計內容和應用,尤其是面向移動設備的。
·應通過平衡移動設備的便攜性和屏幕大小以及數據流量而突出其特性。
·應使用中間件和服務器端生成動態(tài)頁面來支持多種標示語言。
cHTML是由Access公司推出的一種標示語言,于1998年被吸收成為W3C標準。cHTML因其用在日本DoCoMo公司提供的時下流行的i-mode無線Web服務中而名噪一時。cHTML和HTML結合使用讓i-mode應用發(fā)展得以輕松入門。結合DoCoMo公司的低成本B2C傳輸費用和i-mode在年輕人當中的聲望,cHTML的成功指日可待。
目前,cHTML和WML兩種語言處于競爭狀態(tài),CHTML的優(yōu)勢是普及廣,而對WML來說,作為XML語言的實現者以及被設備制造公司和內容供應商廣泛采納則是其優(yōu)勢所在。如今,cHTML和WML被溶入了結合所有最佳標示選項的HTML新版本-XHTML Basic 和 XHTML Mobile Profile。XHTML Basic 語言規(guī)范的制定者來自于各大公司,包括Openwave(Phone.com支持WML),Access Co. Ltd. (支持cHTML), W3C (從 XML 和 HTML 的角度出發(fā)), Sun, Ericsson, 以及Panasonic。
XHTML Basic是XML中對HTML4.01版本的實現。XHTML花費了相當長的時間改進了在HTML規(guī)范中的許多模棱兩可的問題。在XML的嚴格引進下,XHTML給瀏覽用器及其他瀏覽設備提供了清楚的頁面輸出導向,并允許使用“模塊”組件選擇處理瀏覽器性能的變化。XHTML是HTML的接替版,在未來的版本中所有的瀏覽器都將支持XHTML。
2000年12月,W3C發(fā)布了XHTML Basic 規(guī)范作為限定資源設備的推薦規(guī)范。2001年,WAP Forum 和DoCoMo正式采用XHTML Basic作為未來瀏覽器開發(fā)的基本標示語言。XHTML Basic是通過使用XHTML模塊來實現的XML文檔類型,這些模塊是構造XML文檔類型的“積木”。XHTML Mobile Profile是增加了用于顯示元素和內部style sheets模塊的XHTML Basic的擴展集。
符合WAP2.0技術的設備將通過同時支持WML 1.x 和 XHTML Basic或通過實現XSLT轉換來和WML1.x向下兼容。符合XHTML Basic規(guī)范的WAP2.0設備將具有先進的用戶界面,動畫效果,彈出式菜單以及顏色,這些將使得WAP內容與i-mode 內容一致。另外,Access公司和DoCoMo已就向XHTML Basic規(guī)范靠攏方面達成部分一致。
之三:多模式標示語言和開發(fā)要點
多模式標示語言(Multimodal Markup Languages)
對無線Web程序的開發(fā)者來說,最難的一關是設計用戶輸入法以及在設備上顯示出信息,這在很大程度上是一種使用性能大挑戰(zhàn)。對許多缺乏耐心的人來說在電話的數字鍵盤上打字是最為乏味和痛苦的。而且,電話機以及手持電話的屏幕太小也會使信息難以閱讀,并給大量信息的顯示造成一定困難。
現在有一種方法可以使這種情況得以改善,它可以在一定程度上解決問題,而且效果非常明顯:使用語音傳輸。每種電話的聽筒都有一個擴音器和揚聲器用于語音的傳入和傳出。很多PDA產品都配有擴音器和音質良好的揚聲器。有了這些語音傳輸工具,移動程序設計者就可以給用戶提供一種其他方法去捕獲和傳送信息。
多模式標示語言開發(fā)要點:
絕大多數人將電話作為通話手段,其次才是將它作為數據終端。
研究智能電話的Java開發(fā)者通過結合使用XHTML+Voice 和 SALT設計出多模式程序(包括語音,文本,圖形),并以此同時滿足消費者和公司的要求。
盡管XHTML+Voice 和 SALT還處于早期開發(fā)階段,但它們很可能迅速流行起來。而VoiceXML(XHTML+Voice 的前身)則被廣泛用于只傳輸聲音或其他交互式聲音回應程序當中。
但是如何將語音傳輸功能運用到無線Web應用中去呢?在VoiceXML中定義了一套用于捕獲和傳送語音的的語言,但它不支持例如文本,圖形或視頻等其他形式的輸入和輸出。IBM和Motorola以及Opera共同研制了一種在Web程序中加入聲音,文本和圖形等多種性能的的方法:模塊化 VoiceXML 2.0并將它結合到XHTML當中 (XHTML+Voice)。這種方法與W3C所提倡的在內容的形式化、使XHTML易于擴展及保持該語言的靈活性方面的指導思想相一致。XHTML+Voice支持語音合成,語音對話,命令,控件以及語音語法。
SALT(Speech Application Language Tags)是另一種解決方法,和XHTML+Voice不同,SALT 不但沒有借助于VoiceXML,反而特意避免VoiceXML的開發(fā)模式以及VoiceXML支持本語言中特有的重用性。SALT能夠充分利用支持語言的所有事件和腳本。例如,在使用HTML時,SALT標簽的用法就和其他HTML標簽一樣。SALT標簽可以通過使用腳本和包含屬性,方法和事件等進行設計,而這些屬性,方法和事件可以通過HTML頁面的文檔對象模式進行訪問。這并不是說SALT是綁定在HTML上的,其實SALT標簽能夠和SGML家族中的任何標示語言結合使用,比如Wireless Markup Language,Compact HTML,以及用在移動電話和手機上的具有新特性的XHTML profiles。同時開發(fā)者也可以將SALT和一些可視性標示結合使用,比如WML,XHTML,或用于只傳輸聲音(voice-only browsing)的標示(2000年12月,W3C發(fā)布了XHTML Basic 規(guī)范作為限定資源設備的推薦規(guī)范。2001年,WAP Forum 和DoCoMo正式采用XHTML Basic作為瀏覽器未來開發(fā)的基本標示語言。XHTML Basic是通過使用XHTML模塊來實現的XM在這一點上和VoiceXML很相似)。
之四:短信傳送和開發(fā)要點
短信傳送(Short Messaging)
Short Messaging Service (SMS) 短信息服務是指在無線電話或傳呼機等無線設備之間傳遞小段文字或數字數據的一種服務。SMS是一種相對較簡單和可靠的技術。SMS在1992年首次出現在GSM電話中,而今所有的主要無線設備都支持它,而且大多數移動電話都有發(fā)送和接收SMS信息的功能。有數據顯示僅在2001年的12月其間全球就有300億條文本消息被發(fā)送出去。用戶可以通過電話鍵將160個以內的數字或字母仔細地輸入一條SMS信息中。用戶也可以借助使用縮寫字母或者其他捷徑輕松完成信息輸入過程。
短信息開發(fā)要點:
SMS的地位已經確立;而EMS和MMS直到2002年底或更晚才會流行起來。
SMS并不容易開發(fā),將短信和程序結合起來的最簡單的方法是使用第三方工具,比如Simplewire的 Java SMS SDK 和 object XP jSMS。
EMS是SMS的升級版本,而MMS是其未來版本,它要求使用3G無線構架模式。
如果WAP2.0連同OpenWave中的新興瀏覽器能在今明兩年贏得市場,那么MMS會很快流行起來。
由于短信息的流行,老式的SMS面臨著革新。一種新的換代產品增強型信息服務(Enhanced Messaging Service EMS)問世了,它使用了SMS技術并新增了對二進制對象如聲音、圖像和動畫等的支持。EMS可以使用預加到手機中的圖像和聲音。接收的信息中可以參照這些對象而不用將其下載。由于EMS對象是二進制編碼,所以會使開發(fā)過程就變得更復雜一些,而且會比單一的文本信息載荷更容易出錯。因此在使用SMS或者EMS系統(tǒng)的界面中編寫代碼不是輕松的工作。Simplewire的 Java SMS SDK和object XP的 jSMS等產品將同各種SMSC進行交互的大量細節(jié)方面的內容掩藏了起來,并給用戶呈獻一種清晰的對象界面以執(zhí)行傳信功能。
一些手機制造商正在研究一種更為前衛(wèi)的多媒體短信發(fā)送功能。這種多媒體信息服務(MMS)是在SMS產生10周年后的一個新生代產品。MMS使用XML格式和現有的HTTP及WAP基礎結構。MMS在產業(yè)界有著強大的后盾,WAP Forum已將其加入新的WAP 2.0建議書中,而手機制造巨頭Nokia, Motorola, 和Ericsson也開始將MMS用于他們未來的產品中。MMS網絡將手機和其他MMS用戶連接到MMS代理和服務器上,它們會依次連接到Internet電子郵件服務器上,以及SMS和EMS系統(tǒng)中。這樣將會使開發(fā)者輕松進入傳信系統(tǒng)中,只要使它兼容于我們熟知的Web和無線開發(fā)界面及工具就可以了。
MMS已被安裝到50多種裝置上,但要普及的話恐怕要等到更快性能更好的第三代網絡和電話的問世了。在它的首次迭代過程中,MMS使用了W3Cd 一個標準-Synchronized Multimedia Integration Language( SMIL)和WAP的WML作為其基本語言在多媒體信息中體現其文本風格和色彩圖像。
之五:SyncML及開發(fā)要點
SyncML
信息化同步是無線設備產生之后應運而生的產物。負責管理著我們的日程安排,通訊簿,任務目錄和電子郵件的個人數字助理和智能電話通常并不能完全發(fā)揮其作用,除非將他們的信息庫與個人電腦中的類似信息庫或者企業(yè)信息服務器相連才能將其完全利用。有很多實現同步化的方法,但通常最簡便的方法也就是最好的方法:用一個普通協(xié)議將基于文本的更新材料從一個數據源傳到另一個。而SyncML就是這樣一種方法。
SyncML開發(fā)要點:
·數據同步化是電話和其他移動設備應用的需求。
·幾乎所有的同步化服務器產品提供者都支持SyncML。
·如果你自己處理同步化工作,請在SourceForge中查閱sync4j項目。
由Ericsson, IBM, Lotus, Motorola, Nokia, Matsushita, Openwave, Psion, 和 Starfish Software提供贊助,SyncML 聯(lián)盟建立和發(fā)行了SyncML協(xié)議,它是一種使依從該協(xié)議的設備、開發(fā)程序和服務在網絡中實現信息同步化的通用語言。SyncML用于在HTTP,WSP(會議層協(xié)議,基于WAP的無線Web應用),OBEX(一種對象交換協(xié)議,它基于紅外線和藍牙技術并用于構建多種操作系統(tǒng))和低層的TCP/IP以及電子郵件協(xié)議諸如SMTP, POP3, and IMAP當中。
SyncML協(xié)議使用XML語言來編譯命令和數據并旨在成為和HTTP,SSL,和WAP一樣的最好的Web協(xié)議,因此它兼容用于Web-friendly移動平臺(如J2ME)的開發(fā)程序。開發(fā)者只需使用最少的工具便可在移動程序中加入同步化性能。用來建立和讀取XML文檔的剖析器是處理XML執(zhí)行過程最好的方法,但卻不是必須的方法。一條SyncML信息本身就是一個經過處理的包含標題和正文的XML文檔。標題由SyncHdr元素和該信息的路由和版本信息組成。正文包括SyncBody元素和同步命令,以及相關數據。
正文部分是真正執(zhí)行處理過程的地方。SyncML指定13種必帶命令。例如,Add元素可以包括授權認證,指定同步化數據格式的元數據,以及數據本身。這個元數據可以直接被使用,例如,通過調用適當的XML命名空間來確定被附上的數據是一個vCard。然后該數據將出現在“text/x-vcard”命名空間里。
SyncMl語言有相應的SyncML框架支持,這種框架體現出用于完全的端到端交叉平臺同步化解決方案(幾乎包含所有移動設備,臺式機和服務器數據源)的結構,但是SyncML聯(lián)盟也不會擯棄現存的端對端單一平臺解決方案。Microsoft的 ActiveSync技術在Windows平臺上運行的很好并且Windows很可能是其單一平臺。然而我們還是期待Microsoft和Palm、IBM等大的移動電話制造商合作,那么其他制造商將有可能實現同單一設備中普通實例間的同步化。
摘自 JavaResearch