Apache軟體基金會

本页使用了标题或全文手工转换,现处于台湾繁体模式
求聞百科,共筆求聞
Apache軟體基金會
成立時間1999年7月
類型501(c)(3)
目標開源軟體
地點
方法Apache授權條款
網站apache.org

Apache軟體基金會(Apache Software Foundation,簡稱為ASF),是專門為支援開源軟體專案而辦的一個非營利性組織。在它所支援的Apache專案與子專案中,所發行的軟體產品都遵循Apache授權條款(Apache License)。

發展歷史

Apache軟體基金會正式建立於1999年,創始團隊自稱「Apache組織」。「Apache組織」在1999年以前就存在,由一群開發愛好者們構成。他們在美國國家超級電腦應用中心開發的NCSA HTTPd的基礎上,開發與維護了一個叫ApacheHTTP伺服器

最初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 perlPHP、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:可以在UNIXMS-WindowsMacintoshNetware作業系統下執行的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:流計算引擎
  • GeronimoJ2EE伺服器。
  • 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++JavaPerlPHP.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 ServletJavaServer Pages(JSP)的容器。
  • Web Services:與Web Services技術相關的專案集合。
  • XalanXML轉換處理器。
  • Xerces:一組可以在JavaC++Perl 電腦語言下使用的XML解析器專案。
  • Apache XMLXML解決方案。
  • XMLBeans:基於JAVA語言XML物件繫結工具。
  • XML Graphics:發展XML與圖形進行轉換的計劃專案。
  • ShardingSphere:Apache ShardingSphere 是一套開源的分散式資料庫解決方案組成的生態圈。

參閱

外部連結