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) |
法律地位 | 基金會、501(c)(3)組織 |
總部 | 福里斯特希爾 |
地址 | |
方法 | Apache許可證 |
目標 | 開源軟件 |
獎項 | 大哥獎[*] |
網站 | www.apache.org |
Apache軟件基金會(也就是Apache Software Foundation,簡稱為ASF),是專門為支援開源軟件專案而辦的一個非盈利性組織。在它所支援的Apache專案與子專案中,所發行的軟件產品都遵循Apache許可證(Apache License)。
發展歷史
Apache軟件基金會正式建立於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應用的對象模型。
- Apache Camel: 一個開源的企業應用整合框架。
- 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應用框架
- 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與圖形進行轉換的計劃專案