移动 P2P 消息传递,第 2 部分: 开发通用 P2P 网络的移动扩展
将移动设备变成 JXTA 和 Jabber 客户机
级别: 初级
Michael Juntao Yuan, 副研究员, 电子商务研究中心,德州大学奥斯汀分校
2003 年 6 月 20 日
诸如 JXTA 和 Jabber 这样的通用对等计算网络对于移动设备来说常常过于复杂。因此,需要通过中继工作的轻量级移动客户机或特定的体系结构来将那些 P2P 社区扩展到移动用户。在我们有关移动对等消息传递的系列文章的第二部分中,Michael Yuan 讨论了 JXME(J2ME JXTA 客户机项目)。我们将检查捆绑在 JXME 分发版(distribution)中的示例,以便向您说明如何使用 JXME API。另外,我们还会简要讨论开发移动 Jabber 应用程序的选项。
正如我们在 本系列文章的第 1 部分中讨论的那样,基于 SMS 的消息传递对于无线电话用户来说非常方便。但是,它不是适合于非电话式移动设备(如 PDA 和连接到 WAN 的手持设备)的消息传递平台。不同蜂窝网络之间的 SMS 消息传递(比如国际长途)也会很贵,甚至于在某些情况下是不可行的。在我们有关移动 P2P 消息传递的系列文章的第二部分也是最后一部分中,我们将向您介绍两个通用的对等网络 - JXTA P2P 和 Jabber 即时消息传递网络,您在不适于使用 SMS 的情况下可能使用它们。本文中的资料还会出现在我即将发表的 Prentice Hall 出版的“ Java Mobile Enterprise Application Development”一书中(请参阅下面的 参考资料一节以获取相关链接)。
JXTA 框架
JXTA 定义了一个用于对等网络的开放协议组。这些基于 XML 的协议描述了复杂的操作,比如对等点发现、端点路由、连接绑定、基本查询/应答消息交换和通过集中对等点进行的网络传播。对这些协议进行完整的描述超出了本文的范畴;感兴趣的读者应当参考 JXTA 官方网站以获取更多的信息或者阅读一些有关本主题的其它 developerWorks文章(请参阅下面的 参考资料一节以获取相关链接)。总的来说,JXTA 网络是由下面几个组件组成的:
- 对等点是任何 JXTA 网络的基本元素。对等点实现核心 JXTA 协议,并且独立于所有其它的对等点并且异步地与之进行操作。对等点提供应用程序和/或网络服务,并且能公布自己。
- 对等点组是对等点的集合。JXTA 定义了对等点用来创建、连接和监控各组的协议。对等点组提供服务,比如对等点发现、成员资格、访问控制、管道、解析器和监控。
- 管道表示对等点之间的虚拟连接。 点对点管道连接两个对等点; 传播管道连接广播对等点与多个侦听器。管道连接的对等点不一定要在物理上直接链接;可以通过多个中间管道来连接它们。
- 消息是通过管道在对等点和端点之间交换的数据。JXTA 为所有消息定义了 信封格式。每个对等点都可以定义自己的消息内容格式,只要该格式符合 XML 规范即可。但是,为了让两个对等点交换有意义的信息,所以它们必须理解彼此的消息格式。
- 公告是用来描述 JXTA 网络资源的元数据结构。所有的对等点和服务都理解公告。
JXTA 是通用的 P2P 框架,不只是用于处理简单的消息传递。它解决了象 P2P 文件共享、P2P 应用程序服务和协作的分布式计算之类的问题。JXTA 协议的设计旨在与任何实现技术无关,而 JXTA 的参考实现是构建于 Java 平台之上的。该参考实现使用 Java API 来封装 JXTA 协议消息,并提供了从 Java 应用程序访问 JXTA 网络的可编程方法。
用于移动设备的 JXTA
JXTA 的强大功能和灵活性是有代价的:复杂性。JXTA 对等点需要处理许多任务并在基于套接字的 XML 级上处理消息。这样的对等点可能太复杂,而无法在大多数移动设备上运行。另外,XML 或原始套接字支持都不是标准的 J2ME/MIDP 规范的组成部分。要使移动 P2P 用户可以使用 JXTA 网络,我们需要一组用于移动设备的轻量级 JXTA API。JXME 项目的目的是为 CLDC 和 MIDP 平台提供 JXTA API。它也能用于更高端的 J2ME 框架,比如 Personal Profile。![]()
