从口袋到数据包
在九月刊(第 77 期)中,我们的封面故事标题为“下一次爆炸:嵌入式 Linux、XML 和即时消息的爆炸性组合”。这是一篇几乎完全关于使能技术的文章,而不是它们生产的商品:一种关注这个领域的东西。当时,在三个命名的类别中都有很多东西可以找到,但在共享空间中还没有任何东西。
现在有了。出现在该空间中的第一件事(根据相关方的说法——我们身处开源领域,因此可能还有其他)是“Jabber Guys”(Jabber.org 和 Jabber.com 都有)和 Transvirtual 之间正在进行的工作,Transvirtual 是一家小型但顽固的嵌入式开发公司,该公司显著提供了 PocketLinux,他们在八月份的 LinuxWorld Expo 和十月份的亚特兰大 Linux Showcase 上,在渴望的程序员人群中演示了 PocketLinux。
在十一月的 Comdex 上,他们将展示这项新合作的第一个成果:两台 Compaq iPAQ 手持设备通过 Jabber 的全 XML 开源即时消息系统交换 XML 流。
昨天,我与 Transvirtual 的三位人士进行了交谈:创始人、总裁兼首席执行官 Timothy Wilkinson;营销副总裁 Tony Fader 和高级开发人员 Paul Fisher。我成功录制了与 Tony 和 Paul 的对话,结果如下。
ELJ: 您是第一个以某种方式将嵌入式 Linux 和基于 XML 的即时消息结合在一起的人吗?
Paul: 是的。至少我们是第一个使用 Jabber(基于 XML 的即时消息)作为通用传输工具的人。
Tony: Transvirtual 正在做的几件前沿事情引起了相当大的兴趣。首先,我们宣布开放 Kaffe 自定义版,这是我们对 Java 兼容虚拟机进行净室实现的版本。Kaffe 自定义版具有直接针对嵌入式领域的扩展和优化。其次,我们构建了一个框架,从 Linux 向下延伸到 XML,向上延伸到 XML,使您可以使用 XML 和 Java 编写应用程序,然后在 Linux 上运行它们。第三,正如 Paul 指出的那样,我们正在使用 Jabber 作为我们的传输系统。
Paul: 实际上,有很多应用程序工作可以在 XML 领域完成,这很酷。
Tony: 今天的大多数应用程序都在朝着以文档为中心、以网络为中心的模型发展,因此 XML 显然是一个非常优雅的解决方案。
ELJ: 详细介绍一下 Kaffe。它是一个 JVM——
Tony: 它与 Java 兼容,但出于法律原因,我们不能说它是一个 Java 虚拟机。事实是,在任何情况下,它都不再仅仅是“JavaVM”,因此我们更愿意称其为 Kaffe OpenVM。
ELJ: 它是你们的,对吧?
Tony: Kaffe 是社区的。Kaffe 诞生的幕后故事是,Tim Wilkinson 在 Java 1.0 发布后阅读了其许可证,并说:“胡说八道,我不会签署它。” 然后,他在接下来的三个星期里,利用业余时间对初始规范进行了净室处理。Kaffe 的第一个实现于 1996 年末为 FreeBSD 提供。
ELJ: 它比 Java 强在哪里?
Tony: 它实际上是 Java 规范的超集。我们扩展了我们的 AWT(抽象窗口工具包)以支持集成的帧缓冲图形库。我们扩展了 Kaffe 以集成 XML。我们向下扩展到 Linux 以实现诸如 Linux 视频和 MP3 播放之类的功能。
ELJ: BSD 当时在嵌入式领域吗?
Tony: 不,第一个 BSD 版本是用于桌面版(GPL)。当时,我们也在内部维护了一个自定义版。为了产生收入,我们将自定义版移植到 Wind River 的 VXworks、LynxOS、SMX、WinCE 等嵌入式操作系统。我们曾经将 Kaffe 移植到大约 20 种不同的嵌入式操作系统。当然,所有这些操作系统现在都被 Linux 的浪潮淹没了。今天,由于 Linux 出色的可移植性、可扩展性和开源性,我们看到嵌入式领域的操作系统市场比过去 20 年来的任何时候都更具流动性。
ELJ: 在 90 年代初期,我与日立合作推出 SH 处理器时,一直在嵌入式领域徘徊。在那些日子里,嵌入式世界处于中世纪。每个行业都是一个孤立的城邦,像烟囱一样从某些处理器和某些操作系统的神秘组合中升起。
Tony: 你是自己做的,是的。
ELJ: 每个行业都是孤立的、独立的且互不沟通的。安全系统、工厂自动化、过程控制,随便你怎么说——它们都处于一个与世隔绝的世界中。当您聘请专业人员安装智能电话、安全、计算机网络和家庭娱乐系统时,您甚至可以在自己家中看到这一点。它们都是完全独立的行业,使用完全独立的解决方案。但是就在今年,当我们开始深入报道这个话题时,我们发现 Linux 已经有点占据了主导地位,突然之间,嵌入式智能与互联网和网络连接的前景出现了。突然之间,您可以开发跨越和贯穿所有这些不同行业的应用程序。这一切都非常有希望,但您认为我们现在处于什么位置?
Tony: 我会说 Linux 刚刚成为嵌入式领域的可行解决方案。也许就在去年。我们在经典嵌入式系统中看到的是朝着 POSIX 合规性迈进。我们看到了公司——Tandem、Wang 和所有这些其他旧的终端系统,每个系统都有自己的标准和问题。随着真正的网络和开源开发工具的出现,我们看到整个嵌入式领域都在朝着 POSIX 合规性迈进。从闭源 POSIX 兼容操作系统到开源 POSIX 兼容操作系统,这是一个非常小且合乎逻辑的步骤。这就是 Linux。
Paul: 而且我们现在获得了足够快的芯片来运行 Linux。而且这些天内存也便宜得多,处理能力也随之提高。
ELJ: 令我感兴趣的是,你们这些人已经在嵌入式领域工作了这么长时间。一件有趣的事情是,许多经典的嵌入式操作系统人员现在都在销售 Linux。Colin Hunter 是 Transmeta 的创始人。Jim Ready 拥有 MontaVista。Michael Tiemann 和 Cygnus 是 Red Hat 的一部分。Lynx 现在是 LynuxWorks。
Tony: 是的,行业的发展势头惊人。这真的很令人兴奋。
ELJ: 令我惊讶的是,当每个人都在等待 Linux 在桌面上取得成功时,它似乎已经跳跃式地进入了各处的嵌入式设备。相对于 Windows 而言,它可能仍然在传统桌面上无处可寻,并且在服务器中具有很强的竞争力,但至少它确实处于在嵌入式领域获胜的位置。
Paul: 而且 Linux 也永远不会消失。
Tony: 当我从开发转向营销时,我回到了 Windows,只是为了能够与外部公司的营销团队进行互操作。现在,我正在逐步回到 Linux。简单的事实是,Windows 无法再跟上步伐。Linux 开发的步伐太快了。由于这种现实世界的经验,我认为 Linux 甚至开始在桌面上变得可行。
ELJ: 讽刺意味十足。很容易陷入对立的事情。Linux 据说正在为桌面和服务器而战。但如果你看看数字,Linux 和 Windows 都在这两个领域取得了成功。两者都在增长。没有人在这里失败。但在嵌入式领域,Linux 正处于巨大的发展势头。我认为 Linux 真的看起来像这里的大赢家。这有点像基准事物。一种基本商品,而不是通常意义上的竞争性操作系统。
Tony: 您关于 Linux 跳跃式发展经典桌面并进入这些资源受限的小型环境的观点绝对正确。事情将会如此。
ELJ: 你们推出了 PocketLinux,它在 Linux 展会上大受欢迎。我甚至无法挤进人群与你交谈。
Tony: 是的,太疯狂了。我们喜欢它!
ELJ: 你们在那里有 VTech Helio,我收集到它主要是一个开发平台。你们认为这项业务将走向何方?我说的是非 Palm PDA:Helio、Casio。它们比 Palm 更强大,但它们也有一些缺点——例如,尺寸。
Paul: 不幸的是,Palm 的处理器仍然太弱,无法以有用的方式支持 Linux。它实际上只是为了完成它所做的事情而制造的。
ELJ: 那么,你需要这些其他的、稍微更强大的 PDA 来运行 Linux。
Paul: 是的。而且存在权衡。
Tony: 它们耗尽电池电量。它们在这方面简直太糟糕了。环境责任是我们非常关心的问题。目前,Helio 使用 AAA 电池供电,这当然还有改进的余地。
Paul: 我们刚刚将电源管理添加到 Helio 中。
Tony: 而且我们已建议 VTech 采用可充电电池型号,我相信他们正在这样做。
ELJ: 尽管如此,每个人都在努力缩小尺寸,而不是增大尺寸——就像 Palm 那样,它发明了这种外形尺寸。
Tony: 对。
ELJ: 但在这个阶段,关键的事情似乎是,你们现在拥有一个 Linux 开发平台,该平台对第三方非常有吸引力。再加上基于 XML 的即时消息,它开启了各种可能性。
Tony: 这不仅仅是 XML 消息传递。GUI 和数据层也是 XML。XML 构成了设备的整个表示层。GUI 可以像网页一样编写,应用程序像 Web 应用程序一样编写。对于一些非常具有挑战性的问题,这是一个优雅的解决方案。
Paul: 在 PocketLinux 的情况下,它实际上只是在整个系统内部传输的 XML。因此,将其在外部传输也是有道理的,这就是 Jabber 的用武之地。我们都是全 XML 的。
ELJ: 如果您将 XML 视为您传输的东西——您传输的东西——那么 Jabber 就开始变得有意义了。
Paul: 完全正确,它为 XML 数据提供了寻址和传递机制。
ELJ: 基本上是 XML 路由。
Paul: 对。如果我们有一个 XML 文档,我们只需将其包装在 Jabber 数据包中,寻址它,将其发送到 Jabber 服务器,这就是我们所关心的全部内容。确保交付是服务器的责任。
ELJ: Jabber 的一个方便之处在于,与封闭服务器即时消息系统(尤其是 AOL 和 ICQ)不同,Jabber 像 Apache 或 Sendmail 一样部署为免费提供的基于服务器的互联网服务。
Paul: 是的。而且 Jabber 服务器也被设计成非常模块化的,因此很容易将其他服务插入到服务器中。
ELJ: 它可以扩展到多大规模?Jabber 可以一次为数百万个客户端提供服务吗?
Paul: 现在正在重写 Jabber 服务器,这使得一台服务器上最多可以容纳 50,000 个用户。由于 Jabber 是高度分布式的,因此很容易拥有一个服务器场,该服务器场允许扩展到无限量。就像 Web 扩展一样。而且它真的很快。他们在扩展方面做得非常好。
Tony: 我的理解是,他们已经重写了它,使其具有非凡的可扩展性,这对于我们的使用来说非常理想。
Paul: 在商业方面,他们正瞄准企业、电话公司和 ISP,这些地方拥有数量惊人的用户。
ELJ: 我想与你们一起探讨的一件事是,Jabber 和嵌入式基于 XML 的 IM 所做的事情,与传统 IM 获得的非常不同,传统 IM 我们将其与好友列表、聊天以及 AOL 和 ICQ 联系起来。从概念上讲,传递 XML 文档对于各种有趣的事情来说是意义重大的,这些事情与那些传统的 IM 活动几乎没有关系。你们是如何看待这一点的,你们是如何想象人们将如何使用它的?在我看来,我们必须努力摆脱 IM 的传统含义。
Paul: Jabber.com 的人如此关注我们的原因之一是,我们都对实时会议——任何相对实时的东西感兴趣。他们最近推出的一项功能是 RSS 新闻功能,例如,使用您的客户端,您可以注册以获取特定的新闻提要。所以我们有这个 Weather Underground 示例。每当天气变化时,就会发送即时消息作为新鲜的新闻项目。您可以将天气更新通过 XML 即时消息从 Weather Underground 推送到需要当地天气预报的客户端,例如他们的 PDA 上。
ELJ: 我看到了在这里成为一名开发人员的真正商机。
Tony: 尤其是因为它真的很容易组合应用程序——非常容易,就像编写活动的网页一样。
Paul: 这就是我们如此兴奋的原因。组合一些 XML,几行 Java,你就完成了。这比开发标准的 Java 小程序或程序要快得多。
ELJ: 给我一些例子,即使它们尚未开发,说明这会带来什么。
Paul: 你需要你的标准 PDA 应用程序,这些应用程序必须编写。
ELJ: 意味着有人必须复制 Palm 所做的事情。
Paul: 然而,我们的想法是使应用程序具有网络感知能力。我们正在走向一个您始终连接的世界。这是一件好事。如果人们需要联系您,他们可以联系到。如果您需要联系其他人,您可以联系到。应用程序将假定您已连接到互联网。因此,他们始终可以获取或发送他们需要的数据。
ELJ: 我看着 VTech Helio,我看到了一些仍然无法完成 Palm 所做的事情,但它意识到了网络,而 Palm 没有意识到网络。
Paul: 用 Helio 来说有点勉强。真正连接的将是下一代 PDA。
Tony: Helio 是一个伟大的开发平台,因为它资源有限。在如此受限的环境中编写有效的、功能齐全的 Palm III 风格的、准备好连接到网络的应用程序是一项挑战。关于 PocketLinux 需要指出的一点是,我们已经从将 Helio 热同步到桌面机器中推断出来,而是直接同步到网络。这是我们从头开始构建到框架中的东西。
Paul: 因此,假设您在 PDA 上输入电话号码或某种联系人。您同步到您的网站,这可以转到您的电话,例如。您没有理由输入任何东西超过一次。数据存储在 Jabber 服务器上,任何需要该数据的设备都可以轻松获取该数据。
ELJ: 在我六英尺范围内有两台 Linux 机器、两台 Mac、两台 PC 和两台 Palm。如果我同步的根本是 XML 数据,这些数据位于 Jabber 服务器上,我可以同步所有这些数据。现在,让这两台 Palm 在同一时间合理地处理多个盒子中的任何一个几乎是不可能的。我正在等待一个共享日历。你们正在做的事情给了我希望——一些原生于网络的东西,忽略硬件平台的垃圾,似乎是正确的方向。
Paul: 我们目前关注的两个领域是 PDA 和 Web。我们的想法是将您的日历——或任何东西——作为 XML 文档存储在 Jabber 服务器上。
Tony: 有一些开源项目,例如 Gnome 电子邮件系统,它们使用 XML 作为数据存储格式。这使得同步变得简单。
Paul: 由于它们基于 Gnome,因此 Helix Code 的所有格式都是 XML。我们实际上正在开发一个日历程序。完成后,它将能够理解他们的格式。您将其存储在 Jabber 服务器上,无论您是想从 Web 上的 Helix Code Evolution 应用程序还是从 PDA 获取它,都很容易做到。您可能还想查看 Brainfood,它为我们做了很多 Web 开发工作。他们参与了 Debian。
ELJ: 并且协调更改将取决于观察所有这些的应用程序?
Paul: 您基本上只需发出一个 XML 请求,内容是“请给我 Doc Searls 的当前日历。” 然后 Jabber 服务器将回复此 XML,即您的当前日历。弄清楚如何处理该数据将是日历应用程序的责任。这真的是使用 Jabber 作为通用 XML 传输工具的一个很好的例子。
ELJ: 因此,应用程序开发人员本质上是在为该传输工具编写平台?
Tony: 对。
ELJ: 那么你们是如何发现 Jabber 的?那里发生了什么?
Tony: Jabber 的人有点在 LinuxWorld 上追踪到我们,并要求我们调查合作事宜。我们当时被淹没了,所以我们直到后来才开始研究他们的技术。当我们这样做时,我们发现它是一个完美的匹配。他们的技术与我们正在做的事情非常吻合。还有其他消息传递系统,但它们不是基于 XML 的,或者它们不是为即时消息而设计的。
ELJ: 你们正在做的事情,加上 Jabber 的人在做的事情,加上 Linux 内核的最新技术,加上手机和 PDA 等移动设备的趋势……这些加起来是否构成了一个平台,完全邀请了一个全新的开发类别?我们是否到了我可以将这些东西放在一起,加上一个开发计划,去找风险投资并获得资金的地步?
Tony: 编写应用程序?
ELJ: 是的。
Paul: 我不得不说是的。
Tony: 是的。我想我不得不同意。只需看看我们行业中开源解决方案的激增。如果您一直在关注 Linux 的整体增长,尤其是 Linux 在嵌入式市场中的蓬勃发展,那么它已经非常引人注目了。当您将 Kaffe OpenVM 的优雅性以及 XML 作为解决与硬件差异化相关的一系列复杂挑战的解决方案添加到该等式中时……那么 PocketLinux 就会变得非常非常有吸引力。
Paul: 我们实际上也有一个即将到来的发货日期,即在 Comdex 时间框架内交付给各个供应商。这就是人们将为其编写应用程序的东西。它是 PocketLinux 框架。
Tony: 如果您查看这些系统并了解这些标准的普遍性,就会清楚地看到这是一组最佳工具。我想指出的是,尚未为此框架编写一个医疗应用程序,一个物流应用程序,一个运输、制造或仓储应用程序。这里的开发范例是能够编写一个应用程序,该应用程序可以使用此免许可框架适应任意数量的不同领域,并且该框架允许快速开发跨平台应用程序。这非常引人注目。
Paul: 我们当前用于展示应用程序框架的演示应用程序是概念验证的东西。因此,这实际上是一个拥有一个为即将到来的开发人员(包括我们自己)准备好的框架的案例。
ELJ: 我想这会使你们成为收购的理想对象。
Tony: 我告诉你,Doc,我玩得很开心。我玩得很开心。当我们在 1997 年创立这家公司时,只有 Tim 和我,Peter [Mehlitz,现任工程副总裁] 还在德国。Tim 和我曾经在伯克利第四街长廊一间没有暖气的房间里工作。今天,看到 Linux、Java、XML 和嵌入式技术专家的精英们在这里为这个项目疯狂工作,真是令人非常欣慰。我不想停止做这件事。收购不在我的考虑范围之内。我想将这些工具带给行业和社区。
ELJ: 那么,您会将 PocketLinux 称为嵌入式发行版吗?
Tony: 它是一个端到端平台。一个完整的解决方案。PocketLinux 作为一个系统,其范围是全面的。
ELJ: 这适用于各种处理器吗?StrongArm、PowerPC……
Paul: 这就是 Linux 优势的体现。我们不必花费时间编写核心操作系统。
ELJ: 在这方面帮我一下。Linux 最初是针对 x86 指令集的。那么你如何处理那里不同的金属呢?
Paul: 如果你能给我们一个运行 Linux 的设备,我们可以将 PocketLinux 移植到它上面。
Tony: 我相信 Linux 已经被移植到比任何其他操作系统更多的处理器,数量级更高。这就是它如此吸引我们的原因之一。
Paul: 就 Helio 的 MIPS 端口而言,我们在内核方面做了很多工作,用于电源管理,在扬声器支持和其他领域,例如。还有许多其他开发人员也在那里,使这些内核更好更快,并将它们移植到不同的硬件。
ELJ: 你们的任何工作最终会回到主内核中吗?
Tony: 一直如此。
Paul: 内核有一些用于某些嵌入式端口的小分支,我们的东西已经进入了这些分支。例如,用于 MIPS 的东西又回到了那个树中。
Tony: 我们不维护内核的内部 CVS(并发版本系统)树。我们有人员破解内核,但这些更改和优化会直接交还给开源社区,并通过 Web 上的 CVS 树免费提供。
ELJ: 在两到三代之后,当这些设备移动起来并通过蓝牙连接时,会发生什么?
Paul: 那就是您开始意识到平台优势的时候。杀手级应用是无线。
ELJ: 其中的门控因素是什么?是蓝牙吗?是人们将其放入硬件中吗?是 SyncML 吗?
Paul: 嗯,SyncML 只是为特定的 PDA 应用程序定义了 XML DTD。但在 PDA 上实现真正无线支持的第一步将以蓝牙的形式出现。摩托罗拉计划在明年第一季度交付他们的第一个完整的蓝牙套件。
Tony: 在 Comdex 上,我们将展示两台 iPAQ,它们都装有 802.11 无线 LAN 卡,彼此相距 100 英尺,来回发送即时消息。这些东西我们现在就在这里,在内部。传输机制是 Jabber。
Paul: 我在我的 iPAQ 中输入一条消息,它从那里进入 Jabber 服务器,然后从那里进入另一台 iPAQ。
Tony: 它是开源框架中的无线即时消息。我们对此感到非常兴奋。
ELJ: 蓝牙呢?
Tony: 即将到来。
Paul: 蓝牙的一大优势在于,就功耗要求而言,它比在 iPAQ 或笔记本电脑中插入 802.11 卡要低得多。它的功耗非常低。这是它被延迟这么久的原因之一。
ELJ: Jabber 包含的“状态检测”的概念怎么样?你们是否从中做出了一些东西?
Paul: 让我们再次以天气应用程序为例。您可以进行设置,以便每次您上线时,Jabber 服务器都会知道您的状态。它可以说“嘿,我在这里。” 服务器可以做出相应的响应,为您提供最新的天气图、日历更新或任何其他内容。
ELJ: 这有点带回了推送的概念,不是吗?
Paul: 是的,当然。每当客户端不期望数据时,就会使用推送技术——任何类型的警报,例如关于客户端正在关注的股票的新闻公告。客户端具有轻量级消息传递服务,然后该服务会将该消息传递给对它感兴趣的应用程序。
ELJ: 这到底是如何工作的?
Paul: 您的客户端应用程序向这个 ORB——对象请求代理注册。他们告诉它他们对哪些 XML 命名空间感兴趣。根据 XML 数据包传入的命名空间,这就是它也被发送到的应用程序。
ELJ: 您是如何进行命名空间协调的?如果您有很多不同的服务器和应用程序在这些服务器上运行,每个服务器和应用程序在各自的命名空间中都有不同的成员资格,并且存在一些重叠……我知道 Jabber 将您的基本名称视为电子邮件地址,但这不一定是这种情况。您如何处理所有这些?
Paul: 命名空间还附带一个资源。所以在我们的例子中,我们可能有一种 PocketLinux 服务器,所以我可能是 paul@pocketlinux.com/ipaq。例如,我也可能是 paul@pocketlinux.com/helio。如果我想向特定设备发送消息,我使用已经存在的相同资源机制。现在使用 Jabber,您可以使用多个客户端登录。您可以从工作场所或家中登录。您可以实际让服务器将消息专门定向到其中一个,而如果您删除该地址的资源部分,它将传递到任何在线的地址。
ELJ: 那么资源负责每个名称所属的空间?
Paul: 是的。
ELJ: 隐私和加密怎么样?
Paul: 我们有点依赖 Jabber 的人。在服务器到服务器连接的情况下,他们有一些措施到位——我认为是 SSL,但我不确定。他们还有一些东西可以使用 PGP 或 GPG 来签名或 b-签名和加密消息。因此,尤其是对于像 iPAQ 这样的设备,在上面放置一个隐私保护程序,并使用它与您的任何朋友安全地交谈是相当可行的。
ELJ: 各种手机和电话公司怎么样?他们对你们正在做的事情表现出兴趣了吗?
Tony: 我认为我可以肯定地说,来自世界各地的许多硬件制造商都对 PocketLinux 表达了不止一点的兴趣。
Paul: 还有 Jabber。
Tony: 是的,没错。如果 PocketLinux 有任何意义,那就是能够极其快速地编写无限数量和变体的极其引人注目的客户端应用程序。当然,将该框架与 Jabber 连接起来会创建一个系统,其中整体大于部分之和。我们很高兴与他们合作。
Paul: Jabber.com 的人专注于服务器。他们有即时消息客户端,即时消息是一个很酷的应用程序;但 Jabber 的用途远不止于此。这就是我们的客户端的用武之地。PocketLinux 是 Jabber 的客户端,您不仅限于即时消息。它是 PocketLinux 中通信框架的核心组成部分。
ELJ: 我以前没有想到能够非常快速地开发客户端的含义。
Tony: 同样,经典的即时消息是一个很棒的应用程序,但是您可以将 Jabber 用作通用 XML 传输工具做更多的事情。问题是我们倾向于根据可能有点过时的网络范例来理解即时消息。未来的网络将是这些始终开启、始终连接且以极快的速度连接的小型设备。我们将能够通过这些宽带管道推送的 XML 数据量将比几年前即时消息传递能够提供的数量级还要高。
ELJ: 这在种类上如此不同。这就是重点。这有点像从电报推断到电视。
Tony: 完全正确。
电子邮件:doc@ssc.com