Apache軟件基金會
![]() | |
成立時間 | 1999年7月 |
---|---|
創始人 | Brian Behlendorf, Ken Coar, Mark Cox, Lars Eilebrecht, Ralf S. Engelschall, Roy T. Fielding, Dean Gaudet, Ben Hyde, Jim Jagielski, Alexei Kosut, Martin Kraemer, Ben Laurie, Doug MacEachern, Aram Mirzadeh, Sameer Parekh, Cliff Skolnick, Marc Slemko, William (Bill) Stoddard, Paul Sutton, Randy Terbush, Dirk-Willem van Gulik |
類型 | 501(c)(3) |
目標 | 開源軟體 |
地點 | |
方法 | Apache授權條款 |
網站 | apache.org |
Apache軟體基金會(Apache Software Foundation,簡稱為ASF),是專門為支援開源軟體專案而辦的一個非營利性組織。在它所支援的Apache專案與子專案中,所發行的軟體產品都遵循Apache授權條款(Apache License)。
發展歷史
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專案,後來由於昇陽電腦的建議,專案名稱變為Jakarta。但當時該專案的管理者也沒有想到Jakarta專案因為JAVA的火爆而發展到如今一個囊括了眾多基於JAVA語言開源軟體子專案的專案。以至後來,不得不把個別專案從Jakarta中獨立出來,成為Apache軟體基金會的頂級專案,Struts專案就是其中之一。
為了避免類似SCO-Linux爭議的事件影響Apache軟體基金會,Apache軟體基金會在專案中採取結構化管理,以保護自己的合法利益,避免潛在的法律風險。
組織構成
理事會
理事會(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應用的物件模型。
- 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:提供相容MS.Office的文件、表格和簡報的編輯和展示功能。
- 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 是一套開源的分散式資料庫解決方案組成的生態圈。