热门问题
时间线
聊天
视角
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