查看 开源软件 授权类型_如何使用开源软件:功能,主要软件类型和选择建议...

查看 开源软件 授权类型

1998年2月成为软件开发社区中值得注意的月份之一:成立了开源计划(OSI)公司,并引入了开源标签。 该术语表示基于协作改进和源代码共享的软件开发方法。 在这些活动之前, Netscape为其Web浏览器共享了一个源代码 ,鼓励世界各地的工程师共同努力,改善产品的更新版本。

从那时起,员工和初学者就开始使用SourceForge , Tigris以及后来的GitHub或Bitbucket等网站进行软件下载,分发和协作。

什么是开源软件?

开源软件(OSS)是根据许可提供的,该许可使用户可以出于其目的访问,更改和改进其源代码。 开源倡议在十个简短的段落中解释了这种软件类型的功能。

简而言之,此类软件必须包含源代码并允许以源代码形式和编译形式进行分发(即使使用初始产品的名称和许可)。 任何人都可以修改程序并将其用于派生作品中,而不论其行业或项目为何。 例如,工程师可以使用部分源代码来扩展程序的功能,修复错误或创建新软件。 在后一种情况下,专家可以节省大量开发时间。 然后,开发人员可以免费共享或出售产品。 但是有一个限制:开发人员必须以相同的条款分发开源程序的修改后的部分,并提供源代码。

开源与专有软件

开源软件与专有软件相反。 专有软件用户首次运行时必须签署最终用户许可协议 (EULA)。 与开放源代码软件许可不同,这些协议限制用户共享和修改产品。

那些使用带有专有解决方案的开源软件的人必须仅保留以前的开源。 此外,许可证禁止用户将开放源代码作为专有代码包含在专有解决方案中。

开源意味着免费吗?

好吧,事实并非如此。 这是对开源软件最常见的误解之一。 免费是指将源代码用于个人目的,同时赞扬软件作者。 该软件可能是免费提供的,并且可能会按月,按年或一次性付款(价格通常基于用户)。 许多供应商倾向于收取咨询和技术支持费用,而不是下载软件。 他们还可以出售产品获得许可的条款的豁免,或欢迎产品用户捐赠。 开发人员的另一项获利选择是推荐补充其开源软件并从其推广的供应商那里获得一定收益的解决方案。

开源许可证

开放源代码许可中定义了此类软件的使用,修改和分发条款。

开源计划已经批准了数百个现有许可证中的80多个许可证 。 这些已批准的许可证可以分为宽松许可证和版权保留许可证。 前者允许您在出于任何目的使用该代码时自担风险,同时确认其作者或贡献者。 许可许可证的示例包括MIT , Berkeley Source Distribution(BSD) , BSD 3-Clause和Apache 2.0 。

后者是copyleft许可证,它对许可许可证有附加要求。 它需要共享分布式二进制文件的源代码,并且不允许对被许可人的许可使用施加额外的限制。 此外,您不能更改源代码的copyleft条款。 一些copyleft许可证包括GNU通用公共许可证 (2.0和3.0版), GNU较小通用公共 (三个版本:2、2.1和3), Mozilla 通用 许可证2.0(MPL-2.0) , GNU Affero通用公共许可证v3(AGPL-3.0) 。

使用开源软件的好处

开源许可不涉及版权限制。 相对的使用自由度为此类产品带来了优势,从而吸引了许多用户。 具有公开源代码的软件的主要优点是:

  • 灵活性。 可以定制软件以满足特定的业务需求。 工程师可以编写更多代码来添加额外的功能,反之亦然-删除不必要的部分。
  • 稳定性。 您可以放心地将此产品用于长期项目,因为如果它的作者停止使用它,它不会从市场上消失或过时。 用户社区将使用开源软件。
  • 安全性和可靠性。 许多具有不同技能水平的人可能会在同一软件上工作,这可能会导致代码不一致。 那时,开源文化是有益的。 来自世界各地的其他开发人员可以查看,修复和更新此代码。 代码审查越快,软件越安全和可靠。 作者和用户改进了解决方案,因为他们需要性能良好。
  • 评估更容易。 您(或您的开发人员)所见即所得。 源代码的完全透明性使您的团队可以检查和评估产品,以了解其功能和缺陷。
  • 更好的支持。 作为OSS用户,您有更多的方法来获得技术建议和支持:从供应商,专门从事此确切产品的咨询公司,或者从准备在各个论坛或邮件列表中分享其经验和知识的其他用户那里获取。
  • 可能节省。 此类产品可能具有下载价格,并且通常需要可付费的客户支持。 但是请记住,开源软件的购买成本通常低于商业软件的购买成本,并且还存在免费的开源程序。

此外,初级开发人员或学生可以使用开源代码来学习如何更好地编写代码。 至少必须有一些生活领域,人们可以从别人的错误中学到,对吗?

小型企业和企业的开源软件类型

Internet上提供了许多带有开源代码的解决方案。 我们描述的软件组允许构建组织的IT基础结构,跨部门管理数据和内容,应用程序开发和测试以及管理与客户的交互。

操作系统

Linux操作系统具有多种版本,又称为发行版,将适合具有不同计算机素养水平的用户。 最受欢迎的Linux发行版包括Ubuntu Linux , Arch Linux , Fedora , Linux Mint , Debian和openSUSE 。

FreeBSD是一个免费的开放源代码操作系统,它是基于Berkeley Software Distribution(BSD) Unix的类Unix操作系统。 它是最受欢迎的BSD操作系统:Netflix,Hacker News,Yahoo!和Netcraft等巨头的网站都在使用它。

Android是Google的移动操作系统。 您可以在我们的专用文章中找到有关Android应用程序开发的更多信息。

ReactOS是与Windows兼容的免费开源操作系统。

网络服务器

Web服务器是一种计算机系统,它使用超文本传输​​协议(HTTP)通过Internet将数据从网页分发到最终用户。

根据W3Techs的数据,截至2018年11月, Apache HTTP Server是最受欢迎的Web服务器,有45%的网站在使用它。 BuiltWith Internet服务公司已经统计了62,624,313个使用Apache的实时网站 。

NGINX在服务器受欢迎度竞赛中排名第二,占运行网站的40.2%(W3Techs于11月的统计数据),根据BuiltWith的数据,该网站占43190053个网站。 Web服务器是在类似BSD的许可证下发布的。

查看 开源软件 授权类型_如何使用开源软件:功能,主要软件类型和选择建议..._第1张图片
在最受欢迎的服务器中,有两个开源Web服务器。 资料来源: W3Techs

Node.js是服务器端跨平台JavaScript环境,旨在用于构建和运行网络应用程序(例如Web服务器)。 Node.js在多个许可下可用。 在11月,有0.5%的代码在Node.js上运行。

Apache Tomcat用于运行Java应用程序。 更具体地说,它是Java Servlet,它是扩展Web服务器功能的Java软件组件。 根据Apache许可证版本2发布,Apache Tomcat支持0.4%的网站。

Lighttpd是针对高性能环境优化的Web服务器。 它是根据BSD许可发布的,有0.1%的站点使用。

数据库系统

开源数据库的功能已达到专有解决方案的水平,这是由于越来越多的公司将其用于大型项目。

TrustRadius审查平台通过专用的TrustMap图表说明了开源数据库在不同规模的公司中的流行程度。 结果基于潜在买家的满意度等级和研究频率。 该图表包括在其网站上有10条或更多评论的产品。

查看 开源软件 授权类型_如何使用开源软件:功能,主要软件类型和选择建议..._第2张图片

让我们谈谈带有开放源代码的流行数据库。

MySQL是使用最广泛的关系嵌入式数据库之一。 在2010年,Oracle购买了它,因此该公司正在寻求支持。

PostgreSQL是一个对象关系数据库(ORD),支持macOS服务器,大多数Linux发行版和Microsoft Windows。

MariaDB是MySQL数据库的分支,因此访问数据的接口与SQL中的相同。

Apache Hive允许快速编写类似SQL的查询,以从Hadoop分布式文件系统(HDFS)和其他兼容系统中提取数据。 Apache Hive可用作数据库和数据仓库。

SQLite是一个独立的,无服务器,零配置的事务型数据库引擎。

移动开发框架

Ionic是一个免费的开源SDK(软件开发工具包),用于混合跨平台移动应用程序开发。 除了本机应用程序,Ionic还允许构建渐进式Web应用程序 。

React Native是一个开源框架,用于使用JavaScript和React(用于UI开发的Facebook JavaScript库)快速构建本机应用程序。 用React Native编写的代码可用于Android和iOS。

Flutter是Google提供的开源多平台SDK。 那些想要使用Flutter的人必须知道Dart编程语言。

Xamarin是Microsoft的跨平台移动应用程序开发工具,允许工程师共享近90%的书面代码。 Xamarin使用C#编程语言,并且基于.NET框架。

质量检查自动化工具

Selenium是一套开源软件测试自动化工具。 该工具支持移动测试,多种编程语言,操作系统和浏览器。

Watir (Ruby中的Web应用程序测试)是一个开源Ruby库,用于执行简单的自动化测试。 它适用于Edge,Internet Explorer,Firefox,Chrome和Safari。 在RubyGems上也可以使用。

Robot Framework是用于关键字驱动测试的开源自动化框架。 它可以用于网络和移动(Android和iOS)测试。

大数据分析工具

Apache Hadoop是最流行的大数据框架,用于为计算机集群中运行的应用程序分布式处理大量数据和存储。

Apache SAMOA (可扩展高级大规模在线分析)平台可以分析流数据并开发ML算法,而无需使用分布式流处理引擎(例如Apache Storm或Apache Samza)。

HPCC (高性能计算集群)系统是LexisNexis Risk Solutions提供的开源大数据分析平台。

办公软件套件

Apache OpenOffice是根据Apache 2.0许可发布的免费办公软件包。 它的用例包括文字处理,演示,图形,电子表格,数据库等。该套件以OpenDocument(ODF)格式存储数据,并能够从其他常见的Office软件包读取和写入文件。

LibreOffice是另一个免费的开源办公套件。 LibreOffice用户可以使用文本文档,数据库,电子表格,绘制流程图和矢量图形,创建演示文稿以及编辑公式。 该软件还允许导出和处理不同的文档格式,包括PDF。

NeoOffice是针对Mac用户的基于OpenOffice和LibreOffice的软件套件。 该套件提供三个版本,其中一个版本-NeoOffice Viewer-是免费的,但无法保存文档。

内容管理系统(CMS)

内容管理软件允许用户创建,管理,编辑和发布数字内容。

WordPress是最流行的开源CMS之一,用于基于PHP脚本语言和MySQL数据库系统构建动态博客,网站和应用程序。 可以扩展到超过45,000个插件。

Django是一个用于在Internet和Intranet(组织的专用网络)上发布内容的平台。 该平台使用Django和Python编写,适合具有不同背景和技能的用户:营销人员,开发人员和业务主管。

Joomla! 是一个免费的开源CMS,支持MySQL,MySQLi或PostgreSQL数据库。 该平台使用户可以更好地控制他们显示Web内容的方式,并具有数千个模板和扩展名。 专家还注意到 Joomla! 是开发电子商务网站的不错选择。

查看 开源软件 授权类型_如何使用开源软件:功能,主要软件类型和选择建议..._第3张图片
Joomla! 简单来说

Drupal是高度可扩展的,免费的开源CMS,已在全球超过一百万个站点中使用。 其内容管理功能包括移动编辑,编辑工作流,细化标签和就地内容创建。

DNN是建立在.NET框架上的免费的开源内容管理平台,不需要全面的编程知识。 DNN为全球超过750,000个网站提供动力。

企业资源计划(ERP)工具

ERP是包括许多模块在内的综合系统,可用于跨组织所有部门的信息管理。

ERPNext是具有HR管理,协作工具,企业资产管理,项目管理和CRM功能的开源和“无限扩展”产品。 该解决方案专为中小企业,尤其是非技术人员而设计。 在线托管时,它对超过五个用户收费,如果在本地安装,则完全免费。

MixERP是建立在ASP.net框架上的开源系统。 它可以帮助企业管理库存,销售以及人事和会计部门的工作。 虽然免费下载和使用,但提供商会收取支持费用(每期49美元)。 根据Capterra的评论 ,该解决方案缺少薪资和制造管理选项。 这就是大型企业需要使用云或本地付费版本之一的原因。

Apache OFBiz是一个完全可定制的,可扩展的业务软件套件。 该软件包带有开箱即用的模块,用于会计,仓储和库存管理以及制造和制造资源计划(MRP)。 电子商务公司也可以使用它来满足他们的需求,例如订单管理和CRM。 Apache OFBiz用Java编写,并根据Apache 2.0许可进行分发。 它是免费和开源的。

查看 开源软件 授权类型_如何使用开源软件:功能,主要软件类型和选择建议..._第4张图片
具有列出的计费功能的Apache OFBiz模块。 资料来源: Apache OFBiz

寻找ERP工具的人有很多选择。 您还可以考虑使用Odoo , Dolibarr , Opentaps , xTuple PostBooks , Openbravo , iDempiere或VIENNA Advantage社区版 。

企业资源计划系统结合了许多模块,每个模块都有特定的用途。 如果您对一项或多项功能感兴趣,则可以考虑使用单独的产品(例如,会计,人力资源或CRM工具)。 让我们仔细看看客户关系管理解决方案。

客户关系管理(CRM)系统

SuiteCRM基于SugarCRM社区版。 后者曾经是这类开源产品的领导者。 该解决方案专为各种类型,规模和行业的企业而设计。 使用SuiteCRM,用户可以生成发票和报价,维护销售线索和合同,制作报告以及管理文档和注释。 该解决方案甚至允许客户登录以跟踪他们自己的案件。

CiviCRM是基于Web的解决方案,重点关注非营利组织。 该解决方案功能包括案例和联系人管理,贡献,交流,事件,成员,倡导活动,对等筹款活动和报告。 CiviCRM在GNU Affero通用公共许可证版本3下可用。

EspoCRM是一个基于Web的软件,最适合中小型组织。 可以使用可购买的扩展包来扩展诸如销售自动化,电子邮件管理(个人和群发邮件),事件和任务计划之类的标准功能。 某些附加功能是VoIP集成以及与Google Calendar和MailChimp的同步。 供应商根据GPLv3许可证分发CRM。

那些值得检查并尝试其他解决方案Zurmo , 不含脂肪CRM , 好vtiger和奥罗CRM 。

如何选择开源软件?

有许多注意事项。 我们将解决的方面应帮助您回答几个主要问题: 该产品是否具有所需的功能? 我们如何扩展其功能? 该产品及其组件是否安全? 我们如何使用和维护该解决方案? 我们负担得起吗? 让我们开始。

功能和灵活性

首先,软件必须具有您日常操作中所需的功能。 一个好的做法是列出必要的功能,并将其与程序的功能进行比较。 开发人员通常在其网站上提供简短的解决方案说明。 您可以在常见问题解答部分和文档中找到更多信息。

了解该程序如何与您现有的软件组件集成,以及与哪些操作系统兼容。 确保检查是否还需要购买其他硬件来满足解决方案要求。

该软件可能不具备所有必需的功能,也可能包括非必需的功能。 因此,了解如何填补功能空白或自定义程序非常重要。 一种选择是寻找另一种缺少功能的软件。 另一种方法是利用开源软件的优势,并通过更改代码来扩展其功能。 无论是内部管理还是外包管理,都必须评估组织是否有足够的时间和财力来实施这些变更。

安全

由于源代码对所有人都是公开可用的,并且单个易受攻击的开源组件使整个应用程序处于风险之中。 测试软件组件的安全漏洞。

开发人员可以在国家漏洞数据库(NVD)美国政府资料库中检查产品是否安全。 NVD提供了安全性清单参考,错误配置,与安全性相关的软件漏洞,解决方案名称和影响指标的数据库。

在线计算机安全新闻门户和信息安全服务提供商SecurityFocus通过服务和信息源巩固了开发社区。 您可以使用Bugtraq邮件列表,在SecurityFocus邮件列表上与其他用户讨论问题,或者使用SecurityFocus漏洞数据库监视跨平台和服务的安全性。

另外,定期检查项目的错误跟踪器应该成为日常工作。

维护与支持

了解如何为所选软件获得维护和支持也很重要。 大型开源软件开发人员通常会聘请另一家定期咨询用户的公司。 如果有几家公司提供客户支持,请对自己在客户中的声誉进行调查,并检查其财务状况,以帮助选择合适的公司。 但是,提供技术支持的软件供应商就是您梦dream以求的软件供应商。

您可以创建一个内部维护团队。 在这种情况下,专家将必须找到尽可能多的支持论坛和相关资源,以及有关软件使用和维护的信息。

不要低估了您可以获得的知识以及与活跃用户社区共享的知识。

用户社区

足够的用户社区是软件完成这项工作的标志之一。 而且更重要的是,随着每个新版本的发布,错误报告和修复,此类产品将保持竞争力并不断改进。 高质量的软件必须由一群有或没有编码技能的人组成,他们将专注于改善其功能并提供反馈。 确保您能够及时获得有关部署和集成的建议,或者对其他任何问题的解答。

专家建议检查项目邮件列表档案并将问题发布到列表中,以查看人们对此有多快的React。

文献资料

专业人士不仅可以构建好的软件,还可以描述其功能,工作方式以及使用方法。 从理论上讲。 事实上,2017年GitHub调查的用户中有93%注意到文档不完整或过时是一个普遍的问题。

查看 开源软件 授权类型_如何使用开源软件:功能,主要软件类型和选择建议..._第5张图片
开源软件用户的痛点。 资料来源: GitHub

因此,我们的建议是阅读软件文档并评估其是否写得好并且足以理解解决方案的功能和用法。 关心产品和用户社区的作者通常会鼓励代码用户和非代码用户一起使文档清晰。 开发人员可以解释贡献的条款并奖励用户的文档要求。

发牌

根据之前提到的GitHub 2017年开源调查,有64%的用户同意开源许可证会影响他们是否使用项目的决定。 值得澄清的是,当用户计划更改软件而不只是使用软件时,许可证的类型很重要。

因此,您应该仔细检查许可条件,并确保它们适用于您的组织。 您还必须确保您使用的所有软件许可证都是在兼容许可证下颁发的。

计算机科学家David A. Wheeler建议验证是否有针对某个项目的未决诉讼,评估其成功的可能性,并评估可能的后果。 “仅仅采取一些法律行动不一定是一个问题; 广受欢迎的OSS / FS项目和大型专有供应商有时会引起轻率的诉讼。 在这种情况下,您需要检查证据(或至少由技术人员检查证据)以确定问题是否严重。” David总结道。

预算编制

我们都生活在物质世界中,因此我们不能忽略预算等方面。 尽管使用共享源代码获取或自定义软件要比从头开始构建软件便宜,但需要考虑其他方面,例如部署和培训。

如何估算部署价格? 这是David A. Wheeler的另一个提示:计算总拥有成本(一段时间内部署软件的所有费用)或特定时间段内的投资回报率(ROI)。

切记要考虑初始软件许可证,产品安装以及许可证和产品升级的价格。 人员,技术支持,数据转换(在现有系统和新系统之间),硬件或其他软件的购买也应估算。

结论

对于各种规模的组织和企业而言,使用开源软件和组件可能都是合理的。 好处包括发行自由,修改或扩展软件功能的能力以及可能节省的开发成本,仅举几例。

优秀的软件由庞大的用户社区支持,该社区致力于保持软件的更新,监视安全漏洞并不断完善源代码。 借助知识共享和互助的文化,您可以确保在需要时获得专业建议和帮助。

同时,开源解决方案的质量和安全性差异很大。 这就是为什么根据您自己的技术要求和标准标准评估产品的重要性,我们在上面已经对其中的一些标准进行了评估。

Joel Filipe在Unsplash上拍摄的照片

最初发布在AltexSoft技术博客 如何使用开源软件:功能,主要软件类型和选择建议

翻译自: https://hackernoon.com/how-to-use-open-source-software-features-main-software-types-and-selection-advice-80fbdb0d0f60

查看 开源软件 授权类型

你可能感兴趣的:(数据库,大数据,编程语言,python,人工智能)