(57)【要約】  共有クリップボードを会話の参加者に提供する技術が提供される。共有クリップボードは、共有クリップボードがある会話から別の会話に「流出」しないという点で、それが関連付けられている会話に固有である。２人以上の参加者間で会話が確立されると、会話の参加者は、共有クリップボードを使用できるようになる。共有クリップボードは、会話の参加者間でのデータの共有を容易にする。会話中、会話の各参加者に、そのコンテンツを含めて、共有クリップボードへのアクセスが提供される。参加者が会話に参加すると、または会話に追加されると、追加された参加者にも、共有クリップボードおよびそのコンテンツへのアクセスが提供される。
2009510648.tif 000002
【特許請求の範囲】
【請求項１】
コラボレーションシステムにおいてデータを共有するための方法であって、
それぞれクライアントシステムにいる複数の参加者間の会話の確立を検出するステップと、
前記会話の前記確立を検出した後、
ゼロ、１つまたは複数のデータの項目を含むように動作可能である、前記会話用の共有クリップボードを作成するステップと、
前記会話の前記複数の参加者のそれぞれに、前記共有クリップボードのコンテンツへのアクセスを提供するステップと
を含むことを特徴とする方法。
【請求項２】
前記会話の前記複数の参加者のそれぞれに、前記参加者のクライアントシステム上の前記共有クリップボードの前記コンテンツの視覚レンダリングを提供するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記会話の前記複数の参加者のそれぞれは、前記参加者のクライアントシステム上の前記共有クリップボードの前記視覚レンダリングと対話することによって前記共有クリップボードと対話することを特徴とする請求項２に記載の方法。
【請求項４】
前記会話の前記複数の参加者のそれぞれは、前記参加者のクライアントシステム上の前記共有クリップボードの前記視覚レンダリングにデータの項目を配置することによって前記共有クリップボード上に前記データの項目を配置することができることを特徴とする請求項２に記載の方法。
【請求項５】
前記会話の前記複数の参加者のそれぞれは、前記参加者のクライアントシステム上の前記共有クリップボードの前記視覚レンダリングからデータの項目を取り出すことによって前記共有クリップボード上の前記データの項目のコピーを取り出すことができることを特徴とする請求項２に記載の方法。
【請求項６】
前記共有クリップボード上のデータの項目は、前記会話の前記複数の参加者のそれぞれが前記データの項目に対する権利を有することを確実にするためにアクセス権についてチェックされることを特徴とする請求項１に記載の方法。
【請求項７】
前記共有クリップボード上に配置されたデータの項目に、前記会話に関連付けられている前記メタデータが関連付けられていることを特徴とする請求項１に記載の方法。
【請求項８】
前記共有クリップボード上に配置されたデータの項目に、前記データの項目の元の前記クライアントシステム上のデータ項目と関連付けられている前記メタデータが関連付けられていることを特徴とする請求項１に記載の方法。
【請求項９】
前記共有クリップボード上のデータの項目は、前記共有クリップボード上に配置される前に、セキュリティ脅威の存在についてチェックされることを特徴とする請求項１に記載の方法。
【請求項１０】
前記会話の前記複数の参加者の任意の１人において、
前記会話の終了を検出するステップと、
前記会話の終了を検出した後、所定の時間の間、前記クライアントシステム上の前記共有クリップボードを一時的にキャッシュに入れるステップであって、前記参加者に、前記所定の時間の間、前記キャッシュに入れられた共有クリップボードへのアクセスが提供されるステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１１】
クライアントコンピューティングシステム上で実行されるコラボレーションアプリケーションが少なくとも１人の他の参加者との会話を確立したことを検出するステップと、
前記コラボレーションアプリケーションが前記会話を確立したことを検出した後、前記クライアントコンピューティングシステムにおいて、前記会話用の共有クリップボードを作成するステップであって、前記共有クリップボードは、前記会話の任意の前記参加者によって配置されたゼロ、１つまたは複数のオブジェクトを含むように動作可能であり、さらに、前記会話の任意の前記参加者は、前記共有クリップボード上の前記オブジェクトを使用できるステップと
を含む方法によって共有クリップボードを提供する旨のコラボレーションアプリケーションの命令を含むことを特徴とするコンピュータ可読媒体。
【請求項１２】
前記クライアントコンピューティングシステム上で実行される前記コラボレーションアプリケーションが少なくとも１人の他の参加者との第２の会話を確立したことを検出するステップと、
前記コラボレーションアプリケーションが前記第２の会話を確立したことを検出した後、前記クライアントコンピューティングシステムにおいて、前記第２の会話用の第２の共有クリップボードを作成するステップであって、前記第２の共有クリップボードは、前記第２の会話の任意の前記参加者によって配置されたゼロ、１つまたは複数のオブジェクトを含むように動作可能であり、さらに、前記第２の会話の任意の前記参加者は、前記第２の共有クリップボードの前記オブジェクトを使用できるステップと
をさらに含むことを特徴とする請求項１１に記載のコンピュータ可読媒体。
【請求項１３】
前記共有クリップボードは、クリップボードプレゼンス情報を提供することを特徴とする請求項１１に記載のコンピュータ可読媒体。
【請求項１４】
オブジェクトが前記共有クリップボードに配置されたことを検出するステップと、
前記オブジェクトが前記共有クリップボードに配置されたことを検出した後、前記会話の前記他の参加者に、前記共有クリップボード上の前記オブジェクトの配置の通知を送信するステップと
をさらに含むことを特徴とする請求項１１に記載のコンピュータ可読媒体。
【請求項１５】
前記通知を送信するステップは、前記受信側参加者の共有クリップボードに配置する前記オブジェクトに関連付けられている前記データを送信するステップを含むことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記通知を送信するステップは、前記受信側参加者の共有クリップボードに配置する前記オブジェクトに関連付けられている前記データへのリンクを送信するステップを含むことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１７】
前記共有クリップボード上に含まれる各オブジェクトに、前記オブジェクトの所有者の指標が関連付けられていることを特徴とする請求項１１に記載のコンピュータ可読媒体。
【請求項１８】
複数の参加者間の会話用の共有クリップボードを集合的に含む１つまたは複数のコンピュータメモリであって、前記共有クリップボードは、前記会話の前記複数の参加者のそれぞれによってアクセス可能な少なくとも１つのオブジェクトを含み、
したがって前記共有クリップボードの前記コンテンツは、前記会話の前記複数の参加者のそれぞれに視覚レンダリングされる
ことを特徴とするコンピュータメモリ。
【請求項１９】
前記共有クリップボードは、前記会話の前記複数の参加者のそれぞれで維持されることを特徴とする請求項１８に記載のコンピュータメモリ。
【請求項２０】
前記共有クリップボードは、中央サーバで維持されることを特徴とする請求項１８に記載のコンピュータメモリ。
【発明の詳細な説明】
【背景技術】
【０００１】
コラボレーションアプリケーション（Ｃｏｌｌａｂｏｒａｔｉｏｎ  ａｐｐｌｉｃａｔｉｏｎ）によって、様々な場所にいる参加者は、共同会議を確立し、それに参加することができる。参加者は、会議中に情報を提示し、交換することが多い。一般に、会議の提示側参加者は、提示側参加者と同じ場所にいる他の参加者に見えるように、ビデオまたはスライドのプロジェクタまたはソフトウェアを使用して、画面上に情報を提示する。しかし、他の場所にいる参加者には、一般に、プレゼンテーションの紙のコピーが提供される。
【０００２】
コンピュータネットワーキングの出現によって、様々な場所にいる参加者が、会議中に互いに通信することができるようになった。例えば、様々な場所にいる会議の参加者は、ラップトップコンピュータやハンドヘルド装置など、各自のコンピューティング装置を使用してネットワーク接続を確立したり、各自のコンピューティング装置を使用して会議中に情報を共有したりするために、各自のコンピュータ装置を使用することができる。
【０００３】
参加者は互いに接続することはできるが、情報を共有するプロセスは、それほど容易ではない。一般に、情報の項目を共有することを望んでいる参加者は、ファイル転送アプリケーションを使用して、別の参加者に情報を送信する。共有側参加者は、情報を複数の参加者と共有したい場合、一般に、情報を受信することになっている参加者に宛てられた電子メールメッセージに情報を添付し、宛先の参加者に電子メールメッセージを送信する。会議前に情報を参加者に送信することはできるが、多くの場合、会議中に情報を送信する必要性が生じ、この場合、宛先の参加者は、会議中のいつかに、送信された情報または電子メールメッセージおよび添付された情報を受信し、同じく会議中に共有情報を取り出す必要が生じる。したがって、会議中の情報の共有は、参加者の注意散漫の原因となる。さらに、会議中の会議の参加者の中での情報の共有は、難しく煩わしい。
【発明の開示】
【課題を解決するための手段】
【０００４】
共有クリップボードを会話の参加者に提供する技術が提供される。共有クリップボードは、共有クリップボードがある会話から別の会話に「流出」しないという点で、それが関連付けられている会話に固有である。２人以上の参加者間で会話が確立されると、会話の参加者は、共有クリップボードを使用できるようになる。共有クリップボードは、会話の参加者間でのデータの共有を容易にする。会話中、会話の各参加者に、そのコンテンツを含めて、共有クリップボードへのアクセスが提供される。参加者が会話に参加すると、または会話に追加されると、追加された参加者にも、共有クリップボードおよびそのコンテンツへのアクセスが提供される。
【０００５】
「課題を解決するための手段」は、「発明を実施するための最良の形態」でさらに後述される概念の選択を簡単な形で紹介するために提供されている。この「課題を解決するための手段」は、クレームに記載された主題の鍵となる特徴、または極めて重要な特徴を識別するためのものではなく、クレームに記載された主題の範囲を画定する手助けとして使用されるものでもない。
【発明を実施するための最良の形態】
【０００６】
共有クリップボードを会話の参加者に提供する様々な技術が提供される。共有クリップボードは、共有クリップボードがある会話から別の会話に「流出」しないという点で、それが関連付けられている会話に固有である。一例として、２人以上の参加者間でのインスタントメッセージ、公衆交換電話網（「ｐｓｔｎ」）の電話、Ｗｅｂまたはオンライン会議、音声／ビデオ会議、文書の共有、および他の形式の会議などの会話が確立されると、会話の参加者は、共有クリップボードを使用できるようになる。会話中、会話の各参加者に、そのコンテンツを含めて、共有クリップボードへのアクセスが提供される。参加者が会話に参加すると、または会話に追加されると、追加された参加者にも、共有クリップボードおよびそのコンテンツへのアクセスが提供される。会話の参加者が会話を抜けると、この参加者には、もはや共有クリップボードへのアクセスは提供されない。会話が終了すると、会話の参加者には、もはや共有クリップボードへのアクセスは提供されないようにすることができる。
【０００７】
一部の実施形態では、会話を確立または作成すると、クライアントコラボレーションアプリケーションは、会話の参加者が使用するための共有クリップボードを作成する。クライアントコンピューティングシステム上で実行されており、会話に参加する参加者によって使用されるクライアントコラボレーションアプリケーションは、その参加者に、共有クリップボードの概念ビューを提供することができる。概念上、会話の各参加者がアクセスを共有する会話のための共有クリップボードが１つある。例えば、クライアントコラボレーションアプリケーションは、共有クリップボードの視覚レンダリングを、クライアントコンピューティングシステム上の既存のクリップボードの区切られたまたは別個の拡張として提供することができる。別の例では、クライアントコラボレーションアプリケーションは、共有クリップボードのレンダリングを、例えばクライアントコラボレーションアプリケーションのユーザインターフェイスに関連付けられている別個のクリップボードとして提供することができる。クライアントコンピューティングシステム上の共有クリップボードのレンダリングを、視覚化することができる。
【０００８】
会話の参加者は、各自のクライアントコンピューティングシステム上の共有クリップボードの視覚レンダリングと対話することによって、共有クリップボードのコンテンツにアクセスすることができる。例えば、会話の参加者は、クライアントコンピューティングシステム上の共有クリップボードの視覚レンダリング上にオブジェクト（情報の項目など）を配置することによって、共有クリップボード上にオブジェクトを配置することができる。次いで、会話の参加者は、クライアントコンピューティングシステム上の共有クリップボードの視覚レンダリングからの取り出し操作をオブジェクトに対して行うことによって、共有クリップボード上のオブジェクトのコピーを取り出すことができる。一部の実施形態では、共有クリップボードは、それ自体を、クライアントコンピューティングシステム上のシステムクリップボードなどの１つまたは複数の他のクリップボードと連係させることができる。この例では、参加者は、既存のシステムクリップボードコマンドの貼り付け（ＣＴＲＬ−Ｃなど）および貼り付け（ＣＴＲＬ−Ｖ）を使用して、共有クリップボードのコンテンツにアクセスすることができる。例えば、会話の１人の参加者は、ＣＴＲＬ−Ｃを使用して、アプリケーションの共有を介してすべての参加者と共有しているスプレッドシートからあるセル範囲をコピーし、他の参加者は、ＣＴＲＬ−Ｖを使用して、その範囲を様々なローカルのスプレッドシートファイルに貼り付けることができる。このシナリオでは、共有クリップボードの視覚表現を表示する必要がない。
【０００９】
このように、会話の参加者によって使用される各クライアントコンピューティングシステム上の共有クリップボードの集まりは、会話用の分散型共有クリップボードを構成する、または作り上げる。
【００１０】
一部の実施形態では、クライアントコラボレーションアプリケーションは、（共有クリップボードがクライアントコンピューティングシステム上に視覚レンダリングされるかどうかに関わらず）共有クリップボードを定期的に「リフレッシュ」して、共有クリップボード上のコンテンツの正確なビューを提供することができる。例えば、会話の１人の参加者のクライアントコラボレーションアプリケーションは、会話の他の参加者のクライアントコンピューティングシステム上の共有クリップボードのレンダリングに関する情報について、会話の他の参加者のクライアントコラボレーションアプリケーションに定期的に問い合わせを行うことができる。
【００１１】
一部の実施形態では、オブジェクトは、共有クリップボード上に配置される前にアクセス権についてチェックされる。例えば、オブジェクトには、オブジェクトが共有されないように制限するデジタル著作権または他の権限が含まれている、または関連付けられている可能性がある。こうした例では、会話の参加者の１人にそのオブジェクトへの権利がない場合、そのオブジェクトを共有クリップボードに配置することができない。
【００１２】
一部の実施形態では、クライアントコンピューティングシステムでの会話の終了後、会話の共有クリップボード上のコンテンツを、クライアントコンピューティングシステムにおいて一時的にキャッシュに入れることができる。例えば、所定の時間の間、コンテンツを一時的にキャッシュに入れることができる。コンテンツが一時的にキャッシュに入れられている間、参加者は、例えば、どの会話中に何が共有されたかを思い出したり、参加者がある会話で得たがなぜだか失ったオブジェクトを呼び戻したりするために、共有クリップボードの「アーカイブ」にアクセスすることができる。
【００１３】
一部の実施形態では、クライアントコンピューティングシステム上の共有クリップボードは、共有ボードに誰が何をしているかを共有クリップボードが（視覚レンダリングされるかどうかに関わらず）示すという点で、「クリップボードプレゼンス（ｃｌｉｐｂｏａｒｄ  ｐｒｅｓｅｎｃｅ）」情報を提供する。クリップボードプレゼンスは、会話の他の参加者が共有クリップボードとどのように対話しているかのビューを提供する。例えば、会話の参加者は、会話の別の参加者が共有クリップボードからオブジェクトをコピーしたときを認識することができる。
【００１４】
以下の説明では、共有クリップボードを提供する技術の様々な実施形態が、「ドラッグアンドドロップ」、「切り取り」、「コピー」、「貼り付け」などよく知られている様々な操作、および任意のＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムなどよく知られている様々な任意のオペレーティングシステムを実行するコンピューティングシステム上でサポートされているシステムクリップボードへのその影響との関連で記載される。共有クリップボードを提供する技術の様々な実施形態は、上述の操作およびシステムクリップボードへのその影響との関連で記載されるが、共有クリップボードを提供する技術は、上述の操作およびシステムクリップボードとのみ連携することに限定されないことを理解されたい。共有クリップボードを提供する技術は、上述したものとは異なるオブジェクトに対する操作をサポートすることができ、かつ／またはシステムクリップボードをサポートしないコンピューティングシステムに容易に実装できることを当業者であれば理解されよう。例えば、共有クリップボード上での操作は、クライアントコンピューティングシステム上の共有クリップボードの視覚レンダリングに対してドラッグアンドドロップ操作を行うことによって提供され得る（例えば、会話の参加者は、オブジェクトを選択し、そのオブジェクトを共有クリップボードの視覚レンダリング上にドラッグして、共有クリップボードに配置することができる、会話の参加者は、共有クリップボードの視覚レンダリング上のオブジェクトを選択し、そのオブジェクトを、共有クリップボードの視覚レンダリングから所望のアプリケーション、オブジェクトなどにドラッグして、共有クリップボードからオブジェクトを取り出すことができる）。
【００１５】
図１は、分散型クリップボードが動作し得る環境を示す高レベルブロック図である。示されているように、環境は、それぞれ共有クリップボード１０４ａに結合されているクライアントコンピューティングシステム１０２ａ〜ｂから成る会話１０、およびそれぞれ共有クリップボード１０４ｂに結合されているクライアントコンピューティングシステム１０２ｂ〜ｅから成る会話１２を含む。クライアントコンピューティングシステム１０２ａ〜ｅは、それぞれネットワーク１０６に結合されている。示されている環境は、適した環境の一例にすぎず、記載した技術の使用または機能の範囲に関する限定を示唆するものではない。例えば、会話の数、および示した会話のそれぞれにおけるクライアントコンピューティングシステムの数は、簡潔にするために提供されているにすぎず、会話数、および会話のそれぞれにおけるクライアントコンピューティングシステムの組み合わせ数が異なることもあることを当業者であれば理解されよう。本明細書で使用する場合、「接続された」、「結合された」、またはその任意の変形の用語は、２つ以上の要素間の直接または間接の任意の接続または結合を意味し、要素間の接続の結合は、物理的、論理的またはその組み合わせとすることができる。
【００１６】
大まかに言えば、各クライアントコンピューティングシステムによって、人間のユーザなどのユーザは、１つまたは複数の会話に参加することができる。例えば、１人の人物は、そのクライアントコンピューティングシステム上で実行されているクライアントコラボレーションアプリケーションプログラムを使用して、１つまたは複数の会話に参加することができる。図１に示されているように、それぞれのクライアントコンピューティングシステム１０２ａおよび１０２ｂにいる２人の人物は、会話１０に参加しており、それぞれのクライアントコンピューティングシステム１０２ｂ〜ｅにいる４人の人物は、会話２０に参加している。
【００１７】
会話が始まると、共有クリップボードが作成され、会話に参加している人々が使用できるようになる。例えば、共有クリップボード１０４ａは、クライアントコンピューティングシステム１０２ａおよび１０２ｂにおいて会話１０に参加している人物が使用できるようになる。同様に、共有クリップボード１０４ｂは、クライアントコンピューティングシステム１０２ｂ〜ｅにおいて会話２０に参加している人物が使用できるようになる。
【００１８】
会話用の共有クリップボードは、会話に参加している人物のクライアントコンピューティングシステムのそれぞれにレンダリングされる。例えば、図１に示されるように、共有クリップボード１０４ａは、クライアントコンピューティングシステム１０２ａ上に共有クリップボードレンダリング１０８ａとして視覚レンダリングされ、クライアントコンピューティングシステム１０２ｂ上に共有クリップボードレンダリング１０８ｂとして視覚レンダリングされる。同様に、共有クリップボード１０４ｂは、クライアントコンピューティングシステム１０２ｂ上に共有クリップボードレンダリング１１０ｂとして、クライアントコンピューティングシステム１０２ｃ上に共有クリップボードレンダリング１１０ｃとして、クライアントコンピューティングシステム１０２ｄ上に共有クリップボードレンダリング１１０ｄとして、クライアントコンピューティングシステム１０２ｅ上に共有クリップボードレンダリング１１０ｅとして視覚レンダリングされる。クライアントコンピューティングシステム上への共有クリップボードのレンダリングは、視覚化（例えば視覚レンダリング）する、または画面上のスペースを節約するために「最小化する」（レンダリングされるが視覚レンダリングではない）ことができる。一部の実施形態では、共有クリップボードを、ＭＩＣＲＯＳＯＦＴ  ＯＦＦＩＣＥクリップボードなど、その人物（すなわち会話の参加者）の既存のクリップボード、またはクライアントコンピューティングシステム上で実行されているアプリケーションによって提供される他の適したクリップボードの拡張として、クライアントコンピューティングシステム上に描くことができる。これらの実施形態では、その人物は、共有クリップボードの視覚レンダリングを、各自のクリップボードの拡張エリアと考えるが、拡張エリアは、概念上、１つのスペース、すなわち会話の共有クリップボード上のビューである。ある人物が複数の会話に参加している（図１のクライアントコンピューティングシステム１０２ｂの人物）例では、各会話の共有クリップボードが、その人物のクライアントコンピューティングシステム上に描かれる。
【００１９】
会話中、会話の参加者が切り取るまたはコピーするものはすべて、会話用の共有クリップボード上に配置される。会話中に貼り付ける参加者は、共有クリップボードから貼り付ける。一般的に知られているように、またほとんどの文書編集アプリケーションおよびほとんどのオペレーティングシステムによって一般的にサポートされているように、切り取り操作は、ドキュメントまたはオブジェクトの選択部分を、削除しながら、一時バッファ（クリップボードなど）に保存し、コピー操作は、ドキュメントまたはオブジェクトはそのままにして、ドキュメントまたはオブジェクトの選択部分を一時バッファに保存し、貼り付け操作は、ドキュメント、ファイル、フォルダ、他のオブジェクトなどにおける現在の位置にクリップボードからデータを挿入する。参加者が会話を抜けるか、会話が終了するとき、その会話用の共有クリップボードが無くなる。すなわち、その会話用の共有クリップボードは、参加者のクライアントコンピューティングシステム上にもはやレンダリングされない。参加者が既存の会話に参加するとき、会話用の共有クリップボードは、加わる参加者のクライアントコンピューティングシステム上にレンダリングされ、したがって、まるでその参加者が最初からその会話にいたかのように、参加者は、共有クリップボードからの貼り付け、切り取り、共有クリップボードへのコピーを行うことができる。例えば、加わる参加者のクライアントコラボレーションアプリケーションは、会話に加わるために、加わる参加者のクライアントコラボレーションアプリケーションがコラボレーションセッションを確立したクライアントコラボレーションアプリケーションから共有クリップボードのコピーを取り出すことができる。
【００２０】
一部の実施形態では、会話の参加者は、会話に参加している間、そのクライアントコンピューティングシステム上で切り取り、コピー、貼り付け、およびドラッグアンドドロップ操作を行うことによって会話用の共有クリップボードと対話する。会話の参加者が切り取り操作を行うとき、切り取り操作は、現在選択されているオブジェクトを取得し、会話用の共有クリップボードの参加者のレンダリングに配置する。次いで、共有クリップボードの参加者のレンダリングによって、現在選択されているオブジェクトを、会話の各参加者のシステムクリップボードにプッシュすることができる。また、共有クリップボードの参加者のレンダリングによって、現在選択されているオブジェクトを、共有クリップボードの会話の各参加者のレンダリングにプッシュすることもできる。会話が終了すると、最後にオブジェクトを共有クリップボードに切り取った会話の参加者のシステムクリップボードは、切り取り操作が破壊的な操作であるため、元に戻されない可能性があるが、会話の他のすべての参加者のシステムクリップボードは、会話が始まったときの状態に戻され得る。
【００２１】
会話の参加者がコピー操作を行うとき、コピー操作は、現在選択されているオブジェクトを取得し、共有クリップボードの参加者のレンダリングに配置する。次いで、共有クリップボードの参加者のレンダリングは、現在選択されているオブジェクトを、会話の各参加者のシステムクリップボードにプッシュすることができる。また、共有クリップボードの参加者のレンダリングによって、現在選択されているオブジェクトを、共有クリップボードの会話の各参加者のレンダリングにプッシュすることもできる。会話が終了すると、会話の参加者のシステムクリップボードは、会話が始まったときの状態に戻され得る。
【００２２】
会話の参加者が貼り付け操作を行うとき、貼り付け操作は、オブジェクトのコピーを、参加者のシステムクリップボードの参加者によって指定された現在の位置に挿入する。「リンク貼り付け」操作は、意味のある結果をレンダリングしない場合がある。会話の他の参加者のシステムは、会話が行われることによって一時的に接続されているにすぎないため、また、会話が終了した後共有クリップボードが持続していない場合があるため、オブジェクト自体の代わりにオブジェクトにリンクを貼ることは、意味のあるリンクアドレスをもたらさない場合がある。しかし、この操作は、システムが意味のある方法でリンクを解決しようとしない場合に許可され得る。
【００２３】
共有クリップボードが視覚化（すなわち視覚レンダリング）されると、任意のオブジェクトを共有クリップボードにドラッグすることができる。会話の参加者は、例えば任意のタイプのデータベースまたはファイル全体から単一のスプレッドシートセルになど、共有クリップボードに何でもドラッグアンドドロップすることができる。同様に、会話の任意の参加者は、オブジェクトを共有クリップボードからドラッグして、任意のアプリケーションまたは他の適した場所にドロップすることができる。
【００２４】
１人の人物は、一度に複数の会話に参加することができる。例えば、図１のクライアントコンピューティングシステム１０２ｂにいる人物は、会話１０および会話２０の両方に参加している。各会話には、それ自体の共有クリップボードがある。参加者が見る（および切り取り、貼り付けなどを介してアクセス可能な）参加者のクリップボードの拡張エリアは、参加者が現在アクティブである、または参加している会話に該当する。一部の実施形態では、参加者の現在アクティブな会話は、入力（テキストチャット、音声など）がどこに向かっているか、会話を表すウィンドウのどれがアクティブであるか、明確なユーザアクション（例えば参加者がドラッグする場所によって、またはコピーする前に会話ウィンドウまたは共有クリップボードウィンドウを選択することによって、どの共有クリップボードを使用すべきかを参加者がシステムに伝えるなど）、またはシステムが参加者に問い合わせる（「どの会話から貼り付けたいか」など）、によって決定され得る。
【００２５】
一部の実施形態では、クライアントコンピューティングシステム上の第１の会話が開始すると、クライアントコンピューティングシステム上の第１の会話用の共有クリップボード（すなわち共有クリップボードのレンダリング）は、システムクリップボードのコンテンツを保存する。会話がクライアントコンピューティングシステム上で終了すると、システムクリップボードが元に戻される。共有クリップボードが無くなるか、消去されると、共有クリップボードによってシステムクリップボードにプッシュされた任意のオブジェクトも消去される。クライアントコンピューティングシステム上で複数の同時会話が行われるとき、各会話の共有クリップボードは、作成されるべき第１の共有クリップボードがシステムクリップボードを保存し、最後にクライアントコンピューティングシステム上で終了した会話がシステムクリップボードを元に戻すことを確実にするよう協力する必要があり得る。
【００２６】
再度図１を参照すると、大まかに言えば、ネットワークは、例えば添付されたクライアントコンピューティングシステム間の電子コンテンツの転送を容易にする通信リンクである。一実施形態では、ネットワークは、インターネットを含む。ネットワークは、ローカルエリアネットワーク、広域ネットワーク、ポイントツーポイントダイアルアップ接続など、１つまたは複数の他のタイプのネットワークから成っていてもよいことを理解されたい。一部の実施形態では、ネットワークは、１つまたは複数のサーバコンピューティングシステムを含み得る。大まかに言えば、サーバコンピューティングシステムは、各クライアントコンピューティングシステムにおける参加者間の会話の確立を容易にし得る。例えば、発呼側参加者のクライアントコンピューティングシステムは、アプリケーション共有セッションなど、着呼側参加者とのリアルタイムセッションを確立する旨の要求を適したサーバコンピューティングシステムに送信し、サーバコンピューティングシステムは、要求を着呼側参加者のクライアントコンピューティングシステムに転送することができる。要求されたセッションが確立されると、発呼側参加者のクライアントおよび着呼側参加者のクライアントは、サーバコンピューティングシステムを介して、または直接互いに通信（ピアツーピア）することができる。
【００２７】
クライアントコンピューティングシステムは、１つまたは複数の中央処理装置、メモリ、入力装置（キーボードやポインティング装置など）、出力装置（ディスプレイ装置など）、および記憶装置（ディスクドライブなど）を含み得る。メモリおよび記憶装置は、本明細書に記載した、共有クリップボードを会話の参加に提供する様々な技術を実施する命令を含み得るコンピュータ可読媒体である。さらに、データ構造およびメッセージ構造は、通信リンク上の信号など、データ送信媒体を介して格納または送信することができる。インターネット、ローカルエリアネットワーク、広域ネットワーク、ポイントツーポイントダイアルアップ接続、携帯電話ネットワークなど、様々な通信リンクを使用することができる。コンピューティングシステムは、様々な構成要素を有する様々な構成のものとすることができることを当業者であれば理解されよう。
【００２８】
記載された技術の実施形態は、パーソナルコンピュータ、サーバコンピュータ、コンピューティング装置、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースシステム、プログラム可能家庭用電化製品、デジタルカメラ、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置のいずれかを含む分散コンピューティング環境など、様々な動作環境に実装することができる。コンピューティングシステムは、携帯電話、ＰＤＡ、スマートフォン、パーソナルコンピュータ、プログラム可能家庭用電化製品、デジタルカメラ、キオスク、ＡＴＭなどとすることができる。
【００２９】
会話の参加者に共有クリップボードを提供する様々な技術は、１つまたは複数のコンピュータ、または他の装置によって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することができる。一般にプログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。一般に、プログラムモジュールの機能は、必要に応じて様々な環境で結合され、または分散させることができる。
【００３０】
図２は、一部の実施形態によるクリップボードプレゼンスを示す共有クリップボードのレンダリングを示すブロック図である。示されているように、会話に参加し、会話に関連付けられている共有クリップボード２０４と対話している５人の参加者２０２ａ〜ｅが示されている。特に、クリップボードプレゼンスは、会話の参加者が共有クリップボードとどのように対話しているかを示し、または表示する。クリップボードプレゼンスによって、会話の各参加者は、会話の他の参加者のそれぞれが共有クリップボードに何をしているか（共有クリップボードから置く、または貼り付けるなど）を認識することができる。例えば、図１に示されているように、参加者２０２ｂおよび２０２ｅは、共有クリップボードと対話していないものとして示され、参加者２０２ａは、共有クリップボード上にオブジェクト２０６を置いたものとして示され、参加者２０２ｃは、共有クリップボードからオブジェクト２０８のコピーを取得またはドラッグしたものとして示され、参加者２０２ｄは、共有クリップボードからオブジェクト２１０のコピーを取得し、ドラッグしたものとして示されている。クリップボードプレゼンス情報は、多種多様な方法で示すことができることを当業者であれば理解されよう。さらに、クリップボードプレゼンスは、クリップボードレンダリングと共に、またはクリップボードレンダリングの一部として示すことができるが、クリップボードプレゼンス情報は、クリップボードのレンダリングに関係なく示すことができることも当業者であれば理解されよう。
【００３１】
図３は、一部の実施形態によるオブジェクトに関連付けられているメタデータを示すブロック図である。示されているように、オブジェクト３０２は、オブジェクトメタデータ３０４および会話メタデータ３０６と関連付けられている。共有クリップボード上に配置された各オブジェクトは、オブジェクトの元のファイルのメタデータ、およびオブジェクトがクリップボードに配置されていた間の会話のメタデータを取得するか、持っている。オブジェクトメタデータは、一例として、オブジェクトの元のファイルのタイプ、ファイルの作成者、ファイルが作成された日時、オブジェクトが共有クリップボードに配置された日時などの情報を含み得る。会話メタデータは、一例として、会話の参加者、会話の参加者の場所、会話のセッションのタイプ、会話の時間などの情報を含み得る。
【００３２】
図４は、一部の実施形態による共有クリップボードの作成を示すフロー図である。一例として、発呼側参加者は、クライアントコラボレーションアプリケーションをそのクライアントコンピューティングシステム上で実行し、例えばリモートクライアントコンピューティングシステムの着呼側参加者との会話を確立するよう要求することができる。ブロック４０２で、クライアントコラボレーションアプリケーションは、着呼側参加者との会話を確立する旨の要求を受信する。ブロック４０４で、クライアントコラボレーションアプリケーションは、着呼側参加者との会話を要求する。ブロック４０６で、クライアントコラボレーションアプリケーションは、着呼側参加者との要求された会話が正常に確立されるかどうかを決定する。クライアントコラボレーションアプリケーションが、要求された会話が正常に確立されたことを決定すると、ブロック４０８で、クライアントコラボレーションアプリケーションは、会話用の共有クリップボードを作成する。一部の実施形態で、クライアントコラボレーションアプリケーションは、共有クリップボードを、クライアントコンピューティングシステム上の既存のクリップボードの拡張として作成し、既存のクリップボードの拡張は、発呼側参加者に、会話用の共有クリップボードのレンダリングを提供する。同様に、着呼側参加者のクライアントコンピューティング装置で、そのクライアントコンピューティング装置上で実行されているクライアントコラボレーションアプリケーションは、例えばそのクライアントコンピューティングシステム上の既存のクリップボードの拡張として会話用の共有クリップボードを作成し、既存のクリップボードの拡張は、着呼側参加者に、会話用の共有クリップボードのレンダリングを提供する。したがって、発呼側参加者のクライアントコンピューティングシステム上で作成された共有クリップボード、および着呼側参加者は、会話用に作成された単一の共有クリップボードである１つのスペース上の概念上のビューを提供する。逆に、ブロック４０６で、クライアントコラボレーションアプリケーションが、要求された会話が正常に確立されなかったと決定すると、クライアントコラボレーションアプリケーションは、会話用の共有クリップボードを作成しない。
【００３３】
本明細書に開示されたこのプロセスおよび方法、および他のプロセスおよび方法について、これらのプロセスおよび方法で実行される機能は、異なる順序で実施することができることを当業者は理解されたい。さらに、概略を述べたステップは例にすぎず、ステップの一部は、オプションとすることができる、より少ないステップと結合することができる、または追加のステップに拡張することができる。
【００３４】
図５は、一部の実施形態による共有クリップボードへのオブジェクトの配置を示すフロー図である。ブロック５０２で、会話用の共有クリップボードは、共有クリップボード上にオブジェクトを配置しようとする会話の参加者による試行を検出する。一例として、会話の参加者は、例えば切り取り、コピー、またはドラッグアンドドロップ操作を行うことによって、そのコンピューティングシステム上の共有クリップボードの視覚レンダリングにオブジェクトを配置することを試みることができる。ブロック５０４で、共有クリップボードは、オブジェクトに対してアクセス制御チェックを行う。
【００３５】
一部の実施形態では、共有クリップボードは、共有されることによって、会話の参加者の識別がわかる。会話の参加者の識別がわかると、共有クリップボードは、会話のすべての参加者がオブジェクトにアクセスする権利を有することを確実にするために、オブジェクトに対してアクセス制御チェックを行うことができる。例えば、オブジェクト自体は、オブジェクトの現在の所有者がオブジェクトを共有する（すなわち共有クリップボードにオブジェクトを配置する）ことを制限するデジタル著作権を保持していてもよく、または、オブジェクトが例えば役割またはユーザによる権限を保持していたり、オブジェクトにその権限が関連付けられていたりしてもよい。共有クリップボードは、オブジェクトに関連付けられているデジタル著作権および／または権限をチェックして、会話のすべての参加者が、オブジェクトを共有クリップボードに配置できるようになる前に、オブジェクトへのアクセス権を有することを確実にする。
【００３６】
一部の実施形態では、共有クリップボードが属する特定の会話の参加者によってのみ共有クリップボードが共有されるのを除いて、共有クリップボードに関連付けられている権限がない。これらの実施形態では、共有クリップボードは、オブジェクトに対するアクセス制御チェックを行わず、会話の任意の参加者が、共有クリップボードにオブジェクトを配置する（切り取り、コピー、ドラッグなど）、または共有クリップボードからオブジェクトを取り出す（貼り付け、ドラッグなど）ことができる。
【００３７】
一部の実施形態では、共有クリップボードは、アクセス制御チェックを選択的に行う。例えば、一部のオブジェクトは、ユーザ識別に基づいて、オブジェクト自体をユーザに選択的に表示する方法を知っている場合がある。ここでは、共有クリップボードは、これらのオブジェクトに対してアクセス制御チェックを行うのではなく、ユーザ識別に基づいて、オブジェクト自体をユーザに選択的に表示する方法を知らないオブジェクトに対するアクセス制御チェックを行うようにすることができる。
【００３８】
ブロック５０６で、共有クリップボードは、オブジェクトに対するアクセス制御チェックがパスしたかどうかを決定するためにチェックを行う。アクセス制御チェックがパスしなかった場合、共有クリップボードは、オブジェクトを共有クリップボードに配置させず、ブロック５１４で、エラーを報告する。例えば、共有クリップボードは、オブジェクトの不合格のアクセス制御チェックを知らせるエラーメッセージを含むウィンドウを表示することができる。
【００３９】
そうでない場合、ブロック５０６で、共有クリップボードは、アクセス制御チェックがパスしたと決定し、ブロック５０８で、共有クリップボードは、オブジェクトに対してセキュリティ脅威チェックを行う。一部の実施形態では、共有クリップボードは、例えばクライアントコンピューティングシステム上のウィルスチェックソフトウェア構成要素を呼び出して、セキュリティ脅威が存在するかどうかについてオブジェクトをチェックすることによって、一例としてウィルス、ワーム、トロイの木馬、または他のセキュリティ破壊を招来する特徴（ｃｏｍｐｒｏｍｉｓｉｎｇ  ｆｅａｔｕｒｅ）など、セキュリティ脅威に関するチェックを行うことができる。
【００４０】
ブロック５１０で、共有クリップボードは、オブジェクトのセキュリティ脅威チェックがパスしたかどうかを決定するためにチェックを行う。セキュリティ脅威チェックがパスしなかった場合、共有クリップボードは、オブジェクトを共有クリップボードに配置させず、ブロック５１４で、エラーを報告する。例えば、共有クリップボードは、オブジェクトの不合格のセキュリティ脅威チェックを知らせるエラーメッセージを含むウィンドウを表示することができる。そうでない場合、ブロック５１０で、共有クリップボードがセキュリティ脅威チェックがパスしたことを決定した場合、ブロック５１２で、共有クリップボードは、オブジェクトを共有クリップボードに配置させる。
【００４１】
図６は、一部の実施形態による共有クリップボードからクライアントコンピューティングシステムへのオブジェクトのプッシュを示すフロー図である。ブロック６０２で、オブジェクトは、会話用の共有クリップボードに配置される。一例として、会話の参加者は、オブジェクトをそのクライアントコンピューティングシステム上の共有クリップボードの視覚レンダリングに配置した場合がある。ブロック６０４で、共有クリップボードは、現在選択されているオブジェクトを、会話の各参加者のクライアントコンピューティングシステムにプッシュする。ここで、現在選択されているオブジェクトは、ブロック６０２において参加者が共有クリップボードに配置したオブジェクトとすることができる。ブロック６０６で、プッシュされたオブジェクトは、各参加者のクライアントコンピューティングシステムの共有クリップボードの視覚レンダリングに表示される。
【００４２】
一部の実施形態では、会話の参加者がオブジェクトを共有クリップボードに配置すると、オブジェクトを表す画像が会話の参加者のクライアントコンピューティングシステム上の共有クリップボードの視覚レンダリングに表示され、オブジェクトのコピーが、会話の他の参加者のクライアントコンピューティングシステムに書き出される（すなわち先行プッシュ）。
【００４３】
一部の実施形態では、会話の参加者がオブジェクトを共有クリップボードに配置すると、オブジェクトを表す画像は、会話の参加者のクライアントコンピューティングシステム上の共有クリップボードの視覚レンダリングに表示され得る（すなわち遅延プル）が、オブジェクトのコピーは、クライアントコンピューティングシステムに書き出されない。例えば、視覚レンダリングは、共有クリップボードに配置されたオブジェクトへのリンクとすることができる。その後、会話の参加者は、共有クリップボードの視覚レンダリングからオブジェクトを取り出すと、クライアントコンピューティングシステム上のコラボレーションアプリケーションは、リンクを使用して、オブジェクトの記憶位置（例えば共有クライアントにオブジェクトを配置した参加者のクライアントコンピューティングシステムなど）からオブジェクトのコピーをダウンロードする、または取り出すことができる。
【００４４】
これらの実施形態では、オブジェクトを共有クリップボード上に配置した参加者がその会話を抜ける場合、そのオブジェクトを会話の参加者のクライアントコンピューティングシステムに先行プッシュすることができる。一部の実施形態では、オブジェクトを、会話の他の参加者によってアクセス可能な記憶位置に書き出すことができる。一部の実施形態では、オブジェクトを共有クリップボード上に配置した参加者がその会話を抜ける場合、そのオブジェクトを、会話の参加者のクライアントコンピューティングシステム上の共有クリップボードのレンダリング上に「墓石」によって表すことができる。墓石は、会話の参加者がもはやオブジェクトを使用することができないことを示す。
【００４５】
一部の実施形態では、会話の参加者がオブジェクトを共有クリップボードに配置したとき、オブジェクトのサイズに基づいて、オブジェクトを先行プッシュするか提供して、その後の遅延プル操作を行うことができる。例えば、小さいサイズのオブジェクト、例えば１０ｋバイト未満のオブジェクトは、会話の参加者のクライアントコンピューティングシステムに先行プッシュすることができる。逆に、オブジェクトが大きい場合、オブジェクトを表す画像は、会話の参加者のクライアントコンピューティングシステム上の共有クリップボードの視覚レンダリング上に表示されるが、オブジェクトのコピーは、これらのクライアントコンピューティングシステムに書き出されない。
【００４６】
図７は、一部の実施形態による共有クリップボードの一時的なキャッシュを示すフロー図である。ブロック７０２で、クライアントコンピューティングシステム上で実行されるクライアントコラボレーションアプリケーションは、会話の終了を検出する。ブロック７０４で、クライアントコラボレーションアプリケーションは、現在終了しつつある会話用の共有クリップボードの一時的なアーカーブが許可されるかどうかを決定するためにチェックを行う。共有クリップボードの一時的なアーカイブが許可された場合、ブロック７０６で、クライアントコラボレーションアプリケーションは、例えば、クライアントコンピューティングシステム上の適したメモリ装置上に会話用の共有クリップボードを一時的にアーカイブする。例えば、会話のすべての参加者がそのプライバシを制御するプロファイルにおいてこの特徴を許可した場合、共有クリップボードの一時的なアーカイブが許可され得る。ここで、クライアントコラボレーションアプリケーションは、会話の参加者のプロファイルに対する問い合わせを行って、すべての参加者が共有クリップボードの一時的なアーカイブを許容したかどうかを決定することができる。一部の実施形態では、共有クリップボードまたはクライアントコンピューティングシステム上の他の適したプロセスが会話用の共有クリップボードについてチェックを行い、一時的にアーカイブすることができる。
【００４７】
本主題は、構造的な特徴および／または方法動作に固有の言葉で記載されているが、添付の特許請求の範囲に定義された主題は、上述した固有の特徴および動作に必ずしも限定されるわけではないことを理解されたい。むしろ、上述した固有の特徴および動作は、特許請求の範囲を実施する形式例として開示される。
【図面の簡単な説明】
【００４８】
【図１】分散型クリップボードが動作し得る環境を示す高レベルブロック図である。
【図２】一部の実施形態によるクリップボードプレゼンスを示す共有クリップボードのレンダリングを示すブロック図である。
【図３】一部の実施形態によるオブジェクトに関連付けられているメタデータを示すブロック図である。
【図４】一部の実施形態による共有クリップボードの作成を示すフロー図である。
【図５】一部の実施形態による共有クリップボードへのオブジェクトの配置を示すフロー図である。
【図６】一部の実施形態による共有クリップボードからクライアントコンピューティングシステムへのオブジェクトのプッシュを示すフロー図である。
【図７】一部の実施形態による共有クリップボードの一時的なキャッシュを示すフロー図である。
【図１】
2009510648.tif 000003
【図２】
2009510648.tif 000004
【図３】
2009510648.tif 000005
【図４】
2009510648.tif 000006
【図５】
2009510648.tif 000007
【図６】
2009510648.tif 000008
【図７】
2009510648.tif 000009
【国際調査報告】
2009510648.tif 000010
2009510648.tif 000011