精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當(dāng)前位置:存儲技術(shù)專區(qū) → 正文

開源軟件PK:Hadoop、Apache誰與爭鋒?

責(zé)任編輯:vivian |來源:企業(yè)網(wǎng)D1Net  2012-01-16 09:19:31 本文摘自:中關(guān)村在線

隨著數(shù)據(jù)時代的來臨,開源軟件越來越被重視,尤其在Web應(yīng)用服務(wù)器、應(yīng)用程序架構(gòu)和大數(shù)據(jù)處理方面更是應(yīng)用廣泛,其中Hadoop、Apache 、MYSQL等開源軟件更是家喻戶曉,在企業(yè)大型網(wǎng)絡(luò)應(yīng)用中承擔(dān)重要作用。免費、運行速度快等優(yōu)點使開源軟件迅速發(fā)展,近一年在服務(wù)器領(lǐng)域應(yīng)用更是越加廣泛,下面我們來看一下未來將一段時間內(nèi)服務(wù)器行業(yè)的軟件主角。


Ubuntu的十六個軟件

一、HBase

HBase是一個分布式的、面向列的開源數(shù)據(jù)庫,HBase在Hadoop之上提供了類似于Bigtable的能力。HBase是Apache的Hadoop項目的子項目。HBase不同于一般的關(guān)系數(shù)據(jù)庫,它是一個適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫。另一個不同的是HBase基于列的而不是基于行的模式。

HBase(Hadoop Database)是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng),利用HBase技術(shù)可在廉價PC Server上搭建起大規(guī)模結(jié)構(gòu)化存儲集群。

HBase是Google Bigtable的開源實現(xiàn),類似Google Bigtable利用GFS作為其文件存儲系統(tǒng),HBase利用Hadoop HDFS作為其文件存儲系統(tǒng);Google運行MapReduce來處理Bigtable中的海量數(shù)據(jù),HBase同樣利用Hadoop MapReduce來處理HBase中的海量數(shù)據(jù);Google Bigtable利用 Chubby作為協(xié)同服務(wù),HBase利用Zookeeper作為對應(yīng)。

Ubuntu的十六個軟件
HBase

上圖描述了Hadoop EcoSystem中的各層系統(tǒng),其中HBase位于結(jié)構(gòu)化存儲層,Hadoop HDFS為HBase提供了高可靠性的底層存儲支持,HadoopMapReduce為HBase提供了高性能的計算能力,Zookeeper為HBase提供了穩(wěn)定服務(wù)和failover機制。

此外,Pig和Hive還為HBase提供了高層語言支持,使得在HBase上進行數(shù)據(jù)統(tǒng)計處理變的非常簡單。Sqoop則為HBase提供了方便的RDBMS數(shù)據(jù)導(dǎo)入功能,使得傳統(tǒng)數(shù)據(jù)庫數(shù)據(jù)向HBase中遷移變的非常方便。

 二、Node

Node是一個Javascript運行環(huán)境,實際上它是對GoogleV8引擎進行了封裝。V8引 擎執(zhí)行Javascript的速度非常快,性能非常好。Node對一些特殊用例進行了優(yōu)化,提供了替代的API,使得V8在非瀏覽器環(huán)境下運行得更好。因此,Node不僅僅簡單的使用了V8,還對其進行了優(yōu)化,使其在各環(huán)境下更加給力。


Ubuntu的十六個軟件
Node

V8引擎本身使用了一些最新的編譯技術(shù)。這使得用Javascript這類高級語言編寫出來的代碼與用C這類高級語言寫出來的代碼性能相差無幾,卻節(jié)省了開發(fā)成本。對性能的苛求是Node的一個關(guān)鍵因素。 Javascript是一個事件驅(qū)動語言,Node利用了這個優(yōu)點,編寫出可擴展性高的服務(wù)器。Node采用了一個稱為“事件循環(huán)(event loop)”的架構(gòu),使得編寫可擴展性高的服務(wù)器變得既容易又安全。提高服務(wù)器性能的技巧有多種多樣。Node選擇了一種既能提高性能,又能減低開發(fā)復(fù)雜 度的架構(gòu)。這是一個非常重要的特性。并發(fā)編程通常很復(fù)雜且布滿地雷。Node繞過了這些,但仍提供很好的性能。

Node采用一系列“非阻塞”庫來支持事件循環(huán)的方式。本質(zhì)上就是為文件系統(tǒng)、數(shù)據(jù)庫之類的資源提供接口。當(dāng) 你向文件系統(tǒng)發(fā)送一個請求時,無需等待硬盤(尋址并檢索文件),硬盤準(zhǔn)備好的時候非阻塞接口會通知Node。該模型以可擴展的方式簡化了對慢資源的訪問, 直觀,易懂。尤其是對于熟悉onmouseover、onclick等DOM事件的用戶,更有一種似曾相識的感覺。

雖然讓Javascript運行于服務(wù)器端不是Node的獨特之處,但卻是其一強大功能。不得不承認(rèn),瀏覽器環(huán)境限制了我們選擇編程語言的自由。任 何服務(wù)器與日益復(fù)雜的瀏覽器客戶端應(yīng)用程序間共享代碼的愿望只能通過Javascript來實現(xiàn)。雖然還存在其他一些支持Javascript在服務(wù)器端 運行的平臺,但因為上述特性,Node發(fā)展迅猛,成為事實上的平臺。

在Node啟動的很短時間內(nèi),社區(qū)就已經(jīng)貢獻(xiàn)了大量的擴展庫(模塊)。其中很多是連接數(shù)據(jù)庫或是其他軟件的驅(qū)動,但還有很多是憑他們的實力制作出來的非常有用的軟件。

 最后,不得不提到的是Node社區(qū)。雖然Node項目還非常年輕,但很少看到對一個項目如此狂熱的社區(qū)。不管是新手,還是專家,大家都圍繞著項目,使用并貢獻(xiàn)自已的能力,致力于打造一個探索、支持、分享、聽取建議的樂土。

三、Nginx

Nginx 是一個高性能的反向代理 服務(wù)器,也是一個IMAP/POP3/SMTP 代理服務(wù)器。 Nginx是由Igor Sysoev為俄羅斯訪問量第二的Rambler.ru站點開發(fā)的,第一個公開版本0.1.0發(fā)布于2004年10月4日。其將源代碼以類BSD許可證的形式發(fā)布,因它的穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名。2011年6月1日,nginx 1.0.4發(fā)布。


Ubuntu的十六個軟件
 

優(yōu)點:

Nginx可以在大多數(shù)Unix like OS上編譯運行,并有Windows移植版。目前 Nginx的1.0.9穩(wěn)定版已經(jīng)于2011年11月1日發(fā)布,開發(fā)版本已完成的為1.1.8,如果新建站點,建議使用最新穩(wěn)定版作為生產(chǎn)版本,已有站點升級急迫性不高。 Nginx的源代碼使用2-clause BSD-like license。

Nginx是一個很牛的高性能Web和反向代理服務(wù)器,它具有很多非常優(yōu)越的特性:

在高連接并發(fā)的情況下,Nginx是Apache服務(wù)器不錯的替代品:Nginx在美國是做虛擬主機生意的老板們經(jīng)常選擇的軟件平臺之一。能夠支持高達(dá) 50,000個并發(fā)連接數(shù)的響應(yīng),感謝Nginx為我們選擇了epoll and kqueue作為開發(fā)模型。

Nginx作為負(fù)載均衡服務(wù)器:Nginx 既可以在內(nèi)部直接支持Rails和PHP程序?qū)ν膺M行服務(wù),也可以支持作為 HTTP代理服務(wù)器對外進行服務(wù)。Nginx采用C進行編寫,不論是系統(tǒng)資源開銷還是CPU使用效率都比Perlbal要好很多。

作為郵件代理服務(wù)器:Nginx同時也是一個非常優(yōu)秀的郵件代理服務(wù)器(最早開發(fā)這個產(chǎn)品的目的之一也是作為郵件代理服務(wù)器),Last. fm 描述了成功并且美妙的使用經(jīng)驗。

Nginx是一個安裝非常的簡單,配置文件非常簡潔(還能夠支持perl語法),Bugs非常少的服務(wù)器:Nginx 啟動特別容易,并且?guī)缀蹩梢宰龅?*24不間斷運行,即使運行數(shù)個月也不需要重新啟動。你還能夠不間斷服務(wù)的情況下進行軟件版本的升級。

四、Hadoop

Hadoop一個分布式系統(tǒng)基礎(chǔ)架構(gòu),由Apache基金會開發(fā)。用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力高速運算和存儲。Hadoop實現(xiàn)了一個分布式文件系統(tǒng)簡稱HDFS。HDFS有著高容錯性的特點,并且設(shè)計用來部署在低廉的硬件上。而且它提供高傳輸率來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集的應(yīng)用程序。HDFS放寬了POSIX的要求這樣可以流的形式訪問文件系統(tǒng)中的數(shù)據(jù)。


Ubuntu的十六個軟件
 

Hadoop是一個能夠?qū)Υ罅繑?shù)據(jù)進行分布式處理的軟件框架。但是 Hadoop 是以一種可靠、高效、可伸縮的方式進行處理的。Hadoop是可靠的,因為它假設(shè)計算元素和存儲會失敗,因此它維護多個工作數(shù)據(jù)副本,確保能夠針對失敗的節(jié)點重新分布處理。Hadoop是高效的,因為它以并行的方式工作,通過并行處理加快處理速度。Hadoop還是可伸縮的,能夠處理 PB 級數(shù)據(jù)。此外,Hadoop依賴于社區(qū)服務(wù)器,因此它的成本比較低,任何人都可以使用。

Hadoop帶有用Java語言編寫的框架,因此運行在Linux生產(chǎn)平臺上是非常理想的。Hadoop上的應(yīng)用程序也可以使用其他語言編寫,比如 C++。

五、Ruby on Rails

Ruby on Rails是一個可以使你開發(fā),部署,維護web應(yīng)用程序變得簡單的框架。

當(dāng)然了,所有的web框架都有同樣的目標(biāo)。是什么使得Rails如此不同呢?我們可以通過幾個途徑來回答這個問題。

Ubuntu的十六個軟件
Ruby on Rails

第一是看架構(gòu)。在過去的時間里,許多開發(fā)者在嚴(yán)謹(jǐn)?shù)膚eb應(yīng)用程序上使用 MVC 架構(gòu)。他們發(fā)現(xiàn)MVC架構(gòu)可以使他們的程序變得更清晰,在java中像Tapestry和 Struts這些框架都是基于MVC 。Rails也是一個MVC框架。當(dāng)你使用Rails進行開發(fā),應(yīng)用程序的所有代碼以一種標(biāo)準(zhǔn)方式互相作用。在開始開發(fā)之前,整個應(yīng)用程序的骨架已經(jīng)搭好的。

回答這個問題的第二個是看編程語言。Rails程序是使用Ruby編寫的,它是一門現(xiàn)代,面向?qū)ο蟮哪_本語言。Ruby簡潔,不難理解。它可以讓你快速地用代碼自然 , 清晰表達(dá)想法。讓你的程序能很簡單被編寫并且在幾個月后還能很容易讀懂。

Ruby on Rails是一個Web應(yīng)用程序框架,是一個相對較新的Web應(yīng)用程序框架,構(gòu)建在Ruby語言之上。它被宣傳為現(xiàn)有企業(yè)框架的一個替代,而它的目標(biāo),簡而言之,就是讓生活,至少是Web開發(fā)方面的生活,變得更輕松。

J2EE是一種利用Java 2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺或Java 2平臺的標(biāo)準(zhǔn)版,J2EE體系結(jié)構(gòu)提供中間層集成框架用來滿足無需太多費用而又需要高可用性能高可靠性以及可擴展性的應(yīng)用的需求。

Java 2平臺有3個版本,它們是適用于小型設(shè)備和智能卡的Java 2平臺Micro版、適用于桌面系統(tǒng)的Java 2平臺標(biāo)準(zhǔn)版、適用于創(chuàng)建服務(wù)器應(yīng)用程序和服務(wù)的Java 2平臺企業(yè)版。

Ruby on Rails和 J2EE堆棧的比較

可以看到,Rails堆棧和構(gòu)成普通的基于 J2EE的Web應(yīng)用程序的組件之間的基本區(qū)別很小。兩者都有用來執(zhí)行應(yīng)用程序代碼的容器;都有幫助分離應(yīng)用程序的模型、視圖和控件的MVC框架;以及持久存儲數(shù)據(jù)的機制。

六、MongoDB

MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可擴展的高性能數(shù)據(jù)存儲解決方案。


Ubuntu的十六個軟件
MongoDB

它的特點是高性能、易部署、易使用,存儲數(shù)據(jù)非常方便。主要功能特性有:

  ●面向集合存儲,易存儲對象類型的數(shù)據(jù)。

  ●模式自由。

  ●支持動態(tài)查詢。

  ●支持完全索引,包含內(nèi)部對象。

  ●支持查詢。

  ●支持復(fù)制和故障恢復(fù)。

  ●使用高效的二進制數(shù)據(jù)存儲,包括大型對象(如視頻等)。

  ●自動處理碎片,以支持云計算層次的擴展性。

  ●支持RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。

  ●文件存儲格式為BSON(一種JSON的擴展)。

  ●可通過網(wǎng)絡(luò)訪問。

所謂“面向集合”意思是數(shù)據(jù)被分組存儲在數(shù)據(jù)集中,被稱為一個集合。每個集合在數(shù)據(jù)庫中都有一個唯一的標(biāo)識名,并且可以包含無限數(shù)目的文檔。集合的概念類似關(guān)系型數(shù)據(jù)庫里的表,不同的是它不需要定義任何模式。

模式自由,意味著對于存儲在mongodb數(shù)據(jù)庫中的文件,我們不需要知道它的任何結(jié)構(gòu)定義。如果需要的話,你完全可以把不同結(jié)構(gòu)的文件存儲在同一個數(shù)據(jù)庫里。

存儲在集合中的文檔,被存儲為鍵-值對的形式。鍵用于唯一標(biāo)識一個文檔,為字符串類型,而值則可以是各種復(fù)雜的文件類型。我們稱這種存儲形式為BSON。

MongoDB服務(wù)端可運行在Linux、Windows或OS X平臺,支持32位和64位應(yīng)用,默認(rèn)端口為27017。推薦運行在64位平臺,因為MongoDB在32位模式運行時支持的最大文件尺寸為2GB。

七、Tomcat

Tomcat是Apache軟件基金會的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 5支持最新的Servlet 2.4和JSP 2.0規(guī)范。因為Tomca 技術(shù)先進、性能穩(wěn)定,而且免費,因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web應(yīng)用服務(wù)器。目前最新版本是7.0。


Ubuntu的十六個軟件
Tomcat

Tomcat很受廣大程序員的喜歡,因為它運行時占用的系統(tǒng)資源小,擴展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。

Tomcat是一個輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。對于一個初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺機器上配置好Apache服務(wù)器,可利用它響應(yīng)對HTML頁面的訪問請求。實際上Tomcat部分是Apache服務(wù)器的擴展,但它是獨立運行的,所以當(dāng)你運行tomcat時,它實際上作為一個與Apache獨立的進程單獨運行的。

這里的訣竅是,當(dāng)配置正確時,Apache為HTML頁面服務(wù),而Tomcat實際上運行JSP 頁面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認(rèn)模式。不過,Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。目前Tomcat最新版本為7.0.22 Released。

 八、MySQL

MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購。而2009年,SUN又被Oracle收購。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi)。這樣就增加了速度并提高了靈活性。MySQL的SQL“結(jié)構(gòu)化查詢語言”。SQL是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL軟件采用了GPL。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。


Ubuntu的十六個軟件
 MySQL

系統(tǒng)特性:

1.使用C和C++編寫,并使用了多種編譯器進行測試,保證源代碼的可移植性。

2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng)。

3.為多種編程語言提供了API。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。

 

4.支持多線程,充分利用CPU資源。

5.優(yōu)化的SQL查詢算法,有效地提高查詢速度。

6.既能夠作為一個單獨的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。

7.提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑。

8.提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具。

9.可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。

10.支持多種存儲引擎。

九、Apache HTTP Server

HTTP服務(wù)器軟件之一,可通過簡單的API擴展Perl/Python解釋器可被編譯到服務(wù)器中,完全免費,完全源代碼開放。可以創(chuàng)建一個每天有數(shù)百萬人訪問的Web服務(wù)器。


Ubuntu的十六個軟件
Apache

Apache支持許多特性,大部分通過編譯的模塊實現(xiàn)。這些特性從服務(wù)器端的編程語言支持到身份認(rèn)證方案。一些通用的語言接口支持Perl,Python, Tcl, 和 PHP。流行的認(rèn)證模塊包括 mod_access, mod_auth 和 mod_digest。Apache日志可以通過網(wǎng)頁瀏覽器使用免費的腳本AWStats或Visitors來進行分析。

《PC Magazine》2004年8月評出了近30年以來的10款最佳軟件產(chǎn)品。他們其中或者是有過最輝煌的歷史,或者是最具創(chuàng)意。其對Apache的評價是:第三名:Apache(阿帕奇,1995年推出)Apache目前已經(jīng)演變成了“LAMP”,即Linux、Apache、MySQL和PHP的聯(lián)合體。這是一個開放源代碼軟件項目,已經(jīng)對微軟的“.NET”戰(zhàn)略構(gòu)成嚴(yán)重威脅。尤其是Apache網(wǎng)絡(luò)服務(wù)器,讓用戶充分體驗到開發(fā)源碼軟件的穩(wěn)定性、可靠性和可定制性。

Apple.com評價Apache時說:Apache是服務(wù)器軟件始終不斷進化的大塊部件,它免費但又是無價之寶。Apache是在資源開放運動中出現(xiàn)的絕對珍品,因為不屬于個人專利而是對公共免費。一旦擁有這些源碼,程序員能夠自由完成所想——能在其它程序員接替工作時被賦予同樣的權(quán)限來改變 和修改自己的源代碼。

十、 Spring Framework

Spring Framework是什么呢?首先它是一個開源的項目,而且目前非常活躍;它是一個基于IoC和AOP的構(gòu)架多層j2ee系統(tǒng)的框架,但它不強迫你必須在每一層 中必須使用Spring,因為它模塊化的很好,允許你根據(jù)自己的需要選擇使用它的某一個模塊;它實現(xiàn)了很優(yōu)雅的MVC,對不同的數(shù)據(jù)訪問技術(shù)提供了統(tǒng)一的 接口,采用IoC使得可以很容易的實現(xiàn)bean的裝配,提供了簡潔的AOP并據(jù)此實現(xiàn)Transcation Managment,等等......

Ubuntu的十六個軟件
Spring Framework


 

特性:

●強大的基于JavaBeans的采用控制翻轉(zhuǎn)原則的配置管理,使得應(yīng)用程序的組建更加快捷簡易。

●一個可用于從applet到Java EE等不同運行環(huán)境的核心Bean工廠。

●數(shù)據(jù)庫事務(wù)的一般化抽象層,允許插件式事務(wù)管理器,簡化事務(wù)的劃分使之與底層無關(guān)。

●內(nèi)建的針對JTA和單個JDBC數(shù)據(jù)源的一般化策略,使Spring的事務(wù)支持不要求 Java EE環(huán)境,這與一般的JTA或者EJB CMT相反。

●JDBC 抽象層提供了有針對性的異常等級, 簡化了錯誤處理, 大大減少了程序員的編碼量. 再次利用JDBC時,你無需再寫出另一個 '終止' 模塊。 并且面向JDBC的異常與Spring通用數(shù)據(jù)訪問對象異常等級相一致。

●以資源容器,DAO實現(xiàn)和事務(wù)策略等形式與Hibernate,JDO和iBATIS SQL Maps集成。利用眾多的翻轉(zhuǎn)控制方便特性來全面支持, 解決了許多典型的Hibernate集成問題. 所有這些全部遵從Spring通用事務(wù)處理和通用數(shù)據(jù)訪問對象異常等級規(guī)范。

●靈活的基于核心Spring功能的MVC網(wǎng)頁應(yīng)用程序框架。開發(fā)者通過策略接口將擁有對該框架的高度控制,因而該框架將適應(yīng)于多種呈現(xiàn)技術(shù),值得注意的是,Spring 中間層可以輕易地結(jié)合于任何基于 MVC 框架的網(wǎng)頁層,

●提供諸如事務(wù)管理等服務(wù)的面向方面編程框架。

在設(shè)計應(yīng)用程序Model時,MVC 模式(例如Struts)通常難于給出一個簡潔明了的框架結(jié)構(gòu)。Spring卻具有能夠讓這部分工作變得簡單的能力。程序開發(fā)員們可以使用Spring的 JDBC 抽象層重新設(shè)計那些復(fù)雜的框架結(jié)構(gòu)。

十一、PostgreSQL

PostgreSQL是以加州大學(xué)伯克利分校計算機系開發(fā)的 POSTGRES,版本 4.2為基礎(chǔ)的對象關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS)。PostgreSQL支持大部分 SQL標(biāo)準(zhǔn)并且提供了許多其他現(xiàn)代特性:復(fù)雜查詢、外鍵、觸發(fā)器、視圖、事務(wù)完整性、多版本并發(fā)控制。同樣,PostgreSQL 可以用許多方法擴展,比如, 通過增加新的數(shù)據(jù)類型、函數(shù)、操作符、聚集函數(shù)、索引方法、過程語言。并且,因為許可證的靈活,任何人都可以以任何目的免費使用,修改,和分發(fā)PostgreSQL, 不管是私用,商用,還是學(xué)術(shù)研究使用。


Ubuntu的十六個軟件
PostgreSQL

優(yōu)點:

事實上, PostgreSQL的特性覆蓋了SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以說是目前世界上最豐富的數(shù)據(jù)類型的支持,其中有些數(shù)據(jù)類型可以說連商業(yè)數(shù)據(jù)庫都不具備, 比如 IP 類型和幾何類型等;其次,PostgreSQL是全功能的自由軟件數(shù)據(jù)庫,很長時間以來,PostgreSQL是唯一支持事務(wù)、子查詢、多版本并行控制系統(tǒng)、數(shù)據(jù)完整性檢查等特性的唯一的一種自由軟件的數(shù)據(jù)庫管理系統(tǒng)。直到最近才有 Inprise的InterBase以及SAP等廠商將其原先專有軟件開放為自由軟件之后才打破了這個唯一。最后,PostgreSQL擁有一支非常活躍的開發(fā)隊伍,而且在許多黑客的努力下,PostgreSQL的質(zhì)量日益提高。

從技術(shù)角度來講,PostgreSQL采用的是比較經(jīng)典的C/S(client/server)結(jié)構(gòu),也就是一個客戶端對應(yīng)一個服務(wù)器端守護進程的模式,這個守護進程分析客戶端來的查詢請求,生成規(guī)劃樹,進行數(shù)據(jù)檢索并最終把結(jié)果格式化輸出后返回給客戶端。為了便于客戶端的程序的編寫,由數(shù)據(jù)庫服務(wù)器提供了統(tǒng)一的客戶端 C 接口。而不同的客戶端接口都是源自這個C接口,比如 ODBC,JDBC,Python,Perl ,Tcl,C/C++,ESQL等, 同時也要指出的是,PostgreSQL 對接口的支持也是非常豐富的,幾乎支持所有類型的數(shù)據(jù)庫客戶端接口。這一點也可以說是PostgreSQL一大優(yōu)點。

缺點:

從Postgres開始,PostgreSQL就經(jīng)受了多次變化。

首先,早期的 PostgreSQL繼承了幾乎所有Ingres, Postgres, Postgres95 的問題:過于學(xué)院味,因為首先它的目的是數(shù)據(jù)庫研究,因此不論在穩(wěn)定性, 性能還是使用方便方面,長期以來一直沒有得到重視,直到PostgreSQL項目開始以后,情況才越來越好,目前,PostgreSQL已經(jīng)完全可以勝任任何中上規(guī)模范圍內(nèi)的應(yīng)用范圍的業(yè)務(wù)。

目前有報道的生產(chǎn)數(shù)據(jù)庫的大小已經(jīng)有TB級的數(shù)據(jù)量,已經(jīng)逼近32位計算的極限。不過學(xué)院味也給 PostgreSQL帶來一個意想不到的好處:大概因為各大學(xué)的軟硬件環(huán)境差異太大的緣故,它是目前支持平臺最多的數(shù)據(jù)庫管理系統(tǒng)的一種,所支持的平臺多達(dá)十幾種,包括不同的系統(tǒng),不同的硬件體系。至今,它仍然保持著支持平臺最多的數(shù)據(jù)庫管理系統(tǒng)的稱號。

其次,PostgreSQL的確還欠缺一些比較高端的數(shù)據(jù)庫管理系統(tǒng)需要的特性,比如數(shù)據(jù)庫集群,更優(yōu)良的管理工具和更加自動化的系統(tǒng)優(yōu)化功能 等提高數(shù)據(jù)庫性能的機制等。

十二、Grails

如今的Java Web開發(fā)對于需求來說已經(jīng)變得過于復(fù)雜。當(dāng)今眾多Java領(lǐng)域的Web開發(fā)框架不僅使用復(fù)雜,而且并沒有很好的遵循Don’t Repeat Yourself(DRY)原則。像Rails,Django和TurboGears這樣的動態(tài)框架在Web開發(fā)領(lǐng)域開辟了一條新的道路,Grails基于這些概念之上,采用動態(tài)方法減小了Java平臺上進行Web開發(fā)的復(fù)雜度,不過與那些框架不同的是,Grails是構(gòu)建在Spring和Hibernate等Java已有的技術(shù)之上的。


Ubuntu的十六個軟件
Grails

Grails是一個full-stack框架,它借助于核心技術(shù)與相關(guān)的插件來解決Web開發(fā)中方方面面的問題,其中包括: 易于使用的基于Hibernate的對象-關(guān)系映射(ORM)層 稱為Groovy Server Pages的表現(xiàn)層技術(shù) 基于Spring MVC的控制器層 構(gòu)建于Gant 上的命令行腳本運行環(huán)境 內(nèi)置Jetty服務(wù)器,不用重新啟動服務(wù)器就可以進行重新加載 利用內(nèi)置的Spring 容器實現(xiàn)依賴注入 基于Spring的MessageSource核心概念,提供了對國際化的支持 基于Spring事務(wù)抽象概念,實現(xiàn)事務(wù)服務(wù)層 借助于功能強大的Groovy動態(tài)語言和領(lǐng)域特定語言,以上那些特性變得非常易用。

十三、Struts

Struts是開源軟件。使用Struts的目的是為了幫助我們減少在運用MVC設(shè)計模型來開發(fā)Web應(yīng)用的時間。如果我們想混合使用Servlets和JSP的優(yōu)點來建立可擴展的應(yīng)用,Struts是一個不錯的選擇。

Ubuntu的十六個軟件
struts

框架

Struts框架具有組件的模塊化,靈活性和重用性的優(yōu)點,同時簡化了基于MVC的web應(yīng)用程序的開發(fā)。

Struts可以清晰地區(qū)分控制,事務(wù)邏輯和外觀,從而簡化了開發(fā)應(yīng)用程序的過程。Struts提供的類使得開發(fā)工作更加簡單,這些類包括:

  ●控制程序流程的類

  ●實現(xiàn)和執(zhí)行程序事務(wù)邏輯的類

  ●自定義的標(biāo)記庫使得創(chuàng)建和驗證HTML表單更加容易

 十四、JBoss

JBoss是全世界開發(fā)者共同努力的成果,一個基于J2EE的開放源代碼的應(yīng)用服務(wù)器。 因為JBoss代碼遵循LGPL許可,可以在任何商業(yè)應(yīng)用中免費使用它,而不用支付費用。2006年,Jboss公司被Redhat公司收購。JBoss是一個管理EJB的容器和服務(wù)器,支持EJB 1.1、EJB 2.0和EJB3.0的規(guī)范。但JBoss核心服務(wù)不包括支持servlet/JSP的WEB容器,一般與Tomcat或Jetty綁定使用。


Ubuntu的十六個軟件
JBoss

優(yōu)點概述:

  1、JBoss是免費的,開放源代碼J2EE的實現(xiàn),通過LGPL許可證進行發(fā)布。但同時也有閉源的,開源和閉源流入流出的不是同一途徑。

  2、JBoss需要的內(nèi)存和硬盤空間比較小。

  3、安裝便捷:解壓后,只需配置一些環(huán)境變量即可。

  4、JBoss支持"熱部署",部署B(yǎng)EAN時,只拷貝BEAN的JAR文件到部署路徑下即可自動加載它;如果有改動,也會自動更新。

  5、JBoss與Web服務(wù)器在同一個Java虛擬機中運行  JBoss運行后后臺管理界面,Servlet調(diào)用EJB不經(jīng)過網(wǎng)絡(luò),從而大大提高運行效率,提升安全性能。

  6、用戶可以直接實施J2EE-EAR,而不是以前分別實施EJB-JAR和Web-WAR,非常方便。

  7、Jboss支持集群。

十五、GlassFish

GlassFish是一款強健的商業(yè)兼容應(yīng)用服務(wù)器,達(dá)到產(chǎn)品級質(zhì)量,可免費用于開發(fā)、部署和重新分發(fā)。


Ubuntu的十六個軟件
GlassFish

優(yōu)點:

在遵守通用開發(fā)和發(fā)布許可版本 1.0 的前提下,開發(fā)者可以免費獲得源代碼,還可以對代碼進行更改。要申請 Java Compatibility,商業(yè)分發(fā)的開發(fā)者需要簽署 Java Developer License ,并在重新分發(fā)代碼前驗證代碼已通過兼容性測試套件的測試。任何人均可簽署分發(fā)協(xié)議,對代碼進行審閱以貢獻(xiàn)更改、錯誤修復(fù)和功能。

GlassFish 的更新版本將于每晚發(fā)布。發(fā)布的代碼已經(jīng)過了非常基本的測試以確保它們能夠進行構(gòu)建并執(zhí)行,但這些代碼并沒有象產(chǎn)品發(fā)行版那樣經(jīng)過完整測試。

GlassFish 將實現(xiàn)最新版本的Java EE平臺Java EE 5,這兩者將大約同時成為最終版本。同時,Sun 還將基于GlassFish發(fā)行最終的受支持的兼容Sun Java System Application Server PE 9.0。

在2005年6月,Sun將GlassFish項目的Web站點向公眾開放,從而發(fā)布了GlassFish 項目。開發(fā)者可以訪問源代碼、每晚構(gòu)建、討論組和電子郵件列表。這是開發(fā)者首次能夠了解并參與應(yīng)用服務(wù)器的開發(fā)過程。最初,訪問僅限于Web 層,隨著GlassFish 的開發(fā),訪問也將擴大到其他模塊。

GlassFish 項目將Java EE呈現(xiàn)在更多愛好者面前,這些人最終將成為 Java EE 許可證持有者的客戶。GlassFish不會更改許可證持有者的任何許可證條款。在遵守其許可證條款的前提下,許可證持有者仍可以銷售或分發(fā)代碼,并對已通過TCK的產(chǎn)品使用Java Compatibility品牌。在遵守授予開發(fā)者的CDDL許可證條款的前提下,他們可以使用、編輯、更改代碼,并可以分發(fā)代碼或?qū)⑵溆糜谏a(chǎn)。但他們沒有得到使用CTS 的許可,也不能使用Java Compatibility品牌。

GlassFish雖然是一個標(biāo)準(zhǔn)的JavaEE服務(wù)器,但是它同樣具有輕便的Web容器的優(yōu)點,它和Tomcat一樣是優(yōu)秀的Servlet容器,同時,它具備延遲加載的功能,也就是說,GlassFish在啟動時只會啟動一些必需的核心服務(wù)項,如LocalJNDI服務(wù),用于管理的JMX服務(wù)等,而對于暫時用不到的服務(wù)通通不予加載,直到需要的時候再說,而且這個特性不需要額外的配置。這樣GlassFish的啟動時間是以前的一半,內(nèi)存占用也只有以前的一半。 GlassFish的另外一個秘密武器,就是Grizzly,Grizzly是一個基于JavaNIO技術(shù),并完全以Java實現(xiàn)的一個HTTP的Listener,有了Grizzly,GlassFish在靜態(tài)文件傳輸方面的性能比Tomcat要強得多,而且可以支持更多的并發(fā)訪問。我們可以拋棄JBoss+Tomcat和Apache+Tomcat這樣的組合了。

十六、CouchDB

CouchDB是用Erlang開發(fā)的面向文檔的數(shù)據(jù)庫系統(tǒng),最近剛剛發(fā)布了1.0版本(2010年7月14日)。CouchDB不是一個傳統(tǒng)的關(guān)系數(shù)據(jù)庫,而是面向文檔的數(shù)據(jù)庫,其數(shù)據(jù)存儲方式有點類似lucene的index文件格式,CouchDB最大的意義在于它是一個面向web應(yīng)用的新一代存儲系統(tǒng),事實上,CouchDB的口號就是:下一代的Web應(yīng)用存儲系統(tǒng)。

Ubuntu的十六個軟件
CouchDB

特點:

一、CouchDB是分布式的數(shù)據(jù)庫,他可以把存儲系統(tǒng)分布到n臺物理的節(jié)點上面,并且很好的協(xié)調(diào)和同步節(jié)點之間的數(shù)據(jù)讀寫一致性。這當(dāng)然也得以于Erlang無與倫比的并發(fā)特性才能做到。對于基于web的大規(guī)模應(yīng)用文檔應(yīng)用,然的分布式可以讓它不必像傳統(tǒng)的關(guān)系數(shù)據(jù)庫那樣分庫拆表,在應(yīng)用代碼層進行大量的改動。

二、CouchDB是面向文檔的數(shù)據(jù)庫,存儲半結(jié)構(gòu)化的數(shù)據(jù),比較類似lucene的index結(jié)構(gòu),特別適合存儲文檔,因此很適合CMS,電話本,地址本等應(yīng)用,在這些應(yīng)用場合,文檔數(shù)據(jù)庫要比關(guān)系數(shù)據(jù)庫更加方便,性能更好。

三、CouchDB支持REST API,可以讓用戶使用JavaScript來操作CouchDB數(shù)據(jù)庫,也可以用JavaScript編寫查詢語句,我們可以想像一下,用AJAX技術(shù)結(jié)合CouchDB開發(fā)出來的CMS系統(tǒng)會是多么的簡單和方便 。

其實CouchDB只是Erlang應(yīng)用的冰山一角,在最近幾年,基于Erlang的應(yīng)用也得到的蓬勃的發(fā)展,特別是在基于web的大規(guī)模,分布式應(yīng)用領(lǐng)域,幾乎都是Erlang的優(yōu)勢項目。

關(guān)鍵字:開源軟件大數(shù)據(jù)存儲

本文摘自:中關(guān)村在線

x 開源軟件PK:Hadoop、Apache誰與爭鋒? 掃一掃
分享本文到朋友圈
當(dāng)前位置:存儲技術(shù)專區(qū) → 正文

開源軟件PK:Hadoop、Apache誰與爭鋒?

責(zé)任編輯:vivian |來源:企業(yè)網(wǎng)D1Net  2012-01-16 09:19:31 本文摘自:中關(guān)村在線

隨著數(shù)據(jù)時代的來臨,開源軟件越來越被重視,尤其在Web應(yīng)用服務(wù)器、應(yīng)用程序架構(gòu)和大數(shù)據(jù)處理方面更是應(yīng)用廣泛,其中Hadoop、Apache 、MYSQL等開源軟件更是家喻戶曉,在企業(yè)大型網(wǎng)絡(luò)應(yīng)用中承擔(dān)重要作用。免費、運行速度快等優(yōu)點使開源軟件迅速發(fā)展,近一年在服務(wù)器領(lǐng)域應(yīng)用更是越加廣泛,下面我們來看一下未來將一段時間內(nèi)服務(wù)器行業(yè)的軟件主角。


Ubuntu的十六個軟件

一、HBase

HBase是一個分布式的、面向列的開源數(shù)據(jù)庫,HBase在Hadoop之上提供了類似于Bigtable的能力。HBase是Apache的Hadoop項目的子項目。HBase不同于一般的關(guān)系數(shù)據(jù)庫,它是一個適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫。另一個不同的是HBase基于列的而不是基于行的模式。

HBase(Hadoop Database)是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng),利用HBase技術(shù)可在廉價PC Server上搭建起大規(guī)模結(jié)構(gòu)化存儲集群。

HBase是Google Bigtable的開源實現(xiàn),類似Google Bigtable利用GFS作為其文件存儲系統(tǒng),HBase利用Hadoop HDFS作為其文件存儲系統(tǒng);Google運行MapReduce來處理Bigtable中的海量數(shù)據(jù),HBase同樣利用Hadoop MapReduce來處理HBase中的海量數(shù)據(jù);Google Bigtable利用 Chubby作為協(xié)同服務(wù),HBase利用Zookeeper作為對應(yīng)。

Ubuntu的十六個軟件
HBase

上圖描述了Hadoop EcoSystem中的各層系統(tǒng),其中HBase位于結(jié)構(gòu)化存儲層,Hadoop HDFS為HBase提供了高可靠性的底層存儲支持,HadoopMapReduce為HBase提供了高性能的計算能力,Zookeeper為HBase提供了穩(wěn)定服務(wù)和failover機制。

此外,Pig和Hive還為HBase提供了高層語言支持,使得在HBase上進行數(shù)據(jù)統(tǒng)計處理變的非常簡單。Sqoop則為HBase提供了方便的RDBMS數(shù)據(jù)導(dǎo)入功能,使得傳統(tǒng)數(shù)據(jù)庫數(shù)據(jù)向HBase中遷移變的非常方便。

 二、Node

Node是一個Javascript運行環(huán)境,實際上它是對GoogleV8引擎進行了封裝。V8引 擎執(zhí)行Javascript的速度非常快,性能非常好。Node對一些特殊用例進行了優(yōu)化,提供了替代的API,使得V8在非瀏覽器環(huán)境下運行得更好。因此,Node不僅僅簡單的使用了V8,還對其進行了優(yōu)化,使其在各環(huán)境下更加給力。


Ubuntu的十六個軟件
Node

V8引擎本身使用了一些最新的編譯技術(shù)。這使得用Javascript這類高級語言編寫出來的代碼與用C這類高級語言寫出來的代碼性能相差無幾,卻節(jié)省了開發(fā)成本。對性能的苛求是Node的一個關(guān)鍵因素。 Javascript是一個事件驅(qū)動語言,Node利用了這個優(yōu)點,編寫出可擴展性高的服務(wù)器。Node采用了一個稱為“事件循環(huán)(event loop)”的架構(gòu),使得編寫可擴展性高的服務(wù)器變得既容易又安全。提高服務(wù)器性能的技巧有多種多樣。Node選擇了一種既能提高性能,又能減低開發(fā)復(fù)雜 度的架構(gòu)。這是一個非常重要的特性。并發(fā)編程通常很復(fù)雜且布滿地雷。Node繞過了這些,但仍提供很好的性能。

Node采用一系列“非阻塞”庫來支持事件循環(huán)的方式。本質(zhì)上就是為文件系統(tǒng)、數(shù)據(jù)庫之類的資源提供接口。當(dāng) 你向文件系統(tǒng)發(fā)送一個請求時,無需等待硬盤(尋址并檢索文件),硬盤準(zhǔn)備好的時候非阻塞接口會通知Node。該模型以可擴展的方式簡化了對慢資源的訪問, 直觀,易懂。尤其是對于熟悉onmouseover、onclick等DOM事件的用戶,更有一種似曾相識的感覺。

雖然讓Javascript運行于服務(wù)器端不是Node的獨特之處,但卻是其一強大功能。不得不承認(rèn),瀏覽器環(huán)境限制了我們選擇編程語言的自由。任 何服務(wù)器與日益復(fù)雜的瀏覽器客戶端應(yīng)用程序間共享代碼的愿望只能通過Javascript來實現(xiàn)。雖然還存在其他一些支持Javascript在服務(wù)器端 運行的平臺,但因為上述特性,Node發(fā)展迅猛,成為事實上的平臺。

在Node啟動的很短時間內(nèi),社區(qū)就已經(jīng)貢獻(xiàn)了大量的擴展庫(模塊)。其中很多是連接數(shù)據(jù)庫或是其他軟件的驅(qū)動,但還有很多是憑他們的實力制作出來的非常有用的軟件。

 最后,不得不提到的是Node社區(qū)。雖然Node項目還非常年輕,但很少看到對一個項目如此狂熱的社區(qū)。不管是新手,還是專家,大家都圍繞著項目,使用并貢獻(xiàn)自已的能力,致力于打造一個探索、支持、分享、聽取建議的樂土。

三、Nginx

Nginx 是一個高性能的反向代理 服務(wù)器,也是一個IMAP/POP3/SMTP 代理服務(wù)器。 Nginx是由Igor Sysoev為俄羅斯訪問量第二的Rambler.ru站點開發(fā)的,第一個公開版本0.1.0發(fā)布于2004年10月4日。其將源代碼以類BSD許可證的形式發(fā)布,因它的穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名。2011年6月1日,nginx 1.0.4發(fā)布。


Ubuntu的十六個軟件
 

優(yōu)點:

Nginx可以在大多數(shù)Unix like OS上編譯運行,并有Windows移植版。目前 Nginx的1.0.9穩(wěn)定版已經(jīng)于2011年11月1日發(fā)布,開發(fā)版本已完成的為1.1.8,如果新建站點,建議使用最新穩(wěn)定版作為生產(chǎn)版本,已有站點升級急迫性不高。 Nginx的源代碼使用2-clause BSD-like license。

Nginx是一個很牛的高性能Web和反向代理服務(wù)器,它具有很多非常優(yōu)越的特性:

在高連接并發(fā)的情況下,Nginx是Apache服務(wù)器不錯的替代品:Nginx在美國是做虛擬主機生意的老板們經(jīng)常選擇的軟件平臺之一。能夠支持高達(dá) 50,000個并發(fā)連接數(shù)的響應(yīng),感謝Nginx為我們選擇了epoll and kqueue作為開發(fā)模型。

Nginx作為負(fù)載均衡服務(wù)器:Nginx 既可以在內(nèi)部直接支持Rails和PHP程序?qū)ν膺M行服務(wù),也可以支持作為 HTTP代理服務(wù)器對外進行服務(wù)。Nginx采用C進行編寫,不論是系統(tǒng)資源開銷還是CPU使用效率都比Perlbal要好很多。

作為郵件代理服務(wù)器:Nginx同時也是一個非常優(yōu)秀的郵件代理服務(wù)器(最早開發(fā)這個產(chǎn)品的目的之一也是作為郵件代理服務(wù)器),Last. fm 描述了成功并且美妙的使用經(jīng)驗。

Nginx是一個安裝非常的簡單,配置文件非常簡潔(還能夠支持perl語法),Bugs非常少的服務(wù)器:Nginx 啟動特別容易,并且?guī)缀蹩梢宰龅?*24不間斷運行,即使運行數(shù)個月也不需要重新啟動。你還能夠不間斷服務(wù)的情況下進行軟件版本的升級。

四、Hadoop

Hadoop一個分布式系統(tǒng)基礎(chǔ)架構(gòu),由Apache基金會開發(fā)。用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力高速運算和存儲。Hadoop實現(xiàn)了一個分布式文件系統(tǒng)簡稱HDFS。HDFS有著高容錯性的特點,并且設(shè)計用來部署在低廉的硬件上。而且它提供高傳輸率來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集的應(yīng)用程序。HDFS放寬了POSIX的要求這樣可以流的形式訪問文件系統(tǒng)中的數(shù)據(jù)。


Ubuntu的十六個軟件
 

Hadoop是一個能夠?qū)Υ罅繑?shù)據(jù)進行分布式處理的軟件框架。但是 Hadoop 是以一種可靠、高效、可伸縮的方式進行處理的。Hadoop是可靠的,因為它假設(shè)計算元素和存儲會失敗,因此它維護多個工作數(shù)據(jù)副本,確保能夠針對失敗的節(jié)點重新分布處理。Hadoop是高效的,因為它以并行的方式工作,通過并行處理加快處理速度。Hadoop還是可伸縮的,能夠處理 PB 級數(shù)據(jù)。此外,Hadoop依賴于社區(qū)服務(wù)器,因此它的成本比較低,任何人都可以使用。

Hadoop帶有用Java語言編寫的框架,因此運行在Linux生產(chǎn)平臺上是非常理想的。Hadoop上的應(yīng)用程序也可以使用其他語言編寫,比如 C++。

五、Ruby on Rails

Ruby on Rails是一個可以使你開發(fā),部署,維護web應(yīng)用程序變得簡單的框架。

當(dāng)然了,所有的web框架都有同樣的目標(biāo)。是什么使得Rails如此不同呢?我們可以通過幾個途徑來回答這個問題。

Ubuntu的十六個軟件
Ruby on Rails

第一是看架構(gòu)。在過去的時間里,許多開發(fā)者在嚴(yán)謹(jǐn)?shù)膚eb應(yīng)用程序上使用 MVC 架構(gòu)。他們發(fā)現(xiàn)MVC架構(gòu)可以使他們的程序變得更清晰,在java中像Tapestry和 Struts這些框架都是基于MVC 。Rails也是一個MVC框架。當(dāng)你使用Rails進行開發(fā),應(yīng)用程序的所有代碼以一種標(biāo)準(zhǔn)方式互相作用。在開始開發(fā)之前,整個應(yīng)用程序的骨架已經(jīng)搭好的。

回答這個問題的第二個是看編程語言。Rails程序是使用Ruby編寫的,它是一門現(xiàn)代,面向?qū)ο蟮哪_本語言。Ruby簡潔,不難理解。它可以讓你快速地用代碼自然 , 清晰表達(dá)想法。讓你的程序能很簡單被編寫并且在幾個月后還能很容易讀懂。

Ruby on Rails是一個Web應(yīng)用程序框架,是一個相對較新的Web應(yīng)用程序框架,構(gòu)建在Ruby語言之上。它被宣傳為現(xiàn)有企業(yè)框架的一個替代,而它的目標(biāo),簡而言之,就是讓生活,至少是Web開發(fā)方面的生活,變得更輕松。

J2EE是一種利用Java 2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺或Java 2平臺的標(biāo)準(zhǔn)版,J2EE體系結(jié)構(gòu)提供中間層集成框架用來滿足無需太多費用而又需要高可用性能高可靠性以及可擴展性的應(yīng)用的需求。

Java 2平臺有3個版本,它們是適用于小型設(shè)備和智能卡的Java 2平臺Micro版、適用于桌面系統(tǒng)的Java 2平臺標(biāo)準(zhǔn)版、適用于創(chuàng)建服務(wù)器應(yīng)用程序和服務(wù)的Java 2平臺企業(yè)版。

Ruby on Rails和 J2EE堆棧的比較

可以看到,Rails堆棧和構(gòu)成普通的基于 J2EE的Web應(yīng)用程序的組件之間的基本區(qū)別很小。兩者都有用來執(zhí)行應(yīng)用程序代碼的容器;都有幫助分離應(yīng)用程序的模型、視圖和控件的MVC框架;以及持久存儲數(shù)據(jù)的機制。

六、MongoDB

MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可擴展的高性能數(shù)據(jù)存儲解決方案。


Ubuntu的十六個軟件
MongoDB

它的特點是高性能、易部署、易使用,存儲數(shù)據(jù)非常方便。主要功能特性有:

  ●面向集合存儲,易存儲對象類型的數(shù)據(jù)。

  ●模式自由。

  ●支持動態(tài)查詢。

  ●支持完全索引,包含內(nèi)部對象。

  ●支持查詢。

  ●支持復(fù)制和故障恢復(fù)。

  ●使用高效的二進制數(shù)據(jù)存儲,包括大型對象(如視頻等)。

  ●自動處理碎片,以支持云計算層次的擴展性。

  ●支持RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。

  ●文件存儲格式為BSON(一種JSON的擴展)。

  ●可通過網(wǎng)絡(luò)訪問。

所謂“面向集合”意思是數(shù)據(jù)被分組存儲在數(shù)據(jù)集中,被稱為一個集合。每個集合在數(shù)據(jù)庫中都有一個唯一的標(biāo)識名,并且可以包含無限數(shù)目的文檔。集合的概念類似關(guān)系型數(shù)據(jù)庫里的表,不同的是它不需要定義任何模式。

模式自由,意味著對于存儲在mongodb數(shù)據(jù)庫中的文件,我們不需要知道它的任何結(jié)構(gòu)定義。如果需要的話,你完全可以把不同結(jié)構(gòu)的文件存儲在同一個數(shù)據(jù)庫里。

存儲在集合中的文檔,被存儲為鍵-值對的形式。鍵用于唯一標(biāo)識一個文檔,為字符串類型,而值則可以是各種復(fù)雜的文件類型。我們稱這種存儲形式為BSON。

MongoDB服務(wù)端可運行在Linux、Windows或OS X平臺,支持32位和64位應(yīng)用,默認(rèn)端口為27017。推薦運行在64位平臺,因為MongoDB在32位模式運行時支持的最大文件尺寸為2GB。

七、Tomcat

Tomcat是Apache軟件基金會的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 5支持最新的Servlet 2.4和JSP 2.0規(guī)范。因為Tomca 技術(shù)先進、性能穩(wěn)定,而且免費,因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web應(yīng)用服務(wù)器。目前最新版本是7.0。


Ubuntu的十六個軟件
Tomcat

Tomcat很受廣大程序員的喜歡,因為它運行時占用的系統(tǒng)資源小,擴展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。

Tomcat是一個輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。對于一個初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺機器上配置好Apache服務(wù)器,可利用它響應(yīng)對HTML頁面的訪問請求。實際上Tomcat部分是Apache服務(wù)器的擴展,但它是獨立運行的,所以當(dāng)你運行tomcat時,它實際上作為一個與Apache獨立的進程單獨運行的。

這里的訣竅是,當(dāng)配置正確時,Apache為HTML頁面服務(wù),而Tomcat實際上運行JSP 頁面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認(rèn)模式。不過,Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。目前Tomcat最新版本為7.0.22 Released。

 八、MySQL

MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購。而2009年,SUN又被Oracle收購。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi)。這樣就增加了速度并提高了靈活性。MySQL的SQL“結(jié)構(gòu)化查詢語言”。SQL是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL軟件采用了GPL。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。


Ubuntu的十六個軟件
 MySQL

系統(tǒng)特性:

1.使用C和C++編寫,并使用了多種編譯器進行測試,保證源代碼的可移植性。

2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng)。

3.為多種編程語言提供了API。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。

 

4.支持多線程,充分利用CPU資源。

5.優(yōu)化的SQL查詢算法,有效地提高查詢速度。

6.既能夠作為一個單獨的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。

7.提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑。

8.提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具。

9.可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。

10.支持多種存儲引擎。

九、Apache HTTP Server

HTTP服務(wù)器軟件之一,可通過簡單的API擴展Perl/Python解釋器可被編譯到服務(wù)器中,完全免費,完全源代碼開放。可以創(chuàng)建一個每天有數(shù)百萬人訪問的Web服務(wù)器。


Ubuntu的十六個軟件
Apache

Apache支持許多特性,大部分通過編譯的模塊實現(xiàn)。這些特性從服務(wù)器端的編程語言支持到身份認(rèn)證方案。一些通用的語言接口支持Perl,Python, Tcl, 和 PHP。流行的認(rèn)證模塊包括 mod_access, mod_auth 和 mod_digest。Apache日志可以通過網(wǎng)頁瀏覽器使用免費的腳本AWStats或Visitors來進行分析。

《PC Magazine》2004年8月評出了近30年以來的10款最佳軟件產(chǎn)品。他們其中或者是有過最輝煌的歷史,或者是最具創(chuàng)意。其對Apache的評價是:第三名:Apache(阿帕奇,1995年推出)Apache目前已經(jīng)演變成了“LAMP”,即Linux、Apache、MySQL和PHP的聯(lián)合體。這是一個開放源代碼軟件項目,已經(jīng)對微軟的“.NET”戰(zhàn)略構(gòu)成嚴(yán)重威脅。尤其是Apache網(wǎng)絡(luò)服務(wù)器,讓用戶充分體驗到開發(fā)源碼軟件的穩(wěn)定性、可靠性和可定制性。

Apple.com評價Apache時說:Apache是服務(wù)器軟件始終不斷進化的大塊部件,它免費但又是無價之寶。Apache是在資源開放運動中出現(xiàn)的絕對珍品,因為不屬于個人專利而是對公共免費。一旦擁有這些源碼,程序員能夠自由完成所想——能在其它程序員接替工作時被賦予同樣的權(quán)限來改變 和修改自己的源代碼。

十、 Spring Framework

Spring Framework是什么呢?首先它是一個開源的項目,而且目前非常活躍;它是一個基于IoC和AOP的構(gòu)架多層j2ee系統(tǒng)的框架,但它不強迫你必須在每一層 中必須使用Spring,因為它模塊化的很好,允許你根據(jù)自己的需要選擇使用它的某一個模塊;它實現(xiàn)了很優(yōu)雅的MVC,對不同的數(shù)據(jù)訪問技術(shù)提供了統(tǒng)一的 接口,采用IoC使得可以很容易的實現(xiàn)bean的裝配,提供了簡潔的AOP并據(jù)此實現(xiàn)Transcation Managment,等等......

Ubuntu的十六個軟件
Spring Framework


 

特性:

●強大的基于JavaBeans的采用控制翻轉(zhuǎn)原則的配置管理,使得應(yīng)用程序的組建更加快捷簡易。

●一個可用于從applet到Java EE等不同運行環(huán)境的核心Bean工廠。

●數(shù)據(jù)庫事務(wù)的一般化抽象層,允許插件式事務(wù)管理器,簡化事務(wù)的劃分使之與底層無關(guān)。

●內(nèi)建的針對JTA和單個JDBC數(shù)據(jù)源的一般化策略,使Spring的事務(wù)支持不要求 Java EE環(huán)境,這與一般的JTA或者EJB CMT相反。

●JDBC 抽象層提供了有針對性的異常等級, 簡化了錯誤處理, 大大減少了程序員的編碼量. 再次利用JDBC時,你無需再寫出另一個 '終止' 模塊。 并且面向JDBC的異常與Spring通用數(shù)據(jù)訪問對象異常等級相一致。

●以資源容器,DAO實現(xiàn)和事務(wù)策略等形式與Hibernate,JDO和iBATIS SQL Maps集成。利用眾多的翻轉(zhuǎn)控制方便特性來全面支持, 解決了許多典型的Hibernate集成問題. 所有這些全部遵從Spring通用事務(wù)處理和通用數(shù)據(jù)訪問對象異常等級規(guī)范。

●靈活的基于核心Spring功能的MVC網(wǎng)頁應(yīng)用程序框架。開發(fā)者通過策略接口將擁有對該框架的高度控制,因而該框架將適應(yīng)于多種呈現(xiàn)技術(shù),值得注意的是,Spring 中間層可以輕易地結(jié)合于任何基于 MVC 框架的網(wǎng)頁層,

●提供諸如事務(wù)管理等服務(wù)的面向方面編程框架。

在設(shè)計應(yīng)用程序Model時,MVC 模式(例如Struts)通常難于給出一個簡潔明了的框架結(jié)構(gòu)。Spring卻具有能夠讓這部分工作變得簡單的能力。程序開發(fā)員們可以使用Spring的 JDBC 抽象層重新設(shè)計那些復(fù)雜的框架結(jié)構(gòu)。

十一、PostgreSQL

PostgreSQL是以加州大學(xué)伯克利分校計算機系開發(fā)的 POSTGRES,版本 4.2為基礎(chǔ)的對象關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS)。PostgreSQL支持大部分 SQL標(biāo)準(zhǔn)并且提供了許多其他現(xiàn)代特性:復(fù)雜查詢、外鍵、觸發(fā)器、視圖、事務(wù)完整性、多版本并發(fā)控制。同樣,PostgreSQL 可以用許多方法擴展,比如, 通過增加新的數(shù)據(jù)類型、函數(shù)、操作符、聚集函數(shù)、索引方法、過程語言。并且,因為許可證的靈活,任何人都可以以任何目的免費使用,修改,和分發(fā)PostgreSQL, 不管是私用,商用,還是學(xué)術(shù)研究使用。


Ubuntu的十六個軟件
PostgreSQL

優(yōu)點:

事實上, PostgreSQL的特性覆蓋了SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以說是目前世界上最豐富的數(shù)據(jù)類型的支持,其中有些數(shù)據(jù)類型可以說連商業(yè)數(shù)據(jù)庫都不具備, 比如 IP 類型和幾何類型等;其次,PostgreSQL是全功能的自由軟件數(shù)據(jù)庫,很長時間以來,PostgreSQL是唯一支持事務(wù)、子查詢、多版本并行控制系統(tǒng)、數(shù)據(jù)完整性檢查等特性的唯一的一種自由軟件的數(shù)據(jù)庫管理系統(tǒng)。直到最近才有 Inprise的InterBase以及SAP等廠商將其原先專有軟件開放為自由軟件之后才打破了這個唯一。最后,PostgreSQL擁有一支非常活躍的開發(fā)隊伍,而且在許多黑客的努力下,PostgreSQL的質(zhì)量日益提高。

從技術(shù)角度來講,PostgreSQL采用的是比較經(jīng)典的C/S(client/server)結(jié)構(gòu),也就是一個客戶端對應(yīng)一個服務(wù)器端守護進程的模式,這個守護進程分析客戶端來的查詢請求,生成規(guī)劃樹,進行數(shù)據(jù)檢索并最終把結(jié)果格式化輸出后返回給客戶端。為了便于客戶端的程序的編寫,由數(shù)據(jù)庫服務(wù)器提供了統(tǒng)一的客戶端 C 接口。而不同的客戶端接口都是源自這個C接口,比如 ODBC,JDBC,Python,Perl ,Tcl,C/C++,ESQL等, 同時也要指出的是,PostgreSQL 對接口的支持也是非常豐富的,幾乎支持所有類型的數(shù)據(jù)庫客戶端接口。這一點也可以說是PostgreSQL一大優(yōu)點。

缺點:

從Postgres開始,PostgreSQL就經(jīng)受了多次變化。

首先,早期的 PostgreSQL繼承了幾乎所有Ingres, Postgres, Postgres95 的問題:過于學(xué)院味,因為首先它的目的是數(shù)據(jù)庫研究,因此不論在穩(wěn)定性, 性能還是使用方便方面,長期以來一直沒有得到重視,直到PostgreSQL項目開始以后,情況才越來越好,目前,PostgreSQL已經(jīng)完全可以勝任任何中上規(guī)模范圍內(nèi)的應(yīng)用范圍的業(yè)務(wù)。

目前有報道的生產(chǎn)數(shù)據(jù)庫的大小已經(jīng)有TB級的數(shù)據(jù)量,已經(jīng)逼近32位計算的極限。不過學(xué)院味也給 PostgreSQL帶來一個意想不到的好處:大概因為各大學(xué)的軟硬件環(huán)境差異太大的緣故,它是目前支持平臺最多的數(shù)據(jù)庫管理系統(tǒng)的一種,所支持的平臺多達(dá)十幾種,包括不同的系統(tǒng),不同的硬件體系。至今,它仍然保持著支持平臺最多的數(shù)據(jù)庫管理系統(tǒng)的稱號。

其次,PostgreSQL的確還欠缺一些比較高端的數(shù)據(jù)庫管理系統(tǒng)需要的特性,比如數(shù)據(jù)庫集群,更優(yōu)良的管理工具和更加自動化的系統(tǒng)優(yōu)化功能 等提高數(shù)據(jù)庫性能的機制等。

十二、Grails

如今的Java Web開發(fā)對于需求來說已經(jīng)變得過于復(fù)雜。當(dāng)今眾多Java領(lǐng)域的Web開發(fā)框架不僅使用復(fù)雜,而且并沒有很好的遵循Don’t Repeat Yourself(DRY)原則。像Rails,Django和TurboGears這樣的動態(tài)框架在Web開發(fā)領(lǐng)域開辟了一條新的道路,Grails基于這些概念之上,采用動態(tài)方法減小了Java平臺上進行Web開發(fā)的復(fù)雜度,不過與那些框架不同的是,Grails是構(gòu)建在Spring和Hibernate等Java已有的技術(shù)之上的。


Ubuntu的十六個軟件
Grails

Grails是一個full-stack框架,它借助于核心技術(shù)與相關(guān)的插件來解決Web開發(fā)中方方面面的問題,其中包括: 易于使用的基于Hibernate的對象-關(guān)系映射(ORM)層 稱為Groovy Server Pages的表現(xiàn)層技術(shù) 基于Spring MVC的控制器層 構(gòu)建于Gant 上的命令行腳本運行環(huán)境 內(nèi)置Jetty服務(wù)器,不用重新啟動服務(wù)器就可以進行重新加載 利用內(nèi)置的Spring 容器實現(xiàn)依賴注入 基于Spring的MessageSource核心概念,提供了對國際化的支持 基于Spring事務(wù)抽象概念,實現(xiàn)事務(wù)服務(wù)層 借助于功能強大的Groovy動態(tài)語言和領(lǐng)域特定語言,以上那些特性變得非常易用。

十三、Struts

Struts是開源軟件。使用Struts的目的是為了幫助我們減少在運用MVC設(shè)計模型來開發(fā)Web應(yīng)用的時間。如果我們想混合使用Servlets和JSP的優(yōu)點來建立可擴展的應(yīng)用,Struts是一個不錯的選擇。

Ubuntu的十六個軟件
struts

框架

Struts框架具有組件的模塊化,靈活性和重用性的優(yōu)點,同時簡化了基于MVC的web應(yīng)用程序的開發(fā)。

Struts可以清晰地區(qū)分控制,事務(wù)邏輯和外觀,從而簡化了開發(fā)應(yīng)用程序的過程。Struts提供的類使得開發(fā)工作更加簡單,這些類包括:

  ●控制程序流程的類

  ●實現(xiàn)和執(zhí)行程序事務(wù)邏輯的類

  ●自定義的標(biāo)記庫使得創(chuàng)建和驗證HTML表單更加容易

 十四、JBoss

JBoss是全世界開發(fā)者共同努力的成果,一個基于J2EE的開放源代碼的應(yīng)用服務(wù)器。 因為JBoss代碼遵循LGPL許可,可以在任何商業(yè)應(yīng)用中免費使用它,而不用支付費用。2006年,Jboss公司被Redhat公司收購。JBoss是一個管理EJB的容器和服務(wù)器,支持EJB 1.1、EJB 2.0和EJB3.0的規(guī)范。但JBoss核心服務(wù)不包括支持servlet/JSP的WEB容器,一般與Tomcat或Jetty綁定使用。


Ubuntu的十六個軟件
JBoss

優(yōu)點概述:

  1、JBoss是免費的,開放源代碼J2EE的實現(xiàn),通過LGPL許可證進行發(fā)布。但同時也有閉源的,開源和閉源流入流出的不是同一途徑。

  2、JBoss需要的內(nèi)存和硬盤空間比較小。

  3、安裝便捷:解壓后,只需配置一些環(huán)境變量即可。

  4、JBoss支持"熱部署",部署B(yǎng)EAN時,只拷貝BEAN的JAR文件到部署路徑下即可自動加載它;如果有改動,也會自動更新。

  5、JBoss與Web服務(wù)器在同一個Java虛擬機中運行  JBoss運行后后臺管理界面,Servlet調(diào)用EJB不經(jīng)過網(wǎng)絡(luò),從而大大提高運行效率,提升安全性能。

  6、用戶可以直接實施J2EE-EAR,而不是以前分別實施EJB-JAR和Web-WAR,非常方便。

  7、Jboss支持集群。

十五、GlassFish

GlassFish是一款強健的商業(yè)兼容應(yīng)用服務(wù)器,達(dá)到產(chǎn)品級質(zhì)量,可免費用于開發(fā)、部署和重新分發(fā)。


Ubuntu的十六個軟件
GlassFish

優(yōu)點:

在遵守通用開發(fā)和發(fā)布許可版本 1.0 的前提下,開發(fā)者可以免費獲得源代碼,還可以對代碼進行更改。要申請 Java Compatibility,商業(yè)分發(fā)的開發(fā)者需要簽署 Java Developer License ,并在重新分發(fā)代碼前驗證代碼已通過兼容性測試套件的測試。任何人均可簽署分發(fā)協(xié)議,對代碼進行審閱以貢獻(xiàn)更改、錯誤修復(fù)和功能。

GlassFish 的更新版本將于每晚發(fā)布。發(fā)布的代碼已經(jīng)過了非常基本的測試以確保它們能夠進行構(gòu)建并執(zhí)行,但這些代碼并沒有象產(chǎn)品發(fā)行版那樣經(jīng)過完整測試。

GlassFish 將實現(xiàn)最新版本的Java EE平臺Java EE 5,這兩者將大約同時成為最終版本。同時,Sun 還將基于GlassFish發(fā)行最終的受支持的兼容Sun Java System Application Server PE 9.0。

在2005年6月,Sun將GlassFish項目的Web站點向公眾開放,從而發(fā)布了GlassFish 項目。開發(fā)者可以訪問源代碼、每晚構(gòu)建、討論組和電子郵件列表。這是開發(fā)者首次能夠了解并參與應(yīng)用服務(wù)器的開發(fā)過程。最初,訪問僅限于Web 層,隨著GlassFish 的開發(fā),訪問也將擴大到其他模塊。

GlassFish 項目將Java EE呈現(xiàn)在更多愛好者面前,這些人最終將成為 Java EE 許可證持有者的客戶。GlassFish不會更改許可證持有者的任何許可證條款。在遵守其許可證條款的前提下,許可證持有者仍可以銷售或分發(fā)代碼,并對已通過TCK的產(chǎn)品使用Java Compatibility品牌。在遵守授予開發(fā)者的CDDL許可證條款的前提下,他們可以使用、編輯、更改代碼,并可以分發(fā)代碼或?qū)⑵溆糜谏a(chǎn)。但他們沒有得到使用CTS 的許可,也不能使用Java Compatibility品牌。

GlassFish雖然是一個標(biāo)準(zhǔn)的JavaEE服務(wù)器,但是它同樣具有輕便的Web容器的優(yōu)點,它和Tomcat一樣是優(yōu)秀的Servlet容器,同時,它具備延遲加載的功能,也就是說,GlassFish在啟動時只會啟動一些必需的核心服務(wù)項,如LocalJNDI服務(wù),用于管理的JMX服務(wù)等,而對于暫時用不到的服務(wù)通通不予加載,直到需要的時候再說,而且這個特性不需要額外的配置。這樣GlassFish的啟動時間是以前的一半,內(nèi)存占用也只有以前的一半。 GlassFish的另外一個秘密武器,就是Grizzly,Grizzly是一個基于JavaNIO技術(shù),并完全以Java實現(xiàn)的一個HTTP的Listener,有了Grizzly,GlassFish在靜態(tài)文件傳輸方面的性能比Tomcat要強得多,而且可以支持更多的并發(fā)訪問。我們可以拋棄JBoss+Tomcat和Apache+Tomcat這樣的組合了。

十六、CouchDB

CouchDB是用Erlang開發(fā)的面向文檔的數(shù)據(jù)庫系統(tǒng),最近剛剛發(fā)布了1.0版本(2010年7月14日)。CouchDB不是一個傳統(tǒng)的關(guān)系數(shù)據(jù)庫,而是面向文檔的數(shù)據(jù)庫,其數(shù)據(jù)存儲方式有點類似lucene的index文件格式,CouchDB最大的意義在于它是一個面向web應(yīng)用的新一代存儲系統(tǒng),事實上,CouchDB的口號就是:下一代的Web應(yīng)用存儲系統(tǒng)。

Ubuntu的十六個軟件
CouchDB

特點:

一、CouchDB是分布式的數(shù)據(jù)庫,他可以把存儲系統(tǒng)分布到n臺物理的節(jié)點上面,并且很好的協(xié)調(diào)和同步節(jié)點之間的數(shù)據(jù)讀寫一致性。這當(dāng)然也得以于Erlang無與倫比的并發(fā)特性才能做到。對于基于web的大規(guī)模應(yīng)用文檔應(yīng)用,然的分布式可以讓它不必像傳統(tǒng)的關(guān)系數(shù)據(jù)庫那樣分庫拆表,在應(yīng)用代碼層進行大量的改動。

二、CouchDB是面向文檔的數(shù)據(jù)庫,存儲半結(jié)構(gòu)化的數(shù)據(jù),比較類似lucene的index結(jié)構(gòu),特別適合存儲文檔,因此很適合CMS,電話本,地址本等應(yīng)用,在這些應(yīng)用場合,文檔數(shù)據(jù)庫要比關(guān)系數(shù)據(jù)庫更加方便,性能更好。

三、CouchDB支持REST API,可以讓用戶使用JavaScript來操作CouchDB數(shù)據(jù)庫,也可以用JavaScript編寫查詢語句,我們可以想像一下,用AJAX技術(shù)結(jié)合CouchDB開發(fā)出來的CMS系統(tǒng)會是多么的簡單和方便 。

其實CouchDB只是Erlang應(yīng)用的冰山一角,在最近幾年,基于Erlang的應(yīng)用也得到的蓬勃的發(fā)展,特別是在基于web的大規(guī)模,分布式應(yīng)用領(lǐng)域,幾乎都是Erlang的優(yōu)勢項目。

關(guān)鍵字:開源軟件大數(shù)據(jù)存儲

本文摘自:中關(guān)村在線

電子周刊
回到頂部

關(guān)于我們聯(lián)系我們版權(quán)聲明隱私條款廣告服務(wù)友情鏈接投稿中心招賢納士

企業(yè)網(wǎng)版權(quán)所有 ©2010-2024 京ICP備09108050號-6 京公網(wǎng)安備 11010502049343號

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 延津县| 沁源县| 宝坻区| 新平| 昭平县| 呼图壁县| 普陀区| 太仓市| 修武县| 卫辉市| 思南县| 黔西县| 阳山县| 牙克石市| 温泉县| 隆回县| 保定市| 兰考县| 宝山区| 荔浦县| 井冈山市| 固原市| 莆田市| 高要市| 肇源县| 翼城县| 荆门市| 简阳市| 石阡县| 正宁县| 格尔木市| 绵竹市| 涞源县| 建水县| 施甸县| 漳浦县| 惠州市| 论坛| 云霄县| 泗水县| 洪江市|