热门问题
时间线
聊天
视角
Apache軟體基金會
软件基金会 来自维基百科,自由的百科全书
Remove ads
Apache軟體基金會(Apache Software Foundation,簡稱為ASF),是一家美國的非營利組織,旨在支援各類開源軟體專案。ASF最初由Apache HTTP Server的一群開發者組成,並在1999年3月25日正式成立[2][3]。 截至2021年,其總成員數大約在1000名[4]。
Remove ads
Apache 軟體基金會是一個分散管理的開源社群。ASF開發的軟體遵循Apache授權條款條款,並且是一種非copyleft形式的自由及開放原始碼軟體(FOSS)。Apache 專案的特點包括了協同運作性、基於共識的開發流程和開放實用的軟體授權,也就是說,它允許免費接收軟體的開發人員在非自由條款下進行重新分發[5]。每個專案都從專案的積極貢獻者中自主選舉一組技術專家團隊進行管理。ASF遵循精英政治,這意味著基金會只授予成員資格給已經為Apache專案做出積極貢獻的志願者。ASF被認為是第二代開源組織,因為他們提供的商業支援沒有供應商鎖定的風險。
ASF的目標包括:為從事 Apache 專案的志願者提供法律保護以防止Apache品牌名稱被其他組織未經授權使用。
ASF每年還會舉辦多次ApacheCon會議並介紹Apache專案與相關技術[6]。
Remove ads
發展歷史
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軟體基金會在專案中採取結構化管理,以保護自己的合法利益,避免潛在的法律風險。
Remove ads
組織構成
Apache 軟體基金會(ASF)的董事會負責根據章程管理和監督組織的業務和事務。這包括了公司資產的管理(資金、智慧財產權、商標和支援裝置),任命總裁和管理 ASF 核心業務的公司官員,以及為Apache各專案的利益分配公司資源。每個 Apache 專案的技術決策權都分配給其獨立的專案管理委員會;每個專案是由各自的貢獻者制定發展方向,而不是董事會。董事會每年由全體ASF成員選舉產生[7]。
截至2021年3月17日,董事會成員包括[8][9][10][11]:
- Bertrand Delacretaz
- Roy T. Fielding
- Sharan Foga
- Justin Mclean
- Sam Ruby
- Craig L Russell
- Roman Shaposhnik
- Sander Striker
- Sheng Wu
專案
- 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:提供開源辦公文件套件。
- 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 是一套開源的分散式資料庫解決方案組成的生態圈。
Remove ads
參閱
參考資料
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads