運行在HTC Desire上的CouchDB Futon管理前端與服務(wù)器
CouchDB是NoSQL的代表之一,它是一個開源的面向文檔的數(shù)據(jù)庫管理系統(tǒng),支持以JSON作為數(shù)據(jù)格式的REST接口進行 操作,并可以通過視圖來操縱文檔的組織和呈現(xiàn)。NoSQL之前更多被認為是一種云計算核心技術(shù),用于互聯(lián)網(wǎng)站的服務(wù)器端。但是,CouchDB 1.0版發(fā)布之后,該產(chǎn)品最近在移動平臺也發(fā)展迅速,引起廣泛注意。2010年8月10日,CouchDB的主要開發(fā)商Couch.io公司宣布發(fā)布了CouchDB SDK for Android。此外,惠普的旗下的Palm已經(jīng)宣布他們的webOS下一個版本將會包括CouchDB本地數(shù)據(jù)同步服務(wù)。
根據(jù)Couch.io高管說,Web或者本地應(yīng)用程序都可以利用CouchDB的P2P同步能力去創(chuàng)建更具吸引力的體驗。另外,應(yīng)用程序還可以在脫機模式或網(wǎng)絡(luò)鏈接很慢的情況下工作。
移動同步一直是一個挑戰(zhàn),很多公司都嘗試過,但最終都以失敗而告終。CouchDB創(chuàng)始人兼Couchio公司CEO Damien Katz在采訪中談到,“我們的目標是提供優(yōu)秀的SDK,支持在Android設(shè)備上開發(fā)使用CouchDB作為本地數(shù)據(jù)存儲的Web、本地和云計算應(yīng)用 程序,CouchDB使同步無所不在,它已經(jīng)成為移動計算的重要組成部分。”
Couch.io公司的副總裁Chris Anderson也接受Dzone的采訪,詳細描述了Android SDK的開發(fā)。他表示,為Android開發(fā)并不復(fù)雜,因為它本質(zhì)上只是另一種Linux。他們先將Apache CouchDB的標準源代碼轉(zhuǎn)而在Android上運行,然后進行一些優(yōu)化,減少內(nèi)存使用,降低功耗,并提供一些本地的API就完成了。CouchDB的 所有操作是運行在HTTP之上的,所以跨平臺并不困難。而且,CouchDB設(shè)計本身的數(shù)據(jù)一致性就很好,所以能夠應(yīng)付移動平臺的嚴苛環(huán)境,保護數(shù)據(jù)安 全。而Palm自己已經(jīng)設(shè)計了一種與云中CouchDB進行復(fù)制的數(shù)據(jù)庫,名為db8。因此,只要軟件可以操作CouchDB,就可以訪問Palm的數(shù) 據(jù)。
Anderson還對CouchDB的解決方案與流行的同步工具Dropbox和MobileMe進行了比較。他表示后兩者只是用于文件共享而已, 而基于CouchDB的應(yīng)用程序則是通用的,可以實現(xiàn)更豐富的基于云數(shù)據(jù)庫的功能。他還指出,基于CouchDB的應(yīng)用程序架構(gòu)也稱CouchApps, 是一種可以取代Rails或者Django的Web應(yīng)用程序開發(fā)方式,部署更簡單,而且擴展性也更好。
CouchDB是一個Apache旗下的開源項目,由主要開發(fā)者組成的商業(yè)公司Couchio維護,是一種用Erlang語言開發(fā)的分布式文檔數(shù)據(jù) 庫,以RESTful JSON API提供服務(wù),適合從任何支持HTTP請求的環(huán)境進行訪問,可以使用JavaScript以及其他各種語言以MapReduce的形式查詢和索引。它屬 于NoSQL的一種,底層是一個B+樹引擎,與MongoDB和Lotus Notes的數(shù)據(jù)庫系統(tǒng)(以及微軟的SharePoint)類似。