轻松掌握无线开发-国际前沿技术与开发方式介绍(原创)

(说明:本文讨论的是无线解决方案的应用层开发,不设计底层技术如蓝牙/Brew等等)

长期以来,大家都在讨论WML和J2ME,似乎这是无线解决方案的唯一选择,而且似乎无线开发成为了一个特定的领域,对于不熟悉无线技术或标准的软件开发人员好像设置了一道天然屏障,有很多新技术需要学习

实际上,无线化开发在一定前提下是一件非常容易的事情,对于任何熟悉BS开发的软件人员只需要几天的时间就可以完全掌握。

***********************************************************

首先,我们可以一起分析一下传统基于PC客户端的开发和无线开发的区别:
1. 用户访问的终端设备由单一PC变为多种多样的无线设备。
2。支持的页面标准不同,由html/xml变为不同设备支持的各种格式,如PC支持html4.0, PDA支持HTML3.2,传统手机支持wml1.x,高端手机支持XHTML MP
3。部分页面技术的支持发生了改变,如大多手机不支持JavaScript或只支持低版本Script,CSS不能完全被支持
4。部分展现特性发生改变,如很多手机设备不支持表格,如手机相对PC又多了打电话功能需要被支持,如有些设备只支持GIF,不支持JPG。。。。
5。其他。。。。。

其次,分析一下当前众多使用 WML/XHTML 开发无线应用的困境:
1。因为设备屏幕大小不同、分辨率不同、浏览器不同,开发者需要针对不同设备编写多套页面以适应设备展现,这意味着,如果真正希望在每个设备上系统页面都得到很好的展现,每个页面都需要写N套。目前中国市场的移动设备(PDA/PocketPC/Palm/手机)共有764种(截至今年7月初),设想一个软件系统有100个页面,则需要编写76400个页面,其开发和维护量可想而知。因此,往往开发商只能关注高端手机,放弃中低端市场,同时只采取折中的办法,大体适配一下完事。
2。开发者无法得到详尽的设备库。往往谈到无线设备的属性描述,大家都在说UAProfile,也就是手机厂商提供的设备描述文件。可实际情况是,UAProfile并不是一个行业标准,很多厂商并未提供或者仅仅提供部分属性,同时UAProfile并不能完全准确的描述设备的各种特性。举例说明,往往一个UAProfile中描述该设备DeckSize是50K,但实际开发过程中,会发现50k的页面根本不能完整展现。
3。开发者只能从WAP网关得到一些信息,而因为网关厂家的不同,得到的信息往往不准确。

再次,分析一下J2ME的开发方式:
1。诚然,J2ME会是一种解决思路,特别是需要调用设备本身功能的情况下,速度相对也比较快。但设备多种多样,未必都支持J2ME支持的很好。
2。J2ME的开发方式类似于传统的CS客户端/服务端开发方式,真的适合大多无线解决方案么?大家回顾一下过去CS方式的种种弊端,版本升级、系统维护,想起来大家估计头就大了,这也是为何我们大多应用都转向BS方式了。
3。如果是面向公众的应用,能希望大多手机玩家都知道如何安装客户端软件么?

当然,J2ME的技术还是有很多非常有用的应用环境的,只是在此讨论的主要是面向公众(设备多样化)的无线应用,例如传统Web应用的无线化扩展,如移动办公等等。

**********************************************
经过上面分析,总结无线化应用开发的几个难点:
1。设备多样性,很难让所有设备用户都得到很好的用户使用体验
2。与传统开发的区别主要在于展现层上
3。J2ME方式在面向设备多样性的情况下只是BS方式的一种补充,完全J2ME开发方式只是当前的过渡型方案。
4。开发和维护的成本比较高

因此,我们很容易想到,最简单的解决办法就是----使用某种类似中间件的产品并采用BS方式开发,让我们的开发实现设备无关性,不用考虑用户到底使用什么样的设备,展现的转换处理交给这个产品去考虑。

**********************************************
国际标准化组织W3C自然充分考虑了上述的问题,并且成立了相应的子委员会MWI(Mobile Web Initiative),专门制订设备无关性的相关标准,各大设备厂商如Nokia, Motorola等都是其成员。

长期跟踪新技术的软件开发人员会发现,实际上现在设备无关性开发已经有了不少产品,很多大的软件平台提供商都在致力于提供相关平台。

在此,我简单介绍一下:
这些无线开发平台提供商分为两类:传统的中间件提供商(如IBM/Oracle/BEA)和专业无线应用平台提供商(目前只有MobileAware/Volantis/Drutt三家,其中MobileAware和Volantis是MWI行业标准的主要推动者也是全球该领域市场两大主流,Drutt似乎转向关注IPTV)

对当前国际市场上的相关平台进行分析,大厂商的相关产品只是其整体平台的一个小部分,因此无论从技术成熟度还是使用方便程度上,与专业无线开发平台提供商的产品均不具备可比性(在全球市场上也未形成竞争),相信使用过 IBM和oracle相关产品的朋友对这个评语会比较认可。而BEA则非常策略的选择集成MobileAware的相关产品。(因为我个人工作身份原因,不便对这些厂商产品进行过多主观比较和分析)

对于大厂商的边缘产品和专业公司的产品,实际上也没有比较的意义,洗发水也有N合1的,大概没有人会把飘柔3合1洗发水含的护发素和专业的护发用品进行比较。

************************************************
因此,这里只简单介绍一下专业无线应用平台提供商MobileAware(爱尔兰摩宝威有限公司)和其主打产品MobileAware Interaction Server(MIS)。

MobileAware是全球范围内设备无关性开发平台领域的个中翘楚,自1999年成立以来,一直推动和主导相关行业标准的制订。全球最大的电信设备提供商和集成商爱立信在全球范围内只要涉及无线设备适配均采用MIS,可见一斑。今年初亚太代表处在北京成立,爱尔兰总理亲自前来主持剪彩仪式,对于一个软件公司,有点意思吧。

个人认为,MobileAware能够在这个领域领先,很大程度取决于公司的技术领袖人物--Dr Rotan Hanrahan,绝对的偶像级人物,在W3C MWI Steering Committee举足轻重。

废话少说,介绍一下MIS:
MIS由两大块组成:
1。完备的设备库,几乎全世界所有可浏览设备的信息均囊括其中,且每两周全球升级一次。简单比较一下:从网关可获得的设备属性信息大概十几二十个,从UAProfile(如果有的话)大概80个,而MIS的设备库对每个设备都有超过260个属性,均可作为开发属性。
2。高度智能的页面转换系统。从页面编码方式的转换(从XHTML到WML/CHTML/XHTML MP/HTML),到图片的自动格式转换和尺寸转换,到页面自动分层(设备memory相关)等等,完全是自动化设备适配。开发者在此基础上需要开发的,只是使用14个HTML标签通过插入原页面的方式编写一些简单的针对不同类型设备页面展现策略。而且一次编写一个页面后,不同设备访问时MIS自动进行处理展现完全不同的效果。

通过上面介绍,大家可以发现,可以完全不了解无线通讯的底层协议,也不必考虑众多的页面编码方式,编写简单的XHTML(XHTML与HTML的差别太小了),就可以编写支持所有设备(注:当然包括PC, 维护要把PC和手机分那么清楚呢)的BS应用系统了。

MIS是基于标准J2EE的,这意味着MIS可以运行在所有的J2EE server上,包括开源的tomcat和jboss,而且从一个server搬迁到另外一个server上,拷贝几个文件过去就完成了,1分钟搞定。

这里有我整理的MobileAware资料中心

http://21414.vhost.cncbiz.com

感兴趣的朋友可以在那里一个页面上下载所有需要的介绍、软件、试用license、教程、demo、flash。(个人比较喜欢傻瓜式的,不喜欢到一个网站到处找。)当然所有的东西和尚未收集的都可以在 www.mobileaware.com/developer/index.jsp 找到

个人体会,一个会jsp的软件人员,在2天时间内可以完全掌握所有开发技术,就十几个HTML标签嘛,不必花时间学习什么WML、CHTML等等。当然,对于软件开发,无论多简单的技术,会做和做得好永远是两回事。

*******************************************************
另一家无线应用平台提供商Volantis也绝对是个很牛的公司,其产品采用较大不同的策略,例如采用自己独立的server和特有的页面编写方式。个人感觉学习难度似乎大一些,但我了解的确不是很深,不多介绍,怕误导各位。大家也可以到Volantis的网站获得相关信息。

*******************************************************
(申明:虽然我个人工作于MobileAware,但毕竟是技术人员,因此在此避宣传之嫌,仅仅为与各位同行技术交流,有兴趣的朋友欢迎交流)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值