Apache软件基金会
维库,知识与思想的自由文库
Image:230px-ASF-logo.gifApache软件基金会(也就是Apache Software Foundation,简称为ASF),是专门为运作一个开源软件项目的 Apache 的团体提供支持的非盈利性组织,这个开源软件项目就是 Apache 项目。这个组织把自己作为有着相同目标的开发者与用户的团体,而不是简单的共享在一个服务器上的一组项目的组织团体。在它所支持的 Apache 项目与子项目中,所发行的软件产品都遵循 Apache许可证(Apache License)。
目录 |
[编辑] 发展历史
Apache软件基金会(ASF)正式创建于1999年,它的创建者是一个自称为“Apache 组织”的群体。这个“Apache 组织”在1999年以前就已经存在很长时间了,这个组织的开发者爱好们聚集在一起,在美国伊利诺斯大学超级计算机应用程序国家中心(National Center for Supercomputing Applications,简称为NCSA)开发的 NCSA HTTPd 服务器的基础上开发与维护了一个叫 Apache 的 HTTP服务器。
最初 NCSA HTTPd 服务器是由 Rob McCool 开发出来的,但是它的最初开发者们逐渐对这个软件失去了兴趣,并转移到了其他地方,造成了没有人来对这个服务器软件提供更多的技术支持。因为这个服务器的功能又如此强大,而代码可以自由下载修改与发布,当时这个服务器软件的一些爱好者与用户开始自发起来,互相交流并分发自己修正后的软件版本,并不断改善其功能。为了更好进行沟通,Brian Behlendorf 自己建立了一个邮件列表,把它作为这个群体(或者社区)交流技术、维护软件的一个媒介,把代码重写与维护的工作有效组织起来。这些开发者们逐渐地把他们这个群体称为“Apache 组织”,把这个经过不断修正并改善的服务器软件命名为 Apache 服务器(Apache Server)。
这个命名是根据北美当地的一支印第安部落而来,这支部落以高超的军事素养和超人的忍耐力著称,19世纪后半期对侵占他们领土的入侵者进行了反抗。为了对这支印第安部落表示敬仰之意,取该部落名称(Apache)作为服务器名。但一提到这个命名,这里还有流传着一段有意思的故事。因为这个服务器是在 NCSA HTTPd 服务器的基础之上,通过众人努力,不断地修正、打补丁(Patchy)的产物,被戏称为“A Patchy Server”(一个补丁服务器)。在这里,因为“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 与 UNIX 开源社区之间的发生纠纷降临在 Apache 软件基金会(ASF)身上。Apache软件基金会(ASF)里面开始采取一些措施,让众多的项目进行更多协调的、结构化管理,并保护自己的合法利益,避免一些潜在的合乎法律的侵犯(potential legal attacks)。
[编辑] 组织构成
[编辑] 理事会
理事会(Board of Directors)是管理与监督整个Apache软件基金会(ASF)的商务与日常事务,并让它们能符合章程的规定下正常地运作。
[编辑] 项目管理委员会
项目管理委员会(Project Management Committees,简称为PMC),主要负责保证一个或者多个开源社区的活动都能运转良好
[编辑] 项目
- 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 应用的对象模型。
- Cocoon:一个基于组件技术和 XML 和 Web 应用开发框架。
- DB:关于数据库的几个开源项目集合
- Directory:基于 JAVA 语言的目录服务器,支持 LDAP 等目录访问协议。
- Excalibur:Apache Avalon 项目的前身。
- Forrest:一个发布系统框架的项目。
- Geronimo:J2EE 服务器
- Gump:整合管理器
- 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,POI,Regexp,Slide,Taglibs,Turbine,Velocity
- James:JAVA 语言实现的邮件新闻服务器
- Labs:为基金会成员提供最新变更的思维的计划
- Lenya:内容管理系统
- Logging: 一个开发可以在C++、Java、Perl、PHP、.NET 计算机语言下运行的通用日志工具项目集合。
- Lucene: 高性能的,基于 Java 语言的全文检索项目。
- Maven:项目集成构建工具
- MyFaces: 一个JavaServer Faces(JSF)的实现框架。
- mod_perl:为 Apache 服务器提供 Perl 语言整合的项目
- Portals:与门户(Portal)技术相关的几个项目集合
- Santuario:发展 XML 安全性方面的项目
- Shale:在 Struts 之后,发展起来基于 JAVA 语言Web应用框架
- SpamAssassin:垃圾邮件过滤器
- Struts: 一个基于 J2EE 平台的 MVC 设计模式的Web应用框架
- Tapestry: 另一个 J2EE 平台的、能产生动态、高性能 Web 应用的框架。
- TCL:为 Apache 服务器提供 Tcl 语言整合的项目
- Tomcat: 一个运行 Java Servlet 与 JavaServer Pages(JSP)的容器。
- Web Services:与 Web Services 技术相关的项目集合
- Xalan:XML 转换处理器
- Xerces: 一组可以在Java,C++,Perl 计算机语言下使用的 XML 解析器项目。
- XML:XML 解决方案
- XMLBeans:基于 JAVA 语言XML对象绑定工具
- XML Graphics:发展 XML 与图形进行转换的计划项目




