AppSwitch:使用 Ada 和 Linux 进行网络交换

作者:Ann S. Brandon

管理网络性能就像保持蚂蚁 colony 的秩序一样:网络有其自身的下一步行动标准,其背后的逻辑人类通常无法理解。实际上,这项挑战甚至更加不可能,因为在自然界中,蚂蚁 colony 由相同的物种组成。在网络-作为-蚂蚁 colony 中,数据库传输和电子邮件都是不同的物种。有些是兼容的,有些则不兼容。大多数是友好的,有些是敌对的,少数几个相当于反人员地雷。

为了控制数据通信网络,位于马萨诸塞州韦斯特伯鲁市的新公司 Top Layer Networks 开发了 AppSwitch。该软件根据用户的优先级和生成消息的应用程序自动对网络流量进行排序。例如,它可以深入到电子邮件标头的第 7 层,这可能意味着需要翻译七种不同“物种”的应用程序和优先级的代码。

AppSwitch 2000 的原型是在 Red Hat 5.1 Linux 系统之上编写的。然而,Top Layer 的高管评估认为 Linux 对于该应用程序来说过于丰富,因此选择使用 Ada95 对部署的系统进行编程。来自 Ada Core Technologies (ACT) 的 GNAT 编译器实现了从 Linux 到 Ada95 系统的无缝和流畅过渡。这家纽约市公司的 Ada 编译器系列全部是开源软件,可在 http://www.gnat.com/ 获取。

选择 Linux 作为原型平台操作系统是因为 ACT 针对它开发了编译器。此外,Top Layer 的软件工程师熟悉类 UNIX 操作系统。AppSwitch 后端引擎的操作系统是 GNAT 运行时系统的修改版本。作为修改的一部分,Top Layer 还创建了一个支持 POSIX 接口的 OS 内核,Linux 也支持 POSIX 接口。

在模拟器被证明可行后,Ada95 被用于 AppSwitch 90% 的代码,其余 10% 是用 C 和汇编语言实现的底层命令。Top Layer 仍然使用 Linux 作为“前端”控制台,即 AppSwitch 和软件工程师工作站之间的网关,以便他们进一步开发和测试应用程序的下一个版本。新的 AppSwitch 2500 和 3000 预计将于 1999 年秋季和 2000 年冬季推出。

在 C 语言占主导地位的领域中,使用 Ada 构建网络是否有意义?Top Layer 评估了他们的选择,并决定“是”。

首先,AppSwitch 软件预计具有较长的生命周期。编程语言必须在不同的目标机器和各代目标机器之间具有可移植性,包括那些尚未发明的机器。换句话说,它必须是国家和国际标准,就像 Ada 一样。然而,它绝不能让他们的用户或他们自己成为一个目标或编译器的俘虏。同样,Ada 满足了这一需求。

Ada 标准通过以下官僚机构进行调整。ISO 的第 9 工作组回应软件开发工具供应商关于 Ada 标准解释的评论和论点。如果 WG 9 投票支持供应商,则更改将反映在验证测试套件中。如果编译器通过了大多数测试,它将获得 Ada 资源协会 (ARA) 的认证,该协会是由软件开发工具供应商组成的组织,他们覆盖了 Ada 市场 90% 以上的份额。当开发人员购买 ARA “Certified Ada” 编译器时,她知道该编译器已经过测试,可以解释“标准” Ada。这些解释已在国际上达成一致。

Top Layer 在选择语言时的第二个标准是软件必须第一次就能正常工作,并在出现故障和软件重新配置的情况下继续执行。该公司认为 Ada 在高可靠性和可移植性这两个要求方面具有最佳的语言特性组合,包括强类型、面向对象的特性、多任务处理和异常处理。

Ada 不是“又一个该死的首字母缩略词”。该语言以第一位已发表的计算机程序员,Lovelace 伯爵夫人 Ada Byron King 的名字命名。是的,就是那个拜伦;她是这位诗人的唯一合法女儿。作为一名数学家,她与 Charles Babbage 一起研究差分机,并预言了计算机的许多应用,例如编写音乐、计算变量等等,以及重用代码的潜力,而 Ada 语言的设计正是为了实现这一目标。

选择 GNAT 作为工具链是因为它基于 GCC,而 GCC 针对 ARC 处理器。Ada 工具托管在 Solaris 和 Linux 上,并针对 Motorola MPC 860、ARC 和 x86。

AppSwitch 是一个多处理器系统。软件架构旨在随着实现的成熟而利用 Ada95 的分布式系统特性。AppSwitch 分析网络应用程序流量并自动执行服务质量策略,即无需人工干预,也无需更改 PC 或服务器。AppSwitch 协调硬件(以线速检查和引导流量)和软件(以指导交换和网络性能)。客户的业务目标决定了 AppSwitch 的策略标准,这是一个在日常紧急情况和项目中发生的过程,但随着业务功能和规模的变化,它被证明是不断发展的。AppSwitch 通过执行使网络更像人类消息传递系统而不是蚂蚁系统的标准,立即为企业带来好处。

凭借其集成的硬件和软件架构,AppSwitch 使网络管理员能够监控和理解网络的所有元素。管理员通过 AppSwitch 基于 Web 的图形用户界面来适应网络的变化。

构成流分类技术的硬件和软件组件是 AppSwitch 的核心。借助这项技术,AppSwitch 可以深入到传入的数据包,直至应用程序的第 7 层标头,以确定数据包的来源、类型和目标地址。预配置的应用程序定义库 (ADL) 支持 AppSwitch 流分类。ADL 内置于每个交换机中,并保存流分类和优先级排序的规则。

当流的第一个数据包到达时,AppSwitch 使用连接设置过程子架构在 ADL 中选择适当的“定制”配置文件。它还在会话数据库中捕获有关新流的相关信息。之后,AppSwitch 通过会话数据和选定配置文件的协调来路由流中剩余的数据包。会话数据库中每个流捕获的状态数据可以智能地调整服务质量,以便在需要时升级或降级优先级。在输出端,数千个队列可用于扩展流的数量以及这些流之间的优先级。

AppSwitch 在路由器后面或 LAN 环境中工作。传入的数据包会受到媒体访问控制功能 (MOM) 组件的专有“分类”,以对数据包进行广泛分类。它还将数据包放入与数据链路无关的规范形式中。从那里,“分类”后的数据包通过 TopWire 流向转发引擎(FE 芯片 + QM 芯片),在转发引擎中执行应用程序控制。

Ada 以一种简单的方式应用于转发引擎架构和后端引擎。虽然按时完成任务很重要,但 AppSwitch 并非严格意义上的硬实时应用程序。Top Layer 的工程师消除了传统实时应用程序对软件的一些限制。因此,他们允许软件架构具有更大的灵活性,以适应数据通信的动态特性。

Ada 为 Top Layer 在九个月的紧迫开发计划中取得成功做出了贡献。这是幸运的,因为使用 Ada 进行编程的决定遭到了以 C 语言为主的车间的抵制。当工程师们想知道对于未来寻找“C”字母的雇主来说,“Ada”将如何解读时,他们的学习曲线变得陡峭而结冰。

世界各地的 Linux 用户都会同情管理层面临的挑战,即如何使 Ada 不仅令人满意,而且比包括 C 和 C++ 以及 Windows OS 在内的微软的时代精神更受欢迎。

他们成功了。一旦 Top Layer 公司高管决定 Ada 是最佳选择,他们就坚持了下来。他们对 Ada 的承诺是自上而下且坚定不移的。他们聘请了一位全职 Ada 专家 Mike Kamrad,以提供关于 Ada 的强化内部培训和宣传。结果是对所有软件工程师的个人教育。最后,Top Layer 采取了额外的步骤,使 Ada 在目标系统上在技术上可行,从而提供了一个值得信赖且性能良好的工具链,并避免了进一步的学习抵制和挫败感。

就像 AppSwitch 本身一样,工程师们发现 Ada 说的是一种敏感、复杂且强大的语言。Ada 使 Top Layer 能够为网络管理员创建一种世界语。AppSwitch 允许他们将电子邮件和传输的独特信号解释为国际化且人性化的图形界面语言。目标是将大量独特的蚂蚁状字节引导到隧道状通道中,这些通道将最有效地构建和加强业务。AppSwitch 使这一目标成为可能,但这仅仅是因为 Top Layer 在使用 Linux 和 Ada 时,开辟了一条不同于网络交换系统常用路径的新路。

有关更多详细信息,请参阅 http://www.adaresource.org/http://www.toplayer.com/

AppSwitch: Network Switching with Ada from Linux
Ann S. Brandon (abrandon@sover.net) 在过去十一年中撰写了关于 Ada 语言的文章。作为 Ann Eustice,她曾在罗马的《Daily American》、意大利的一家月度商业杂志以及华盛顿特区的合众国际社 (UPI) 从事公关工作。由于 UPI 是她的第三家破产的雇主,她决定学习计算机,此后她的工资支票再也没有被退回过。她嫁给了一位 Ada 和物理学教授 Carl,他们住在佛蒙特州。作为一名作家,Ann 还是 Invisible Cities Press 的副编辑。
加载 Disqus 评论