基金會介紹
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),主要負責保證一個或者多個開源社區的活動都能運轉良好
現任理事會
根據2010年7月Apache官方Blog訊息,Apache 軟體基金會(ASF)宣布:Shane Curcuru, Doug Cutting, Bertrand Delacretaz, Roy T. Fielding, Jim Jagielski, Sam Ruby, Noirin Shirley, Greg Stein和Henri Yandell當選新一屆ASF理事會成員。
Jim Jagielski
![Apache軟體基金會](/img/2/ba1/wZwpmL1AjN4kDOzgDN0MTN1UTM1QDN5MjM5ADMwAjMwUzL4QzL3EzLt92YucmbvRWdo5Cd0FmLwE2LvoDc0RHa.jpg)
ASF理事,Apache軟體基金會主席
Shane Curcuru
ASF理事,副主席 任職IBM
Doug Cutting
![Apache軟體基金會](/img/9/feb/wZwpmLwUjM0YzM2UTN0MTN1UTM1QDN5MjM5ADMwAjMwUzL1UzL3czLt92YucmbvRWdo5Cd0FmLxE2LvoDc0RHa.jpg)
Doug Cutting ASF理事,搜尋引擎專家,任職Cloudera,Hadoop之父。
Bertrand Delacretaz
![Apache軟體基金會](/img/e/d71/wZwpmLwgjMzIjNwEjN0MTN1UTM1QDN5MjM5ADMwAjMwUzLxYzL2QzLt92YucmbvRWdo5Cd0FmLxE2LvoDc0RHa.jpg)
ASF理事,任職DAY SOFTWARE的研發集團,他參與涉及的項目Apache Cocoon, FOP, Solr, Sling, Tika和ESME。
Roy T. Fielding
![Apache軟體基金會](/img/3/989/wZwpmLxQTO1UDMzkDN0MTN1UTM1QDN5MjM5ADMwAjMwUzL5QzL2EzLt92YucmbvRWdo5Cd0FmLzE2LvoDc0RHa.jpg)
ASF理事,美國著名科學家,HTTP規範的重要作者之一,現任職DAY SOFTWARE首席科學家。
Sam Ruby
![Apache軟體基金會](/img/5/550/wZwpmLyIjNxUjM3UDN0MTN1UTM1QDN5MjM5ADMwAjMwUzL1QzL2EzLt92YucmbvRWdo5Cd0FmLxE2LvoDc0RHa.jpg)
ASF理事,參與很多開源項目,ASF秘書兼法律事務副主席,W3C的HTML組織聯合創始人,現任職於IBM。
Noirin Shirley
![Apache軟體基金會](/img/1/0cc/wZwpmL1QDM5cTN5QzN0MTN1UTM1QDN5MjM5ADMwAjMwUzL0czL2gzLt92YucmbvRWdo5Cd0FmL0E2LvoDc0RHa.jpg)
ASF唯一女性理事,負責會議的副主席。她任職Google。
Greg Stein
![Apache軟體基金會](/img/5/1fa/wZwpmLzUjMxkDN1cDN0MTN1UTM1QDN5MjM5ADMwAjMwUzL3QzL1IzLt92YucmbvRWdo5Cd0FmLzE2LvoDc0RHa.jpg)
ASF理事,曾擔任ASF主席。
Henri Yandell
![Apache軟體基金會](/img/d/951/wZwpmL3MzM0QDO5cTN0MTN1UTM1QDN5MjM5ADMwAjMwUzL3UzL4EzLt92YucmbvRWdo5Cd0FmL0E2LvoDc0RHa.jpg)
ASF理事,Commons,Jakarta,Tomcat等項目維護者。
項目
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用戶實現更快查詢海量數據集的目的
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與圖形進行轉換的計畫項目
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服務、谷歌。