政府领域的 Linux:紧急响应网络系统的技术方面

作者:Tom Adelstein

上周的专栏 是关于 Linux 在美国国土安全部 (DHS) 的关键紧急角色中的应用。具体来说,那篇文章讨论了 YHD 软件公司,这是一家由 Jo Balderas 和她的儿子 Mike 创办的公司,以及该公司为“联邦调查局、公共安全部和国土安全部”目前正在使用的紧急响应网络系统 (ERN) 所做的努力。

本周,我采访了 Mike Balderas,他负责 YHD 软件的关键编程,并管理开发和支持。在下面的采访中,Mike 解释了 ERN 项目的更多技术方面。

迈克尔·大卫·巴尔德拉斯 (Michael David Balderas) 20 岁时在德克萨斯州沃思堡开始认真编程。在此之前,他曾在一家全国性的 ISP 从事技术服务工作。他对开源软件产生了兴趣,因为他渴望学习,并想看到代码。如今,他领导着一个团队,构建我们国家安全的关键基础设施之一。如果你见到他,你会很快认识到他完全有能力胜任这项任务。

Tom Adelstein: 您能简要介绍一下 ERN 是如何开始的吗?

Mike Balderas: 联邦调查局的 ERN 系统最初是应简单电子邮件列表服务器的请求而开始的。我们编译并转换了联邦调查局提供的几个不同数据源的用户列表。我们很快发现记录在案的大部分联系信息已过时。

这导致了另一个系统的部署,在该系统中,我们强制用户进行身份验证,并要求他们更新联系信息。通过自然减员,数据存储变得无关紧要。

随着时间的推移,我们的客户需要根据人口统计信息查找特定类别的人员。这使客户能够定位系统中的特定成员,并仅联系符合特定概况或具有优先级的成员。我们没有设置无限数量的可能复制的单独电子邮件列表服务器,而是使用了现有技术。我们为其他客户开发了技术来解决这个问题。

在与 Twenty First Century Communications 合作后,我们添加了语音和传真功能,ERN 从电子邮件列表服务器发展成为功能齐全的联系人解决方案,能够审查受众,分配他们的权限和责任级别,并在两者之间的任何级别联系他们。

这些是技术起源。

TA: 是什么促使您使用 LAMP?

MB:我选择这项技术有几个原因。从经济角度来看,这是执行任务最可行的解决方案,因为开发工具几乎不花钱,而且我可以使用通用硬件。LAMP(Linux、Apache、MySQL、PHP)组件的支持很容易获得,并且可以通过新闻组、HOWTO、电子邮件列表和用户组在 Web 上访问。

TA: 早在 2001 年初,我还没有听说过 LAMP,您是如何了解它的,又是如何将它们组合在一起的?

MB: 我想你可以说我们率先使用了 LAMP。但是,那时我从未听说或看到它被称为 LAMP。我使用 UNIX 衍生产品已经好几年了。

在这个项目的早期阶段,我支持 FreeBSD,后来尝试了 Mandrake。我订阅了 CDROM.com 的服务用于这两个项目,并且会在最新版本发布时编译它们。FreeBSD 缺乏硬件支持当时对我来说是一个严重的缺点。因此,我主要专注于 Mandrake 项目。我仍然支持 FreeBSD,希望它最终能赶上来。

然后,我发现了 Red Hat。Red Hat 大约在我们首次生产 ERN 时引起了我的注意。Red Hat 因多种原因引起了我的注意,并且我们一直坚持使用至今。我们在 Red Hat Enterprise Linux 3.0 上部署我们的系统。

TA: 其他组件呢?

MB: Apache 拥有大量的追随者和大量的市场知名度。我发现它易于使用、易于配置和维护。当人们发现问题时,Apache 团队会迅速部署补丁。团队会快速解决这些问题。很多人都在关注 Apache 代码。所以,Apache 是理所当然的选择。

MySQL 当时似乎还是一个新兴事物,对我来说不太为人所知。我第一次接触和互动 MySQL 来自于它作为 Red Hat 7.0 中的一个软件包捆绑在一起。我设置和维护了一些 PostgreSQL 系统,但 MySQL 的易用性和功能引起了我的注意。它能满足我们的需求并可扩展。

然后,我选择了 PHP。当时,我想要一种标签语言来处理我们的数据库。MySQL 对我来说是新鲜事物,而 PHP 似乎是其他服务器端脚本语言的良好替代品。凭借其与 MySQL API 的紧密集成和易于使用的语法,我尝试了它。我也喜欢 Apache 模块的功能。我尝试了它,喜欢它,它就成了一个简单的选择。

TA: 我理解您为什么从 Red Hat Linux 开始,也理解您为什么坚持使用它。我相信您也看过其他软件包,甚至听说有人找过您要求更换平台。Red Hat 还有什么特别吸引您的吗?

MB: 就像我说的,Red Hat 在我们开始将我们的第一个生产系统上线时突然出现在地图上。Red Hat 的文档对我来说似乎很有用。我特别喜欢他们对其软件包管理系统的介绍。这让我很容易理解。

对于开发人员来说,轻松安装、更新和维护软件包和依赖项的能力缩短了开发时间。我可以找到我需要的所有软件包,它们会在几秒钟内安装完成。这减少了我的工作量和业务成本。我也相信他们会给我提供好的软件包或立即修复它们。

Red Hat 大大降低了我们的维护成本。我将此与更多的时间用于产品开发,以及更少的时间用于维护底层操作系统相结合。随着 Red Hat Network 平台的发布,用于维护操作系统和软件包更新,以及新的错误、安全和性能更新的警报和通知,我们花费更少的时间来跟上最新的安全漏洞和修复程序,而有更多的时间专注于发明、满足变更请求以及帮助满足客户的需求。

TA: 我自己也很喜欢 PHP,并且有我喜欢它的理由。您能否进一步深入了解您今天使用 PHP 的方式与您刚开始使用它时有何不同?

MB: 在早期,PHP 主要用于简单的事情,例如将控制台日期回显到客户端浏览器以及用于内容的最小数据库连接。我们认为 PHP 是我们解决方案的最佳选择,原因有很多。除了前面已经提到的固有的 MySQL 互操作性之外,[PHP] 的用户群和支持组也非常庞大。

我们发现,尽管可能需要一些时间,但我们可以使用 PHP 满足所有客户的需求。该语言结构化且逻辑有序,并且它对 Perl 正则表达式、MySQL API 集和 PEAR [PHP 相当于 CPAN] 的支持使其具有高度可扩展性和适应性。

我们在解决方案的前端使用 PHP 来启动与数据库的连接,获取信息并将其呈现给用户,动态写入文件以及动态构建电子邮件。我们还使用 PHP 控制台脚本,很像使用 Perl 脚本或 shell 脚本,来完成我们许多高需求、资源密集型的功能。

许多人在想到 PHP 时,会想到它仅限于 Web,因为它非常适合预处理 HTML 并以特定方式格式化数据。PHP 还具有强大的控制台引擎,几乎可以完成任何其他 shell 脚本语言可以完成的任何事情,甚至更多。

我还认为,广泛的社区参与提供了大量的创新。我忘记了它支持的 Web 服务应用程序的数量,但它是 Web 上使用最多的语言。它甚至比 Perl 使用得更多。现在,这是我们在开始使用它时没有看到的。今天,它无所不能。

TA: 有些人质疑 MySQL 的使用,但您似乎在这个应用程序中偏爱它。为什么?

MB: 我们最初选择给它一个机会,因为它与 Red Hat 7 捆绑在一起。所有必要的文档都可以在线获取。随着 InnoDB 和事务的引入,我觉得它已经成熟到可靠且仍然具有成本效益的程度。MySQL 不需要像 Oracle 或其他一些数据库那样的全职数据库管理员。

MySQL 也有商业公司支持。我们从他们那里获得了良好的服务,当有人询问我们使用的技术时,我可以指向他们。这对于小型开发人员来说可能并不重要,但是当您在执法、国土安全等高度敏感领域工作时,这至关重要。

TA: 这引出了下一个问题。与政府客户合作可能要求很高。您最喜欢为联邦调查局、国土安全部和执法部门工作的是什么?

MB: 我不得不说,这一切的挑战性。尽管我们都相信政府会在它知道的时候知道它所知道的,但可悲的事实是并非总是如此。正如 9/11 委员会的报告显示,情报部门和执法部门之间在沟通和信息共享方面存在一些障碍。这给了我一个可以使用技术来解决重要问题的领域。

我喜欢构建可互操作的跨机构解决方案的挑战,该解决方案允许信息的分发和协作。最初,联邦调查局来找我们说他们想要一个电子邮件列表服务器。我们向联邦调查局展示了可以做更多的事情,并且[该项目] 从那时起就像滚雪球一样发展壮大。

TA: 您最常看到哪些技术挑战?

MB: 在这个行业中,技术挑战是最低限度的。真正的挑战在于将客户(联邦调查局、国土安全部、执法部门)脑海中的想法准确地转化为开发。有时,我们能够立即获得规范。有时,我们开始处理某些事情,这会引发新的思路。

与技术挑战相比,例如使一个组件与另一个组件对话,将需求、规范和业务规则写在纸上可能是更大的挑战。我们在这方面的历史给了我们一种优势。

TA: 随着您的产品开始从联邦调查局和国土安全部的当地办事处转移出去,您是否需要进行编程修改?将程序连接到国家网络需要进行哪些修改?

MB: 我们对迁移相关的编程修改非常少。该系统从一开始就被设计为模块化和可扩展的。由于模块化结构和系统的底层布局,多个系统可以插入到国家实施方案中,几乎无需修改。

[迁移] 更多的是可用性挑战,因为大多数执法人员和政府特工对用户界面的外观和感觉有一定的期望。我们必须在所有机构和组织的不同内部操作方法中找到共同点,并使产品反映[这种共性]。

TA: 对于希望向公共部门提供 Web 服务应用程序的 Linux 初创公司,您有什么技术建议?

MB: 了解您的客户以及他们的思维方式。每个部门都有不同的做事方式。像他们一样思考,像他们一样看待世界。不要试图将解决方案强加于人。不要期望他们了解技术术语或精通技术。您在那里是为了解决问题。找出这些问题是什么,并让他们轻松解决。

Tom Adelstein 与妻子 Yvonne 住在德克萨斯州达拉斯,并在当地和全国范围内担任 Linux 和开源软件顾问。他是即将出版的《探索 JDS Linux 桌面》一书的合著者,该书由 O'Reilly and Associates 出版。Tom 曾作为客座编辑为各种出版物撰写了许多关于 Linux 技术和营销问题的文章。他最新的创业项目是担任 JDSHelp.org 的网站管理员。

加载 Disqus 评论