10种无线应用程序技术全接触(上)
编者按:Java语言能够完善无线应用从而使开发者更好地满足企业的需求。一直以来,Java语言都是移动和无线应用程序的最佳平台,但是现有的技术使Java难以应用到应用程序中去。比如设备的处理功率能力不足,网速太慢和网络不安全等问题。直到设备和网络提升了速度才得以支持运用无线技术的应用程序。Java在使用网络资源方面强调的安全性和高效性使其成为在小而功能强大设备上(如智能电话和手持电话)构建企业应用程序的理想平台。这里列举出10种重要的能够完善无线应用程序的技术,以及它们对于Java开发者而言至关重要的原因。
之一:WAP技术
移动设备(诸如智能电话和PDA)正在被充分应用到企业应用架构之中。这种想法最初是逐渐潜入人心的,但是发展趋势却显而易见:企业用户正在将移动设备运用到日常工作当中。这就是结构设计者在勾画应用于整个企业的程序结构时需要考虑将Java运用到电话中(甚至给手机配备基本的上网功能)的原因。
基于Wireless Application Protocol (WAP)技术的具有浏览网页功能的手机在北美和欧洲一带逐渐流行起来。WAP是由无线应用协定论坛(the WAP Forum)发展并流传开来的,该论坛是由一群无线和通讯产业的公司组成,发布了能够在无线设备上所使用Web内容和应用的“产业标准” 规范。于近期被认可的WAP版本是2.0版,但要到2003年我们才可能看到支持该版本的手机批量问世。目前,WAP1.1和WAP1.2.1版本是最为流行的。
WAP开发要点:
在企业Web应用程序中将诸如电话和PDA等基于WAP的设备作为最终用户。
虽然通过使用HTTP和Html等闻名的协议会使WAP2.0开发更轻易些,但近期内我们仍需要以WAP1.x为途径进行开发。
编写服务器端代码使其可以生成HTML和WML,同时也要考虑屏幕大小和数据流量。
虽然有可用的代码转换器及HTML和WML间的转换器,但很少能够将设计漂亮的HTML页面转换成同样漂亮WML页面。你需要有非凡设计的中间件或使用系统自带的XML/XSL解决方法。
WAP Forum 在设计1.x版本的时候是经过深思熟虑的,但它和我们熟知和喜爱的3W协议 (比如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协议并将其加入WAP堆栈当中。如今WAP2.0开发者能够象使用WAP 1.x协议一样运用TCP/IP, HTTP和SSL, 以WAP2.0电话为目标进行开发。虽然现在难以确定这种双向方法是否可行,这种做法无疑使WAP与World Wide Web Consortium 和IETF( Internet Engineering Task Force)的建议和标准更好的同步。WAP协议和3W协议的合并将很可能使无线Web应用更轻易投入使用,但是如何设计一种可以良好运用于大或小的form factors的程序显示还是具有一定的挑战性的。Web设计师不得不用一种不同的方法在小型设备上进行页面设计,同时平衡移动设备的优点(诸如轻便性,及时性和位置识别性)和缺点(诸如传输速度慢,显示屏太小,以及输入法笨拙
之二:移动标示语言和开发要点
移动标示语言(Mobile Markup Languages),建立并传送信息到移动设备上(例如Web电话,传呼和手持设备)的过程和将其建立和传送到台式电脑或其他Web应用程序的过程相似。当然它们也有重要的差别。开发者必须因为移动设备屏幕更小,内存更小,计算能力较弱,以及数据流量更小而做出各种权衡。因此,许多传送到移动设备中的内容没有象在Web的目前标示标准HTML4.0的版本中那样被完全格式化。这里有三种被推荐的替代方法:
•WML
•Compact HTML (cHTML)
•XHTML Basic 及 XHTML Mobile Profile
WAP是一套包含WML的协议,它符合XML1.0标准。WML是一个由WAP Forum设计并实施的全球工业标准。WAP2.0中对WML和低层传输协议进行了重要改进。WAP Forum设计的2.0版本将适应W3C中关于HTTP 和XHTML的标准,安全性更好,更新后的用户界面和输入法将跟上移动电话硬件的飞速发展。
移动标示语言开发要点:
•应重新设计内容和应用,尤其是面向移动设备的。
•应通过平衡移动设备的便携性和屏幕大小以及数据流量而突出其特性。
•应使用中间件和服务器端生成动态页面来支持多种标示语言。
cHTML是由Access公司推出的一种标示语言,于1998年被吸收成为W3C标准。cHTML因其用在日本DoCoMo公司提供的时下流行的i-mode无线Web服务中而名噪一时。cHTML和HTML结合使用让i-mode应用发展得以轻松入门。结合DoCoMo公司的低成本B2C传输费用和i-mode在年轻人当中的声望,cHTML的成功指日可待。
目前,cHTML和WML两种语言处于竞争状态,CHTML的优势是普及广,而对WML来说,作为XML语言的实现者以及被设备制造公司和内容供给商广泛采纳则是其优势所在。如今,cHTML和WML被溶入了结合所有最佳标示选项的HTML新版本-XHTML Basic 和 XHTML Mobile Profile。XHTML Basic 语言规范的制定者来自于各大公司,包括Openwave(Phone.com支持WML),Access Co. Ltd. (支持cHTML), W3C (从 XML 和 HTML 的角度出发), Sun, EriCsson, 以及Panasonic。
XHTML Basic是XML中对HTML4.01版本的实现。XHTML花费了相当长的时间改进了在HTML规范中的许多模棱两可的问题。在XML的严格引进下,XHTML给浏览用器及其他浏览设备提供了清楚的页面输出导向,并答应使用“模块”组件选择处理浏览器性能的变化。XHTML是HTML的接替版,在未来的版本中所有的浏览器都将支持XHTML。
2000年12月,W3C发布了XHTML Basic 规范作为限定资源设备的推荐规范。2001年,WAP Forum 和DoCoMo正式采用XHTML Basic作为未来浏览器开发的基本标示语言。XHTML Basic是通过使用XHTML模块来实现的XML文档类型,这些模块是构造XML文档类型的“积木”。XHTML Mobile Profile是增加了用于显示元素和内部style sheets模块的XHTML Basic的扩展集。
符合WAP2.0技术的设备将通过同时支持WML 1.x 和 XHTML Basic或通过实现XSLT转换来和WML1.x向下兼容。符合XHTML Basic规范的WAP2.0设备将具有先进的用户界面,动画效果,弹出式菜单以及颜色,这些将使得WAP内容与i-mode 内容一致。另外,Access公司和DoCoMo已就向XHTML Basic规范靠拢方面达成部分一致。
之三:多模式标示语言和开发要点
多模式标示语言(Multimodal Markup Languages)
对无线Web程序的开发者来说,最难的一关是设计用户输入法以及在设备上显示出信息,这在很大程度上是一种使用性能大挑战。对许多缺乏耐心的人来说在电话的数字键盘上打字是最为乏味和痛苦的。而且,电话机以及手持电话的屏幕太小也会使信息难以阅读,并给大量信息的显示造成一定困难。
现在有一种方法可以使这种情况得以改善,它可以在一定程度上解决问题,而且效果非常明显:使用语音传输。每种电话的听筒都有一个扩音器和扬声器用于语音的传入和传出。很多PDA产品都配有扩音器和音质良好的扬声器。有了这些语音传输工具,移动程序设计者就可以给用户提供一种其他方法去捕捉和传送信息。
多模式标示语言开发要点:
绝大多数人将电话作为通话手段,其次才是将它作为数据终端。
研究智能电话的Java开发者通过结合使用XHTML+Voice 和 SALT设计出多模式程序(包括语音,文本,图形),并以此同时满足消费者和公司的要求。
尽管XHTML+Voice 和 SALT还处于早期开发阶段,但它们很可能迅速流行起来。而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的开发模式以及VoiceXML支持本语言中特有的重用性。SALT能够充分利用支持语言的所有事件和脚本。例如,在使用HTML时,SALT标签的用法就和其他HTML标签一样。SALT标签可以通过使用脚本和包含属性,方法和事件等进行设计,而这些属性,方法和事件可以通过HTML页面的文档对象模式进行访问。这并不是说SALT是绑定在HTML上的,其实SALT标签能够和SGML家族中的任何标示语言结合使用,比如Wireless Markup Language,Compact HTML,以及用在移动电话和手机上的具有新特性的XHTML profiles。同时开发者也可以将SALT和一些可视性标示结合使用,比如WML,XHTML,或用于只传输声音(voice-only browsing)的标示(2000年12月,W3C发布了XHTML Basic 规范作为限定资源设备的推荐规范。2001年,WAP Forum 和DoCoMo正式采用XHTML Basic作为浏览器未来开发的基本标示语言。XHTML Basic是通过使用XHT