跳转到内容

FOSS 开放标准/简介

来自 Wikibooks,开放世界中的开放书籍

什么是标准?为什么它们很重要?

[编辑 | 编辑源代码]

单词“标准”有几个不同的含义。在本文档主题内容的背景下,它在日常使用中的含义[1][2]可以理解为指的是

  1. 质量或成就水平,或者
  2. 一个所有其他项目或规范都可以衡量的参照物。

在技术使用中,标准[3]是一个规范框架,它已

  1. 获得公认组织的批准,或者
  2. 在整个行业中普遍接受并广泛使用。

在本文件的其余部分,除非另有说明,当使用“标准”一词时,都隐含着技术含义。

标准在现代社会中极其重要。它们确保产品和服务的质量足够,并且即使它们可能来自不同的方面或实体,也能互操作并协同工作。最终,它们提高了质量、安全、可靠性、效率和互操作性水平,并以经济的方式提供了这些好处。[4]

在 IT 行业中,标准尤其重要,因为它们允许来自不同方面产品的互操作性,包括服务、硬件和软件。如果没有标准,用户可能被迫仅使用来自一方或供应商的硬件和软件或服务。国际公认的标准定义了通用接口,任何标准的更改或修改通常都通过共同协议进行。例如,如果互联网在其网络基础设施和支持的服务中不使用广泛接受的技术标准,那么它就不会实现当前无处不在的存在,即从几乎任何类型的计算机平台和设备都可以访问它。

开放标准

[编辑 | 编辑源代码]

在定义了标准在一般和技术使用中的含义后,让我们将注意力转向本入门指南的主要重点——开放标准。关于什么构成开放标准,存在许多不同的意见。[5][6][7][8][9][10]

开放标准的定义

[编辑 | 编辑源代码]

著名的开源倡导者布鲁斯·佩伦斯认为,开放标准不仅仅是一个规范,而且标准背后的原则以及提供和运营标准的做法才是使标准开放的关键。[11]他建议开放标准应遵循可用性的原则,并最大限度地提高最终用户的选择。此外,不应有任何版税、歧视、扩展子集和掠夺性做法,并且应遵循某些做法以确保遵守这些原则。佩伦斯的定义已在全球 FOSS 社区中得到广泛认可。

开放标准原则 - 布鲁斯·佩伦斯

布鲁斯·佩伦斯提出了以下开放标准原则。根据他的定义[12],开放标准不仅仅是一个规范。标准背后的原则以及提供和运营标准的做法才是使标准开放的关键。布鲁斯·佩伦斯列出的原则如下所示。

原则

可用性
开放标准可供所有人阅读和实施。最大限度地提高最终用户的选择:开放标准为标准的实现创建了一个公平、竞争的市场。它们不会将客户锁定到特定的供应商或群体。
无版税
开放标准可供所有人免费实施,无需任何版税或费用。标准组织的合规性认证可能需要付费。
无歧视
开放标准及其管理组织不会出于任何理由偏袒一个实施者而非另一个实施者,除非供应商实施的技术标准合规性。认证组织必须为低成本和零成本实施提供验证途径,但也可以提供增强的认证服务。
扩展或子集
开放标准的实现可以扩展,或以子集形式提供。但是,认证组织可能会拒绝认证子集实现,并可能对扩展提出要求(参见掠夺性做法)。
掠夺性做法
开放标准可以采用许可条款来防止通过拥抱-扩展策略破坏标准。与标准相关的许可证可能要求发布扩展的参考信息,以及所有其他人创建、分发和销售与扩展兼容的软件的许可证。开放标准不得以其他方式禁止扩展。

实践

布鲁斯·佩伦斯还讨论了为上述每项原则提供和运营的推荐做法。(感兴趣的读者应查看引用的参考文献[13]以了解这些。)

美国马萨诸塞州的开放标准政策[14]将其定义为公开可用的系统规范,这些规范由开放社区开发并得到标准机构的确认。欧盟委员会的欧洲互操作性框架 (EIF)[15]增加了以下要求:开放标准应免费或以象征性费用提供使用、复制和分发,任何存在的专利都应以免版税的方式永久提供,并且不应限制标准的重复使用。

因此,佩伦斯的定义通常与 EIF 和马萨诸塞州的定义一致,这种方法已成为许多政策制定者在其开放标准政策的基础。

其他组织,例如美国国家标准学会 (ANSI)、国际电信联盟电信标准化部门 (ITU-T) 和商业软件联盟 (BSA),也提出了他们关于开放标准的定义和政策。虽然所有这些都认识到开放标准必须公开提供,以便相关方参与实施和开发,但它们也认识到包含必要的知识产权 (IPR),只要这些知识产权可以在非歧视性条款下以及以合理费用或免费提供。

因此,我们发现,虽然对开放标准可能存在许多详细的定义和含义,但总的来说,它们都满足以下特征

  1. 所有人都可以轻松访问和使用;
  2. 由一个开放且任何人都相对容易参与的过程开发;以及
  3. 不受任何特定群体或供应商控制或绑定。

开放 IT 标准的示例包括

  1. 来自互联网工程任务组 (IETF) 的传输控制协议/互联网协议 (TCP/IP) 网络协议套件;
  2. 来自万维网联盟 (W3C) 和国际标准化组织 (ISO) 的超文本传输协议 (HTTP) 服务协议;
  3. 来自 Unicode 联盟和 ISO 的 Unicode 编码标准;以及
  4. 来自开放组、电气和电子工程师协会 (IEEE) 和 ISO 的用于 UNIX 的可移植操作系统接口 (POSIX)。

许多组织以及政府开始强调他们的 IT 使用尽可能遵循或遵守开放标准,因为他们现在意识到,通过实施开放标准,他们可以在技术、供应商和解决方案的选择方面拥有更大的灵活性。在日益复杂和异构的 IT 环境中,没有单一的技术或供应商可以提供所有解决方案,因此混合匹配和互操作的能力至关重要。信息现在以前所未有的方式以电子方式交换和存储。只有遵循数据交换和存储/检索的开放标准,组织才能确保访问这些数据,无论现在还是将来,当技术或供应商可能早已消失时。

开放标准的其他一些定义

美国国家标准学会

ANSI 将开放标准描述为那些由一个过程开发的标准,在这个过程中,一个对所有物质上受影响和感兴趣的各方代表开放的群体或“共识机构”达成共识,并且考虑并回应投票成员提交的评论相关共识机构以及公众。还应该对标准草案进行广泛的公众审查和评论。对于认为在标准制定过程中未遵守 ANSI 开放标准原则的参与者,可以提供申诉途径。

此外,ANSI 试图通过允许支付合理的许可费和/或实施标准所需的 IPR 持有者可能要求的其他合理和非歧视性许可条款,来平衡标准的实施者和使用者与拥有对实施标准至关重要的 IPR 的各方的利益。

商业软件联盟:

BSA 是一个代表商业软件提供商的行业贸易协会,它指定了一套开放标准的特征。据此,开放标准应在不受限制的情况下发布,并提供足够的细节以使人们能够完全理解标准的范围和目的,并且应免费或以合理费用公开提供,以供采用和实施。任何实施它所需的专利权都应由那些开发规范的人以合理且非歧视性 (RAND) 的条款(无论是否支付合理的特许权使用费或费用)提供给所有实施者。

国际电信联盟电信标准化部门

ITU-T 采用了开放标准的定义[16],它反映了与 ANSI 相同的关键要素。他们将开放标准定义为向公众提供的标准,并通过协作和共识驱动的过程开发(或批准)和维护。这些标准应使用协作且透明的共识驱动的过程开发,该过程对所有利益相关方都合理开放。

实施标准所需的知识产权应在全球范围内以非歧视性的方式许可给所有申请人,无论是免费和在其他合理条款和条件下,还是在合理条款和条件下,其中可能包括金钱补偿。

这里应该注意的是,标准的广泛使用并不一定意味着它是开放的。在 IT 行业中发现了许多例子(例如,来自 Adobe 公司的便携式文档格式或 PDF,来自微软的 Powerpoint 演示文稿文件格式),其中与流行产品相关的一些技术或文件/数据格式被广泛使用,以至于它成为了一种事实上的标准,即通过行业中广泛使用和接受而建立的标准。但是,由于这通常基于特定一方(供应商或紧密群体)的技术,并且受该一方控制,因此它不符合开放标准的条件。将其作为标准采用存在潜在的陷阱,因为用户没有开放的机制参与其开发,也没有保证控制方不会试图将用户锁定在其产品或技术中。在某些情况下,产品/技术的拥有者可能会同意将其提交给国际公认的标准制定机构,并在这样做时,它可能会成为开放标准。

然而,同时,政府和组织应该对某些此类事实上的标准(例如 PDF)被广泛且合理地许可以及广泛部署的可能性持开放态度,因此有必要将其作为政府或组织互操作性计划的一部分暂时支持此类标准。完全忽略此类标准作为规则实际上可能会损害互操作性,尤其是在没有此类事实上的标准的足够开放标准替代方案的情况下。

开放标准和 FOSS

[编辑 | 编辑源代码]

许多人混淆了开放标准和 FOSS 的术语,认为它们是一回事,或者一个不能存在而另一个不存在。为了与 IOSN 发布的其他出版物保持一致,本文档中将使用术语 FOSS 来指代开源软件和/或自由软件。[17] 除非另有说明,否则开放标准与 FOSS 不相同,FOSS 指的是在创建、修改、使用、许可和分发方面遵循某些原则的软件。[17] 特别是,它应该具有四个基本自由

  1. 运行程序的自由,用于任何目的;
  2. 研究程序工作原理并根据您的需要调整程序的自由;
  3. 重新分发副本的自由,以便您可以帮助他人;以及
  4. 改进程序并将其改进发布给公众的自由。

FOSS:一般介绍入门[18] 可参考 IOSN 的更多背景和 FOSS 详细信息。

FOSS 是软件,而开放标准是指标准——完全不同的两件事。开发软件和标准所涉及的过程和问题也大不相同。非 FOSS 软件(通常称为专有软件)中的功能完全有可能遵循开放标准来实现。开放标准对软件许可或商业模式保持中立,因此开放标准在专有软件中实现与在 FOSS 中实现一样有可能。例如,像 Microsoft Windows 操作系统这样的专有软件仍然可以实现来自 IETF 的遵循开放标准的 TCP/IP 网络协议,并与之兼容。

标准的广泛使用,尤其是开放标准,对 FOSS 非常重要。它使 FOSS 更容易与专有软件兼容。FOSS 需要与专有软件共存是一个现实,如果所有软件产品都遵循标准,则可以促进与专有平台的兼容性。如果所有软件产品都严格遵循标准,它们应该能够很好地相互互操作和通信,并且可以透明地读取和写入数据文件。虽然专有标准和开放标准都可以实现这一点,但后者更受 FOSS 社区的青睐,因为它们促进了自由访问、开放开发和参与。

在专有规范未公开发布但需要获得许可的情况下,FOSS 支持可能很困难。过去,解决此问题的一种方法是对实现规范或协议的某些专有产品进行反向工程,但在最近一段时间,越来越多的专有许可证明确禁止这样做。在一些国家,也通过了相关法律(例如,美国的《数字千年版权法案》),如果认为该过程可以帮助规避为防止非法复制产品而实施的措施,则禁止对产品进行反向工程。这些发展再次强调了开放标准在确保 FOSS 能够很好地与专有软件互操作方面发挥的重要作用。FOSS 的出现及其使用的开放标准突出了在需要互操作性的世界中开放标准的需求和益处。

开源软件也从开放标准中获益良多,当前开源软件的广泛使用和普及很大程度上归功于互联网以及互联网所使用的开放标准。虽然程序员(以及许多编写自己程序的用户)从计算机的早期就开始自由地交换带有源代码的程序,但直到20世纪90年代互联网的爆发之后,开源软件的概念和文化才被主流IT行业广泛认知和接受。实现互联网上使用的开放标准和协议(如TCP/IPHTML简单邮件传输协议(SMTP)等)的开源软件易于获取,许多个人和组织开始使用这些软件。从那时起,他们开始了解开源软件,并且随着越来越多的人使用和贡献开源软件,开源软件也逐渐壮大并得到更广泛的认可。

有些人可能会争辩说,开源软件中允许任何人修改软件源代码的自由度将允许甚至鼓励包含不符合已发布标准的代码。这是有可能的,但在实践中很少发生(即修改主流开源产品使其不符合开放标准并重新发布修改后的软件)。此外,开源软件项目所有者也会对此进行防范,因为他们意识到,如果尽可能地遵守开放标准,将有利于开源软件的发展。事实上,开源软件非常自然地会促进开放标准的采用,因为开源软件自身的理念和开发模式鼓励所有人参与、开放和共享——这正是开放标准的特征和特点。

开源软件有助于推广开放标准

开源软件可以在推广开放标准方面发挥有益的作用。开放标准的开源实现通常会导致一个开放且免费使用的参考实现。如果开放标准的唯一实现是一个封闭的和专有的实现,那么开放标准的许多好处就会被抵消。开源实现的可用性将促进标准更快地被采用和接受,因为每个人都可以轻松访问标准的实现,从而可以尝试和测试它。一个很好的例子是互联网HTTP标准。这项服务之所以被普遍接受,一个原因是在很早的时候就有了HTTP服务器(例如,国家超级计算应用中心或NCSA HTTPdApache)和客户端(例如,NCSA Mosaic)的免费和开放实现。

入门指南的重点

[编辑 | 编辑源代码]

本入门指南是IOSN发布的一系列关于开源软件的入门指南的一部分,这些指南作为开源软件的入门文档,并更详细地介绍了被认为对开源软件很重要的特定主题。因此,开放标准的问题是从开源软件的角度来探讨的,并且强调了其中一些标准与开源软件之间的关系。虽然开放标准可用于硬件和软件,并且对两者都很重要,但本入门指南中提供的示例和参考主要集中在与软件相关的标准上。

  1. Merriam-Webster在线词典 http://www.m-w.com
  2. 维基词典 - 一个基于维基的开放内容词典 http://en.wiktionary.org/wiki/Main_Page
  3. Webopedia - 计算机和互联网技术定义的在线计算机词典 http://www.webopedia.com/TERM/s/standard.html
  4. ISO体系概述 - 标准为何重要 http://www.iso.org/iso/en/aboutiso/introduction/index.html
  5. Perens, B.,“开放标准原则与实践” http://perens.com/OpenStandards/Definition.html
  6. 美国马萨诸塞州IT部门开放标准政策 http://www.state.ma.us/itd/openstandards.htm
  7. 欧洲互操作框架v1.0 http://ec.europa.eu/idabc/en/document/3473/5585
  8. ANSI,“更改既定开放标准定义的当前尝试” http://public.ansi.org/ansionline/Documents/Standards%20Activities/Critical%20Issues%20Papers/Open-Stds.pdf
  9. BSA,“BSA关于技术标准的声明” http://www.bsa.org/usa/policy/loader.cfm?url=/commonspot/security/getfile.cfm&pageid=22407&hitboxdone=yes
  10. ITU-T,TSB主任特别IPR小组,“开放标准的定义” http://www.itu.int/ITU-T/othergroups/ipr-adhoc/openstandards.html
  11. Perens, B.,“开放标准原则与实践” http://perens.com/OpenStandards/Definition.html
  12. Perens, B.,“开放标准原则与实践” http://perens.com/OpenStandards/Definition.html
  13. Perens, B.,“开放标准原则与实践” http://perens.com/OpenStandards/Definition.html
  14. 美国马萨诸塞州IT部门开放标准政策 http://www.state.ma.us/itd/openstandards.htm
  15. 欧洲互操作框架v1.0 http://ec.europa.eu/idabc/en/document/3473/5585
  16. ITU-T,TSB主任特别IPR小组,“开放标准的定义” http://www.itu.int/ITU-T/othergroups/ipr-adhoc/openstandards.html
  17. 自由软件基金会,“自由软件” http://www.fsf.org/philosophy/free-sw.html
  18. Wong, K.,“开源软件通用介绍入门指南” http://www.iosn.net/foss/foss-general-primer/
华夏公益教科书