專利名稱:分布式剪貼板的制作方法
分布式剪貼板
背景協(xié)作應用程序允許在不同位置的參與者建立并參與一個協(xié)作會議。參與者 經(jīng)常在會議期間演示和交換信息。通常,在會議中正在做演示的參與者使用視 頻或幻燈片投影儀或軟件在屏幕上演示信息以供與正在做演示的參與者處于 同一位置的其它參與者觀看。但是,通常向在其它位置的參與者提供該演示的 紙件副本。計算機聯(lián)網(wǎng)的出現(xiàn)使得各個位置處的參與者可以在會議期間彼此通信。例 如,不同位置處的會議參與者可以使用其諸如膝上型計算機或手持式設備等計 算設備來建立網(wǎng)絡連接,并在會議期間使用其計算設備來共享信息。即使參與者能夠互相連接,共享信息的過程也不是很容易。通常,希望共 享一項信息的參與者使用文件傳輸應用程序?qū)⒃撔畔l(fā)送到另一個參與者。如 果該共享參與者希望與多于一個參與者共享該信息,則該共享參與者通常將該信息附加于發(fā)送地址是要接收該信息的參與者的電子郵件消息,并向這些被寫 入發(fā)送地址的參與者發(fā)送該電子郵件消息。盡管信息可以在會議之前發(fā)送至參 與者,但時常地,將會產(chǎn)生在會議期間發(fā)送信息的需要,在這種情況下,被寫 入發(fā)送地址的參與者將在會議期間的某個時刻接收所發(fā)送的信息或電子郵件消息以及附加的信息,并還需要在會議期間檢索共享的信息。因此,在會議期 間共享信息是使參與者分心的源頭。此外,在會議期間在會議參與者之間共享信息是困難且麻煩的。概述提供用于向會話中的參與者提供共享剪貼板的技術。共享剪貼板對于與其 相關聯(lián)的會話是特定的,即共享剪貼板不會從一個會話"溢出"到另一個。當 建立兩個或多于兩個參與者之間的會話時,共享剪貼板變成對會話參與者可 用。共享剪貼板方便了會話中的參與者之間的數(shù)據(jù)共享。在會話期間,為會話中的每個參與者提供對共享剪貼板(包括其內(nèi)容)的訪問。當一參與者加入或 被添加到會話時,也向添加的參與者提供對共享剪貼板及其內(nèi)容的訪問。提供本概述以便以簡化的形式介紹將在以下詳細描述中進一步描述的一 些概念。本概述并非意在確定所要求保護的主題的關鍵特征或必要特征,也并 非意在用來幫助確定所要求保護的主題的范圍。附圖簡述
圖1是顯示了分布式剪貼板可在其中操作的環(huán)境的高層次框圖。圖2是根據(jù)某些實施例的示出了顯示剪貼板的存在的共享剪貼板的呈現(xiàn)的框圖。圖3是根據(jù)某些實施例的示出了與對象相關聯(lián)的元數(shù)據(jù)的框圖。圖4是根據(jù)某些實施例的示出了創(chuàng)建共享剪貼板的流程圖。圖5是根據(jù)某些實施例的示出了將對象放置到共享剪貼板上的流程圖。圖6是根據(jù)某些實施例的示出了將對象從共享剪貼板推送到客戶機計算系統(tǒng)的流程圖。圖7是根據(jù)某些實施例的示出了臨時高速緩存共享剪貼板的流程圖。詳細描述提供用于向會話中的參與者提供共享剪貼板的各種技術。共享剪貼板對于 與其相關聯(lián)的會話是特定的,即共享剪貼板不會從一個會話"溢出"到另一個。 當在兩個或多于兩個參與者之間建立諸如(作為示例)即時消息通信、公共交 換電話網(wǎng)("pstn")電話、web或在線會議、音頻/視頻會議、文檔共享、和 其它形式的會議等會話時,共享剪貼板變得對會話參與者可用。在會話期間, 向會話中的每個參與者提供對該共享剪貼板(包括其內(nèi)容)的訪問。當一個參 與者加入或被添加到該會話時,還向該添加的參與者提供對共享剪貼板及其內(nèi) 容的訪問。當會話中的參與者離開會話時,不再向該參與者提供對該共享剪貼 板的訪問。當會話結(jié)束時,不再向會話中的參與者提供對該共享剪貼板的訪問。在某些實施例中, 一客戶機協(xié)作應用程序在建立或創(chuàng)建會話時創(chuàng)建一共享 剪貼板供會話中的參與者使用。在客戶機計算系統(tǒng)上執(zhí)行的并被參與者用來參與會話的客戶機協(xié)作應用程序可以向其參與者提供該共享剪貼板的概念視圖。在概念上,存在一個用于會話的、會話中的每個參加參與者共享對其的訪問的共享剪貼板。例如,該客戶機協(xié)作應用程序可以將該共享剪貼板的可視呈現(xiàn)提供為對客戶機計算系統(tǒng)上的現(xiàn)有剪貼板的定界或獨立的擴展。在另一個示例中,客戶機協(xié)作應用程序可以將該共享剪貼板的呈現(xiàn)提供為與例如客戶機協(xié)作應用程序的用戶界面相關聯(lián)的獨立剪貼板。在客戶機計算系統(tǒng)上的共享剪貼板的呈現(xiàn)可以做成可視的。會話中的參與者可以通過與其客戶機計算系統(tǒng)上的共享剪貼板的可視呈現(xiàn)交互來訪問共享剪貼板的內(nèi)容。例如,會話中的參與者可以通過將一對象 (即,信息項)放置于客戶機計算系統(tǒng)上的共享剪貼板的可視呈現(xiàn)之上來將該對象放置于共享剪貼板上。然后,會話中的參與者可以通過對客戶機計算系統(tǒng) 上的共享剪貼板的可視呈現(xiàn)上的對象執(zhí)行檢索操作來檢索共享剪貼板上的對象的副本。在某些實施例中,共享剪貼板可以將自身與客戶機計算系統(tǒng)上的一 個或多個其它剪貼板(例如系統(tǒng)剪貼板)作協(xié)調(diào)。在這個實例中,參與者可以使用現(xiàn)有的系統(tǒng)剪貼板復制(例如,CTRL-C)和粘貼(例如,CTRL-V)命令 來訪問共享剪貼板的內(nèi)容。例如, 一個會話中的參與者可以通過應用程序共享 使用CTRL-C復制其與所有參與者共享的電子表格中的一單元格范圍,該應用 程序共享允許其他參與者使用CTRL-V將該范圍粘貼到其各個本地電子表格 文件中。在該情形下,共享剪貼板的可視表示不需要顯示出來。以此方式,會話中的各參與者使用的每個客戶機計算系統(tǒng)上的共享剪貼板 的集合構成或組成了用于該會話的分布式共享剪貼板。在某些實施例中,客戶機協(xié)作應用程序可以周期性地"刷新"共享剪貼板 (不論該共享剪貼板在客戶機計算系統(tǒng)上是被可視地呈現(xiàn)還是沒有被可視地 呈現(xiàn))以便提供共享剪貼板上的內(nèi)容的精確視圖。例如,會話中的參與者的客 戶機協(xié)作應用程序可以周期性地向會話中的其他參與者的客戶機協(xié)作應用程 序查詢涉及共享剪貼板在其客戶機計算系統(tǒng)上的呈現(xiàn)的信息。在某些實施例中,在對象被放置到共享剪貼板之前,檢查對象的訪問權限。 例如, 一對象可以包含數(shù)字權限或限制對象被共享的其它許可或?qū)⑵渑c該數(shù)字 權限或其它許可相關聯(lián)。在這些實例中,如果會話中的參與者之一對于該對象沒有權限,則阻止該對象被放置到共享剪貼板之上。在某些實施例中,當一會話在客戶機計算系統(tǒng)處終止之后,該會話的共享 剪貼板的內(nèi)容可以被臨時高速緩存在客戶機計算系統(tǒng)上。例如,該內(nèi)容可以被 臨時高速緩存預定量的時間。當內(nèi)容被臨時高速緩存時,參與者可以訪問共享 剪貼板的"存檔"例如來提醒他或她在什么會話中共享了什么、回憶參與者在 會議中獲得的但不知何故丟失的對象等等。在某些實施例中,客戶機計算系統(tǒng)上的共享剪貼板提供"剪貼板存在"信 息,即該共享剪貼板(無論它是否被可視地呈現(xiàn))顯示誰在對共享剪貼板做什 么。剪貼板存在提供了關于會話中的其它參與者如何與共享剪貼板交互的視 圖。例如,會話中的參與者能夠看到會話中的另一個參與者何時從共享剪貼板 中復制對象。在接下來的討論中,結(jié)合諸如"拖放"、"剪切"、"復制"、"粘貼"等各種各樣的公知操作以及它們對執(zhí)行諸如MICROSOFT WINDOWS操作系統(tǒng)等各種公知操作系統(tǒng)中的任一個的計算系統(tǒng)上所支持的系統(tǒng)剪貼板的影響, 描述用于提供共享剪貼板的技術的各種實施例。即使結(jié)合上述操作以及它們對 系統(tǒng)剪貼板的影響來描述用于提供共享剪貼板的技術的各種實施例,但將意識 到,提供共享剪貼板的技術不局限于僅與上述操作以及系統(tǒng)共享剪貼板工作。 本領域的普通技術人員將意識到,用于提供共享剪貼板的技術可以容易地在支 持對于對象的不同于那些上述的操作和/或不支持系統(tǒng)剪貼板的操作的計算系 統(tǒng)上實現(xiàn)。例如,可以通過對客戶機計算系統(tǒng)上的共享剪貼板的可視呈現(xiàn)執(zhí)行 拖放操作來提供對共享剪貼板的操作(例如,會話中的參與者可以選擇對象并 將對象拖到共享剪貼板的可視呈現(xiàn)上以便將該對象放置于共享剪貼板中;會話 中的參與者可以選擇該共享剪貼板的可視呈現(xiàn)上的對象并將該對象從共享剪 貼板的可視呈現(xiàn)中拖到期望的應用程序、對象等中以便從共享剪貼板中檢索出 該對象)。圖1是顯示分布式剪貼板在其中操作的環(huán)境的高層次框圖。如所示出的, 該環(huán)境包括由各自耦合到共享剪貼板104a的客戶機計算系統(tǒng)102a—b組成的 會話10,以及由各自耦合到共享剪貼板104b的客戶機計算系統(tǒng)102b — e組成 的會話12??蛻魴C計算系統(tǒng)102a—e各自耦合至網(wǎng)絡106。所示出的環(huán)境只是合適的環(huán)境的一個示例,并不意在對所描述的技術的使用范圍或功能暗示任何 限制。例如,會話的數(shù)目、以及所示出的每個會話中的客戶機計算系統(tǒng)的數(shù)目 僅是出于簡化目的而提供的,并且本領域的技術人員將意識到,可以存在不同 數(shù)目的會話以及每個會話中的客戶機計算系統(tǒng)的不同組合。如此處所使用的, 術語"連接"、"耦合"或其任何變型表示在兩個或多于兩個元素之間任何直 接或間接的任何連接或耦合;元素之間的連接的耦合可以是物理的、邏輯的、 或其組合。一般而言,每個客戶機計算系統(tǒng)允許諸如人類用戶等用戶參與一個或多個 會話。例如, 一個人可以采用在他或她的客戶機計算系統(tǒng)上執(zhí)行的客戶機協(xié)作 應用程序來參與一個會話或多個會話。如圖1所示,兩個人(每一個都處于其 各自的客戶機計算系統(tǒng)102a和102b處)正參與會話10,四個人(每一個都處 亍其各自的客戶機計算系統(tǒng)102b — e處)正參與會話20。當會話開始時,創(chuàng)建共享剪貼板并使其對于參與會話的人可用。例如,使 共享剪貼板104a對處于客戶機計算系統(tǒng)102a和102b處的參與會話10的人可 用。類似地,使共享剪貼板104b對處于客戶機計算系統(tǒng)102b — e處的參與會 話20的人可用。用T"會話的共享剪貼板被呈現(xiàn)在每個參與會話的人的客戶機計算系統(tǒng)上。 例如,如圖1所示,共享剪貼板104a作為共享剪貼板呈現(xiàn)108a被可視地呈現(xiàn) 在客戶機計算系統(tǒng)102a上,并且作為共享剪貼板呈現(xiàn)108b被可視地呈現(xiàn)在客 戶機計算系統(tǒng)102b上。同樣,共享剪貼板104b作為共享剪貼板呈現(xiàn)110b被 可視地呈現(xiàn)在客戶機計算系統(tǒng)102b上,作為共享剪貼板呈現(xiàn)110c被可視地呈 現(xiàn)在客戶機計算系統(tǒng)102c上,作為共享剪貼板呈現(xiàn)110d被可視地呈現(xiàn)在客戶 機計算系統(tǒng)102d上,并作為共享剪貼板呈現(xiàn)110e被可視地呈現(xiàn)在客戶機計算 系統(tǒng)102e上。客戶機計算系統(tǒng)上的共享剪貼板的呈現(xiàn)可以做成可視的(例如, 可視地呈現(xiàn))或"最小化"(例如,被呈現(xiàn)但不可視)以節(jié)省屏幕可操作區(qū)域 (real estate)。在某些實施例中,共享剪貼板可以作為諸如MICROSOFT OFFICE剪貼板或由在客戶機計算系統(tǒng)上執(zhí)行的應用程序提供的其它合適的剪 貼板等個人(即會話參與者)現(xiàn)有的剪貼板的擴展在客戶機計算系統(tǒng)上描繪。 在這些實施例中,個人將共享剪貼板的可視呈現(xiàn)看做其自己的剪貼板的擴展區(qū)域,但是該擴展區(qū)域在概念上是放到一個空間上的視圖,即會話的共享剪貼板。 在一個人正參與多個會話的情況下(例如,圖1中的處于客戶機計算系統(tǒng)102b 處的人),用于每個會話的共享剪貼板被描繪于此人的客戶機計算系統(tǒng)上。在會話期間,會話中的參與者剪切或復制的任何東西被放置到用于該會話 的共享剪貼板上。在會話期間粘貼的參與者從共享剪貼板中粘貼。如一般所公知的并且如由大多數(shù)文檔編輯應用程序以及大多數(shù)操作系統(tǒng)一般所支持的,剪 切操作在刪除所選擇的部分或?qū)ο髸r,在臨時緩沖區(qū)(例如,剪貼板)中保存 該文檔或?qū)ο蟮乃x擇部分;復制操作在保持文檔或?qū)ο蟛蛔兊耐瑫r在臨時緩 沖區(qū)中保存該文檔或?qū)ο蟮乃x擇部分;以及粘貼操作在文檔、文件、文件夾、 其它對象等中的當前位置處插入來自剪貼板的數(shù)據(jù)。當參與者離開會話或者會 話結(jié)束時,用于該會話的共享剪貼板消失一即,用于該會話的共享剪貼板不再 呈現(xiàn)于參與者的客戶機計算系統(tǒng)上。當一個參與者加入現(xiàn)有的會話時,用于該 會話的共享剪貼板被呈現(xiàn)于加入的參與者的客戶機計算系統(tǒng)上,由此允許該參與者從該共享剪貼板粘貼以及剪切/復制到共享剪貼板,就好像該參與者從一開 始就在會話中一樣。例如,加入的參與者的客戶機協(xié)作應用程序可以從該加入 的參與者的客戶機協(xié)作應用程序與其建立協(xié)作對話來加入會話的客戶機協(xié)作 應用程序中檢索共享剪貼板的副本。在某些實施例中,會話中的參與者通過在參與會話時在他或她的客戶機計 黨系統(tǒng)上執(zhí)行剪切、復制、粘貼和拖放操作來與用于該會話的共享剪貼板交互。 當會話中的參與者執(zhí)行剪切操作時,剪切操作取當前所選擇的一個或多個對象 并將它們放置到用于該會話的該參與者的共享剪貼板的呈現(xiàn)上。然后,該參與 者的共享剪貼板的呈現(xiàn)可以將當前所選擇的一個或多個對象推送到會話中的 每個參與者的系統(tǒng)剪貼板。該參與者的共享剪貼板的呈現(xiàn)還可以將當前所選擇 的一個或多個對象推送到每個會話參與者的共享剪貼板的呈現(xiàn)中。當會話結(jié)束 時,盡管會話中的其它所有參與者的系統(tǒng)剪貼板可以被恢復成在會話開始時所 處的狀態(tài),但由于剪切操作是破壞性的操作,因此會話中最后一個將一個或多 個對象剪切到共享剪貼板上的參與者的系統(tǒng)剪貼板可能不能恢復。當會話中的參與者執(zhí)行復制操作時,復制操作取當前所選擇的一個或多個 對象并將它們放置到該參與者的共享剪貼板的呈現(xiàn)上。然后,該參與者的共享剪貼板的呈現(xiàn)可以將當前所選擇的一個或多個對象推送到會話中的每個參與 者的系統(tǒng)剪貼板。該參與者的共享剪貼板的呈現(xiàn)還可以將當前所選擇的一個或 多個對象推送到每個會話參與者的共享剪貼板的呈現(xiàn)中。當會話結(jié)束時,會話 中的各參與者的系統(tǒng)剪貼板可以被恢復成在會話開始時所處的狀態(tài)。當會話中的參與者執(zhí)行了粘貼操作,則該粘貼操作將該參與者的系統(tǒng)剪貼 板上的一個或多個對象的副本插入到該參與者指定的當前位置處。"粘貼鏈接" 操作可能不會產(chǎn)生有意義的結(jié)果。因為會話中的其它參與者的各系統(tǒng)只是由于 會話的發(fā)生而被暫時連接,以及因為在會話結(jié)束后共享剪貼板不會持續(xù),因此 粘貼一個到對象的鏈接而不是該對象本身不會導致有意義的鏈接地址。然而, 可以允許該操作,在這一情況下,系統(tǒng)可能不會試圖以有意義的方式來解析該 鏈接。當使得共享剪貼板可視(即,被可視地呈現(xiàn))時,任何對象可以被拖到該 共享剪貼板。會話中的參與者可以將例如從整個數(shù)據(jù)庫或任何類型的文件到電 子表格的單個表項等的任何東西拖放至該共享剪貼板。類似地,會議中的任何 參與者可以拖動來自共享剪貼板的對象并將其放置于任何應用程序或其它合適的位置上。一個人可以一次參與多個會話。例如,圖1中處于客戶機計算系統(tǒng)102b 處的個人正同時參與會話10和會話20兩者。每個會話具有其自己的共享剪貼 板。該參與者看到的(并且通過剪切、復制、粘貼等可訪問的)該參與者的剪 貼板的擴展區(qū)域應用于該參與者當前在其中活動或正參與的會話。在某些實施 例中,參與者的當前活動會話可以由以下確定輸入(例如,文本聊天、語音 等)被定向到何處;哪個表示會話的窗口是活動的;明確的用戶動作(例如, 參與者通過參與者在何處拖動或通過在復制前選擇會話窗口或選擇共享剪貼 板窗口等來告訴系統(tǒng)使用哪個共享剪貼板);或者系統(tǒng)査詢參與者(例如,"您 希望從哪個會話中粘貼?")。在某些實施例中,當客戶機計算系統(tǒng)上的第一個會話開始時,該客戶機計 算系統(tǒng)上用于該第一個會話的共享剪貼板(即,共享剪貼板的呈現(xiàn))保存并關 閉系統(tǒng)剪貼板的內(nèi)容。當該客戶機計算系統(tǒng)上的會話結(jié)束時,恢復系統(tǒng)剪貼板。 當共享剪貼板消失或被清除時,已經(jīng)被共享剪貼板推送到系統(tǒng)剪貼板的任何對象也被清除。當多個、同時的會話在一個客戶機計算系統(tǒng)上進行時,用于每個 會話的共享剪貼板會需要合作來確保要創(chuàng)建的第一個共享剪貼板保存系統(tǒng)剪貼板,并且在客戶機計算系統(tǒng)上最后要結(jié)束的會話恢復該系統(tǒng)剪貼板。再次參考圖1, 一般而言,網(wǎng)絡是一個幫助在例如附連的客戶機計算系統(tǒng) 之間傳輸電子內(nèi)容的通信鏈路。在一個實施例中,網(wǎng)絡包括因特網(wǎng)。將意識到, 網(wǎng)絡可以由諸如局域網(wǎng)、廣域網(wǎng)、點對點撥號連接等一個或多個其它類型的網(wǎng) 絡組成。在某些實施例中,網(wǎng)絡可以包括一個或多個服務器計算系統(tǒng)。 一般而 言,服務器計算系統(tǒng)可以幫助在其客戶機計算系統(tǒng)處的參與者之間建立會話。 例如,呼叫的參與者的客戶機計算系統(tǒng)可以向適當?shù)姆掌饔嬎阆到y(tǒng)發(fā)送與被 呼叫的參與者建立諸如應用程序共享對話等實時對話的請求。 一旦建立了所請 求的對話,呼叫的參與者的客戶機與被呼叫的參與者的客戶機可以通過服務器 計算系統(tǒng)進行通信,或直接互相通信(對等)??蛻魴C計算系統(tǒng)可以包括一個或多個中央處理單元、存儲器、輸入設備(例如,鍵盤和定點設備)、輸出設備(例如,顯示設備)以及存儲設備(例如, 盤驅(qū)動器)。存儲器和存儲設備是可以包含實現(xiàn)上述用于向會話中的參與者提 供共享剪貼板的各種技術的指令的計算機可讀介質(zhì)。另外,可以通過諸如通信鏈路上的信號等數(shù)據(jù)傳輸介質(zhì)來存儲或發(fā)送數(shù)據(jù)結(jié)構和消息結(jié)構??梢圆捎酶?種通信鏈路,例如,因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)、點對點撥號連接、蜂窩電話網(wǎng) 絡等等。本領域的普通技術人員將意識到,計算系統(tǒng)可以是具有各種組件的各種配置。所述技術的各實施例可以在包括個人計算機、服務器計算機、計算設備、 手持式或膝上型設備、多處理器系統(tǒng)、基于微處理器系統(tǒng)、可編程消費類電子產(chǎn)品、數(shù)碼照相機、網(wǎng)絡PC、微型計算機、大型計算機、包括上述系統(tǒng)或設備的任何一個的分布式計算環(huán)境等各種操作環(huán)境中實現(xiàn)。計算機系統(tǒng)可以是蜂 窩電話、個人數(shù)字助理、智能電話、個人計算機、可編程消費類電子產(chǎn)品、數(shù)碼照相機、公共電話亭、ATM等。用于向會話中的參與者提供共享剪貼板的各種技術可以在諸如程序模塊 等由一個或多個計算機或其它設備執(zhí)行的計算機可執(zhí)行指令的一般上下文中 描述。通常,程序模塊包括執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構等等。通常,各程序模塊的功能可以如各實施例中 所期望地組合或分布。圖2是根據(jù)某些實施例的示出了顯示剪貼板存在的共享剪貼板呈現(xiàn)的框圖。如所示出的,五個參與者202a—e被示為參與一個會話并與同該會話相關 聯(lián)的共享剪貼板204交互。特別地,剪貼板存在指示或顯示會話中的參與者如 何與共享剪貼板交互。剪貼板存在允許會話中的每個參與者看到會話中的每一個其它參與者對共享剪貼板做了什么(例如,從共享剪貼板中放入或粘貼)。 例如,如圖1所示,參與者202b和202e被示為還未與共享剪貼板交互;參與 者202a被示為已在共享剪貼板上放置了對象206;參與者202c被示為已從共 享剪貼板中獲得或拖動了對象208的副本;以及參與者202d被示為已從共享 剪貼板中獲得或拖動了對象210的副本。本領域的技術人員將意識到,剪貼板 存在信息可以用各種各樣的方式來描繪。而且,盡管剪貼板存在可以與剪貼板 呈現(xiàn)一起或作為其一部分來描述,但本領域的技術人員還將意識到,剪貼板存 在信息可以獨立于剪貼板的呈現(xiàn)而被描述。圖3是根據(jù)某些實施例的示出了與一對象相關聯(lián)的元數(shù)據(jù)的框圖。如所描 繪的,對象302與對象元數(shù)據(jù)304以及會話元數(shù)據(jù)306相關聯(lián)。被放置到共享 剪貼板上的每個對象帶著或攜帶該對象來自其中的文件的元數(shù)據(jù)和期間該對 象被放置在剪貼板上的會話的元數(shù)據(jù)。對象元數(shù)據(jù)可包括諸如(作為示例)該 對象來自其中的文件的類型、文件的創(chuàng)建者、文件被創(chuàng)建的日期和時間、該對象被放置到共享剪貼板上的日期和時間等信息。會話元數(shù)據(jù)可包括諸如(作為 示例)會話中的參與者、會話中的參與者的位置、會話中的一個或多個對話的 類型、會話的時間等信息。圖4是根據(jù)某些實施例的示出創(chuàng)建共享剪貼板的流程圖。作為示例,呼叫 的參與者可以在他或她的客戶機計算系統(tǒng)上執(zhí)行客戶機協(xié)作應用程序并請求 與例如在遠程客戶機計算系統(tǒng)處的被呼叫的參與者建立會話。在框402中,客 戶機勸、作應用程序接收建立與被呼叫的參與者的會話的請求。在框404中,客 戶機協(xié)作應用程序請求與被呼叫的參與者的會話。在框406中,客戶機協(xié)作應 用程序確定所請求的與被呼叫的參與者的會話是否被成功地建立。如果客戶機協(xié)作應用程序確定所請求的會話被成功建立,則在框408中,客戶機協(xié)作應用 程序為該會話創(chuàng)建共享剪貼板。在某些實施例中,客戶機協(xié)作應用程序?qū)⒐蚕?剪貼板創(chuàng)建為客戶機計算系統(tǒng)上的現(xiàn)有剪貼板的擴展,并且對現(xiàn)有剪貼板的擴 展向呼叫的參與者提供了用于該會話的共享剪貼板的呈現(xiàn)。同樣,在被呼叫的 參與者的客戶機計算設備處,在該客戶機計算設備上執(zhí)行的客戶機協(xié)作應用程序?qū)⒂糜谠摃挼墓蚕砑糍N板創(chuàng)建為例如對該客戶機計算系統(tǒng)上現(xiàn)有剪貼板 的擴展,并且對現(xiàn)有剪貼板的擴展向被呼叫的參與者提供了用于該會話的共享 剪貼板的呈現(xiàn)。因此,在呼叫的參與者和被呼叫的參與者的客戶機計算系統(tǒng)上 創(chuàng)建的共享剪貼板將一個概念的視圖提供至一個空間上,該視圖即是被創(chuàng)建的用于該會話的單個共享剪貼板。相反,如果在框406中客戶機協(xié)作應用程序確定所請求的會話沒有被成功地建立,則客戶機協(xié)作應用程序不創(chuàng)建用于該會話的共享剪貼板。本領域的技術人員將意識到,對于此處公開的這個和其它各過程和各方 法,各過程和方法中執(zhí)行的功能可以按不同的順序來實現(xiàn)。此外,所概述的步 驟只是示例性的,并且這些步驟中的某一些可以是任選的、以更少的步驟組成、 或擴大到額外的步驟。圖5是根據(jù)某些實施例的示出將對象放置到共享剪貼板上的流程圖。在框 502中,用于會話的共享剪貼板檢測該會話中的參與者將對象放置到共享剪貼 板上的嘗試。作為示例,該會話中的參與者可以試圖通過執(zhí)行例如剪切、復制、 或拖放操作將一對象放置到其客戶機計算系統(tǒng)上的共享剪貼板的可視呈現(xiàn)上。 在框504中,共享剪貼板執(zhí)行對該對象的訪問控制檢査。在某些實施例中,由于被共享,共享剪貼板知道會話中的參與者的身份。 知道了會話中的參與者的身份,共享剪貼板能夠?qū)υ搶ο筮M行訪問控制檢查以 確保會話中的所有參與者都具有訪問該對象的權限。例如,對象本身可以攜帶 限制該對象的當前持有者共享該對象(即,將該對象放置到共享剪貼板上)的 數(shù)字權限,或者該對象可以攜帶例如任務或用戶的許可或?qū)⑵渑c該許可相關 聯(lián)。共享剪貼板檢查與該對象相關聯(lián)的數(shù)字權限和/或許可以在允許將該對象放置到共享剪貼板之前確保會話中的所有參與者都具有訪問該對象的權限。在某些實施例中,除了共享剪貼板僅僅被該共享剪貼板所屬的特定會話中 的參與者共享外,不存在其它與共享剪貼板相關聯(lián)的許可。在這些實施例中, 共享剪貼板不執(zhí)行對該對象的訪問控制檢査,并且該會話中的任何參與者可以 將對象放置于共享剪貼板上(例如,剪切、復制或拖動)或者從共享剪貼板處 檢索該對象(例如,粘貼或拖動)。在某些實施例中,共享剪貼板選擇性地執(zhí)行訪問控制檢查。例如,某些對 象可能知道如何基于用戶身份選擇性地向用戶顯示它們。此時,共享剪貼板對 這些對象可以不執(zhí)行訪問控制檢查,但是對那些不知道如何基于用戶身份選擇性地向用戶顯示它們的對象進行訪問控制檢查。在框506中,共享剪貼板檢査來確定對該對象的訪問控制檢查是否通過。 如果訪問控制檢查沒有通過,則共享剪貼板不允許對象被放置到共享剪貼板上,并且在框514中報告該錯誤。例如,共享剪貼板可以顯示包含通知對該對象的失敗的訪問控制檢查的錯誤消息的窗口 。否則,如果在框506中共享剪貼板確定該訪問控制檢查通過,則在框508 中,共享剪貼板執(zhí)行對該對象的安全威脅檢查。在某些實施例中,共享剪貼板 可以通過調(diào)用例如客戶機計算系統(tǒng)上的病毒檢査軟件組件對該對象進行安全 威脅存在檢查來對諸如(作為示例)病毒、蠕蟲、木馬、或其它危險特征等安全威脅進行檢查。在框510中,共享剪貼板檢查來確定對該對象的安全威脅檢査是否通過。 如果安全威脅檢査沒有通過,則共享剪貼板不允許該對象被放置到共享剪貼板 上,并且在框514中報告該錯誤。例如,共享剪貼板可以顯示包含通知對該對 象的失敗的安全威脅檢查的錯誤消息的窗口。否則,如果在框510中共享剪貼 板確定安全威脅檢査通過,則在框512中,共享剪貼板允許該對象被放置到共 享剪貼板上。圖6是根據(jù)某些實施例的示出了將對象從共享剪貼板推送到客戶機計算系 統(tǒng)的流程圖。在框602中, 一對象被放置到用于會話的共享剪貼板上。作為示 例,會話中的參與者可以已將對象放置到他或她的客戶機計算系統(tǒng)上的共享剪 貼板的可視呈現(xiàn)上。在框604中,共享剪貼板將當前所選擇的對象推送到會話 中的每個參與者的客戶機計算系統(tǒng)。此處,當前所選擇的對象可以是參與者在框602中放置到共享剪貼板上的對象。在框606中,被推送的對象出現(xiàn)在每個 參與者的客戶機計算系統(tǒng)處的共享剪貼板的可視呈現(xiàn)中。在某些實施例中,當會話中的參與者將對象放置到共享剪貼板上時,表示 該對象的圖像出現(xiàn)在會話中的參與者的客戶機計算系統(tǒng)上的共享剪貼板的可 視呈現(xiàn)上,并且該對象的副本被寫入(即,主動推送)到該會話中的其他各參 與者的客戶機計算系統(tǒng)。在某些實施例中,當會話中的參與者將對象放置到共享剪貼板上時,表示 該對象的圖像可以出現(xiàn)(即被動拉取)在會話中的參與者的客戶機計算機系統(tǒng) t的共享剪貼板的可視呈現(xiàn)上,但是該對象的副本沒有寫入到客戶機計算系統(tǒng)中。例如,該可視呈現(xiàn)可以是到放置在共享剪貼板上的對象的鏈接。隨后,當 會話中的參與者從共享剪貼板的可視呈現(xiàn)中檢索對象時,客戶機計算系統(tǒng)上的 協(xié)作應用程序可以使用該鏈接來從對象的存儲位置(例如,將該對象放置到共 享剪貼板上的參與者的客戶機計算系統(tǒng))處下載或檢索該對象的副本。在這些實施例中,如果將該對象放置到共享剪貼板上的參與者離開會話, 則該對象可以被主動推送到會話中的各參與者的客戶機計算系統(tǒng)。在某些實施 例中,該對象可以被寫入到一個可以被會話中的其他參與者訪問的存儲位置。 在某些實施例中,如果將該對象放置到共享剪貼板上的參與者離開會話,則該 對象可以用會話中的各參與者的客戶機計算系統(tǒng)上的共享剪貼板的可視呈現(xiàn) 上的"墓碑"來表示。該墓碑指示該對象對該會話中的各參與者不再可用。在某些實施例中,當會話中的參與者將對象放置到共享剪貼板上時,該對 象可以基于對象的大小被主動推送或是被提供用于隨后的被動拉取操作。例 如,小的對象(例如小于IOK字節(jié)的對象)可以被主動地推送到會話中的各參 與者的客戶機計算系統(tǒng)。相反,如果該對象比較大,則表示該對象的圖像可以 出現(xiàn)在該會話中的各參與者的客戶機計算系統(tǒng)上的共享剪貼板的可視呈現(xiàn)上, 但是該對象的副本不被寫入這些客戶機計算系統(tǒng)中。圖7是根據(jù)某些實施例的示出臨時高速緩存共享剪貼板的流程圖。在框 702中,在客戶機計算系統(tǒng)上執(zhí)行的客戶機協(xié)作應用程序檢測會話的結(jié)束。在 框704中,客戶機協(xié)作應用程序檢查來確定用于當前正結(jié)束的會話的共享剪貼 板的臨時存檔是否被允許。如果允許共享剪貼板的臨時存檔,則在框706中,客戶機協(xié)作應用程序?qū)⒂糜跁挼墓蚕砑糍N板臨時存檔到例如客戶機計算系 統(tǒng)上的適當存儲設備上。例如,如果會話中的所有參與者在其控制其私密性的 簡介中允許對共享剪貼板的臨時存檔這一特性,則可以允許對共享剪貼板的臨 時存檔。此處,客戶機協(xié)作應用程序可查詢會話中的參與者的簡介來確定是否 所有參與者都允許共享剪貼板的臨時存檔。在某些實施例中,客戶機計算機系統(tǒng)上的共享剪貼板或其它合適的進程會檢查并臨時存檔用于該會話的共享剪貼板。盡管用對結(jié)構性特征和/或方法性動作專用的語言描述了該主題,但應該理 解,所附權利要求中定義的主題并不必然局限于以上所描述的具體特征或動 作。相反,上述的具體特征和動作是作為實現(xiàn)權利要求的示例性形式而公開的。
權利要求
1.一種在協(xié)作系統(tǒng)中用于共享數(shù)據(jù)的方法,所述方法包括檢測多個參與者之間的會話的建立,所述多個參與者中的每一個都處于一客戶機系統(tǒng)處;以及當檢測到所述會話的建立之后,創(chuàng)建用于所述會話的共享剪貼板,所述共享剪貼板可用來包含零個、一個或多個數(shù)據(jù)項;以及向所述會話中的所述多個參與者的每一個提供對所述共享剪貼板的內(nèi)容的訪問。
2. 如權利要求1所述的方法,其特征在于,所述方法還包括向所述會話中 的所述多個參與者中的每一個在該參與者的客戶機系統(tǒng)上提供所述共享剪貼 板的內(nèi)容的可視呈現(xiàn)。
3. 如權利要求2所述的方法,其特征在于,所述會話中的所述多個參與者 中的每一個通過與該參與者的客戶機系統(tǒng)上的所述共享剪貼板的可視呈現(xiàn)交 互來與所述共享剪貼板交互。
4. 如權利要求2所述的方法,其特征在于,所述會話中的所述多個參與者 中的每一個可以通過將一數(shù)據(jù)項放置到該參與者的客戶機系統(tǒng)上的所述共享 剪貼板的可視呈現(xiàn)上來將所述數(shù)據(jù)項放置到所述共享剪貼板上。
5. 如權利要求2所述的方法,其特征在于,所述會話中的所述多個參與者 中的每一個可以通過檢索該參與者的客戶機系統(tǒng)上的所述共享剪貼板的可視 呈現(xiàn)中的數(shù)據(jù)項來檢索所述共享剪貼板上的所述數(shù)據(jù)項的副本。
6. 如權利要求1所述的方法,其特征在于,對所述共享剪貼板上的數(shù)據(jù)項 進行訪問權限的檢査來確保所述會話中的所述多個參與者中的每一個都具有對所述數(shù)據(jù)項的權限。
7. 如權利要求1所述的方法,其特征在于,放置于所述共享剪貼板上的數(shù) 據(jù)項具有與其相關聯(lián)的元數(shù)據(jù),所述元數(shù)據(jù)與所述會話相關聯(lián)。
8. 如權利要求1所述的方法,其特征在于,放置于所述共享剪貼板上的數(shù)據(jù)項具有與其相關聯(lián)的元數(shù)據(jù),所述元數(shù)據(jù)與所述數(shù)據(jù)項所來源于的客戶機系 統(tǒng)上的數(shù)據(jù)項相關聯(lián)。
9. 如權利要求1所述的方法,其特征在于,所述共享剪貼板上的數(shù)據(jù)項在 被放置到所述共享剪貼板之前被進行安全威脅存在的檢查。
10. 如權利要求l所述的方法,其特征在于,所述方法還包括 在所述會話中的所述多個參與者中的任何一個處,檢測所述會話的結(jié)束;以及在檢測到所述會話的結(jié)束后,將所述客戶機系統(tǒng)上的所述共享剪貼板 臨時高速緩存一預定量的時間,其中所述參與者被提供在所述預定量的時 間內(nèi)對被高速緩存的共享剪貼板的訪問。
11. 一種包括用于通過一種方法來提供共享剪貼板的協(xié)作應用程序的指令 的計算機可讀介質(zhì),所述方法包括檢測在客戶機計算系統(tǒng)上執(zhí)行的所述協(xié)作應用程序己與至少一個其他參 與者建立會話;以及當檢測到所述協(xié)作應用程序已建立所述會話后,在所述客戶機計算系統(tǒng)上 創(chuàng)建用于所述會話的共享剪貼板,其中所述共享剪貼板可用于包含由所述會話 中的參與者中的任一個放置的零個、 一個、或多個對象,并且其中所述共享剪 貼板上的對象對于所述會話中的參與者中的任一個可用。
12. 如權利要求11所述的計算機可讀介質(zhì),其特征在于,所述方法還包括檢測在所述客戶機計算系統(tǒng)上執(zhí)行的所述協(xié)作應用程序已與至少一個其 他參與者建立第二會話;以及在檢測到所述協(xié)作應用程序已建立所述第二會話后,在所述客戶機計算系 統(tǒng)上創(chuàng)建用于所述第二會話的第二共享剪貼板,其中所述第二共享剪貼板可用 于包含由所述第二會話中的參與者中的任一個放置的零個、 一個、或多個對象, 并且其中所述第二共享剪貼板中的對象對于所述第二會話中的參與者中的任 一個可用。
13. 如權利要求11所述的計算機可讀介質(zhì),其特征在于,所述共享剪貼板 提供剪貼板存在信息。
14. 如權利要求ll所述的計算機可讀介質(zhì),其特征在于,所述方法還包括 檢測一對象被放置到所述共享剪貼板上;以及在檢測到所述對象被放置到所述共享剪貼板上后,向所述會話中的其他參 與者發(fā)送所述對象被放置到所述共享剪貼板上的通知。
15. 如權利要求14所述的計算機可讀介質(zhì),其特征在于,發(fā)送所述通知包 括發(fā)送與用于放置到接收的參與者的共享剪貼板上的所述對象相關聯(lián)的數(shù)據(jù)。
16. 如權利要求14所述的計算機可讀介質(zhì),其特征在于,發(fā)送所述通知包括發(fā)送到與用于放置到該接收的參與者的共享剪貼板上的所述對象相關聯(lián)的 數(shù)據(jù)的鏈接。
17. 如權利要求11所述的計算機可讀介質(zhì),其特征在于,包含在所述共享 剪貼板上的每個對象具有與其相關聯(lián)的、對所述對象的擁有者的指示。
18. —種或多種共同包含用于多個參與者之間的會話的共享剪貼板的計算 機存儲器,所述共享剪貼板包括可被所述會話中的所述多個參與者中的每一個 可訪問的至少一個對象,使得向所述會話中的所述多個參與者的每一個可視地呈現(xiàn)所述共享剪貼板的內(nèi)容。
19. 如權利要求18所述的計算機存儲器,其特征在于,所述共享剪貼板被維護在所述會話中的所述多個參與者中的每一個處。
20. 如權利要求18所述的計算機存儲器,其特征在于,所述共享剪貼板被維護在中央服務器上。
全文摘要
提供用于向會話中的參加者提供共享剪貼板的技術。該共享剪貼板對與其相關聯(lián)的會話是特定的,即該共享剪貼板不會從一個會話“溢出”到另一個會話。當建立了兩個或更多參與者之間的會話時,共享剪貼板變得對該會話中的參加者可用。該共享剪貼板方便了會話中的參與者之間的數(shù)據(jù)共享。在會話期間,為會話中的每個參與者提供對共享剪貼板(包括其內(nèi)容)的訪問。當一參與者加入或被添加到會話時,還向添加的參與者提供對共享剪貼板及其內(nèi)容的訪問。
文檔編號G06F17/00GK101278281SQ200680036299
公開日2008年10月1日 申請日期2006年10月3日 優(yōu)先權日2005年10月3日
發(fā)明者G·S·保爾, P·W·哈弗斯托克 申請人:微軟公司