發展歷史
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”(一個補丁伺服器)。在這裡,因為“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的資料庫管理系統
* 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套用框架
* 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 與圖形進行轉換的計畫項目
* HADOOP 大型分散式雲存儲檔案系統