JP2009500698A - データ共有を伴うインスタントメッセージング - Google Patents

データ共有を伴うインスタントメッセージング Download PDF

Info

Publication number
JP2009500698A
JP2009500698A JP2008518155A JP2008518155A JP2009500698A JP 2009500698 A JP2009500698 A JP 2009500698A JP 2008518155 A JP2008518155 A JP 2008518155A JP 2008518155 A JP2008518155 A JP 2008518155A JP 2009500698 A JP2009500698 A JP 2009500698A
Authority
JP
Japan
Prior art keywords
data
client
clients
instant messaging
shared
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008518155A
Other languages
English (en)
Other versions
JP2009500698A5 (ja
Inventor
テオドシウ,ダン
フォード,ピーター・エス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009500698A publication Critical patent/JP2009500698A/ja
Publication of JP2009500698A5 publication Critical patent/JP2009500698A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/08Annexed information, e.g. attachments

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Computer Hardware Design (AREA)
  • Tourism & Hospitality (AREA)
  • Data Mining & Analysis (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【解決手段】
データ共有を伴うインスタントメッセージングについて説明する。データを共有する1つ以上のクライアントが現在有効でなくても、インスタントメッセージングセッションに関連したデータを共有するために、説明された1つ以上の技法を使用できる。
【選択図】 図3

Description

パーソナルコンピュータ、無線電話、メディア装置などの拡がっている多様な装置を使用し、ユーザがインスタントメッセージを通信できるように、インスタントメッセージングの普及が増加している。インスタントメッセージングは、例えば2人以上のユーザがインスタントメッセージングセッションの間にネットワークを介し、メッセージを交換可能にするために利用できる。2人のユーザが同時にオンラインであるときには、2人のユーザ間でインスタントメッセージを実時間に交換できる。このように、典型的な話し会話に2人のユーザが参加する方法をまねるやり方で、テキスト会話を支援するためにインスタントメッセージを利用できる。
しかし、典型的なインスタントメッセージングセッションは、インスタントメッセージングセッション以外で持続可能なデータ共有の技法を提供しない。例えば、典型的なインスタントメッセージングセッションにおいて、データを共有することは一般に、ユーザそれぞれが同時にオンラインであることを必要とする。したがって、ユーザがインスタントメッセージングセッションを介し有効でない場合、オンラインである他のユーザによって共有されるデータが、そのユーザには提供されない。さらに、インスタントメッセージングセッションの間でどんな共有状態も持続されない。これは、データのどのバージョンが最新か、特定のバージョンがクライアントそれぞれからの変更を含むか否かのような手動で管理するのが困難となり、ユーザ間でデータの矛盾を導くことになり得る。これらの矛盾はユーザのフラストレーションを生じ、その結果、インスタントメッセージング経験を減少させることになり得る。
データ共有を伴うインスタントメッセージングについて説明する。ユーザが同時にオンラインでなくても、1つ以上のインスタントメッセージングセッションに関連し、ユーザ間でデータの共有を可能にするために、1つ以上の技法を使用できる。追加として、ユーザそれぞれが「最新の」データのコピーを有するように特定のユーザ間でデータを同期させるためにこれらの技法を使用できる。さらに、様々な考慮に基づくデータの同期をスケジューリングするためにこれらの技法を利用できる。
「発明を実施するための最良の形態」においてさらに後述されるいくつかの概念の選択を簡易な形式で紹介するために、この概要を提供する。この概要は、請求項記載の対象の重要な特色又は本質的な特徴を特定することを意図せず、また、請求項記載の対象の範囲を決定する際の支援として使用されることも意図しない。
同じ参照番号は、同種の構造及びコンポーネントを参照する論述における例において、利用される。
概観
データ共有を伴うインスタントメッセージングについて説明する。インスタントメッセージングの間、従来のデータ共有(例えば、ファイル転送)は、データ共有をするユーザそれぞれが同時に有効であるとき、例えばメッセージングサービスにログオン時だけ、生ずることができて、一度に1つのファイルを転送するために使用できるだけであり、複数のインスタントメッセージングセッション間で、共有状態を持続できない。それゆえ、ユーザ間の対話は、ユーザそれぞれが現在有効であるか否かによって制限され、例えば子供の写真アルバムの状態をセッションに渡って確立するのは許可されない。したがって、クライアントそれぞれが現在有効であるか否かにかかわらず、クライアントがデータを共有できるようにインスタントメッセージングがデータ共有を取り入れることが可能な技法を説明する。
例えば2人のユーザは、インスタントメッセージの使用を介しインスタントメッセージングセッションの間、通信できる。セッションの間、第1のユーザは、インスタントメッセージングセッションを実行するために使用されるインスタントメッセージングユーザインタフェースを介し共有される特定のデータ項目を指定できる。例えば、インスタントメッセージングセッションは、第1のユーザのコンタクト先リストにおいて指定された任意のユーザ又はユーザのグループのために、インスタントメッセージングセッションの間、確立され得る「共有空間」を提供できる。この共有空間によって第1のユーザはファイルを共有することができ、その共有空間において、他のすべてのユーザに対し、他のこれらのユーザが現在オンラインでなくても、ファイルを更新させることが目に見えるようにできる。少しの間に第1のユーザは、第1のユーザのコンタクトリスト上の他の任意のユーザ、第1のユーザのコンタクトリスト上の特定のユーザ、第1のユーザのコンタクトリスト上のユーザのグループなどにアクセス可能なような共有空間を表わすフォルダを指定できる。第1のユーザはその後、その共有空間(例えばフォルダ)へデータをドラッグでき、一旦オンラインになると、そのフォルダのコンテンツは、他のユーザによって維持される同様のフォルダと同期する。このように、他のユーザそれぞれは、インスタントメッセージングセッションを介し、同時に有効である他のユーザに依存せず同期されたデータバージョンが提供される。さらに、他のユーザはまた、第1のユーザへ同期して戻すデータに対して変更を行うことができる。共有される空間(例えばフォルダ)は、複数のインスタントメッセージングセッションに渡って持続され得る。
以下の論述において、データ共有を伴うインスタントメッセージングを提供するための技法を使用するための例示的な環境及び操作可能なユーザインタフェースを最初に説明する。その後、例示的な環境及び他の環境によって提供され得る例示的な手順について説明する。
例示的環境
図1は、データ共有を伴うインスタントメッセージングを実施するために操作可能な例示的な実装における環境(100)の図である。環境(100)は、ネットワーク(106)上の複数のクライアント(104(1)〜104(N))によってアクセス可能なメッセージングサービス(102)を含む。ネットワーク(106)にアクセスするための様々な方法で、クライアント(104(1)〜104(N))を構成できる。例えば、1つ以上のクライアント(104(1)〜104(N))が、デスクトップコンピュータ、モバイルステーション、エンターテインメント機器、ディスプレイ装置と通信可能に接続されたセットトップボックス、無線電話、ゲーム機コンソールなどの計算装置として構成され得る。このように、クライアント(104(1)〜104(N))は、大量の記憶及び処理リソースを有する十分なリソースの装置(例えば、パーソナルコンピュータ、ゲーム機)から限られたメモリ及び/又は処理リソース装置を有する少ないリソース(例えば、従来のセットトップボックス、携帯用ゲームコンソール)まで及ぶことができる。クライアント(104(1)〜104(N))はまた、クライアントを操作する人及び/又はエンティティと関連され得る。言い換えると、1つ以上のクライアント(104(1)〜104(N))は、ユーザ、ソフトウェア及び/又は装置を含む論理的なクライアントと言うことができる。
追加として、ネットワーク(106)は、インターネットとして例示されるが、ネットワークはさまざまな構成を仮定できる。例えば、ネットワーク(106)は、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、ワイヤレスネットワーク、公衆電話ネットワーク、イントラネットなどを含み得る。さらに、単一のネットワーク(106)を示すが、複数のネットワークを含むようにネットワーク(106)を構成できる。例えば、クライアント(104(1))は、ピアツーピアネットワークを介し、クライアント(104(N))と通信可能に接続され得る。クライアント(104(1))、(104(N))それぞれはまた、インターネット上でメッセージングサービス(102)と通信可能に接続され得る。他の様々な例もまた、想定される。
複数のクライアント(104(1)〜104(N))それぞれは、複数のメッセージングモジュール(108(1)〜108(N))それぞれのうち1つを含むものとして例示される。それぞれのクライアント(104(1)〜104(N))が、それぞれの存在情報をメッセージングサービス(102)へ通信でき、クライアント(104(1)〜104(N))のうち別の1つとのインスタントメッセージングセッションに参加できるように、メッセージングモジュール(108(1)〜108(N))それぞれを実行できる。インスタントメッセージングセッションに参加するときに、インスタントメッセージングは、クライアント(104(1)〜104(N))それぞれが相互にテキストメッセージを送信することができるようなメカニズムを提供する。クライアント(104(1)〜104(N))のうち1つが無効、例えば、オフラインであるときに、テキストメッセージのロギングなどによる遅延送信もまた利用され得るが、インスタントメッセージは通常、実時間で通信される。このように、インスタントメッセージングがメッセージ交換を支援し、双方向のライブチャットのために設計されている点で、インスタントメッセージングは、電子メール及びインターネットチャットの組み合わせと考えることができる。したがって、同期通信としてインスタントメッセージングを利用できる。例えば、音声の電話通話のように、クライアント(104(1)〜104(N))それぞれが、インスタントメッセージが受信されるときに相互のクライアントに応答できるように、インスタントメッセージングセッションをリアルタイム(実時間)で実行できる。
一実装において、メッセージングモジュール(108(1)〜108(N))は、メッセージングサービス(102)の使用を介し相互に通信する。メッセージングサービス(102)は、例えば、メッセージングモジュール(108(1)〜108(N))の間でインスタントメッセージを送るために実行可能なメッセージングマネージャモジュール(110)を含み得る。例えば、クライアント(104(1))は、クライアント(104(N))に対する通信のために、メッセージングモジュール(108(1))にインスタントメッセージを形成させることができる。メッセージングモジュール(108(1))は、メッセージングサービス(102)に対してインスタントメッセージを通信させるために実行され、その後メッセージングサービスは、ネットワーク(106)上でクライアント(104(N))にインスタントメッセージを送るためにメッセージングマネージャモジュール(110)を実行する。クライアント(104(N))は、インスタントメッセージを受信し、インスタントメッセージを表示するためにメッセージングモジュール(108(N))を実行する。
別の実装においては、クライアント(104(1))、(104(N))が通信可能に直接結合されているときに、1つから別の1つへ(例えばピアツーピアネットワークを介し)、インスタントメッセージがメッセージングサービス(102)を利用せずに通信され得る。クライアント(104(1)〜104(N))によるピアツーピアネットワーク使用の更なる論述は図2と関連して見出される。
クライアント(104(1)〜104(N))それぞれはさらに、それぞれの共有モジュール(112(1)〜112(N))を有するように例示される。共有モジュール(112(1)〜112(N))は、インスタントメッセージングと関連してクライアント(104(1)〜104(N))の間でデータを共有するために実行可能である。例えば、クライアント(104(N))が有効(例えば、現在メッセージングサービス(102)にログオンされている)でなくても、クライアント(104(N))が、後で指定されるデータを受信できるように、インスタントメッセージングユーザインタフェースを介しクライアント(104(N))と共有するために指定されたデータを受信し、指定されたデータがストアされるように共有モジュール(112(1))を実行できる。
さまざまな方法によって複数の位置に指定されたデータをストアすることができ、それは、クライアントデータ(114(d))(ここで「d」は、1〜「D」までの任意整数であってよい)がネットワーク(106)を介してアクセス可能なストレージ(116)にストアされていること、すなわちクライアントデータ(114(d))が「クラウド(インターネット)」を介し有効であることとして図1に例示される。例えば、クライアント(104(1)〜104(N))のサブセットがデータを含むように、複数のクライアント(104(1)〜104(N))によるピアツーピアネットワークを介し、ストレージ(116)を提供できる。したがって、複数の内の以前無効だったクライアントが有効になるとき、そのクライアントは、クライアント(104(1)〜104(N))のサブセットからデータを受信できる。別の実施例において、ストレージ(116)は、メッセージングサービス(102)の一部として含まれる。例えば、メッセージングサービス(102)は、クライアントデータ(114(d))と同期し、クライアントデータの同期やその他、図2と関連して見つけることができるさらなる論述をスケジュールするような、複数のクライアントデータ(114(d))のストレージを管理するために実行され得る共有マネージャモジュール(118)を含むことができる。
ストレージ(116)にはまた様々な方法でアクセスできる。例えば、ストレージ(116)、さらに具体的に言うとストレージ(116)を介し有効なクライアントデータ(114(d))は、ウェブベースのインタフェースを介し有効にされ得る。このインタフェースを介し行われた変更は、対応するクライアントに伝播されて、衝突(コンフリクト)検出及び解決規則を受けられる。メッセージングサービス(102)及び/又は複数のクライアント(104(1)〜104(N))にアクセス可能な単独で動作する専用ストレージシステムなどのストレージ(116)の他の様々な実施例もまた本趣旨及び範囲から逸脱することなく想定され得る。
「インターネット」を介しクライアントデータ(114(d))を提供することにより、クライアント(104(1)〜104(N))それぞれが有効でないときもデータを共有できるか又はアクセスできる。ストレージ(116)は、これら他のクライアントが現在オンラインでなくてもクライアント(104(1)〜104(N))がクライアントデータ(114(d))を共有し、共有空間においてクライアントにとって相互に目に見えるデータ更新をさせる共有空間を提供する。例えば、クライアント(104(1))は、クライアント(104(N))に対してアクセス可能な共有空間を示すフォルダを指定できる。クライアント(104(1))のユーザは、その共有空間(例えば、フォルダ)へデータをドラッグ可能であって、クライアント(104(N))がオフラインであるときに、クライアント(104(1))が一旦、オンラインになると、そのフォルダのコンテンツは「インターネット」におけるストレージ(116)を介しクライアント(104(N))により維持されている同様のフォルダと同期する。このように、インスタントメッセージングセッションを介し、同時に有効な他のクライアント(例えばクライアント(104(1)))に依存しない同期されたバージョンのデータをクライアント(104(N))に提供する。追加として、クライアント(104(N))はまた、クライアント(104(1))がオフラインであるときに「インターネット」におけるストレージ(116)を介し、クライアント(104(1))と同期して戻されるクライアントデータ(114(d))の変更を行うことができる。図6〜10と関連し、クライアントデータ(114(d))の共有のさらなる論述が見出される。
例示的な環境(100)は、データ共有を伴うインスタントメッセージングを使用するために構成される例示的な実装の例証であるが、様々な方法で例示的な環境が再配置され得る。例えば、共有マネージャモジュール(118)及びストレージ(116)は単独で動作するシステムにおいても提供できる。インスタントメッセージングは、メッセージングサービス(102)を利用せずに実行される実装においても、共有マネージャモジュール(118)及びストレージ(116)は複数のクライアント(104(1)〜104(N))によって提供され得る。例えば、共有モジュール(112(1)〜112(N))は、複数のクライアントデータ(114(d))を管理するために、共有マネージャモジュール(118)の機能を取り入れることができる。追加として、共有モジュール(112(1)〜112(N))及びメッセージングモジュール(108(1)〜108(N))は、共に例示されているが、個別に提供され、それぞれのアプリケーションプログラミングインタフェースを介し通信できる。
一般に、ソフトウェア、ファームウェア(例えば、固定論理回路)、手動処理又はこれらの実装の組み合わせを使用し、本明細書に記載された機能のいずれも実施できる。本明細書に一般に使用される「モジュール」、「機能」及び「論理」という語句は、ソフトウェア、ファームウェア又はソフトウェアとファームウェアの組み合わせを表す。ソフトウェア実装の場合、モジュール、機能又は論理は、プロセッサ(例えば、CPU又は複数のCPU)上で実行されるときに指定されるタスクを実行するプログラムコードを表す。1つ以上のコンピュータ可読メモリ装置にプログラムコードをストアすることができ、図2と関連し、更なる説明が見出される。後述するインスタントメッセージング技法の特徴は、プラットホームとは独立であり、これは様々なプロセッサを有する多様な商用計算プラットホームにおいて、インスタントメッセージング技法を実施できることを意味する。
図2は、図1のメッセージングサービス(102)、複数のクライアント(104(1)〜104(N))及びストレージ(116)をさらに詳細に示す例示的な実装におけるシステム(200)の図である。複数のサーバ(202(s))によって実施されるメッセージングサービス(102)が例示され、そこでは、「s」が1から「S」までの任意整数であってよい。図2に複数のクライアント(104(1)〜104(N))がクライアント装置として例示される。例えば、複数のサーバ(202(s))及びクライアント(104(1)〜104(N))は、それぞれのプロセッサ(204(s))、(206(1)〜206(N))及びそれぞれのメモリ(208(s))、(210(1)〜210(N))を含んで例示される。
プロセッサはそれらが形成される材料又はそこで使用される処理メカニズムによって制限されない。例えば、半導体及び/又はトランジスタ(例えば、電子集積回路(IC))からなるプロセッサを含むことができる。前記文脈では、プロセッサ実行可能命令は、電子的に実行可能な命令であり得る。代替として、プロセッサの又はそのためのメカニズム及び計算機装置の又はそのためのメカニズムは、量子コンピューティング、光学コンピューティング、(例えばナノテクノロジーを使用する)機械的コンピューティングなどを含むが、これらに限定されることはない。追加として、単一のメモリ(208(s))(210(1)〜210(N))が、サーバ(202(s))及びクライアント(104(1)〜104(N))それぞれのために示されるがランダムアクセスメモリ(RAM)、ハードディスクメモリ、取り外し可能メディアメモリなどのさまざまなタイプ及びメモリの組み合わせを使用できる。
複数のクライアント(104(1)〜104(N))それぞれは、プロセッサ(206(1)〜206(N))それぞれにおいて実行され、それぞれのメモリ(210(1)〜210(N))においてストアされるように例示された複数のメッセージングモジュール(108(1)〜108(N))それぞれのうち1つを含む。前述のように、メッセージングモジュール(108(1)〜108(N))は、ネットワーク(106)上のメッセージングサービス(102)の使用を介した間接的な通信及び/又はピアツーピアネットワーク(212)上の直接的な通信のいずれかにおいて、インスタントメッセージングセッションを提供するために実行可能であって、ピアツーピアネットワーク(212)が、ネットワーク(106)から又はそれへのオーバレイとして個別に提供され得ることを示す二重矢印によって図2に例示される。
インスタントメッセージングを提供する様々な方法でメッセージングモジュール(108(1)〜108(N))を構成できる。前に説明したように例えば、メッセージングサービス(102)などを介し、ピアツーピアネットワークオーバレイなどにおいて、インスタントメッセージングそれ自体を提供するために実行可能な専用モジュールとしてメッセージングモジュール(108(1)〜108(N))を構成できる。別の実施例において、メッセージングモジュール(108(1)〜108(N))は、インスタントメッセージングを提供するウェブサイトとして構成されたメッセージングサービス(102)にアクセスするために実行可能な通信モジュール(例えばActiveX又はウェブブラウザの内部で実行する同様のコントロール)として構成される。言い換えると、ウェブブラウザ内部で実行するコントロールは、ウェブサイトとの対話を介しメッセージングモジュール(108(1)〜108(N))の機能を提供するために構成される。そのような例においては、前述のようなクライアントデータ114(d)のストレージを介しウェブブラウザが、クライアント間でデータを共有できるように、ウェブインタフェースを介したアクセスのためのストレージ(116)を構成できる。
様々な方法で複数のメッセージングモジュール(108(1)〜108(N))を複数のクライアント(104(1)〜104(N))に提供できる。一実装において、インスタントメッセージングセッションを開始するリクエストに応答するメッセージングサービス(102)による(及び、さらに具体的に言うと、メッセージングマネージャモジュール(110)の実行を介し)メッセージングモジュール(108(1)〜108(N))を提供する。例えば、クライアント(104(1))は、クライアント(104(N))とのインスタントメッセージングセッションの開始をリクエストできる。クライアント(104(N))が、インスタントメッセージングセッションの開始を受理する場合、インスタントメッセージングセッションを提供するために、それぞれのクライアント(104(1)〜404(N))における実行のためのネットワーク(106)上のメッセージングモジュールと通信するために、メッセージングマネージャモジュール(110)がプロセッサ(204(s))で実行される。異なる実装においては、メッセージングモジュール(108(1)〜108(N))がクライアント(104(1)〜404(N))のユーザによってダウンロードされ、インストールされ得る。
メッセージングモジュール(108(1)〜108(N))それぞれは、複数の複製モジュール(214(1)〜214(N))のそれぞれの1つ及び複数のスケジューリングモジュール(216(1)〜216(N))のそれぞれの1つを有するように示される。複製モジュール214(1)〜214(N)は、ファイルやディレクトリのような、複数のクライアント(104(1)〜104(N))によって共有されるデータの同期を受け持つ機能を表わす。例えば、クライアント(104(1)〜104(N))それぞれは、1つ以上の共有空間を定義することにより、クライアント(104(1)〜104(N))によって維持されるデータ(220(1)〜220(N))を共有する方法を指定するために使用されるコンタクト先のリスト(218(1)〜218(N))それぞれを含むことができる。例えば、クライアント(104(1))のコンタクト先のうち1つ(218(1))は、クライアント(104(N))(例えば別名、分かりやすい名前、ネットワークアドレスなど)を参照可能であり、同様にクライアント(104(N))のコンタクト先のうち1つ(218(N))は、クライアント(104(1))を参照でき、前述のコンタクトを使用し、クライアント(104(1))及び(104(N))は共有スペースを確立できる。複製モジュール(214(1)〜214(N))は、実行されるとき、コンタクト先(218(1)〜218(N))によって参照されるクライアント(104(1)〜104(N))それぞれが、クライアントデータ(220(1))の同期されたバージョンを有するように、ピアツーピアクライアントデータ(220(1)〜220(N))の複製を実行できる。
例えば共有マネージャモジュール(118)との対話を介して、複製モジュール(214(1)〜214(N))は、クライアント(104(1)〜104(N))が、それらのクライアントデータ(220(1)〜220(N))に対して変更し、その変更をクライアントデータ(114(d))に同期させ、クライアントによって要求される明示的な動作をせずにデータを共有しているクライアント相互が見ることができるように、クライアントデータ(220(1)〜220(N))とクライアントデータ(114(d))とを同期させることができる。言い換えると、モジュールにより自動的にユーザの介入なしに同期を実行できる。さらに、クライアントデータ(114(d))のストレージ(116)の使用を介し、クライアント(104(1)〜104(N))それぞれが現在、有効でなくても、例えば、メッセージングサービス(102)へログオンし、メッセージングサービス(102)などを使用せずに複数のクライアント(104(1)〜104(N))によって実行されるピアツーピアのインスタントメッセージングセッションにログオンされていても、変更が実行され、伝播され得る。一実装においては、データ項目全体の(例えばファイルとディレクトリ)の複製もまた想定できるが、変更されたデータ及びデータ項目全体ではない(例えば変更されたファイルのサブセット)が、ハードウェア、ソフトウェア及びネットワークリソースを節約するために模写される。例えば、クライアントデータ(114(d))は、「ストアアンドフォワード」技法を使用してクライアントデータ(114(d))を共有するクライアントそれぞれと通信される変更されたファイルのサブセットを記述できる。これによってストレージ(116)におけるスペースが再利用できる。例えば、部分的なコピーの場合、ストレージ(116)は、共有されるファイルそれぞれのためのデータを除き、ディレクトリ構造及びファイルのメタデータについての情報を保存でき、その場合、複数のクライアント(104(1)〜104(N))にまだ複写されていないファイルのためのデータだけがストレージ(116)において保たれ得る。ファイルが一旦、複数のクライアント(104(1)〜104(N))に複写されると、ストレージ(116)におけるスペースを自動的に再利用できる。
複製モジュール(214(1)〜214(N))及び/又は共有マネージャモジュール(118)はまた、競合する変更を検出しフラグを立てるようにクライアントデータ(220(1)〜220(N))と(114(d))との同期を管理できる。モジュールはその後、どの変更が保たれるべきか、削除されるべきかなどを決定するような修正に関する競合をクライアント(104(1)〜104(N))に通知できる。複製モジュール(214(1)〜214(N))は、図6〜7及び9〜10に関連し、さらなる論述が見出される他のさまざまな機能を提供できる。
スケジューリングモジュール(216(1)〜216(N))は、それぞれの複製モジュール(214(1)〜214(N))によって実行される同期をスケジューリングするために構成される機能を表わす。例えば、スケジューリングモジュール(216(1)〜216(N))は、処理リソース(例えば、CPUサイクル)、メモリリソース(例えば、使用されるメモリ容量、メモリはどのくらいの頻度でアクセスされているかなど)、ネットワークリソース(例えば利用される帯域幅)など同期を実行するために使用されるリソースを管理するための複製活動を制御できる。追加として、スケジューリングモジュール(216(1)〜216(N))は、図8に関連してさらなる論述が見出される、他のさまざまな問題に基づく同期をスケジューリングできる。
複数のクライアント(104(1)〜104(N))間でクライアントデータ(220(1)〜220(N))及び(114(d))を共有するために提供される共有空間は、様々な方法で構成できる。例えば、クライアント(104(1)〜104(N))それぞれは、「クライアント」フォルダ(222)、1つ以上の「特定のクライアント(単数又は複数)との共有」フォルダ(224)、「グループ」共有フォルダ(226)、及びデータ項目のためのストレージのその他の表示(228)を有し得る。ストレージ(116)におけるクライアントデータ(114(d))として、これらのフォルダの1つ以上のコピーもまた維持できる。例えば、クライアントフォルダ(222)は、クライアント(104(1)〜104(N))のうち特定の1つに対応し、クライアントフォルダのコピーを有するクライアント相互に複製されたデータを含む。一実装において、他のクライアントは、クライアントがフォルダにドロップする任意のクライアントデータ(例えばファイル、フォルダなど)を受信するが、そのデータを変更も修正もできない。異なる実装において、クライアントすべては、データを変更又は修正できる。
クライアント(104(1)〜104(N))それぞれのコンタクト先のリスト(218(1)〜218(N))内に含まれるコンタクト先それぞれを「特定のクライアント(単数又は複数)との共有」フォルダ(224)に提供できる。例えば、他方のクライアント上のローカルにストアされた別のバージョン又はストレージ(116)のクライアントデータ(114(d))と同期するフォルダへローカルにストアされたバージョンへのアクセスを有するユーザそれぞれによる、このフォルダ内のデータ項目に対して実行許可される変更によって、他のコンタクト先との共同作業のためにこのフォルダを利用できる。「グループ共有」フォルダ(226)もまた、共同作業のために提供できる。
「特定のクライアント(単数又は複数)との共有」フォルダ(224)及び「グループ共有」フォルダ(226)の双方は、持続されるグループの概念を利用できる。例えば、グループ(例えば「特定のクライアント(単数又は複数)との共有」フォルダ(224)の実体中の2人のグループ、「グループ共有」フォルダ(226)の中の2人以上のグループ)の持続は、特定のグループ内のメンバーを指定する複数の永続オブジェクト216(a)(ここで「a」は1〜「A」までの任意整数である)の使用を介し、提供され得る。例えば、永続オブジェクト(216(a))それぞれは、グループに参加することが許可されているクライアントのコレクションへの参照(リファレンス)を含むことができる。したがって、グループの参加者それぞれは、グループ共同作業を可能にするような、グループのメンバーによって共有されるデータを含む対応するフォルダ(例えば、「特定のクライアント(単数又は複数)との共有」フォルダ(224)又は「グループ共有」フォルダ(226))を有することができる。さらに、ストレージ(116)においてクライアントデータ(114(d))として「グループ共有」フォルダの1つ以上のコピーもまた維持できる。様々な異なる方法でストレージ(218)は提供できるが、メモリ(208(s))に含まれるストレージ(218)及びローカルのコピー(218(1)〜218(N))として永続オブジェクト(216(a))が例示される。
複数の永続オブジェクト(216(a))それぞれは、その永続オブジェクトを作成したモジュールの実行の終了のあとも存続し、及び/又は、永続オブジェクトを作成したモジュールの実行セッションを過ぎて存続する永続的なものである。例えば、クライアント(104(1))において、永続オブジェクト(216(a))を形成しストアするためにメッセージングモジュール(108(1))を実行できる。したがって、メッセージングモジュール(108(1))の実行が終了されても、永続オブジェクト(216(a))は、クライアント(104(1)〜104(N))の「ログオン」で、次回呼ぶことができる。このように、永続オブジェクト(216(a))を作成するために利用された過去のインスタントメッセージングセッション後、永続オブジェクトなどを作成するのに利用されたモジュール(例えばメッセージングモジュール(108(1)))の過去の実行後、永続オブジェクト(216(a))は持続できる。
他の様々な機能を提供するためにもまた、永続オブジェクト(216(a))を利用できる。例えば、永続オブジェクト(216(a))においてクライアントのリファレンスの持続を提供することによって、クライアント(104(1)〜104(N))のうちどれがオンライン活動に参加するかを選択する複数の手動ステップを実行することもオンライン動作への参加が望まれている通知などを送信することも必要なしに、(例えば、インスタントメッセージング、共有、オンラインゲームなどの)オンライン動作に参加するクライアント(104(1)〜104(N))を招待するために永続オブジェクト(216(a))を再利用できる。追加として、参照されるクライアント(104(1)〜104(N))のうちいずれか1つのコンタクト先(218(1)〜218(N))において、呼ぶことができるか又は複写されるために、永続オブジェクト(216(a))を構成できる。例えば、クライアント(104(N))は、クライアント(104(1))によって生成された永続オブジェクト(216(a))を活用できる。さらに、永続オブジェクト(216(a))によって参照されるクライアントそれぞれは、別のクライアントのリファレンスを含むように永続オブジェクト(216(a))の変更ができ、その結果、永続オブジェクトによって記述されるグループのメンバーが増加する。以下留意すべきは、永続オブジェクト(216(a))が、共有関係を指定するために利用され、そこで指定されたクライアントそれぞれが同時にオンラインであることが要求されないことである。
図3は、インスタントメッセージングに関連したクライアント間でクライアントデータを共有するために共有空間を利用する図1の複数のクライアントを示す例示的な実装(300)の図である。クライアント(104(1))、(104(n))、及び(104(N))をそれぞれ名前「アダム」、「ボブ」及び「シャーリーン」を有するものとして例示し、したがって、以下の論述において、「クライアント(104(1))」又は「アダム(104(1))」、「クライアント(104(n))」又は「ボブ(104(n))」などと呼ぶことができる。
アダム(104(1))は、「私の共有」フォルダ(302)、「ボブ」フォルダ(304)、「シャーリーン」フォルダ(306)、「グループ」フォルダ(308)及び「アダム/ボブ」フォルダ(310)を含むものとして例示される。ボブ(104(n))は、「私の共有」フォルダ(312)、「アダム」フォルダ(314)、「シャーリーン」フォルダ(316)、「グループ」フォルダ(318)及び「アダム/ボブ」フォルダ(320)を含むものとして例示される。同様に、シャーリーン(104(N))は、「私の共有」フォルダ(322)、「アダム」フォルダ(324)、「ボブ」フォルダ(326)及び「グループ」フォルダ(328)を含む。
「私の共有」フォルダ(302)、(312)、(322)は、これらのフォルダ内に置かれたデータを他のクライアントの上の対応するフォルダ(304)、(306)、(314)、(316)、(324)、(326)と共有できるように作動する。例えば、アダム(104(1))の「私の共有」フォルダ(302)は、ボブ(104(n))及びシャーリーン(104(N))の「アダム」フォルダ(314)、(324)それぞれに対応している。このように、フォルダ(302)に置かれたデータは、フォルダ(302)からフォルダ(314)、(324)までの破線によって例示されるように、フォルダ(314)、(324)へ自動的に複製される。このようにして、ボブ(104(n))及びシャーリーン(104(N))は、アダム(104(1))から発せられたデータを容易に決定できる。対応する破線によって示されるように同様の機能がまた、ボブ(104(n))及びシャーリーン(104(N))それぞれの「私の共有」フォルダ(312)、(322)によって使用され得る。
彼らは同じグループに属しているので、アダム(104(1))、ボブ(104(n))及びシャーリーン(104(N))はまた、グループフォルダ(308)、(318)、(328)を介しデータを共有できる。前に説明したように、グループは、グループのメンバーを指定する永続的オブジェクト(216(a))に基づき形成され得る。これらのフォルダ(308)、(318)、(328)において変更されたデータは、クライアント(104(1))、(104(n))、(104(N))の間で自動的に同期され得る。
2人のユーザ間の共同作業に対してもまたフォルダを提供できる。例えば、「アダム/ボブ」フォルダ(310)、(320)は、両方のクライアントがこれらのフォルダに含まれるデータを追加、修正、削除するか、もしくは変更できるような共同作業のために、(例えば2人のグループである)アダム(104(1))及びボブ(104(n))の間で共有されるデータを表すことができる。
様々なフォルダによって提供される共有空間について説明してきたが、メッセージングサービス(102)で実施される(ストレージ(116))関連のように、その趣旨及び範囲から逸脱せずに、さまざまな表現を利用できる他の様々な方法で共有空間を提供できる。さらに、フォルダ(302〜328)によって表される共有空間はまた、様々な方法で構成され、その実施例が以下の図に示される。
図4は、他の少なくとも1つのクライアントとデータを共有するためのインスタントメッセージング及び図3における共有空間を提供するために構成される例示的な実装(400)におけるユーザインタフェースの図である。クライアント(104(1))におけるメッセージングモジュール(108(1))の実行を介してユーザインタフェース(402)が表示される。ユーザインタフェース(402)は、別のクライアント、この場合においては図3のボブ(104(n))とのインスタントメッセージングのセッションの間、通信されるインスタントメッセージを表示するために構成されるインスタントメッセージング部(404)を含む。メッセージを送信するために「送信」ボタン(408)表示を含むテキスト入力部(406)を介し、テキストを入力することができ、選択すると、インスタントメッセージングセッションに参加しているクライアントそれぞれに入力されたテキストを通信できる。
ユーザインタフェース(402)はまた、共有部(410)を含む。ユーザインタフェース(402)の共有部(410)は、「私の共有」フォルダ(302)、「ボブ」フォルダ(304)、「シャーリーン」フォルダ(306)、「グループ」フォルダ(308)」及び「アダム/ボブ」フォルダ(310)を含む図3に関連し前に説明したフォルダの表現を含む。このように、インスタントメッセージング及びデータ共有を提供するために、ユーザインタフェース(402)を構成できる。
前に説明したように、他の1つ以上のクライアントが、シャーリーン(104(N))のように現在オンラインでなくてもデータを共有できる。例えば、グループフォルダ(308)にドラッグされたデータは、現在有効であるクライアントそれぞれ(例えば、ボブ104(n))と即座に共有され、そのフォルダによって指定される他のクライアントの、例えば、シャーリーン(104(N))が有効になる時の後の通信のために、ストアされ得る。フォルダ同期のさらなる論述を図6〜10と関連して見出すことができる。
図5は、データを他の少なくとも1つのクライアントと共有するために、インスタントメッセージング及び図3の共有空間を提供するために構成される例示的な実装(500)における別のユーザインタフェースの図である。図4と同様に、クライアント(104(n))におけるメッセージングモジュール(108(n))の実行を介し、ユーザインタフェース(502)を表示する。図5のユーザインタフェース(502)は、複数のクライアントの表現、クライアント(例えば、「アダム」、「シャーリーン」、「デイブ」)に対応する名前、それぞれのクライアントがデータ共有を支援するかどうかに関する指示、及び、データ共有が支持されている場合、新しいか又は更新されたデータがそれらのクライアントから有効に来ているか否かのしるし(例えば「きらめき」)を含む共有部(504)を含む。
例えば、アダムの表示は、アダムがデータ共有を支援するのを示すフォルダとして示される指示を含む。さらに、「アダム」フォルダにおける視覚表示は、そのフォルダに含まれるデータに対する変更をボブ(104(n))に通知するのに使用され、この場合、フォルダに星(「又はきらめき」)のオーバレイを介し例示される。このように、ボブ(104(n))は、フォルダのコンテンツがユーザインタフェース(502)の別の共有部(506)に表示できるようにフォルダを選択できる。
もう一方の共有部(506)は、アダム(104(1))とボブ(104(n))との間で共有されるサブフォルダを含むものとして例示され、この場合、休暇写真(508)、仕事のプロジェクト(510)、文書(512)、及び子供のホームビデオ(514)を含む。このように、ボブ(104(n))は、共有データに対して修正が行われたことを通知され、インスタントメッセージングユーザインタフェースにおける表現を介したナビゲーションを使用し、それらの変更を調査できる。以下留意すべき点は、シャーリーン(104(N))がデータ共有を支援する指示(例えばフォルダ)は、データが修正されたという指示を含まないことである。したがって、ボブ(104(n))は、ボブ(104(n))とシャーリーン(104(N))によって共有されるデータの状態に関する知識が保たれる。また、以下留意すべきは、「デイブ」は共有の指示を含まず、したがって、データ共有を支援しないことである。データ共有を支援する例示的なインスタントメッセージングのユーザインタフェースについて論述したが、他のさまざまなユーザインタフェースが、その趣旨と範囲から逸脱せずにデータ共有を支援するために利用されるのもまた明らかである。
例示的手順
以下の論述では、前に説明したシステム及び装置を利用し、実施可能なデータ共有を伴うインスタントメッセージングについて説明する。ハードウェア、ファームウェア又はソフトウェア又はそれらの組み合わせで手順それぞれの特徴を実施できる。本手順は、1つ以上の装置で実行される操作を指定する1組のブロックとして示され、それぞれのブロック(例えば図6〜8)及び矢印(例えば図9〜10)による操作を実行するために示された順序には、必ずしも制限されない。以下の論述の一部において、図1の環境(100)及び/又は図2のシステム(200)を参照する。
図6は、データを共有する共有クライアントの1つが利用できないときであっても、インスタントメッセージングセッションに関連して共有されたデータが同期される例示的な実装における手順(600)を表わすフロー図である。メッセージングモジュール(108(1))を使用する間、クライアント(104(1))は、共有される新しいデータを指定する(ブロック602)。例えば、クライアント(104(1))は、共有ユーザインタフェース(400)又は(500)における共有フォルダ(404)又は(506)の表示を使用することによって、それらのデスクトップからファイルを共有フォルダ、例えば、フォルダ(302)、(308)、(310)それぞれへドラッグすることができる。
共有データがその後、他のどのクライアント(単数又は複数)に受信されるか決定される(ブロック604)。例えば、共有モジュール(112(1))は、フォルダに置かれたデータが特定のクライアントと共有されることを、その写真のしるしが受信されたフォルダの検査を介し決定できる。指定されたデータはその後、インスタントメッセージングを介し、有効な他のクライアントと同期する(ブロック606)。例えば、メッセージングモジュール(108(1))は、特定のクライアントそれぞれの存在を決定し、ネットワーク(106)又はピアツーピアネットワーク(212)を介し、彼らと接続することによって有効なそれらのクライアントとそのデータを同期させる。図7と関連し、存在のさらなる論述を見出すことができる。
指定されたデータは、有効でない他のクライアントとの通信のためにストアされる(ブロック608)。例えば、メッセージングサービス(102)を使用した接続によりストレージ(116)にクライアントデータ(114(d))としてデータをストアすることができる。したがって、以前、有効でなかった少なくとも1つのクライアントが有効になると(ブロック610)、指定されたデータが、その少なくとも1つのクライアントと同期する(ブロック612)。このように、クライアントそれぞれが現在有効であるか否かに関わらず、複数クライアントによる共有及び同期のためのデータを指定できる。
図7は、インスタントメッセージングのための有用性に関連し、クライアント間でデータを共有するために、クライアントの存在(プレゼンス)が利用される例示的な実装における手順(700)を示すフロー図である。インスタントメッセージングユーザインタフェースとの対話を介し、第1のクライアントが共有データと対話する(ブロック702)。例えば、第1のクライアントは、データを共有フォルダに追加でき、既にフォルダに含まれたデータを変更し、フォルダからデータを削除することなどができる。
対話が複製のトリガとなるか否かをその後決定する(決定ブロック704)。例えば、共有モジュール(112(1))は、複製される必要があるクライアントデータに対して変更がされたか否かを決定するために、クライアントデータ(220(1))とクライアント(104(1))の対話を監視できる。そうでない場合(決定ブロック(704)からの「否定時」)、対話が監視され続けられる(ブロック702)。
対話が複製をトリガするとき(決定ブロック(704)から「肯定時」)、データを共有するためにクライアントのどれが指定されるかが決定される(ブロック706)。例えば、フォルダ(314)としてクライアント(104(n))(すなわち、「ボブ」)及びフォルダ(324)としてクライアント(104(N))(すなわち「シャーリーン」上にそのコピーが含まれるデータを「私の共有」フォルダ(302)の中に含むことができる。別の実施例においては、永続オブジェクトなどによって指定されたグループフォルダ(308)にデータを含むことができる。
決定されたクライアントそれぞれの存在がその後、確認される(ブロック708)。例えば、メッセージングモジュール(108(1))は、クライアントが「オンライン」、「オフライン」、「オンラインだがインスタントメッセージを受信していない」であるか否かなどのようなインスタントメッセージングのための有効性に関連し、クライアント(104(1)〜104(N))それぞれの存在を決定できる。このように、データの共有は、インスタントメッセージングを介し提供された存在の概念を活用できる。
データはその後、クライアントが存在するとき、クライアントそれぞれと共有される(ブロック710)。様々な方法でこれを実行できる。例えば、クライアントの存在は、メッセージングモジュール(108(1))と共有モジュール(112(1))の対話を介し監視できる(ブロック712)。クライアントはその後、メッセージングサービスに「ログオン」されるか否かが決定される(決定ブロック714)。例えば、メッセージングモジュール(108(1))は、複数のクライアント(104(n)〜104(N))のうちどれが現在ログオンしているか否かを決定するために、メッセージングマネージャモジュール(110)と通信できる。クライアントがログオンされる場合(決定ブロック(714)からの「肯定時」)、共有されるデータ項目が、第1のクライアントによる対話を反映するために同期する(ブロック716)。クライアントがログオンしていない場合(決定ブロック(714)からの「否定時」)、クライアント存在が再び監視される(ブロック712)。このように、この実装においては、クライアントが有効になるのに従ってクライアントによって共有されたデータが同期する。しかし、別の実装においては、データの同期がスケジューリングされ、以下の図と関連し、その実施例を見出すことができる。
図8は、インスタントメッセージングに関連し共有されるデータの同期がスケジューリングされる例示的な実装における手順(800)を表わすフロー図である。共有するために同期するデータ項目がどれであるか決定する(ブロック802)。例えば、実行されると、共有モジュール(112(1))は、他の少なくとも1人のクライアントと共有されるために指定されているデータ項目との、クライアントによる対話を監視できる。
その後、同期するべきデータ項目をどのクライアント(単数又は複数)が受け取るべきかに関する決定がされる(ブロック804)。例えば、クライアントは、複数の異なるデータ項目と対話でき、共有モジュール(112(1))は、どのクライアントが、異なるクライアントと共有するために指定された異なるフォルダを介し、データ項目のうちどれを共有するかを決定できる。
決定されたクライアント(単数又は複数)のためのデータ項目の同期がその後、スケジュールされる(ブロック806)。スケジューリングは様々な特性に基づくことができる。例えば、データ項目の同期のスケジューリングをするために、決定されたクライアントの特性(ブロック808)を利用できる。例えば、特性は、決定されたクライアントが現在メッセージングサービスにログオンしているか否か、クライアントの歴史的な存在傾向を説明するデータ(例えばクライアント「x」は通常「y」の期間有効である)、クライアントのハードウェア及び/又はソフトウェアリソース(例えば接続速度及びデータを受信するためにクライアントが必要とする総時間)などを含むことができる。
別の実施例においては、サイズ、他のデータ項目と関連する優先権などのような同期するべきデータ項目の特性(ブロック810)が利用される。更なる実施例においては、メモリサイクル、データなどを送信するためのクライアントのネットワーク回線容量などのような同期しているクライアントの特性(ブロック812)が利用される。このように、同期のスケジューリングをするために様々な特性を利用できる。いくつかの実施例について論述したが、他の様々な実施例もまた、その趣旨と範囲から逸脱せずに想定されるのが明らかである。
バージョンベクトル
前に図3〜5で示したように、ユーザインタフェースにおいては、フォルダとして共有空間を表すことができる。クライアントが同時にオンラインであるか否かに関わらず、これらのフォルダのコンテンツは、クライアント間で同期できる。こうして、2つのクライアント間で共有されるスペースの場合、これはそれらの共有フォルダにおいてクライアント双方が最終的に(すなわち、同期完了のとき)同一のデータセット(例えばファイル及びサブフォルダ)を有することを意味できる。グループ(例えば永続オブジェクト(216(a))を使用し、形成されたグループ)のメンバーすべての間で同期される空間の場合、これはグループ又はサークルのメンバーそれぞれが、それらの共有フォルダにおいて最終的に同一のデータを有することを意味できる。
様々な方法でデータの同期を達成できる。例えば、データを同期させるための複製モジュールにより、複数のマスタ状態に基づくファイル複製技法を使用できる。この技法は、レプリカ又は同期されるべきフォルダそれぞれのコピーのために、「バージョンベクトル」と呼ばれるグローバルな状態計算を含む。2つのバージョンベクトルの比較によって、複製モジュールは例えば、2つのコピーが同期されるべきか否かを決定できる。バージョンベクトルが同一の場合、そのコピーは同期していると考えられる。しかし、バージョンベクトルが異なる場合、複製モジュールは、データ項目(例えば、ファイル又はフォルダ)のどれが同期されるべきかを効率的に決定するために、バージョンベクトルの相違を使用できる。
バージョンベクトルは、同期するべき異なる多くのコピーと等しい多くのエントリを含み得る。その数は一般に同期を保つべきデータ項目の数よりもはるかに少ないので、これは有利になり得る。例えば、数万のファイルが共有空間にあっても、2つのクライアントのアダム(104(1))とボブ(104(n))との間で共有される空間に関して、各クライアントそれぞれのためのコピーの数は通常各々にたいして1つの、2つだろう。例えば、「A」及び「B」それぞれによって示されるクライアント(104(1))及び(104(n))上の2つのコピーを用いて、2つのコピーに対してあり得るバージョンベクトルの一例を以下に示す:

コピーAのバージョンベクトル:{A→15,B→300}
コピーBのバージョンベクトル:{A→12,B→500}

しかし、以下留意すべきは、2つのクライアント間で共有される空間に関する場合であっても2つ以上のコピーが含まれることがあり得るということである。例えば、クライアントのアダム(104(1))が2台の異なる機器「MA1」、「MA2」を使用しメッセージングサービス(102)と対話し、クライアントのボブ(104(n))が単一のマシン「M」を使用しメッセージングサービス(102)と対話する場合を考えよう。この場合、(MAI、MA2及びMそれぞれの上に)データのコピー3部があり、その結果、バージョンベクトルは、以下のような例の3つのエントリそれぞれを含む:

A1上のコピーAのバージョンベクトル:{MA1→18,MA2→33,M→300}
A2上のコピーAのバージョンベクトル:{MA1→13,MA2→58,M→300}
上のコピーBのバージョンベクトル:{MA1→11,MA2→10,M→777}

2台の機器間の効率的な同期問題についてバージョンベクトルを介し記述できるが、マシンのどれが同期するべきか否かを効率的に決定するための技法が依然として望まれている。例えば、クライアント「アダム」は、100個のコンタクト先(218(1))を有し、それらのコンタクトそれぞれと共有空間を維持できる。そのため、アダム(104(1))がオンラインとなるとき、アダムのメッセージングモジュール(108(1))がバージョンベクトルを交換するために100個のコンタクト先すべてに接続し、同期が望まれているか否かを決定する力ずくのアプローチが要求され、リソースの効率の悪い使用をもたらし得る。したがって、以下の図と関連し見出される共有データの効率的な同期を提供するために様々な技法、例を使用できる。
双方の実施形態は、等価性に関するバージョンベクトル比較に依存するので、ベクトル全部の代わりにバージョンベクトルのコンパクト表現を使用することにより、少ないデータをストアし送信するために、さらにバージョンベクトルは最適化され得る。そのようなコンパクト表現を達成する1つの方法は、ベクトルの正準表現からハッシュを計算することである。任意のハッシュアルゴリズムが使用できるが、(メッセージ・ダイジェスト・アルゴリズム5(MD5)又はセキュア・ハッシュ・アルゴリズム1(SHA−1)などの)暗号性の安全なものは、異なるバージョンベクトルに関する等価なハッシュすなわち衝突(コリジョン)のリスクを減少させる。後述において、「バージョンベクトル」という語句は、ベクトル全部又はベクトルのコンパクト表現いずれかを互換性を持って意味するように使用される。
図9は、インスタントメッセージングに関連して共有されるべきデータを指定するための存在記録において、バージョンベクトルが発行される例示的な実装(900)の図である。この技法は、存在記録(902(1))、(902(n))それぞれの一部としてそのバージョンベクトルそれぞれを発行するクライアント(104(1))、(104(n))それぞれに基づく。これらの存在記録の最新のコピー(902(m))は、クライアント(104(1))、(104(n))がサインオンされている限り、メッセージングサービス(102)によって維持される。クライアント104(1)、104(n)のうち1つがメッセージングサービス(102)にログオンする度に、クライアント(104(1))、(104(n))それぞれによって維持されるバージョンベクトルのうち1つが変化する度に、これらの存在記録(902(m))は更新され得る。
例えば、アダム(104(1))は、ボブ(104(n))との共有空間を有する。クライアント(104(1))、(104(n))それぞれは、それぞれの存在記録(902(1))、(902(n))において「VV」及び「VV」としてそれぞれ例示される、それぞれのバージョンベクトル、共有フォルダ(904(1))、(904(n))それぞれのコピーを維持する。以下の手順はその後、2つのフォルダが同期されるべきか否かを決定するために実行され、そうならば、同期が実行される。
クライアント(104(1))がメッセージングサービス(102)にサインオンするときはいつも(及び/又はそのバージョンベクトル「VV」の1つが変化するときはいつも)、変更(CHG)コマンド(904)を送信すること(矢印906)によって、クライアント(104(1))は、その存在情報の変更をメッセージングサービス(102)に通知する。存在記録(902(1))から得られるクライアントの(104(1))のバージョンベクトルそれぞれについての情報を伴い、CHGコマンドの一部として送信される情報は増加する。クライアント(104(1))が接続されている接続サーバ(202(1))は、クライアントの存在サーバ(202(p))にこの情報を送る(矢印908)。存在サーバ(202(p))は、クライアントの分かりやすい名前、ステータスコードなどを反映するために、クライアント(104(1))に関する(この場合、存在記録(902(m))として構成される)存在データ(910)を更新する。追加として、存在サーバ(202(p))は、クライアントの(104(1))バージョンベクトルそれぞれについての情報をストアする。
クライアント(104(n))が、そのコンタクト先のリスト(218(n))上にクライアント(104(1))を有するので、クライアント(104(1))が存在の変更があるときはいつも、メッセージングサービス(102)は、((矢印916)によって例示された対応する接続サーバ(202(n))を介し)クライアント(104(n))に新情報を有するコマンド(914)を送信する。コマンド(914)は、クライアント(104(1))、(104(n))による任意の共有空間に関する存在データ(910)から得られるクライアント(104(1))からのバージョンベクトル情報を含む。一実装においては、存在サーバ(202(p))は、クライアント(104(1))の他のバージョンベクトルに関する情報をフィルタでき、それによってリソースを節約し、クライアント(104(1))のプライバシを保護する。
コマンド(914)を受信次第、クライアント(104(n))は、受信されたバージョンベクトル「VV」とそれ自身のバージョンベクトル「VV」とを比較する。ベクトルが一致する場合、共有フォルダ(904(1))、(904(n))は同期されている。しかし、ベクトルが一致しない場合、共有フォルダ(904(1))、(904(n))の同期は、ネットワーク(106)又はピアオーバレイ(212)上の接続を介し実行される。
クライアント(104(n))は、例えばクライアント(104(1))にコンタクトし、共有フォルダ(904(1))、(904(n))を同期させるプロトコルを実行できる(矢印918)。同期が必要とされるか否かを決定するために、コンパクトな表現が、前に使用された場合、このプロトコルは、バージョンベクトル全部の交換を含むことができる。そのプロトコルの完了に続いて、クライアントそれぞれは、自らのバージョンベクトルを更新し、新しい値で存在記録(902(1))、(902(n))それぞれを更新する。
図10は、同期交渉メッセージ(SNMs)が、クライアント間で共有されるデータの複製をトリガするために利用される例示的な実装図(1000)である。この技法においては、クライアント(104(1))、(104(n))がSNMsを他のクライアントにいつ送信するかを決定するために、メッセージングサービス(102)からの定期的な存在通知を使用する。SNMsは、同期を利用し得るフォルダのためのバージョンベクトルを含む。この技法は、存在サーバにおいて追加的なストレージを利用せず、最小量の帯域を使用する。
この技法は、クライアント(104(1))、(104(n))の間において、信頼性のある単方向の通信のために使用され得る同期交渉メッセージ(SNM)(1002)と呼ばれる新しいメッセージングプロトコルのプリミティブに基づく。SNMメッセージは、意図される受取人(例えばクライアント(104(n)))を特定する目的地インスタントメッセージングハンドルと、バージョンベクトル及び共有空間のための識別子を含むペイロードを含む。
クライアント(104(1))は最初に、メッセージングモジュール(108(1))及びその対応する共有モジュール(112(1))の実行を介し、SNMメッセージ(1002)(矢印1004)をコンタクト先クライアント(104(n))に送信するための少なくとも1つの条件が満たされたかを決定する。様々な条件を利用できる。例えば、クライアント(104(1))のバージョンベクトルの1つが(例えば、共有ファイルへのローカルの変更、完全な同期などの結果として)変更され、その共有関係に関するそのコンタクト先のうち少なくとも1つ(例えば、クライアント(104(n)))はオンラインである。別の例において、それが共有関係を有するそのコンタクト先のうち1つ(例えばクライアント(104(n)))がオンラインとなる。以下留意すべきは、クライアント(104(1))の最新のバージョンベクトルが、コンタクト先、例えばクライアント(104(n))のためにキャッシュされたものと異なる場合、機器毎を基本とする特定のコンタクト先(例えばクライアント104(n))向けに最後に知られたバージョンベクトルをキャッシュすること、及び、SNMメッセージ(1002)を送信すること、によってこれを最適化できることである。
送信されたSNMメッセージ(1002)が、メッセージングサービス(102)(さらに具体的に言うと、接続サーバ(202(1))、(202(n)))によって、クライアント104(n)へ送られる(矢印1006)。SNMメッセージ(1002)を受信次第、クライアント(104(n))は、受信されたバージョンベクトル「VV」とそれ自身のバージョンベクトル「VV」とを比較する。バージョンベクトルが一致する場合、われわれは共有フォルダ(904(1))、(904(n))が同期されたことがわかる。
バージョンベクトルが異なる場合、クライアント(104(n))は、ネットワーク(106)又はピアツーピアオーバレイ(212)を介し、クライアント(104(1))とコンタクトし、フォルダ(904(1))、(904(n))を同期させるためにプロトコルを実行する(矢印1008)。従来と同様に、同期が望まれていたか否かを決定するためにコンパクト表現が使用される場合、このプロトコルはバージョンベクトル全部の交換を含むことができる。プロトコルの完了に続いて、クライアント(104(1))、(104(n))それぞれは、バージョンベクトルそれぞれを更新する。
結論
本発明は、構造上の特色及び/又は方法論的な振る舞いが特定の言語で説明されたが、添付の請求項で定義された発明が、説明された特定の特徴又は振る舞いに必ずしも限定されないことが理解されるだろう。むしろ、特定の特徴及び振る舞いは、請求の範囲に記載されている発明を実施する例示的な形式として開示される。
データ共有を伴うインスタントメッセージングを実現するために実施可能な例示的な実装における環境の図である。 図1のメッセージングサービス、複数のクライアント及びストレージをさらに詳細に示す例示的な実装のシステム図である。 インスタントメッセージングに関連し、クライアント間でクライアントデータを共有するために共有空間を利用する図1の複数のクライアントを示す例示的な実装の図である。 他の少なくとも1つのクライアントとデータを共有する図3のインスタントメッセージング及び共有空間を提供するために構成された例示的な実装におけるユーザインタフェースの図である。 他の少なくとも1つのクライアントとデータを共有する図3のインスタントメッセージング及び共有空間を提供するために構成された例示的な実装における別のユーザインタフェースの図である。 データを共有するクライアントの1つが有効でないときであっても、インスタントメッセージングセッションに関連し共有されたデータが同期される例示的な実装における手順を表すフロー図である。 インスタントメッセージングのための有効性に関連し、クライアントの存在がクライアントの間でデータを共有するために利用される例示的な実装における手順を表すフロー図である。 インスタントメッセージングに関連し、共有されたデータの同期がスケジュールされる例示的な実装における手順を表すフロー図である。 インスタントメッセージングに関連し共有されるデータを指定するために存在記録においてバージョンベクトルが発行される例示的な実装の図である。 クライアント間で共有されるデータの複製のトリガとするために利用される同期交渉メッセージの例示的な実装の図である。

Claims (20)

  1. インスタントメッセージングセッションの間、クライアントによって、他の1つ以上のクライアントと共有されるデータを指定するステップ(602)であって、前記インスタントメッセージングセッションの間、前記他の少なくとも1つのクライアントが有効でないものと、及び
    前記他のクライアントそれぞれが有効であるときに、前記データを前記クライアントと同期させるステップ(612)と、を含む方法。
  2. 前記同期させるステップが、ピアツーピアネットワーク上で実行されること、を特徴とする請求項1記載の方法。
  3. 前記指定するステップが、前記インスタントメッセージングセッションの間、通信されるインスタントメッセージを表示するために構成されるユーザインタフェースを介し実行されること、を特徴とする請求項1記載の方法。
  4. 前記指定するステップが、前記他の1つ以上のクライアントと共有されるデータに対応するフォルダの表示を含むユーザインタフェースを介し実行されること、を特徴とする請求項1記載の方法。
  5. 前記クライアント及び前記その他のクライアントに含まれないストレージのデータをストアするステップを更に含み、前記同期させるステップが、前記他の少なくとも1つのクライアントが有効であるときに、前記ストレージにストアされたデータを前記他の少なくとも1つのクライアントに提供することを含むことを特徴とする請求項1記載の方法。
  6. 前記ストレージが、ウェブインタフェースを介しアクセスできること、を特徴とする請求項5記載の方法。
  7. 前記指定するステップが、複数の前記他のクライアントを有するグループによって共有されるデータに対応するフォルダの表示を含むユーザインタフェースを介し実行され、及び
    前記グループのメンバーが、前記インスタントメッセージングセッションの終了を過ぎても存続するように構成された永続オブジェクトによって指定されること、を特徴とする請求項1記載の方法。
  8. 前記データが、データ項目に対する1つ以上の変更を記載する前記データ項目のサブセットであること、を特徴とする請求項1記載の方法。
  9. さらに、前記データの同期をスケジューリングするステップ、を含む請求項1記載の方法。
  10. 複数のクライアントによって共有されるデータが同期されるか否かを決定するステップ(802)と、及び
    前記少なくとも1つのクライアントがインスタントメッセージングを介し有効でない間、前記決定に基づき、前記データの同期をスケジューリングするステップ(806)と、を含む方法。
  11. 前記決定するステップが、インスタントメッセージを表示するために構成されるユーザインタフェースとの対話を監視することに少なくとも一部基づくこと、を特徴とする請求項10記載の方法。
  12. さらに、前記1つ以上のクライアントの存在を決定するステップを含み、前記スケジューリングするステップが、前記決定された存在に少なくとも一部基づいて実行されること、を特徴とする請求項10記載の方法。
  13. 前記決定するステップが、前記データに対応するバージョンベクトルを有する同期交渉メッセージに少なくとも一部基づくこと、を特徴とする請求項10記載の方法。
  14. 前記決定するステップが、前記1つ以上の複数のクライアントを記述する存在情報の一部としてストアされたバージョンベクトルを利用することに少なくとも一部基づいて実行されること、を特徴とする請求項10記載の方法。
  15. 前記スケジューリングするステップが、前記データを受信する前記クライアントに対応する1つ以上の最新の特性に少なくとも一部基づくこと、を特徴とする請求項10記載の方法。
  16. 前記スケジューリングするステップが、前記データをもたらす前記少なくとも1つのクライアントの1つ以上の特性に少なくとも一部基づくこと、を特徴とする請求項10記載の方法。
  17. 前記スケジューリングするステップが、同期される前記データの1つ以上の特性に少なくとも一部基づくこと、を特徴とする請求項10記載の方法。
  18. インスタントメッセージングの間、他の少なくとも1つのクライアントと共有されるために指定されたデータを同期させるか否かを決定すること(802)、及び
    前記決定に基づき、前記データと他の少なくとも1つのクライアントとをいつ同期させるかをスケジューリングすること(806)、を
    コンピュータに対して実行されるときに指示するコンピュータ実行可能命令を含む1つ以上のコンピュータ可読メディア。
  19. 前記コンピュータ実行可能命令が、インスタントメッセージを表示するために構成されるユーザインタフェースを出力することと、インスタントメッセージングセッションの間、インスタントメッセージとして通信される入力を受理することとを前記コンピュータに指示すること、を特徴とする請求項18記載の1つ以上のコンピュータ可読メディア。
  20. 前記コンピュータ実行可能命令が、前記他の少なくとも1つのクライアント、前記データ、及び前記コンピュータに基づいた特性を利用し、スケジューリングすることを前記コンピュータに指示すること、を特徴とする請求項18記載の1つ以上のコンピュータ可読メディア。
JP2008518155A 2005-06-20 2006-05-05 データ共有を伴うインスタントメッセージング Pending JP2009500698A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/157,187 US7693958B2 (en) 2005-06-20 2005-06-20 Instant messaging with data sharing
PCT/US2006/017520 WO2007001631A2 (en) 2005-06-20 2006-05-05 Instant messaging with data sharing

Publications (2)

Publication Number Publication Date
JP2009500698A true JP2009500698A (ja) 2009-01-08
JP2009500698A5 JP2009500698A5 (ja) 2009-06-18

Family

ID=37591036

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008518155A Pending JP2009500698A (ja) 2005-06-20 2006-05-05 データ共有を伴うインスタントメッセージング

Country Status (6)

Country Link
US (1) US7693958B2 (ja)
EP (1) EP1896974A2 (ja)
JP (1) JP2009500698A (ja)
KR (1) KR20080025689A (ja)
CN (1) CN101495985A (ja)
WO (1) WO2007001631A2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013504806A (ja) * 2009-09-14 2013-02-07 アリババ グループ ホールディング リミテッド ファイルディレクトリに基づいたファイルの転送のための方法、装置、およびシステム
JPWO2013001615A1 (ja) * 2011-06-28 2015-02-23 富士通株式会社 データ処理方法およびデータ処理システム
JP2016535381A (ja) * 2013-11-14 2016-11-10 ドロップボックス, インコーポレイテッド ファイルレベル・コメンティング
JP2017524188A (ja) * 2014-07-23 2017-08-24 ドロップボックス, インコーポレイテッド コンテンツ管理システムにおけるコレクションフォルダ
US10826992B2 (en) 2015-04-17 2020-11-03 Dropbox, Inc. Collection folder for collecting file submissions via a customizable file request
US10885209B2 (en) 2015-04-17 2021-01-05 Dropbox, Inc. Collection folder for collecting file submissions in response to a public file request
US10885210B2 (en) 2015-04-17 2021-01-05 Dropbox, Inc. Collection folder for collecting file submissions
US11948473B2 (en) 2015-12-31 2024-04-02 Dropbox, Inc. Assignments for classrooms

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2401259B (en) 2003-04-30 2005-12-21 Research In Motion Ltd Charging status indicator control system and method
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US7401104B2 (en) * 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
US8131739B2 (en) 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US20060101064A1 (en) 2004-11-08 2006-05-11 Sharpcast, Inc. Method and apparatus for a file sharing and synchronization system
US20060242277A1 (en) 2005-03-31 2006-10-26 Tripwire, Inc. Automated change approval
US7930346B2 (en) * 2005-08-24 2011-04-19 Microsoft Corporation Security in peer to peer synchronization applications
US7917607B2 (en) * 2005-12-30 2011-03-29 Sap Ag Software management systems and methods, including use of such systems and methods in a provider-tenant environment
US7689593B2 (en) * 2005-12-30 2010-03-30 Sap Ag Systems and methods for accessing a shared space in a provider-tenant environment
US20070174246A1 (en) * 2006-01-25 2007-07-26 Sigurdsson Johann T Multiple client search method and system
US20070294319A1 (en) * 2006-06-08 2007-12-20 Emc Corporation Method and apparatus for processing a database replica
US20090030952A1 (en) * 2006-07-12 2009-01-29 Donahue Michael J Global asset management
US20080208963A1 (en) * 2006-10-19 2008-08-28 Aviv Eyal Online File Sharing
US8433730B2 (en) * 2006-10-31 2013-04-30 Ariba, Inc. Dynamic data access and storage
US8515912B2 (en) 2010-07-15 2013-08-20 Palantir Technologies, Inc. Sharing and deconflicting data changes in a multimaster database system
US8688749B1 (en) 2011-03-31 2014-04-01 Palantir Technologies, Inc. Cross-ontology multi-master replication
US20080126475A1 (en) * 2006-11-29 2008-05-29 Morris Robert P Method And System For Providing Supplemental Information In A Presence Client-Based Service Message
US7933869B2 (en) 2006-12-29 2011-04-26 Sap Ag Method and system for cloning a tenant database in a multi-tenant system
US20080162587A1 (en) * 2006-12-29 2008-07-03 Ulrich Auer Server synchronization for maintenance activities
US8069184B2 (en) * 2006-12-29 2011-11-29 Sap Ag Systems and methods to implement extensibility of tenant content in a provider-tenant environment
US8019055B2 (en) * 2007-01-19 2011-09-13 Nokia Corporation Media instant messaging for mobile device
CN100544305C (zh) * 2007-03-16 2009-09-23 钱晓东 一种基于即时通讯平台的用户信息分享及管理的方法
US8677270B2 (en) 2007-05-04 2014-03-18 Microsoft Corporation Live companion user interface
WO2008151147A1 (en) * 2007-06-01 2008-12-11 Memeo, Inc. Automatic file sharing over a network
US8954507B2 (en) * 2007-06-22 2015-02-10 Microsoft Corporation Gathering and using awareness information
US20090037588A1 (en) * 2007-07-31 2009-02-05 Morris Robert P Method And System For Providing Status Information Of At Least Two Related Principals
JP5136304B2 (ja) * 2007-09-21 2013-02-06 セイコーエプソン株式会社 情報処理装置、情報処理方法および情報管理システム
US8209384B2 (en) * 2007-10-23 2012-06-26 Yahoo! Inc. Persistent group-based instant messaging
US20090112870A1 (en) * 2007-10-31 2009-04-30 Microsoft Corporation Management of distributed storage
US7428702B1 (en) * 2008-01-27 2008-09-23 International Business Machines Corporation Method and system for dynamic message correction
US9032295B1 (en) * 2008-03-19 2015-05-12 Dropbox, Inc. Method for displaying files from a plurality of devices in a multi-view interface and for enabling operations to be performed on such files through such interface
US8458285B2 (en) 2008-03-20 2013-06-04 Post Dahl Co. Limited Liability Company Redundant data forwarding storage
US9203928B2 (en) 2008-03-20 2015-12-01 Callahan Cellular L.L.C. Data storage and retrieval
US9141483B1 (en) 2008-03-27 2015-09-22 Dropbox, Inc. System and method for multi-tier synchronization
CN101547161B (zh) 2008-03-28 2012-09-26 阿里巴巴集团控股有限公司 文件夹传输系统、文件夹传输装置及文件夹传输方法
US7668926B2 (en) 2008-04-25 2010-02-23 Gene Fein Real-time communications over data forwarding framework
US8230348B2 (en) * 2008-04-28 2012-07-24 Roger Peters Collaboration software with real-time synchronization
US20090327299A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Replicating modifications made to contents of a shared folder
WO2009158721A1 (en) 2008-06-27 2009-12-30 Servo Software, Inc. Social mobile search
US7865563B2 (en) * 2008-08-28 2011-01-04 Brian Scott Moudy Persisting a group in an instant messaging application
US8689115B2 (en) * 2008-09-19 2014-04-01 Net Power And Light, Inc. Method and system for distributed computing interface
US20100088415A1 (en) * 2008-10-07 2010-04-08 Aaron Archer Method and apparatus for locating facilities
US8788949B2 (en) * 2008-10-28 2014-07-22 Google Inc. Provisioning instant communications for a community of users
US20100146101A1 (en) * 2008-12-09 2010-06-10 Morris Robert P Method And System For Binding A Watcher Representing A Principal To A Tuple Based On A Matching Criterion
CN101465824B (zh) * 2008-12-29 2012-05-16 腾讯科技(深圳)有限公司 即时通信文件多源传输系统及方法
US12063577B2 (en) 2009-04-08 2024-08-13 Huawei Technologies Co., Ltd. System and method for managing items in a list shared by a group of mobile devices
US9065868B2 (en) * 2009-04-08 2015-06-23 Blackberry Limited System and method for sharing data in a group of mobile devices
US9917702B2 (en) 2009-04-08 2018-03-13 Blackberry Limited System and method for managing items in a list shared by a group of mobile devices
US8650498B1 (en) * 2009-05-04 2014-02-11 SugarSync, Inc. User interface for managing and viewing synchronization settings in a synchronization system
US8909683B1 (en) 2009-07-17 2014-12-09 Open Invention Network, Llc Method and system for communicating with internet resources to identify and supply content for webpage construction
JP5531494B2 (ja) * 2009-08-05 2014-06-25 セイコーエプソン株式会社 共同作業支援システム
KR20110074244A (ko) * 2009-12-24 2011-06-30 삼성전자주식회사 통신 시스템에서 인스턴트 메시징 클라이언트 간 데이터 동기화 장치 및 방법
US9645996B1 (en) * 2010-03-25 2017-05-09 Open Invention Network Llc Method and device for automatically generating a tag from a conversation in a social networking website
US8694686B2 (en) 2010-07-20 2014-04-08 Lg Electronics Inc. User profile based configuration of user experience environment
US20120023065A1 (en) * 2010-07-20 2012-01-26 Deweese William System and method for managing data on an occasionally connected mobile device
WO2012011635A1 (en) * 2010-07-20 2012-01-26 Lg Electronics Inc. Computing device and displaying method at the computing device
WO2012011630A1 (en) 2010-07-20 2012-01-26 Lg Electronics Inc. Selective interaction between networked smart devices
DE112010005675T5 (de) 2010-07-20 2013-08-01 Lg Electronics Inc. Elektronisches Gerät, elektronisches System und Verfahren zum Bereitstellen von Information unter Verwendung derselben
CN102651716A (zh) 2011-02-24 2012-08-29 阿里巴巴集团控股有限公司 即时通讯中的文件夹传输方法及系统、即时接收客户端
US8782004B2 (en) 2012-01-23 2014-07-15 Palantir Technologies, Inc. Cross-ACL multi-master replication
KR101295209B1 (ko) * 2012-02-01 2013-09-12 엔에이치엔(주) 클라우드 서버와의 양방향 연동을 통해 파일 공유를 제공하는 그룹 메시징 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
US20130346849A1 (en) * 2012-06-06 2013-12-26 Minds + Machines Automatic uploading and synchronization of media assets
US10057318B1 (en) * 2012-08-10 2018-08-21 Dropbox, Inc. System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients
US9633125B1 (en) 2012-08-10 2017-04-25 Dropbox, Inc. System, method, and computer program for enabling a user to synchronize, manage, and share folders across a plurality of client devices and a synchronization server
RU2015100214A (ru) * 2012-08-20 2016-10-10 Рон ЛЕВИ Системы и способы основанного на коллекции комплектования и отображения мультимедийных данных
US9081975B2 (en) 2012-10-22 2015-07-14 Palantir Technologies, Inc. Sharing information between nexuses that use different classification schemes for information access control
US9501761B2 (en) 2012-11-05 2016-11-22 Palantir Technologies, Inc. System and method for sharing investigation results
KR101370316B1 (ko) * 2013-02-08 2014-03-05 에스케이플래닛 주식회사 메신저 프로그램에서의 서비스 페이지 제어 방법, 이를 위한 장치 및 시스템
US9858052B2 (en) 2013-03-21 2018-01-02 Razer (Asia-Pacific) Pte. Ltd. Decentralized operating system
US8886601B1 (en) 2013-06-20 2014-11-11 Palantir Technologies, Inc. System and method for incrementally replicating investigative analysis data
KR102162836B1 (ko) * 2013-08-30 2020-10-07 삼성전자주식회사 필드 속성을 이용한 컨텐트를 제공하는 전자 장치 및 방법
US9569070B1 (en) 2013-11-11 2017-02-14 Palantir Technologies, Inc. Assisting in deconflicting concurrency conflicts
US10148710B2 (en) * 2013-11-27 2018-12-04 At&T Intellectual Property I, L.P. Method, computer-readable storage device and apparatus for establishing persistent messaging sessions
US9009827B1 (en) 2014-02-20 2015-04-14 Palantir Technologies Inc. Security sharing system
US9641488B2 (en) * 2014-02-28 2017-05-02 Dropbox, Inc. Advanced security protocol for broadcasting and synchronizing shared folders over local area network
US10623468B1 (en) * 2014-05-30 2020-04-14 Mbr Innovations Llc Systems and methods for simultaneous electronic file exchange
US10572496B1 (en) 2014-07-03 2020-02-25 Palantir Technologies Inc. Distributed workflow system and database with access controls for city resiliency
US9785773B2 (en) 2014-07-03 2017-10-10 Palantir Technologies Inc. Malware data item analysis
US9021260B1 (en) 2014-07-03 2015-04-28 Palantir Technologies Inc. Malware data item analysis
US11347762B2 (en) 2015-03-23 2022-05-31 Dropbox, Inc. Intelligent scrolling in shared folder back integrated workspaces
US9948580B2 (en) * 2015-06-19 2018-04-17 Whatsapp Inc. Techniques to replicate data using uploads from messaging clients
US10108688B2 (en) 2015-12-22 2018-10-23 Dropbox, Inc. Managing content across discrete systems
US10621198B1 (en) 2015-12-30 2020-04-14 Palantir Technologies Inc. System and method for secure database replication
US10262053B2 (en) 2016-12-22 2019-04-16 Palantir Technologies Inc. Systems and methods for data replication synchronization
US10970679B2 (en) 2016-12-29 2021-04-06 Dropbox, Inc. Presenting project data managed by a content management system
US10970656B2 (en) 2016-12-29 2021-04-06 Dropbox, Inc. Automatically suggesting project affiliations
US10402786B2 (en) 2016-12-30 2019-09-03 Dropbox, Inc. Managing projects in a content management system
US10068002B1 (en) 2017-04-25 2018-09-04 Palantir Technologies Inc. Systems and methods for adaptive data replication
US10430062B2 (en) 2017-05-30 2019-10-01 Palantir Technologies Inc. Systems and methods for geo-fenced dynamic dissemination
US11030494B1 (en) 2017-06-15 2021-06-08 Palantir Technologies Inc. Systems and methods for managing data spills
US10380196B2 (en) 2017-12-08 2019-08-13 Palantir Technologies Inc. Systems and methods for using linked documents
US10915542B1 (en) 2017-12-19 2021-02-09 Palantir Technologies Inc. Contextual modification of data sharing constraints in a distributed database system that uses a multi-master replication scheme
US11226939B2 (en) 2017-12-29 2022-01-18 Dropbox, Inc. Synchronizing changes within a collaborative content management system
US11334596B2 (en) 2018-04-27 2022-05-17 Dropbox, Inc. Selectively identifying and recommending digital content items for synchronization
US11194767B2 (en) 2018-11-06 2021-12-07 Dropbox, Inc. Technologies for integrating cloud content items across platforms
US11500625B2 (en) * 2019-09-30 2022-11-15 Slack Technologies, Llc Method, apparatus, and computer program product for organizing the booting operation of a group-based communication browser session
US11822513B2 (en) 2020-09-18 2023-11-21 Dropbox, Inc. Work spaces including links to content items in their native storage location

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040015569A1 (en) * 2002-07-16 2004-01-22 Mikko Lonnfors System and method for providing partial presence notifications
US20050097440A1 (en) * 2003-11-04 2005-05-05 Richard Lusk Method and system for collaboration
US7124123B1 (en) * 2003-06-30 2006-10-17 America Online, Inc. Intelligent processing in the context of away and offline instant messages

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6584502B1 (en) 1999-06-29 2003-06-24 Cisco Technology, Inc. Technique for providing automatic event notification of changing network conditions to network elements in an adaptive, feedback-based data network
US6662212B1 (en) * 1999-08-31 2003-12-09 Qualcomm Incorporated Synchronization of a virtual workspace using E-mail extensions
EP1256051A4 (en) * 2000-01-25 2004-09-29 Autodesk Inc DEVICE AND METHOD FOR ACCESSING ARCHITECTURAL DRAWINGS BY MEANS OF THE INTERNET AND FOR PROCESSING THESE DRAWINGS
US6912564B1 (en) * 2000-05-04 2005-06-28 America Online, Inc. System for instant messaging the sender and recipients of an e-mail message
KR100472202B1 (ko) * 2001-12-05 2005-03-08 한국전자통신연구원 아이 알 씨 프로토콜을 이용한 웹 공동 브라우징 시스템및 그 방법
US6938070B2 (en) * 2001-12-17 2005-08-30 Dassault Systemes Conflict resolution for collaborative work system
US20030182428A1 (en) * 2002-03-19 2003-09-25 Jiang Li Peer-to-peer (P2P) communication system
US6957077B2 (en) * 2002-05-06 2005-10-18 Microsoft Corporation System and method for enabling instant messaging on a mobile device
US7734690B2 (en) * 2003-09-05 2010-06-08 Microsoft Corporation Method and apparatus for providing attributes of a collaboration system in an operating system folder-based file system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040015569A1 (en) * 2002-07-16 2004-01-22 Mikko Lonnfors System and method for providing partial presence notifications
US7124123B1 (en) * 2003-06-30 2006-10-17 America Online, Inc. Intelligent processing in the context of away and offline instant messages
US20050097440A1 (en) * 2003-11-04 2005-05-05 Richard Lusk Method and system for collaboration

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013504806A (ja) * 2009-09-14 2013-02-07 アリババ グループ ホールディング リミテッド ファイルディレクトリに基づいたファイルの転送のための方法、装置、およびシステム
JPWO2013001615A1 (ja) * 2011-06-28 2015-02-23 富士通株式会社 データ処理方法およびデータ処理システム
US9529549B2 (en) 2011-06-28 2016-12-27 Fujitsu Limited Data processing method for storing data and restoration information and data processing system
JP2016535381A (ja) * 2013-11-14 2016-11-10 ドロップボックス, インコーポレイテッド ファイルレベル・コメンティング
US10482152B2 (en) 2013-11-14 2019-11-19 Dropbox, Inc. File-level commenting
JP2017524188A (ja) * 2014-07-23 2017-08-24 ドロップボックス, インコーポレイテッド コンテンツ管理システムにおけるコレクションフォルダ
US10650155B2 (en) 2014-07-23 2020-05-12 Dropbox, Inc. Collection folders in a content management system
US10885209B2 (en) 2015-04-17 2021-01-05 Dropbox, Inc. Collection folder for collecting file submissions in response to a public file request
US10826992B2 (en) 2015-04-17 2020-11-03 Dropbox, Inc. Collection folder for collecting file submissions via a customizable file request
US10885210B2 (en) 2015-04-17 2021-01-05 Dropbox, Inc. Collection folder for collecting file submissions
US10885208B2 (en) 2015-04-17 2021-01-05 Dropbox, Inc. Collection folder for collecting file submissions and scanning for malicious content
US10929547B2 (en) 2015-04-17 2021-02-23 Dropbox, Inc. Collection folder for collecting file submissions using email
US11157636B2 (en) 2015-04-17 2021-10-26 Dropbox, Inc. Collection folder for collecting file submissions in response to a public file request
US11244062B2 (en) 2015-04-17 2022-02-08 Dropbox, Inc. Collection folder for collecting file submissions
US11270008B2 (en) 2015-04-17 2022-03-08 Dropbox, Inc. Collection folder for collecting file submissions
US11475144B2 (en) 2015-04-17 2022-10-18 Dropbox, Inc. Collection folder for collecting file submissions
US11630905B2 (en) 2015-04-17 2023-04-18 Dropbox, Inc. Collection folder for collecting file submissions in response to a public file request
US11783059B2 (en) 2015-04-17 2023-10-10 Dropbox, Inc. Collection folder for collecting file submissions
US11948473B2 (en) 2015-12-31 2024-04-02 Dropbox, Inc. Assignments for classrooms

Also Published As

Publication number Publication date
EP1896974A2 (en) 2008-03-12
US20070005707A1 (en) 2007-01-04
US7693958B2 (en) 2010-04-06
CN101495985A (zh) 2009-07-29
KR20080025689A (ko) 2008-03-21
WO2007001631A3 (en) 2009-04-09
WO2007001631A2 (en) 2007-01-04

Similar Documents

Publication Publication Date Title
JP2009500698A (ja) データ共有を伴うインスタントメッセージング
JP4714500B2 (ja) 複数のコンピュータシステムを介する電子文書に対するリアルタイムに近い協同作業を可能にする方法、システムおよび装置
US9396156B2 (en) System and method for socially organized storage and shared access to storage appliances
US20160117377A1 (en) System and Method for Managing User Data in a Plurality of Storage Appliances Over a Wide Area Network for Collaboration, Protection, Publication, or Sharing
JP3962157B2 (ja) プロキシ及び共有状態サーバを使用してwwwでの認知、ツアー及び会議をポータブルに可能にする方法及びシステム
JP5624479B2 (ja) 同期サーバープロセス
US8862672B2 (en) Content sharing and instant messaging
US8983902B2 (en) Transparent caching of configuration data
JP4381655B2 (ja) ストレージシステム、ストレージ装置、及び該ストレージ装置を利用した情報共有方法
EP2230819A1 (en) Private network system and method
CN101167069A (zh) 文件对等同步的系统和方法
JP2004318822A (ja) プレゼンス情報表示方法及び装置
US20080027996A1 (en) Method and system for synchronizing data using a presence service
WO2003085559A1 (en) Peer-to-peer file sharing
JP2009510648A (ja) 分散型クリップボード(distributedclipboard)
CN102365634A (zh) 用于管理分布式资产和元数据的系统
JP2006164234A (ja) 情報共有空間提供システム、情報共有空間提供方法及びコンピュータプログラム
CN111385325B (zh) 基于p2p的文件分发系统和方法
JP2021507333A (ja) グループ間でデータを共有するための方法および装置
JP2005267266A (ja) グループ間情報共有システム
KR20090006504A (ko) 아이피 멀티미디어 서브시스템에서 피투피 서비스 제공방법 및 장치
JP3515839B2 (ja) コンピュータシステム間通信システム
JP2005321922A (ja) 情報共有システムおよび情報共有用プログラム
KR100556716B1 (ko) 네트워크를 통해 서로 연결된 복수개의 단말들 간의 분산정보 공유 방법 및 시스템
CN113992650A (zh) 文件处理方法、装置、电子设备及计算机可读存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090406

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110404

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110902

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110906