在 Google 的 Big Table 和 Map Reduce 论文之后推出的数十个软件项目改变了我们处理大型数据集的方式。与许多组织一样,NSA 开始尝试这些“大数据”工具,并意识到当时可用的开源实现并没有解决 他们的一些特定需求。他们决定启动自己的项目:Accumulo。一旦他们对 Accumulo 的工作方式感到满意,他们就做了正确的事情,并通过 Apache 基金会向全世界发布了 Accumulo。
这对开源和纳税人来说都是好事。政府发现私营部门未能满足一项需求,他们没有让自己的工作在内部停滞不前,也没有花钱让承包商开发专有解决方案,而是与世界分享了他们所拥有的东西。这就是开源倡导者一直呼吁的,随着 OMB 的 Shared First 倡议和像 消费者金融保护局 这样的 创新开源政策,我们肯定会看到更多这种共享纳税人资助的工作。
不过,有一个问题。自从推出以来,Accumulo 加入了一个日益拥挤的空间,用于管理大数据的工具。随着这些新兴企业相互竞争——见证 10gen 的 MongoDB、Cloudera 和 HortonWorks 的 Hadoop 实现、Hadapt、HBase、Cassandra、MapR 以及许多其他工具的非凡成功——Accumulo 构成了一种威胁。其中一些产品和项目已经相互竞争,私营部门不喜欢政府与他们并肩竞争,这是有充分理由的。
有一项经常被忽视的政策叫做 OMB Circular A-130,它规定政府不应构建私营部门已经提供的产品。用政策语言来说,政府应该
...从商业来源购买现成的软件,除非开发定制软件的成本效益是明确的,并且已通过试点项目或原型记录在案
因此,这里存在一种紧张关系:我们希望政府分享其创新成果,但我们不希望政府排挤私营部门。这就是 S.3254 第 929 条中最近语言背后的想法,《2013 年国防授权法案》由参议院军事委员会报告
(a) 限制使用 NSA 数据库 -
(1) 限制 - 国防部任何部门不得在 2013 年 9 月 30 日之后使用国家安全局 (NSA) 开发的名为 Accumulo 的云计算数据库,除非国防部首席信息官证明以下情况之一
(A) 没有具有广泛行业支持(例如 Apache 基金会 HBase 和 Cassandra 数据库)的可行的商业开源数据库,其安全功能可与 Accumulo 数据库相媲美,并且被首席信息官认为对于本段规定的认证而言是必不可少的。
(B) Accumulo 数据库已成为一个成功的 Apache 基金会开源数据库,具有足够的行业支持和多元化,基于首席信息官为本段规定的认证目的而制定并提交给国会适当委员会的标准,不迟于 2013 年 1 月 1 日。
(2) 解释 - 第 (1) 款中的限制不适用于国家安全局。
(b) 将 Accumulo 安全功能适配到 HBase 数据库 - 国家安全局局长应采取适当行动,确保开发和支持 Apache 基金会 HBase 和 Cassandra 数据库或类似系统的开源和商业开源版本的公司和组织,从 Accumulo 数据库的政府和承包商软件代码开发人员那里获得技术援助,以实现 Accumulo 数据库安全功能的适配和集成。
首先:哇。参议院军事委员会提议命令国防部停止使用 Accumulo,并指示 NSA 帮助将 Accumulo 的代码推回其他项目,特别点名 HBase 和 Cassandra。这种立法语言所需的复杂程度令人震惊。在不同的情况下,我会觉得这种复杂性令人鼓舞。相反,我担心 SASC 感到有必要将一个开源项目列入国防部的黑名单。难道没有比这更好的回应吗?
让我们暂时把委员会的理由放在一边,看看他们提出的补救措施。如果不是 Accumulo,而是另一款软件呢?想象一下,我们正在谈论 Apache Web Server、Red Hat Enterprise Linux、Microsoft SharePoint 或 Adobe Acrobat。如果国会把这些软件包中的任何一个列入黑名单,行业界都会失去理智。Accumulo 也没有什么不同:一旦开源,Accumulo 就成为 FAR 和 DFAR 下的商业软件。国会无权以这种方式干预。
还有更多。要求 Accumulo 被认证为“一个成功的 Apache 基金会开源数据库,具有足够的行业支持和多元化,基于首席信息官制定的标准”对于 Accumulo 和整个开源来说极其危险。仅仅软件是商业化的、功能性的并且以合理的成本提供是不够的。它现在必须具有“足够的行业支持和多元化”。
如果国防部 CIO 不得不为 Accumulo 制定这样的标准,那么不难想象同样的“充分性标准”将应用于所有开源软件项目。在您的国防部计划中有一个您最喜欢的开源项目,但没有商业供应商?不充分。该软件包只有一个供应商?缺乏多样性。专有软件没有这样的负担。
第 929 条的最后一项条款令人费解。SASC 指示 Accumulo 帮助其他想要使用 Accumulo 安全代码的项目,并特别点名 HBase 和 Cassandra。传播 Accumulo 技术的愿望没有错,但国会的法案似乎是一种极其可笑的不恰当工具吗?Accumulo 团队是否会像所有开源开发人员一样,通常乐于助人地帮助那些想要集成他们代码的人?也许更重要的是,为什么国会对 HBase 和 Cassandra 如此感兴趣?
我认为委员会(以及任何向他们提供这种立法语言的人)担心政府不必要地维护一个重复的软件项目是正确的。这对私营部门不利,政府在有完全合适的替代方案的情况下维护自己的代码库也是不利的。
与此同时,Accumulo 的人们无可争议地做了正确的事情,发布了他们的代码,甚至加入了 Apache 基金会,这绝非易事。他们应该因其对纳税人资金的出色管理而受到奖励。通过他们的努力,每个人都已经可以从他们所做的工作中受益——无论是否有立法命令这样做——并且他们完全有能力凭借自己的优点赢得或失去市场份额,就像其他人一样。
这个 Accumulo 问题为一系列关于政府在开源项目中作用的有效问题打开了大门。在第二部分中,我们将把这项具体法案放在一边,提出立法背后的问题:当政府发布开源项目时,是否会损害私营部门?我们如何知道开源是政府开发软件的合适方式?政府应该如何处理分支? 我还将研究一些可能的补救措施,这些措施可以消除对像第 929 条这样危险的粗略工具的需求。
同时,请 让您的参议员知道 您对此有何看法。
评论已关闭。