`
linuxstuding
  • 浏览: 1229677 次
文章分类
社区版块
存档分类
最新评论

利用ArcIMS Java客户端发送地图到手机

 
阅读更多

编者按:IDC移动设备部的分析师Alex Slawsby预测2004年全球手机用户总数将达到14亿,而且销售势头没有减缓的迹象。这些手机功能无所不包:数码相机,游戏,电子邮件和越来越多的地图。作者论述了如何利用针对消费者和嵌入式设备的Java 2-Micro Edition( J2ME ),开发面向手机用户的ArcIMS客户端的技术。
面对不断攀升的手机销售数字,全球超过1亿部的J2ME的手机格外引人注目。J2ME设备的增加为手机网络运营商和应用开发商提供了扩展其服务的好机会。用户将从这种形势中获益,他们可以选择众多独立于蜂窝网络运营商的应用提供商。
人们通常随时携带手机,如此一来,这些手机就可以很好的被用来做定位服务,并通过一个地图服务客户端提供空间信息。虽然目前有许多地图服务可用于手机,但这些服务大都基于用户识别模块( SIM )工具或无线应用协议(WAP)的。这些标准的使用界面往往不够丰富和友好。另一方面,基于J2ME的设备高度支持交互式应用,支持特定设备的自定义设置。因此开发ArcIMS的无线地图浏览器是实现这一类型交互式应用的理想办法。
J2ME设备的缺点
当然,与个人电脑相比,大多数的J2ME设备功能相当有限。最明显的是:
·显示器小(单色96×56,彩色128×128 )。
·处理能力低。
·内存有限。通常提供不超过64 KB内存供应用代码使用,另外提供200KB给应用运行时使用。
·网络带宽窄,延迟时间长。
·用户界面有限(UI),输入设备(手机及其他无线设备没有普通键盘和鼠标)。
这些限制要求ArcIMS开发的J2ME客户端必须具有精妙的设计,以保证应用的完整无误,在该框架内运行并向用户提供多要素服务。
J2ME客户端和ArcIMS 服务器之间的通讯
实现基于J2ME的ArcIMS客户端的关键是无线客户端和服务器之间的通讯。ArcIMS有一个非常强大的基于XML的通信协议ArcXML。但不幸的是,J2ME设备通常没有足够动力和内存处理XML通讯,这种协议也就成为开发J2ME客户端的阻碍。当前J2ME设备的XML解析器消耗了很多本可以用到应用本身的内存。此外,大尺寸的XML消息也是一个大缺点。
为克服这些问题,作者设计了MultiProtocol二进制协议,专门用于地图浏览器和服务器之间的通信。该协议通过定义一套可相互发送的消息实现客户端与服务器的通信。该协议包含以下消息:
·MapMessage——用于一定范围和图像大小的地图请求和包含地图的返回
·IdentifyMessage——用于一个给定坐标的要素识别请求和包括识别要素的返回
·MetadataServiceMessage——用于获取地图服务器上的可利用服务信息
MultiProtocol还可以包括许多其他的定义消息。目前完成的有FeaturemMessage,用来获取一定范围内的要素信息;CrossStreetMessage,用来获取街道交叉点的位置识别。消息之间也可以相互组合(例如,CrossStreetMessage可包括MapMessage)。
为最大限度地利用的通讯通道,作者还设计该协议能够在单一的请求中发送或返回一个或多个信息。举例来说,客户端可在单一的请求中发送MapMessage和FeatureMessage消息,地图服务器处理两个消息,并返回MapMessage消息的地图图像和FeatureMessage消息的可利用要素信息,这两个信息是同时返回。
ArcIMS作为J2ME客户端的服务器
ArcIMS不支持这一二进制协议,因此需要中间件翻译MultiProtocol协议的请求到ArcXML和ArcXML对MultiProtocol的服务器返回。幸运的是,利用ArcIMS的JavaConnector库,可以通过定制Java类(即中间件)来实现这一功能。中间件增强了标准版ArcIMS的功能,将更多的服务提供给基于J2ME的无线客户端。中间件的目的是使每个MultiProtocol消息类型被自己的服务处理。例如,当手机通过MapMessage消息发送一个地图请求,中间件触发MapMessage服务,然后从JavaConnector中启动相应的对象和方法,生成地图图像,并通过MapMessage将其返回到手机。方案结构如图1所示。
图1:应用框架
中间件被封装为Java 2 Enterprise Edition ( J2EE)的Servlet,运行在基于Java Servlet技术的web服务器上。客户端使用J2ME的MIDP(Mobile Information Device Profile ),而服务器使用基于J2EE的应用程序接口(API)。因为客户机和服务器都使用Java编写,生成同一个MultiProtocol来提供消息处理代码和协议,所以MultiProtocol的一个重要特点就是能更快更容易地开发额外服务。客户端不能直接向服务器发送任何消息,反之亦然,这就有效地减少了可能的错误状态。
ArcIMS的J2ME地图客户端
移动地图浏览器(MEx)是面向能够连接互联网的小型Java设备的一个简单地图浏览器,如手机等。尽管应用大小限制为64KB,通常这些设备的功能比较有限,但这个J2ME的地图客户端包括了一般地图浏览器的所有重要功能,用户可以选择任意地图服务器,移动显示的地图,缩小与放大,识别地图上的对象,查看重要要素的地图小贴士。MEx能使用名字查找道路交叉点位置。显示的地图也可以保存为一个书签,用户可以轻松的返回和继续浏览。如果设备有一个彩色的高分辨率显示屏,J2ME的地图客户端将完美的替代基于HTML的ArcIMS地图浏览器。
即将推出的MIDP 2.0 和Location API for J2ME
尽管当前的技术已经能够建立可行的手机地图浏览器应用,也必须考虑无线设备领域的最新技术进展。目前,有两项新技术值得一提:移动信息设备模式Mobile Information Device
MIDP 2.0是移动设备的一个新模式,已被嵌入到几种新设备(例如,诺基亚6600,摩托罗拉A760)。[模式是一个电子编程芯片的J2ME API。更多关于J2ME信息,见所附文章"What Is J2ME?"] 这个模式包括新的功能,如用户界面增强,能够获得进入网络的消息,并通过HTTPS支持加密通信。访问java.sun.com/products/midp/获取更多MIDP 2.0信息。
Location API for J2ME是作为J2ME的一个可选包开发的。API开发由Nokia公司牵头,参加的公司有:Motorola, Cisco, Sun, IBM, ESRI, Symbian, and Vodafone。Location API使设备得到当前位置等有关信息,但它没有指定用哪一种方法来确定位置。例如,可以利用如GPS的卫星方法,蜂窝网络方法,蓝牙的近程定位方法。开发也可能组合上述几种方法以取得最佳效果。更多有关信息可访问jcp.org/en/jsr/detail?id=179。作者认为未来这两种技术将集成到大多数无线设备中,使其成为更具吸引力的空间信息系统客户端。
总结
J2ME无线设备的普及,以及人们通常随时携带无线设备的事实,使J2ME平台成为开发空间客户端软件的一个很好选择。
上述具备空间属性的J2ME客户端可以很容易地应用到现在的大多数手机和个人数字助理( PDA )设备中,这样就很好的补充了标准ArcIMS客户端的应用,例如ArcExplorer或基于HTML的地图浏览器。

http://blog.cnw.cn/index.php/36933/viewspace-6797

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics