本文转自IBM DeveloperWorks中国网站
如果您的企业已经依赖于使用多层的企业 Java 应用,那么您也许比想象中更接近无线科技的未来。通过描述一个样本应用,Aashish Patil 向您展示了如何用最少的人力物力把您现有的企业 Java 基础构件连接到无线网络中去。使用现有的 EJB、修改过的 Servlet 以及新的 WML 和 WMLScript 页面会使这个过程产生一个飞跃。
无线应用协议(Wireless Application Protocol,WAP)可以提高一个企业现有 Web 体系结构的含金量。如果您已经使用了企业 Java 应用,您可以容易地将它们与 WAP 服务集成,这样可以为移动工作群体带来有用的数据和功能。在这篇文章里,我会涉及到使用与 WAP 相关的 J2EE 的基本要素,然后创建一个 WAP/企业 Java 样本应用,以展示您如何把自己的 EJB 连接到无线网络中去。
背景:J2EE 和 WAP
在阅读本文前,您应该对 Java 2 平台,Enterprise Edition(J2EE)体系结构有个基本的了解。您可以通过下面的参考资料章节找到关于 J2EE 的更多信息的链接。作为一个回顾,下面是一张为台式客户机设计的典型 J2EE 应用的示意图。
图 1 — J2EE 应用结构
在图 1 中,包含 JavaServer Page(JSP)和 Servlet 的那一层负责
生成动态 HTML 页面。而在 WAP 应用中,这一层将生成动态的无线标记语言(Wireless Markup Language,简称 WML)页面。因此,为了转换一个标准的 J2EE 应用使之为移动设备所使用,您将不得不编写新的 JSP,并且在某些情况下,还要编写新的 Servlet。企业 JavaBean(EJB)保持不变,因为它们与数据表现无关。
有些人认为 Servlet 无需更改,或者说:只要把 Servlet 的输出简单地重定向到生成动态 WML 页面的 JSP 上就已经足够了。然而,Servlet 不能区别从台式机和从 WAP 设备发来的请求;既然 WAP 应用可能无法实现基于 Web 的体系结构的所有功能,所以在这方面并没有混淆的地方,这一点很重要。也正由于此,开发人员通常为 WAP 应用设计新的 Servlet。然而在大多数情况下,这些 Servlet 与那些在基于 Web 的体系结构上提供类似功能的 Servlet 非常相似。
在图 1 中没有出现但对 WAP 应用又很重要的另一个组件是 WAP 网关。这个组件负责 WAP 栈和 Internet 栈之间的相互转换。
图 2 是图 1 的改进版,显示了使用 WAP 设备作为客户端的 J2EE 应用的结构:
图 2 — WAP/J2EE 应用的结构
|