(57)【要約】共有デジタルデータの複数のユーザの編集を協調するシステムおよび方法。協調デバイスは複数の独立して動作されるユーザコンピュータから共有デジタルデータを編集するコマンドを受信してもよい。協調デバイスは各ユーザコンピュータからのコマンドの２以上が相互に排他的であるか、冗長であるか、またはそうでなければ相反するかを判定してもよい。協調デバイスは複数のコマンドのうちの１つをグローバルコマンドキューに組み込んでもよく、他のものを無効にしてもよい。協調デバイスはグローバルコマンドを全ユーザコンピュータに送信して、それに同じ共有デジタルデータを具体化するために局所的に実行されてもよい。
2013522804.tif 000002
【特許請求の範囲】
【請求項１】
複数のユーザコンピュータによって共有デジタルデータの編集を協調する方法であって、前記方法は、
協調デバイスにおいて、
複数の独立して動作されるユーザコンピュータから共有デジタルデータを編集するコマンドを受信すること、
それぞれのユーザコンピュータからの前記コマンドのうち２以上が相互に排他的であることを判定すること、
前記複数のコマンドのうちの１つのコマンドをグローバルコマンドキューに組み込んで、他のコマンドを無効にすること、
前記グローバルコマンドを全ユーザコンピュータに伝送して、前記同じ共有デジタルデータを実施するために局所的に実行させること、を備える、方法。
【請求項２】
前記ユーザコンピュータのうちの１つから受信されるコマンドは、前記協調デバイスを前記他のユーザコンピュータからのコマンドを制限するようにトリガする、請求項１の方法。
【請求項３】
前記協調デバイスにおいて、前記トリガコマンドと同じ前記共有デジタルデータの同じ領域の編集に関係する前記他のコンピュータからのコマンドを無効にすることを含む、請求項２の方法。
【請求項４】
前記協調デバイスにおいて、前記共有デジタルデータの一部もしくは全体を編集するための一時的な排他的許可を、前記複数のコンピュータのうちの１台に付与することを含む、請求項１の方法。
【請求項５】
前記共有デジタルデータの前記一部もしくは全体を編集する排他的許可を有する前記コンピュータは、所定の期間内にドキュメントの前記一部もしくは全体を編集するコマンドを伝送する前記ユーザコンピュータのうちの最初のユーザコンピュータである、請求項４の方法。
【請求項６】
同じもしくは重複デジタルデータの編集に関係する場合、コマンドは相互に排他的であると判定される、請求項１の方法。
【請求項７】
同時にもしくは所定の時間間隔内に伝送または受信される場合、コマンドは相互に排他的であると判定される、請求項１の方法。
【請求項８】
前記複数のユーザコンピュータのそれぞれに局所的に格納されている前記共有デジタルデータの各バージョンは、前記グローバルコマンドを前記共有デジタルデータに実施する前に、独立して修正してもよい、請求項１の方法。
【請求項９】
全ユーザコンピュータは、前記共有デジタルデータの制御に対し等しい優先度を有する、請求項１の方法。
【請求項１０】
前記ユーザコンピュータは、前記共有デジタルデータの制御の優先度が異なってもよい、請求項１の方法。
【請求項１１】
前記編集することは、前記共有デジタルデータのコンテンツを修正することを含む、請求項１の方法。
【請求項１２】
前記編集することは、前記共有デジタルデータの表示を修正することを含む、請求項１の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルデータを共有するためのシステムおよび方法に関係し、具体的には、ネットワーク上の複数のコンピュータによって当該データの編集を協調するためのシステムおよび方法に関係する。
【背景技術】
【０００２】
インターネットは世界中のコンピュータユーザが電子的に対話し通信するのを可能にしている。例えば、ユーザは電子メールのメッセージを送受信し、ウェブページを閲覧し、音楽、ソフトウェア、映像をダウンロードし、多数の他の活動を行うことができる。
【０００３】
映像データはインターネット経由の送信に特に人気がある。ＹｏｕＴｕｂｅ、ＭｅｔａＣａｆｅおよび同様な他のものなどの人気の映像共有ウェブサイトは、ユーザが作成したコンテンツおよび他の映像コンテンツをアップロードしてユーザがインターネット経由で視聴者と共有するのを可能にする。
【０００４】
映像コンテンツ共有ウェブサイトは、当該映像コンテンツをますます多くの量受信して表示するようになっている。しかし、現在、遠隔地の別のユーザと一緒に映像コンテンツを視聴したいユーザが完璧な共有経験を手軽にすることはできない。例えば、あるユーザがあるフレームを調べるために映像を停止して、「巻き戻し」（ストリームを逆戻りする）または「早送り」（ストリームの先に進む）したい場合、そのユーザの映像コンテンツはもはや他のユーザのものとは同期しないことがある。
【０００５】
例えば、ビジネス、教育または他の目的のための様々な種類のグループ活動のために、ネットワーク上でデータを共有するための他の考えられる実施態様は、動画、テキストもしくはマルチメディアドキュメント、１つ以上の画像、プレゼンテーション、またはあらゆる他のデジタルデータなどのデータを編集する２以上の関係者を含んでもよい。
【０００６】
映像データの同期は、例えば特許文献１に記述されるように、物理的に同様な場所にある２台のデバイスの場合は難しくはない。この出願では、別の映像デバイスに映像データを送信して１台の映像デバイスが同期を制御する。この種の共有はインターネットについては提案されているが、映像データは事実上サーバから第１コンピュータに、さらに第１コンピュータから第２コンピュータに送信されるため、明らかに非効率的である。
【０００７】
特許文献２は、ホストコンピュータを複数のクライアントデバイスに接続する別の種類の同期システムを記述している。しかし、クライアントデバイスは専用映像プレーヤとして記述されているが、ホストコンピュータはアップル・コンピュータ・インク社（ＡＰＰＬＥ  ＣＯＭＰＵＴＥＲ  Ｉｎｃ．）のｉＴｕｎｅｓ（商標登録）ソフトウェアなどのオペレーティングメディアソフトウェアとして記述されている。このようなシステムは、例えば、ユーザにプライベートネットワークでメディアを放送させる家庭内では適しているであろう。これは遠隔ユーザがインターネットなどのネットワーク経由で映像などのデジタルコンテンツを共有し、その編集を同期させるという問題は解決しない。
【０００８】
現在利用できる解決策は、１台のコンピュータから共有データを放送するユーザが、複数の接続コンピュータで共有データの表示を制御することを可能にする。しかし、複数のコンピュータで共有データを制御し編集するために複数のユーザからの同時コマンドを協調することは、本発明による以外では、現在利用できる解決策を使用しては不可能である。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許出願公開公報第２００７／０１３６７６９号
【特許文献２】国際特許出願公開公報第２００７／０７９３３４号
【発明の概要】
【発明が解決しようとする課題】
【００１０】
同じかもしくは重複共有デジタルデータを編集または修正するために、電子ネットワーク上の複数のユーザコンピュータからのコマンドを協調するシステムおよび方法への満たされないニーズが存在し、これがあれば非常に有用であろう。
【００１１】
ネットワーク経由で複数のコンピュータ上の編集データの表示を制御および同期しながら、当該デジタルデータの共有および編集を可能にするシステムおよび方法への満たされないニーズも存在し、これがあれば非常に有用であろう。
【００１２】
電子ネットワーク上であるセッションのすべての参加者によってデジタルデータの編集上の制御を可能にするシステムおよび方法への満たされないニーズも存在し、これがあれば非常に有用であろう。
【００１３】
本発明は、ネットワーク経由で共有デジタルデータを制御するために、複数のユーザからの同時または干渉コマンドを協調するシステムおよび方法を提供することによって、背景技術の欠点を克服する。当該デジタルデータの非制限的な例には、映像、音声、テキストもしくはマルチメディアドキュメント、ゲーム、１以上の画像、またはプレゼンテーションを含んでもよい。
【課題を解決するための手段】
【００１４】
いくつかの実施形態によると、本発明は、コミュニティにデータコンテンツを共有させることのできるウェブサイトによって実施してもよい。
他の実施形態によると、本発明は、ピア・トゥー・ピアプロトコルを介してネットワーク上で通信するアプリケーションによって実施してもよい。
【００１５】
ウェブサイトとしてまたはピア・トゥー・ピアアプリケーションとして実施するかを問わず、アプリケーションはセッション中に操作してもよい。セッションのメンバーは複数の接続コンピュータ（例、ウェブサイトの実施態様ではウェブサイトに接続され、またはピア・トゥー・ピアの実施態様では他のコンピュータに接続される）であってもよい。各セッションはメンバーのうちの１人によって開始してもよい。例示のために、セッションのイニシエータを「イニシエータ」ということがある。イニシエータは他のメンバーにセッションに参加するよう勧誘することによって、セッションを始めてもよい。セッション中、メンバーはセッションに参加しても、またはセッションから離脱してもよい。セッションは、イニシエータがセッションを停止または離脱したときに終了するのが好ましい。
【００１６】
本発明の他の実施形態によると、セッションの各メンバーは、例えば、メモリ位置など、セッションの全メンバーがアクセスできる共有場所に、例えばユニフォームリソースロケータ（ＵＲＬ）もしくは他のアドレス情報を使用してコンテンツを置くことによって、またはユーザ自身のコンピュータに置かれているコンテンツを指し示すことによって、自身のデジタルコンテンツを共有してもよい。後者の場合、コンテンツはサーバにアップロードしてもよい。アップロードはユーザに透過的にするのが好ましい。
【００１７】
本発明のいくつかの実施形態によると、セッションイニシエータはセッションを制御してもよく、または代わりに、各ユーザが等しい制御を有してもよい。さらに別の実施形態では、各コンピュータはコンピュータの優先レベルに関連付けられている所定の制御レベルを有してもよい。セッションイニシエータはセッションの制御をセッションの１人以上のメンバーに委任してもよい。セッションの制御は、共有デジタルデータのアップロード、共有デジタルコンテンツの編集、共有映像コンテンツの再生、停止、休止、巻き戻しまたは早送りを含んでもよい。コンテンツがドキュメントまたはプレゼンテーションまたはフォトアルバムまたはあらゆる他のマルチページもしくはマルチレイヤードキュメントを含む場合、セッションの制御はドキュメントコンテンツの編集、またはレイヤーの特定のページもしくはレイヤーへの切り替え、例えば前進、逆戻りを含んでもよい。
【００１８】
本発明のいくつかの実施形態によると、コントローラのうちの１つがこれらのコマンドのうちの１つを行うときは必ず、例えばＨＴＴＰプロトコル（ウェブサイトの実施態様の場合）またはピア・トゥー・ピアプロトコル（ピア・トゥー・ピアの実施態様の場合）を使用して、コマンドをセッションの他の全メンバーに転送してもよい。コマンドは映像／音声／テキストコンテンツをセッションのメンバーの全コンピュータで同時にもしくは一様に変更させてもよい。これらのコマンドは単なる例としてあげられており、本発明のシステムおよび方法により他のコマンドも与えてもよいことが理解されるべきである。
【００１９】
本発明の他の実施形態によると、データコンテンツは１以上のコンテンツサービスデバイスに格納してもよい。現在再生されているコンテンツはコンテンツサービスデバイスからセッションに参加する全コンピュータに送信してもよい。コンテンツは、テキストエディタまたは映像もしくはメディアプレーヤなどのアプリケーションによって各コンピュータに表示してもよい。制御コマンドはセッションに参加するコンピュータのうちの１つのアプリケーションから、サーバなどの協調デバイスに送信してもよい。協調デバイスはまず他の制御コンピュータから保留中の相反するコマンドがあるかどうかを判定してもよく、なければ、サーバが検証されたコマンドを他のコンピュータの対応するアプリケーションに送信してもよい。
【００２０】
本発明の他の実施形態によると、複数のコンピュータが共有デジタルデータのコンテンツを編集するためにそれぞれのコマンドを入力する場合、協調デバイス、例えば、アプリケーション、コンピュータまたはサーバはこれらのコマンドを協調してもよい。各コマンドが共有デジタルデータの同じもしくは重複コンテンツを修正するために相反する、冗長なもしくは相互に排他的な編集または動作をトリガする場合、協調デバイスはコマンドのうちの１つを選択して実行してもよく、相反するもしくは干渉する編集または動作の実行を防止するために他のコマンドを無効にするかまたは削除してもよい。
【００２１】
本発明の他の実施形態によると、セッションの参加者は、ネットワーク上でチャット、映像／音声会議、ボイスオーバーインターネットプロトコル（ＩＰ）または他の通信を介してセッション中に通信してもよい。通信ネットワークはデジタルデータを共有するネットワークと同じでも、または異なっていてもよい。ある実施例では、デジタルデータを共有するネットワークはインターネットなどのコンピュータネットワークであってもよいが、通信ネットワークは電話網であってもよい。別の実施例では、両方のネットワークがインターネットであってもよい。
【００２２】
別途定義しない限り、本明細書で使用するすべての技術用語および科学用語は、本発明が属する技術分野の当業者が一般に理解するのと同じ意味を有する。本明細書で提供する材料、方法および実施例は単なる例示的なものであり、制限することを意図していない。
【００２３】
本発明の方法およびシステムの実施態様は、手動、自動もしくはその組み合わせで一定の選択されたタスクもしくはステージを実施または完了することを含んでもよい。さらに、本発明の方法およびシステムの好適な実施形態の実際の設備および機器に従い、選択された幾つかのステージはあらゆるファームウェアのあらゆるオペレーティングシステムのハードウェアもしくはソフトウェア、またはその組み合わせにより実施してもよい。例えば、ハードウェアとして、本発明の選択されたステージはチップまたは回路として実施してもよい。ソフトウェアとして、本発明の選択されたステージは、あらゆる適したオペレーティングシステムを使用するコンピュータによって実行される複数のソフトウェア命令として実施してもよい。いずれの場合においても、本発明の方法およびシステムの選択されたステージは、複数の命令を実行するためのコンピューティングプラットフォームなどのデータプロセッサによって実施するものとして記述されてもよい。
【００２４】
本発明は「コンピュータネットワーク」上の「コンピュータ」に関して説明するが、任意でデータプロセッサおよび／または１以上の命令を実行する能力を特徴とするあらゆるデバイスが、パーソナルコンピュータ（ＰＣ）、サーバ、ミニコンピュータ、携帯電話、スマートフォン、スマート携帯電話、パーソナル・データ・アシスタント（ＰＤＡ）、ポケットベル、テレビ（ＴＶ）デコーダ、ゲーム機、デジタルミュージックプレーヤ、現金自動預け払い機（ＡＴＭ）もしくは他の現金支払機、販売時点情報管理（ＰＯＳ）クレジットカード端末、または電子式現金登録機を含むが、それだけに限定されないコンピュータとして記述されてもよいことに留意するべきである。互いに通信する当該デバイスのうちの２以上、またはあらゆる他のコンピュータと通信するあらゆるコンピュータのうちの２以上が任意で「コンピュータネットワーク」を構成してもよい。
【００２５】
本発明をデジタルデータに関して説明するときは必ず、デジタルデータは音楽、スライドショー、ドキュメント、画像、映像データ、テキストデータおよびドキュメント、ゲーム、またはあらゆるマルチメディアデータを含んでもよいが、それだけに限定されないことに留意するべきである。
【００２６】
以下「オンライン」とは、公衆交換電話網（ＰＳＴＮ）、携帯電話またはその組み合わせを介したデータ伝送；ハイパーテキスト転送プロトコル（ＨＴＴＰ）またはマークアップ言語ドキュメントを使用もしくは経由した通信用のあらゆる他のプロトコルに従うウェブページ経由の情報交換；電子メール（ｅメール）、例えばＩＣＱ（商標登録）などのメッセージングサービス、およびあらゆる他の種類のメッセージングサービス経由のメッセージ交換；あらゆる種類のネットワーク上での映像データの伝送；上記定義したコンピュータデバイスを使用したあらゆる種類の通信；ならびに伝送用の電子媒体を組み込んだあらゆる他の種類の通信を含むが、それだけに限定されない電子通信媒体経由で行われる通信をいう。
【図面の簡単な説明】
【００２７】
【図１】本発明のある実施形態による複数の独立して動作されるコンピュータ上で共有デジタルデータを制御するシステムの模式図である。
【図２】本発明のある実施形態による図１のシステムによって動作されるデジタルデータ共有アプリケーションの模式図である。
【図３】本発明のある実施形態により映像データを共有するために使用される図１のシステムの実施例の模式図である。
【図４】本発明のある実施形態によるデジタルデータ共有ソフトウェアディスプレイの模式図である。
【図５】本発明のある実施形態による図４のソフトウェア共有アプリケーションディスプレイに表示される共有映像の実施例である。
【図６】本発明のある実施形態によるコマンド構造の例示的な図である。
【図７】本発明のある実施形態による複数の独立して動作されるコンピュータ上で共有デジタルデータを制御する方法のフローチャートである。
【発明を実施するための形態】
【００２８】
本発明は本明細書において、単なる例として、添付の図面を参照して説明する。ここで特に詳細な図面に関し、図示する明細は、例として、単に本発明の好適な実施形態を例示的に説明する目的で、本発明の原理および概念的な側面の最も有用で容易に理解される説明と考えられるものを提供するために提示していることを強調しておく。この点に関し、本発明の構造的な詳細を本発明の基本的な理解に要するよりもより詳しく示そうとするものではなく、図面と合わせて読まれる説明は本発明のいくつかの形態をどのように実施化できるかを当業者に明らかにする。
【００２９】
本発明の実施形態は、複数の独立して動作されるユーザコンピュータによって共有されるデジタルデータドキュメントの編集を協調するシステムおよび方法を提供する。協調は、リモートサーバまたは例えば優先度の最も高いか、もしくはイニシエータコンピュータなどの複数のユーザコンピュータのうちの１つなど、複数のコンピュータを動作可能に接続する協調デバイスで実行してもよい。協調デバイスは、例えばネットワークを介して複数のコンピュータに接続してもよく、パイプラインまたはファンネルとして機能し、コマンドの生成(influx)を併合し、キューに入れ、順序を付け、および優先付けて、全コンピュータによって共有される単一の一貫性のあるチェーンのコマンドを作成して、共有デジタルデータを一斉に修正してもよい。
【００３０】
いくつかの実施形態では、中央協調デバイスに伝送する前に、各接続コンピュータの各ローカルドキュメントを部分的に修正して修正を共有ドキュメントのグローバルバージョンで実施してもよい。例えば、ユーザはコンピュータ上で部分的に変更を行ってもよく、変更を個々に、もしくは２以上の変更のグループとしてまとめて協調デバイスに供給してもよい。各ユーザについて、それによって生成され、且つ協調デバイスでグローバルに実施される変更は残してもよく、拒絶される変更は、例えば自動的に、ユーザのコンピュータの共有デジタルデータのローカルバージョンで削除してもよい。いくつかの実施形態では、受け入れおよび／または拒絶されるコマンドのリストまたは示標を各ユーザコンピュータに送信してもよい。
【００３１】
協調デバイスはデジタルデータを共有する全コンピュータに単一の一貫性のあるグローバルチェーンのコマンドを伝送してもよい。さらに複数のコンピュータの各々がそれに格納またはストリームされるドキュメントのバージョンでローカルにグローバルチェーンのコマンドを実施してもよい。したがって、各接続コンピュータの各ドキュメントは、例えば、同じグローバルチェーンのコマンドによって、実質的に同じかつ同期して修正してもよい。
【００３２】
いくつかの実施形態では、全コンピュータに共有デジタルデータを制御する等しい優先度を与えてもよい。他の実施形態では、いくつかのコンピュータが他のものよりも多くの制御を有する優先度の階層があってもよい。例えば、協調デバイスが別々のコンピュータから同時にまたは所定の時間間隔内に相反する２つのコマンドを受信する場合、中央協調デバイスは相対的に高い優先度をもつコンピュータから受信するコマンドを実行してもよく、相対的に低い優先度をもつコンピュータから受信するコマンドを廃棄してもよい。
【００３３】
共有デジタルデータは、例えば、テキストドキュメント用のテキストエディタ、画像ドキュメント用のフォトエディタ、および／または映像ファイル用のメディアプレーヤなどの標準的な、もしくは特定目的の表示用ソフトウェアを使用して、各ユーザコンピュータに表示してもよい。共有デジタルデータは、インターネット、メディアもしくはデータサーバなどのデジタルデータプロバイダによって提供されてもよい。
【００３４】
本発明の他の実施形態により同期して任意で編集および表示してもよい他の種類の知覚またはデジタルデータは、画像データ、音楽もしくは他の音声データ、テキストファイルおよび同様な他のものを含んでもよいが、それだけに限定されない。画像データは任意で、オンラインフォトアルバムなど、例えば写真を含んでもよい。
【００３５】
本発明の原理および動作は、図面および添付の説明を参照するとよりよく理解できるであろう。以下の図は、単なる説明のために、複数のユーザコンピュータから共有デジタルデータの制御コマンドを協調することに関して、本発明のある実施形態を示しており、一切制限することを意図していないことに留意するべきである。
【００３６】
ここで図面を参照すると、図１は、本発明のある実施形態による複数の独立して動作されるコンピュータで共有デジタルデータを制御するシステムの模式図を示す。
システム１００は協調デバイス１１０と、複数のコンピュータ１４０および１５０と、デジタルデータサーバ１３０とを含んでもよく、そのすべてがインターネットなどのネットワーク１２０を介して接続されている。図１では単なる例示目的のために２台のコンピュータ１４０および１５０しか示していないが、本明細書で説明するシステムおよび方法はこれより多くのコンピュータの取り扱いができることが理解されるべきである。
【００３７】
ユーザコンピュータ１４０および１５０は、パーソナルコンピュータ、デスクトップコンピュータ、モバイルコンピュータ、ラップトップコンピュータおよびノートブック型コンピュータまたは、携帯電話、パーソナル・デジタル・アシスタント（ＰＤＡ）、映像ゲーム機等などのあらゆる他の適したデバイスであってもよく、有線もしくは無線接続またはモデムを含んでもよい。ユーザコンピュータ１４０および１５０は、ユーザから入力またはコマンドを受信するために（例、ポインティングデバイス、クリックホイールもしくはマウス、キー、タッチスクリーン、レコーダ／マイクロホン、または他の入力コンポーネントを介して）、それぞれ１以上の入力デバイス１４２および１５２を含んでもよい。ユーザコンピュータ１４０および１５０は、それぞれ１以上の出力デバイス１４４および１５４を含んで共有ドキュメントを各ユーザに表示してもよい。
【００３８】
デジタルデータサーバ１３０は、共有デジタルデータをホストできるコンピュータまたはコンピュータシステムを含んでもよい。共有デジタルデータはデジタルデータサーバ１３０に、例えば、ウェブページ、テキストドキュメントもしくはファイル、マルチメディアドキュメントもしくはファイル、画像、映像ファイルもしくは動画および／またはゲームの形態で格納してもよい。共有デジタルデータは、例えば、編集セッションの開始時に一度、各編集セッションごとに一度、または１以上のグローバルコマンドがそこで実施されるごとに編集セッションを通して繰り返し、各ユーザコンピュータ１４０および１５０に伝送してもよい。
【００３９】
協調デバイス１１０、デジタルデータサーバ１３０ならびにユーザコンピュータ１４０および１５０を接続するネットワーク１２０は、インターネットなどのあらゆるプライベートまたは公衆アクセス可能なネットワークであってもよい。ネットワーク１２０へのアクセスは、有線、地上無線、衛星または当技術分野で周知の他のシステムを経由してもよい。
【００４０】
協調デバイス１１０、デジタルデータサーバ１３０ならびにユーザコンピュータ１４０および１５０は、それぞれ１以上のコントローラもしくはプロセッサ１１６、１３６、１４６および１５６を含んで動作を実行させてもよく、それぞれ１以上のメモリユニット１１８、１３８、１４８および１５８を含んでプロセッサによって実行可能なデータおよび／または命令（例、ソフトウェア）を格納してもよい。プロセッサ１１６、１３６、１４６および／または１５６は、例えば、中央処理装置（ＣＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、マイクロプロセッサ、コントローラ、チップ、マイクロチップ、集積回路（ＩＣ）、またはあらゆる他の適した多目的もしくは特定用途向けプロセッサもしくはコントローラを含んでもよい。メモリユニット１１８、１３８、１４８および／または１５８は、例えば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、フラッシュメモリ、揮発性メモリ、不揮発性メモリ、キャッシュメモリ、バッファ、短期メモリユニット、長期メモリユニット、または他の適したメモリユニットもしくは記憶装置を含んでもよい。
【００４１】
共有デジタルデータは、コンピュータ１４０および１５０に局所的に、例えばそれぞれのメモリユニット１４８および１５８に格納してもよく、任意で、協調デバイス１１０またはデジタルデータサーバ１３０のそれぞれのメモリユニット１１８および１３８にリモートに格納してもよい。共有デジタルデータは、例えば、ウェブページ、テキストドキュメント、マルチメディアドキュメント、画像、動画および／またはゲームを含んでもよい。共有デジタルデータの各セットは、当技術分野で一般に周知のように、１以上のページからなるドキュメントまたはファイルであってもよい。共有デジタルデータはネットワーク１２０を介して協調デバイス１１０またはデジタルデータサーバ１３０によってコンピュータ１４０および１５０に供給されてもよく、デジタルデータサーバは、例えば、ワールドワイドウェブ（「ウェブ」）ホスト、ドキュメントもしくはマルチメディアサーバ、ゲームネットワークもしくはサーバ等を含んでもよい。あるいは、デジタルデータはコンピュータ１４０および１５０のうちの１台によって供給されて、ネットワーク１２０によるピア・トゥー・ピアプロトコル接続で他のコンピュータに伝送してもよい。
【００４２】
複数のコンピュータ１４０および１５０は、例えば各々がそれぞれのユーザによって制御される独立して動作可能なコンピュータであってもよい。コンピュータ１４０および１５０は共有デジタルデータを独立して修正してもよい。協調デバイス１１０は複数のコンピュータ１４０および１５０からコマンドを受信してもよく、受信した全コマンドをメモリユニット１１８に格納してもよい。
【００４３】
協調デバイス１１０は、複数のユーザコンピュータ１４０および１５０から受信するコマンドを協調して、同じまたは重複デジタルデータの共有編集を可能にしてもよい。協調デバイス１１０は、例えば、論理ソフトウェアを有するコンピューティングモジュール１１５を含んで、本明細書で開示する実施形態により、受信したコマンドのうちのどれを実行するか、どれを削除するか、および実行する順序を判定してもよい。協調デバイス１１０は実行するべきグローバルコマンドのセットを、例えば実行バッファ１１７に格納してもよい。グローバルコマンドのセットは接続されている全コンピュータ１４０および１５０に伝送してもよく、それに格納されている共有ドキュメントの全バージョンで局所的に実行してもよい。コンピューティングモジュール１１５は、協調デバイス１１０のプロセッサ、共有デジタルデータサーバ１３０のプロセッサ１３６、および／またはユーザコンピュータ１４０および１５０のプロセッサ１４６および／または１５６にそれぞれ統合してもよく、またはこれらとは個別にしてもよい。実行バッファ１１７はメモリユニット１１８に統合してもよく、またはこれとは個別にしてもよい。
【００４４】
いくつかの実施形態では、個別のコンピュータ１４０および１５０の２人以上のユーザは、それぞれのコマンドを入力して、同じまたは重複デジタルデータのコンテンツを、相反して、冗長に、または相互に排他的に編集してもよい。一実施例では、同じもしくは重複テキスト、画像またはマルチメディアドキュメントがコンピュータ１４０および１５０に表示される場合、コンピュータ１４０のユーザはある段落を削除するコマンドを選択してもよく、一方でコンピュータ１５０のユーザは同じ段落内のある文を修正するコマンドを選択してもよい。別の実施例では、複数のコンピュータ１４０および１５０で同期される映像が再生されている場合、コンピュータ１４０のユーザは早送りコマンドを選択してもよく、一方でコンピュータ１５０のユーザは巻き戻しコマンドを選択してもよい。コンピュータ１４０および１５０から共有デジタルデータを修正するためのそれぞれのコマンドは相互に排他的でもよく、協調デバイス１１０は、例えば、それぞれのコマンドのうちのどれを実行または無効にするか、コマンドを実行する順序を協調してもよい。
【００４５】
コンピューティングモジュール１１５は、例えば、メモリユニット１１８に格納されているコンピュータ１４０および１５０からのコマンドを受け入れてもよく、それらからのそれぞれのコマンドが相互に排他的である場合を判定してもよい。一実施例では、コンピュータ１４０および１５０からのコマンドは、同じもしくは重複ドキュメントのコンテンツ、例えば、あるテキストドキュメント内の同じ文字、語、文、段落、ページもしくはドキュメント全体、またはある画像ドキュメント内の同じ１以上の画素、複数の所定の画像サブ領域の１つ、象限、マルチレイヤードキュメントのレイヤー、画像オブジェクト、タグもしくはマーカー、ウィンドウ、マルチフレーム画像ストリームもしくは動画のフレーム等を修正するときに、相互に排他的であってもよい。別の実施例では、コンピュータ１４０および１５０からのコマンドは、コマンドが共有デジタルデータを、例えば、同じ映像データを早送りおよび巻き戻しするため、またはあるテキストもしくは画像ドキュメント内の同じコンテンツに異なるもしくは相反する修正をするためなど、相反するように修正する場合に相互に排他的であってもよい。別の実施例では、コンピュータ１４０および１５０からのコマンドは、コマンドが同時に、重複する時に、または所定の「ロックアウト」期間、ラグもしくは遅延内に、コンピュータ１４０および１５０によって伝送されるか、または協調デバイス１１０で受信される場合に相互に排他的であってもよい。
【００４６】
ある実施例では、一貫性のあるまたは相互に排他的ではないコンピュータ１４０および１５０からのそれぞれのコマンドを、協調デバイス１１０によって併合しおよびキューに入れ、さらに共有デジタルデータでグローバルに実行してもよい。それぞれのコマンドは、それが異なるか、もしくは重複しないコンテンツを編集する時、同じもしくは重複コンテンツを編集するが、テキスト修正およびフォーマット変更などの異なる種類の編集に関係する時、または実質的に異なるもしくは重複しない時、例えば所定の「ロックアウト」期間、ラグもしくは遅延が経過した後で、コンピュータ１４０および１５０によって伝送され、もしくは協調デバイス１１０で受信される時に、一貫性があるとしてもよい。モジュール１１５は、コンピュータ１４０および１５０からのそれぞれのコマンドが相互に排他的であるか、または反対に一貫性があるかを判定するために他の基準もしくはこれらの基準の組み合わせを使用してもよい。
【００４７】
いくつかの実施形態では、コンピュータ１４０および１５０からのそれぞれのコマンドに関連付けられているメタデータを分析して、モジュール１１５は、コマンドが相互に排他的であるか、または一貫性があるかを判定してもよい。あるいは、協調プロセッサ１１６は、モジュール１１５がコマンドを他のコマンドと比較して相反があるかどうかを判定するためにコマンドのコンテンツが十分に解読されるまで、各コマンドを処理してもよい。
【００４８】
一般に、協調サーバ１１０は各コマンドを、それがコンピュータ１４０および１５０から受信される順序で、順に処理してもよい。各編集は、同じドキュメント領域もしくは編集の種類に属する他のコマンドが共有ドキュメントで受け入れもしくは実行できない「ブラックアウト」もしくは「ロックアウト」期間をトリガしてもよい。ロックアウト期間は、例えば、コンピュータ１４０および１５０からのそれぞれのコマンドを分析してモジュール１１５が前もしくは後のコマンドが相互に排他的であるか、または一貫性があるかを判定するのにかかる大よその時間であってもよい。あるいは、ロックアウト期間は、全コンピュータ１４０および１５０が共有デジタルデータのそれぞれのバージョンでロックアウト期間をトリガしたグローバルコマンドを実行するのにかかる大よその時間であってもよい。ロックアウト期間中、同じドキュメントのサブ領域もしくは同じ編集の種類に属するコンピュータ１４０および１５０から受信されるコマンドを阻止、無効または廃棄してもよい。ある実施形態では、ブラックアウト期間をトリガしたコマンドを送信したユーザコンピュータは、ユーザが生成した変更がすでにそのユーザコンピュータのドキュメントのローカルバージョンで実施されるため、この期間中共有ドキュメントを編集する排他的な権利を有してもよい。
【００４９】
コンピューティングモジュール１１５がコンピュータ１４０および１５０からのコマンドが相互に排他的であると判定する場合、モジュール１１５は相互に排他的なコマンドのうちのどれを実行するか、およびそのコマンドを実行する実行順を判定してもよい。
【００５０】
ある実施形態では、コンピュータ１４０および１５０からのそれぞれのコマンドが相互に排他的である場合、協調デバイス１１０は１つのコンピュータ１４０に「ロックイン」してもよく、例えば、そのコンピュータに共有データの一部もしくは全体を修正する排他的許可を与え、および／または他の接続コンピュータ１５０を「ロックアウト」し、例えば、そのコンピュータが共有データの同じ一部もしくは全体を修正するのを制限する。協調デバイス１１０は、その領域に関連したコマンドを受信した後、コンピュータがあるドキュメントまたはそのレイヤーまたはページのある領域もしくは全体を修正するのを自動的にロックアウトしてもよい。
【００５１】
コンピューティングモジュール１１５は、例えば、編集コマンドを受信するか又は伝送する最初のコンピュータ、ドキュメントの一部もしくは全体を編集する排他的権利を有するようにロックインを要求する最初のコンピュータ、各コンピュータに関連付けられている優先レベル（例、教師コンピュータは生徒コンピュータのロックされた領域の編集を撤回し、またはそれに干渉してもよい）、セキュリティもしくはパスワード許可、または他の基準に基づいて、コンピュータ１４０および１５０のうちの１つに編集許可を与えてもよい。
【００５２】
ある実施形態では、共有デジタルデータドキュメントのある領域の編集からロックアウトされているコンピュータは、ドキュメントのそのローカルバージョンに変更を入力できない。例えば、ロックアウトされているコンピュータのユーザはカーソル位置を選択できず、またはロックアウトされている領域内のテキストもしくは画像オブジェクトを強調表示できない。デジタルデータドキュメントの保護動作が、ロックされている領域もしくはデジタルデータドキュメント全体に実行されてもよい。あるいは、ユーザはデジタルデータのそのローカルバージョンに変更を入力してもよいが、デジタルデータの共有グローバルバージョンに変更を入力できない。ユーザはローカルに変更を行ってから、協調デバイス１１０にローカル変更を提出するために提出ボタンもしくは指定キーを入力してもよく、編集がコンピュータがロックアウトされている領域に関係する場合、協調デバイス１１０はそのコマンドを拒絶もしくは無効にし、任意でロックアウトされているコンピュータに、例えば「ロックアウト：あなたの編集は入力されません」と示すメッセージを送信してもよい。ロックアウトされたコンピュータのユーザが「ＯＫ」ボタンを選択すると、ユーザはメッセージが受信されたことを示し、または所定の時間が経過すると、グローバルに入力できなかったローカル編集をユーザドキュメントのローカルバージョンから自動的に削除してもよい。別の実施形態では、ユーザは拒絶された編集を手動で削除してもよい。
【００５３】
ある実施形態では、１台のユーザコンピュータ１４０は他のユーザコンピュータ１５０をロックアウトしてもよい。いくつかの実施形態では、例えば、十分な優先度、パスワードもしくはセキュリティ許可を有する何人かのユーザのみ、またはグループセッションのイニシエータが他のコンピュータをロックアウトしてもよい。あるいは、あらゆるユーザコンピュータがあらゆる他のユーザコンピュータをロックアウトしてもよい。ユーザコンピュータ１４０は、例えば共有デジタルデータのコンテンツを修正することによって、自動的に、または例えばロックインするためのロックインキーもしくは他のコンピュータをロックアウトするためのロックアウトキーを入力することによって、手動で他のユーザコンピュータ１５０をロックアウトしてもよい。いくつかの実施形態では、ユーザはどのユーザコンピュータ１５０をロックアウトするかを選択してもよい。ある実施形態では、ユーザはセキュリティもしくは優先レベルが等しいおよび／または低い他のユーザのみをロックアウトしてもよい。
【００５４】
いくつかの実施形態では、ユーザはロックアウト領域を選択または線引きしてもよい。例えば、ユーザオペレーティングコンピュータ１４０は、一時的な排他的編集権を要求する共有デジタルデータドキュメントの領域を指示してもよい。ユーザは、協調を入力するためのキーボードまたは円形もしくは矩形などの領域を強調表示もしくは線引きするためのマウスなどの入力デバイス１４２を使用して、ディスプレイ１４４に領域を指示してもよい。指示される領域が別のユーザによってすでに編集されている別の領域と重複する場合、モジュール１１５または別のローカルコマンドモジュールはこれを要求側ユーザに指摘してもよい。モジュールは要求される領域のうちユーザが編集してもよい利用可能な部分、要求される領域のうちの利用できない部分、および／または他のユーザがすでに編集している領域の全体を、例えばそれぞれの色で強調表示して、要求側ユーザの共有ドキュメントのバージョンに表示してもよい。別の実施形態では、要求される領域の一部もしくは全体がすでに編集されている場合、要求側コンピュータ１４０をキューに入れて、例えば「これであなたの編集を入力できます」と表示するメッセージによって自動的に通知してもよく、領域が編集に利用可能になるときに排他的アクセスを与えてもよい。
【００５５】
ある実施形態では、共有ドキュメントは、例えば現在のコンピュータが修正してもよい領域をある色で、コンピュータが編集できない領域を１以上の別の色にして、編集セッションを通して各コンピュータ１４０および１５０に繰り返しもしくは継続的に強調表示またはその他マーキングしてもよい。一実施例では、各接続コンピュータはそれに関連付けた色もしくは記号を有して、ユーザもしくは共同作業者のチームが共有ドキュメントを編集するときに、各ユーザの編集がその関連色もしくは記号で強調表示またはその他マーキングして、どのユーザがどの編集を生成したかが明確になるようにしてもよい。
【００５６】
ある実施形態では、協調デバイス１１０は、例えば、各コンピュータに共有デジタルデータへの等しいまたは加重した割合の編集アクセスを与えるために、ロックインしているコンピュータ１４０と１５０とを交替または切り替えてもよい。この実施形態は、例えばあるコンピュータが他のコンピュータよりも協調デバイス１１０に対して優れた接続を有する場合、各コンピュータに共有データを編集する機会を等しく与えるのに特に便利であろう。協調デバイス１１０はロックイン／アウトするコンピュータ１４０と１５０とを、現在ロックインされているコンピュータがある段落、サブ領域もしくはレイヤーの編集を止めた後、またはコンピュータが「編集終了」ボタンを選択するかもしくは「ロックイン」ボタンを解除した後に所定のロックアウト時間遅らせて切り替えてもよい。例えば、ロックインされているコンピュータが共有デジタルデータの所定の領域、例えば、テキストドキュメントのある段落または画像ドキュメントのサブ領域もしくはレイヤーの編集を止めた後、そのコンピュータはその領域の編集からロックアウトしてもよい。
【００５７】
別の実施形態では、協調デバイス１１０は、各コマンド、所定数のコマンド、所定数の計算サイクル、または所定期間、例えばビーコン信号もしくはクロックサイクルの数の後に、ロックインされるコンピュータを切り替えてもよい。さらに別の実施形態では、協調デバイス１１０は、実行中のコンピュータがコマンドの接続シーケンスを終了するか、またはコマンドの種類を変更するときに、ロックインされるコンピュータを切り替えてもよい。例えば、コンピュータは、コンピュータが同じ種類のコマンドの定シーケンスを維持する限りロックインされていてもよい。例えば、コンピュータは動画を望むだけの時間早送りしてもよいが、例えば動画を再生するかもしくは巻き戻すためにコンピュータが一旦コマンドの種類を切り替えたら、コンピュータはデジタルデータを修正する排他的権利を断念し、ロックアウトしてもよい。
【００５８】
協調デバイス１１０は、コンピュータ１４０および１５０に格納されている共有ドキュメントのローカルバージョンで実施するべきコマンドを転送して、コマンドのグローバルシーケンスもしくは順序付きキューを生成してもよい。
【００５９】
ある実施形態では、協調デバイス１１０は、実行バッファ１１７に、例えば実行する順序でキューに、コマンドのグローバルシーケンスを格納してもよい。コマンドのグローバルシーケンスは、ロックインされているかもしくはコマンドに関連するコンテンツの編集を許可されているコンピュータ１４０および／または１５０から受信したコマンドを含んでもよく、ロックアウトされているかもしくは当該編集を行うのを禁止されているコンピュータ１４０および／または１５０からのコマンドを排除してもよい。各コンピュータ１４０および１５０は、それぞれ対応する実行バッファ１４７および１５７を有して、共有デジタルデータのローカルバージョンでコマンドを実行してもよい。協調デバイス１１０は、例えば定期的に、１以上の所定数の新たなコマンドがバッファ１１７に格納される毎に、または領域を編集するためのロックアウト期間が終了した後に、実行バッファ１１７から更新バッファ１４７および１５７にデータを伝送してもよい。プロセッサ１４６および１５６は更新バッファ１４７および１５７に格納されているコマンドを、例えば格納されるおよび／またはキューに入れられる順序で、各コンピュータ１４０および１５０の共有デジタルデータのローカルバージョンでそれぞれ実行してもよい。本発明の当該実施形態によると、帯域幅を節約するために、共有デジタルデータドキュメントを修正するためのコマンドのリストもしくはキューのみを、協調デバイス１１０からコンピュータ１４０および１５０に伝送し、典型的にはコマンドだけを搬送するよりも非常に多くのメモリおよび計算力を要するデジタルデータ自体の伝送はしない。
【００６０】
一方、代替実施形態では、協調デバイス１１０は、協調デバイス１１０の中央バージョン（central version）に格納されている実際の共有デジタルデータを修正するかまたは更新してから、デジタルデータドキュメントの修正部分もしくはデジタルデータドキュメント全体のコピーをコンピュータ１４０および１５０の各々に送信してそれに格納されている最新バージョンと置き換えてもよい。
【００６１】
コンピュータ１４０および１５０は一定の変更をグローバルに入力するのを制限してもよいが、本発明のいくつかの実施形態では、ユーザは各コンピュータ１４０および１５０の共有デジタルデータのそのローカルバージョンにあらゆる変更を入力してもよい。例えば、ユーザはロックインされている、ロックアウトされている、または協調デバイス１１０でグローバルにその変更をするのを許可もしくは制限されているかどうかに関係なく、各コンピュータ１４０および１５０でローカルに変更を入力してもよい。変更をローカルに入力した後、ユーザは協調デバイス１１０にローカル変更を提出するために提出ボタンまたは指定キーを入力してもよい。コマンドは受け入れられるかまたは拒絶されて、本明細書で説明するように、コマンドのグローバルシーケンスに併合されてもよい。
【００６２】
ある実施形態では、更新されたコマンドのグローバルシーケンスは全接続コンピュータに送信してもよい。あるいは、別の実施形態では、更新されたコマンドは、これらのコマンドはそれを生成するコンピュータにはすでに実施されているため、当初コマンドを生成しなかったコンピュータにのみ送信してもよい。後者の実施形態では、各コンピュータ１４０および１５０で共有ドキュメントの同じバージョンを生成するために、協調デバイス１１０は各コンピュータ１４０および１５０に別のシーケンスのコマンドを伝送してもよく、これは共有デジタルデータに行われた累積変更のすべてを含んでもよいが、個々のコンピュータが生成したコマンドは排除してもよい。
【００６３】
ある実施形態では、コンピュータ１４０のユーザが１以上の編集をドキュメントに入力すると、編集は他の全コンピュータ１５０に表示されるデジタルデータの全共有バージョンでリアルタイムに修正されてもよい。編集は同時にまたはその後に協調デバイス１１０に伝送されて、そこで本明細書で説明するように受け入れるかまたは削除されてもよい。別の実施形態では、各コンピュータ１４０で局所的に行われる編集は、協調デバイス１１０が変更を受け入れてそれをグローバルコマンドチェーンで実施した後にのみ、他のコンピュータ１５０に入力される。
【００６４】
ある実施形態では、協調デバイス１１０から受け入れられた各コンピュータ１４０または１５０からのグローバル編集は、最初に変更にマークまたは「履歴」を付けて他のコンピュータに入力してもよい。編集は、それが他のユーザによって生成されたことを示すか、またはそれを生成した個々のユーザもしくはユーザのグループを示す記号または色でマーキングまたは強調表示してもよい。編集は、共有編集チームの全メンバーがドキュメントのそれぞれのバージョンで編集を受け入れるときに限り、例えばプレインテキストとして、共有デジタルデータに組込み、最終的に入力してもよい。各コンピュータ１４０または１５０の共有ドキュメントは共有環境に関係する情報を提供するマーキング、強調表示または他のラベルが異なっていてもよいが、共有ドキュメントの実際のコンテンツ、例えばテキスト、画像、音声、映像、フレームは完全に一様であってもよく、既存および／または新規のコンテンツの編集は各メンバーコンピュータ１４０または１５０の共有ドキュメントの全バージョンで編集セッションを通して重複してもよい。
【００６５】
ある実施形態では、複数のコンピュータ１４０および１５０が複数の相反する編集を入力する場合、例えばコンピューティングモジュール１１５による当該自動判定の代わりに、またはそれに追加して、ユーザはどの編集を実施し、どれを拒絶するかを手動で選択してもよい。例えば、コンピュータ１４０および１５０の例えばフッター、マージン、タブまたは付箋に、複数の相反する編集を提示してもよく、各それぞれのユーザは１以上の優先的な編集を選択、例えばクリックしてもよい。ユーザの選択は協調サーバ１１０に伝送してもよく、そこでコンピューティングモジュール１１５は優先的な編集をバッファ１１７のグローバルコマンドのシーケンスで実施してもよい。コンピューティングモジュール１１５は、編集を選択したコンピュータの優先度により加重したピック数に基づいて、最大数の選択または最大累積値を有するコマンドを実施してもよい。
【００６６】
ある実施形態では、ユーザはドキュメントをオフラインで修正してから、すでに進行中または終了したオンラインセッションに変更を入力してもよい。ユーザはそのローカルに修正したドキュメントを協調デバイス１１０にアップロードしてもよい。アップロードされたドキュメントは、共有ドキュメントを修正するために、コマンド列に変換してもよい。アップロードされたドキュメントからのコマンドまたは修正の多くは、共有デジタルデータがオンラインセッション内で継続的に変更されているため、すでに関係がないかもしれない。共有データの最新バージョンにまだ関係し、他の保留中のコマンドと相反しないコマンドだけを実行してもよい。協調デバイス１１０は、受け入れられてドキュメントに組み込まれている各ユーザのコマンドのリストもしくは示標、および／または拒絶された各ユーザのコマンドのリストもしくは示標を生成してもよい。ある実施形態では、受け入れられた変更および拒絶された変更は、その変更を要求したユーザの共有ドキュメントバージョンのマージンに示してもよい。受け入れられた変更は、例えばフォントの色または下線で示してもよく、拒絶された変更は、例えば異なるフォントの色によって、テキストを取消線もしくは二重括弧に入れて示してもよい。
【００６７】
いくつかの実施形態では、協調デバイス１１０は、複数の動作モードを有してコンピュータ１４０および１５０を協調してもよい。いくつかの実施形態では、ユーザコンピュータ、例えばイニシエータコンピュータは、協調デバイス１１０が動作してもよい利用可能なモードのうちの１以上を選択してもよい。
【００６８】
あるモードでは、協調デバイス１１０はコマンドを受信する順序でキューに入れてもよい。２以上のコマンドを同時にもしくはロックアウト期間内に受信する場合、協調デバイス１１０は、例えば、優先度の高い方のコンピュータからのコマンド、最も最近もしくは最も過去に別のコマンドを要求したコンピュータからのコマンド、拒絶されたコマンド数が相対的に多いかもしくは少ないコンピュータからのコマンド、より重要なもしくはより重要でない変更を生じさせたコマンド、または無作為に選択したコマンド等を実行することを選択するように編集に優先度を付ける予め選択した基準に従って動作してもよい。例えば、ある実施形態では、変更の「重要度」は、コマンドによって影響を受けるテキストドキュメント内の文字数もしくは段落数、または画像ドキュメント内の画素数もしくはレイヤー数に比例してもよい。例えば、別の実施形態では、変更の「重要度」は変更の種類に関係してもよく、各種類は所定の重要度の階層に順序付けされる。
【００６９】
別のモードでは、協調デバイス１１０はロックインしているコンピュータ１４０と１５０、およびそれによって生成されるキューイングコマンドを交替もしくは切り替えてもよい。
【００７０】
別のモードでは、数人のユーザにリアルタイムの編集セッションで他のユーザとインタラクティブにドキュメントを修正するための「オンライン」アクセスを与えてもよく、一方で他のユーザにドキュメントをオフラインで修正する「オフライン」アクセスのみを与えて、その後すでに進行中のオンラインセッションもしくは終了したセッションで変更を入力してもよい。オフラインユーザは一度にその全コマンドを入力して、その修正したドキュメントもしくはファイルをアップロードしてもよい。このモードでは、協調デバイス１１０はアップロードされた各ドキュメントから実行するべきコマンドのセットもしくは列を生成してもよい。ある実施形態では、コマンド列は、オンラインセッションのコマンドと相反するコマンド以外のアップロードされたドキュメントからの全コマンドの組み合わせであってもよい。別の実施形態では、相反するコマンドの各セットについて、コマンド列はドキュメントの現行バージョンと最も相反しないコマンドまたは他のコマンドと相反する数が最も少ないコマンドを含んでもよい。
【００７１】
別のモードでは、グローバル編集は最初に変更にマークもしくは「履歴」を付けて各コンピュータ１４０または１５０の共有デジタルデータに入力する。編集は、１人以上のユーザが受け入れる場合、例えば視覚的にはプレインテキストとして、または実質的には新しいドキュメントコンテンツとして、共有デジタルデータに完全に組み込んでもよい。
【００７２】
別のモードでは、協調デバイス１１０は、共有デジタルデータのコンテンツだけでなく、データを表示する方法も同期させてもよい。例えば、あるコンピュータ１４０が共有デジタルデータドキュメントを拡大もしくは縮小またはスクロールダウンするコマンドを送信する場合、協調デバイス１１０は、他の全コンピュータ１５０の共有デジタルデータバージョンに同じ表示変更を実行するコマンドを実施して伝送してもよい。
【００７３】
上記以外のモードを協調デバイス１１０にプログラミングして、協調デバイス１１０で使用してもよい。
本発明のいくつかの実施形態では、協調デバイス１１０は、どの変更が各コンピュータ１４０および１５０に関連するかを示す記録を保管してもよい。例えば、協調デバイス１１０は各コンピュータに関連する変更ログを保管してもよく、各コンピュータのそれぞれのコマンドへのポインタの集計表（tally）もしくはテーブルを格納してもよく、各コンピュータごとに個別にコマンドを保存してもよく、またはコマンドを生成したコンピュータを示すマーカーでコマンド自体にタグ付けしてもよい。ある実施形態では、ユーザはコマンドのログを閲覧して、各個々のコンピュータが生成する変更を閲覧してもよい。別の実施形態では、各ユーザに色コードを割り当ててもよく、協調デバイス１１０は、各コンピュータの変更をそれに関連付けられる色で強調表示して、共有ドキュメントを表示してもよい。
【００７４】
さらに別の実施形態では、協調デバイス１１０は、コンピュータ１４０および１５０のうちの１つ、またはコンピュータ１４０および１５０のサブセットもしくは組み合わせによって生成されるコマンドのみを実行してもよい。例えば、協調デバイス１１０は、編集グループのエディタの各個もしくは組み合わせから編集を実施して、共有デジタルデータの異なるバージョンを生成してもよい。
【００７５】
ある実施形態では、各ユーザコンピュータ１４０および１５０は、動作させるユーザが生成した全変更（受け入れられたものおよび拒絶されたもの）を含むデジタルデータの個別もしくはパーソナルバージョン、およびデジタルデータのグローバル共有バージョンを動作させてもよい。例えば比較するために、２つのバージョンを各ユーザのディスプレイ１４４および１５４の隣接ウィンドウで視聴してもよい。
【００７６】
本明細書で使用する場合、編集は、例えばそのコンテンツを変更するために、例えば言語もしくは画像を削除、追加もしくは修正するために、デジタルデータをあらゆる形態で変更すること、または例えばワイドスクリーンから標準ビューに切り替えるため、拡大もしくはスクロールダウンするため、または早送り、巻き戻し、速度を上げるかもしくは下げるため、または動画のフレームのサブセット、例えばｎ番目の整数おきに再生するために、デジタルデータを編集せずに残しながらデータを表示、フォーマット化もしくはユーザに可視化する方法を変更することを含んでもよい。
【００７７】
本発明の実施形態は共有ドキュメントで実行される複数のコンピュータ（例、図１のコンピュータ１４０および１５０）からのコマンドを遠隔制御するリモートサーバ（例、図１の協調デバイス１１０）を説明しているが、当該能力は１以上のローカルコンピュータで実施してもよいことは当業者には認識されるであろう。例えば、図１に関し、コンピュータ１４０および／または１５０はグローバルコマンドのセットをキューに入れるコンピューティングモジュール１１５を含んでもよく、それぞれバッファ１４７および１５７を使用して、キューに入れたコマンドを格納してもよい。例えば、共有ドキュメントの編集セッションを開始するイニシエータコンピュータは、それ自体および他のコンピュータから入力されるコマンドを協調してもよい。
【００７８】
本発明のある実施形態による図１のシステムによって動作されるデジタルデータ共有ディスプレイの模式図である図２を参照する。
ユーザコンピュータ１４０は、デジタルデータ共有ディスプレイ１６０をロードするためにプロセッサ１４６を動作してもよい。ウェブサイトの実施態様では、データ共有ディスプレイ１６０は、例えばネットワーク１２０で提供されるウェブホストなどのデジタルデータサーバ１３０からウェブブラウザ１７０を使用して閲覧されるウェブページであってもよい。ピア・トゥー・ピアの実施態様では、データ共有ディスプレイ１６０は、１台もしくはすべての接続コンピュータ１４０および１５０にインストールされるデータ共有アプリケーションによって提供されてもよい。
【００７９】
プロセッサ１４６および１５６は各ユーザコンピュータ１４０および１５０上でそれぞれのデータ共有ディスプレイ１６０を動作させてもよい。プロセッサ１４６および１５６は共有デジタルデータ１５５のコンテンツ（例、デジタルデータサーバ１３０から）を検索するためのコード１７５、およびディスプレイ１６０を実施してグローバルコマンドのセット（例、協調サーバ１１０のバッファ１１７から）を検索して、共有デジタルデータ１５５でグローバルに実行するためのコード１８０を呼び出してもよい。
【００８０】
コード１７５は、テキストドキュメントの場合はテキストエディタ、画像ドキュメントの場合はフォトエディタ、および／または映像ファイルの場合はメディアプレーヤなど、標準もしくは特定目的の表示用ソフトウェアによって、共有デジタルデータ１５５を提供してもよい。
【００８１】
コード１８０は、共有デジタルデータ１５５でグローバルコマンドのセットを一斉に実行して、接続コンピュータ１４０および１５０間で編集を同期させてもよい。協調デバイス１１０がコンピュータ１４０および１５０から離れた遠隔デバイスの場合、コード１８０は比較的単純にしてもよく、例えば編集要求を協調デバイス１１０に伝送して、協調デバイス１１０からグローバル編集を受信しそれを実施して共有デジタルデータ１５５を修正するためにのみ使用してもよい。しかし、コンピュータ１４０および／または他のコンピュータ１５０がピア・トゥー・ピアの実施態様で編集を協調する場合、コンピュータ自体が協調デバイス１１０である。この実施形態では、協調コンピュータ１４０および／または１５０に格納されているコード１８０は、タイミング合わせ、バッファリング、どのコマンドを実行してどれを無効にするか、コマンドの順序、それぞれのコマンドが一貫性があるか、もしくは相互に排他的であるかなど、コマンドおよびデータコンテンツ間の類似性および相違、および／または図１のコンピューティングモジュール１１５に関して説明した他の論理を判定するために、複雑な論理を含んでもよい。コード１７５およびコード１８０は、各コンピュータ１４０および１５０が編集セッションにログインされるときに、例えば少なくとも一時的に、コンピュータ１４０および１５０のメモリユニット１４８もしくは１５８にそれぞれロードして格納してもよい。
【００８２】
協調デバイス１１０はユーザコンピュータ１４０および１５０から、データ共有ディスプレイ１６０を使用して表示される共有コンテンツを編集する要求を受信してもよい。編集情報に加えて、要求は、要求される編集の種類の数、ユーザの優先レベルもしくはコード、ページを閲覧するユーザのＩＰアドレス、ユーザの過去の編集に関する履歴ログもしくは情報、編集が関係する共有デジタルデータ１５５のコンテンツもしくはそれに関連するメタデータを記述する記述情報、ユーザ識別コード、セキュリティコード、ウェブページのＵＲＬもしくはアドレスまたはピア・トゥー・ピア環境、および／または編集が関係する共有デジタルデータ１５５からの実際のコンテンツなどのパラメータまたは情報を含んでもよい。協調デバイス１１０は、例えばコマンド自体に追加してもしくはその代わりに、当該データを使用して、どのコマンドを、どの順序でどの優先度でグローバルに実行するかを判定してもよい。他の情報を利用して、どの編集をコンピュータ１４０および１５０でグローバルに実施するかを判断してもよい。
【００８３】
共有デジタルデータ１５５を編集するためにコンピュータ１４０および１５０から要求が与えられると、協調デバイス１１０は全ユーザコンピュータ１４０および１５０で共有デジタルデータ１５５の全バージョンで一様に実施するべきグローバルコマンドのセットを生成してもよい。プロセッサ１４６および１５６は、例えば、バッファ１１７から１以上のグローバルコマンドを検索してもよく、バッファ１４７および１５７にローカルにコマンドを格納してもよい。プロセッサ１４６および１５６は実行バッファ１４７および１５７に格納されているコマンドを、各コンピュータ１４０および１５０の共有デジタルデータのローカルバージョンでそれぞれ実行してもよい。
【００８４】
ある実施形態では、検索されるコマンドは、全接続コンピュータ１４０および１５０で生成される共有ドキュメントで実行されるべき全累積コマンドを含んでもよい。別の実施形態では、各コンピュータ１４０または１５０で生成されるコマンドが協調デバイス１１０によってグローバルに承認される前にすでに局所的に入力されている場合、各コンピュータが検索するコマンドのセットはコンピュータ自体が生成するコマンドを除外してもよい。全累積コマンドが受信されると、各コンピュータのコード１８０は、個々のコンピュータが生成するコマンドを削除するかもしくはフィルタリングする追加機能を含んでもよい。
【００８５】
主にコンピュータ１４０（等価表現をコンピュータ１５０に関して使用してもよい）の動作に関係する例示的な実施形態では、コンピュータ１４０は、共有デジタルデータ１５５を部分的に修正して編集コンテンツ１６５および１８５を生成してもよく、コンピュータ１５０は、共有デジタルデータ１５５を部分的に修正して編集コンテンツ１７５を生成してもよい。対応するコマンドを協調デバイス１１０に送信してもよい。例えば、協調デバイス１１０は編集コンテンツ１６５および１７５を生成するコマンドを承認してもよいが、編集コンテンツ１８５は承認しない。協調デバイス１１０は承認された編集コンテンツ１６５および１７５に対応するコマンドのセットをバッファ１１７に格納してもよく、禁止された編集コンテンツ１８５に対応するコマンドを破棄してもよい。コンピュータ１４０はバッファ１１７からのコマンドのセットを検索してもよい。バッファ１１７からコンピュータ１４０に送信されるコマンドは、グローバルに承認されたコマンドを含んでもよく、コンピュータ１４０自体によって生成されるコマンドを含んでもまたは含まなくてもよい。コンピュータ１４０は検索されたコマンドをバッファ１４７に部分的に格納してもよい。プロセッサ１４６はバッファ１４７に格納されている新たに検索されたコマンドもしくは全コマンドを実行して、共有デジタルデータ１５５を更新してもよい。したがって、プロセッサ１４６は禁止された編集コンテンツ１８５を削除し、そのままにするか、もしくは承認された編集コンテンツ１６５を最終的に統合し、他のコンピュータ１５０が生成する承認された編集コンテンツ１７５を追加してもよい。いくつかの実施形態では、編集の各セットは、ラベル、色コードまたはその他のマーキングして、編集が最終的に共有デジタルデータ１５５の全共有バージョンに統合されたかどうか、編集が承認保留中であるかどうか、編集が承認もしくは拒絶されたかどうか、および／または編集が現在のコンピュータ１４０もしくは別のコンピュータ１５０で生成されたかどうかを示してもよい。
【００８６】
本発明のある実施形態により映像データを共有するために使用される図１のシステムのある実施例の模式図である図３を参照する。図示するように、システム３００は、例えば図１および図２のデジタルデータサーバ１３０のようなサーバなどのコンテンツ提供デバイス３０２を含んでもよい。コンテンツ提供デバイス３０２はネットワーク３１４にストリーム配信する映像／音声データを提供してもよい。コンテンツ提供デバイス３０２はネットワーク３１４を介してテキスト、音声、画像またはマルチメディアの単一もしくは複数のページドキュメントを提供してもよい。コンテンツ提供デバイス３０２はコンテンツサービスプロバイダに属してもよい。ネットワーク３１４は、インターネットなど、例えば図１および図２のネットワーク１２０など本明細書で説明するあらゆる種類のネットワークであってもよい。
【００８７】
コンテンツ提供デバイス３０２は、（好ましくは）符号化されたフォーマットであってもよい映像データを伝送するための送信機３１２を含んでもよい。送信機３１２は、例えばビデオオーバーＩＰ規格に従って伝送するための映像データを準備することによって、ネットワーク３１４上に映像データを伝送するために必要なあらゆる処理を行ってもよい。送信機３１２はネットワークインターフェース３１０経由で映像データを伝送してもよい。送信機３１２はネットワーク３１４上に映像データを伝送するための規格に従って映像データを伝送してもよい。当該規格の非制限的な例は、Ｈ．３２３、リアルタイム転送プロトコル（ＲＴＰ）、リアルタイム・ストリーミング・プロトコル（ＲＴＳＰ）、および好ましくはビデオ会議に使用されるセッション開始プロトコル（ＳＩＰ）を含む。ＲＴＰは任意でＨ．３２３および／またはＳＩＰと組み合わせて使用してもよい。音声データは適切なプロトコルに従って伝送してもよい。複数ページのドキュメントの転送は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）規格またはセキュアＨＴＴＰ（ＨＴＴＰＳ）を含むが、それだけに限定されない当該データの伝送用の規格に従って行ってもよい。
【００８８】
当該映像伝送のタイミングは、基準クロック３０８によって制御してもよく、これは当技術分野で周知のあらゆる種類のリアルタイムメカニズムとして実施してもよく、また当技術分野で周知のハードウェア、ソフトウェアもしくはファームウェアとして実施してもよい。
【００８９】
複数のユーザコンピュータ３０４および３０６は、それぞれ「ユーザコンピュータＡ」および「ユーザコンピュータＢ」としてラベルを付けて図示するようにネットワーク３１４を介して接続してもよい。当然ながら、あらゆる数のユーザコンピュータを任意でネットワーク３１４を介して接続してもよい。コンピュータ３０４および３０６は、図１および図２のコンピュータ１４０および１５０に関して上記説明したように、本発明の実施形態に従って動作してもよい。
【００９０】
各ユーザコンピュータ３０４および３０６は、それぞれ映像デコーダ３１６および３２０を含んでもよい。映像デコーダ３１６および３２０は伝送された映像データを受信して、それぞれ出力ディスプレイ３２４および３３２で視聴されるためのデータを準備してもよい。映像デコーダ３１６および３２０は、例えばアップル・コンピュータ・インク社（ＡＰＰＬＥ  ＣＯＭＰＵＴＥＲ  Ｉｎｃ．）が製造するメディアファイル管理および再生用のｉＴｕｎｅｓ（商標登録）ソフトウェア、および／またはＷｉｎｄｏｗｓ（商標登録）メディアプレーヤ（マイクロソフト・インク社（Ｍｉｃｒｏｓｏｆｔ  Ｉｎｃ．））を含め、当技術分野で周知のあらゆる種類のメディアアプリケーションとして実施してもよい。
【００９１】
映像デコーダ３１６および３２０の動作、したがって映像データの表示のタイミングは、それぞれクロック３１８および３２８によって制御してもよく、これは任意で当技術分野で周知のあらゆる種類のリアルタイムメカニズムとして実施してもよく、また当技術分野で周知のハードウェア、ソフトウェアもしくはファームウェアとして実施してもよい。クロック３１８および３２８は、例えばネットワーク・タイム・プロトコル（ＮＴＰ）を使用して、映像提供デバイス３０２の基準クロック３０８と同期させてもよい。
【００９２】
本発明の例示的な実施形態によると、ユーザコンピュータ３０４は、この実施例では、セッションイニシエータであってもよい。ユーザコンピュータ３０４はネットワーク３１４上で要求をコンテンツ提供デバイス３０２に送信して、同期された再生を開始してもよい。ユーザコンピュータ３０６はユーザコンピュータ３０４から直接要求を受信してもよく、または代わりにコンテンツ提供デバイス３０２から要求を受信してもよい。セッション開始後、ユーザコンピュータ３０４はセッションを制御する能力をユーザコンピュータ３０６に委任してもよい。クロック３１８および３２８ならびに基準クロック３０８は、例えば上記説明するように、同期させてもよい。
【００９３】
ユーザコンピュータ３０４および３０６が一旦セッションの制御を有すると、両コンピュータは出力ディスプレイ３２４および３３２で同期される映像データの再生を制御してもよい。この実施例の目的上、共有コンテンツとは映像コンテンツである。コンテンツ提供デバイス３０２はユーザコンピュータ３０４および３０６への映像データのストリーミングを始めてもよい。任意で、また好ましくは、ユーザコンピュータ３０４および３０６のそれぞれの映像デコーダ３１６および３２０はともに映像データをバッファリングして、例えば、ネットワーク「ジッタ」を防止するとともに、同期をより容易に可能にする。映像データはユーザコンピュータ３０４および３０６の出力ディスプレイ３２４および３３２にそれぞれ表示してもよい。
【００９４】
ユーザコンピュータ３０４および３０６は、それぞれ映像共有ソフトウェア３２５および３２２を含んでもよい。ユーザコンピュータ３０４の映像共有ソフトウェア３２５が、例えば「停止」、「休止」、「巻き戻し」および／または「早送り」機能の起動により映像データのフローを変更するコマンドを受信すると、対応するコマンドがユーザコンピュータ３０６の映像共有ソフトウェア３２２に送信されてもよい。同様に、ユーザコンピュータ３０６の映像共有ソフトウェア３２２が、例えば「停止」、「休止」、「巻き戻し」および／または「早送り」機能の起動により、映像データのフローを変更するコマンドを受信すると、対応するコマンドがユーザコンピュータ３０４の映像共有ソフトウェア３２５に送信されてもよい。ユーザコンピュータ３０４および３０６の映像デコーダ３１６および３２０はさらに、ユーザコンピュータ３０４および３０６の映像データのディスプレイの同期を維持するために、対応するコマンドを実行してもよい。例えば、１つのユーザコンピュータの映像デコーダ３１６または３２０が映像データの再生を「停止」するコマンドを実行すると、他のコンピュータの映像デコーダ３２０または３１６はそれぞれ同様に同じまたは重複映像データの再生を停止する。コマンドは、例えばピア・トゥー・ピアプロトコルを使用して、ユーザコンピュータ３０４または３０６の映像デコーダ３１６または３２０から直接ユーザコンピュータ３０６または３０４の映像デコーダ３２０または３１６にそれぞれ送信してもよい。あるいは、コマンドはコンテンツ提供デバイス３０２経由で伝送してもよい。映像データは「巻き戻し」および「早送り」などのコマンドをサポートするために十分にバッファリングしてもよい。
【００９５】
いくつかの実施形態によると、ユーザコンピュータ３０４および３０６の両方が、互いにコマンドを送信して各他方のそれぞれの映像デコーダ３１６および３２０を制御してもよい。
【００９６】
図３では単なる例示目的のために２台のユーザコンピュータのみを描いているが、本明細書で説明するシステムおよび方法はそれ以上のユーザコンピュータの取り扱いができることが理解されるべきである。
【００９７】
上記の説明では、セッションを制御するコンピュータは実質的に同時に他の全コンピュータにコマンドを送信してもよい。本明細書で説明する映像データは単なる例として使用しており、複数ページ、マルチメディアまたはテキストデータを使用する場合、ユーザコンピュータ３０４および３０６は１以上の協調または同期された編集コマンド（例えば、データの特定のページもしくは他のユニットに移動する、テキストをリライトする、またはドキュメントを再フォーマット化する）を実行することを支援するオフィスツール３２６および３３０を含んでもよいことに留意するべきである。好ましくは、各セッションは、セッションを再スタートする必要なく、複数の映像クリップ、画像、テキストオブジェクト、楽曲および同様な他のもの、および／またはその組み合わせなど、デジタルコンテンツの複数のユニットを表示することを含んでもよい。
【００９８】
共有動画ストリーム（例、図３に関して説明するもの）における映像データの同期は、例えば編集が映像データの再生速度の修正を含む場合、共有デジタルデータ（例、図１および図２に関して説明するもの）の編集の協調に関して説明した実施形態に従って実施してもよい。
【００９９】
本発明のある実施形態によりデジタルデータ共有ディスプレイ４００の模式図である図４を参照する。ディスプレイ４００は、例えば図１のディスプレイ１６０を含め、本明細書で説明するあらゆる種類のディスプレイであってもよい。ディスプレイ４００は、例えば図２のウェブブラウザ１７０などのウェブブラウザを使用して閲覧されるウェブページとして、ウェブサイトにより実施してもよい。ディスプレイ４００は、Ｍｉｃｒｏｓｏｆｔ（商標登録）ウィンドウズなどの既存のオペレーティングシステムのうちの１つを使用して、ウィンドウとして実施してもよい。ディスプレイ４００は共有デジタルデータ（図２に関して説明する共有デジタルデータ１５５、図３に関して説明する映像および／または音声データなど）を表示するためにコンテンツディスプレイ４０２を含んでもよい。共有デジタルデータが音声データを含む場合、「ディスプレイ」は例えばラウドスピーカまたは他のオーディオ機器により再生されることを含んでもよい。
【０１００】
ディスプレイ４００は、１以上の制御ボタン４０４を含んで、制御コマンドを実行してもよい。コンテンツが音声または映像の場合、制御ボタンは、例えば再生、巻き戻し、早送りおよび停止を含んでもよい。コンテンツが複数ページのドキュメントの場合、制御ボタンは、例えばドキュメントの表示を始めるための「スタート」、次ページに進むための「次」、前ページに戻るための「前」、および特定のページにジャンプするための「ジャンプ」であってもよい。制御コマンドはピア・トゥー・ピアプロトコルで送信してもよいが、代わりに中央サーバ経由で送信してもよい。また制御コマンドは他のメンバーをセッションに勧誘するためのコマンドおよびセッションの制御を他のメンバーのコンピュータに委任するためのコマンドを含んでもよい。セッションの制御を委任するための制御ボタンは、セッションのイニシエータのみに利用できるのが好ましい。
【０１０１】
ディスプレイ４００は映像共有セッションの１以上の参加者の視覚表示および／または対応するアバターを表示する参加者ディスプレイ４０６を含んでもよい。前者の場合、視覚表示は、全参加者がまだデータを視聴していることを確認するため、および／またはボディランゲージのフィードバックを提供するために使用してもよい。
【０１０２】
チャットモジュール４０８およびボイスオーバーＩＰモジュール５１０は、映像データを表示する様々なコンピュータのセッションユーザが通信できるようにするため、例えば表示されるデータに関する情報および／または意見を交換できるようにするために任意で設けてもよい。
【０１０３】
コンテンツテーブル４０７は、全共有コンテンツを表示するために使用してもよい。このテーブルは、セッションの参加者間で共有される映像、クリップ、ドキュメントおよび同様な他のもののＵＲＬを任意で表示できる。ＵＲＬはサムネイル画像として表示してもよい。セッションの制御を許可されている各参加者は、このテーブルからコンテンツのうちの１つを選び、このコンテンツの再生を始めてもよい。
【０１０４】
本発明のある実施形態により共有映像データを表示する図４のソフトウェア共有アプリケーションディスプレイの実施例である図５を参照する。ディスプレイ５００の共有映像データの再生は、他の接続コンピュータの同じまたは重複データの再生と同期させてもよい。同期は、コンピュータがセッションで接続してもよいウェブサイトを介して実施してもよい。あるいは、同期は、セッションの１以上のコンピュータにインストールされているピア・トゥー・ピアアプリケーションを使用して実施してもよい。各セッションは、セッションのメンバーによって共有され同期される動画などのデジタルメディアコンテンツを操作してもよい。
【０１０５】
図５に図示するように、ディスプレイ５００は、現在実行中のコンテンツを表示してもよいコンテンツプレーヤディスプレイ５１０と、実行中のコンテンツを制御する制御ボタン５５０と、コンテンツデータのリストを含むコンテンツテーブル５２０とを含む。ディスプレイ５００はまた、参加者のアバターのディスプレイ（例、ユーザのコンピュータ上の表象）を備える会議エリア５４０とチャットエリア５３０とを含んでもよい。
【０１０６】
ディスプレイ５００のインターフェースを使用して実行されるコマンドは、図１および図２のネットワーク１２０などのネットワークで送信してもよい。ネットワークはピア・トゥー・ピアプロトコルを使用してもよく（中央サーバ経由で動作するプロトコルも使用してもよいが）、デジタルコンテンツ５１０の再生を同期するため、例えば複数のメディアプレーヤが現在共有している動画のスタート、停止または巻き戻しをするために使用してもよい。
【０１０７】
本発明のある実施形態によるコマンド構造の例示的な図である図６を参照する。
コマンド構造６００は演算コード６０１とパラメータ６０２とを含んでもよい。演算コード６０１は行わなければならないコマンドの演算コードであってもよい。演算コード６０１は、例えば共有デジタルデータのコンテンツを編集するためのコマンドの演算コード（例、図２の共有デジタルデータ１５５の編集コンテンツ１６５、１７５および／または１８５を生成する）、データのコンテンツ表示を編集するための共有デジタルデータのフォーマット化（例、スクロールアップもしくはダウン、拡大もしくは縮小、動画再生、動画巻き戻し、動画早送り、写真表示、次の写真、前の写真、ドキュメント表示、次ページ、前ページ、ページ番号にジャンプ、および同様な他のことをするため）であってもよい。パラメータ６０２は、例えば、共有デジタルデータコンテンツの共有メモリ位置のＵＲＬ、動画を停止もしくは動画を巻き戻すフレーム番号（コンテンツが動画の場合）、ページ番号（コンテンツがドキュメントの場合）、および同様な他のものを含んでもよい。コマンド構造６００は任意で、好ましくはコマンドを伝送するために使用されるプロトコルに従う、列またはあらゆる他のメッセージ構造であってもよい。
【０１０８】
本発明のある実施形態により複数の独立して動作されるユーザコンピュータで共有デジタルデータを制御するための方法のフローチャートである図７を参照する。
本発明のある実施形態によると、１台のユーザコンピュータは、他のコンピュータに参加を勧誘して、例えばドキュメントの編集または動画あたりの再生速度を修正するよう勧誘して、セッションを開始してもよい。ある実施形態では、イニシエータコンピュータは共有デジタルデータを編集するための制御を他のユーザコンピュータに委任してもよい。他の実施形態では、共有デジタルデータを編集するための制御はセッションの全参加者によって自動的に共有されてもよい。
【０１０９】
動作７００で、第１ユーザコンピュータＡは共有デジタルデータのセッションを開始し、または入ってもよい。セッションは、インターネットなどのネットワーク上のウェブサイトにより、または代わりにピア・トゥー・ピア接続を使用するセッションメンバーのコンピュータのうちの１台によってサポートしてもよい。
【０１１０】
動作７１０で、ユーザコンピュータＡは共有メモリ位置（例、図１および図２のデジタルデータサーバ１３０もしくは図４のコンテンツテーブル４０７など）のデジタルコンテンツを供給するかまたはそれにアクセスしてもよい。デジタルデータを共有メモリ位置に格納することは、デジタルデータをセッションの全参加者が共有することを可能にしてもよい。
【０１１１】
動作７２０で、複数の独立して動作されるユーザコンピュータＢおよび／またはＣがセッションに参加してもよい。ユーザコンピュータＢおよび／またはＣは、Ａからの勧誘を受け入れることによってセッションに参加してもよい。勧誘はピア・トゥー・ピアプロトコルを介して送信してもよい。セッション中、参加者のいずれも他のメンバーを参加するように勧誘してもよい。この状況において、ユーザコンピュータＢはユーザコンピュータＤにセッションへの参加を勧誘してもよい。ユーザコンピュータＤはセッションに参加する勧誘を受け入れてもよい。
【０１１２】
ユーザコンピュータＡは１以上の他のメンバーコンピュータにセッションの制御を許可してもよい。一実施例では、ユーザコンピュータＡは動画の再生を始めてもよく、例えば制御コマンドを使用して（例、図４の制御ボタン４０４を介して）、動画の制御をユーザコンピュータＢおよびＤに委任してもよい。別の実施例では、ユーザコンピュータＡはデジタルデータドキュメントの編集を始めてもよく、ドキュメントの制御をユーザコンピュータＢおよびＤに委任してもよい。再生または編集コマンドの結果として、セッションの全参加者のコンピュータのデータ共有ソフトウェアは、コンテンツ提供デバイスの共有メモリ位置からダウンロードを始めてもよい。動画が再生されている間、またはデータドキュメントが編集されている間、ユーザコンピュータＣはユーザコンピュータＥにセッションへの参加を勧誘してもよい。データ共有ソフトウェアの制御コマンドは各コンピュータに現在共有されているフレームを照会させてもよいため、ユーザコンピュータＥは現在再生されているフレームから動画の視聴を始めてもよく、またはデータドキュメントの現在の状態で編集に参加してもよい。
【０１１３】
動画の実施例では、ユーザコンピュータＡはさらに動画を停止してもよく、全ユーザコンピュータは場面を話し合ってもよい。話し合いはチャット、ビデオ会議、ボイスオーバーＩＰ、またはネットワークで話し合いを実施するための他のあらゆる方法（例、図４のチャットモジュール４０８を使用する）を介して実施してもよい。話し合いが終了すると、動画の再生速度を制御する能力も有するユーザコンピュータＤは、再び動画の再生を始めてもよい。動画が終了すると、ユーザコンピュータＢはドキュメントを共有エリアに置いて、他のユーザコンピュータへのドキュメントの提示を始めてもよい。セッション中、一部の参加コンピュータはセッションを離れてもよく、一方で他のコンピュータは参加したままでもよい。
【０１１４】
動作７３０で、セッション中、複数のコマンドが複数のユーザコンピュータＡ、Ｂ、Ｃ、Ｄおよび／またはＥのうちの２台以上によって伝送され、および／または協調デバイスによって同時にまたは指定の時間間隔内に受信される。時間間隔は、例えば、協調デバイスが複数のコンピュータからのコマンドを分析して、コマンドが相反する、冗長である、もしくは相互に排他的であるかどうかを判定する（動作７４０）ためにかかる推定時間もしくは大よその時間であってもよく、または代わりにコマンドを伝送および／または受信してから（動作７３０）セッション内の全コンピュータがコマンドのうちの少なくとも１以上を実行する（動作７８０）ためにかかる推定時間もしくは大よその時間であってもよい。
【０１１５】
動作７４０で、協調デバイスは、２以上のユーザコンピュータによって伝送されたそれぞれのコマンドが、共有デジタルデータを相反する、冗長であるもしくは相互に排他的であるように修正する編集または動作をトリガするかどうかを判定してもよい。トリガしない場合、プロセスは動作７５５に進んでもよい。トリガする場合、プロセスは動作７５０に進んでもよい。
【０１１６】
動作７５０で、協調デバイスはそれぞれのコマンドの中から実行するものを選択し、他のコマンドは無効にまたは削除して、相反するかもしくは干渉する編集もしくは動作の実行を防止してもよい。
【０１１７】
動作７５５で、複数のコマンド間で相反もしくは干渉がないため、協調デバイスは複数のコマンドの全部を実行するために選択してもよい。
動作７６０で、協調デバイスは、選択したコマンド（動作７５０もしくは動作７５５から）をグローバルコマンドキューに保存し、または組み込んでもよい。
【０１１８】
動作７７０で、協調デバイスはグローバルコマンドキューをセッション内の複数のユーザコンピュータの各々に送信または転送してもよい。
動作７８０で、その複数のユーザコンピュータの各々は、共有デジタルデータのそのローカルバージョンでグローバルコマンドキューを実施してもよい。
【０１１９】
動作シーケンスの他の動作を使用してもよい。
本発明は少数の実施形態に関して説明してきたが、本発明の多くの変型、変更および他のアプリケーションを行えることは認識されるであろう。
【図１】
2013522804.tif 000003
【図２】
2013522804.tif 000004
【図３】
2013522804.tif 000005
【図４】
2013522804.tif 000006
【図５】
2013522804.tif 000007
【図６】
2013522804.tif 000008
【図７】
2013522804.tif 000009
【国際調査報告】
2013522804.tif 000010