JP2003536123A - 通信マネージャを備えたコンピュータ・システムによるアクティビティに基づいたコラボレーションのための方法及びその装置 - Google Patents

通信マネージャを備えたコンピュータ・システムによるアクティビティに基づいたコラボレーションのための方法及びその装置

Info

Publication number
JP2003536123A
JP2003536123A JP2001511555A JP2001511555A JP2003536123A JP 2003536123 A JP2003536123 A JP 2003536123A JP 2001511555 A JP2001511555 A JP 2001511555A JP 2001511555 A JP2001511555 A JP 2001511555A JP 2003536123 A JP2003536123 A JP 2003536123A
Authority
JP
Japan
Prior art keywords
network
local
data
connectable
relay
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.)
Granted
Application number
JP2001511555A
Other languages
English (en)
Other versions
JP4564697B2 (ja
JP2003536123A5 (ja
Inventor
レイモンド・イー・オジー
ケネス・ジー・ムーア
ロバート・エイチ・マイヒル
ブライン・エム・ランバート
Original Assignee
グルーブ・ネットワークス・インコーポレイテッド
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 グルーブ・ネットワークス・インコーポレイテッド filed Critical グルーブ・ネットワークス・インコーポレイテッド
Publication of JP2003536123A publication Critical patent/JP2003536123A/ja
Publication of JP2003536123A5 publication Critical patent/JP2003536123A5/ja
Application granted granted Critical
Publication of JP4564697B2 publication Critical patent/JP4564697B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 本発明では、デルタを含むデータ変更要求がネットワーク接続可能なデバイス間でネットワークを介して通信されるようなコラボレーション・システムのための通信サービスを通信マネージャが提供する。通信マネージャはネットワーク接続可能なローカル・デバイス上で動作してローカルな場所で生成されたデルタをネットワークを介して少なくとも一つのネットワーク接続可能なリモート・デバイスへ送信し、また少なくとも一つのネットワーク接続可能なリモート・デバイスからネットワークを介してリモートな場所で生成されたデルタを受信する。通信マネージャはユニキャスト技術、マルチキャスト技術、またはブロードキャスト技術でデルタを送信できる。通信マネージャはネットワーク接続可能なリモート・デバイスがネットワークに接続されていることを示すネットワーク接続状態情報に呼応してローカルな場所で生成されたデルタをネットワーク接続可能なリモート・デバイスのアドレスへ直接送信する。プレゼンス機構は要求に応じて、ネットワーク接続可能なデバイスの各々から取得するネットワーク接続状態情報を維持また配布する。通信マネージャはさらにネットワーク接続可能なリモート・デバイスがネットワークから切断されていることを示すネットワーク接続状態情報に応じてローカルな場所で生成されたデルタをリレーのアドレスへ送信する。ネットワーク接続可能なリモート・デバイスがネットワークに再接続されたことがリレーに通知されるまでリレーはデルタを保存しておき、リレーが再接続されたネットワーク接続可能なリモート・デバイスへデルタを送信する。

Description

【発明の詳細な説明】
【0001】 発明の分野 本発明はインターネットなどのネットワークを介して通信できるように相互に
接続されたコンピュータに関し、さらに詳しくは分散型データ・モデルに準拠し
てデータを調整あるいは維持するための分散型コンピュータシステムに関する。
【0002】 発明の背景 インターネットは、数百万のユーザ間での通信及び対話(interacti
on)のためのダイナミックな公共の環境を作り出した。ビジネスにおいては、
インターネットによりベンダとメーカ、メーカとディストリビュータ、ディスト
リビュータとカスタマ、その他の関係が再定義された。個々の企業の社内にある
機密ネットワークへインターネット技術が拡張され、これらは「イントラネット
」あるいは「プライベート・インターネット」と呼ばれているが、会社のディレ
クトリ及び会社のネットワーク・インフラストラクチャを使って、新しい形で社
員間、またワークグループ間でのドキュメントや情報の共有ができるようになっ
た。オンライン・サービスたとえば電子掲示板やチャットルーム、電子商取引ま
た製品のテクニカルサポートなどが、インターネットを介して運営されているウ
ェブ(WWW (World Wide Web))上で利用できる。
【0003】 インターネットは、その中心に、サーバ・クライアント・アーキテクチャがあ
り、これは個々のクライアント(即ちインターネット・コンテンツのユーザ)が
たとえばブラウザなどのコンピュータで実行可能なアプリケーションを介してサ
ーバ(インターネット・コンテンツのプロバイダ)とインタフェースし、ウェブ
・サイトからドキュメントを入手する。ブラウザはソフトウェア・プログラムで
、パーソナル・コンピュータからインターネット・ドキュメントを要求、受信(
たとえばダウンロード)、解釈、表示することができるようにし、また一般にイ
ンターネットを散策(navigate)できる。ウェブ・サーバは典型的には
外部プログラムを実行するための標準インタフェースを備え、最も一般的なイン
タフェースはCommon Gateway Interface (CGI)
である。ウェブ・サイトはドキュメントの集合で、通常はホームページと、これ
にリンクされるドキュメントで構成され、クライアントから離れたリモートな場
所にあるサーバ上に配置されている。ドキュメントはコンパウンド・ドキュメン
トであっても良く、これはデータ、グラフィックス、ビデオ、サウンド、および
/またはその他の形式のメディアならびに他の文書へのリンクで構成される。基
本的に、WWWは相互接続されたドキュメントの、または、さらに正確にはイン
ターネット上の様々なサイトに配置されているドキュメント・オブジェクトのウ
ェブ(蛛の巣:web)である。
【0004】 WWW上のドキュメント・オブジェクトの形式にはドキュメントとスクリプト
とがある。スクリプトは実行可能なプログラムまたはファイルに格納された一組
のコマンドであり、これがウェブ・サーバにより実行され、ドキュメントを作成
し、そのドキュメントがウェブ・ブラウザへ返される。スクリプトによる代表的
なアクションには、ライブラリ・ルーチンまたはその他のアプリケーションを実
行してファイルまたはデータベースから情報を取り出すこと、または選択された
ハイパーテキスト・リンクに対応する文書を取得することが含まれる。スクリプ
トは、たとえば、ユーザがウェブ・ブラウザ上で特定のハイパーテキスト・リン
クを選択した時に、ウェブ・サーバ上で実行される。
【0005】 インターネット技術の基礎となっているものは標準化の進歩であり、これには
パーソナル・コンピュータのハードウェア、ソフトウェア、ネットワーク・プロ
トコル、インフラストラクチャの標記方法(たとえばUniform Reso
urce LocatorまたはURL)が含まれる。URLはWWWにある全
てのドキュメント・オブジェクトについてその位置のアドレスを提供する。UR
Lはドキュメント・オブジェクトを唯一無二の形で(以下、ユニークに)参照し
、しばしばインターネット・プロトコルを用いたアクセス・アルゴリズムを定義
する。
【0006】 本明細書で使用されている表現として、「インターネット・プロトコル」は、
インターネット上で送信するためのドキュメントを含むメッセージを生成するた
めに一般に受け入れられて使用されたり、またはインターネット上でこうしたメ
ッセージを送信するための、それぞれ現行のまたは将来の言語表記および現行ま
たは将来の通信プロトコルであると定義される。これらの言語表記には、たとえ
ば、現時点ではHypertext Markup Language (HT
ML)やeXtensible Markup Language (XML)
が含まれる。これらの通信プロトコルはたとえば現時点では、Hypertex
t Transfer Protocol (HTTP)、TCP/IP、FT
P、GOPHER、NetBios、SPX/IPX(TM)、AppleTa
lk(TM)などを含む。通信プロトコルの主な必要条件はアドレス可能なネッ
トワーク・デバイスカンで信頼性のあるまたは信頼性のない指向性セッションの
確率をサポートすることである。当業者はこれらの言語表記やプロトコルに詳し
いであろう。
【0007】 HTMLはハイパーテキスト・ドキュメントを記述するために使用される言語
で、マルチメディア・コンテンツや他のドキュメントへのリンクを含む。HTM
Lドキュメントはマークアップ要素(以下、マークアップ・エレメント)の階層
的セットを含み、多くのエレメントが開始タグとこれに続くコンテンツ、さらに
それに続く終了タグを備える。タグはアングル・ブラケット(<と>)で囲み、
ドキュメントがどのような構造になっているか、ドキュメントをどのように表示
するか、またハイパーテキスト・リンクのリンク先とラベルなどを表わす。マー
クアップ・エレメントのためのタグが存在しており、これらはたとえばタイトル
、ヘッダーや、ボールド、インタリックなどのテキスト属性、リスト、パラグラ
フ境界、他のドキュメントへの外部リンク、また同じ文書の他の部分への内部リ
ンク、グラフィック画像、及びその他多くのドキュメント機能などである。HT
MLを使ったプログラミングに関しては多くの成書が流通している。
【0008】 XMLはインターネット・プロトコルに含まれるもう一つの言語表記である。
XMLは、少なくとも現行バージョンでは、HTMLと互換性があってこれを補
足するものである。コンピュータに格納されていて、XMLドキュメントと呼ば
れるデータ・オブジェクトのクラスを記述する、またこれらのオブジェクトを処
理するプログラムの動作を記述する標準的な方法である。XMLドキュメントは
エンティティ(entities)と呼ばれる格納単位から構成され、これには
テキストデータまたはバイナリデータのどちらかが含まれる。テキストは文字か
ら構成され、その幾つかはドキュメントの文字内容を構成し、別の幾つかはマー
クアップ(markup)を構成する。マークアップはドキュメントの記述たと
えば格納レイアウトや論理構造などを記述する(以下、エンコードする)。XM
L処理装置と呼ばれるソフトウェアモジュールを使用してXMLドキュメントを
読み出し、その内容や構造へのアクセスを提供する。XMLに関するさらに詳し
い情報はXML仕様バージョン1.0への参照で得ることができ、<HTTP:
//www.w3.org/XML>で利用可能であり、また本明細書の参照に
含めてある。
【0009】 ウェブ・サーバとウェブ・ブラウザは代表的にはHTTPメッセージプロトコ
ルおよびその基盤となるインターネットのTCP/IPデータトランスポート・
プロトコルを用いて通信する。HTTPにおいて、ウェブ・ブラウザはウェブ・
サーバへの接続を確立してからHTTP要求メッセージをサーバに送出する。要
求メッセージに呼応して、ウェブ・サーバは認証をチェックし、たとえばURL
で識別されるドキュメントをダウンロードするなどの要求された動作を実行し、
要求された動作で得られたHTMLドキュメントあるいはエラーメッセージのど
ちらかを含むHTTP呼応メッセージを返す。返されたドキュメントは単にウェ
ブ・サーバ上に格納されているスタティック(静的)ファイルであったり、要求
メッセージに呼応して呼び出されたスクリプトを使用して動的に生成されること
がある。
【0010】 TCP/IPプロトコルを使用するネットワークは宛先デバイスのインターネ
ット・プロトコル(IP)に従ったアドレス(以下、IPアドレス)に基づいて
メッセージを転送する。IPアドレスは特定のフォーマットに準拠したもので、
現在のところピリオドで区切られた4個の数字で表わされる32ビットの数値ア
ドレスを含む。ネットワーク上の各デバイスはネットワーク上で通信に使用する
ユニークなIPアドレスを有する。本明細書で以降使用する術語「IPアドレス
」は、文脈に応じて、現在の又は将来のインターネット・プロトコルに準拠した
アドレス方式を含むことを想定している。
【0011】 インターネットを活用するために、インターネット・プロトコルに準拠したツ
ールや資源が開発されており、これには企業で必須のアプリケーションたとえば
eメール(e−mail)が含まれる。eメールというのは電子メールのことで
、これを用いて選択したアドレスで電子的にドキュメントを送受信する。インタ
ーネットを使う対話の大半が、「ドキュメントの送受信」モデルに従ったeメー
ルの使用や、その他のブラウザを使うメディアであると予想されていた。おそら
くはこのモデルのために、ユーザはインターネットを本質的に「ピア・ツー・ピ
ア」的なものであり、これによって個人が他の個人によって提供されたドキュメ
ントにアクセスできるものであり、しかも、もっと大きな権限を有する者による
干渉を受けないでできるものであると見なすことが多い。
【0012】 インターネットはユーザに娯楽を提供したり通信の有用な方法を提供する上で
ダイナミックかつフレキシブルなものであるが、ユーザの要求の全部を満たすこ
とはできない。ユーザはますますインターネットを通して対話するようになるが
、もっと在来型の方法たとえばマルチメディア(電話、ファックス、ホワイトボ
ード)のものやマルチテンポラル(リアルタイム、オーバーナイト・メール)な
もの、またその他形式にとらわれない通信手段を使うことにより、インターネッ
ト以外での対話も引き続き行われている。
【0013】 共有されるプライベート空間での個人や中小グループ間でのパーソナルでプラ
イベートな通信やその他共有される相互の活動にインターネットに基づくパラダ
イムを拡張することが望ましい。このような対話は、参加者のパーソナルコンピ
ュータ間またはその他のネットワーク接続可能なデバイス間で即時的、直接的、
機密的に行なわれるのが望ましく、これらの対話は、通信が傍受されたり機密性
が侵害されたりするような第三者のウェブ・サイトへとインターネット上のトラ
フィックが集中させるようなサーバ・ボトルネックとは何ら関わりを持たないの
が良い。
【0014】 また様々な遠隔地(以下、リモートサイト)にいるユーザがピア・ツー・ピア
の形式でドキュメントを共有し編集できるようにする一方で、ローカルサイトに
おいてドキュメントの一貫したコピーを維持することのできる技術を提供するの
も望ましい。このような技術ではユーザの誰もがドキュメントに関する変更要求
を発行でき、変更要求が発行された時点でサイトがネットワークから切断されて
も当該変更が調整された方法で全てのローカルサイトにあるコピーに対して非同
期的に行なわれる。
【0015】 発明の要約 本発明はパーソナルコンピュータ・システム、通信装置、またはその他のネッ
トワーク接続可能なデバイスで動作可能で、遠隔地に居る他のユーザと共有して
特定のタスクたとえば「チャット」、ゲーム、またはビジネスアプリケーション
を実行するためのアクティビティとよばれる装置に関するものである。アクティ
ビティはデルタと呼ばれるデータ変更要求をユーザとの対話呼応して生成するた
めのツールを含む。アクティビティはデータ・モデルに準拠して不揮発性で永続
的であることが望ましいメモリにデータを保存するためのデータ変更エンジンも
備える。データ変更エンジンはツールからデルタを受信して、そのデルタにその
要求を実行するアクティビティ特有のコマンドを提供し、デルタの実行に起因す
るデータ変更をツールへ通知するためのツール・エンドを含む。データ変更エン
ジンはダイナミクス・マネージャからデータ変更指示を受信してからデルタを実
行する、即ちデルタのコマンドを実行して要求された変更をデータに加えるため
のダイナミクス・マネージャ・エンドも含む。
【0016】 別の態様において、本発明は「テレスペース」と呼ばれる共有プライベート空
間で個人及び中小グループ間の通信及びその他の共有及び相互活動を提供するた
めのシステムに係る。本システムにおいて、テレスペースの参加者またはメンバ
ーはネットワーク接続可能なデバイスを介して対話し、デバイスはたとえばイン
ターネットまたはイントラネットなどのネットワーク上で互いに通信してテレス
ペース・データのローカルコピーを個々に格納する。各々のテレスペースはテレ
スペースのメンバーのネットワーク接続可能なデバイス各々で動作可能な1つま
たはそれ以上のアクティビティのインスタンシエーションである。各々のアクテ
ィビティはテレスペースのメンバーとの対話に呼応してデータ変更要求またはデ
ルタを開始するための1つまたはそれ以上のツールを含む。各々のアクティビテ
ィはまた、ツールとは別に、共通データ・モデルに準拠したテレスペース・デー
タのローカルコピーを保持するための1つまたはそれ以上のデータ変更エンジン
も含む。データ・モデルはたとえば、アクティビティに固有であって、テレスペ
ース全体にわたるのが望ましい。各々のネットワーク接続可能なデバイスもロー
カルな場所で生成するデルタについて、デルタに呼応して、要求された変更をデ
ータのローカルコピーに適用することによりデータ変更エンジンに指示を出して
デルタを実行させるためと、様々なネットワーク接続可能なデバイスからのデル
タの実行を調整するためのダイナミクス・マネージャを含む。
【0017】 さらに別の観点においては、本発明は望ましくはインターネット・プロトコル
に従って通信するように接続された望ましくはネットワーク接続可能な別の場所
にある複数のデバイスを含むネットワーク化されたシステムにおいて実施できる
。ネットワーク接続可能な各のデバイスは(a)共通データ・モデルに準拠して
アクティビティに関連するデータのローカルコピーを格納するためのメモリ、(
b)前述のデータ変更エンジンに対応する1つ以上のツールを各々が含む1つ以
上のアクティビティ、(c)デルタが関係するテレスペースに参加するネットワ
ーク化されたシステムのネットワーク接続可能な全てのデバイスの間でデルタを
共有させるための通信マネージャ、(d)ローカルに生成されたデルタと遠隔地
で生成された(以下、リモート生成された)デルタの両方の実行を調整するため
のダイナミクス・マネージャ、を含む。ネットワーク化されたシステムのネット
ワーク接続可能なデバイスのどれででもユーザの対話を開始してその結果として
のデルタを生成することができ、このときのデルタは望ましくはネットワーク上
のデバイスの各々に送信される。ダイナミクス・マネージャはローカルのデータ
変更エンジンの動作を指示し、望ましくはデルタの実行に優先順位を付けてネッ
トワーク化されたシステム全体でのデータの実質的な一貫性を維持する。ネット
ワーク化されたシステムは様々なリモートサイトにいるユーザに対して、たとえ
ばデータを共有して編集したり、ピア・ツー・ピア型の形式でその他の活動を独
立して実行できるようにする一方で、ネットワークから切断されている時でも各
々のネットワーク接続可能なデバイスで使用するデータの実質的に一貫したコピ
ーを保持することができるようにする。
【0018】 さらに別の観点においては、本発明は個人間の対話のためのアクティビティに
基づくコラボレーションシステム(ABCシステム)として実装可能である。A
BCシステムはたとえば公衆ネットワーク(たとえばインターネットまたはワイ
ドエリアネットワーク(WAN))経由またはプライベート・ネットワーク(ロ
ーカル・エリア・ネットワーク(LAN)またはイントラネット)経由で、ケー
ブル、光ファイバー、赤外線(IR)またはその他の形式の通信リンクにより前
述のネットワーク化されたシステムを形成するように接続可能なネットワーク接
続可能な複数のデバイスを含む。ネットワーク接続可能な各々のデバイスは前述
のメモリと、1つ以上のダイナミクス・マネージャを含むフレームワークを装備
している。ネットワーク接続可能なデバイスは公衆ネットワーク・インフラスト
ラクチャ、パーソナル・デスクトップ・アプリケーション、及びインフラストラ
クチャ(時に「パーソナル・インターネット」と呼ばれることがある)、また適
用可能なら企業内イントラネットともプラグイン式に互換性を有するものが望ま
しい。ABCシステムは動的に挿入可能型アクティビティ・コンポーネント(以
下、ダイナミックなスナップイン・アクティビティ・コンポーネント)を使用す
るのが望ましく、各々がたとえば「チャット」、ドキュメント編集、ゲーム、な
どの特定のタスクを実行する。アクティビティ・コンポーネントはたとえばシュ
リンクラップ製品として利用できたりまたはたとえばインターネットなどのネッ
トワーク上からダウンロードできるソフトウェアを含むことができる。アクティ
ビティ・コンポーネントはフレームワークと共通のAPI(アプリケーション・
プログラミング・インタフェース)を介して動作可能である。したがって、フレ
ームワークはアクティビティ・コンポーネントの形をとるアプリケーションのた
めのプラットフォームであると見なすことができまたそのように機能する。
【0019】 本発明のさらに別の観点においては、ローカルな場所で生成したデルタをネッ
トワーク接続可能なリモート・デバイスへ送信するためとリモートな場所で生成
されたデルタをネットワーク接続可能なリモート・デバイスから受信するための
ネットワーク接続可能なローカル・デバイスで動作可能な通信マネージャをさら
に含むフレームワークに関する。通信マネージャはネットワーク接続可能なリモ
ート・デバイスへ直接たとえば各々のURLに、または「格納及び送信」方式(
以下、「ストア・アンド・フォワード」方式)のリレーへたとえばそのURLへ
、ネットワーク接続可能なリモート・デバイスに関するネットワーク接続状態の
情報に応じて、選択的に送信可能である。ネットワーク接続状態情報は、たとえ
ば通信プロトコルの互換性や、ローカル・デバイスからリモート・デバイスへ到
達できなくするような機密性の問題(たとえばファイアウォール)に関する情報
などを含み通信マネージャによって保持される接続性情報を含むことがある。接
続状態情報はさらに、たとえばプレゼンス・サーバなどのプレゼンス機構によっ
て保持されるものであって、リモート・デバイスのオンライン/オフライン状態
に関する情報も含むことができる。プレゼンス・サーバはABCシステムの一部
をなすことができ、たとえば通信マネージャへネットワークを介してオンライン
/オフライン状態情報を送信することを担当する。ネットワーク接続可能なリモ
ート・デバイスが一時的にネットワークへ接続されていない状態(「オフライン
」状態)では、リレーはネットワーク接続可能なリモート・デバイスがネットワ
ークへ再接続したと通知されるまでデルタを保管しておき、再接続したらネット
ワーク接続可能なリモート・デバイスへデルタを送信することができる。ネット
ワーク接続可能なリモート・デバイスからのデルタ受信では、通信マネージャが
プレゼンス・サーバへオンライン/オフライン状態情報を送出してネットワーク
接続可能なローカル・デバイスがネットワークに接続しているか(「オンライン
」状態)したがってリモート・デバイスからのデルタの受信が可能かどうかを通
知する。
【0020】 つまり、本発明はそれぞれ別個の商業製品やサービスとして実現可能で、これ
には個々のアクティビティ・コンポーネント、ネットワーク接続可能な個々のデ
バイス用のフレームワークおよび/またはネットワーク化されたシステムまたは
ABCシステム、ならびにシステムを構成するデバイス間の対話を行なうための
通信サービスの提供を含む。
【0021】 好適実施態様の詳細な説明 A.術語 最初に、本明細書で使用している幾つかの術語と略語を紹介するのが有用であ
ろう。これには以下を含む:アクティビティ、クライアント、通信マネージャ、
コンポーネント、コントローラ、デルタ、デバイス、ダイナミクス・マネージャ
、エンジン、フレームワーク、アイデンティティ、メンバー、ナビゲーション、
人、サーバ、テレスペース、ツール、URL、XML。
【0022】 アクティビティ(Activity)は、あるユーザが他のユーザと対話する
ために実際にはABCシステムで何をするかを表わす。術語「アクティビティ」
は状況によって二つの意味のどちらかを取ることができる。「アウトサイド・ビ
ュー」からは、ABCシステムとコンピュータ・ユーザとの間のランタイムの対
話を意味する、たとえばこの種のアクティビティでは共有ホワイトボードに描画
するのをユーザに許可したり、または二人以上のユーザがリアルタイムでチャッ
トするのを許可する。この意味でのアクティビティはまたバックグラウンド・サ
ービス(即ちエージェント)であっても良い。これはローカルデバイスまたはサ
ーバデバイス上でユーザの側で動作し、たとえばアーカイブサーバ・エージェン
ト、または受信FAXエージェントなどである。ソフトウェア設計者の「インサ
イド・ビュー」からは、「アクティビティ」はユーザのパーソナル・コンピュー
タまたはその他の形態の装置上で動作することができ決まったタスクを実行する
モジュール化されたプログラムであってコンピュータで実行可能なプログラムを
表わす。この意味でのアクティビティはツールとエンジンという2種類のコンポ
ーネントからなり、これらは設計時に統合されて「アクティビティ・テンプレー
ト」を作成する。アクティビティ・テンプレートはたとえばシュリンクラップ・
ソフトウェアとして、またはウェブからダウンロードできるソフトウェアとして
、など多くの方法で配布することができる。ワープロ、スプレッドシートなどに
使用するため広く配布されるプログラムはABCシステムで使用できるように設
計されたバージョンであって、ABCシステムプログラマ・インタフェースに適
合するアクティビティ・テンプレートの形で販売されるバージョンを有するもの
として考えている。
【0023】 クライアント(Client)は、ユーザのパーソナル・コンピュータ、通信
機器、またはその他の形のデバイスで、ヒトとの対話ができ、ネットワークたと
えばインターネットに接続可能なものを表わす。ユーザのパーソナル・コンピュ
ータ上で実行されるバックグラウンド・プログラムは「クライアント・サービス
・コントローラ」と呼ばれる。ユーザのパーソナル・コンピュータ上で実行され
るフォアグラウンドのユーザ・インタフェース(UI)プログラムは「クライア
ントUIコントローラ」と呼ばれる。
【0024】 通信マネージャ(Communications Manager)は、しか
るべき宛先とのデルタの送受信を指示するメカニズムを表わす。通信マネージャ
はたとえば、コンピュータで実行可能なプログラムとして実装することができ、
これが、ネットワークたとえばインターネット上で送信するためにツール/エン
ジンのペアで作成されてローカルに開始したデルタを別のリモート・パーソナル
・コンピュータへまたは他の形のネットワーク接続可能なデバイスへ送信する、
またはそのリモートデバイスがネットワークに接続されていない場合にはリレー
装置へ送信するもので、またこれはネットワークたとえばインターネット上で受
信されるリモートで生成されたデルタをダイナミクス・マネージャへ送信する。
通信マネージャはたとえばそのリモート・デバイスがネットワークに接続されて
いない場合には、またはネットワークバンド幅の有効利用または通信効率を向上
するため(たとえばファンアウトやルーティング)このようなデルタをリレーへ
転送する。通信マネージャはネットワークたとえばインターネット上で受信され
るリモートな場所で生成されたデルタをダイナミクス・マネージャへ送信する。
【0025】 コンポーネント(Component)は、コンピュータで実行可能なプログ
ラムとアクティビティ内部で使用されるその資源を表わす。全てのコンポーネン
トはURLで識別される。ウェブがコンポーネントのグローバル・リポジトリで
、ABCシステムの適当なコンポーネント・プラットフォームへ確実にダウンロ
ード可能なバージョンを備えるものとして考えている。
【0026】 コンピュータ(Computer)は、以下で定義するような装置を表わす。
【0027】 コントローラ(Controller)は、トップレベルにあるプログラムで
あってコンピュータで実行可能なプログラムを表わし、これはABCシステムの
「内部」機能を駆動する。コントローラは任意のプラットフォームたとえばUN
IXTMのデーモン・コントローラまたはインテル社製マイクロプロセッサ搭載
コンピュータ・システム上で動作するマイクロソフト・ウインドウズ(TM)用
コントローラとしてチューニングされる。一般的な2種類のコントローラとして
は、一般にユーザからは見えないバックグラウンド・プロセスとして動作するサ
ービス・コントローラと、ユーザが対話的に制御するユーザ・インタフェース(
UI)コントローラがある。
【0028】 デルタ(Delta)は、1つまたはそれ以上のツールからエンジン宛てのデ
ータ変更要求(即ちデータに対して希望する変更についての通知またはプロンプ
ト)を内包する自己内包型のデータユニットを表わす。ツールはユーザとの対話
に呼応してダイナミクス・マネージャによるデルタ作成を開始し、後述するよう
に、ダイナミクス・マネージャの制御下で非同期実行のためにこれらをエンジン
に送信する。デルタは制御情報を提供するヘッダ部分と、要求が関連するデータ
に関する情報を提供するペイロード部分とを含む特定のフォーマットを持ってい
る。個々のデルタは1つまたはそれ以上のペイロードを持つことができ、多数の
ペイロードを使用する場合には各々をユニークなデバイス機能またはユーザの役
割を有するテレスペース・メンバーあてに指定できる。ツールはユーザへの表示
用またはその他の形でのプレゼンテーションを行なうためエンジンから潜在的デ
ータ変更に関する情報を要求し、デルタが表示を変更させた時に非同期的に通知
される。
【0029】 デバイス(Device)は、たとえばパーソナル・コンピュータ(pc)や
通信機器など、本明細書では文脈からして特に別のものが示されない限りは、通
常ネットワーク接続可能な、即ちネットワーク接続可能な他のデバイスとネット
ワーク上たとえばインターネット上でインターネット・プロトコルを使用して通
信することができるような物理的ハードウェア装置を表わす。全てのデバイスに
はユニークな識別コードがABCシステムによって割り当てられ、URLを有し
、デバイスを使用する者とは区別される。デバイスは潜在的に多くのテレスペー
スをホスティングする。デバイスは、たとえば、pcであったり、セルラホン、
ファックス、ハンドヘルド・オーガナイザ、ケーブルテレビのセットトップ・ボ
ックス、エンターテイメント用電子ユニット(たとえば電子玩具やゲームと、ス
テレオ装置、またはこれら以外の同様にネットワーク接続可能な機器、装置、製
品など)のことがある。デバイスは潜在的に多くのテレスペースをホスティング
する。
【0030】 ダイナミクス・マネージャ(Dynamics manager)は、ABC
システムのフレームワークの一部を表わし、デルタの作成を支援したりデルタの
実行を調整する。ダイナミクス・マネージャはたとえば、ユーザのパーソナル・
コンピュータ上でまたはその他の形態を有しネットワーク接続可能なデバイス上
で動作するコンピュータで実行可能なプログラムとして実装することができる。
【0031】 エンドポイント(Endpoint)は、デバイスと人のユニークなペアを表
わす。ABCシステムでは、ある1つのデバイスの多数のユーザの中から一人の
人をユニークに識別する方法として、またはその同じ人によって使用される多数
のコンピュータの中から1つのデバイスや複数のデバイスを識別する方法として
、この概念を使用する。
【0032】 エンジン(Engine)は、ABCシステム内部の永続的格納及びデータ構
造の管理及び変更を実現するものであってアクティビティの「下半分」と呼ばれ
るものを表わす。エンジンはコンポーネントとしてパッケージされ、それ自体に
はユーザ・インタフェースがなく、ユーザ・インタフェースについては対応する
ツールに依存し、実質的に移植可能である。エンジンは対応するツールを機能さ
せるためにのみ存在するのが望ましい。エンジンはユニバーサル同期(univ
ersal synchrony)した状態で動作するのが望ましい。
【0033】 フレームワーク(Framework)は、ABCシステムの「内部動作」を
表わし、ダイナミクス・マネージャを始めそのサブシステムのほとんどのものを
含んでいるが、ユーザ・インタフェースはない。フレームワークはユーザのパー
ソナル・コンピュータ上またはその他の形態のネットワーク接続可能なデバイス
上で動作することのできるものでコンピュータで実行可能なプログラムであり論
理的には高レベルのコントローラとアクティビティの間に位置する。
【0034】 アイデンティティ(Identity)は、一般に「人(person)」と
同義語だが、一般にURLで表わされるもので他の人がある人を認知できる1つ
の名前を指す。この概念が使用される理由としては、ABCシステムではある人
が多くのアイデンティティまたは別名を持つことができ、またたとえば多くの異
なるURLを持てるという考え方を採用しているためである。
【0035】 メンバー(Member)は、テレスペース内部の参加者またはテレスペース
の加入者を表わし、一般にテレスペースのメンバーシップを表わす場合にはエン
ドポイントの人の部分(デバイス部分と区別して)と同義語である。
【0036】 ナビゲーション(Navigation)はURL間を移動する動作を表わし
、ABCシステムではウェブ・ブラウザによるウェブページ間、ウェブサイト間
のナビゲーションと類似している。
【0037】 人(Person)は、人間、または人間の代理として作用するサーバを指し
、一般にテレスペース内部のアクティビティに参加している者を指す。各々の人
は1つまたはそれ以上のアイデンティティを有し、その各々はURLでユニーク
に識別される。
【0038】 リレー(Relay)はストア・アンド・フォワードを確実にまた高信頼性で
行ない、ある種の用途ではメッセージのマルチキャスト・ファンアウト(mul
ticast) fan−out)を実行できるようなデバイスたとえばサーバ
のことである。転送されるメッセージの本体はリレーにはわからず、またたとえ
ばデルタである場合がある。リレーはデバイス・プレゼンス情報を提供したり、
本発明の幾つかの実施態様において管理機能を実行することができる。
【0039】 サーバ(Server)は、通信チャンネルを介する場合を除き普通は人間と
の直接対話ができないがサービス・コントローラのもとでバックグラウンド・プ
ログラムとしてのみ実行することができるデバイスを指す。
【0040】 テレスペース(Telespace)は、仮想空間であって、1つ以上のアク
ティビティに参加するために人びとが集まり、人びとが何らかのものを共有する
仮想空間を指す。テレスペースとアクティビティの結果はユーザのパーソナル・
コンピュータ上またはその他の形態のネットワーク接続可能なデバイス上のメモ
リに永続的に格納される。テレスペースは、一般に、あるユーザのデバイスと他
の人達のデバイスの間で同期を保っている。テレスペースは「メンバーシップ」
の論理的単位またアクティビティへのアクセスを表わす。テレスペースは1つ以
上のアクティビティのインスタンシエーション(instantiation)
である。
【0041】 ツール(Tool)は、アクティビティのユーザ・インタフェースを実現する
ものであってアクティビティの「上半分」と呼ばれるものを指す。ツールはコン
ポーネントとしてパッケージされ、ユーザのジェスチャーに呼応してデルタの作
成を開始し、個々のアクティビティの対応するエンジンと対話して特定のタスク
を実行する。
【0042】 URLは、universal resource locator(汎用資
源識別子)の略語で、ドキュメントなどの資源の構造化されたユニークなアドレ
スであり、また場合によっては資源を取り扱うときの方法を表わす。URLは本
明細書において実質的に全ての永続的オブジェクト、ユーザから見えるオブジェ
クト、及び外部プログラムから見えるオブジェクトについて使用される。
【0043】 XMLは、前述の通り、拡張マークアップ言語(eXtended Mark
up Language)の略語で、ウェブ上で使用することを想定したSGM
Lから派生した標準化され的構造化されたデータ・フォーマットである。状況に
よってはABCシステムで使用されるメモリ内のオブジェクト構造を表わすこと
もあり、これはXML標準のセマンティクス(semantics)に準拠する
ものである。多くのXMLの概念が本明細書で使用されており、たとえばドキュ
メント、エレメント、タグ、属性、値、コンテンツ、エンティティ、リンク、ポ
インタなどがある。XMLは本明細書ではたとえばドキュメント内のデータを構
造化するために使用される。
【0044】 B.従来のコンピュータ・システム 図1は、代表的なコンピュータ・システム100の従来型のシステム・アーキ
テクチャを図で表わしたものであり、開示された本発明をこれに実装することが
できる。図1に例示したコンピュータ・システムは説明の目的でのみ議論するが
、本発明を制限するものとして見なすべきではない。本発明はさらにコンピュー
タ・システムとして従来考えられてきたデバイスに制限されるものではなく、こ
れはたとえばビデオゲーム・コンソール、パーソナル機器、またはケーブルテレ
ビのセットトップボックスなどを含む各種のネットワーク接続可能なデバイスの
いずれにおいても本発明を実装できるためである。以下の説明は特定のコンピュ
ータ・システムを記述する際に共通に使用される術語を示しているが、説明され
る概念は図1に図示したものとは異なるアーキテクチャを有する他のコンピュー
タ・システムにも等しく適用されるものである。たとえば、ケーブルテレビのセ
ットトップボックスは大容量格納機能を含まないがデジタル信号プロセッサを内
蔵したビデオチューナを含んでいる。
【0045】 コンピュータ・システム100は、従来のマイクロプロセッサを含む中央演算
処理装置(CPU)105、一時的な情報格納用のランダム・アクセス・メモリ
(RAM)110、永久的な情報格納用のリード・オンリー・メモリ(ROM)
115を含む。メモリ・コントローラ120はシステムRAM110を制御する
ために提供される。バス・コントローラ125はバス130を制御するために提
供されており、割り込みコントローラ135は他のシステム・コンポーネントか
らの様々な割り込み信号を受信して処理するために使用される。
【0046】 大容量格納はディスケット142、CD−ROM147またはハードディスク
装置152によって提供できる。データやソフトウェアはリムーバブル・メディ
アたとえばディスケット142やCD−ROM147を経由してクライアント・
コンピュータ100と交換できる。ディスケット142はディスケットドライブ
装置141に挿入することができ、ディスケットドライブ装置141はコントロ
ーラ140によってバス130へ接続されている。同様に、CD−ROM147
はCD−ROMドライブ装置146に挿入することができ、CD−ROMドライ
ブ装置146はコントローラ145によってバス130へ接続されている。最後
に、ハードディスク152は固定ディスクドライブ装置151の一部であり、こ
れはコントローラ150によってバス130へ接続されている。
【0047】 クライアント・コンピュータ100へのユーザ入力は多数のデバイスによって
提供され得る。たとえば、キーボード156とマウス157はキーボード及びマ
ウス・コントローラ155によってバス130へ接続される。オーディオ・トラ
ンスデューサ196はマイクロホン及びスピーカの両方として機能することがで
きるもので、オーディオ・コントローラ197を介してバス130へ接続されて
いる。他の入力デバイスたとえばペンおよび/またはタブレットや、音声入力用
マイクロホンなどを適当なコントローラとバス130経由でクライアント・コン
ピュータ100へ接続することができるのは当業者には明らかであろう。DMA
コントローラ160はシステムRAM110へのダイレクト・メモリアクセスを
実行するために提供される。視覚表示はビデオコントローラ165によって生成
され、これがビデオ・ディスプレイ170を制御する。
【0048】 コンピュータ・システム100はまたクライアント・コンピュータ100がバ
ス191経由でネットワーク195へ相互接続できるようにするネットワーク・
アダプタ190も含む。ネットワーク195はローカル・エリア・ネットワーク
(LAN)、広域ネットワーク(WAN)、またはインターネットであり、多数
のネットワーク・デバイスを相互接続する汎用通信回線を使用する。
【0049】 コンピュータ・システム100は一般にオペレーティング・システム・ソフト
ウェアによって制御調節される。コンピュータ・システム制御機能のなかでも、
オペレーティング・システムはシステム資源の割り当てを制御しプロセスのスケ
ジュール、メモリ管理、ネットワーク及びI/Oサービスなどのタスクを実行す
る。
【0050】 C.データ・モデルを制御する従来の方法 図2は「モデル・ビュー・コントローラ」として周知の技術を使ったデータ・
モデルを制御する従来のシステム200を示す。システム200において、デー
タ・モデル・モジュール202はたとえばデータベースなどのデータをデータ・
モデルにしたがって格納し維持する。コントローラ・モジュール204はローカ
ルに開始したイベント206(たとえばユーザ入力など)やまたは外部で開始し
たイベント208(たとえばリモートのコンピュータ・システムから受信したイ
ベント通知など)に応じて、「現在値をセットする」コマンドをデータ・モデル
・モジュール202に指示して格納しているデータへの変更を行なわせる。コン
トローラ・モジュール204はデータ変更を出力装置たとえばディスプレイ20
6などに通知する。ディスプレイ206はデータ・モデル・モジュール202か
ら変更されたデータを取得してデータの表示を更新し、現在のデータがユーザか
ら観察できるようにする。前述の技術は厳密にイベント駆動型であり動作におい
てリニアである。典型的には、データへの変更をコントローラ・モジュール20
4に指示させる内部または外部のイベントはコントローラ・モジュール204の
FIFO(先入れ先出し)型バッファに格納され、次いでイベント通知がコント
ローラモジュールに到達した順序で処理される。また典型的には、グローバルな
一貫性問題、即ちシステム200内のモデルデータのコピーが他のリモートシス
テムにあるデータと一致していることを保証する対応がシステム200には行な
われていない。
【0051】 システム200で例示したようなデータ・モデルを制御する従来のアプローチ
は、コンピュータ・システムがメインフレームとパーソナル・コンピュータとを
問わず相互に隔絶されて動作していた時代には適切だった。インターネットの発
達とともに、コンピュータ・ユーザはコラボレーションするときのもっと優れた
方法を要求しており、本発明では、データ・モデルに対してデータ変更エンジン
によって行なわれる変更にダイナミクス・マネージャが介在する「モデル介在型
制御」と呼べるようなものを提供する。
【0052】 D.コンピュータ間動作のインターネット・パラダイム 図3はインターネット環境300を示したもので、本発明が有利に使用できる
ものである。ユーザの観点からすると、従来のクライアントサーバ・ビュー30
2において、個別のクライアント306、308はインターネット309上でサ
ーバ310と別々に通信する。各々のクライアント306、308はインターネ
ット309経由でサーバへ要求を発信し、各々について、サーバ上に格納された
ドキュメントをインターネット309上でクライアントへ提供することにより、
サーバ310がこの要求に呼応する。各々のサーバ310とクライアント306
、308は、図1に図示したようなパーソナル・コンピュータとして実現でき(
サーバの場合には幾つかのUIコンポーネントはオプションとなる)、適当なプ
ログラムたとえばクライアント・ブラウザ311および/または後述するような
その他の通信インタフェースの実行が可能である。インターネット使用のピア・
ツー・ピア・ビュー312においては、ユーザのコンピュータ・システムはピア
・ユニット314A〜Dを構成し、インターネット経由の通信は一つのピア・ユ
ニットから別のピア・ユニットへ明らかに介在するものがなくても配向できる。
各々のピア・ユニット314A〜Dは図1に図示したようなパーソナル・コンピ
ュータとして、またはその他の形態のネットワーク接続可能なデバイスとして実
現可能である。本発明はクライアント306、308、またはピア・ユニット3
14A〜Dのいずれかで有利なるように実現可能であるが、このような説明はシ
ステムのピア・ツー・ピア・ビューでの実装が中心となる。
【0053】 さらに詳細には以下で説明するが、このようなピア・ツー・ピア通信は直接ま
たはリレー・デバイス316経由で行なうことができる。リレー・デバイス31
6は「ストア・アンド・フォワード」型が望ましく、これはインターネットから
一時的に切断されているピア・ユニット314へ向けられたメッセージを格納し
、その後再接続した時にそのピア・ユニットへメッセージを転送することができ
るものである。
【0054】 E.ABCシステムのアーキテクチャと動作 図4はピア・ユニット314A〜Dの一つ、たとえばピア・ユニット314A
において実現されるABCシステム400を示す。ピア・ユニット314A上の
ABCシステムはフレームワーク402、少なくとも一つのテレスペース404
、及びユーザ・インタフェース406を備える。フレームワーク402は多数の
テレスペース404にサービスするためのプラットフォームを提供するのが望ま
しい。フレームワーク402は、アクティビティが動作しフレームワーク・コン
ポーネントと通信するプログラマ・インタフェースを備えるモジュラー構造が望
ましい。
【0055】 フレームワーク402はユーザ・インタフェース・マネージャ408、アイデ
ンティティ・マネージャ410、テレスペース・マネージャ412、アクティビ
ティ・マネージャ414、格納・マネージャ416、コントローラ・サービス・
マネージャ418、ダイナミクス・マネージャ420、通信マネージャ422を
含む。
【0056】 ユーザ・インタフェース(UI)マネージャ408は多数のユーザ・インタフ
ェース・コントローラ(図示していない)の共有サービスの管理を担当する。U
Iマネージャ408はディスプレイ・ウインドウの窓ガラスの向こうにあるアク
ティビティのレイアウトを管理し、それ以外にユーザ・インタフェースとして期
待する「ルック・アンド・フィール」を提供する。UIマネージャ408はアク
ティビティのナビゲーション(たとえばgo(行く)、next(次)、pre
vious(前))なども管理しナビゲーション履歴を保持する。
【0057】 アイデンティティ・マネージャ410はあるテレスペース・メンバーのアイデ
ンティティの保存を担当する。前述したように、アイデンティティは名前であり
、また対応するURLであり、これにより各々のユーザが他のユーザによって認
識される。個々のユーザは1つまたは多数のアイデンティティを持つことがある
。アイデンティティ・マネージャ410はアイデンティティのレコードまたはテ
ーブルを望ましくはXMLで保持する。アイデンティティ・マネージャ410は
またテレスペース・メンバーのURLとこれらに対応するデバイスのURLのレ
コードまたはテーブルを望ましくはXMLで保存する。これ以外に、独立したメ
ンバー・マネージャを実装することができる。
【0058】 テレスペース・マネージャ412はピア・ユニット314Aで開くことができ
るテレスペース404の各々の管理を担当する。各々のテレスペース404は1
つまたはそれ以上のアクティビティのインスタンシエーション(instant
iation)である。各々のテレスペース404は対応するアクティビティ・
マネージャ414を有している。
【0059】 アクティビティ・マネージャ414は(a)テレスペースへ新規アクティビテ
ィを追加する、(b)テレスペースで既存のアクティビティを開く、(c)アク
ティビティ・テンプレートの新しいバージョンからテレスペースのアクティビテ
ィを更新する。新規のアクティビティを追加するには、アクティビティ・マネー
ジャ414にアクティビティ・テンプレートのURLを提供してテンプレートを
開き、テンプレート情報(たとえばコンポーネントURL)を抽出してテレスペ
ースへ伝搬する。テンプレートはあるテレスペースについての初期アクティビテ
ィ構成を定義する。ユーザは後で必要に応じてテレスペース404へさらにアク
ティビティを追加できる。追加した後、アクティビティはテレスペースの「一部
」となりテレスペースのメンバー全員から見えるようになる。テレスペースはア
クティビティ・マネージャを識別してアクティビティ・マネージャとデータを結
合するタグを備える。望ましくは、各々のドキュメントはローカル・レジストリ
をこれにリンクし、XMLタグの名前がレジストリに保存されるようにして、拡
張可能な、プラットホームに依存しない方法でドキュメントとこれに対応するテ
レスペースの間のマッピング(参照ポインタまたは連係)を表現するようにする
。各々のテレスペース・メンバーはその人のピア・ユニット314A〜Dで利用
できるテレスペースのフレームワークとアクティビティ・テンプレートを有する
【0060】 各々のアクティビティはツール424などのツールと、エンジン426などの
エンジンとを含む。ツール424はアクティビティにユーザ・インタフェース(
UI)機能を提供してメンバーとUI406経由で対話する。UIを介した対話
はたとえばキーボード156経由で(図1)またはマウス157経由で(図1)
開始されたUIイベントを含む。このようなUIイベントに呼応して、ツール4
24はこれに対応するエンジン426に対してデータ・モデル変更を実行するよ
うに要求し、データ変更が起こった時に非同期的にUIを更新する非同期データ
変更通知をエンジン426に予約する。ツール424もコントローラ・サービス
・マネージャ418の指示の下に提供されるバックグラウンドサービスと対話す
るためのアプリケーション・プログラム・インタフェース(API)を実装して
いる。エンジン426はテレスペース404をサポートするデータの維持と変更
、および/またはツールを介して得られたユーザとの対話からの結果の維持と変
更を担当する。後述するように、エンジン426は永続的モデルデータを変更す
ることと非同期データ変更通知をツール424に送出することをどちらもダイナ
ミクス・マネージャ420の指示制御下で行なうことができる。格納・マネージ
ャ416は格納されたデータへのアクセスを制御する。
【0061】 アクティビティ・テンプレートの作成について、ソフトウェア・デベロッパは
フレームワーク内で使用するツールとエンジンを書いたり取り込んだりできる。
アクティビティ・テンプレートはアクティビティを含むツール・コンポーネント
及びエンジン・コンポーネントの永続的表現である。アクティビティ・テンプレ
ートはたとえばシュリンク・ラップしたソフトウェアとして配布したりたとえば
インターネット上で遠隔地のサーバからピア・ユニット314Aにダウンロード
したりできる。アクティビティ・コンポーネントはウェブ・ドキュメントである
と考えることができ、URL経由で永続的に表現される。アクティビティ・テン
プレートそれ自体がURLを有するのが望ましく、これによりアクティビティ設
計の変更を追跡できるようになる。アクティビティ・テンプレートは単一のアク
ティビティ・テンプレートかまたはアクティビティ集合体テンプレートであり得
る。単一のアクティビティ・テンプレートはたとえば「チャット」などの一つの
アクティビティにだけに関連する。それに対してアクティビティ集合体テンプレ
ートは「チャット及びアウトライン」などといったアクティビティの集合体に関
連する。
【0062】 使用するときは、ABCシステム400はアイデンティティ・マネージャ41
0経由でメンバーのアイデンティティを取得し、テレスペース・マネージャを開
き、テレスペース・マネージャに対してURL経由でテレスペースを開くように
要求し、テレスペース・マネージャにアクティビティ・マネージャを要求し、さ
らに、通常はアクティビティのURLを使って、アクティビティ・マネージャが
アクティビティを開く。次に、ABCシステム400はメンバーがテレスペース
を使用して特定のアクティビティによって提供される共有された特定のタスクを
実行することができるようにする。
【0063】 図5はピア・ユニット314A〜D上のABCシステム500の代表的なマル
チ・テレスペースの使用方法を示す。ABCシステム500が分散システムであ
ることは理解されるべきである。そこでここでは、ピア・ユニット314Aだけ
のコンポーネントの説明が提供されているが、ピア・ユニット314B〜Dも同
様のコンポーネントを備えているので、これらについては別個の説明は不要であ
る。
【0064】 ピア・ユニット314Aについて図示したように、ABCシステム500はピ
ア・ユニット314Aがメンバーとして登録されている複数の代表的テレスペー
スを含み、これには自動車設計テレスペース502、チャット・テレスペース5
04、チェスで遊ぶテレスペース506が含まれている。また図示してあるよう
に、ピア・ユニット314はテレスペース502、504、506の操作中に使
用される複数のコンポーネントを有している。ピア・ユニット314Aは、メン
バーとして登録されているテレスペース502、504、506の各々をリスト
し記述してあるテレスペース・レコード508と、これらのテレスペースに参加
するテレスペース・メンバーのアイデンティティの各々をリストし記述してある
メンバー・レコード512とを保持するメモリ510を備えている。UI512
はユーザが開始したテレスペースへの変更及びメンバー・レコード508.51
4への変更を受信できる。
【0065】 テレスペース502、504、506の各々は図示したアクティビティ522
、524、526のうちの異なる一つを例示している(これとは別の場合には、
図示したアクティビティ522、524、526は単一のテレスペースに常駐す
ることもあるが、この場合単一のテレスペースの全てのメンバーがアクティビテ
ィの各々へのアクセスを行なうことになる)。各々のアクティビティ522、5
24、526は各々のアクティビティに対応する特定のツール532、534、
536であって、各々のエンジン542、544、546の制御下にメモリ51
0に格納された対応するデータ・モデル552、554、556に対して変更を
行うためのツール532、534、536を含み、これらのツールはそれぞれテ
レスペース502、504、506の中に永続的に保存される。たとえば、自動
車設計テレスペース502はCAD(computer−aided desi
gn)ソフトウェアの形でツール532を含むことができるアクティビティ52
2のインスタンスであり、チェスで遊ためのテレスペース506はソフトウェア
のチェスゲームの形を取るツール536を含むことができるアクティビティ52
6のインスタンスである。
【0066】 ユーザはユーザ・インタフェース514経由でテレスペース502、504、
506のアクティビティ522、524、526を遂行し、ユーザ・インタフェ
ース514はツール532、534、536とのインタフェースを持つことによ
りユーザの要求をツールに提供する。この要求に呼応して、エンジン542、5
44、546がダイナミクス・マネージャ501の制御下でメモリ510内の対
応するデータ・モデル552、554、556の永続状態を変更し、現在の状態
を反映させる。たとえば、チェスで遊ぶためのテレスペース506でのデータの
永続的状態は、そのチェス盤と、盤上のチェスの駒の位置を含むことができる。
ユーザ要求はチェスの駒の動きを指定でき、これがデータの変更、即ちデルタを
構成する。また現在の状態はデルタの実行と駒の動きの完了を反映する。
【0067】 図6はABCシステム500の動作を示したもので、ピア・ユニット314A
に配置され図5を参照して説明したコンポーネントに関するものである。エンジ
ン546はアクティビティ526の特定の集中タスクを推進する上で実装すると
きの候補となるアクションまたはオプション(たとえばチェスの駒の動き)をツ
ール536に提示する。ツール536はユーザ・インタフェース514経由でテ
レスペース506のメンバー(メンバー・レコード512に記録されているメン
バー)であるユーザと対話し、アクティビティのビュー(画像)を提示する(た
とえば、チェス盤面のビューと、おそらくは動きのリスト)。ユーザのジェスチ
ャーと呼ばれる(たとえばビショップをXからYへ動かすなど)ものであってユ
ーザ・インタフェース514から入力されたユーザ入力に呼応して、ツール53
6はデルタを生成してシステム内に格納することにより、ユーザによる選択をメ
モリ内に記録する。デルタは要求された変更の単位であり、好ましくは、コンテ
ナ・オブジェクトの形である。コンテナ・オブジェクトはオブジェクト指向プロ
グラミング技術に馴染みのある者にはには周知である。ツール536はデルタに
おいて要求された変更の粒度(granularity)の決定を担当する。デ
ルタ・コンテナ・オブジェクトはたとえば特定のチェスの駒の識別及びチェスの
駒の動きを構成する盤面のもとの位置と目標位置といった、ユーザの指定したデ
ータに加えて、変更を実行するための1つまたはそれ以上のコマンドを保持(内
蔵)することができる。生成時には、デルタはコマンドが何も入っていない空の
状態で、変更を行なうためにエンジン546によって適当なコマンドを埋め込ま
れるまで、それ自身が単に変更要求を構成しているだけである。デルタにおいて
エンジン特有の方法(これはツール536には分かっていなくとも良い)で変更
を行なうのに必要とされるコマンドを記録するのはエンジン546の責任である
【0068】 さらに詳しく説明すると、線「a」で示したように、ツール536はダイナミ
クス・マネージャ501によるデルタ生成を要求することからデルタの作成を開
始する。ダイナミクス・マネージャ501はデルタを作成して線a’でツール5
36へデルタを返し、フォールトリカバリ(障害復旧)が必要な場合に備えて作
成したデルタを記録する。
【0069】 図6の線「a」で示してあるように、ツール536はツール・インタフェース
602を介してエンジン546のツール・エンド604へデルタの制御を渡し、
これによりエンジンを起動する(この説明は時としてデルタが渡されるまたはデ
ルタへの制御を一つのコンポーネントから別のコンポーネントへ渡すべきである
ことを表わす。望ましくは、デルタはメモリ内に割り当てられ、ポインタがXM
Lエレメントとして渡されるオブジェクトである。)。エンジンのツール・イン
タフェース602はデルタにコーティングされている要求された変更を行なうこ
とができるコマンドを作成するための、または、言い換えればユーザの意図にし
たがうように逐次的な形で適当なコマンド、代表的にはエンジンに特有なコマン
ドでデルタを埋めるための、一組のアプリケーション・プログラム・インタフェ
ースを表出する。次にエンジン546はこの段階ではコマンドで埋められている
デルタの制御をツール536に戻す。
【0070】 図6の線「b」で示してあるように、ツール536は実行のために埋められた
デルタの制御をダイナミクス・マネージャ501へ渡す(即ち送出する)。ダイ
ナミクス・マネージャ501は他のピア・ユニット314B〜Dから線「b」経
由で到着するデルタも受信することができる。ダイナミクス・マネージャ501
は、ピア・ユニット314B〜Dにおけるダイナミクス・マネージャとともに、
チェスゲームのテレスペースに参加している全てのメンバーについて、ABCシ
ステムの一方のエンドから別のエンドへ、データ・モデル556へ行なわれた変
更の一貫性を維持する責任がある。
【0071】 ダイナミクス・マネージャ501はキュー構造612とダイナモ・プロセス6
14とを含み、好ましくはコンピュータで実行可能なプログラムがダイナミクス
・マネージャの主論理を含む。ダイナミクス・マネージャ501とそのダイナモ
・プロセス614は通信マネージャ622と双方向通信する。ダイナミクス・マ
ネージャ501は受信したデルタを順序付ける目的でキューに入れてキュー構造
612にして、次にダイナモ・プロセス614がキューに入っているデルタを処
理するときにはキュー構造にサービスし、エンジン546に指示して適当な順序
でデルタを実行させる。さらに詳しく説明すると、ダイナミクス・マネージャ5
01のダイナモ・プロセス614はインタフェース615を介して図6の線「c
」を介してエンジン546のダイナミクス・マネージャ・エンド616へ向けて
、「デルタ・コマンド実行」メッセージの形で制御信号を送信する。デルタコマ
ンド実行メッセージはエンジン546に指示して、メモリ510に含まれており
、テレスペースに永続するデータ・モデル556への要求された変更を行なうこ
とで、ツール536から受信したデルタの実行を遂行する。
【0072】 ダイナミクス・マネージャ501のダイナモ・プロセス614はまた、通信マ
ネージャ622経由で他のエンドポイントへ向けてローカルに開始した全デルタ
を配布し、通信マネージャ622はネットワークたとえば626上でピア・ユニ
ット314B〜Dへデルタを送信する。ピア・ユニット314B〜D各々では、
各々のダイナミクス・マネージャが受信したデルタを自分のローカル・キュー構
造へとキュー入れし、つぎに特定の順序で各々のエンジンへデルタを渡して実行
させる。
【0073】 一つのダイナミクス・マネージャはアプリケーションによって一つのテレスペ
ースまたは多数のテレスペースをサポートできるので、多数のエンジンに指示し
て様々なテレスペース用のデルタを実行させる責任をとらせることもできる。多
数のテレスペースを持つシステムでは、図5に図示したように、デルタの情報を
調べることで、あるデルタをどのエンジンが実行すべきかを、ダイナミクス・マ
ネージャ501が決定する。デルタはエンジンのうちの特定の一つに同定されま
たデルタのペイロードの中に入っているエンジン識別子またはコードのタグを付
けられたコマンドを含む。キューに入れられたデルタがダイナミクス・マネージ
ャで処理される時に、ダイナミクス・マネージャはエンジン・コードと参照され
たデルタとを関連付け、適当なエンジンによるデルタの実行を指示する。
【0074】 最後に、図6の線「d」で示されているように、エンジン546は「データ変
更通知」メッセージを送出してツール536にデルタの実行を通知し、またデー
タ・モデル556におけるデータの新しい現在状態を通知する。デルタ変更通知
は値または参照を使って行うことができる。つまり、通知は新しいデータの値そ
れ自体を含むことができたり、またはメモリ内の新しいデータへのポインタを含
むことができる。この通知に呼応して、ツール536はたとえばチェス番のグラ
フィック上での動きを表示することにより、ユーザが利用可能な変更をユーザ・
インタフェース514に行なわせる。ユーザがディスプレイ170を観察してい
る場合(図1)、ユーザは、デルタの実行によって行なわれたチェス・ゲームへ
の変更を見ることができるが、それ以外の場合には、変更が行なわれた時点でユ
ーザが変更を「見る」ことなくメモリ510内のデータに変更が行なわれる。
【0075】 望ましくは、ピア・ユニット314Aのデータ・モデル556に格納されてい
るデータ・モデル556へ変更がエンジン546によって行なわれるのと実質的
に同時に、他のピア・ユニット314B〜Dもローカルに格納しているデータに
対して同様の変更を行なって一貫した方法でデルタの意図を反映する。ピア・ユ
ニット314A〜Dのいずれかをリブートしなければならないような場合には、
デルタはリブート後に実行する用にメモりないに保存される。
【0076】 ピア・ユニット314A〜Dのどれかがネットワークたとえばインターネット
に接続されていないような状況が起こり得る。ピア・ユニット314Aが切断さ
れているときには、通信マネージャ622はデバイス・プレゼンス・デテクタ4
30を使用してピア・ユニット314Aが接続されているかどうかを確認し、接
続されていない場合には、接続が復元される時まで送出されるデルタを送出デル
タストア628に格納しておき、接続された時点で、格納したデルタを送信する
。1つ以上の宛先ピア・ユニット314B〜Dがネットワークから切断されてい
る場合、ピア・ユニット314Aの通信マネージャ622はプロセスを続けて他
のピア・ユニットが切断されているか否かにかかわらず送出デルタをリレー31
6(図3)に送信する。リレー・デバイス316(図3)はこのような送出デル
タを受信し、必要に応じて送出デルタストア318(図3)に格納し、ピア・ユ
ニット314B〜Dが再接続された時点で宛先へ転送する。動作中には、通信マ
ネージャ622は全ての送出デルタをリレー316のURLへ送信することがで
き、リレーは搭載されている参照テーブル320を使用してデルタを中継する場
合に使用する宛先ピア・ユニット314B〜DのエンドポイントURLを確認す
る。リレー・サービスは実際にはインターネット・サービス・プロバイダ(IS
P)またはその他のインターネット組織によって提供され得るものである。
【0077】 ツール536とエンジン546の間で、ユーザ・インタフェース・アクティビ
ティはツール536経由でのみ直接行なわれ、データ・モデルの変更はエンジン
546経由でのみ直接行なわれることが理解される。専門用語を使った表現では
、ツール536はUIを「保有」しており、エンジン546はデータ・モデルを
「保有」している。これは図2に図示したような現行の代表的アプリケーション
とは対照的である。たとえば、今日のスプレッドシート・プログラムでは、代表
的にはツールの機能とエンジンの機能を組み合わせており、本発明の前述の実施
態様のようにこれらを分離するのではない。ツールをエンジンから分離すること
により、従ってデータ・モデルからUIを分離することにより、ダイナミクス・
マネージャはたとえばデータの一貫性を維持する目的で、様々なピア・ユニット
から発せられたデルタの間に介在し仲介できる。ツールは様々な種類のエンジン
で、用途によっては柔軟性や移植性を向上するため、使用することができる。さ
らに、エンジンからツールを切り離すことでデルタの実行処理を非同期的に行な
えるようになる。これはダイナミクス・マネージャ501とエンジン546がテ
レスペースの中にいる全てのメンバーについてデータの一貫性を維持するような
方法で各々の責任を遂行するのに時間がかかるため有用である。また、他のピア
・ユニット314B〜Dから到着するデルタがローカルに開始されたデルタの実
行のタイミングに影響することがあることからも有用である。
【0078】 図7は個別に実装されたアクティビティ(図示していない)で使用するフレー
ムワーク700の実施態様を示す。フレームワークは、たとえばフレームワーク
上で動作可能なアプリケーション独自のスナップイン(プラグイン)であるコン
ピュータ・プログラム製品として、個々のアクティビティとは独立して、販売ま
たはライセンスすることができる。一般的に言うと、フレームワークはテレスペ
ースに関してコラボレーションをホスティングする。図示したフレームワーク7
00は1つ以上のダイナミクス・マネージャ702、1つの通信マネージャ70
4、1つのデータ構造テンプレート706を含む。データ構造テンプレート70
6はアクティビティ・デベロッパが使用するための原始型オブジェクト(オブジ
ェクト・プリミティブ)を、望ましくはXMLフォーマットで含むことができる
。フレームワーク700はたとえばコンピュータで読み取り可能な媒体706と
して実装可能で、媒体上にダイナミクス・マネージャ702と通信マネージャ7
04を含むコンピュータで実行可能なコードと、データ構造テンプレート700
のオブジェクト・プリミティブを含むコンピュータで読み取り可能なデータとが
格納される。
【0079】 F.通信マネージャ、プレゼンス・サーバ、及びリレー 図8はネットワークたとえばインターネット803経由で多数のピア・ユニッ
ト802A〜Dの間での通信ができるように装備したABCシステム800を示
す。各々のピア・ユニット802A〜Dはピア・ユニット314Aに関連して前
述したコンポーネントを含むことができる(図8に図示したピア・ユニットの個
数は単に例示を目的として選択したものであり、特定の実装の構成により左右さ
れ、また時間とともに変化することがある)。各々のピア・ユニット802A〜
Dはツール805A〜Dによって開始されエンジン807A〜Dにより実行され
るデルタ処理を調節するためのダイナミクス・マネージャ804A〜Dを含み、
またピア・ユニット802A〜Dの間の通信を調整するための通信マネージャ8
06A〜Dを含む。通信マネージャ806A〜Dの役割はネットワークたとえば
インターネット803上でインターネット・プロトコルたとえばTCP/IPな
どを使用してメッセージ(デルタを含む)を送受信することを含む。各々のピア
・ユニット802A〜Dはとくに機能の上で通信マネージャ830A〜Dの動作
サポートにおいてデータを格納するためのメモリ808A〜Dを含む。
【0080】 前述のように、通信マネージャ806A〜D各々はそれ自体のピア・ユニット
と他のピア・ユニットとの間の通信を全て管理する責任がある。たとえば、通信
マネージャ822はピア・ユニット802Aとピア・ユニット802B〜Dの間
の双方向通信を管理する。通信はピア・ユニット802Aからピア・ユニット8
02B〜Dの1つまたはそれ以上へ送出される、またはピア・ユニット802B
〜Dの一つからピア・ユニット802Aへ送出されるどちらかのメッセージを含
むことができる。送信はユニキャスト(単一の宛先で、2点間通信)、マルチキ
ャスト(2点間通信で複数の宛先)、またはブロードキャスト(全ての)「聴い
ている」宛先への送信)を使用できる。宛先ピア・ユニット802B〜D(前者
の場合)またはピア・ユニット802A(後者の場合)がネットワークたとえば
インターネットに接続されている限り(「オンライン」状態である)直接かつ仲
介なしに送信を行なうことができる。宛先がたとえば互換性のない通信プロトコ
ルを使用しているか、またはファイアウォールの中にある場合などは宛先には到
達することができない。前述のように、デバイス・プレゼンス・マネージャ81
2を用いて想定した宛先がオンラインになっているか、または一時的に切断され
ている(「オフライン」状態である)どうかを確認することができる。宛先がオ
フラインになっている場合、通信はリレー814(前述の通り)を経由して行な
うことができ、リレーは宛先がオンラインに復帰した時に宛先へのメッセージを
転送する。通信マネージャ806Aは、本明細書で使用している術語の通り、宛
先が接続可能または到達可能であるどうかを決定する役割がある。
【0081】 つまり、ピア・ユニット802Aがピア・ユニット802Cへのメッセージを
送出しようとして、ピア・ユニット802Cがオンラインであるとプレゼンス・
サーバ812から通信マネージャ806Aに通知されている場合には、通信マネ
ージャ806Aはそのピア・ユニットが接続可能であれば、ネットワークたとえ
ばインターネット803経由で直接ピア・ユニット802CのURL宛てにメッ
セージを送出する。ピア・ユニット802Cでは通信マネージャ806Cがメッ
セージを受信して、メッセージをダイナミクス・マネージャ804Cへ渡す。
【0082】 逆に、ピア・ユニット802Aがピア・ユニット802Cへのメッセージを送
出しようとして、ピア・ユニット802Cがオフラインであるとプレゼンス・サ
ーバ812から通信マネージャ806Aに通知されている場合には、通信マネー
ジャ806Aはネットワークたとえばインターネット803経由でリレー814
のURLへメッセージを送出する。リレー814は高性能ファイルサーバとして
実装可能で、ピア・ユニット802Cがオンラインに復帰するまで中継メッセー
ジを保存しておき、復帰時にメッセージをピア・ユニット802CのURLへ転
送する。ピア・ユニット802Cでは前述のようにメッセージを受信して、通信
マネージャ806C経由でダイナミクス・マネージャ804Cへ渡す。宛先ピア
・ユニット802Cとリレー814の両方ともオフラインになっている場合には
、通信マネージャ806Aは一定時間後に(タイムアウト機構により決定される
)メッセージの再送信を試み、また再送が保留中にピア・ユニット802Aが再
立ち上げしたりまたは終了する場合にはデルタをたとえばメモリ808Aに保持
しておく。
【0083】 したがって、プレゼンス・サーバ812はABCシステム800内ではピア・
ユニット802A〜Dがオンラインかまたはオフラインかどうかをモニタする目
的で、また他のピア・ユニットの今ライン/オフライン状態をピア・ユニットの
各々に通知する目的で、使用することができる。この目的を満たすためには、デ
バイス・プレゼンス・サーバ812はたとえば図1のコンピュータ・システム1
00に示したように構成することができる。別の方法としては、デバイス・プレ
ゼンス・サーバはリレー・サーバと組み合わせることがでできる。この様な実装
では、デバイス・プレゼンス・プロトコル機能は独立した接続ディレクトリ81
8ではなく参照テーブル320にあるデバイス状態情報を使ってリレー・サーバ
が実行する。
【0084】 動作中、ピア・ユニット802A〜Dの各々はデバイス・プレゼンス・サーバ
812に自分のオンライン/オフライン状態を通知する責任、即ちユニットがオ
ンライン中かまたはこれからオフラインになろうとしているところかを通知する
責任がある。別の方法としては、プレゼンス・サーバ812は時々ピア・ユニッ
ト802A〜Dをポーリングしてこれらのオンライン/オフライン状態の情報を
取得することができる。この情報はデバイス・プレゼンス・サーバ812内で望
ましくは揮発性メモリ816内のプレゼンス・ディレクトリ818に保存する。
デバイス・プレゼンス・サーバ812は望ましくはたとえばXMLを使ってデー
タツリーの形でプレゼンス・ディレクトリ818を保存する。プレゼンス・ディ
レクトリ818は初期状態では空で、ピア・ユニット802A〜Dがオンライン
/オフライン状態の状態をデバイス・プレゼンス・サーバ812に提供するまで
、たとえば状態の通知を提供するまで、空のままである。そして、状態に関する
情報の受信時に、プレゼンス・ディレクトリ818は通知してきたピア・ユニッ
トのURLとオンライン/オフライン状態の情報を保存する。
【0085】 デバイス・プレゼンス・サーバ812はピア・ユニット802A〜Dに対して
デバイス接続状態予約サービスを提供することもできる。デバイス・プレゼンス
・サーバ812は各々のピア・ユニット802A〜D宛てに他の各ピア・ユニッ
ト802A〜Dのオンライン/オフライン状態を通知し接続状態の変化も通知す
る。デバイス・プレゼンス・サーバ812は(a)メッセージを送信「したい」
ピア・ユニット802A〜Dからデバイス状態変化通知の要求があった時点で、
(b)ネットワークたとえばインターネット803へピア・ユニットが接続する
時点で、(c)時々、たとえばピア・ユニットのいずれかの状態に変化があった
時点で、または(d)上記の組み合わせのいずれかの場合に予約しているピア・
ユニット802A〜Dへ接続状態通知を送信できる。望ましくは、全ての通信は
インターネット・プロトコルに準拠して行なう。これらのプロトコルにはとくに
前述のものが含まれる。
【0086】 同様に、各ピア・ユニット802A〜Dはユーザ状態サービスに加入すること
ができ、たとえばユーザがメンバーとなっている各テレスペースについて、加入
することでそれ以降は各メンバーが現在「ログイン」しているかどうかなど、他
のテレスペース・メンバー各々現状に基づいて知ることができる。このサービス
を有効にするためには、デバイス・プレゼンス・サーバ812はメモリ816内
にテレスペース・メンバー・ディレクトリ822を保持しておき、プレゼンス・
サーバによってサポートされており、ユーザ状態情報を格納するためのフィール
ドを有する各テレスペースについてのメンバー・レコードを格納する。これ以外
に、この情報はデバイス・プレゼンス・サーバ812にではなく、各ピア・ユニ
ット802A〜Dの内部に保持しておくこともでき、その場合には、この情報を
提供するために中央に配置されるメンバー・ディレクトリ822は必要がなくな
る。
【0087】 例示すると、ピア・ユニット802Aがピア・ユニット802Bへたとえばデ
ルタなどのメッセージを送信したい場合、ピア・ユニット802Aはプレゼンス
・サーバ430にアクセスする。ピア・ユニット802Aの通信マネージャ80
6Aはピア・ユニット802BのURLをすでに取得している。ピア・ユニット
802Aはピア・ユニット802BのURLを用いて、デバイス・プレゼンス・
サーバ430からピア・ユニット802Bのインターネット・プロトコル(IP
)アドレスと接続状態を取得する。次に、通信マネージャ806Aはメッセージ
をピア・ユニット802AのIPアドレス宛てに送信する。ダイナミクス・マネ
ージャ804Aは宛先ピア・ユニット802Bがネットワークに接続しているか
どうかについての知識がなくとも通信マネージャ806Aへメッセージを渡すこ
とができる。
【0088】 図9は通信マネージャ806A経由での通信に関係するピア・ユニット802
Aの幾つかのコンポーネントの実装を示す。メモリ830Aは通信マネージャ8
06Aの動作サポートに使うデータを格納する(他のピア・ユニット802B〜
Dも同様のメモリ構造を設けて各々の通信マネージャ806B〜D用のデータを
格納する)。図示したように、通信マネージャ806Aはメモリ830Aに送出
メッセージ・キュー構造904を保持しており、これにはデルタを含む全ての送
出メッセージが、望ましくはXMLの形式で、格納される。送出メッセージ・キ
ュー構造904は他のピア・ユニット802B〜Dへ配送するため通信マネージ
ャ806Aがダイナミクス・マネージャ804Aから受信したメッセージを含む
(またはメモリ830Aに格納される何らかの他のメッセージを参照する)作業
リスト・アレイとして実現可能である。このようにすると、送出メッセージ・キ
ュー構造904は図6の送出デルタ・ストア628を含むことができる。送出メ
ッセージ・キュー構造904以外に、メモリ830Aは配送チケット・アレイ9
06も含み、これは資源処理のためメッセージ・ペイロード(たとえば多数のX
MLエレメントとしてフォーマットされ、各XMLエレメントがドキュメントの
一部分(以下、フラグメント)になっている)と配送エンドポイントとの関連を
提供する。メモリ830Aはさらに接続ディレクトリ908も含み、これはたと
えばピア・ユニット802A〜Dやリレー814などのネットワーク接続可能な
デバイスを含め、考えられる宛先エンドポイントのURLでインデックスされ、
各々の接続状態を格納する。
【0089】 通信マネージャ806Aはレシーバ912とトランスミッタ914を含み、こ
れらは受信スレッドと送信スレッドを各々処理する。レシーバ912は他のピア
・ユニット802B〜Dまたはリレー814からリンク918上に到着するデル
タを含む到着メッセージを受信し、本明細書の他の部分に記載しているように、
処理のためダイナミクス・マネージャ804Aへリンク918上で転送する。
【0090】 通信マネージャ806Aのトランスミッタ914はダイナミクス・マネージャ
804Aからリンク922上で送出メッセージを取得する。トランスミッタ91
4は送出メッセージを検査し、デバイスURLを抽出する。次に、トランスミッ
タ914はランプ1002A(図10)の「デバイスURLからIPアドレスへ
」のマップ1001を使用して抽出したデバイスURLをIPアドレスにマッピ
ングする。最後に、トランスミッタ914は接続ディレクトリ908にアクセス
して宛先デバイスの接続性を確認する。前述したように、プレゼンス・サーバは
宛先デバイスのオンライン/オフライン状態を提供するが、通信マネージャは接
続性を追跡して最終的に判定する。各メッセージについて、プレゼンス及び接続
状態情報に応じて、トランスミッタ914がメッセージを指定された宛先へ転送
するためのパスを選択する。宛先デバイスがオンライン状態でプレゼンスおよび
接続性情報で示された通りに接続できる場合、トランスミッタ914はリンク9
24上で宛先デバイスそれ自体のURLに向けてメッセージを発信する。宛先が
オンライン状態になくまたオンライン及び接続性情報で示された通りに到達でき
ない場合、トランスミッタ914はリンク924上でリレー814へメッセージ
を送り、リレーでメッセージ転送に使用する宛先デバイスのURLをメッセージ
に含める。本明細書の他の部分で説明したように、リレー814は宛先デバイス
がオンライン状態に復帰し接続可能になるまで保留メッセージを貯めておくため
のローカル・ストレージを備えている。その一方で、ピア・ユニット802A自
体がオフラインの場合、トランスミッタ914はピア・ユニット802Aがオン
ライン状態に復帰するまで送出メッセージを送出メッセージ・キュー904に蓄
えておき、復帰した時点で前述のようにメッセージを送信する。メッセージ・キ
ュー904はたとえばXMLフォーマットで、ピア・ユニット802Aのシャッ
トダウンまたはリブート後にも残る。
【0091】 代表的実施態様において、通信マネージャ806Aは、宛先ピア・ユニット8
06B〜Dの通信マネージャが受信に成功したことを確認するまで、全てのデル
タを含め、送信されたメッセージ全部のコピーをメモリ830Aに保持しておく
。所定の期限内に確認が受信されないと、通信マネージャ806Aはメッセージ
を再送する。確認が戻ってこないと、通信マネージャ806Aは所定の試行回数
まで再送を試みる。最大試行回数はABCシステムで、または特定のテレスペー
スでプリセットしておいたり、ユーザが調節できる。最大試行回数になっても確
認が得られない場合、その宛先ピア・ユニットへのメッセージを破棄するか、ま
たはその宛先ピア・ユニットへの通信を他のチャンネルたとえばリレー経由でた
めすことができる。これ以外に、最大試行回数のセットを行なわないこともある
。その場合にリレー・サーバが到達可能でなければ、ピア・デバイスまたはリレ
ー・サーバのいずれかが利用できるようになるまで、デバイスはメッセージを無
期限に保持する。
【0092】 さらに、幾つかの実施態様では、送信元ピア・ユニットが各メッセージについ
て「生存期間」(time−to−live)とよばれる期限を設定できる。送
信元ピア・ユニットの通信マネージャはたとえばメッセージのコピーと一緒にメ
モリ内に生存期間(TTL)を格納する。TTLに応じて、送信元ピア・ユニッ
トはTTL期限までに送信に成功しなかった場合にはメッセージを破棄する。各
宛先ピア・ユニットが送信元ピア・ユニットへ確認メッセージを送り返すことで
メッセージ受信を確認するような代表的実施態様では、確認がTTL期限までに
受信されなかった場合には送信元ピア・ユニットがメッセージを破棄する。たと
えば、あるメッセージ「正午に昼食をご一緒しませんか?」(Can you
meet me for lunch at noon?)を送信する場合、そ
のメッセージはTTLデータを持つことができ、宛先ピア・ユニットが正午まで
に受信される確認を送らない場合にはメッセージを送信側エンドポイントで破棄
する。この機能のさらに別の変化としては、デルタを含むメッセージの場合、デ
ルタがTTL期限までに宛先によって実行されなければ破棄するように設定でき
る。TTL期限は、たとえばテレスペース内の全メッセージに対して、または特
定の種類の全メッセージに対して、または各メッセージについてたとえばメッセ
ージ内容や宛先エンドポイントに基づいて、様々な制御レベルでユーザが指定で
きる。
【0093】 別の代表的実施態様では、通信マネージャ806Aはあるメッセージについて
指定された宛先エンドポイントを別のアイデンティティに対応する1つまたはそ
れ以上の別のエンドポイントへマッピングして、自動的にこれらの別のエンドポ
イントへメッセージのコピーを転送する役割を果たすことができる。つまり、メ
ッセージが一つの宛先URLを指定していたとしても、通信マネージャ806A
は別のURLへメッセージを送信するようにプログラムできる。このためには、
通信マネージャ806Aは、ピア・ユニット802Aについて、たとえばXML
フォーマットで、メモリ808Aに格納されていてアイデンティティ・マネージ
ャ408(図4)により保持されるアイデンティティ・データ構造へアクセスす
る。次に、アイデンティティ・データ構造から抽出したアイデンティティ情報に
呼応して、通信マネージャ806Aは本来は第1の宛先ピア・ユニットへ宛てら
れたメッセージを第1のピア・ユニットの代わりにまたは第1のピア・ユニット
を含めて1つまたはそれ以上の他のピア・ユニットへ転送する。たとえば、ある
ユーザがJackという名前でテレスペース内の人へメッセージを送りたい場合
、ユーザはJackのホーム・コンピュータの宛先エンドポイントを指定できる
。通信マネージャ806Aは、たとえばアイデンティティ・マネージャ408経
由で、アイデンティティ・データ構造をチェックしてJackが仕事用のエンド
ポイントも持っていると判定できる。次に、通信マネージャは自宅用コンピュー
タに送る代わりとしてまたは自宅用コンピュータに加えて、メッセージを仕事用
のコンピュータの方へ転送することができる。これは自宅用コンピュータがオフ
ラインになっているかまたは到達不可能であると通信マネージャ806Aが判定
した場合にとくに有用である。さらに、通信マネージャ806Aは、Jackの
自宅と仕事のエンドポイントの両方へメッセージを送信しようとする場合に冗長
性を認識することができるので、メッセージを一方または他方宛てにだけ送信し
て、冗長なあるいは不要なトラフィックを削減するように選択することができる
。このパラグラフで説明したようなアイデンティティによるルーティングに関し
ての通信マネージャ806Aの動作は、たとえば各々のメッセージに関してユー
ザの制御下に置くことができ、また特定のテレスペースについてまたはメッセー
ジの種別についてまたは宛先エンドポイントに関係するアイデンティティについ
てプリセットできる。アイデンティティ・データ構造は、たとえば特定の人に到
達するためなどで、メッセージを送信すべきエンドポイントに対する命令を含む
ことができ、このような命令はテレスペースメンバーにより時々更新することが
できる。
【0094】 通信マネージャ806Aはピア・ユニット802A内部にある資源アウェアネ
ス・マネージャ(RAM)930とも通信するが、RAMはピア・ユニット80
2Aの外部にある資源プロバイダから取得した資源情報を管理する役割がある。
このような情報はピア・ユニット802Aがメンバーになっているテレスペース
へ参加するのに有用または必要である。図10は資源アウェアネス・マネージャ
・プロバイダまたはRAMP1002A〜Cと呼ばれる多数の情報源から情報を
取得するRAM930の典型的動作を示した者で、RAMP1002Aとしてプ
レゼンス・サーバ812、RAMP1002Bとしてファイルサーバなどを含む
。RAM930は通信マネージャ806Aからの要求に応じて情報を取得する適
当なRAMPを決定できる。要求に呼応して、RAM930は要求された情報を
通信マネージャ806Aへ非同期的に返す。たとえば、特定のURLに対応する
IPアドレスについての通信マネージャ806Aからの要求に呼応してRAMP
1002A(プレゼンス・サーバ)は前述のデバイスURLからIPアドレスへ
のマッピングを実行して要求されたIPアドレスを返す。通信マネージャ806
Aは返されたIPアドレスをたとえばメモリ808Aにキャッシュする。
【0095】 RAMP1002A〜Cの動作は以下のプロパティ・セットについての説明に
鑑みて最も良く説明できる。本明細書で使用しているように、資源は人、ドキュ
メント、またはデバイスを含むことができ、各々がURLによりユニークに識別
される。各々のプロパティについて、RAMは説明情報のプロパティ・セットを
格納する。プロパティ・セットはたとえば「ストリング名」即ち資源の種類(即
ち人、ドキュメントまたはデバイス)に特有の標準的リストの形を取ることがで
きる。RAM930は各RAMP1002A〜Cに問い合わせを行ないサポート
されているし源プロパティ名のリストを取得することができる、つまりRAM動
作はプロパティ・セットの動的発見で特徴付けることができる。要求に呼応して
、RAM930はたとえばXMLフォーマットで、望ましくは階層的データ構造
の形で、情報を返すことができる。返された情報は別の種類の要求に対応するこ
とができ、次のような形を取ることができる:(a)「スタティック・タグ」(
static tag)呼応、これはたとえばローカル・デバイスなど指定され
たURLに関してとくに要求された通りの情報を返すもの、または(b)「クエ
リ」(query)呼応、これはクエリに呼応して情報を返すものである。クエ
リ呼応は構造化されていたり、値に基づくものだったり、または「変更時に更新
」することができる。値に基づくクエリ呼応は、たとえば(i)関連オペレータ
(何らかの期間に関するデータ、または特定の給料を得る従業員についてのデー
タなど)に呼応する情報、または位置的値に呼応する(即ち指定された順序で照
合される)、または(c)「変更時に更新」される要求に応じる情報、これは要
求を出した実体からの最後のクエリ以降に変更された情報(たとえばファイルX
XXがYYYYにリネームされたなど)を返す。例示すると、RAM930は様
々なRAMP1002A〜Cと通信して名前のついた資源たとえば特定の人につ
いてのメタデータを取得するように依頼されたり、または特定の人がオンライン
のディスカッションに参加できるかどうかを指定する情報を取得するように依頼
されることがある。
【0096】 図8に戻って、ABCシステム800はピア・ツー・ピア・モデル経由でピア
・ユニット802A〜D間の通信を提供する。ABCシステム800は宛先デバ
イスの接続状態と関係なくたとえばリレーなどのリレー814を提供することで
通信を可能にする。リレー814は論理的プロキシで、直接のピア・ツー・ピア
通信が不可能な場合に通信を仲介することができる。リレー814はまたコラボ
レーション環境内でのある種の通信形態を最適化する可能性のあるホストでもあ
る。リレー814は転送中のデルタを含めたメッセージを格納するためのメモリ
832、インターネット803からメッセージを受信するためのレシーバ834
、インターネット803上へメッセージを送信するためのトランスミッタ836
を含む。リレー814を使用する際には、ピア・ユニット802A〜Dは「コラ
ボレーション・クライアント」として参照される。
【0097】 図11は以下のような追加コンポーネントを含むリレー814の実装を示す。 ・切断されている宛先クライアントへのデルタ・リレー・サービスを制御する
デルタ・リレー・モジュール1102。
【0098】 ・「ファンアウト」(fan−out)と呼ばれるマルチキャスト通信または
ブロードキャスト通信を提供するファンアウト・モジュール1104、このモジ
ュールは同時に1つ以上の宛先デバイスへメッセージを送信できる。送信側ピア
・ユニット802A〜Dが比較的低速の通信リンク924(図9)で宛先ピア・
ユニットへ接続されている場合に多数の2点間(ユニキャスト)送信では時間が
かかりすぎるのでとくに有用である。
【0099】 ・認証されたピア・ユニット802A〜Dにファイアウォール越しにメッセー
ジを送信許可する、たとえば機密プライベート・ネットワーク上のデバイスと公
衆ネットワーク経由で通信するための、プロキシを提供するファイアウォール・
モジュール1106。ファイアウォール・モジュール1106は一般にファイア
ウォールが送出側トラフィックを許可し到着トラフィックを許可しないことから
これを実現できる。
【0100】 ・転送コスト情報を格納しピア・ユニット802A〜Dからの転送コスト問い
合わせに応じて情報を提供する転送コスト・モジュール1108。この情報によ
り、コラボレーション・クライアントは、ピア・ユニット802A〜Dが実行す
る最小コストの転送経路決定にしたがって、宛先ピア・ユニットへ直接メッセー
ジを送信するか、またはリレーを経由するかを選択できる。ピア・ユニット80
2A〜Dは情報のローカルコピーを、たとえば通信マネージャに保存しておくこ
とができる。
【0101】 ・地延珠尾方(以下、レイテンシ情報)及びスループット情報を保存しピア・
ユニット802A〜Dからのレイテンシ問い合わせに呼応して情報を提供する転
送レイテンシ・モジュール1110。この情報により、コラボレーション・クラ
イアントはピア・ユニット802A〜Dが実行するレイテンシ比較による経路決
定にしたがって、宛先ピア・ユニットへ直接メッセージを送信するか、またはリ
レーを経由するかを選択できる。送信側ピア・ユニット802A〜Dが比較的低
速の通信リンク924(図9)で宛先ピア・ユニットへ接続されている場合にと
くにこれは有用である。ピア・ユニット802A〜Dは情報のローカルコピーを
、たとえば通信マネージャに保存しておくことができる。
【0102】 ・たとえば認証の「ロックオン」(lock−on)形式など簡略化と性能上
の理由で暗号化しないのが望ましいといった通信メッセージの認証を提供する認
証モジュール1112。
【0103】 図12は送出メッセージ各々についての最適経路を決定する際にコラボレーシ
ョン・クライアントの通信マネージャ個々で実装することのできる転送方法12
00を示す。転送方法1200はステップ1202ではじまり、ここで宛先の接
続状態を調べる。通信マネージャは自分自身の接続性情報を保持でき、「プレゼ
ンス」情報(即ちオンライン/オフライン状態)をプレゼンス・サーバ812か
ら取得できる。宛先がネットワークたとえばインターネットから切断されている
場合、ステップ1202では送信にリレー814の経由が必要であるとの結論に
なる。ステップ1204ではメッセージを多数の宛先に送信するかどうかを調べ
、またたとえばリレー814のモジュール1104のファンアウト・サービスを
利用して送信を行なうのが最善かどうかも調べる。たとえば、通信マネージャは
宛先数があらかじめプログラムされた個数を越えるか、ユーザが指定した個数を
越えるか、または利用可能なバンド幅、ネットワークの混雑状況、及びメッセー
ジを送信しようとしているピア・ユニットの総数に基づいて動的に計算した数、
のどれかを越えるような場合、通信マネージャがリレー814経由でメッセージ
を転送することがある。ステップ1206では認証が必要な機密ネットワークへ
ファイアウォールを越えて送信する必要がある宛先かどうかを調べる。そのよう
な宛先の場合、リレーは認証されるが送信側ピア・ユニットが認証されない場合
には送信を行なうためにリレー814が選択される。宛先の条件と認証に関する
情報はリレー814のRAM930とファイアウォール・モジュール1106経
由で取得できる。ステップ1208では、RAMとリレー814の転送コスト・
モジュール1108から提供された転送コスト情報に基づいて、直接メッセージ
を送信する場合と、リレーを経由して送信する場合の相対的コストを判定する。
最小コストでの転送は、たとえば全ての通信について自動的に実行したり、また
はオペレータが選択するオプションとすることができる。最小コストの転送が有
効でステップ1210のテストでリレーが最小コストの選択肢を提供すると示さ
れている場合には、メッセージはステップ1210でリレー814から送出され
る。ステップ1212では転送スピードに関してRAM930とリレー814の
転送レイテンシ・モジュール1110から得られた情報に基づいて、同様に決定
を行なう。最小レイテンシの転送経路はたとえば全部の通信について自動的に実
行したり、またはオペレータが選択するオプションとすることができる。有効に
なっていて、ステップ1214のテストでリレーが最小レイテンシの選択肢を提
供すると示されている場合には、ステップ1214でメッセージがリレー814
によって送信される。リレー経由で送信しない場合、ステップ1218でメッセ
ージを宛先ピア・ユニットへ直接送信させる。ステップ1202〜1218の順
序を適宜変更できるおよび/または特定の実装の必要に適合するように上記で説
明したテストを改善できることは容易に理解されよう。
【0104】 アクティビティを構成する各ツール−エンジンの組み合わせが別々のダイナミ
クス・マネージャに対応できることと、多数のダイナミクス・マネージャを提供
してた数の同時に実行するアクティビティに対応できる点で、ABCシステムは
マルチタスク、マルチスレッドにすることもできる。テレスペースとダイナミク
ス・マネージャの間の一対一の関係ではデルタ処理で最小の遅延が導入されるが
、スレッドが窮乏する(starvation)とエラー状態またはフォールト
状態を起してしまうことがある。他方、単一のダイナミクス・マネージャで多く
のテレスペースをサポートすると渋滞(congestion)の問題が起こる
ことがある。各コンポーネントの最適な個数はハードウェアの用途、参加するピ
ア・ユニットの個数、トラフィック条件によって左右される。
【0105】 ABCシステムは複数のコンピュータ・システム(CS)を含み、その各々が
1つ以上のテレスペース(TS)を備え、各テレスペースが1つ以上のアクティ
ビティ・コンポーネントを具現化(instantiation)し、各アクテ
ィビティ・コンポーネントには1つ以上のツール(T)とエンジン(E)のペア
を有し、これら各々の動作はダイナミクス・マネージャ(DM)によって調整さ
れる。つまり、ABCシステムは1つ以上のダイナミクス・マネージャを備えた
多数のテレスペースを有することができる。したがって、ABCシステムはたと
えば次のように構成することができる: ABCシステム= CS = DM + A、 ここでA = T + E CS = DM + A、 ここでA = T + E ... ... CS = DM + A、 ここでA = T + E
【0106】 ここで全部のアクティビティA、A2、Anは1つ以上のテレスペースに含ま
れるものとし、”n”は正の整数である。つまり、例を挙げると、様々なテレス
ペースのインスタンシーエションの例は次のようになる: TS ⊂ A、 または TS ⊂ A + A、 または TS ⊂ A + A + A あるいは TS ⊂ A TS ⊂ A ... TS ⊂ A
【0107】 ここで記号「⊂」は「〜を含む集合」を表わし、「m」は正の整数である。し
たがって、各テレスペースは1つまたはそれ以上のアクティビティを具現化し、
フレームワークは単一のテレスペースを有することができる。別の方法では、各
テレスペースは1つ以上のアクティビティを具現化し、フレームワークが多数の
テレスペースを有することができる。
【0108】 前述した実施態様のコンポーネントをソフトウェアで実装したものは、たとえ
ばコンピュータで読み取り可能な媒体、たとえば図1のディスケット142、C
D−ROM147、ROM115、またはハードディスク装置152などの有形
の媒体上に固定されるか、またはモデムまたはその他のインタフェース・デバイ
スたとえば媒体191上のネットワーク195に接続した通信アダプタ190を
介して送信することができるかのどちらかのコンピュータ用命令及びルーチンを
含む。媒体191は光通信回線または有線通信回線を含みこれに制限されない有
形の媒体であるか、またはマイクロ波、赤外線、またはその他の通信技術を含み
これに制限されない無線技術で実現される。これはまたインターネットであって
も良い。一連のコンピュータ用命令が本明細書で本発明に関連して前述し多機能
の全部または一部を実現する。多くのコンピュータ・アーキテクチャまたはオペ
レーティング・システムで使用される多数のプログラミング言語でこのようなコ
ンピュータ用命令を書くことができることは当業者には理解されよう。さらに、
このような命令は現在または将来の、半導体、磁気、光、またはその他のメモリ
・デバイスを含みこれに制限されない何らかのメモリ技術を用いて保存すること
ができ、あるいは現在または将来の、光、赤外線、マイクロ波、またはその他の
送信技術を含みこれに制限されない何らかの通信技術を用いて送信される。この
ようなコンピュータ・プログラム製品が、印刷したまたは電子化された説明を伴
ったリムーバブル媒体、たとえばシュリンクラップ・ソフトウェアとして配布さ
れる、コンピュータ・システムのたとえばシステムのROMまたは固定ディスク
上にプリロードされる、またはたとえばインターネットまたはWWW(Worl
d Wide Web)などのネットワーク上のサーバまたは電子掲示板システ
ムから配布されることを想定している。
【0109】 本発明の代表的実施態様を開示したが、本発明の利点の幾つかを実現する様々
な変化や変更を本発明の精神と範囲から逸脱することなく成し得ることは当業者
には明らかであろう。同じ機能を実行する他のコンポーネントが適宜置き換えら
れることができることは当業者には明らかであろう。さらに、本発明の方法は適
当なプロセッサ用命令を用いるソフトウェアで全て実装したもの、またはハード
ウェア論理とソフトウェア論理とを組み合わせて用いて同じ結果を実現しようと
するハイブリッド型で実装したもののどちらかで実現可能である。さらに、メモ
リの容量、特定の機能を実現するために使用される論理および/または命令の特
定の構成、ならびに本発明のコンセプトに対するその他の変更はすべて添付の請
求の範囲に含まれることを意図している。
【図面の簡単な説明】
【図1】 図1は、従来のコンピュータ・システムの代表的アーキテクチャのブロック図
である。
【図2】 図2は、図1のコンピュータ・システムで実行される従来のアプリケーション
のブロック図で、制御モジュールはディスプレイまたはその他のユーザ・インタ
フェースとインタフェースすること及びデータ・モデルにしたがってデータを維
持することを担当する。
【図3】 図3は、インターネット・ベースのシステムのブロック図で、WWW用のクラ
イアントサーバ・システムと、本発明の実施態様によるパーソナル・ウェブのた
めのピア・ツー・ピアシステムとの両方を示す。
【図4】 図4は、本発明の実施態様による図1のコンピュータ・システムで実装される
ABCシステムの一部のブロック図である。
【図5】 図5は、図1のコンピュータ・システムで実装されるABCシステムの一部の
ブロック図で本発明の実施態様による代表的テレスペース・アプリケーションを
示す。
【図6】 図6は、図5のチェス・テレスペースで実装されるABCシステムの一部のブ
ロック図である。
【図7】 図7は、図4のABCシステムの一部を含むフレームワーク700のブロック
図である。
【図8】 図8は、ピア・ユニット間の通信に関係する図4のABCシステムの一部の実
施態様のブロック図である。
【図9】 図9は、ピア・ユニット間の通信に関係する図4のABCシステムの一部の実
施態様のブロック図である。
【図10】 図10は図9の資源監視マネージャの使用を示すブロック図である。
【図11】 図11は、図8のリレーの実施態様のブロック図である。
【図12】 図12は、図4のABCシステムでの転送方法のブロック図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ケネス・ジー・ムーア アメリカ合衆国 マサチューセッツ州 01886 ウェストフォード ジャック ラ ビット レーン 7 (72)発明者 ロバート・エイチ・マイヒル アメリカ合衆国 マサチューセッツ州 02465 ニュートン マーレイ ロード 41 (72)発明者 ブライン・エム・ランバート アメリカ合衆国 マサチューセッツ州 01845 ノース アンドヴァー チャドウ ィック ストリート 91 Fターム(参考) 5B045 BB28 BB42 BB48 GG01 5B085 BA06 BG02 BG07 CA04 CA06 【要約の続き】 する。通信マネージャはさらにネットワーク接続可能な リモート・デバイスがネットワークから切断されている ことを示すネットワーク接続状態情報に応じてローカル な場所で生成されたデルタをリレーのアドレスへ送信す る。ネットワーク接続可能なリモート・デバイスがネッ トワークに再接続されたことがリレーに通知されるまで リレーはデルタを保存しておき、リレーが再接続された ネットワーク接続可能なリモート・デバイスへデルタを 送信する。

Claims (37)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも1台のネットワーク接続可能なリモート・デバイ
    スと協調動作しネットワーク上で通信するのに適したネットワーク接続可能なロ
    ーカル・デバイスであって、該ネットワーク接続可能なローカル・デバイスは、 A)データ・モデルにしたがってデータのローカル・コピーを格納するメモリ
    と、 B)前記メモリと連動されたデータ変更エンジンであって、複数のデータ変更
    要求に呼応して、前記データ・もであるに従って前記メモリ内のデータの前記ロ
    ーカル・コピーのストレージを制御し、かつ、前記データの前記ローカル・コピ
    ーを変更することを特徴とし、前記データ変更要求にはローカルな場所で生成さ
    れたデータ変更要求とリモートな場所で生成されたデータ変更要求とを含婿とを
    特徴とするデータ変更エンジンと、 C)前記データ変更エンジン連動されたダイナミクス・マネージャであって、
    前記データ変更要求に呼応して、前記エンジンを制御し、かつ、と前記データ変
    更要求の実行を調整することを特徴とするダイナミクス・マネージャと、 D)通信マネージャであって、前記ダイナミクス・マネージャと連動されて前
    記ローカルな場所でに生成したデータ変更要求を前記少なくとも一つのネットワ
    ーク接続可能なリモート・デバイスへ送信するためと前記リモートな場所で生成
    されたデータ変更要求を受信するためであることを特徴とする通信マネージャと を含むことを特徴とするネットワーク接続可能なローカル・デバイス。
  2. 【請求項2】 前記通信マネージャは前記ネットワーク接続可能なリモート
    ・デバイスのネットワーク接続状態に応じて前記ローカルな場所で生成されたデ
    ータ変更要求を前記少なくとも一つのネットワーク接続可能なリモート・デバイ
    スへ直接送信できることを特徴とする請求項1に記載のネットワーク接続可能な
    ローカル・デバイス。
  3. 【請求項3】 前記通信マネージャはプレゼンス機構に呼応して前記少なく
    とも一つのネットワーク接続可能なリモート・デバイスが前記ネットワークに接
    続されている場合前記少なくとも一つのネットワーク接続可能なリモート・デバ
    イスへ前記ネットワーク上で前記ローカルな場所で生成されたデータ変更要求を
    送信し、前記少なくとも一つのネットワーク接続可能なリモート・デバイスが前
    記ネットワークから切断されている場合には前記ネットワークを介してリレーへ
    前記ローカルな場所で生成されたデータ変更要求を送信することを特徴とする請
    求項1に記載のネットワーク接続可能なローカル・デバイス。
  4. 【請求項4】 前記通信マネージャは前記少なくとも一つのネットワーク接
    続可能なリモート・デバイスが前記ネットワークへ再接続された時点で前記少な
    くとも一つのネットワーク接続可能なリモート・デバイスへ前記ローカルな場所
    で生成されたデータ変更要求を転送するように前記リレーに指示することを特徴
    とする請求項3に記載のネットワーク接続可能なローカル・デバイス。
  5. 【請求項5】 前記通信マネージャは前記ネットワーク接続可能なローカル
    ・デバイスが前記ネットワークに接続されているかどうか、したがってリモート
    な場所で生成されたデータ変更要求を受信できるかどうかを示す接続状態通知を
    前記ネットワークを介して前記プレゼンス機構へ送信することを特徴とする請求
    項3に記載のネットワーク接続可能なローカル・デバイス。
  6. 【請求項6】 前記通信マネージャは前記ネットワーク接続可能なリモート
    ・デバイスからリモート な場所で生成されたデータ変更要求を受信して前記受信したデータ変更要求を前
    記ダイナミクス・マネージャへ転送することと、前記ダイナミクス・マネージャ
    は前記データ変更エンジンに指示して前記受信したデータ変更要求であってリモ
    ートな場所で生成されたデータ変更要求を実行させることを特徴とする請求項3
    に記載のネットワーク接続可能なローカル・デバイス。
  7. 【請求項7】 プレゼンス機構及び前記リレーとの組み合わせにあることを
    特徴とする請求項3に記載のネットワーク接続可能なローカル・デバイス。
  8. 【請求項8】 前記プレゼンス機構はネットワーク接続可能な前記ローカル
    ・デバイス及び前記リモート・デバイスのオンライン/オフライン状態の表示を
    保存することを特徴とする請求項7に記載の組み合わせ。
  9. 【請求項9】 前記通信マネージャは前記少なくとも一つのネットワーク接
    続可能なリモート・デバイスが前記ネットワークから切断されている場合前記ネ
    ットワークを介して前記リレーへ前記ローカルな場所で生成されたデータ変更要
    求を送信し、前記リレーはリレー・メモリを有するストア・アンド・フォワード
    ・リレーを含み、前記リレーは前記リレー・メモリに前記ローカルな場所で生成
    されたデータ変更要求を格納し、前記少なくとも一つのネットワーク接続可能な
    リモート・デバイスが前記ネットワークに接続された時点で前記ローカルな場所
    で生成されたデータ変更要求を前記少なくとも一つのネットワーク接続可能なリ
    モート・デバイスへ転送することを特徴とする請求項8に記載の組み合わせ。
  10. 【請求項10】 前記少なくとも一つのネットワーク接続可能なリモート・
    デバイスはネットワーク接続可能な複数のリモート・デバイスを含み、前記リレ
    ーは前記通信マネージャに呼応してマルチキャストを使用し前記ネットワーク接
    続可能な複数のリモート・デバイスへ前記ローカルな場所で生成されたデータ変
    更要求を転送できることを特徴とする請求項7に記載の組み合わせ。
  11. 【請求項11】 前記通信マネージャは最小レイテンシ情報に呼応して、直
    接通信と間接通信の一方で前記ローカルな場所で生成されたデータ変更要求を送
    信でき、前記直接通信は1つ以上の前記ネットワーク接続可能なリモート・デバ
    イスへ直接前記ローカルデータ変更要求を送信することを含み、前記間接通信は
    前記リレー経由で1つ以上の前記ネットワーク接続可能なリモート・デバイスへ
    前記ローカルな場所で生成されたデータ変更要求を送信することを含むことを特
    徴とする請求項10に記載の組み合わせ。
  12. 【請求項12】 前記通信マネージャは最小コスト情報に応じて、直接通信
    と間接通信の一方で前記ローカルな場所で生成されたデータ変更要求を送信でき
    、前記直接通信は1つ以上の前記ネットワーク接続可能なリモート・デバイスへ
    直接前記ローカルな場所で生成されたデータ変更要求を送信することを含み、前
    記間接通信は前記リレー経由で1つ以上の前記ネットワーク接続可能なリモート
    ・デバイスへ前記ローカルな場所で生成されたデータ変更要求を送信することを
    含むことを特徴とする請求項10に記載の組み合わせ。
  13. 【請求項13】 分散型データ・モデルに従ってデータの複数コピーを保持
    するための分散型協調システムであって、該コピーはユーザのアクションに呼応
    して複数のコンピュータ・システムにより変更可能であることを特徴とする分散
    型協調システムであって、前記システムは、 A)複数のコンピュータ・システムであって、前記コンピュータ・システムの
    各々は前記データのローカル・コピーを変更するための複数のデータ変更要求を
    ローカルな場所に生成することが可能であり、かつ、前記ローカルな場所で生成
    されたデータ変更要求ならびに前記コンピュータ・システムの他のシステムで生
    成されたデータ変更要求であってリモートな場所で生成されたデータ変更要求と
    を含むデータ変更要求を実行することが可能であることにより、前記データの前
    記ローカル・コピーに前記要求された変更を行うことが可能であり、前記コンピ
    ュータ・システムの各々はネットワークを介して他の前記コンピュータ・システ
    ムを含む宛先へローカルな場所で生成されたデータ変更要求を送信するためと前
    記ネットワークを介して前記他のコンピュータ・システムからリモートな場所で
    生成されたデータ変更要求を受信するための通信マネージャを含むことを特徴と
    する複数のコンピュータ・システムと、 B)前記通信マネージャの一つから送信されたデータ変更要求を受信し、かつ
    、前記宛先が前記ネットワークに接続された時点で前記受信したデータ変更要求
    を転送するためのリレーとを含む ことを特徴とする分散協調型システム。
  14. 【請求項14】 前記ネットワーク上で前記コンピュータ・システムに連動
    されて前記コンピュータ・システムの各々が前記ネットワークと接続されている
    かまたは切断されているかを示す情報を保存するためのプレゼンス・サーバをさ
    らに含むことを特徴とする請求項13に記載のコンピュータ・システム。
  15. 【請求項15】 前記通信マネージャは前記ネットワークに接続された宛先
    へ直接データ変更要求を送信し、かつ、少なくとも一時的に前記ネットワークか
    ら切断されている宛先へは前記リレーを経由してデータ変更要求を送信すること
    を特徴とする請求項14に記載のコンピュータ・システム。
  16. 【請求項16】 前記通信マネージャは宛先へデータ変更要求を直接送信す
    るか前記リレーを経由するかを、少なくとも部分的に最小コスト転送経路情報に
    基づいて決定できることを特徴とする請求項13に記載のコンピュータ・システ
    ム。
  17. 【請求項17】 前記通信マネージャは、宛先へデータ変更要求を直接送信
    するか前記リレーを経由するかを、少なくとも部分的に最小レイテンシ転送経路
    情報に基づいて決定できることを特徴とする請求項13に記載のコンピュータ・
    システム。
  18. 【請求項18】 各コンピュータ・システムはさらに A)ローカルな場所で生成されたデータ変更要求を受信するツールと、 B)前記ツールとは別に前記データの前記複数コピーの前記ローカルコピーを
    制御するためと前記データ・モデルにしたがって前記ローカルコピーに変更を行
    なうためのエンジンと、 C)前記ローカルな場所で生成されたデータ変更要求及びリモートな場所で生
    成されたデータ変更要求に応じて前記変更を行なう際に前記エンジンを制御する
    ためのダイナミクス・マネージャと を含むことを特徴とする請求項13に記載のコンピュータ・システム。
  19. 【請求項19】 ネットワークを介してネットワーク接続可能なデバイス間
    でデルタを含むデータ変更要求を通信できるようなものであって、アクティビテ
    ィに基づくコラボレーション・システムのための通信サービスを提供するフレー
    ムワーク装置であって、前記フレームワーク装置はネットワーク接続可能なロー
    カル・デバイスで動作しローカルな場所で生成したデルタをネットワークを介し
    て少なくとも一つのネットワーク接続可能なリモート・デバイスへ送信するため
    とリモートな場所で生成されたデルタを少なくとも一つのネットワーク接続可能
    なリモート・デバイスから受信するための通信マネージャを含み、前記通信マネ
    ージャは前記ネットワーク接続可能なリモート・デバイスが前記ネットワークに
    接続されていることを示すネットワーク接続状態情報に応じて前記ネットワーク
    接続可能なリモート・デバイスのアドレスへ直接前記ローカルな場所で生成され
    たデルタを送信し、前記ネットワーク接続可能なリモート・デバイスが前記ネッ
    トワークから切断されていることを示すネットワーク接続状態情報に応じてリレ
    ーのアドレスへ前記ローカルな場所で生成されたデルタを送信することを特徴と
    する装置。
  20. 【請求項20】 前記通信マネージャはプレゼンス機構から前記ネットワー
    クを介して前記ネットワーク接続状態情報を受信することを特徴とする請求項1
    9に記載のフレームワーク装置。
  21. 【請求項21】 コンピュータで読み取り可能な媒体をさらに含み、前記通
    信マネージャは前記媒体上に格納されたコンピュータで読み取り可能なプログラ
    ム・コードを含むことを特徴とする請求項19に記載のフレームワーク装置。
  22. 【請求項22】 前記リレーと組み合わされており、前記リレーは前記ネッ
    トワーク接続可能なリモート・デバイスが前記ネットワークに再接続されたこと
    を前記リレーに通知されるまでデルタを保存するためのメモリと、前記再接続さ
    れたネットワーク接続可能なリモート・デバイスへ前記デルタを送信するトラン
    スミッタを含むことを特徴とする請求項19に記載のフレームワーク装置。
  23. 【請求項23】 前記通信マネージャは前記ネットワーク接続可能なローカ
    ル・デバイスが前記ネットワークに接続されているかどうか、したがってネット
    ワーク接続可能なリモート・デバイスからデルタを受信可能かどうかを示すネッ
    トワーク接続状態情報を前記プレゼンス・サーバへ送信するための手段を含むこ
    とを特徴とする請求項19に記載のフレームワーク装置。
  24. 【請求項24】 前記ローカルな場所で生成されたデルタと前記リモートな
    場所で生成されたデルタに呼応して前記ネットワーク接続可能なローカル・デバ
    イスに含まれるデータ変更エンジンを制御し前記ローカルな場所で生成されたデ
    ルタとリモートな場所で生成されたデルタで指示された通りに格納データへ変更
    を行なうためのダイナミクス・マネージャをさらに含むことを特徴とする請求項
    19に記載のフレームワーク装置。
  25. 【請求項25】 コンピュータで読み取り可能な媒体をさらに含み、前記通
    信マネージャと前記ダイナミクス・マネージャは各々前記媒体上に格納されたコ
    ンピュータで読み取り可能なプログラム・コードを含むことを特徴とする請求項
    19に記載のフレームワーク装置。
  26. 【請求項26】 ネットワークを介してネットワーク接続可能なデバイス間
    でデルタを含むデータ変更要求を通信できるようなものであって、アクティビテ
    ィに基づくコラボレーション・システムのための通信サービスを提供する方法で
    あって、前記方法は、 A)ネットワーク接続可能なローカル・デバイスからネットワークを介して少
    なくとも一つのネットワーク接続可能なリモート・デバイスへローカルな場所で
    生成されたデルタを送信し前記少なくとも一つのネットワーク接続可能なリモー
    ト・デバイスからリモートな場所で生成されたデルタを受信するステップと、 B)前記ネットワーク接続可能なリモート・デバイスが前記ネットワークに接
    続されていることを示すネットワーク接続状態情報に応じて、前記ネットワーク
    接続可能なリモート・デバイスのアドレスへ直接前記ローカルな場所で生成され
    たデルタを送信するステップと、 C)前記ネットワーク接続可能なリモート・デバイスが前記ネットワークから
    切断されていることを示すネットワーク接続状態情報に応じて、リレーのアドレ
    スへ前記ローカルな場所で生成されたデルタを送信するステップと、 を含むことを特徴とする方法。
  27. 【請求項27】 前記ネットワーク接続状態情報はオンライン/オフライン
    状態情報を含み、前記方法はさらにプレゼンス機構から前記ネットワークを介し
    て前記オンライン/オフライン状態情報を受信するステップを含むことを特徴と
    する請求項26に記載の方法。
  28. 【請求項28】 プレゼンス機構が前記オンライン/オフライン状態情報を
    維持しまた前記ネットワークを介して配布し、前記プレゼンス機構は前記ネット
    ワーク接続可能なデバイスの各々についてのオンライン/オフライン状態情報を
    前記ネットワーク接続可能なデバイスの各々からのオンライン/オフライン通知
    によって取得するステップをさらに含むことを特徴とする請求項27に記載の方
    法。
  29. 【請求項29】 前記リレーは前記ネットワーク接続可能なリモート・デバ
    イスが前記ネットワークに再接続されたことを前記リレーに通知されるまで前記
    デルタを保存しておき前記リレーが前記再接続されたネットワーク接続可能なリ
    モート・デバイスへ前記デルタを送信するステップをさらに含むことを特徴とす
    る請求項27に記載の方法。
  30. 【請求項30】 前記ネットワーク接続可能なローカル・デバイスは前記ネ
    ットワーク接続可能なローカル・デバイスが前記ネットワークに接続されている
    かどうか、したがってネットワーク接続可能なリモート・デバイスからのデルタ
    受信が可能かどうかを示すオンライン/オフライン状態通知を前記プレゼンス・
    サーバへ送信するステップをさらに含むことを特徴とする請求項26に記載の方
    法。
  31. 【請求項31】 前記ネットワーク接続可能なローカル・デバイスに含まれ
    る通信マネージャは前記ネットワーク状態情報に含まれ前記通信マネージャで保
    持される接続性情報から前記少なくとも一つのネットワーク接続可能なリモート
    ・デバイスの接続性を判定するステップをさらに含むことを特徴とする請求項2
    6に記載の方法。
  32. 【請求項32】 プレゼンス機構で前記少なくとも一つのネットワーク接続
    可能なリモート・デバイスについてのオンライン/オフライン状態情報を保持し
    、前記オンライン/オフライン状態情報は前記ネットワーク接続状態情報に含ま
    れるステップをさらに含むことを特徴とする請求項31に記載の方法。
  33. 【請求項33】 前記デルタを前記少なくとも一つのネットワーク接続可能
    なリモート・デバイスへ送信できるようになるまで前記ネットワーク接続可能な
    ローカル・デバイスに前記ローカルな場所で生成されたデルタを永続的に保存す
    るステップをさらに含むことを特徴とする請求項26に記載の方法。
  34. 【請求項34】 前記送信ステップは複数のネットワーク接続可能なリモー
    ト・デバイスへ前記ローカルな場所で生成されたデルタを送信し、前記送信ステ
    ップは前記ローカルな場所で生成されたデルタを前記ネットワーク接続可能なリ
    モート・デバイスへマルチキャスト送信するステップを含むことを特徴とする請
    求項26に記載の方法。
  35. 【請求項35】 前記少なくとも一つのネットワーク接続可能なリモート・
    デバイスから確認メッセージが受信されない場合には、最大試行回数までの間前
    記送信ステップを反復するステップをさらに含むことを特徴とする請求項26に
    記載の方法。
  36. 【請求項36】 前記デルタの各々に生存期間を関連付けておき、関連する
    生存期間が経過したら前記デルタの各々を破棄するステップをさらに含むことを
    特徴とする請求項35に記載の方法。
  37. 【請求項37】 前記送信ステップは前記ネットワーク接続可能なローカル
    ・デバイスに格納されたアイデンティティ情報に応じて前記少なくとも一つのネ
    ットワーク接続可能なリモート・デバイスへ前記メッセージを配送するステップ
    を含むことを特徴とする請求項26に記載の方法。
JP2001511555A 1999-07-19 2000-06-28 通信マネージャを備えたコンピュータ・システムによるアクティビティに基づいたコラボレーションのための方法及びその装置 Expired - Fee Related JP4564697B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/357,007 US6640241B1 (en) 1999-07-19 1999-07-19 Method and apparatus for activity-based collaboration by a computer system equipped with a communications manager
US09/357,007 1999-07-19
PCT/US2000/017785 WO2001006365A2 (en) 1999-07-19 2000-06-28 Method and apparatus for activity-based collaboration by a computer system equipped with a communications manager

Publications (3)

Publication Number Publication Date
JP2003536123A true JP2003536123A (ja) 2003-12-02
JP2003536123A5 JP2003536123A5 (ja) 2007-09-06
JP4564697B2 JP4564697B2 (ja) 2010-10-20

Family

ID=23403912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001511555A Expired - Fee Related JP4564697B2 (ja) 1999-07-19 2000-06-28 通信マネージャを備えたコンピュータ・システムによるアクティビティに基づいたコラボレーションのための方法及びその装置

Country Status (9)

Country Link
US (1) US6640241B1 (ja)
EP (1) EP1328882B1 (ja)
JP (1) JP4564697B2 (ja)
KR (1) KR100722916B1 (ja)
AT (1) ATE393433T1 (ja)
CA (1) CA2380148C (ja)
DE (1) DE60038705T2 (ja)
IL (2) IL147704A0 (ja)
WO (1) WO2001006365A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008505580A (ja) * 2004-06-29 2008-02-21 ダマカ、インク. ピアツーピアハイブリッド通信のためのシステムおよび方法
JP2010525488A (ja) * 2007-04-26 2010-07-22 マイクロソフト コーポレーション モデル化アプリケーションの分散動作制御実行
JP2011076603A (ja) * 2009-09-30 2011-04-14 Internatl Business Mach Corp <Ibm> 断続的接続環境におけるリアル・タイム・アプリケーションの性能を改善するための装置、システム、及び方法
JP2012178062A (ja) * 2011-02-25 2012-09-13 Nintendo Co Ltd 通信システム、情報処理装置、プログラム及び情報処理方法

Families Citing this family (175)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1222549B1 (en) * 1999-09-28 2013-04-03 Microsoft Corporation Information flow management in real time
US7636752B2 (en) * 1999-09-28 2009-12-22 Parlano, Inc. System and method for managing information and collaborating
JP2001154964A (ja) * 1999-12-01 2001-06-08 Fujitsu Ltd データ資源を配付する方法
US7917628B2 (en) * 1999-12-02 2011-03-29 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
WO2001040887A1 (en) 1999-12-02 2001-06-07 Senvid, Inc. Method, system and service model for remote recording of television programs
US7120692B2 (en) 1999-12-02 2006-10-10 Senvid, Inc. Access and control system for network-enabled devices
US7934251B2 (en) 1999-12-02 2011-04-26 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US8793374B2 (en) 1999-12-02 2014-07-29 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US9191443B2 (en) * 1999-12-02 2015-11-17 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US8688797B2 (en) * 1999-12-02 2014-04-01 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
KR100317303B1 (ko) * 2000-01-10 2001-12-22 구자홍 방송 프로그램 녹화 및 재생시 a/v와 데이터간 동기화장치
JP3490369B2 (ja) * 2000-02-15 2004-01-26 インターナショナル・ビジネス・マシーンズ・コーポレーション コンテンツ情報の取得方法、コラボレーション・システム及びコラボレーション・サーバー
CA2400438A1 (en) * 2000-02-16 2001-08-23 Bea Systems, Inc. Open market collaboration system for enterprise wide electronic commerce
JP2001242915A (ja) * 2000-03-01 2001-09-07 Yaskawa Electric Corp プログラマブルコントローラのメッセージ通信方法
US7225243B1 (en) * 2000-03-14 2007-05-29 Adaptec, Inc. Device discovery methods and systems implementing the same
US6981019B1 (en) * 2000-05-02 2005-12-27 International Business Machines Corporation System and method for a computer based cooperative work system
US7546337B1 (en) 2000-05-18 2009-06-09 Aol Llc, A Delaware Limited Liability Company Transferring files
US6941510B1 (en) * 2000-06-06 2005-09-06 Groove Networks, Inc. Method and apparatus for efficient management of XML documents
US7366779B1 (en) 2000-06-19 2008-04-29 Aol Llc, A Delaware Limited Liability Company Direct file transfer between subscribers of a communications system
BR0017285A (pt) * 2000-07-13 2003-06-24 Nokia Corp Sistema de comunicação, método a ser efetuado em um sistema de comunicação, e, elemento de rede para um sistema de comunicação
EP1189161A1 (en) * 2000-09-13 2002-03-20 iMediation, S.A. A method and system for managing network-based partner relationships
US7562147B1 (en) * 2000-10-02 2009-07-14 Microsoft Corporation Bi-directional HTTP-based reliable messaging protocol and system utilizing same
GB2368411B (en) 2000-10-25 2004-01-28 Proksim Software Inc Sharing data over a network
US7814198B2 (en) * 2007-10-26 2010-10-12 Microsoft Corporation Model-driven, repository-based application monitoring system
US6944866B1 (en) * 2000-11-16 2005-09-13 International Business Machines Corporation System and method for coordinating operator efforts using action diaries
GB0028474D0 (en) * 2000-11-22 2001-01-10 Raekanet Ltd Improved computer network architecture and associated method and system
US7594030B2 (en) * 2000-11-22 2009-09-22 Microsoft Corporation Locator and tracking service for peer to peer resources
US8255791B2 (en) 2000-11-29 2012-08-28 Dov Koren Collaborative, flexible, interactive real-time displays
US7222291B2 (en) * 2000-12-29 2007-05-22 International Business Machines Corporation Method and system for importing HTML forms
US20020143869A1 (en) * 2001-01-03 2002-10-03 Hal Cohen Method and apparatus for making random introductions electronically
WO2002063832A1 (en) * 2001-02-05 2002-08-15 Personity, Inc. A system and method for filtering unavailable devices in a presence and availability management system
US7647373B2 (en) * 2001-03-13 2010-01-12 Eplus Capital, Inc. System and process for network collaboration through embedded annotation and rendering instructions
FR2824211B1 (fr) * 2001-04-27 2003-06-27 Radio Electronique Aides Tech Systeme et procede de communication entre stations traitant des dossiers communs
US20020169893A1 (en) * 2001-05-09 2002-11-14 Li-Han Chen System and method for computer data synchronization
US7054901B2 (en) * 2001-05-31 2006-05-30 Juniper Networks, Inc. Network management interface with selective rendering of output
US7072946B2 (en) * 2001-05-31 2006-07-04 Juniper Networks, Inc. Network router management interface with API invoked via login stream
AU2002314902A1 (en) * 2001-06-02 2002-12-16 Polycom, Inc. System and method for point to point integration of personal computers with videoconferencing systems
US20020188682A1 (en) * 2001-06-08 2002-12-12 Manlsh Jaln Method and system for manufacturing supply chain collaboration
JP4446368B2 (ja) * 2001-09-14 2010-04-07 富士通株式会社 コラボレーション方法、システム、プログラム及び記録媒体
US7111206B1 (en) 2001-09-19 2006-09-19 Juniper Networks, Inc. Diagnosis of network fault conditions
US7441018B1 (en) 2001-09-19 2008-10-21 Juniper Networks, Inc. Identification of applied configuration information
US7007085B1 (en) * 2001-09-28 2006-02-28 Bellsouth Intellectual Property Corporation Message log for wireline, voice mail, email, fax, pager, instant messages and chat
US7472187B2 (en) 2001-09-28 2008-12-30 At&T Intellectual Property I, L.P. Communications and information resource manager
US7313617B2 (en) 2001-09-28 2007-12-25 Dale Malik Methods and systems for a communications and information resource manager
US20030097410A1 (en) * 2001-10-04 2003-05-22 Atkins R. Travis Methodology for enabling multi-party collaboration across a data network
WO2003032576A1 (en) * 2001-10-09 2003-04-17 Koninklijke Philips Electronics N.V. Service information multicasting method and system
JP2005505840A (ja) * 2001-10-10 2005-02-24 ホットエスイーペー アクティエボラーグ ユーザにプレゼンスサービスを提供する方法及びシステム
US8644475B1 (en) 2001-10-16 2014-02-04 Rockstar Consortium Us Lp Telephony usage derived presence information
US7546359B2 (en) * 2001-10-24 2009-06-09 Groove Networks, Inc. Method and apparatus for managing a peer-to-peer collaboration system
US7139809B2 (en) 2001-11-21 2006-11-21 Clearcube Technology, Inc. System and method for providing virtual network attached storage using excess distributed storage capacity
US20030110228A1 (en) * 2001-12-12 2003-06-12 Ziqiang Xu Method and apparatus for monitoring activity and presence to optimize collaborative issue resolution
US7027460B2 (en) * 2001-12-21 2006-04-11 Intel Corporation Method and system for customized television viewing using a peer-to-peer network
US7299286B2 (en) 2001-12-27 2007-11-20 Nortel Networks Limited Personal user agent
WO2003067361A2 (en) * 2002-02-05 2003-08-14 Eutech Cybernetics Pte Ltd. Remote application publication and communication system
US20030149728A1 (en) * 2002-02-05 2003-08-07 Bandu Wewalaarachchi Remote application publication and communication system
US7206388B2 (en) * 2002-03-18 2007-04-17 Openwave Systems Inc. System and method for providing voice-activated presence information
US7227937B1 (en) 2002-03-19 2007-06-05 Nortel Networks Limited Monitoring natural interaction for presence detection
WO2003083626A1 (en) * 2002-03-28 2003-10-09 British Telecommunications Public Limited Company Method and apparatus for network security
JP4315696B2 (ja) * 2002-03-29 2009-08-19 富士通株式会社 ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法
WO2003096669A2 (en) 2002-05-10 2003-11-20 Reisman Richard R Method and apparatus for browsing using multiple coordinated device
US7139798B2 (en) * 2002-05-17 2006-11-21 Groove Networks, Inc. Method and apparatus for connecting a secure peer-to-peer collaboration system to an external system
US7480697B2 (en) * 2002-05-28 2009-01-20 International Business Machines Corporation Method and apparatus using attached hardware subsystem to communicate between attached hosts
FI114773B (fi) * 2002-06-20 2004-12-15 Nokia Corp Menetelmä ja laite aktiviteettipohjaisen läsnäolotiedon välittämiseksi
US7421736B2 (en) * 2002-07-02 2008-09-02 Lucent Technologies Inc. Method and apparatus for enabling peer-to-peer virtual private network (P2P-VPN) services in VPN-enabled network
US7386546B1 (en) 2002-07-09 2008-06-10 Network Appliance, Inc. Metadirectory namespace and method for use of the same
US8224985B2 (en) 2005-10-04 2012-07-17 Sony Computer Entertainment Inc. Peer-to-peer communication traversing symmetric network address translators
US8060626B2 (en) 2008-09-22 2011-11-15 Sony Computer Entertainment America Llc. Method for host selection based on discovered NAT type
WO2004025466A2 (en) * 2002-09-16 2004-03-25 Clearcube Technology, Inc. Distributed computing infrastructure
US8392609B2 (en) 2002-09-17 2013-03-05 Apple Inc. Proximity detection for media proxies
US7225226B2 (en) 2002-09-27 2007-05-29 International Business Machines Corporation Chat messaging channel redirection
US7555108B2 (en) * 2002-10-01 2009-06-30 Nortel Networks Limited Presence information for telephony users
US20040066770A1 (en) * 2002-10-07 2004-04-08 Pabla Kuldip Singh Method for communicating with a resource-constrained device on an edge of a network
US7640267B2 (en) * 2002-11-20 2009-12-29 Radar Networks, Inc. Methods and systems for managing entities in a computing device using semantic objects
US7707310B2 (en) * 2002-11-20 2010-04-27 Cisco Technology, Inc. Mobile IP registration supporting port identification
US20040107242A1 (en) * 2002-12-02 2004-06-03 Microsoft Corporation Peer-to-peer content broadcast transfer mechanism
US9357256B2 (en) * 2002-12-11 2016-05-31 Broadcom Corporation Third party media channel access in a media exchange network
US7613773B2 (en) * 2002-12-31 2009-11-03 Rensselaer Polytechnic Institute Asynchronous network audio/visual collaboration system
US7711810B2 (en) 2003-01-03 2010-05-04 Nortel Networks Limited Distributed services based on presence technology
WO2004072805A2 (en) * 2003-02-10 2004-08-26 Raindance Communications Inc. Methods and apparatus for automatically adding a media component to an established multimedia collaboration session
US20040237045A1 (en) * 2003-05-21 2004-11-25 Eintelligence, Inc. Method for asynchronous sharing of integrated spreadsheets using a network
US7603464B2 (en) * 2003-06-04 2009-10-13 Sony Computer Entertainment Inc. Method and system for identifying available resources in a peer-to-peer network
US7370089B2 (en) * 2003-07-11 2008-05-06 International Business Machines Corporation Autonomic learning method to load balance output transfers of two peer nodes
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
US7792988B2 (en) * 2003-10-20 2010-09-07 Sony Computer Entertainment America, LLC Peer-to-peer data relay
US7392422B2 (en) * 2003-10-20 2008-06-24 Sony Computer Entertainment America Inc., Violations in a peer-to-peer relay network
US8495202B2 (en) * 2003-10-24 2013-07-23 Brother Kogyo Kabushiki Kaisha Imaging device information management system
US9118574B1 (en) 2003-11-26 2015-08-25 RPX Clearinghouse, LLC Presence reporting using wireless messaging
US7562143B2 (en) * 2004-01-13 2009-07-14 International Business Machines Corporation Managing escalating resource needs within a grid environment
US7406691B2 (en) 2004-01-13 2008-07-29 International Business Machines Corporation Minimizing complex decisions to allocate additional resources to a job submitted to a grid environment
US7552437B2 (en) * 2004-01-14 2009-06-23 International Business Machines Corporation Maintaining application operations within a suboptimal grid environment
EP1560137A1 (en) * 2004-01-30 2005-08-03 Sap Ag Technique for reliable message confirmation
KR101042745B1 (ko) * 2004-01-30 2011-06-20 삼성전자주식회사 클라이언트 단말장치와 서버 사이의 세션 재설정을 위한시스템 및 방법
US20050198193A1 (en) * 2004-02-12 2005-09-08 Jaakko Halme System, method, and apparatus for creating metadata enhanced media files from broadcast media
US7197502B2 (en) * 2004-02-18 2007-03-27 Friendly Polynomials, Inc. Machine-implemented activity management system using asynchronously shared activity data objects and journal data items
SE527871C2 (sv) 2004-03-09 2006-06-27 Ericsson Telefon Ab L M Metod och system för hantering av webbtjänster
US8229454B1 (en) 2004-03-22 2012-07-24 Avaya Inc. Personal location information management
US7895020B2 (en) * 2004-04-01 2011-02-22 General Dynamics Advanced Information Systems, Inc. System and method for multi-perspective collaborative modeling
US7580867B2 (en) 2004-05-04 2009-08-25 Paul Nykamp Methods for interactively displaying product information and for collaborative product design
US8171387B2 (en) * 2004-05-13 2012-05-01 Boardwalk Collaboration, Inc. Method of and system for collaboration web-based publishing
US20050262075A1 (en) 2004-05-21 2005-11-24 Bea Systems, Inc. Systems and methods for collaboration shared state management
US20060010205A1 (en) * 2004-05-21 2006-01-12 Bea Systems, Inc. Systems and methods for collaboration impersonation
US20060010125A1 (en) * 2004-05-21 2006-01-12 Bea Systems, Inc. Systems and methods for collaborative shared workspaces
US7266547B2 (en) 2004-06-10 2007-09-04 International Business Machines Corporation Query meaning determination through a grid service
WO2006004717A2 (en) * 2004-06-30 2006-01-12 Jumpstart Wireless Corporation System and method for extending business systems to a mobile workforce
US7730030B1 (en) 2004-08-15 2010-06-01 Yongyong Xu Resource based virtual communities
US7925698B2 (en) * 2004-08-18 2011-04-12 Siemens Enterprise Communications, Inc. Apparatus and method for a synchronized mobile communication client
US7899863B2 (en) * 2004-08-18 2011-03-01 Siemens Enterprise Communications, Inc. Apparatus and method for enhanced synchronization using an IMS server
US7600006B2 (en) * 2004-08-31 2009-10-06 Inter-Tel, Inc Peer-to-peer distribution of firmware
FR2875361B1 (fr) * 2004-09-16 2007-01-12 Christian Garnier Systeme de communication en temps reel
US7571224B2 (en) * 2004-10-29 2009-08-04 International Business Machines Corporation Method for using presence in a system management environment
US7558862B1 (en) * 2004-12-09 2009-07-07 LogMeln, Inc. Method and apparatus for remotely controlling a computer with peer-to-peer command and data transfer
IL165817A0 (en) * 2004-12-16 2006-01-15 Samsung Electronics U K Ltd Electronic music on hand portable and communication enabled devices
US7590623B2 (en) * 2005-01-06 2009-09-15 International Business Machines Corporation Automated management of software images for efficient resource node building within a grid environment
US7562035B2 (en) 2005-01-12 2009-07-14 International Business Machines Corporation Automating responses by grid providers to bid requests indicating criteria for a grid job
US7571120B2 (en) 2005-01-12 2009-08-04 International Business Machines Corporation Computer implemented method for estimating future grid job costs by classifying grid jobs and storing results of processing grid job microcosms
US9176955B2 (en) 2005-03-09 2015-11-03 Vvond, Inc. Method and apparatus for sharing media files among network nodes
US8904463B2 (en) 2005-03-09 2014-12-02 Vudu, Inc. Live video broadcasting on distributed networks
US20080022343A1 (en) * 2006-07-24 2008-01-24 Vvond, Inc. Multiple audio streams
US8219635B2 (en) 2005-03-09 2012-07-10 Vudu, Inc. Continuous data feeding in a distributed environment
US20060265396A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20060265395A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20060265394A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US8099511B1 (en) * 2005-06-11 2012-01-17 Vudu, Inc. Instantaneous media-on-demand
US7707579B2 (en) 2005-07-14 2010-04-27 International Business Machines Corporation Method and system for application profiling for purposes of defining resource requirements
US8155623B2 (en) * 2005-07-29 2012-04-10 Nextel Communications Inc. System and method for obtaining information from a wireless modem
US20070239725A1 (en) * 2006-03-28 2007-10-11 Microsoft Corporation Active cache offline access and management of project files
US8296812B1 (en) 2006-09-01 2012-10-23 Vudu, Inc. Streaming video using erasure encoding
WO2008043182A1 (en) * 2006-10-13 2008-04-17 Ets (Ecole De Technologie Superieure) System for supporting collaborative work
US8051475B2 (en) * 2006-11-01 2011-11-01 The United States Of America As Represented By The Secretary Of The Air Force Collaboration gateway
US8160567B2 (en) * 2007-05-08 2012-04-17 Verizon Patent And Licensing Inc. Inbound phone control
US7995478B2 (en) 2007-05-30 2011-08-09 Sony Computer Entertainment Inc. Network communication with path MTU size discovery
US20090097815A1 (en) * 2007-06-18 2009-04-16 Lahr Nils B System and method for distributed and parallel video editing, tagging, and indexing
US8239505B2 (en) * 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US7970892B2 (en) 2007-06-29 2011-06-28 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
US8230386B2 (en) * 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US8225308B2 (en) 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
US7926070B2 (en) * 2007-10-26 2011-04-12 Microsoft Corporation Performing requested commands for model-based applications
US8099720B2 (en) 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US8181151B2 (en) * 2007-10-26 2012-05-15 Microsoft Corporation Modeling and managing heterogeneous applications
US7974939B2 (en) 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US20090138556A1 (en) * 2007-11-27 2009-05-28 Corry Kevin M System and method for implementing quick response replies on a data processing system
US7856501B2 (en) 2007-12-04 2010-12-21 Sony Computer Entertainment Inc. Network traffic prioritization
US7856506B2 (en) 2008-03-05 2010-12-21 Sony Computer Entertainment Inc. Traversal of symmetric network address translator for multiple simultaneous connections
US8230348B2 (en) * 2008-04-28 2012-07-24 Roger Peters Collaboration software with real-time synchronization
US20100031333A1 (en) * 2008-07-22 2010-02-04 Mitchell Mark T Secure email
US9391825B1 (en) 2009-03-24 2016-07-12 Amazon Technologies, Inc. System and method for tracking service results
US10628847B2 (en) 2009-04-15 2020-04-21 Fiver Llc Search-enhanced semantic advertising
US9432473B2 (en) * 2010-02-17 2016-08-30 Business Objects Software Ltd. Online presence management for web sites
US9734124B2 (en) * 2010-03-04 2017-08-15 International Business Machines Corporation Direct linked two way forms
US9682324B2 (en) 2010-05-12 2017-06-20 Activision Publishing, Inc. System and method for enabling players to participate in asynchronous, competitive challenges
WO2011149558A2 (en) 2010-05-28 2011-12-01 Abelow Daniel H Reality alternate
US9754585B2 (en) * 2012-04-03 2017-09-05 Microsoft Technology Licensing, Llc Crowdsourced, grounded language for intent modeling in conversational interfaces
US9161287B2 (en) * 2012-10-16 2015-10-13 Spectranetix, Inc. Technique for efficient message delivery in Ad Hoc, mesh, wireless computer networks
US9838476B2 (en) 2014-03-26 2017-12-05 Rockwell Automation Technologies, Inc. On-premise data collection and ingestion using industrial cloud agents
US10208947B2 (en) 2014-03-26 2019-02-19 Rockwell Automation Technologies, Inc. Cloud-level analytics for boiler networks
US9825949B2 (en) 2014-03-26 2017-11-21 Rockwell Automation Technologies, Inc. Device authentication to facilitate secure cloud management of industrial data
US9866635B2 (en) 2014-03-26 2018-01-09 Rockwell Automation Technologies, Inc. Unified data ingestion adapter for migration of industrial data to a cloud platform
US9614963B2 (en) 2014-03-26 2017-04-04 Rockwell Automation Technologies, Inc. Cloud-based global alarm annunciation system for industrial systems
US9971317B2 (en) 2014-03-26 2018-05-15 Rockwell Automation Technologies, Inc. Cloud-level industrial controller loop gain tuning based on industrial application type
US9886012B2 (en) 2014-03-26 2018-02-06 Rockwell Automation Technologies, Inc. Component factory for human-machine interface migration to a cloud platform
US10095202B2 (en) * 2014-03-26 2018-10-09 Rockwell Automation Technologies, Inc. Multiple controllers configuration management interface for system connectivity
US9843617B2 (en) 2014-03-26 2017-12-12 Rockwell Automation Technologies, Inc. Cloud manifest configuration management system
US9392057B2 (en) * 2014-04-11 2016-07-12 Qualcomm Incorporated Selectively exchanging data between P2P-capable client devices via a server
US9619012B2 (en) 2014-05-30 2017-04-11 Apple Inc. Power level control using power assertion requests
US9396089B2 (en) 2014-05-30 2016-07-19 Apple Inc. Activity tracing diagnostic systems and methods
US10430577B2 (en) 2014-05-30 2019-10-01 Apple Inc. Method and apparatus for inter process privilige transfer
FR3031258B1 (fr) * 2014-12-31 2017-01-27 Bull Sas Methode de communication entre un gestionnaire d'action distant et un boitier de communication
US9800659B2 (en) * 2015-02-02 2017-10-24 International Business Machines Corporation Enterprise peer-to-peer storage and method of managing peer network storage
US10471348B2 (en) 2015-07-24 2019-11-12 Activision Publishing, Inc. System and method for creating and sharing customized video game weapon configurations in multiplayer video games via one or more social networks
US10764255B2 (en) 2016-09-21 2020-09-01 Rockwell Automation Technologies, Inc. Secure command execution from a cloud monitoring system to a remote cloud agent
US11327473B2 (en) 2017-07-11 2022-05-10 Rockwell Automation Technologies, Inc. Dynamically reconfigurable data collection agent for fracking pump asset
US10482063B2 (en) 2017-08-14 2019-11-19 Rockwell Automation Technologies, Inc. Modular control manifest generator for cloud automation
US10416660B2 (en) 2017-08-31 2019-09-17 Rockwell Automation Technologies, Inc. Discrete manufacturing hybrid cloud solution architecture
US10554701B1 (en) 2018-04-09 2020-02-04 Amazon Technologies, Inc. Real-time call tracing in a service-oriented system
US11410109B2 (en) * 2018-11-01 2022-08-09 Precog, LLC Portable real-time experience communications device and monitoring system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03253147A (ja) * 1990-03-02 1991-11-12 Nippon Telegr & Teleph Corp <Ntt> 複数経路の分散的設定方法
JPH08335965A (ja) * 1995-06-09 1996-12-17 Hitachi Ltd 通信支援システムおよび通信支援方法、ならびに、情報蓄積装置および端末
JPH09163328A (ja) * 1995-12-13 1997-06-20 Ricoh Co Ltd テレライティングシステム
JPH10240651A (ja) * 1997-02-28 1998-09-11 Hitachi Ltd 株式注文データの自動再送信方式

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5220657A (en) * 1987-12-02 1993-06-15 Xerox Corporation Updating local copy of shared data in a collaborative system
US5538255A (en) 1992-02-18 1996-07-23 Barker; Bruce J. Remote controlled multiplayer video game
JPH08509824A (ja) 1993-02-26 1996-10-15 タリジェント インコーポレイテッド 共同作業システム
GB2303946A (en) 1995-07-29 1997-03-05 Ibm Data conferencing system
US5822525A (en) * 1996-05-22 1998-10-13 Microsoft Corporation Method and system for presentation conferencing
US5862346A (en) * 1996-06-28 1999-01-19 Metadigm Distributed group activity data network system and corresponding method
US5892949A (en) 1996-08-30 1999-04-06 Schlumberger Technologies, Inc. ATE test programming architecture
US5899810A (en) 1997-01-24 1999-05-04 Kaon Interactive Corporation Distributed game architecture to overcome system latency
US5940082A (en) 1997-02-14 1999-08-17 Brinegar; David System and method for distributed collaborative drawing
GB2324175B (en) * 1997-04-10 2002-07-31 Ibm Personal conferencing system
US5861883A (en) * 1997-05-13 1999-01-19 International Business Machines Corp. Method and system for portably enabling awareness, touring, and conferencing over the world-wide web using proxies and shared-state servers
US5966512A (en) * 1997-06-05 1999-10-12 International Business Machines Corporation Groupware save operation
US6233600B1 (en) * 1997-07-15 2001-05-15 Eroom Technology, Inc. Method and system for providing a networked collaborative work environment
US5987376A (en) * 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
WO1999006925A1 (en) 1997-07-31 1999-02-11 Data Net Corporation Method and apparatus for implementing software connectivity for client/server applications
US6105055A (en) * 1998-03-13 2000-08-15 Siemens Corporate Research, Inc. Method and apparatus for asynchronous multimedia collaboration
US6342906B1 (en) * 1999-02-02 2002-01-29 International Business Machines Corporation Annotation layer for synchronous collaboration
US6353174B1 (en) * 1999-12-10 2002-03-05 Harmonix Music Systems, Inc. Method and apparatus for facilitating group musical interaction over a network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03253147A (ja) * 1990-03-02 1991-11-12 Nippon Telegr & Teleph Corp <Ntt> 複数経路の分散的設定方法
JPH08335965A (ja) * 1995-06-09 1996-12-17 Hitachi Ltd 通信支援システムおよび通信支援方法、ならびに、情報蓄積装置および端末
JPH09163328A (ja) * 1995-12-13 1997-06-20 Ricoh Co Ltd テレライティングシステム
JPH10240651A (ja) * 1997-02-28 1998-09-11 Hitachi Ltd 株式注文データの自動再送信方式

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008505580A (ja) * 2004-06-29 2008-02-21 ダマカ、インク. ピアツーピアハイブリッド通信のためのシステムおよび方法
JP2010525488A (ja) * 2007-04-26 2010-07-22 マイクロソフト コーポレーション モデル化アプリケーションの分散動作制御実行
JP2011076603A (ja) * 2009-09-30 2011-04-14 Internatl Business Mach Corp <Ibm> 断続的接続環境におけるリアル・タイム・アプリケーションの性能を改善するための装置、システム、及び方法
JP2012178062A (ja) * 2011-02-25 2012-09-13 Nintendo Co Ltd 通信システム、情報処理装置、プログラム及び情報処理方法

Also Published As

Publication number Publication date
EP1328882A2 (en) 2003-07-23
CA2380148C (en) 2009-12-01
DE60038705D1 (de) 2008-06-05
IL147704A (en) 2006-12-31
KR20020042805A (ko) 2002-06-07
CA2380148A1 (en) 2001-01-25
KR100722916B1 (ko) 2007-05-30
WO2001006365A3 (en) 2003-05-15
JP4564697B2 (ja) 2010-10-20
WO2001006365A8 (en) 2001-08-16
EP1328882B1 (en) 2008-04-23
ATE393433T1 (de) 2008-05-15
WO2001006365A2 (en) 2001-01-25
IL147704A0 (en) 2002-08-14
DE60038705T2 (de) 2009-07-02
US6640241B1 (en) 2003-10-28

Similar Documents

Publication Publication Date Title
JP4564697B2 (ja) 通信マネージャを備えたコンピュータ・システムによるアクティビティに基づいたコラボレーションのための方法及びその装置
JP4762467B2 (ja) ダイナミクス・マネージャを備えたコンピュータ・システムによるアクティビティに基づくコラボレーションのための方法及びその装置
US6859821B1 (en) Method and apparatus for prioritizing data change requests and maintaining data consistency in a distributed computer system equipped for activity-based collaboration
JP4902671B2 (ja) ターゲットデバイスにコンテンツを送信するための方策
CA2486135C (en) Providing supplemental contact information corresponding to a referenced individual
US9253129B2 (en) Instant messaging with browser collaboration
US7945615B1 (en) Distributed shared persistent objects
JP2000112883A (ja) 情報処理方法、情報処理装置、情報処理プログラムを格納する記憶媒体
JP4125553B2 (ja) 電子メッセージ強化方法、電子メッセージ強化装置、応答装置、及び、電子メッセージ強化プログラム
Vinoski RPC under fire
US20060095577A1 (en) Method and apparatus for optimizing web services binding
JP2007149080A (ja) コンテキスト・ベースのナビゲーション
JP2001282750A (ja) 情報入手システム
JP2001290743A (ja) 電子メール回覧システムおよび電子メール回覧方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070627

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070627

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100216

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100218

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100706

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100727

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100802

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130806

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees