Apache是什么?

Posted AAA软件教育官方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache是什么?相关的知识,希望对你有一定的参考价值。

Apache是什么?

Apache软件基金会(也就是Apache Software Foundation,简称为ASF),是专门为支持开源软件项目而办的一个非盈利性组织。在它所支持的Apache项目与子项目中,所发行的软件产品都遵循Apache许可证(Apache License)。
中文名              Apache软件基金会
外文名              Apache Software Foundation
简称                 ASF
正式创建          1999年7月

基金会介绍
Apache软件基金会(也就是Apache Software Foundation,简称为ASF),是专门为支持开源软件项目而办的一个非盈利性组织。在它所支持的Apache项目与子项目中,所发行的软件产品都遵循Apache许可证(Apache License)。


发展历史
Apache软件基金会正式创建于1999年7月,它的创建者是一个自称为“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”(一个补丁服务器)。在这里,因为“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与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:关于数据库管理系统的几个开源项目集合
Derby:一个纯JAVA的数据库管理系统
Drill :将有助于Hadoop用户实现更快查询海量数据集的目的[2]
Directory:基于JAVA语言的目录服务器,支持LDAP等目录访问协议。
Excalibur:Apache Avalon项目的前身。
Forrest:一个发布系统框架的项目。
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语言实现的邮件新闻服务器
Labs:为基金会成员提供最新变更的思维的计划
Lenya:内容管理系统
Logging: 一个开发可以在C++、Java、Perl、PHP、.NET计算机语言下运行的通用日志工具项目集合。
Lucene: 高性能的,基于Java语言的全文检索项目。
Maven:项目集成构建工具
MyFaces: 一个JavaServer Faces(JSF)的实现框架。
mod_perl:为Apache服务器提供Perl语言整合的项目
POI:提供API以供JAVA程式对Microsoft Office格式档案的读/写。
Portals:与门户(Portal)技术相关的几个项目集合
Santuario:发展XML安全性方面的项目
Shale:在Struts之后,发展起来基于JAVA语言Web应用框架
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与图形进行转换的计划项目 [3]


Apache技术
HTTP服务器
Apache HTTP服务器项目主要致力于为现代操作系统开发和维护开源的HTTP服务器,其中包括Unix和Windows NT。这个项目的主要目标是提供一个可以与当前的HTTP标准同步提供安全、高效和可扩展的服务器的HTTP服务。自1996年4月以来,Apache就变成了互联网上最流行的Web服务器。
主要用户群:连续13年,Apache HTTP服务器都是全球Web服务器的领军者,为1.13亿个网站提供服务。
Tomcat
Apache Tomcat是一个可以执行Java Servlet和JavaServer网页技术的开源软件。Apache和Tomcat是相对独立的,用户可以通过Apache访问Tomcat资源,反之亦然,二者可以在同一台服务器上。Apache Tomcat是由全世界各地的最佳开发者合力研发而来的,是一款非常优异的开源软件。
用户群:Tomcat推动了很多不同行业的大型的、关键的Web应用程序的发展,其中包括ETrade、沃尔玛、天气频道以及EMC等。
Lucene
Apache Lucene是一个高性能、全功能的文字搜索引擎库,是由Java语言编写的。Apache Lucene适用于任何需要全文字搜索的应用程序,特别是跨越平台。一开始,Lucene是由Java语言编写的,目前已经被移植到其他的语言,其中包括Delphi、Perl、C#、C++、Python、Ruby和PHP等。
用户群:苹果在线零售店、CNET、Netflix、维基百科、Yelp、Comcast、LinkedIn、The  Smithsonian、多个政府机构(FDA、DOD等)、Technorati、互联网档案馆(例如AOL黄页的上下文搜索等)。
Struts
Apache Struts是一个用于开发Java EE Web应用程序的开源Web应用程序框架。Apache Struts使用和扩展Java Servlet API去鼓励开发者采用模型视图控制器(MVC)构架。
用户群: IRS、波士顿环球报、大赦国际、Sears、Alamo Car Rental、National Car Rental、Travelocity等等。
Geronimo
Apache Geronimo是Apache软件基金会的开放源码J2EE服务器,它集成了众多先进技术和设计理念。这些技术和理念大多源自独立的项目,配置和部署模型也各不相同。Geronimo项目的目标就是产生一个服务器运行时间框架,将最好的开源替代品汇集到一个统一、易用的模型中,去满足开发人员和系统管理员的需求。
用户群:AMD、Chariot Solutions、IBM、Virtuas等。
Ant
Apache Ant是由Apache软件基金会所提供的一个基于Java的开发工具,它是将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。
用户群:大多数的Java设计都被用于管理大量信息流,例如纽约州就使用Apache Ant去管理美国最大的青年计划,每天可以实时更新超过25万学生的记录。
Cocoon
Apache Cocoon是一个基于Spring框架的围绕分离理念建立的构架,在这种框架下的所有处理都被预先定义好的处理组件线性连接起来,能够将输入和产生的输出按照流水线顺序处理。
用户群:Apache Lenya、Daisy CMS、Hippo CMS、Mindquarry等等,Apache Cocoon通常被作为一个数据抽取、转换、加载工具或者是系统之间传输数据的中转站。
SpamAssassin
SpamAssassin是一个由Apache开发的一个著名的反垃圾引擎,邮件系统完整的集成了SpamAssassin反垃圾引擎。SpamAssassin中包含了各种各样的垃圾邮件监测技术,其中包括基于DNS和checksum的垃圾邮件监测、Bayesian过滤、外部程序、黑名单和在线数据库等。
用户群:SpamAssassin被数以千计的独立开发商和用户所采用,并被作为数个商业产品的主要成分.
Axis
Apache Axis是一个基于SOAP应用的框架,核心是一个SOAP处理器,用于开发包括客户端,服务器端,SOAP Gateway等各种应用。
用户群:WSO2、MuleSource IBM、Progress Software等。
Logging Service
Apache Logging Services项目主要是为了提供应用程式除错以及监督的日志登录服务。 Apache Logging Services项目的产品包括三个日志登录框架,分别为log4j for Java、log4cxx for C++以及log4net for the Microsoft .NET framework。Apache Logging Services还被应用于日志查看器和分析工具Chainsaw中。
用户群:Apache Logging在Java开发中无处不在。
Common
Commons是一个主要专注于可再用Java组件所有方面的Apache项目。Apache Commons项目由3个部分组成:
*The Commons Proper—可再用Java组件的贮存处;
*The Commons Sandbox—Java组件的开发工作区;
*The Commons Dormant—沙盒组件的贮存库。
用户群:亚马逊Web服务、谷歌。


  • [1]  Apache基金会新一届成员.

  • [2]  Apache Drill 成为 Apache 基金会顶级项目 .云创存储 [引用日期2014-12-03]

  • [3]  Apache软件基金会官方网站.
















AAA软件教育(大学生实训校区)

官网:www.zzaaa.net



以上是关于Apache是什么?的主要内容,如果未能解决你的问题,请参考以下文章

apache和tomcat有什么不同,为什么要整合apache 和tomcat?

apache的文件列表是怎么实现的

为啥装了apache还要装PHP呢

Apache是什么?

php apache有啥用

为什么要整合apache 和tomcat?