下一次爆炸:嵌入式 Linux、XML 和即时消息的爆炸性组合

作者:Doc Searls

Linux。它不仅仅用于电脑了。

自从 Linus 本人在 1997 年为 Transmeta 工作,开辟了通往移动市场的职业道路以来,他就一直在向我们传达这个信息。这个市场仅仅是更大范围设备中类似电脑的边缘部分,这些设备运行在“嵌入式”或“实时”微处理器及其操作系统之上。

最近,这个市场对 Linux 产生了巨大的需求——事实上,需求如此之大,以至于不难想象 Linux 很快就会成为商品化的嵌入式操作系统。原因如下

  • 开源代码

  • 世界最大且最活跃的开源开发社区

  • 成熟、经过验证且仍在快速发展

  • 体积小巧——一个嵌入式版本可以放入软盘

  • 模块化且易于定制

  • 原生网络

  • 众多开发工具

  • 免费——无需运行时版税

  • 一个获得大量媒体报道的热门话题

尽管 Linux 不是实时操作系统 (RTOS),但硬件世界的变化使得它在许多情况下比传统的 RTOS 更受欢迎。传统的 RTOS 工作在硬件按照今天的标准来看是缓慢、庞大、昂贵且专业化的世界中。RTOS 必须充分利用许多不同的 4 位、8 位和 16 位微处理器、低时钟速度和相对较大封装中的微小内存占用。此外,RTOS 必须精确地针对应用程序进行定制。

在实时 (RT) 领域,应用程序通常处于高度隔离的市场中。即使在家庭中,几乎每个潜在的“智能”实时应用程序都属于一个非常孤立的专业领域,该领域对其他专业领域几乎没有任何兴趣。家庭安全、户外灌溉、消防洒水系统、供暖和空调、厨房电器、娱乐系统、室内和室外照明、电话、计算机和网络……这些都由具有不同专业知识的不同企业提供服务。作为证明,尝试找一个承包商来安装(更不用说维修)电话、安全、计算机网络和家庭娱乐系统。网络从来都不是这些类别中的许多因素,因此在连接的上下文中考虑所有这些类别是毫无意义的。即使他们的客户这样做了,他们的供应商也没有这样做。

现在,连接上下文正变得越来越重要。“人们在这里将不得不以不同的方式思考——即使是已经在嵌入式领域的人们,”领先的嵌入式 Linux 公司 Lineo 的产品营销总监 David Rieves 说。“现在,32 位硬件是廉价的商品。因此,您降低了操作系统中的开销,这就是 Linux 如此吸引人的原因。随着硬件成本的下降,人们对 Linux 的兴趣也随之上升”,特别是对于那些在互联网上运行的设备而言。

这意味着我们需要开始在网络环境中考虑实时开发。虽然网络环境对于 Linux 来说是老生常谈,但实时性并非如此。最常见的网络服务——电子邮件和网络——本质上都是存储和转发的概念。但是对于不断增长的开源开发者社区来说,这里缺失的部分是 即时消息 (IM),顾名思义,它更接近“实时”。

IM 对于数千万使用 AIM(AOL Instant Messenger)或 ICQ 的 AOL 客户来说是一个熟悉的概念,ICQ 也归 AOL 所有。两者都不是像 Sendmail 和 Apache 那样开放和可部署的,原因很明显,AOL 拥有这些服务并乐于将它们保留给自己。即使您可以创建自己的客户端,服务器仍然是 AOL 的。他们控制着一切。因此,世界上大多数人仍然以 AOL 的术语理解 IM。这就是为什么绝大部分 IM 使用情况正如一位诙谐的人(正是鄙人)曾经所说的那样,“十四岁的女孩在实时作弊做作业并谈论男孩。” 更糟糕的是,AOL 这种 IM 受其商业模式的限制,其商业模式完全是为了向广告商出售捕获的眼球。

再一次,极客们正在解决这个问题。

像往常一样,它始于一个人寻找一种方法来解决自己的痛点。这种情况下的那个人是 Jeremie Miller。1998 年,Jeremie 在一家 ISP 工作,当时他开始将 IM 视为 UNIX 解决方案

我发现我认识的更多人正在摆弄 AIM,最终我需要拥有我所有的 UNIX 实用程序、我所有的日志记录内容、大量的 UNIX 环境——希望以交互方式实时使用这个新的好友列表……作为将我的内容馈送进去的通道。后来,我看到有一些开源库可以重新进入 ICQ 和 AIM 等等……我想了几个星期。问题是,“做到这一点的最佳方法是什么?” 我不想构建自己的客户端,因为我根本不会做 GUI 的东西。我只能做后端服务器的东西。我想“好吧,我可以构建一个后端服务器,并制定我自己的协议;也许我可以说服其他人编写一个客户端,这样当我想添加功能时他们就不必更新它。” 然后我开始将所有功能添加到服务器中。然后我可以将该服务器桥接到我想添加到其中的 UNIX 内容……一些日志公告以及我想推送上去的任何小东西。我可以让该服务器桥接到寻呼机。我可以让它桥接到 ICQ 和 AIM,这样我就可以使用其他客户端与我的朋友交谈。它就是这样发展起来的。

结果就是 Jabber,第一个开源即时消息平台。一群开发者迅速聚集在该项目周围——他们的网站是 Jabber.org——并构建了任何极客都可以像 Sendmail 和 Apache 那样以熟悉的方式部署的即时消息。以下是 Jabber 架构的描述,从 Jabber 技术白皮书 中浓缩而来

  • 每个用户都通过本地服务器进行交互,该服务器将消息传输到任意数量的其他服务器,每个服务器都有自己的域

  • Jabber 标识符也像电子邮件一样表示:yourname@domain.com

  • 客户端和服务器之间通过 XML 流进行对话。在客户端/服务器对话中,XML 流始终由客户端发起到服务器

  • 该架构还可以支持简单的客户端(例如,直接 telnet 连接)以及 AIM、ICQ 和其他专有客户端

  • 由于 Jabber 构建在 XML 之上,因此它是可扩展的,并且能够表达几乎任何类型的结构化数据

  • Jabber 自己的协议由在客户端和服务器之间通过 XML 流传递的 XML 片段组成。有三个主要协议定义了 Jabber 中使用的 XML 片段的基本类型:消息、状态和信息/查询

  • 服务器到服务器的通信涉及通过 XML 流将这些协议元素从一个服务器路由到另一个服务器(没有特殊的服务器到服务器协议或功能)

  • 模块 API 允许服务器使用外部模块来处理消息过滤、存储设施(离线消息、花名册、用户信息)、用户身份验证和其他功能

  • 服务 API 允许集成安全性、备用客户端的特殊连接和消息日志记录

  • 传输服务器用于将 Jabber 协议桥接到其他服务,例如 IRC、ICQ 和 AIM

Jabber 的构建非常开放,以至于很难看到可以对其进行哪些限制。但是这种范围与 IM 的关系不如与 XML(可扩展标记语言)的关系密切。再次,Jeremie 说

当我发现 XML 时,我有点认为它对 IT 行业或互联网的作用与硅芯片最初对计算世界的作用相同——从晶体管转向集成电路。这几乎是相同的阶段。XML 感觉就像那么大的变化。它正在改变所有底层结构,加速一切,使每个人都能够以其他人可以理解的方式构建数据。即使您不理解某些数据片段,您至少可以查看数据并查看该数据的结构。因此,XML 始终是我在后台构建的服务器的一部分。我正在使用 XML 将其推送到客户端。

XML 的创建是为了在程序生成它们的上下文之外,以及(最重要的是)在阻止服务在网络上互操作的 API 和协议墙之外,打包和交换结构化数据——文件、文本块、绘图、事务、设置等等。XML 提供了组织内容的基本规则,但不提供识别内容的规则。因此,虽然 XML 在标签的使用上类似于 HTML,但它与 HTML 的根本区别在于它不会对数据本身强制规定这些标签的含义。这些约定取决于在 XML 框架内进行通信的人员。至于设备,它们可以包括任何东西。

XML 的优势在于它是文本,加上一个结构化的动态框架,用于放置在文本中的内容。因此,您可以添加一个 XML 标签来控制从工业阀门到销售点终端再到您家中的灯开关的任何东西。XML 的一个新颖功能是 DTD,即文档类型定义。使用 DTD,您可以从文档内部指定文档类型。这允许无限种类的标签。例如,房地产行业可以创建一个名为“price”的标签。房地产行业中的每个人都可以知道该标签的含义,并相应地对其应用程序进行编程。任何人都可以构建 DTD 并发布它,这使得该框架特别灵活。它还将控制权交给了从事实际项目的开发人员,而不仅仅是标准机构或具有僵化市场规模的大型供应商。

表 1. Jabber 架构连接图

T1 = N1 = C3

/

C1 -- S1 - S2 = C4

/

C2 - T2

表 1 是 Jabber 架构内典型连接的地图。

o “-” Jabber XML 协议

o “=” 任何其他协议

o C1、C2 - Jabber 客户端

o C3 - 另一个 IM 网络上的客户端

o C4 - 使用备用协议访问 Jabber 服务器的客户端

o S1 - Jabber 服务器

o T1 - 传输,在 Jabber XML 协议和另一个 IM 网络上使用的协议之间进行转换

o T2 - 传输,向 Jabber 提供其他实时数据,例如日志通知或头条新闻提要

o N1 - 第三方 IM 网络

Perry Evans 最出名的事迹也许是 MapQuest 的创始人。但最近,作为 Webb, Inc.(http://www.webb.net/)的总裁兼首席执行官,他和 Webb 对 Jabber 的兴趣比迄今为止的任何其他公司都大。在了解 Jabber 后,Perry 决定资助其开发。Webb 现在支付给 Jeremie 和其他核心 Jabber.org 团队成员的报酬,让他们全职从事开源项目。Webb 还创建了 Jabber, Inc.(http://www.jabber.com/),以探索 Jabber 的商业化方式,从而利用和奖励其开源开发(和开发者)。

Perry 说:“Jabber 采用 XML 作为其传输技术非常重要,这有效地允许对话包含结构——将文档、应用程序和消息挖掘置于对话的中间。” 他继续说道,“这为企业、移动和嵌入式应用程序的可能性播下了全新一代的种子。我们使用术语“连接消息”来标记 Jabber 连接到客户服务、业务交换连接、基于设备的应用程序或任何其他事物的方式。Jabber 为公司及其客户、业务合作伙伴和移动员工之间的基于网络的对话开辟了各种可能性。此外,整个连接设备世界都有理由传输实时消息。”

对于 Linux 开发人员来说,这在两个方向上打开了世界:1) Linux 现在在几乎任何类型的设备中运行并驱动这些设备;2) 可以不断创建和改进无协议和动态的关系。当然,还有大量的目录和安全问题有待解决,而这些仅仅是最明显的两个问题。但是现在它们开始显得更容易解决。

网络大师 Craig Burton 在 80 年代引导 Novell 取得成功,并在 90 年代为 Burton Group 做出了同样的贡献,他认为 XML 的发展对我们这个时代的重要性堪比微积分对文艺复兴的重要性;他说,微积分给了我们一个动态的数学模型,而 XML 给我们一个动态的协议框架——一个通过使通信独立于协议瓶颈来绕过协议瓶颈的框架。他解释说:“XML 为在初始化期间发现服务的可访问性(或协议)提供了框架。由于 XML 的存在,开发人员可以独立于静态协议来设计通信。借助动态协议框架,独立或离散的服务可以存在并以自己的节奏进行创新,而不会受到固定协议的限制和界限。动态协议框架将赋予互联网基础设施创新和实施的自由,这将对我们所知的网络计算的未来产生不可估量的影响。”

Craig 将 XML 视为协议框架的想法使 IM 成为每个有理由以“足够实时”的方式交换任何类型消息的逻辑实体(而不仅仅是为数百万与好友聊天的用户)来说,可能至关重要的互联网服务。

由于 Linux 处于成为运行“嵌入式” IM 的通用操作系统的理想位置,因此让我们仔细看看这个新兴行业的未来发展方向。

应用任何东西

实时性和 Linux 已经相识很久了。RT 任务已作为设备驱动程序以内核模块的方式实现。在实际意义上,RT 任务可以在 Linux 用户空间中开发和实现,在用户空间中它们不会覆盖内核内存的关键区域。

但是,为了获得具有最小中断延迟的实时精度,需要找到更专用的解决方案。Victor Yodaiken 和 Michael Brabanov 的方法体现在 RT-Linux 中,该方法于 1996 年 2 月首次发布。他们认为沿着 Linux 的 POSIX 路线工作无法实现这一点。因此,他们创建了一个仿真层,该仿真层将操作系统的上层与中断隔离,代表操作系统拦截这些中断。

在这个方案中,当 Linux 认为它关闭中断时,它会在仿真层中设置一个标志。虽然中断保持开启状态,但仿真层会拦截在 Linux 认为它不可中断时发生的中断。拦截到的中断会被排队,因此不会丢失任何中断。但是实时工作由确定性的附加实时内核完成。这种分工本质上创建了一个实时 Linux 操作系统——除了在实际执行时它不是真正的 Linux。

最近,又出现了一种类似方法的版本。RTAI(实时应用程序接口)也有一个单独的实时模块,该模块在 Linux 内核下运行。Lineo 是 RTAI 的主要开发商,并贡献了 RTAI 代码库的很大一部分。“虽然我们为选择 RTLinux 的客户提供支持,但我们推荐 RTAI,因为我们认为它具有更简洁的设计、相当的性能,并且包含增强的功能,例如从标准用户空间部署硬实时应用程序的能力”,Lineo 的实时技术产品经理 David Beal 说。他补充道

硬实时方法相对于软实时方法的优势在于,当您实现硬实时任务时,您可以有效地不必担心计算机的所有内部和外部事件。RTAI 提供任务保证,因为这些外部事件的服务优先级低于实时任务,因此它们不会扰乱关键任务的计时。在嵌入式设备日益网络化和多任务处理的世界中,这是软实时方法都无法承诺的奢侈品。

RTAI 功能是模块化的,只需要在需要时添加即可。最少的实时调度服务占用 65 KB 的额外代码空间,但如果您添加所有内容,则总共约为 300 KB。

这只是一种方法,但它直接说明了 Linux 在实时世界中的不足之处。以下是 IDC 分析师 Dan Kusnetzky 对当前嵌入式 Linux 市场的概述

许多组织正在努力寻找将 Linux 用作嵌入式操作环境的方法。Red Hat 和 Lineo 只是致力于此的最知名的名字。有些人对为互联网设备提供 Linux 感兴趣。有些人专注于服务器设备。少数人专注于将 Linux 作为实时操作环境。最后一种方法非常棘手,因为 Linux 内核不具备最密集的实时应用程序的功能。

一些专注于实时 Linux 的人开发了自己的实时内核来替换 Linux 内核。另一些人让 Linux 启动他们自己的专有实时环境。虽然运行时环境不是 Linux,但他们可以在同一句话中谈论实时和 Linux,因为 Linux 是人们在启动时看到的东西。

IDC 预计 Linux 社区将确定支持嵌入式和实时应用程序的标准方法。在此之前,我们有来自不同供应商的许多竞争性产品。

竞争正在迅速升温。James Ready 是嵌入式先驱,几年前创立了 Ready Systems,现在经营 MontaVista(http://www.mvista.com/),该公司去年推出了 HardHat Linux。Red Hat 去年秋天收购了 Cygnus,然后在今年 6 月份又收购了 WireSpeed。(侧边栏由 Red Hat 首席技术官 Michael Tiemann 撰写,他是 Cygnus 的创始人。)去年夏天,早期的 Linux 发行版领导者 Caldera 分拆出 Lineo,成立了一家嵌入式 Linux 公司。Lineo 和 MontaVista 都获得了大量的风险投资支持,并且它们本身也处于积极的收购模式。在短短的时间内发生了如此多的变动,传统的嵌入式出版物和活动突然间充斥着 Linux 的报道。

然而,传统的 RTOS 不会很快消失。Wind River(同时生产 VxWorks 和 pSOS)是市场领导者,销售额约为 2 亿美元,市值数十亿美元。“Wind River 是嵌入式操作系统市场中的 2000 磅大猩猩,”Lineo 总裁兼首席执行官 Bryan Sparks 说。“但我们发现人们对远离 Wind River 产品有很多兴趣。如果我们能够支持 Wind River 支持的相同平台,我们就可以从他们那里夺走越来越多的业务,”他解释道。除了 Intel、AMD、PowerPC 和其他常见的平台外,微处理器平台还包括 Hitachi SH、MIPS、ARM 和 StrongArm、ndcore、ColdFire、Dragonball 等。“我们可以让 Linux 在所有这些平台上运行,”Sparks 补充道。

其中一些平台是非常小的微控制器,它们没有功能齐全的 CPU 集。通常,它们缺少 MMU(内存管理单元)。因此,需要对 Linux 进行相应的修改。

为什么选择嵌入式 Linux?

开源模型的一个令人欣慰的结果是,Linux 不得不发展得更加模块化,并支持比假设较少无政府主义控制的单片设计更简洁的接口。因此,小至 300KB 的 Linux 内核不仅可以启动并支持网络,还可以充当 Web 服务器。这对于那些想要将 Web 服务器(和管理控制台)无处不在的人来说,确实令人兴奋。

您还可以对开发和部署使用相同的 API。虽然这不是一个新目标,但我们现在拥有一个 (1) 可以工作,(2) 人们实际上喜欢编程,并且 (3) 支持大量内容的系统。这已将嵌入式系统开发的领域从高度专业化的艺术扩展到任何 Linux 程序员都可以管理的领域。这将对嵌入式系统市场产生深远的影响。

—Michael Tiemann,Red Hat 首席技术官

向 Linux 的迁移在移动系统周围发生得最快。Intel 正在看到 StrongARM 对 Linux 的强大支持。Compaq 创建了 Open Handheld Program 并发布了适用于其 iPAQ 掌上电脑的 Linux 版本。该公司还赞助了 Handhelds.org,该网站支持掌上设备的开源软件开发。鉴于 Linux 作为 x86 盒子的寄居蟹的普及,Windows CE 掌上设备是明显的嵌入式 Linux 目标。虽然 Palm 的软件许可证费用(每单位约 20 美元)高于 Microsoft 的 Windows CE(每单位约 10-15 美元),但 Palm 的设备比典型的 Windows CE 设备更神秘且功能更弱,因此将 Linux 迁移到后者是更短的一步。据报道,这是惠普的方法。惠普信息电器和服务部门的全球营销经理 Boris Elisman 表示,该公司正在开发多款多功能 Linux 设备,这些设备应在 2001 年推出。

对于 OEM 厂商来说,围绕 Linux 设计嵌入式系统是一个非常容易的选择。Intel 的 John Bork 解释说,Intel 正在基于嵌入式 Linux 和定制的 Mozilla 的组合构建其新的机顶盒和 Dot.Station 网络设备,“我们只是从网上获取源代码,拉出我们不需要的东西,看看使用了哪些库和没有使用哪些库,并从那里约束自己。你看,我们面临的最大挑战是将操作系统、浏览器、插件和一些小程序放入 8MB 的闪存中。因此,我们的许多工作都花在了分析我们需要哪些部分以及如何精简这个东西上。”

这项工作具有很大的吸引力。“我喜欢在上一份工作中从事服务器方面的工作,”Kerbango 的一位 Linux 程序员说,该公司在其网络收音机中使用嵌入式 Linux,“但我喜欢在这里从事酷炫的新事物。” 过去,学习一个全新的操作系统及其所有工具既昂贵又耗时。Linux 则不然。嵌入式应用程序可能非常神秘,但所需的操作系统知识并非如此,因为 Linux 及其工具对于如此多的开发人员来说非常熟悉。这一事实可以控制 NRE(不可回收工程)成本,而这些成本始终是关键因素。

The Next Bang: The Explosive Combination of Embedded Linux, XML and Instant Mess

图 1. 嵌入式 Linux 设备

The Next Bang: The Explosive Combination of Embedded Linux, XML and Instant Mess

图 2. Intel 的 Dot.Station

Kerbango 的收音机和 Intel 的 Dot.Station 只是使用嵌入式 Linux 构建的第一波原生网络设备中的两个(Dot.Station 也使用 Mozilla)。

然而,“精简” Linux 并非易事。这就是 Lineo 和 MontaVista 等公司开展业务的原因。以下是 Lineo 工程副总裁 Kim Clark,他对这些问题非常熟悉,他说:“您需要理解的第一件事是,所有软件包是什么?我需要哪些软件包,哪些软件包我不需要?与每个软件包相关的依赖项是什么?选择一个软件包可能需要选择两到三个其他软件包。但它们也可能与来自另一个模块的软件包冲突。因此,您需要完成一项繁琐而复杂的任务,即弄清楚所有需要存在的东西。

在 Lineo 的工具中,有一个名为“LIPO”的工具,它可以深入挖掘并吸出所有脂肪。“共享库又大又肥,”Clark 说。“如果您有多个模块共享库,每个模块都有该库的副本,那么您的占用空间就会更大。我们从中减少了脂肪。我们还减小了每个库的占用空间。我们对 Apache 也做了同样的事情。例如,通过删除图标支持,您可以节省 22k 的内存。我们通过将 Apache 分解为微组件,让开发人员可以选择仅使用他们需要的部分,从而使这成为可能。”(参见图 3 和图 4。)

The Next Bang: The Explosive Combination of Embedded Linux, XML and Instant Mess

图 3. Lineo 的 Embedix Target Wizard 选择和配置界面

The Next Bang: The Explosive Combination of Embedded Linux, XML and Instant Mess

图 4. Embedix Target Wizard 屏幕截图

这些屏幕截图显示了 Lineo 的工具在工作,有选择地启用 Linux 和 Apache 的各个部分。

使用像 Lineo 这样的工具可以帮助 Linux 应用于各种各样的嵌入式设备,如图 5 所示。

The Next Bang: The Explosive Combination of Embedded Linux, XML and Instant Mess

图 5. Lineo 的嵌入式 Linux 市场频谱

此图表区分了公司嵌入式产品产品(和收购)应用的空间与它们不应用的非嵌入式 PC/服务器空间。

这是 Lineo 对世界的看法,但它可能是任何人的看法。没有一条线是明确的,这就是为什么方框是阴影的原因。

Lineo 的营销副总裁 Lyle Ball 说,“重要的是,虽然桌面和服务器领域是熟悉的领域,但世界的其他地方——嵌入式设备世界——却不是。这张图表上的每个地方都有大量的现有专业知识,但当您深入到成品级别时,您就会看到 Linux 和其他这些发展开始消除的封建系统。”

真实世界的实时性

图 5 中的每个单元格背后都是网络。而网络普及背后的原因是人们越来越期望几乎所有东西最终都将连接到网络,并且通过网络的通信将是即时的。这就是“实时”的真实世界含义。在一个完全分布式的计算世界中,任何设备都应该能够与任何其他设备进行实时或足够接近实时的通信。实现这一目标的基础设施是什么?

Jabber 人员认为它是基于 XML 的即时消息。IM 本身与两个功能有关:状态和消息传递。第一个功能涉及检测和揭示网络上另一个身份的可用性。第二个功能涉及与列表中的一个或多个在线成员进行一对一(或一对少数)的实时文本交换。

在 IM 得到广泛采用的企业中,其他技术的境遇不尽相同。“它改变了电话的社会学,”即时消息先驱 Udi Shapiro 说,他的公司 Ubique 创建了一个 IM 系统,该系统曾一度归 AOL 所有,之后 Udi 和他的合伙人将其买回并出售给了 Lotus,Lotus 现在将其作为 SameTime 提供。根据 Udi 的说法,企业环境中的 IM 成为电话的附件,在某些情况下取代简短或琐碎的呼叫,而在其他情况下则发起呼叫。下一步自然是将 IM 和电话技术融合在一起:在有线电话系统中;在 IP 语音 (VoIP) 中;在手持设备之间的无线通信中;以及在所有这些以及网络、电子邮件和其他原生网络通信的组合中。

不难想象 IM 可以为人与人之间的通信做些什么。更困难但必要的步骤是想象人与远程机器之间以及机器之间在临时的、实时的基础上进行通信。这就是嵌入式 Linux 的用武之地。

当 IM 与嵌入式 Linux 相结合时,IM 提供注册和查找的框架,而嵌入式 Linux 充当 API 中的设备驱动程序。通过即时消息,客户端对服务器说“我已上线”,服务器将此事实通知其他客户端,从而为直接通信提供路径。因此,即时消息成为在两个人或未知实体(无论是人还是其他)之间建立点对点通信的理想方式。

借助 Jabber,XML 消息成为一个“信封”或容器(参见图 6)。该信封的内容非常灵活。XML 的数据是“结构化的”,但也可能是动态的——能够不断变化。它甚至可以定义理解它的术语。

The Next Bang: The Explosive Combination of Embedded Linux, XML and Instant Mess

图 6. XBIM 的一个 Jabber 视图——基于 XML 的即时消息:XML 作为容器

XML 旨在承载“结构化”数据。但是该数据可以不断变化,并且——通过设计——定义理解它的术语。本质上,这为网络上通信实体之间的动态关系创建了一个基于标准的框架。当这些通信变得“即时”时,没有什么可以阻止关系的定义和更改,只要有必要。

当通信变得“即时”(实际上意味着接近实时)时,没有什么可以阻止通信方之间通过协议定义和更改关系,即使这些方是智能设备。借助 Jabber,任何两个身份(无论是人还是机器)都可以发送和接收实时消息,这些消息几乎可以包含任何内容,并且以结构化的方式进行,必要时独立于中间协议。

虽然 Jabber 最初被设想为一个分布式的、XML 感知的即时消息平台,但其将状态与 XML 文档路由相结合的简单方法使其处于理想的位置,可以成为不仅仅是另一个即时消息系统。相反,它可以成为支持消息传递的嵌入式应用程序的基础设施。它成为它们通过网络进行通信的方式——无论是彼此之间还是与 PC 上的应用程序(它们已经在相互通信)进行通信。

图 7 显示了一个为实时路由 XML 数据而构建的 Jabber 客户端/服务器平台。请注意,底层消息传递基础设施和协议是 XML,而不是专有的消息传递协议。消息可以从设备到设备、设备到 PC 发送,或者从上述任何一种方式转换为其他网络和协议。XML 的动态、自决定性质使这种基础设施具有动态性:换句话说,为了适应网络上逻辑实体之间不断变化的关系。

The Next Bang: The Explosive Combination of Embedded Linux, XML and Instant Mess

图 7. Jabber 作为实时消息平台

Jabber 是一个即时消息平台,能够将消息打包成 XML 文档——实际上是作为数据传输。任何 PC 或原生网络设备都可以立即与互联网上所有能够解析和处理 XML 的基础设施进行通信。这使得新的 XML 数据库——旨在解析 XML 并存储结构化数据或文档——处于强大的环境中。在任何地方,XML 都是接收和发送信息的首选方式,我们已经拥有符合即时消息的基础设施。

Jeremie 的宏伟蓝图

从这个意义上说,Jabber 是一个无处不在的 XML 路由器,专为(并由)嵌入式 Linux 或任何其他支持基于 XML 消息传递的设备驱动操作系统而优化。真正的(足够)实时性是关键。虽然电子邮件在技术上能够路由 XML 文档,但它缺乏对“在线状态”的感知,而“在线状态”是即时消息传递的关键。这使得 Jabber 成为一种新的消息传输方式。

这种新的方式将扩展互联网基础设施,以适应通过 XML 路由的大量新的动态实时关系和活动。这促进了在多种操作系统上开发强大的客户端库套件,这些库围绕嵌入式 Linux 聚集。这些将构成面向设备世界的连接消息传递 SDK。

The Next Bang: The Explosive Combination of Embedded Linux, XML and Instant Mess

图 8. 跨设备关系的 XML 开发背景

XML 数据流

这展示了新的和新兴的工具(如 XML 优化数据库)如何利用(以及被)设备之间的 XML 通信流所使用,以及它们如何提供新的服务。所有与 Jabber 的通信都通过 XML 文档进行,这意味着所有新的 XML 工具和服务都可以轻松“插入”到 Jabber 承载的消息流中。

“新兴工具(如 XML 优化数据库——见图 8)可以用来利用 XML 通信流并提供全新的服务,”Jabber 公司总经理 Andre Durand 说,http://www.jabber.com/,该组织旨在帮助 Jabber 以利用和奖励其开源开发(和开发者)的方式进行商业化。他继续说道,“所有与 Jabber 的通信都通过 XML 文档进行,这意味着新兴的 XML 工具和服务可以轻松地‘插入’到 Jabber 承载的消息流中。推而广之,你就得到了一个适用于已知世界的设备驱动框架。因为现在你可以很容易地,或者雇佣承包商来编程你的家——例如通过为此目的而设计的 X10——你可以操作并接收关于你已经拥有的所有家庭电子设备的通知:你的安全系统、你的照明、你的洒水器。你也可以编程这些设备来告诉你它们是否开启、运行正常并准备好接收指令。因此,“在线状态”的概念适用于多个方向。包含在线状态的双向对话是基于通用 XML 框架的 Jabber 基础设施。”

大爆炸 2.0

Jabber 对 IM、XML 和嵌入式 Linux 的应用为这三个主题增加了巨大的新的对话领域。在这个领域内——是我们想要引爆的一切。

也许我们错了,但我们认为这就是下一次大爆炸将要发生的地方。上次我们有这种感觉时,“我们”指的是 Phil Hughes,而我们关注的焦点是 Linux。那是在 1994 年,当时 Linux 和 Linux Journal 都处于 1.0 版本之前。

看看从那时起发生了什么。如果我们是对的,这次的规模会更大。

言归正传:Jabber 的 Jeremie 谈即时消息和嵌入式 Linux

The Next Bang: The Explosive Combination of Embedded Linux, XML and Instant Mess
Doc Searls (doc@ssc.com) 是 Linux Journal 的高级编辑,也是 Jabber.com 顾问委员会的成员。
加载 Disqus 评论