Apache(Apache軟體基金會)

Apache(Apache軟體基金會)

本詞條是多義詞,共5個義項
更多義項 ▼ 收起列表 ▲

Apache軟體基金會(Apache Software Foundation,簡稱 ASF)是專門為運作一個開源軟體項目的Apache的團體提供支持的非盈利性組織,這個開源軟體的項目就是Apache項目。

基本介紹

  • 中文名:Apache軟體基金會
  • 外文名:Apache Software Foundation
  • 簡稱:ASF
  • 創辦時間:1999年
  • 創建者:“Apache 組織”群體
  • 作用:為運作一個開源軟體項目的Apache的團體提供支持的非盈利性組織
基金會簡介,相關產品,虛擬主機,開源技術,

基金會簡介

Apache軟體基金會(也就是Apache Software Foundation)是專門為運作一個開源軟體項目的 Apache 的團體提供支持的非盈利性組織,這個開源軟體項目就是 Apache 項目。這個組織把自己作為有著相同目標的開發者與用戶的團體,而不是簡單的共享在一個伺服器上的一組項目的組織團體。在它所支持的 Apache 項目與子項目中,所發行的軟體產品都遵循 Apache許可證(Apache License)。
Apache
Apache基金會logo
Apache軟體基金會(ASF)的前身起源於一個從事伺服器開發與維護的“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”(一個補丁伺服器)。在這裡,因為“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)。
由於Apache軟體基金會在開源伺服器技術上的卓越貢獻,榮獲了著名IT雜誌SD Times頒發的2013 SD Times 100獎項,位於“極大影響力”分類第二位,僅次於亞馬遜。也由於hadoop在大數據處理和大數據挖掘上的出色表現,ASF也榮獲了“大數據和商業智慧型”的第二位。
主要成果:HTTP Server,Ant,DB,iBATIS,Jakarta,Logging,Maven,Struts,Tomcat,Tapestry等等。Apache有名的幾個項目介紹
HTTPServer
這個在前面的段落介紹過了,Apache已經是他的代號了

相關產品

Subversion
Subversion已經正式由Apache接管。
免費開源由java編寫符合JMS1.1標準的訊息中間件
Apache(Apache軟體基金會)
ActiveMq管理界面
另外,它也支持通過除java語言外的語言的使用
Ant
這個太出名了。標準的批處理工具。是一套基於java的程式打造工具
Commons
一些常用的工具類庫,包括common-pool,dbcp,fileupload,Common-beans等。
DolphinScheduler( 原 Easy Scheduler)
一個分散式易擴展的可視化DAG工作流任務調度系統。致力於解決數據處理流程中錯綜複雜的依賴關係,使調度系統在數據處理流程中開箱即用
它的主要產品是一個由java寫成的,名字叫做Fortress(要塞) 的輕量級的可嵌入式反向控制容器。
iBATIS
併入的一個項目,是ORM的一個很流行的工具
Geronimo
Apache軟體基金會為了創造一個兼容j2ee的容器,而整理出來的一個新成果
Jakarta
許多Java子項目的集成,tomcat,ant等就是從這裡孵化出去的。
James
是一套用java開發的郵件、新聞組訊息伺服器。它使用avalon的組件框架。目前支持 SMTP, POP3NNTP 很快也會支持 IMAP
Logging
基於java的可靠,快速,擴展性強的日誌工具
Maven
是一套java開發的工程綜合管理工具。它基於工程對象模型(POM)的理念
Portals
門戶產品
Struts
一套通過servlets和jsp來搭建web套用的MVC框架
Tomcat 用量最大的免費的Java伺服器
Hadoop
現今最為著名的大數據神器,包括分散式存儲和計算框架。

虛擬主機

1、核心的增強
Unix執行緒
在有POSIX執行緒支持的Unix系統上,Apache 虛擬主機現在可以運行在混合多進程多執行緒模式。這一改進改善了很多(但不是全部)配置的可擴縮性
新的構架系統
構架系統已經對原來基於autoconf和libtool上的草稿進行了重寫。這使得Apache的配置系統與其他包的配置系統更加相似。
多協定支持
Apache 虛擬主機現在已經擁有了能夠支持伺服多協定的底層構造。mod_echo就是作為示例的成果。
對非Unix平台更好的支持
Apache 2.0在諸如BeOSOS/2和Windows等非Unix平台上有了更好的速度和穩定性。隨著平台特定的multi-processing modules (MPMs)和Apache Portable Runtime (APR)的引入,Apache在這些平台上的指令由它們本地的API指令實現。避免了以往使用POSIX模擬層造成的bug和性能低下。
新的Apache API
2.0中模組的API進行了重大改變。很多1.3中模組排序/模組優先權的問題已經不復存在了。2.0自動處理了很多這樣的問題,模組排序現在用per-hook的方法進行,從而擁有了更多的靈活性。而且,新的調用被加入以在避免修改Apache伺服器核心的前提下提供額外的模組容量。
IPv6支持
在所有能被Apache Portable Runtime庫提供IPv6支持的系統上,Apache默認獲得IPv6偵聽套接字。另外,Listen, NameVirtualHost和VirtualHost 指令支持了IPv6的數字形地址字串(比如:“Listen [fe80::1]:8080”)。
濾過
Apache 虛擬主機的模組現在可以寫成過濾器的形式。當內容流經過它到伺服器或從伺服器到達的時候進行操作。舉例來說,這將使使用mod_include中的INCLUDES過濾器將CGI腳本的輸出解析為伺服器端包含指令成為可能。mod_ext_filter允許外部程式充當過濾器的角色,就像用CGI程式做處理器一樣。
多語種錯誤回報
返回給瀏覽器的錯誤信息現在已經用SSI文檔實現了多語種化。管理員可以利用此功能進行定製以達到觀感的一致。
簡化了的配置
很多易混淆的配置項已經進行了簡化。經常產生混淆的Port和BindAddress配置項已經取消了;只有Listen選項現在用於IP位址的綁定;ServerName配置項中指定的伺服器名和連線埠僅用於轉向和虛擬機的辨識。
本地Windows NT Unicode支持
Windows NT上的Apache 2.0現在使用utf-8標準來進行檔案名稱的解析。這個操作直接轉換成底層的Unicode檔案系統,由此為所有以Windows NT(包括Windows 2000和XP)為基礎的安裝提供了多語言支持。這一支持目前尚未涵蓋Windows 95, 98 or ME系統,因為它們仍使用機器本地的代碼頁進行檔案系統的操作。
正則表達式庫更新
Apache 虛擬主機包括了Perl兼容正則表達式庫(PCRE)。所有的正則表達式現在都使用了更為強大的Perl 5的語法。
2、模組的增強
mod_ssl
Apache 2.0中的新模組。此模組是一個面向OpenSSL提供的SSL/TLS加密協定的一個接口。
mod_dav
Apache 2.0中的新模組。此模組繼承了HTTP分散式發布和版本控制規範,用於發布、得到web內容。
mod_deflate
Apache 2.0中的新模組。此模組允許支持此功能的瀏覽器請求頁面內容在傳送前進行壓縮,以節省網路資源
mod_auth_ldap
Apache 2.0.410中的新模組。此模組允許使用LDAP資料庫存儲HTTP基礎認證所需的證書。隨之而來的另一個模組:mod_ldap ,則提供了連線池和結果的緩衝。
mod_auth_digest
利用共享記憶體實現了了額外的跨進程的session緩衝支持。
mod_charset_lite
Apache 2.0中的新模組。這個試驗模組允許針對字元集的轉換和記錄。
mod_file_cache
Apache 2.0中的新模組。這個模組包含了Apache 1.3中mod_mmap_static模組的功能,另外進一步增加了緩衝能力
mod_headers
此模組在Apache 2.0中更具靈活性。它現在可以更改mod_proxy需用的請求headers,而且它能有條件的設定回復headers。
mod_proxy
代理模組已經被完全重寫以充分利用新的過濾器結構的優勢,從而實現一個更為可靠的HTTP/1.1兼容的代理模組。另外,新的<Proxy>配置部分提供了更具可讀性(而且更快)的代理站點控制; 重載<Directory "proxy:...">配置的方法已經不再支持了。這個模組現在依照協定支持分為proxy_connect, proxy_ftp和proxy_http三個部分。
mod_negotiation
加入一個新的ForceLanguagePriority指令用於保證所有情況下客戶端都收到同一個文檔,取代了不可接受的或多選擇的回應。另外,negotiation和MultiViews算法已經進行了最佳化以提供更完美的結果,還有,提供了包括文檔內容的新型類型圖
mod_autoindex
自動索引後的目錄列表現在可被配置為使用HTML表格以達到更清晰的格式,而且允許更為細化的排序控制,包括版本排序和通配符濾過目錄列表。
mod_include
新的指令集允許修改默認的SSI元素的開始和結束標籤,而且允許以主配置檔案里的錯誤提示和時間格式的配置取代SSI文檔中的相應部分。正則表達式(現在已基於Perl的正則表達式語法)的解析和分組結果可以用mod_include的變數$0 .. $9取得。
mod_auth_dbm
現在在AuthDBMType的規策下支持多種類似DBM的資料庫。

開源技術

Apache HTTP伺服器項目
Apache HTTP伺服器項目主要致力於為現代作業系統開發和維護開源的HTTP伺服器,其中包括Unix和Windows NT。這個項目的主要目標是提供一個可以與當前的HTTP標準同步提供安全、高效和可擴展的伺服器的HTTP服務。
自1996年4月以來,Apache就變成了網際網路上最流行的Web伺服器。
主要用戶群:連續13年,Apache HTTP伺服器都是全球Web伺服器的領軍者,為1.13億個網站提供服務。
Apache Tomcat
Apache Tomcat是一個可以執行Java Servlet和JavaServer網頁技術的開源軟體。Apache和Tomcat是相對獨立的,用戶可以通過Apache訪問Tomcat資源,反之亦然,二者可以在同一台伺服器上。
Apache Tomcat是由全世界各地的最佳開發者合力研發而來的,是一款非常優異的開源軟體。
用戶群:Tomcat推動了很多不同行業的大型的、關鍵的Web應用程式的發展,其中包括ETrade、沃爾瑪、天氣頻道以及EMC等。
Apache Lucene
Apache Lucene是一個高性能、全功能的文字搜尋引擎圖書館,是由Java語言編寫的。Apache
Lucene適用於任何需要全文字搜尋的應用程式,特別是跨越平台。一開始,Lucene是由Java語言編寫的,目前已經被移植到其他的語言,其中包括
Delphi、Perl、C#、C++、PythonRubyPHP等。
用戶群:蘋果線上零售店CNETNetflix維基百科YelpComcastLinkedIn、The
Smithsonian、多個政府機構(FDA、DOD等)、Technorati網際網路檔案館(例如AOL黃頁的上下文搜尋等)。
Apache Struts
Apache Struts是一個用於開發Java EE Web應用程式的開源Web應用程式框架。Apache Struts使用和擴展Java Servlet
API去鼓勵開發者採用模型視圖控制器(MVC)構架。
用戶群: IRS、波士頓環球報、大赦國際、Sears、Alamo Car Rental、National Car Rental、Travelocity等等。
Apache Geronimo
Apache Geronimo是Apache
軟體基金會的開放源碼J2EE伺服器,它集成了眾多先進技術設計理念。這些技術和理念大多源自獨立的項目,配置和部署模型也各不相同。
Geronimo項目的目標就是產生一個伺服器運行時間框架,將最好的開源替代品匯集到一個統一、易用的模型中,去滿足開發人員和系統管理員的需求。
用戶群:AMD、Chariot Solutions、IBM、Virtuas等。
Apache Ant
Apache Ant是由Apache軟體基金會所提供的一個基於Java的開發工具,它是將軟體編譯、測試、部署等步驟聯繫在一起加以自動化的一個工具,大多用於Java環境中的軟體開發
用戶群:大多數的Java設計都被用於管理大量信息流,例如紐約州就使用Apache Ant去管理美國最大的青年計畫,每天可以實時更新超過25萬學生的記錄。
Apache Cocoon
Apache Cocoon是一個基於Spring框架的圍繞分離理念建立的構架,在這種框架下的所有處理都被預先定義好的處理組件線性連線起來,能夠將輸入和產生的輸出按照流水線順序處理
用戶群:Apache Lenya、Daisy CMS、Hippo CMS、Mindquarry等等,Apache
Cocoon通常被作為一個數據抽取、轉換、載入工具或者是系統之間傳輸數據的中轉站。
Apache SpamAssassin
SpamAssassin是一個由Apache開發的一個著名的反垃圾引擎,郵件系統完整的集成了SpamAssassin反垃圾引擎。
SpamAssassin中包含了各種各樣的垃圾郵件監測技術,其中包括基於DNS和checksum的垃圾郵件監測、Bayesian過濾、外部程式、黑名單和線上資料庫等。
用戶群:SpamAssassin被數以千計的獨立開發商和用戶所採用,並被作為數個商業產品的主要成分.\
Apache Axis
Apache Axis是一個基於SOAP套用的框架,核心是一個SOAP處理器,用於開發包括客戶端,伺服器端,SOAP Gateway等各種套用。
用戶群:WSO2、MuleSource IBM、Progress Software等。
Apache Logging Services
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開發中無處不在。
Apache Commons
Commons是一個主要專注於可再用Java組件所有方面的Apache項目。
Apache Commons項目由3個部分組成:
*The Commons Proper—可再用Java組件的貯存處;
*The Commons Sandbox—Java組件的開發工作區;
*The Commons Dormant—沙盒組件的貯存庫
用戶群:亞馬遜Web服務谷歌

相關詞條

熱門詞條

聯絡我們