JP2005196581A - 分散コラボレーション・システムでコンタクトを保存し管理するための方法及び装置 - Google Patents

分散コラボレーション・システムでコンタクトを保存し管理するための方法及び装置 Download PDF

Info

Publication number
JP2005196581A
JP2005196581A JP2004003355A JP2004003355A JP2005196581A JP 2005196581 A JP2005196581 A JP 2005196581A JP 2004003355 A JP2004003355 A JP 2004003355A JP 2004003355 A JP2004003355 A JP 2004003355A JP 2005196581 A JP2005196581 A JP 2005196581A
Authority
JP
Japan
Prior art keywords
contact
contact information
information
store
message
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
JP2004003355A
Other languages
English (en)
Other versions
JP4681812B2 (ja
Inventor
Alexei Evdokimov
アレクセイ・エヴドキモフ
Nikita V Sarychev
ニキータ・ヴィ・サリチェフ
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.)
Groove Networks Inc
Original Assignee
Groove Networks Inc
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 Groove Networks Inc filed Critical Groove Networks Inc
Priority to JP2004003355A priority Critical patent/JP4681812B2/ja
Publication of JP2005196581A publication Critical patent/JP2005196581A/ja
Application granted granted Critical
Publication of JP4681812B2 publication Critical patent/JP4681812B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Abstract

【課題】
分散コラボレーション・システムにおいて、コンタクト情報を保存し管理するための方法及び装置を提供する。
【解決手段】
分散コラボレーション・システムにおいて、各々のユーザはローカル・コンタクト・ストアに全てのコンタクト情報を格納する。例えば共有空間又はコンタクト・リスト等のコンタクト情報を保守するつまりコンタクト情報の「供給源」として機能する各サブシステムは例えばURLなどコンタクト・ストア内のコンタクトを同定する情報だけを格納する。コンタクトとの通信が障害によって失われないでコンタクト通信情報を受信することを保証するため、ローカル・コンタクト・ストアは双方向の購読を用いて更新される。更に詳しくは、あるコンタクトの情報をユーザのローカル・コンタクト・ストアへ追加した時、購読メッセージをそのコンタクトへ送信する。購読メッセージはユーザのコンタクト情報を含みそのコンタクトの購読リストへユーザを追加するように要求する。更新されたコンタクト情報は購読リストにある各々の人へ自動送信される。
【選択図】 図2

Description

本発明は分散型かつピア・ツー・ピア型コラボレーション・システムに関しまたこのようなシステムでコンタクト情報を保存し管理するための方法及び装置に関する。
コラボレーションは「コラボレータ」と呼ばれるメンバのグループにおいて各メンバがそのグループ内の他のコラボレータへ情報を自動送信したり情報を自動受信する能力に関係する。このようなコラボレーションを容易にするため、このような情報をパーソナル・コンピュータ・システム、通信機器、又はハンドヘルド機器及び無線機器を含むその他の通信装置との間で送信できるようにする各種システムが開発された。これらの装置は本明細書では集合的に「コンピュータ」と呼称することにする。
コンピュータによるコラボレーションは1台のコンピュータ又はサーバに接続された又はこれで操作しているユーザ間でローカルに行なうことができる。他に、コラボレーションはネットワーク上例えばインターネット上で行われる場合があり、この場合には、ユーザの各々はネットワークに接続されたコンピュータに配置されている。サーバもネットワークに接続される。ネットワーク化されたコンピュータ・コラボレーション・システムとして幾つかのコラボレーション・モデルが現在実装されつつある。これらのモデルの一つがクライアント・サーバ・モデルで、この場合にはコラボレータ全員が、ネットワーク経由で、中央サーバへ接続される。各コラボレータによって生成された情報はネットワーク上でサーバへ送信され、サーバは情報をネットワーク上で他の各コラボレータへブロードキャスト(broadcast)する。このシステムの一つのバージョンではコラボレーションで変更されつつあるデータはサーバ上に集中して格納される。次に、そのデータを変更しようとする各コラボレータはサーバへコマンドを送信してサーバのデータに変更を行わせる。サーバはデータのコピーを変更しコラボレータ全員へ変更したデータの「ビュー」(view)を表す情報を送信することで、各コラボレータはデータをローカルに表示できる。
これ以外に、サーバを用いたシステムでは、サーバに保持されるデータ・コピーの他、更にローカルなデータのコピーを各コラボレーション・コンピュータで保持する。そのデータを変更したい各コラボレータはサーバへコマンドを送信してサーバのデータに変更を加える。サーバはデータのコピーを変更してから、コラボレータ全員へコマンドをブロードキャストする。各コラボレータはコマンドを使ってローカルなデータ・コピーを更新する。このローカル・データ・コピーがローカルに表示される。このモデルの例としては、ニューヨーク州アーモンクにあるアイビーエム社から販売されているロータス・ノーツ(登録商標)やロータス・セイムタイム(登録商標)、またワシントン州レッドモンドのマイクロソフト社から発売されているエクスチェンジが挙げられる。
別のコラボレーション・モデルは「ピア・ツー・ピア型モデル」で、この場合コラボレーションするコンピュータの各々の間にネットワーク上で直接接続が確立される。各コラボレータが生成した情報は他の各コラボレータへ直接送信される。このようなシステムでは、コラボレータがコラボレーション・システムによって生成維持されるプライベートな「仮想」共有空間内で通信する。コラボレータがコラボレーションに参加すると、共有空間の属性及び情報が「シリアル化」されてから新規コラボレータへネットワーク上で送信される。この情報が到着するとこの情報は「非シリアル化」され新規コラボレータのコンピュータ上に共有空間を作成するために使用される。
集中型のデータ・リポジトリ(data repository)はピア・ツー・ピア型コラボレーション・システムでは必要とされないが、これは各コラボレータがコラボレーションにより変更されるデータのローカル・コピーを保有しているためである。データを変更するためには、コラボレータはデータ変更要求、即ち、「デルタ」を生成して他の各コラボレータへ転送する。到着したデータ変更要求は各コラボレータが自分のローカル・データ・コピーを変更するために使用する。この種のコラボレーション・システムの一例としては、019015 マサチューセッツ州 ビヴァリー、100 カミングス・センター、スイート535Qにあるグルーヴ・ネットワークス社が開発販売しているグルーヴ・ワークスペース・コラボレーション・システム(Groove Workspace collaboration system)があり、これについての詳細はhttp://www.groove.netに記載されている。また米国特許第6,446,113B1号も参照。
ユーザの利便のため、前述のコラボレーション・システムの全てがコンタクト情報を保存する領域(provision)を有している。コンタクトとはユーザが共通の興味を共有する人びとでありそのため通信する必要があり、また仕事の同僚、関係者、友人、家族であり得る。保存されたコンタクトに関する情報(以下、コンタクト情報)は一般に様々な手段例えば電話や電子メール等でコンタクトと通信するのに必要な情報を含む。この保存されたコンタクト情報によってユーザは情報を記憶しなくても済んだり、他の情報源から情報を取り出さなくても済み、コラボレーション・システムのスピードと利便性を増大させることができる。
各コンタクトについて保存された情報は、例えば「vCard」又はその他の配布メカニズムによって他のコンタクトと共有するとコンタクトが決定した視覚的情報を一般に含む。しかし、コンタクト情報は例えばコンタクトに連絡するのに用いる装置に関する装置情報、リレー・サーバ情報、認証情報又は確認情報例えばデジタル署名、デジタル指紋、又はコンタクトとの機密通信を可能にするための暗号化キーなど非視覚的情報も含むことがある。
典型的には、コンタクト情報はコンタクト情報を検索して特定できるようなコンタクト・ディレクトリ又はコンタクト・リストに保持される。コンタクト・リストは多くのサブシステムによって参照され維持される。例えば、コンタクト・リストは、アイデンティティ、コンタクト・リスト・ツール、共有空間メンバ・サブシステム、メッセージ・ストア(message store)によって参照できる。これらのリスト全部が別々の場所に格納され別々のサブシステムによって維持される。多くの異なったリストが存在しそのためコンタクト情報の多くの「供給源」が存在しているため、更新を配布したりコンタクト情報の全部を最新状態に維持するのは困難である。
例えば、共有空間でのコンタクト情報の変更は、共有空間の各メンバに送信される「コンタクト変更」デルタによって伝播する必要がある。ユーザが多くの共有空間に参加している場合、これらのデルタを全ての共有空間で処理するには時間の掛かる作業になることがある。更に、ユーザと同一のコンタクトが一緒に多くの共有空間に参加している場合、そのコンタクトはユーザのコンタクト情報の同一の更新を共有空間の各々から受信することになる。
同様に、インスタント・メッセンジャー(instant messenger)のコンタクト情報はユーザがそのコンタクトにインスタント・メッセージ(instant message)を送信した場合にだけ更新される。そのため、あるユーザは任意のコンタクトについて最新バージョンの情報を保有するとは保証されない。ユーザの視覚的情報が陳腐化するだけでなくクライアント装置又はリレーの非視覚的リストも変化することがあり、コンタクト情報の更新なしには将来の通信が不可能になる。
本発明の原理によれば、各ユーザは、そのユーザについてのコンタクト情報全部に単一の場所を提供するために、ローカルなコンタクト・ストア(contact store)にコンタクト情報の全部を格納する。例えば共有空間又はコンタクト・リスト等のコンタクト情報を維持するすなわちコンタクト情報の「供給源」として機能する各サブシステムはコンタクト・ストア内にコンタクトを同定する情報例えばURLだけを保存する。そのため、コンタクト情報を最新に保つためには、コンタクト・ストア内の情報を更新するだけで良い。
コンタクトとの通信がコンタクト通信情報を受信できなかったことによって失われないように保証するため、ローカルのコンタクト・ストアはアイデンティティ・メッセージを使用する双方向の購読(subscription)を用いて更新する。更に詳しくは、あるコンタクトについての情報をあるユーザのローカルなコンタクト・ストアに追加する場合、購読要求メッセージをそのコンタクトに送信する。購読要求メッセージはユーザのコンタクト情報と、そのユーザをそのコンタクトについての購読リストに追加する要求とを含む。後で、コンタクトが彼又は彼女のコンタクト情報を更新する場合、更新情報は購読リストにある各人へ自動的に送信される。ユーザがこのような将来の更新を受け取るためには、コンタクトはそのユーザについての最新のコンタクト情報を維持する必要がある。つまり、購読は、ユーザがそのコンタクトをユーザ自身の購読リストに追加してコンタクトが自動的にユーザの全ての更新を受信することを必要とする「双方向」でなければならない。
一つの実施態様において、コンタクトはあるユーザを彼又は彼女の購読リストへ追加する要求を拒否することがある。この場合、ユーザはそのコンタクトをユーザ自身の購読リストへ追加しない。
別の実施態様において、購読要求メッセージの受取人が要求元のコンタクト情報が受取人のコンタクト・ストア内に存在することを必要とするような何らかの供給源(source)を持っていない場合でも、要求内のコンタクト情報が「供給源のない」コンタクトとしてコンタクト・ストアに追加されるがこれは単に双方向の購読を実現するためだけに追加される。
更に別の実施態様では、コンタクトについての情報供給源のリストがコンタクト・ストア内に維持される。新規供給源がコンタクト情報をコンタクト・ストアへ追加することを要求する(例えば、ユーザがメンバとしてそのコンタクトを有する共有空間に加入する)場合、コンタクト情報がすでにコンタクト・ストア内に存在すれば、その情報はコンタクト・ストアへ追加されない。その代わり、(新規供給源からの情報がコンタクト・ストア内の情報より新しいものである場合)コンタクト・ストア内の情報が更新されコンタクト供給源がリストに追加される。同様に、コンタクト供給源が消去される場合(例えばユーザがメンバとしてそのコンタクトを有する共有空間を離脱する場合)コンタクト供給源はリストから削除されるがコンタクト情報はコンタクト・ストアから削除されない。リストが空の場合、そのコンタクトは供給源のないコンタクトになる。
更に別の実施態様では、アクティブでない供給源なしのコンタクトについての情報がコンタクト・ストア内に蓄積するのを防止するため、各々の供給源なしのコンタクトと定期的に接触を取り、所定の期限内に応答がない場合にはそれらのコンタクト情報がコンタクト・ストアから削除される。
別の実施態様では、購読要求はコンタクトの名前だけを含み完全な「vCard」情報を含まないことがある。この場合、「名前だけ」と言うフラグをvCard情報にセットしてコンタクト情報更新中にその購読者には選択された情報だけが送信されるようにする。
図1Aは、例えば前述のグルーヴ・コラボレーション・システムなどのコラボレーション・システム100の略ブロック図である。図1Aは3台のコラボレーション装置102、104、106を示しているが、これらはコンピュータ、PDA、ラップトップコンピュータ、セットトップ・ボックス、ウェブ閲覧可能な携帯電話又はその他の通信装置であり得る。3台のコラボレーション装置だけを図示したが追加の装置も存在する。グルーヴ・ソフトウェアが当該装置にロードされた場合、それぞれ装置102、104、106にデータベース108、110、112等のデータベースを作成する。これらのデータベース各々はコラボレータによって処理されるデータのローカル・コピーを保持する。後述するように、データベース108、110、112はコラボレーション装置102、104、106の各々の動作に関する情報も保持する。
コラボレーション・ソフトウェアは装置102、104、106に各々トランシーバ114、116、118等のトランシーバも作成する。各トランシーバはデルタと呼ばれるデータ変更要求を作成し矢印122、124、126によって模式的に示してあるようにこれをコラボレータ間で送信する責任がある。典型的には、これらのデータ変更要求は図1Aに図示したようにインターネット120上で送信されるが、例えばLANネットワーク等の別のネットワーク上で送信することもできる。データ変更要求はシステムにコラボレータを追加・除去したり、またデータ・コピーの同期をとるために各々のコラボレーション装置でローカル・データ・コピーを更新するなどの多数の目的で使用される。
前述のコラボレーション・ソフトウェアを使用するため、ユーザは1つ又はそれ以上のアカウントを設定する。一般に、アカウントは他のシステムで共通に見られるユーザ情報ファイル例えばアイデンティティ・ファイル等に相当する。各アカウントはユーザについての情報例えば電子メールアドレスやその他のユーザとコンタクトを取る方法を含む。アカウント情報は暗号化、署名され例えばデータベース108、110、112等、パスワードで保護されコラボレーション・システムによって維持されるデータベースに格納される。このようなデータベース128が図1Bに更に詳細に図示してある。
更に詳しくは、システム・データベース128はアカウント・データベース130を含み、これにはアカウントに関するユーザのプライベートなデータが格納されている。例えば、あるユーザは多数のアイデンティティ、例えばオフィスで使用する職業上のアイデンティティと、画像や休暇の計画を共有するような目的で家族や友人と使用するパーソナル・アイデンティティ等を持つことがある。アカウント・データはこれらのアイデンティティのリスト134と各アイデンティティについてのデータ、アカウントに関連付けられた共有空間のリストを含む。アカウント・データベースは、ユーザがメンバになっている各共有空間に関連している別々のデータ・ストアを含み、そのうちのデータ・ストア148、150、152が図示してある。データ・ストア148、150、152は共有空間に関連したローカルなデータ・コピーを含みその共有空間に関連するその他の情報を含むことがある。アカウント・データベース130は更にアカウント内の各アイデンティティについてのコンタクト情報と他のコンタクトについてのコンタクト情報を格納するコンタクト・ストア140を含む。最後に、アカウント・データベースは他の情報、例えばインスタント・メッセージや招待を格納するメッセージ・ストア154等も含む。
各アイデンティティのデータは公共的に利用されることのないプライベート部分156と公共的に利用することのできる公共部分158であるコンタクト情報とを含む。プライベート部分156はそのアイデンティティをユニークに同定するURL等とそのアイデンティティがメッセージを暗号化し署名するのに使用する公開鍵/秘密鍵ペアの暗号化・署名秘密鍵等とを含む。公共コンタクト情報158はコンタクトをユニークに同定するコンタクトURLを含み一般にこれはそのアイデンティティのアイデンティティURLと同一である。コンタクト情報はまたそのコンタクトのシーケンス番号も含む。シーケンス番号はコンタクトが作成された時点でゼロにセットされる整数である。コンタクトのシーケンス番号はそのコンタクト情報に新規装置が追加される時には所定の大きな数(例えば1,000)だけ増加(以下、インクリメント)される。コンタクトのシーケンス番号(以下、コンタクト・シーケンス番号)はコンタクト情報が何らかの別の理由で変更される(例えばコンタクトのvCard情報が更新された)時には所定の小さい数(例えば1)だけインクリメントされる。全てのコンタクト情報はアイデンティティの秘密鍵で署名されるので、コンタクト情報を「所有している」アイデンティティだけがその情報を更新することができる点に注意する。更に、コンタクト情報はアカウントの装置の一つだけでしか更新することができない。
コンタクト情報は更にコンタクトのvCard情報(名前、電話番号、ファクシミリ番号、電子メールアドレス等を含む個人用及び仕事用のデータ)を含む。vCard情報はコンタクトの名前だけしか含まないvCardに対して「名前だけ」と言うビットも備えている。コンタクト情報は更にそのコンタクト情報を「所有している」アイデンティティが存在する装置のリストと、一般にサーバであるリレー装置のリストと、機密データも含む。機密データは前述の公開鍵・秘密鍵ペアの公開鍵、鍵アルゴリズム、及び自己署名情報を含むことができる。
本発明の原理によれば、アカウントに関連するアイデンティティについてのコンタクト情報を含め全てのコンタクト情報は図2に更に詳細に図示してあるコンタクト・ストアに格納される。
更に詳しくは、コンタクト・ストア200はコンタクト・ストア・エントリのセットを有し、そのうちのエントリ1(202)とエントリN(204)が図示してある。コンタクト・ストアは1つ又はそれ以上のエントリを含むことができることが当業者には理解されよう。各コンタクト・ストア・エントリ、例えばエントリ202はコンタクト情報等を含み、このコンタクト情報はコンタクトURL206、コンタクト・シーケンス番号208、コンタクトのvCard情報210、そのコンタクト情報を「所有している」アイデンティティが存在する装置のリスト212、リレー装置のリスト214、及び公開機密データ216を含む。コンタクト・ストア・エントリはまた、そのエントリのコンタクト情報の「所有者」を同定するURLのリストである供給源のリスト220を含む。そのコンタクト情報の新しい供給源が追加される時には供給源が供給源リスト220に追加され、そのコンタクト情報の供給源が削除される時にはリスト220から削除される。コンタクト・ストア・エントリの削除フラグ221によって後述するように削除のためにコンタクト情報をマークすることができる。
本発明の原理によれば、そのアカウントのアイデンティティに対応するコンタクト・ストア・エントリ(例えば、コンタクト・ストア・エントリ202)は以下で更に詳細に説明する購読リスト218も含む。購読リスト218は購読しているコンタクトを同定するコンタクトURLとコンタクト・ストア・エントリにあるコンタクト情報を購読したコンタクトの各装置についての情報を含む。後述するように、リスト218はそのエントリのコンタクト情報が変更された時にリストにあるコンタクトの各装置へコンタクトの更新情報を送信するのに使用される。リスト上の装置はコンタクト情報を購読したコンタクトの全ての装置(リレー装置を除く)を含む。購読リスト218はコンタクト・ストア・エントリにあるコンタクト情報を購読した各装置について、各購読装置のエントリを含む購読装置のリストを含み、そのうちエントリ222と224が図示してある。各購読装置のエントリはその装置をユニークに同定する装置URL226、装置状態フィールド228、この装置がアイデンティティに関連したコンタクト情報のうち名前だけのバージョンを受信すべきかどうかを示す名前だけフラグ230、ピンカウント・フィールド232を含む。これらのフィールドについては後述する。
購読装置エントリの装置状態フィールド228は購読装置が置かれる6つの状態のうちの一つを識別する装置状態番号を保持する。6種類の装置状態とその定義は次の通りである。
状態:定義
1:現在のアカウントの1つ又はそれ以上のアイデンティティがそのコンタクトについてのコンタクト情報の供給源を持っており、そのコンタクトは現在のアカウントの1つ又はそれ以上のアイデンティティについてのコンタクト情報の供給源を持っている。
2:現在のアカウントの1つ又はそれ以上のアイデンティティがそのコンタクトについてのコンタクト情報の供給源を持っているが、そのコンタクトは現在のアカウントのどのアイデンティティについてもコンタクト情報の供給源を持っていない。
3:現在のアカウントのどのアイデンティティもそのコンタクトについてのコンタクト情報の供給源を持っていないが、そのコンタクトは現在のアカウントの1つ又はそれ以上のアイデンティティについてのコンタクト情報の供給源を持っている。
4:現在のアカウントのどのアイデンティティもそのコンタクトについてのコンタクト情報の供給源を持っておらず、そのコンタクトは現在のアカウントのどのアイデンティティについてもコンタクト情報の供給源を持っていない。
5:現在のアカウントの1つ又はそれ以上のアイデンティティがそのコンタクトについてのコンタクト情報の供給源を持っているが、そのコンタクトはコンタクト情報に対する購読要求を拒否した。
6:現在のアカウントのどのアイデンティティもそのコンタクトについてのコンタクト情報の供給源を持っておらず、そのコンタクトはコンタクト情報に対する購読要求を拒否した。
6種類のコンタクト装置状態300〜310を図3に示す。図3はユーザによって受信されたコンタクト伝播(contact dissemination)メッセージによって発生した状態遷移も図示している。状態遷移とコンタクト伝播メッセージについては以下で詳細に説明する。
好適実施態様において、アカウントとコンタクト・ストアはデータベース200等の暗号化XMLオブジェクト・ストアに格納されるXMLドキュメントとして実装される。これらXMLドキュメントの例示的な形式を以下に示す。
account
{identities}
identity_1
private signing key (for Identity 1)
private encryption key (for Identity 1)
identity_2
...
{spaces}
{contacts}
entry_1
contact information
URL
sequence number
vCard information
devices
relay servers
public key algorithms
public signing key
public encryption key
status word
subscriptions
subscription 1 contactURL
devices
device1 DeviceURL State NameOnly PingCount
device2 DeviceURL State NameOnly PingCount
...
subscription2 contactURL
...
sources
source_1 URL
source_2 URL
deleted flag
entry_2
...
コンタクト・ストア200はアカウントに関連したコンタクト全部について集中型(アカウントごと)のストレージ(storage)を提供しているので、パーソナル・コンタクト・リスト、メッセージ・ストア等の様々な場所でコンタクトのコピーが消費する空間の量を有意に減少させる。更に、コンタクト・ストア200はいかなるコンタクト情報をも更新する単一の点を提供する。更にコンタクト・ストア200によりコンタクト・ストアのクライアントはコンタクト・ストア内のいかなるコンタクトにも任意のデータを関連付けることができる。そのデータへの変更はオプションでアカウント装置の全部へ配布できる。この任意のデータを用いてコンタクトにコメントを追加したり、コンタクトになりすますこと(spoofing)を防止することができる。
コンタクト・ストア200はエンジンではないが、アカウントに関連付けられた装置の全部へコンタクトに関連付けられた何らかのデータへの変更を配布するために、別のエンジン例えばアカウント・エンジン又は共有空間メンバ・エンジン等によって維持することができるローカル・ストレージ(local storage)である。この配布はアカウント・ストアに格納されコンタクト・ストア内のコンタクトに関連したプロパティ・リストを取得することにより行われる。このプロパティ・リストはそのコンタクトについてのプロパティ・リスト・プロバイダにより提供される。例えば、アカウント・エンジンはこのようなプロバイダであり得る。つまり、コンタクト情報のストレージはローカルに為されるが、関連データはアカウント装置の全部にわたって透過的に伝播できる。
本発明の原理によれば、自分のデータ・ストア(例えばメッセージ・ストアやメンバ・マネージャ)にあるコンタクト情報のコピーをそれまで保守していた全部のエンジンを変更して、それらのデータ・ストア内に完全なコンタクト情報の代わりにコンタクトURLを格納する。データ・ストアはURLだけを含むが、エンジンによって作成されたデータが他の共有空間メンバへの伝播のため共有空間シリアル化の一環としてシリアル化される際には、データ内のコンタクトURLを用いてコンタクト・ストアから実際のコンタクト情報を取得し、そのコンタクト情報はシリアル化したデータに含まれている。逆に、別の共有空間メンバから受信したデータを共有空間非シリアル化の一環として非シリアル化する際には、非シリアル化されたデータ内にあるコンタクト情報をコンタクト・ストアに追加し、関連付けられたコンタクトURLだけを共有空間データ・ストアに格納する。
前述したように、コンタクト・ストアはアカウント・エンジン又は共有空間メンバ・エンジン等の既存のエンジンによって保守できる。このエンジンは別のユーザから受信したメッセージに応答してコンタクトを更新する能力を備えている。これらのメッセージは以下のメッセージ形式を含む:
購読要求メッセージ ── このメッセージ形式は受信者のアイデンティティ・コンタクト情報の更新を自動的に受信するために送信者が受信者の購読リストに追加されることを要求する。購読要求メッセージは受信者についての完全なvCard情報又は受信者の「名前だけ」と言うvCardのいずれかを含む。どちらの場合でも、保安上の目的から、このメッセージは受信者が送信者を確認して認証するために充分な情報、例えばデジタル署名を含む。
要求拒否メッセージ ── このメッセージは購読要求メッセージの受信者が更新の要求を拒否した場合に購読要求メッセージの送信者に返送される。購読要求は許可を設定するユーザ・インタフェース画面を用いて拒否できる。
送信者にはコンタクトの供給源がないと言うメッセージ ── このメッセージは購読者についてのコンタクト情報がコンタクト・ストアから削除された場合に購読リストにある各装置へ送信され、送信者がその購読者についてコンタクト情報の他の供給源を持たないことを示す。
コンタクトが更新されたと言うメッセージ ── このメッセージはあるアイデンティティのコンタクト情報が変化した場合に購読リストにある全てのコンタクトに送信され、送信者についてのコンタクト情報を受信者に更新させる。このメッセージは送信者の自己署名を含み、当該更新中に、保安上の目的から、メッセージ処理エンジンは自己署名が確認されたかどうかを検出する。自己署名が確認されない場合、コンタクト情報は破棄されエラーが発生する。
「コンタクトが更新された」と言うメッセージは送信者のvCard情報も含む。購読リストにあるコンタクトについての名前だけと言うビットがセットされた場合、vCard情報は送信者の名前と、更新目的でコンタクトと通信するのに充分な情報だけを含む。名前だけと言うビットは購読リストにコンタクトを配置する購読要求メッセージが名前だけのvCardを含む場合に購読リスト内に設定される。後でメッセージ送信者が受信者と交信したときには、送信者の完全なvCard情報を受信できるが、名前だけのvCard情報から完全なvCard情報へ購読リストのエントリを変更するためには、受信者は完全なvCard情報を含む購読要求メッセージを新たに送信する必要がある。LAN/ディレクトリの公開モードを「名前だけ」に変更することではすでに完全なvCard情報を持っているユーザには影響しないが、更新が通知メッセージの結果でない場合には全てのコンタクト更新について再購読が必要になる。
装置消去メッセージ ── このメッセージは、購読リストがその一部をなすコンタクト・ストア・エントリに関連付けられたアイデンティティが永久に無効になる時又はその装置が消去される時に購読リストにある全ての購読装置へ送信される。このメッセージの受信者はそれまでの購読状態とは関係なく購読リストから送信者の装置を削除する。
ピン(Ping)メッセージ ── このメッセージは受信者がまだ有効かどうか調べるために使用する。もう有効ではなくなった供給源なしのコンタクトについてコンタクト・ストア内にコンタクト情報を保存するのを避けるため、コンタクト・ストアは定期的に購読リストにある供給源なしのコンタクトへ各々ピン(Ping)メッセージを送信する。所定数のピン・メッセージに対して応答がない場合、その供給源なしのコンタクトは削除にマークされる。この点で、状態4又は状態6になっている購読リスト内の購読者装置に相当するコンタクト・ストア内のコンタクト情報は削除される。同様に、装置を有しない購読者に相当するコンタクト情報は削除フラグ221をセットすることにより削除用にマークされる。コンタクト情報が削除用にマークされた場合、購読者装置は状態4であると仮定される。
ポン(Pong)メッセージ──このメッセージはピン・メッセージの送信者へそのメッセージの受信者から送信され受信者がまだアクティブであることを示す。
コンタクト情報を維持するためにコンタクト・ストアによって行われる処理について図4から図15を参照して詳細に説明する。図4はアイデンティティのコンタクト・ストアへ新しいコンタクト供給源を追加する例示的な手順のステップを示す。この処理はコンタクト供給源が内部になくコンタクト情報が現在のアカウントにあるアイデンティティの一つによって所有されていない場合に実行される。処理はステップ400で始まってステップ402に進み、ここでコンタクト・ストア内にすでにコンタクト供給源が存在するかどうかの判定を行う。コンタクトが未だコンタクト・ストア内に存在しない場合、処理はステップ404に進みここでコンタクト・ストアへコンタクト情報を追加する。
次に、ステップ408で、コンタクトに関係する全ての装置がアイデンティティのアカウント・アイデンティティの全部に関連付けられた購読リストに追加される。各々の追加された装置の状態変数の値は状態2にセットされる。次に、ステップ416で、情報をコンタクト・ストアへ追加しているコンタクトの装置の各々へアイデンティティによって購読要求メッセージが送信され、アイデンティティがコンタクトの購読リストへ追加され、これによって購読を双方向にする。処理はステップ420で終了する。
これ以外に、ステップ402で、コンタクトについての情報がコンタクト・ストアに存在すると判断された場合、ここで処理はステップ406へ進み、アイデンティティの購読リストにあるコンタクト装置のどれかが状態3又は状態4になっているか調べる。状態3又は状態4のいずれかになっている装置がない場合、処理はステップ420で終了する。しかし、1つ又はそれ以上の装置が状態3又は状態4のいずれかになっていると判断された場合、処理はステップ410へ進み、ここで削除フラグを調べることによりコンタクト・レコードが削除にマークされているかどうかを判定する。コンタクト・レコードが削除にマークされていた場合、ステップ414で、(削除フラグをリセットすることにより)コンタクト・レコードは削除のマークが解除され、ステップ418で、コンタクト情報に関連付けられた装置の全部がアイデンティティの購読リストに追加され状態変数の値が状態2にセットされる。この動作は図3に図示してあるように状態306と状態302の間の状態遷移328に相当する。処理はステップ420で終了する。
これ以外に、ステップ410で、コンタクト・レコードが削除にマークされていないと判断された場合、アイデンティティの購読リストにある各装置の状態変数の値は状態3から状態1へ変更される。この動作は図3に示した通り状態300と状態304の間の状態遷移314に相当する。次に、ステップ416で、購読要求メッセージが、情報をコンタクト・ストアへ追加しようとしているコンタクトの装置の各々へアイデンティティによって送信されアイデンティティがコンタクトの購読リストへ追加され、これによって購読を双方向にする。処理はステップ420で終了する。
図5はコンタクト供給源がコンタクト・ストアから除去された場合にコンタクト・ストアによって行われる例示的な処理を示す。この処理はコンタクト供給源が内部になく、かつ、コンタクト情報が現在のアカウントにあるアイデンティティの一つではない場合に行われ、ステップ500で始まってステップ502へ進み、ここで、除去しようとするコンタクト情報がコンタクト・ストア内にあるこのコンタクト情報についての最後の供給源かどうか判断を行う。このコンタクト情報が最後の供給源ではない場合、処理はステップ514で終了する。これ以外に、コンタクト情報が最後の供給源だった場合、処理はステップ504へ進み、ここで、全てのコンタクト装置を処理したかどうか判定を行う。全部の装置が処理された場合、処理はステップ514で終了する。
これ以外に、ステップ504で、全てのコンタクト装置が処理されていないと判断された場合、ステップ506で、次の装置に関連した状態変数の値が、装置が状態1又は状態2になっていることを示しているかどうか、チェックを行う。装置が状態1又は状態2になっていない場合、処理はステップ504に戻り、ここで処理すべき追加の装置が残っているかどうかを調べる。
次の装置が状態1又は状態2になっていると、ステップ506で判定された場合、処理はステップ508に進み、ここで「送信者はコンタクトの供給源を持たない」と言うメッセージが装置に関連付けられたコンタクトへ送信される。このメッセージはコンタクトがアイデンティティのコンタクト・ストア内で供給源なしになったことを示す。アイデンティティのコンタクト情報が受信者であるコンタクトのコンタクト・ストア内で供給源なしになった場合、両者はそれらの購読リストから他方の名前を削除できコンタクト・ストア内で他方のコンタクトを削除されたものとしてマークすることができる。
次に、ステップ510で、状態1になっている全装置について、装置に関連付けられた状態変数の値が全部のアカウント・アイデンティティにある購読リスト内で1から3へ変更される。この動作は図3の状態300から状態304への状態遷移312に相当する。次に、ステップ512で、状態2になっている全ての装置がアイデンティティの購読リストから削除される。この動作は図3において状態302から状態306への状態遷移316に相当する。更に、状態5になっている全ての装置がアイデンティティの購読リストから削除される。この動作は図3に置いて状態308から状態310への状態遷移330に相当する。処理はステップ514で終了する。各装置を削除する際に図7に示してあり後述する処理が実行されることに注意する。
図6はコンタクト・ストア内の情報が更新されたときに全ての購読者に通知するコンタクト・ストアによって行われる例示的処理を示す。この処理はステップ600で始まってステップ602へ進み、ここで更新しようとしているコンタクト情報が現在のアカウントにあるアイデンティティの一つによって保有されているかどうかの判定を行う。このようなコンタクト情報に対して更新が行われつつある場合には、ステップ608で、「コンタクトが更新された」と言うメッセージをアカウントの購読リスト内にある状態1、2又は3の装置の全部へ送信する。これはコンタクト情報を更新しなければならないことを各購読者に通知する。
これ以外に、ステップ602で、アイデンティティによって所有されていないコンタクト情報へのコンタクト情報変更が行われていることの判定を行い、処理はステップ604へ進み、ここで更新が別のコンタクトから受信した「コンタクト更新」メッセージによるものかどうかの判定を行う。更新がこのような更新メッセージの結果である場合には処理はステップ614で終了する。
更新が到着した更新メッセージの結果ではない場合、ステップ606で、新しいコンタクト・シーケンス番号がコンタクト・ストア内のコンタクト・レコードで記録されている現在のシーケンス番号より大きいかどうか(又は新しいコンタクト・シーケンス番号が現在のシーケンス番号と等しい場合には格納されたコンタクトが異なるか)を調べるチェックを行う。新しいシーケンス番号が現在のシーケンス番号より大きくないか、又は格納されたコンタクトが異なる場合、処理はステップ614で終了する。しかし、新しいシーケンス番号が現在のシーケンス番号より大きく格納されたコンタクトが同一の場合には、ステップ610で、コンタクト情報の更新を要求しているコンタクトへ購読要求メッセージを送信する。ステップ612で、「送信者はコンタクトの供給源を持たない」と言うメッセージが状態3になっているコンタクトの購読リストにある全部の装置へ送信される。処理はステップ614で終了する。
図7はコンタクト装置が購読リストから削除される場合にコンタクト・ストアによって実行される例示的な処理を示す。この処理はステップ700で始まってステップ702へ進み、ここで削除した装置がコンタクトに関連付けられた最後の装置だったかどうか、かつ、コンタクトが現在供給源なしかどうかを判定する。そうであれば、処理はステップ704に進み、ここで関連付けられたコンタクトが削除にマークされ処理はステップ706で終了する。これ以外に、削除された装置がコンタクトに関連付けられた最後の装置ではない場合、処理はステップ702から直接ステップ706へ進んで終了する。
図8はすでにアクティブではなくなっている供給源なしコンタクトを除外するため、コンタクト・ストアによって定期的に、例えば最後の時点から1週間後に、実行される例示的な処理を示している。この処理はステップ800で始まってステップ802へ進み、ここでコンタクト・ストア内の各コンタクトを調べる。全部のコンタクトが処理されたら、処理はステップ804で終了する。これ以外に、処理すべきコンタクトが更に残っている場合、処理はステップ806へ進み、ここで、任意のコンタクトについて、購読リスト内でそのコンタクトに関連付けられた装置全部を調べる。ステップ806で、処理すべき購読リスト内の装置がこれ以上残っていなければ、購読リスト内にあってコンタクトに関連付けられた全部の装置が処理されたことになり処理はステップ802へ戻り、処理すべきコンタクトが更に残っているかどうかを調べるチェックを行う。
ステップ806で、処理すべき装置が更に残っていると判断された場合、処理はステップ808へ進み、ここで次の装置状態をチェックする。次の装置がその装置に関連付けられた状態変数の値で示される状態3になっていなければ、処理はステップ806へ戻りここで処理すべき装置が更に残っているかどうかを調べるチェックを行う。これ以外に、ステップ808で、調べている装置が状態3にあると判断された場合、処理はステップ810へ進み、ここで、装置に関連付けられたピンカウント(PingCount)変数をインクリメントする。次に、ステップ812で、インクリメントしたピンカウント変数の値が所定の限界、例えば4より大きいかどうかの判定を行う。ピンカウント変数の値が所定の限界より小さいか又は等しい場合には、ステップ816で、ピン・メッセージを装置へ送信する。装置がアクティブな場合、この装置はピン・メッセージの受信時にポン・メッセージを返す。処理はステップ806へ戻り更にコンタクトを処理する必要があるかどうかを調べる。
しかし、ステップ812で、ピンカウント変数値が所定の限界を越えていた場合、ステップ814で装置は全てのアカウント・アイデンティティの購読リストから削除される。処理はステップ806へ戻り更に処理すべきコンタクトが残っているかどうかを調べる。
図9Aと図9Bは並置した場合に他のコンタクトから受信したメッセージを処理するためコンタクト・ストアによって実行される例示的処理を示している。この処理の第1のステップはどの種類のメッセージを受信したか調べることである。この第一ステップが図9Aと図9Bに図示してある。処理はステップ900で始まってステップ902へ進み、ここで幾つかの初期チェックを行ってメッセージがコンタクト伝播メッセージかどうか調べ、送信者のコンタクト情報がうまく認証されたことと、送信者の署名がその送信者についてすでにファイル上にあるいずれかの署名と一致したことを確認する。これらの初期チェックに合格しなかった場合には、処理はページ間接続926と930を経由して進みステップ938で終了する。
これ以外に、ステップ902で、初期チェックに合格した場合、メッセージを調べて受信したメッセージの形式を決定する。ステップ904でチェックを行いメッセージが購読要求メッセージかどうかを調べる。そうなら、購読要求メッセージ・ルーチン処理906を実行する。
メッセージが購読要求メッセージでない場合、処理はステップ908へ進み、ここでチェックを行ってメッセージが要求拒否メッセージかどうかを調べる。そうなら、要求拒否メッセージ・ルーチン処理910を実行する。
メッセージが要求拒否メッセージではない場合、処理はステップ912へ進みここでチェックを行ってメッセージが送信者はコンタクトの供給源なしと言うメッセージかどうかを調べる。そうなら、供給源なしメッセージ・ルーチン処理914を実行する。
メッセージが送信者はコンタクトの供給源なしと言うメッセージではない場合、処理はステップ916へ進みここでチェックを行ってメッセージがコンタクト更新済みメッセージかどうかを調べる。そうならコンタクト更新済みメッセージ・ルーチン処理918を実行する。
メッセージがコンタクト更新済みメッセージではない場合、処理はステップ920へ進みここでチェックを行ってメッセージがピン・メッセージかどうかを調べる。そうなら、ピン・メッセージ・ルーチン処理922を実行する。
メッセージがピン・メッセージではない場合、処理はページ間接続924と928を通ってステップ932へ進み、ここでメッセージがポン・メッセージかどうかを調べる。そうなら、ポン・メッセージ・ルーチン処理934を実行する。
最後に、メッセージがポン・メッセージではない場合、これは装置削除メッセージのはずであるから装置削除メッセージ・ルーチン処理936を実行する。いずれの場合も、処理はステップ938で終了する。
購読要求メッセージ・サブルーチン906処理が図10に更に詳細に図示してある。この処理はステップ1000で始まってステップ1002へ進み、ここで要求側に対して購読が許可されているか調べる。前述したように、ユーザ・インタフェース選択を提供してアイデンティティが所有者のアイデンティティ情報に対する購読更新に関する許可をセットすることができる。これらの許可はステップ1002でチェックされてメッセージ送信者がコンタクト情報更新を購読する許可を持っているかどうか調べる。
許可によって送信者が更新を購読できない場合、ステップ1004で送信者のコンタクト情報がメッセージ受信者のコンタクト・ストアから除去され、ステップ1010で要求拒否メッセージがメッセージ送信者へ送信される。サブルーチンはステップ1022へ戻る。
これ以外に、ステップ1002で決定したように許可によって送信者が購読を許可する場合、処理はステップ1006へ進み、ここで送信者のコンタクト情報が受信者のコンタクト・ストアに存在するかどうかの判定を行う。コンタクト情報がコンタクト・ストア内にない場合、ステップ1008で、コンタクト情報がコンタクト・ストアへ追加される。処理は次にステップ1020へ進み、ここで送信者の装置が受信者の購読リストへ追加され状態変数が状態3にセットされる。サブルーチンはステップ1022へ戻る。
ステップ1006でコンタクト情報がすでに受信者のコンタクト・ストアに存在すると判断された場合、ステップ1012で、チェックを行ってコンタクトが削除にマークされているかどうかを調べる。そうならステップ1016で、コンタクト・レコードが削除マークを解除され処理はステップ1020へ進み、ここで送信者の装置が受信者の購読リストへ追加されて状態変数の値が状態3にセットされる。サブルーチンはステップ1022に戻る。この動作は図3に図示した状態4(306)から状態3(304)への遷移318に相当する。
これ以外に、ステップ1012でコンタクトが削除にマークされていないと判断された場合、処理はステップ1014へ進み、ここで全部のアカウント・アイデンティティについて、送信者のコンタクト装置に対応する購読リスト内の状態変数の値が2から1へ、又は5から1へ、変更される。これらの動作は各々状態302から状態300への状態遷移325と、状態308から状態300への状態遷移322に相当する。次に、ステップ1018で、送信者側装置のピン・カウンタが全部のアカウント・アイデンティティでゼロにセットされる。サブルーチンは次にステップ1022に戻る。
要求拒否メッセージ処理サブルーチン910が図11に更に詳細に図示してある。この処理はステップ1100で始まりステップ1102へ進み、ここでメッセージ送信者のコンタクト情報が受信者のコンタクト・ストアに存在するかどうかの判定を行う。この情報がコンタクト・ストアに存在しない場合にはサブルーチンはステップ1106へ戻る。
これ以外で、ステップ1102で送信者のコンタクト情報がコンタクト・ストアに存在していると判断された場合、送信者の装置の全部がアカウント・アイデンティティの各々で処理される。第一に、ステップ1104で、チェックを行い送信者について処理すべき装置レコードが未だ残っているかを調べる。処理すべき装置レコードが残っている場合には、ステップ1108で、チェックを行って処理すべき次の装置レコードにある状態変数の値が1か又は2かを調べる。状態変数の値が1又は2の場合、処理はステップ1110へ進みここで全てのアカウント・アイデンティティについて受信者の購読リストにある送信者の装置レコードでの状態変数の値を5に変更する。この動作は図3の状態300から状態308への状態遷移324と状態302から状態308への状態遷移326に相当する。
これ以外に、送信者の装置レコードの状態変数の値が1又は2ではない場合には、ステップ1112で、チェックを行ない、状態変数の値が3かどうかを調べる。値が3ではない場合、処理はステップ1104へ戻って、更に処理すべき装置レコードがあるかどうかを調べる。しかし、状態変数の値が3であれば、ステップ1114で、全てのアカウント・アイデンティティにおいて装置レコードを削除する。この動作は図3の状態304から状態310への状態遷移332に相当する。処理はステップ1104へ戻って更に処理すべき装置レコードが存在するか調べる。全てのレコードが処理されたら、サブルーチンはステップ1106へ戻る。
供給源なしメッセージ処理サブルーチン914が図12に更に詳細に図示してある。この処理はステップ1200で始まりステップ1202へ進みここでメッセージ送信者のコンタクト情報が受信者のコンタクト・ストアに存在するかどうかを調べる。情報がコンタクト・ストアに存在しない場合サブルーチンはステップ1206へ戻る。
これ以外に、ステップ1202で送信者のコンタクト情報がコンタクト・ストアに存在すると判断された場合、送信者の装置の全部がアカウント・アイデンティティの各々で処理される。第一に、ステップ1204で、チェックを行い、処理すべき送信者側の装置レコードが未だ残っているか調べる。処理すべき装置レコードが残っている場合、ステップ1208でチェックを行い、処理すべき次の装置レコードの状態変数の値が1かどうか調べる。状態変数の値が1であれば、処理はステップ1210へ進みここで全部のアカウント・アイデンティティについて受信者の購読リストにある送信者の装置レコードで状態変数の値を2に変更する。この動作は図3の状態300から状態302への状態遷移323に相当する。
これ以外に、送信者の装置レコードで状態変数の値が1ではない場合には、ステップ1212で、チェックを行って状態変数の値が3かどうかを調べる。値が3でなければ、処理はステップ1204へ戻り、処理すべき装置レコードが更に残っているかチェックする。しかし、状態変数の値が3であれば、ステップ1214で、全てのアカウント・アイデンティティで装置レコードが削除される。この動作は図3の状態304から状態306への状態遷移320に相当する。処理はステップ1204へ戻り処理すべき装置レコードが更に残っているかどうか調べる。全てのレコードを処理したら、サブルーチンはステップ1206へ戻る。
コンタクト更新済みメッセージ処理サブルーチン918が図13に更に詳細に図示してある。この処理はステップ1300で始まりステップ1302へ進みここでメッセージ送信者のコンタクト情報が受信者のコンタクト・ストアに存在するかどうかを調べる。この情報がコンタクト・ストアに存在しない場合サブルーチンはステップ1310へ戻る。
これ以外に、ステップ1302で送信者のコンタクト情報がコンタクト・ストアに存在すると判断された場合、ステップ1304で、送信者のコンタクト・シーケンス番号が変更されたかどうかを調べる。このシーケンス番号が変更された場合、ステップ1306で受信者のコンタクト・ストアにある送信者のコンタクト情報を更新して処理はステップ1308へ進む。しかしこのシーケンス番号が変更されなかった場合には処理はステップ1308へ直接進む。
ステップ1308で、全てのアカウント・アイデンティティについて購読リストにある送信者の装置のピン・カウンタがゼロにセットされる。サブルーチンはステップ1310へ戻る。
ピン・メッセージ処理サブルーチン922が図14に更に詳細に図示してある。この処理はステップ1400で始まってステップ1402へ進み、ここで受信者のコンタクト・ストアにメッセージ送信者のコンタクト情報が存在するかどうかを調べる。この情報がコンタクト・ストアに存在しない場合にはサブルーチンはステップ1408へ戻る。
これ以外で、ステップ1302で送信者のコンタクト情報がコンタクト・ストアに存在すると判断された場合には、ステップ1304で、送信者の装置レコードはその状態変数の値が2になっているかどうか調べる。状態変数の値が2であれば、送信者へポン・メッセージが返される。装置レコードが状態2でなければ、サブルーチンはステップ1408へ戻る。
ポン・メッセージ処理サブルーチン924が図15に更に詳細に図示してある。この処理はステップ1500で始まりステップ1502へ進んで、ここで受信者のコンタクト・ストアにメッセージ送信者のコンタクト情報が存在するかを調べる。この情報がコンタクト・ストアに存在しない場合には、サブルーチンはステップ1512へ戻る。
受信者のコンタクト・ストアに前記の情報が存在する場合、ステップ1504で、チェックを行いコンタクトが削除にマークされているかどうかを調べる。そうなら、ステップ1506で、コンタクト・レコードの削除マークが解除され処理はステップ1508へ進んで、ここで全てのアカウント・アイデンティティについて受信者の購読リストに送信者の装置を追加し、状態変数の値を状態3にセットする。この動作は図3に示した状態4(306)から状態3(304)への状態遷移318に相当する。これ以外で、ステップ1510でコンタクトが削除にマークされていなかったと判断された場合には、処理は直接ステップ1510へ進む。
次に、ステップ1510で、全てのアカウント・アイデンティティについて送信者の装置レコードでピン・カウンタがゼロにセットされる。サブルーチンはステップ1512で終了する。
装置削除メッセージ処理サブルーチン936が図16に更に詳細に図示してある。この処理はステップ1600で始まってステップ1602へ進み、ここで受信者のコンタクト・ストアにメッセージ送信者のコンタクト情報が存在するかどうかを調べる。この情報がコンタクト・ストアに存在しない場合にはサブルーチンはステップ1610へ戻る。
これ以外で、ステップ1602で、送信者のコンタクト情報がコンタクト・ストアに存在すると判断された場合には、ステップ1604で、現在のアカウントでの全てのアイデンティティが処理されたかどうかを調べる。そうなら、処理はステップ1610で終了する。違う場合には、ステップ1606で、メッセージ送信者に関連付けられた購読リストを取得し、ステップ1608で、メッセージに記載された装置が購読リストから削除される。処理はステップ1604へ戻り全てのアイデンティティが処理されたかどうかを調べる。全部のアイデンティティを処理した場合には、処理はステップ1610で終了する。
他の二つの処理を用いてコンタクト・ストアを保守する。これらの処理はアカウントを別の装置へインポートした場合とアカウントが装置から削除された場合に行われる。第1の処理は図17に図示してあり、アカウントが別の装置へインポートされた場合にステップ1700で始まる。この処理はステップ1702へ進み、ここでそのアカウントについてコンタクト・ストア内にある全てのコンタクト・ストア・エントリが調べられる。ステップ1702で判断されたように処理すべきエントリが残っていれば、ステップ1706で、処理のために次のエントリを選択する。ステップ1708で、そのエントリにある供給源リストを調べることでエントリが供給源なしコンタクトのものかどうかを調べる。コンタクトがステップ1708で判断されたように供給源なしであれば、そのコンタクトについて購読リストにある全部の装置を処理する。更に詳しくは、ステップ1710で全部の装置を処理したかどうか調べる。違う場合には、ステップ1714で、処理する次の装置を選択する。ステップ1718で、「購読要求」メッセージを選択した装置へ送信する。ステップ1722で、「送信者はコンタクトの供給源を持たない」と言うメッセージを選択した装置へ送信する。処理はステップ1710へ戻って全ての装置を処理したかどうか調べる。ステップ1710で判断されたように全ての装置が処理された場合、処理はステップ1702へ戻り全てのコンタクト・ストア・エントリを処理したかどうか調べる。ステップ1702で判断されたように全部のエントリを処理したら、この処理はステップ1704で終了する。
ステップ1708に戻って、コンタクトがステップ1708で判断されたように供給源なしではない場合、処理はステップ1712へ進み、ここで、エントリがそのアカウントにあるアイデンティティによって所有されているコンタクトのものかどうかを調べる。コンタクト情報がアイデンティティによって所有されている場合には、処理はステップ1702へ戻って全部のエントリを処理したかどうか調べる。
これ以外に、ステップ1712で、コンタクト情報がアイデンティティによって所有されていないと判断された場合、そのコンタクトについて購読リストにある全ての装置を処理する。更に詳しくは、ステップ1716で全部の装置を処理したかどうか調べる。違う場合、ステップ1720で、処理のために次の装置を選択する。ステップ1724で、「購読要求」メッセージを選択した装置へ送信する。処理はステップ1716へ戻って全部の装置を処理したかどうか調べる。ステップ1716で判断されたように全ての装置を処理したら、処理はステップ1702へ戻って全てのコンタクト・ストア・エントリを処理したか調べる。
装置からアカウントが削除された時に実行される処理が図18Aと図18Bに図示してある。この処理はステップ1800で始まりステップ1802へ進んで、ここでそのアカウントのコンタクト・ストアにある全部のエントリを処理したかどうか調べる。ステップ1802で判断されたとおり全部のエントリが処理されていない場合、ステップ1806で次の未処理エントリが選択される。次に、ステップ1808で、エントリがそのアカウントに関連付けられたアイデンティティの一つによって所有されているかどうかを調べる。違う場合、処理はステップ1802へ戻って全部のエントリを処理したかどうか調べる。これ以外に、ステップ1808で、エントリがアイデンティティによって所有されていると分かった場合、ステップ1810でそのエントリの全ての購読リストを処理したかどうかを調べる。ステップ1810で判断されたように全部のリストが処理されていない場合、ステップ1812で次の未処理リストを処理するために選択する。
次に、ステップ1814で、選択したリストの全ての購読者を処理したか調べる。違う場合、リスト内の次の未処理購読者を選択する。処理はページ間接続1820と1824を経由してステップ1826へ進み、ここで、購読者エントリ内の装置リストを調べることにより、選択した購読者について全部の装置を処理したか調べる。違う場合、ステップ1828で、次の未処理装置を選択する。ステップ1830で、選択された装置が状態1、2又は3になっているかどうかを調べる。違う場合処理はステップ1826へ戻って処理すべき装置が更に残っているかどうかを調べる。
これ以外に、ステップ1830で、選択された装置が状態1、2又は3のいずれか一つの状態になっていると判断された場合、ステップ1832で、「装置削除」メッセージを選択された装置へ送信する。処理はステップ1826へ戻って処理すべき装置が更に残っているか調べる。ステップ1826で判断されたように、全部の装置を処理したら、処理はページ間接続1822と1818を経由してステップ1814へ戻り選択したリストに処理すべき購読者が更に残っているか調べる。ステップ1814で判断されたように全部の購読者を処理したら処理はステップ1810へ戻り処理すべき購読リストが未だ残っているかどうか調べる。
ステップ1810で判断されたように全部の購読リストを処理したら、処理はステップ1802へ戻り処理すべきエントリが残っているかを調べる。ステップ1802で、全部のエントリを処理したことが判断されたら、処理はステップ1804で終了する。
前述の実施態様のソフトウェアによる実装は、例えばコンピュータで読み取り可能な媒体例えばディスケット、CD−ROM、ROMメモリ、又は固定ディスク等の有形媒体上に固定されるか、又は媒体上でモデム又はその他のインタフェース装置を経由してコンピュータ・システムへ転送可能な一連のコンピュータ命令を含む。媒体は光又はアナログ通信回線を含みこれに制限されない有形媒体であるか、又はマイクロ波、赤外線又はその他の伝送技術を含みこれに制限されない無線技術で実現される。媒体はインターネットでもあり得る。一連のコンピュータ命令は本発明に関して本明細書で前述した機能の全部又は一部を実現する。このようなコンピュータ命令は多くのコンピュータ・アーキテクチャ又はオペレーティング・システムで使用される多数のプログラミング言語で書くことができることは当業者には理解されよう。更に、このような命令は現在又は将来の、半導体、磁気、光又はその他のメモリ装置を含みこれに制限されない何らかのメモリ技術を用いて保存するか、又は現在又は将来の光、赤外線、マイクロ波、又はその他の伝送技術を含みこれに制限されない何らかの通信技術を用いて伝送することが可能である。このようなコンピュータ・プログラム製品は着脱可能な媒体に印刷又は電子化文書を伴って、例えばシュリンクラップ・ソフトウェア等として配布されたり、コンピュータ・システム例えばシステムROM又は固定ディスクへ導入済み、又はサーバ又は電子掲示板からネットワーク上例えばインターネット又はワールドワイド・ウェブで配布することができることを企図している。
本発明の典型的実施態様を開示したが、本発明の精神と範囲から逸脱することなく本発明の利点の幾つかを実現する様々な変化や変更を成し得ることは当業者には明らかであろう。例えば、他の実装において、図示したものとは異なるプロトコルや変換を実行し得ることが当業者には明らかであろう。例えば特定の処理フローや図示したステップの順序、並びに本発明の概念へのその他の変更などのその他の態様は添付の請求の範囲で包含されることを意図している。
図1Aは、従来技術の分散コラボレーション・システムの略ブロック図である。 図1Bは、図1Aのコラボレータ・コンピュータの一つにあるシステム・データベースの更に詳細なブロック図である。 図2は、図1Bに図示したデータベースのアカウント・ストアの更に詳細なブロック図である。 図3は、購読リストのコンタクト装置レコードの各種状態と各種動作により引き起こされる状態間での遷移を示す状態図である。 図4は、コンタクト情報をコンタクト・ストアへ追加する例示的な処理のステップを示すフローチャートである。 図5は、コンタクト情報をコンタクト・ストアから除去する例示的処理のステップを示すフローチャートである。 図6は、コンタクト・ストア内のコンタクト情報を更新する例示的処理のステップを示すフローチャートである。 図7は、購読リストからコンタクト装置を削除する例示的な処理のステップを示すフローチャートである。 図8は、定期的チェックを実行して供給源なしコンタクトがまだ有効かどうか判定する例示的な処理のステップを示すフローチャートである。 図9Aと図9Bは、並置した場合コンタクトから受信したコンタクト伝播メッセージを処理するための例示的処理のステップを示すフローチャートを構成する。 図10は、購読要求メッセージを処理する例示的なサブルーチンのステップを示すフローチャートである。 図11は、要求拒否メッセージを処理する例示的サブルーチンのステップを示すフローチャートである。 図12は、送信側が供給源を持たないと言うメッセージを処理するための例示的サブルーチンのステップを示すフローチャートである。 図13は、コンタクト更新済みと言うメッセージを処理するための例示的サブルーチンのステップを示すフローチャートである。 図14は、ピン(ping)メッセージを処理する例示的サブルーチンのステップを示すフローチャートである。 図15は、ポン(pong)メッセージを処理する例示的サブルーチンのステップを示すフローチャートである。 図16は、装置消去メッセージを処理する例示的サブルーチンのステップを示すフローチャートである。 図17は、アカウントが装置へインポートされた場合にコンタクト・ストア・エントリを処理する例示的サブルーチンのステップを示すフローチャートである。 図18Aと図18Bは、並置した場合に装置からアカウントが削除された場合に実行される例示的処理を示すフローチャートである。

Claims (20)

  1. ネットワークにより接続された複数のコラボレーション・コンピュータを有し、各々のコンピュータはローカル・データ・ストアとコンタクト情報を使用する複数のロケーションとを有することを特徴とする分散型コラボレーション・システムにおいてコンタクト情報を格納し管理するための方法であって、
    (a)あるコンタクトについてのコンタクト情報をコラボレーション・コンピュータで受信した際に、前記コンタクト情報とユニークなコンタクト参照とをそのコラボレーション・コンピュータに関連付けられた前記ローカル・データ・ストア内の単一のコンタクト・ストアに格納し、
    (b)前記コンタクト情報の代わりに複数のロケーションの各々に前記コンタクト参照を配置する
    ことを特徴とする方法。
  2. (c)あるコンタクトについてのコンタクト情報をコンタクトからコラボレーション・コンピュータで受信した際に、前記コンタクト情報の更新を要求するメッセージをそのコンタクトに送信することを更に含む
    ことを特徴とする請求項1に記載の方法。
  3. 各々のコラボレーション・コンピュータは前記コラボレーション・コンピュータのユーザに対応する少なくとも一つのアイデンティティを有することを特徴とする請求項2に記載の方法であって、前記方法は
    (d)前記コンタクト・ストア内に前記アイデンティティについてのコンタクト情報を配置すること
    を更に含むことを特徴とする請求項2に記載の方法。
  4. 前記メッセージが前記アイデンティティについての前記コンタクト情報を含むことを特徴とする請求項3に記載の方法。
  5. (e)メッセージ受信時に前記コンタクトは前記コンタクトによって使用されるコラボレーション・コンピュータに関連付けられた前記ローカル・データ・ストア内のコンタクト・ストアに前記アイデンティティのための前記コンタクト情報を格納する
    ことを更に含むことを特徴とする請求項4に記載の方法。
  6. (f)第1の供給源からコンタクト情報を受信した時に前記コンタクト・ストア内に前記コンタクト情報を格納することと、
    (g)前記格納したコンタクト情報内に前記コンタクト情報の供給源のリストを作成することと、
    (h)前記コンタクト情報を前記第1の供給源とは異なる第2の供給源からコラボレーション・コンピュータで受信した時に前記供給源のリストへ供給源を追加することと、
    (i)前記第1と第2の供給源の一方からコンタクト情報を除去する要求を前記コラボレーション・コンピュータで受信した時に前記供給源のリストから供給源を除去することと
    を更に含むことを特徴とする請求項5に記載の方法。
  7. (j)前記供給源のリストが空になって、かつ、前記アイデンティティについての前記コンタクト情報が前記コンタクトによって使用されるコラボレーション・コンピュータに関連付けられた前記ローカル・データ・ストア内の前記コンタクト・ストアから削除されたときに前記コンタクト・ストアから前記コンタクト情報を削除する
    ことを更に含むことを特徴とする請求項6に記載の方法。
  8. 各々のコラボレーション・コンピュータはこれに関連付けられた前記ローカル・データ・ストア内に少なくとも一つのアカウント領域を有し、ステップ(a)は
    (a1)前記アカウント領域内に前記コンタクト情報とユニークなコンタクト参照とを格納すること
    を含むことを特徴とする請求項1に記載の方法。
  9. (c)前記コラボレーション・コンピュータから受信したメッセージに応答して前記コンタクト情報を更新し削除すること
    を更に含むことを特徴とする請求項1に記載の方法。
  10. 前記コンタクト情報はこれに関連付けられた状態を有し、かつ、ステップ(c)は前記メッセージに応答して前記状態を変更すること
    を含むことを特徴とする請求項9に記載の方法。
  11. ネットワークにより接続された複数のコラボレーション・コンピュータを有し、各々のコンピュータはローカル・データ・ストアとコンタクト情報を使用する複数のロケーションとを有することを特徴とする分散型コラボレーション・システムにおいてコンタクト情報を格納し管理するための装置であって、
    あるコンタクトについてのコンタクト情報をコラボレーション・コンピュータで受信した時に動作してそのコラボレーション・コンピュータに関連付けられた前記ローカル・データ・ストア内の単一のコンタクト・ストアに前記コンタクト情報とユニークなコンタクト参照とを格納するための手段と、
    前記コンタクト情報の代わりに前記複数のロケーションの各々に前記コンタクト参照を配置するための手段と
    を含むことを特徴とする装置。
  12. あるコンタクトについてのコンタクト情報をあるコンタクトからコラボレーション・コンピュータで受信した時に動作して、前記コンタクト情報の更新を要求するメッセージをそのコンタクトに送信するための手段
    を更に含むことを特徴とする請求項11に記載の装置。
  13. 各々のコラボレーション・コンピュータは前記コラボレーション・コンピュータのユーザに対応する少なくとも一つのアイデンティティを有することを特徴とする請求項12に記載の装置であって、前記装置は
    前記コンタクト・ストア内に前記アイデンティティについてのコンタクト情報を配置するための手段
    を更に含むことを特徴とする請求項12に記載の装置。
  14. 前記メッセージは前記アイデンティティについての前記コンタクト情報を含むことを特徴とする請求項13に記載の装置。
  15. 前記コンタクトによって使用されるコラボレーション・コンピュータでメッセージを受信した時に動作して前記コンタクトによって使用される前記コラボレーション・コンピュータに関連付けられた前記ローカル・データ・ストア内のコンタクト・ストア内に前記アイデンティティについての前記コンタクト情報を格納するための手段
    を更に含むことを特徴とする請求項14に記載の装置。
  16. 第1の供給源からコンタクト情報を受信した時に前記コンタクト・ストア内に前記コンタクト情報を格納するための手段と、
    前記格納したコンタクト情報内に前記コンタクト情報の供給源のリストを作成するための手段と、
    前記コンタクト情報を前記第1の供給源とは異なる第2の供給源からコラボレーション・コンピュータで受信した時に前記供給源のリストへ供給源を追加するための手段と、
    前記第1と第2の供給源の一方からコンタクト情報を除去する要求を前記コラボレーション・コンピュータで受信した時に前記供給源のリストから供給源を除去するための手段と、
    を更に含むことを特徴とする請求項15に記載の装置。
  17. 前記供給源のリストが空になって、かつ、前記アイデンティティについての前記コンタクト情報が前記コンタクトによって使用されるコラボレーション・コンピュータに関連付けられた前記ローカル・データ・ストア内の前記コンタクト・ストアから削除されたときに前記コンタクト・ストアから前記コンタクト情報を削除するための手段
    を更に含むことを特徴とする請求項16に記載の装置。
  18. 各々のコラボレーション・コンピュータはこれに関連付けられた前記ローカル・データ・ストア内に少なくとも一つのアカウント領域を有し、かつ、単一のコンタクト・ストア内に前記コンタクト情報とユニークなコンタクト参照とを格納するための前記手段は前記アカウント領域に前記コンタクト情報とユニークなコンタクト参照とを格納するための手段を含む
    ことを特徴とする請求項11に記載の装置。
  19. 前記コラボレーション・コンピュータから受信したメッセージに応答して前記コンタクト情報を更新し削除するための手段
    を更に含むことを特徴とする請求項11に記載の装置。
  20. 前記コンタクト情報はこれに関連付けられた状態を有し、かつ、前記コンタクト情報を更新し削除するための前記手段は前記メッセージに応答して前記状態を変更するための手段を含む
    ことを特徴とする請求項19に記載の装置。
JP2004003355A 2004-01-08 2004-01-08 分散コラボレーション・システムでコンタクトを保存し管理するための方法及び装置 Expired - Lifetime JP4681812B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004003355A JP4681812B2 (ja) 2004-01-08 2004-01-08 分散コラボレーション・システムでコンタクトを保存し管理するための方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004003355A JP4681812B2 (ja) 2004-01-08 2004-01-08 分散コラボレーション・システムでコンタクトを保存し管理するための方法及び装置

Publications (2)

Publication Number Publication Date
JP2005196581A true JP2005196581A (ja) 2005-07-21
JP4681812B2 JP4681812B2 (ja) 2011-05-11

Family

ID=34818296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004003355A Expired - Lifetime JP4681812B2 (ja) 2004-01-08 2004-01-08 分散コラボレーション・システムでコンタクトを保存し管理するための方法及び装置

Country Status (1)

Country Link
JP (1) JP4681812B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8150798B2 (en) 2006-10-10 2012-04-03 Wells Fargo Bank, N.A. Method and system for automated coordination and organization of electronic communications in enterprises

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10360287B2 (en) 2015-05-22 2019-07-23 Microsoft Technology Licensing, Llc Unified messaging platform and interface for providing user callouts
US20160344677A1 (en) 2015-05-22 2016-11-24 Microsoft Technology Licensing, Llc Unified messaging platform for providing interactive semantic objects

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002025403A2 (en) * 2000-09-20 2002-03-28 Ants.Com., Inc. Automated system and method for downloading, updating and synchronizing contact information
US6446113B1 (en) * 1999-07-19 2002-09-03 Groove Networks, Inc. Method and apparatus for activity-based collaboration by a computer system equipped with a dynamics manager

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446113B1 (en) * 1999-07-19 2002-09-03 Groove Networks, Inc. Method and apparatus for activity-based collaboration by a computer system equipped with a dynamics manager
JP2003505760A (ja) * 1999-07-19 2003-02-12 グルーブ・ネットワークス・インコーポレイテッド ダイナミクス・マネージャを備えたコンピュータ・システムによるアクティビティに基づくコラボレーションのための方法及びその装置
WO2002025403A2 (en) * 2000-09-20 2002-03-28 Ants.Com., Inc. Automated system and method for downloading, updating and synchronizing contact information

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8150798B2 (en) 2006-10-10 2012-04-03 Wells Fargo Bank, N.A. Method and system for automated coordination and organization of electronic communications in enterprises

Also Published As

Publication number Publication date
JP4681812B2 (ja) 2011-05-11

Similar Documents

Publication Publication Date Title
AU2003225818B2 (en) Data replication system and method
JP4349587B2 (ja) 携帯電話の間で連絡先リストを共有するシステムおよび方法
US8032559B2 (en) Contact management update protocols
US8886700B2 (en) Content sharing with limited cloud storage
US8826375B2 (en) Rich media collaboration system
US7937752B2 (en) Systems and methods for authenticating communications in a network medium
CN109691057B (zh) 经由私人内容分发网络可交换地取回敏感内容
US20090172201A1 (en) Peer to peer syncronization system and method
JP2008533879A (ja) 身元情報とディレクトリ管理とを備える通信方法及びシステム
JP2004164638A (ja) 安全なリソース管理方法及びシステム
US6990578B1 (en) Method and apparatus for encrypting electronic messages composed using abbreviated address books
EP2865129A1 (en) Event-triggered release through third party of pre-encrypted digital data from data owner to data assignee
TWI511064B (zh) 用於公用目錄服務之系統與方法
KR100757976B1 (ko) P2p환경에서의 사용자 대화를 위한 시스템 및 방법
US8656031B2 (en) Dialog communication system, dialog communication method and dialog communication program
US20120221648A1 (en) Data processing system and method
US20040193601A1 (en) Method and contact list server for modifying the entry names in a contact list
JP4681812B2 (ja) 分散コラボレーション・システムでコンタクトを保存し管理するための方法及び装置
CA2452893C (en) Method and apparatus for storing and managing contacts in a distributed collaboration system
JP2021056943A (ja) データ管理システムおよびデータ管理方法
KR100996819B1 (ko) 분산된 협업 시스템에서 콘택트를 저장하고 관리하기 위한방법 및 장치
EP4171075A1 (en) Method for synchronization of contact information
IL159337A (en) Method and apparatus for storing and managing contacts in a distributed collaboration system
US8718236B1 (en) Systems and methods for secure on-line repositories
JP2005215797A (ja) 端末装置、サーバ、グループウェアシステム、グループウェア方法、および、グループウェアプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100204

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100209

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100215

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: 20100310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100406

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: 20110201

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: 20110207

R150 Certificate of patent or registration of utility model

Ref document number: 4681812

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140210

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term