自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

探秘Google Wave技術(shù)架構(gòu)

開發(fā) 架構(gòu)
Google Wave已經(jīng)推出就受到了廣泛的關(guān)注,本文將向您介紹Google Wave的技術(shù)架構(gòu),讓您清晰整個Google Wave平臺的實現(xiàn)方式。

Google Wave是一個工具,也是一個平臺、還是一個協(xié)議。其架構(gòu)的核心是操作轉(zhuǎn)換(Operational Transformation,OT),這是一個支持并發(fā)控制的理論型框架。

首先需要看看Google Wave的定義

Google Wave是基于托管型XML文檔(稱為Wave)的新型溝通、協(xié)作平臺,支持并發(fā)修改和低延遲更新。

工具

Google Wave是一個兼?zhèn)潆娮余]件、即時通訊、協(xié)作文檔共享和編輯的工具。在Chrome、Firefox、Safari等瀏覽器里運行的客戶端中(包括移動平臺iPhone和Android),Wave使用JavaScript和HTML5,Wave在服務(wù)器端則結(jié)合使用Java和Python,但服務(wù)器端可以用用戶希望的任何方式來實現(xiàn)。該工具用GWT構(gòu)建,并使用Google Gears處理HTML 5中尚未包含的拖拽。該工具需要專門的服務(wù)器來處理并發(fā)通訊,大型團隊尤其需要這樣的服務(wù)器。服務(wù)器可以放在企業(yè)外的云里,也可以放置在私有企業(yè)內(nèi)部,或者只是放在某人的家里。

Google Wave上周在Google I/O大會期間進行了展示。

平臺

Google Wave帶有一個公共的API,Google公司承諾在產(chǎn)品正式上線之前會開源整個平臺。作為平臺,Wave允許開發(fā)人員修改基礎(chǔ)代碼、使用Gadgets和Robots對其進行擴展。Gadgets是運行在Wave中的小程序,而Robots則是“自動的Wave參與者”。Wave還可以嵌到博客等其它媒體當(dāng)中。

協(xié)議

數(shù)據(jù)模型

Google Wave數(shù)據(jù)模型的主要元素有:

Wave——每個Wave都有一個全局唯一的Wave ID,并包含一組Wavelet。

Wavelet——Wavelet在其所屬的Wave中有一個唯一ID,Wavelet由一個參與者列表和一組文檔組成。Wavelet是并發(fā)控制/操作轉(zhuǎn)換請求的實體。

參與者——參與者由Wave地址確定,Wave地址是文本字符串,格式與電子郵件地址相同(local-part@domain)。參與者可以是用戶,也可以是組,或者是Robot。每個參與者在參與者列表中最多可出現(xiàn)一次。

文檔——文檔在其所屬的Wave中有一個唯一ID,由一個XML文檔和一組“分離”注解組成。分離注解指向XML文檔,不依賴于XML文檔的結(jié)構(gòu)。它們用來表示文本格式、拼寫建議和超鏈接。文檔在Wavelet中構(gòu)成一棵樹。

Wave視圖——Wave視圖是特定用戶在一個Wave中訪問的Wavelet子集。用戶只要是Wavelet的參與者,或者是參與者組的成員(組可以嵌套),都可以訪問Wavelet。

操作轉(zhuǎn)換

這是Wave技術(shù)的重要組成部分。Google Wave廣泛使用了在服務(wù)器端執(zhí)行的操作轉(zhuǎn)換(OT)。 當(dāng)用戶編輯多個用戶同時打開的協(xié)作文檔時,客戶端程序會提供一個Optimistic UI,立即顯示用戶輸入的內(nèi)容,同時將編輯操作發(fā)送給服務(wù)器,希望該操作能被服務(wù)器接收??蛻舳说却?wù)器評估該操作,在服務(wù)器應(yīng)答之前會緩存其它所有的操作。服務(wù)器應(yīng)答之后,所有被緩存的操作會從客戶端批量發(fā)送到服務(wù)器。服務(wù)器考慮從其它客戶端接收到的操作,相應(yīng)地轉(zhuǎn)換操作,并將該轉(zhuǎn)換通知給所有的客戶端,客戶端相應(yīng)地更新其UI。操作被發(fā)送至服務(wù)器,并由特性規(guī)則根據(jù)特性傳播到各個客戶端,除非該操作是批量操作。服務(wù)器是文檔及其版本的管理者,其中版本被認為是“正確的”版本。***,各個客戶端會根據(jù)從服務(wù)器接收到的最終版本進行更新,該最終版本可能是很多操作轉(zhuǎn)換的結(jié)果。還有很多針對通訊失敗或服務(wù)器/客戶端崩潰而提供的恢復(fù)措施。為了迅速地識別誤傳,在客戶端和服務(wù)器間交換的所有XML文檔只帶一個總和校驗碼。

客戶端-服務(wù)器協(xié)議

操作。Wave的基本組成部分Wavelet經(jīng)過一系列被稱為操作轉(zhuǎn)換的改變。這些改變需要傳播并應(yīng)用到每個客戶端,否則客戶端就不能同步。

操作隊列。所有對Wavelet的操作都按照嚴(yán)格的順序發(fā)送。服務(wù)器對一個操作做出響應(yīng)之后,下一個操作才會被發(fā)送。服務(wù)器基于版本號給操作排序。每個客戶端都要按照合適的順序應(yīng)用操作。

打開Wavelet。要開始與Wavelet通訊,客戶端要給服務(wù)器發(fā)送一個Open請求,里面包含Wave ID和Wavelet ID。服務(wù)器響應(yīng)是一個快照——Wavelet的序列化狀態(tài),或者是相應(yīng)版本的歷史散列。

服務(wù)器到客戶端的通訊。服務(wù)器發(fā)送到客戶端的內(nèi)容是Delta(一或多個操作的序列)、版本號和歷史散列之一。

客戶端到服務(wù)器的通訊??蛻舳税l(fā)送的內(nèi)容是Delta或版本號。

恢復(fù)。通訊失敗時,客戶端通過發(fā)送先前從服務(wù)器接收到的散列歷史重新打開Servlet。

聯(lián)盟

Google Wave Federation協(xié)議允許多個實體(Wave提供者)彼此分享Waves。Wave提供者可以是在某人家里運行的服務(wù)器,為單個用戶或所有家庭成員提供Wave,也可以是一家公司、或一個ISP,Google只是另一個Wave提供者。

 

【編輯推薦】

  1. Google Wave開發(fā)人員開發(fā)人員訪談
  2. 逐步揭開Google Wave的神秘面紗
  3. Google開發(fā)者大會即將開幕 GAE成***熱點
  4. Google Mobile App開始支持諾基亞S60系統(tǒng)
  5. Google面向開發(fā)者推出網(wǎng)頁加速工具Page Speed
責(zé)任編輯:佚名 來源: InfoQ
相關(guān)推薦

2009-09-03 17:54:01

Google Wave

2010-09-16 10:46:47

2009-06-25 09:21:13

Google Wave

2010-03-31 15:56:22

2009-11-10 11:21:45

Google Wave

2009-06-12 14:31:59

Google WaveGoogle Wave

2009-09-03 10:52:13

Google Wave

2009-10-27 10:45:07

Google Wave

2009-06-01 09:04:44

Google WaveWeb

2009-07-22 16:38:53

2011-07-22 13:55:48

架構(gòu)

2009-10-13 09:06:28

2009-05-31 08:31:07

GoogleWaveTechCrunch

2009-11-30 09:19:54

Google Wave

2010-08-05 16:04:45

2010-05-20 13:42:45

Google Wave

2012-06-01 14:33:59

Google Dood

2009-04-13 09:47:41

Google數(shù)據(jù)中心圖片

2009-10-20 14:47:13

Google Wave

2009-10-21 14:30:53

點贊
收藏

51CTO技術(shù)棧公眾號