热门问题
时间线
聊天
视角
Apache软件基金会
软件基金会 来自维基百科,自由的百科全书
Remove ads
Apache软件基金会(Apache Software Foundation,简称为ASF),是一家美国的非营利组织,旨在支持各类开源软件项目。ASF最初由Apache HTTP Server的一群开发者组成,并在1999年3月25日正式成立[2][3]。 截至2021年,其总成员数大约在1000名[4]。
Remove ads
Apache 软件基金会是一个分散管理的开源社区。ASF开发的软件遵循Apache许可证条款,并且是一种非copyleft形式的自由及开放源代码软件(FOSS)。Apache 项目的特点包括了协作性、基于共识的开发流程和开放实用的软件许可,也就是说,它允许免费接收软件的开发人员在非自由条款下进行重新分发[5]。每个项目都从项目的积极贡献者中自主选举一组技术专家团队进行管理。ASF遵循精英政治,这意味着基金会只授予成员资格给已经为Apache项目做出积极贡献的志愿者。ASF被认为是第二代开源组织,因为他们提供的商业支持没有供应商锁定的风险。
ASF的目标包括:为从事 Apache 项目的志愿者提供法律保护以防止Apache品牌名称被其他组织未经许可使用。
ASF每年还会举办多次ApacheCon会议并介绍Apache项目与相关技术[6]。
Remove ads
发展历史
Apache软件基金会正式创建于1999年,创始团队自称“Apache组织”。“Apache组织”在1999年以前就存在,由一群开发爱好者们构成。他们在美国国家超级计算机应用中心开发的NCSA HTTPd的基础上,开发与维护了一个叫Apache的HTTP服务器。
最初NCSA HTTPd服务器由Rob McCool开发,但是开发者逐渐对这个软件失去了兴趣,不再提供技术支持服务。因为此软件的功能强大,而代码可以自由下载修改与发布,一些爱好者与用户开始自发参与。他们探讨并分发自己修改后的软件版本,不断地改善其功能。为了更好进行沟通,Brian Behlendorf建立了一个邮件列表,用于这个社区的技术交流,把代码重写与维护的工作有效组织起来。这些开发者们逐渐地把他们这个群体称为“Apache组织”,把这个经过不断修正并改善的服务器软件命名为Apache服务器(Apache Server)。
这个命名是根据北美当地的一支印第安部落而来,这支部落以高超的军事素养和超人的忍耐力著称,19世纪后半期对侵占他们领土的入侵者进行了反抗。为了对这支印第安部落表示敬仰之意,取该部落名称(Apache)作为服务器名。但一提到这个命名,这里还有流传着一段有意思的故事。因为这个服务器是在NCSA HTTPd服务器的基础之上,通过众人努力,不断地修正、打补丁(Patchy)的产物,被戏称为“A Patchy Server”(一个补丁服务器)。在这里,因为“A Patchy”与“Apache”是谐音,故最后正式命名为“Apache Server”。
后来由于商业需求的不断扩大,以Apache HTTP服务器为中心,启动了更多的与Apache项目并行的项目,比如mod perl、PHP、Java Apache等等。随着时间的推移、形势的变化,Apache软件基金会的项目列表也不断更新变化中——不断的有新项目启动,项目的中止以及项目的拆分与合并。比如一开始,Jakarta就是为了发展JAVA容器而启动的Java Apache项目,后来由于Sun微系统的建议,项目名称变为Jakarta。但当时该项目的管理者也没有想到Jakarta项目因为JAVA的火爆而发展到如今一个囊括了众多基于JAVA语言开源软件子项目的项目。以至后来,不得不把个别项目从Jakarta中独立出来,成为Apache软件基金会的顶级项目,Struts项目就是其中之一。
为了避免类似SCO-Linux争议的事件影响Apache软件基金会,Apache软件基金会在项目中采取结构化管理,以保护自己的合法利益,避免潜在的法律风险。
Remove ads
组织构成
Apache 软件基金会(ASF)的董事会负责根据章程管理和监督组织的业务和事务。这包括了公司资产的管理(资金、知识产权、商标和支持设备),任命总裁和管理 ASF 核心业务的公司官员,以及为Apache各项目的利益分配公司资源。每个 Apache 项目的技术决策权都分配给其独立的项目管理委员会;每个项目是由各自的贡献者制定发展方向,而不是董事会。董事会每年由全体ASF成员选举产生[7]。
截至2021年3月17日,董事会成员包括[8][9][10][11]:
- Bertrand Delacretaz
- Roy T. Fielding
- Sharan Foga
- Justin Mclean
- Sam Ruby
- Craig L Russell
- Roman Shaposhnik
- Sander Striker
- Sheng Wu
项目
- HTTP Server:可以在UNIX,MS-Windows,Macintosh和Netware操作系统下运行的HTTP服务器的项目。
- Ant:基于Java语言的构建工具,类似于C语言的Make工具。
- AXIS2:Web服务(SOAP, WSDL)的处理器,基于AXIS1.X重新构建。
- APR:(也就是:Apache Portable Runtime)C语言实现的便携运行库的管理工具。
- Beehive:为了简单构建J2EE应用的对象模型。
- Apache Camel:一个开源的企业应用集成框架。
- Cocoon:一个基于组件技术和XML和Web应用开发框架。
- Cassandra:一个分布式,非关连型,NoSQL的大型数据库。
- CloudStack:一个开源的云计算IaaS管理平台。
- Cordova:一个基于Javascrip html css 的混生App开发计划。
- DB:关于数据库管理系统的几个开源项目集合。
- Apache::Deploy:是一个(R)?ex的模块,用来快速发布网站到Apache和WAR文件到Tomcat.简化了多服务器应用的发布过程。支持基于Git的发布和rpm/deb发布,同时简化了构建rpm和deb包。
- Derby:一个纯JAVA的数据库管理系统。
- Directory:基于JAVA语言的目录服务器,支持LDAP等目录访问协议。
- Excalibur:Apache Avalon项目的前身。
- Forrest:一个发布系统框架的项目。
- Flink:流计算引擎
- Geronimo:J2EE服务器。
- Gump:集成管理器。
- Hadoop:并发运算编程工具和分布式文件系统。
- Harmony:一个兼容JAVA标准的JAVA语言的开源实现。
- HiveMind:一个服务(Services)与配置(configuration)的微内核。
- iBATIS:一个基于JAVA语言的数据持久化框架。
- Incubator:为了帮助那些希望获取Apache软件基金会支持的计划进入Apache软件基金会的审核项目。
- Jackrabbit:内容仓库API标准(Content Repository for Java Technology API,即JSR-170)的一个开源实现项目。
- Jakarta:在ASF中,基于Java语言的一组开源子项目的集合,现在包含的子项目有:BCEL,BSF,Cactus,Commons,ECS,HttpComponents,JCS,JMeter,ORO,Regexp,Slide,Taglibs,Turbine,Velocity。
- James:JAVA语言实现的邮件新闻服务器。
- Kafka:分布式消息队列
- Labs:为基金会成员提供最新变更的思维的计划。
- Lenya:内容管理系统。
- Logging:一个开发可以在C++、Java、Perl、PHP、.NET 计算机语言下运行的通用日志工具项目集合。
- Lucene:高性能的,基于Java语言的全文检索项目。
- Maven:项目集成构建工具。
- MyFaces:一个JavaServer Faces(JSF)的实现框架。
- mod_perl:为Apache服务器提供Perl语言集成的项目。
- POI:提供API以供JAVA程序对Microsoft Office格式文件的读/写。
- OpenOffice:提供开源办公文档包。
- Apache PDFBox:用于操作 PDF 文档,可以进行创建、打印、合并、更改、验证和提取或修改 PDF 元数据等功能
- Portals:与门户(Portal)技术相关的几个项目集合。
- Santuario:发展XML安全性方面的项目。
- Shale:在Struts之后,发展起来基于JAVA语言Web应用框架。
- Shiro:权限管理
- SpamAssassin:垃圾邮件过滤器。
- Struts:一个基于J2EE平台的MVC 设计模式的Web应用框架。
- Subversion:一个软件版本管理系统。
- Tapestry:另一个J2EE平台的、能产生动态、高性能Web应用的框架。
- TCL:为Apache服务器提供Tcl语言集成的项目。
- Tomcat:一个运行Java Servlet与JavaServer Pages(JSP)的容器。
- Web Services:与Web Services技术相关的项目集合。
- Xalan:XML转换处理器。
- Xerces:一组可以在Java,C++,Perl 计算机语言下使用的XML解析器项目。
- Apache XML:XML解决方案。
- XMLBeans:基于JAVA语言XML对象绑定工具。
- XML Graphics:发展XML与图形进行转换的计划项目。
- ShardingSphere:Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈。
Remove ads
参阅
参考资料
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads