具有對全局協(xié)作數(shù)據(jù)的白板訪問的協(xié)作系統(tǒng)的制作方法
【專利說明】具有對全局協(xié)作數(shù)據(jù)的白板訪問的協(xié)作系統(tǒng)
【背景技術】
[0001] 本發(fā)明涉及用于數(shù)字協(xié)作的裝置、方法和系統(tǒng),并且更特別地涉及促進多個并發(fā) 用戶具有對全局協(xié)作數(shù)據(jù)的訪問的數(shù)字白板系統(tǒng)。
[0002] 數(shù)字白板常常被用于交互式演示和其他目的。一些白板被聯(lián)網(wǎng)并且可以被用于協(xié) 作,使得對一個白板上的顯示圖像做出的修改被復制在另一白板或者顯示器上。大規(guī)模白 板為超過一個用戶在相同表面上同時地呈現(xiàn)或者注釋提供機會。然而,在多個用戶的協(xié)調(diào) 中可能發(fā)生問題,并且在一些情況中,其對單個白板的使用可能限制其表達的靈活性。
[0003] 此外,數(shù)字白板可以包括單個房間中的大型顯示屏幕或者屏幕的陣列,其被配置 為提供如交互表面的大型"白板"。因此,應該預期到,可以由許多用戶在針對不同協(xié)作的不 同時間共享大型數(shù)字白板。在用于協(xié)作的協(xié)作數(shù)據(jù)對限于授權用戶的訪問保密的情況下, 僅在其處用戶交互的數(shù)字白板被分布到許多網(wǎng)站并且不一定在單個用戶的排他性控制下, 關于對協(xié)作的訪問的安全性出現(xiàn)問題。
[0004] 另外,系統(tǒng)的分布式性質(zhì)導致互相交互的不同地點的多個用戶的可能性,并且該 多個用戶可以同時和有時在沒有其他用戶正在觀察協(xié)作數(shù)據(jù)時改變相同協(xié)作數(shù)據(jù)。這產(chǎn)生 關于多個位置的并發(fā)性以及關于共享關于協(xié)作數(shù)據(jù)的當前狀態(tài)的信息的問題。
[0005] 因此,期望以這樣的方式找到允許多個用戶共享白板的分布式網(wǎng)絡中的協(xié)作數(shù) 據(jù):每個用戶具有隨著想法的實時交換表達他或她的想法的最大空閑的,同時提供足以保 護協(xié)作的保密性質(zhì)的安全性。創(chuàng)建對問題的魯棒的解決方案的機會因此出現(xiàn)??梢詫崿F(xiàn)更 好的想法、協(xié)作和結果。
【發(fā)明內(nèi)容】
[0006] 描述了一種協(xié)作系統(tǒng),其可以具有許多分布式數(shù)字白板,該分布式數(shù)字白板用于 基于由共享協(xié)作服務器管理的協(xié)作數(shù)據(jù)來顯示圖像并且用于接受可以對協(xié)作數(shù)據(jù)有貢獻 的用戶輸入。該系統(tǒng)可以包括管理邏輯,其基于確保針對協(xié)作數(shù)據(jù)授權的用戶已經(jīng)物理訪 問所選擇的白板的協(xié)議,來向所選擇的白板提供協(xié)作數(shù)據(jù)。而且,協(xié)作系統(tǒng)可以具有許多分 布式數(shù)字白板,其用于基于由共享協(xié)作服務器管理的協(xié)作數(shù)據(jù)來顯示圖像并且用于接受可 以對協(xié)作數(shù)據(jù)有貢獻的用戶輸入,同時使得每個白板能夠基于會話歷史、實時本地輸入和 來自其他白板的實時輸入迅速地構建要顯示的圖像。在本文中所描述的技術的又一方面, 涉及基于以陣列布置的聯(lián)合顯示器的白板架構,其合作以充當用于基于由遠程協(xié)作服務器 管理的協(xié)作數(shù)據(jù)來顯示圖像并且用于接受可以對協(xié)作數(shù)據(jù)有貢獻的用戶輸入的一個白板。
[0007] 提供以上概述以便提供對本文所描述的協(xié)作系統(tǒng)的一些方面的基本理解。該概述 并不旨在標識發(fā)明的關鍵或重要元素或者描繪發(fā)明的范圍。
【附圖說明】
[0008] 將參考其具體實施例描述本發(fā)明,并且將對未按比例繪制的附圖進行參考,并且 其中:
[0009] 圖IA和IB (統(tǒng)稱為圖1)圖示了數(shù)字白板協(xié)作環(huán)境的示例方面。
[0010] 圖2圖示了包括地理地分布到可以被遞送以供授權用戶使用的協(xié)作數(shù)據(jù)的多個 顯示墻的協(xié)作系統(tǒng)。
[0011] 圖3和4圖示了圖1的白板上的繪制區(qū)域行為的方面。
[0012] 圖5A-5E(統(tǒng)稱為圖5)是針對用于協(xié)作的協(xié)作數(shù)據(jù)的一部分的數(shù)據(jù)結構的簡化 圖。
[0013] 圖6圖示了如本文中所描述的系統(tǒng)的一個示例中的協(xié)作中的角色的功能特征。
[0014] 圖7是使用聯(lián)合顯示器實現(xiàn)的數(shù)字白板的示圖。
[0015] 圖8是計算機系統(tǒng)110(例如客戶端設備計算機系統(tǒng)(圖IB))的簡化框圖。
[0016] 圖9是可訪問地存儲到客戶端設備計算機系統(tǒng)110(圖1B)的數(shù)據(jù)庫的示意圖。
[0017] 圖10是圖示可以用于協(xié)作系統(tǒng)的用戶登錄順序的服務器側邏輯的方面的流程 圖。
[0018] 圖11是圖示可以用于協(xié)作系統(tǒng)的用戶登錄順序的客戶側邏輯的方面的流程圖。
[0019] 圖12是圖示針對用于協(xié)作會話的墻中的顯示器客戶端的客戶端側邏輯的方面的 流程圖。
[0020] 圖13是圖示管理協(xié)作系統(tǒng)中的分布式顯示墻的利用的服務器側邏輯的方面的流 程圖。
[0021] 圖14是圖示針對用作協(xié)作系統(tǒng)中的白板的聯(lián)合顯示系統(tǒng)的客戶端側邏輯的方面 的流程圖。
[0022] 圖15以圖IB的風格圖示了支持其中存在廣泛地分布的顯示器的分布式白板協(xié)作 的系統(tǒng)。
【具體實施方式】
[0023] 呈現(xiàn)以下描述以使本領域的技術人員能夠制造和使用本發(fā)明,并且在特定應用和 其要求的上下文中被提供。所公開的實施例的各種修改對于本領域技術人員而言將是容易 地顯而易見的,并且在不脫離本發(fā)明的精神和范圍的情況下,本文所限定的通用原理可以 適于其他實施例和應用。因此,本發(fā)明不旨在限于所示的實施例,而是將符合與本文所公開 的原理和特征一致的最寬的范圍。
[0024] 圖IA圖示了數(shù)字白板協(xié)作環(huán)境的示例方面。在示例中,多個用戶101a-h(統(tǒng)稱 為101)可以期望在在圖IA中全部一般地被指定為103a-d(統(tǒng)稱為103)的復雜的圖像、音 樂、視頻、文檔和/或其他媒體的創(chuàng)建中彼此協(xié)作。所圖示的示例中的用戶使用各種設備以 便彼此協(xié)作,例如平板計算機102a、個人計算機(PC) 102b和許多大格式白板102c、102d、 102e (統(tǒng)稱為設備102)。在圖示的示例中,大格式白板102c (有時在本文中被稱為"墻") 容納用戶中的超過一個用戶(例如,用戶IOlc和101d、用戶IOle和IOlf以及用戶IOlg和 IOlh)〇
[0025] 圖IB圖示了與圖IA相同的環(huán)境。如圖IB中所示,有時在本文中被稱為"墻"的大 格式顯示器102c、102d、102e由相應的計算機系統(tǒng)110控制,其進而與中央?yún)f(xié)作服務器105 網(wǎng)絡通信,其具有對數(shù)據(jù)庫106的可訪問。如本文所使用的,術語"數(shù)據(jù)庫"不一定隱含結 構的任何統(tǒng)一。例如,當一起考慮時,兩個或兩個以上分離的數(shù)據(jù)庫仍然構成如本文使用該 術語那樣的"數(shù)據(jù)庫"。
[0026] 可以使用諸如Apache或者nginx的Web服務器軟件托管運行在協(xié)作服務器105 處的應用。例如,可以在運行諸如LINUX的操作系統(tǒng)的虛擬機上對其進行托管。服務器105 在圖IB中啟發(fā)式地被圖示為單個計算機。然而,由于對于基于大規(guī)模云的服務而言是典型 的,服務器架構可以涉及各自運行服務器應用的許多計算機的系統(tǒng)。服務器架構包括通信 模塊,其可以被配置用于各種類型的通信信道,包括協(xié)作會話中的每個客戶端的超過一個 信道。例如,跨網(wǎng)絡、客戶端軟件的近實時更新可以經(jīng)由使用基于消息的信道、基于例如Web Socket (網(wǎng)絡套接字)協(xié)議與服務器通信模塊通信。對于文件上載以及接收初始大容量協(xié) 作數(shù)據(jù)而言,客戶端軟件可以經(jīng)由HTTP與服務器通信模塊通信。服務器可以運行例如以由 Ruby-on-Rails服務的JavaScript編寫的前端程序,例如基于Oauth支持認證/授權,并且 支持多個分布式客戶端之間的協(xié)調(diào)。服務器通信模塊可以包括基于消息的通信協(xié)議棧,諸 如Web Socket應用,其執(zhí)行記錄協(xié)作數(shù)據(jù)中的用戶動作的功能,并且如果適用的話,則將用 戶動作轉播(relay)給其他客戶端。該系統(tǒng)可以運行在例如node. JS平臺上,或者運行在 例如設計為處理高負載套接字應用的其他服務器技術上。
[0027] 數(shù)據(jù)庫106存儲例如針對每個協(xié)作的協(xié)作數(shù)據(jù)集的數(shù)字表示,其中協(xié)作數(shù)據(jù)集可 以包括或者標識可顯示在白板畫布上的對象和與這樣的對象有關的事件??梢源嬖卺槍υS 多不同協(xié)作的協(xié)作數(shù)據(jù)集。針對給定協(xié)作的數(shù)據(jù)集可以被配置在數(shù)據(jù)庫中,或者作為與協(xié) 作關聯(lián)的機器可讀文檔。該畫布還可以映射到協(xié)作空間中的區(qū)域,其可以具有無限或者實 際上無限的尺寸。該協(xié)作數(shù)據(jù)包括標識由顯示墻上的顯示區(qū)域中的顯示器客戶端可顯示的 對象的數(shù)據(jù)結構,并且將協(xié)作空間中的位置與由數(shù)據(jù)結構標識的對象相關聯(lián)。每個設備102 僅顯示整個協(xié)作空間的一部分。顯示墻具有用于顯示對象的顯示區(qū)域,該顯示區(qū)域被映射 到協(xié)作空間中的對應的區(qū)域,其與集中在協(xié)作空間中的用戶位置上或否則關于協(xié)作空間中 的用戶位置定位的協(xié)作空間中的區(qū)域相對應。顯示區(qū)域到協(xié)作空間中的對應的區(qū)域的映射 可由顯示器客戶端用于標識要被渲染在顯示器上的顯示區(qū)域內(nèi)的協(xié)作數(shù)據(jù)中的對象,并且 標識鏈接顯示器上的顯示區(qū)域中的位置處的用戶觸摸輸入的對象。
[0028] 如下文更詳細地解釋的,服務器105存儲針對多個協(xié)作的協(xié)作數(shù)據(jù)集,并且向加 入會話的顯示器客戶端提供協(xié)作數(shù)據(jù)。協(xié)作數(shù)據(jù)隨后由具有包括顯示器客戶端軟件的適當 的軟件112的計算機系統(tǒng)110用于確定要顯示在白板上的圖像,并且將用于交互的對象分 配到顯示表面上的位置。在一些備選方案中,服務器105可以跟蹤針對每個設備102的"視 口",其指示該設備上可視的畫布的一部分,并且可以向每個設備102提供渲染視口所需要 的數(shù)據(jù)。在客戶端設備上運行并且負責渲染繪圖對象、處理用戶輸入并且與服務器通信的 應用軟件可以基于HTML-5并且運行在瀏覽器環(huán)境中。這允許對許多不同客戶端操作系統(tǒng) 環(huán)境的容易的支持。
[0029] 存儲在數(shù)據(jù)庫106中的用戶接口數(shù)據(jù)包括各種類型的對象,諸如圖像位圖、視頻 對象、多頁文檔、可擴展矢量圖等等。設備102各自經(jīng)由網(wǎng)絡104與協(xié)作服務器105通信。 網(wǎng)絡104包括所有形式的聯(lián)網(wǎng)部件,諸如LAN、WAN、路由器、交換機、WiFi部件、蜂窩部件、有 線和光學部件以及因特網(wǎng)。在一個場景中,用戶101中的兩個或兩個以上用戶定位在相同 的房間中,并且其設備102經(jīng)由WiFi與協(xié)作服務器105通信。在另一場景中,用戶101中 的兩個或兩個以上用戶彼此分離數(shù)千英里,并且其設備102經(jīng)由因特網(wǎng)與協(xié)作服務器105 通信。墻102c、102d、102e可以是多觸摸設備,其不僅顯示圖像,而且可以感測通過利用觸 針或者諸如一個或多個手指的身體的一部分來觸摸顯示表面所提供的用戶手勢。在一些實 施例中,墻(例如l〇2c)可以在一個或多個手指(或者例如整個手)的觸摸與觸針的觸摸 之間進行區(qū)分。在實施例中,墻通過發(fā)射紅外光和檢測所接收的光來感測觸摸;從用戶的 手指反射的光具有墻與周圍所接收的光區(qū)分的特性。觸針通過以下方式發(fā)射其自身的紅外 光:墻可以與環(huán)境光和從用戶的手指反射的光二者進行區(qū)分。墻l〇2c可以例如是垂直和水 平地平鋪的由芬蘭的赫爾辛基的MultiTouch公司制造的模型號MT553UTBL MultiTaction Cells的陣列。為了提供各種表達方式,墻102c以其維持"狀態(tài)"的這樣的方式進行操作。 即,其可以根據(jù)(除了其他方面)輸入的順序來對給定輸入不同地作出反應。例如,使用工 具欄,用戶可以選擇許多可用的畫筆類型和顏色中的任一種。一旦被選擇,則墻處于在其中 觸針的后續(xù)筆畫將使用所選擇的畫筆類型和顏色繪制線條的狀態(tài)。
[0030] 在說明性實施例中,陣列總計大約6'高和30'寬,其對于多個用戶而言足夠寬, 以站在墻的不同部分處并且同時對其進行操縱。然而,可以在多用戶場景中限制墻上的表 達的靈活性,這是因為在該實施例中,墻在不同用戶的手指或者由不同用戶操作的觸針之 間不進行區(qū)分。因此,如果一個用戶將墻置于一個期望狀態(tài),則第二用戶將被限于使用該相 同狀態(tài),這是因為墻不具有識別要被不同地對待的第二用戶的輸入的方式。
[0031] 為了避免該限制,系統(tǒng)限定墻102c上的"繪制區(qū)域"。如本文所使用的,繪制區(qū)域 是在其內(nèi)墻的狀態(tài)中的至少一個方面可以獨立于墻上的其他區(qū)域而被改變的區(qū)域。在本實 施例中,在繪制區(qū)域之間可以不同的狀態(tài)的方面是使用觸針繪制在墻上的線條的性質(zhì)。系 統(tǒng)對手指觸摸行為的響應不受繪制區(qū)域影響。
[0032] 圖2圖示了分布式協(xié)作系統(tǒng),其包括可以鏈接到地理分布的多個設施(例如設施 1和設施2)并且在其處定位顯示器客戶端的共享服務器105。例如,設施1位于紐約,而設 施2可以位于洛杉磯??梢源嬖诙ㄎ粎f(xié)作系統(tǒng)中的可用的顯示器客戶端的其他物理位置。 在該示例中,設施1包括第一房間151、第二房間152和第三房間153。設施2包括第一房 間161、第二房間162和第三房間163。設施1中的第一房間151包括使用多個顯示器實現(xiàn) 的大格式白板。設施1中的第二房間152包括單個屏幕、中等格式白板。設施1中的第三 房間153可以是私人辦公室或其他房間,在其中個人計算機或者膝上型計算機可以用作用 于所選擇的協(xié)作中的交互的會話的顯示器客戶端。該圖示中的設施2與設施1一樣,并且 包括第一房間161、第二房間162和第三房間163。設施2中的第一房間161包括使用多個 顯示器實現(xiàn)的大格式白板。設施2中的第二房間162包括單個屏幕、中等格式白板。設施2 中的第三房間163可以是私人辦公室或者其他房間,在其中個人計算機、膝上型計算機、移 動平板計算機或者移動電話可以用作用于會話的顯示器客戶端。圖2圖示了結合依賴于遠 程地定位的大格式或者中中等格式白板(或者墻)的分布式協(xié)作系統(tǒng)出現(xiàn)的問題。大格式 和中等格式白板通常不在單獨的用戶的排他性控制下。因此,協(xié)作服務器105可以不具有 關于在任何給定時間具有對白板的訪問的人員的信息。
[0033] 圖3圖示了墻102c。該示例中的墻