JP4681812B2 - Method and apparatus for storing and managing contacts in a distributed collaboration system - Google Patents

Method and apparatus for storing and managing contacts in a distributed collaboration system Download PDF

Info

Publication number
JP4681812B2
JP4681812B2 JP2004003355A JP2004003355A JP4681812B2 JP 4681812 B2 JP4681812 B2 JP 4681812B2 JP 2004003355 A JP2004003355 A JP 2004003355A JP 2004003355 A JP2004003355 A JP 2004003355A JP 4681812 B2 JP4681812 B2 JP 4681812B2
Authority
JP
Japan
Prior art keywords
contact
contact information
information
store
collaboration
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.)
Expired - Lifetime
Application number
JP2004003355A
Other languages
Japanese (ja)
Other versions
JP2005196581A (en
Inventor
アレクセイ・エヴドキモフ
ニキータ・ヴィ・サリチェフ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority to JP2004003355A priority Critical patent/JP4681812B2/en
Publication of JP2005196581A publication Critical patent/JP2005196581A/en
Application granted granted Critical
Publication of JP4681812B2 publication Critical patent/JP4681812B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

本発明は分散型かつピア・ツー・ピア型コラボレーション・システムに関しまたこのようなシステムでコンタクト情報を保存し管理するための方法及び装置に関する。   The present invention relates to distributed and peer-to-peer collaboration systems and to a method and apparatus for storing and managing contact information in such systems.

コラボレーションは「コラボレータ」と呼ばれるメンバのグループにおいて各メンバがそのグループ内の他のコラボレータへ情報を自動送信したり情報を自動受信する能力に関係する。このようなコラボレーションを容易にするため、このような情報をパーソナル・コンピュータ・システム、通信機器、又はハンドヘルド機器及び無線機器を含むその他の通信装置との間で送信できるようにする各種システムが開発された。これらの装置は本明細書では集合的に「コンピュータ」と呼称することにする。   Collaboration refers to the ability of each member in a group of members called “collaborators” to automatically send information to and receive information from other collaborators in the group. In order to facilitate such collaboration, various systems have been developed that allow such information to be transmitted between personal computer systems, communication devices, or other communication devices including handheld devices and wireless devices. It was. These devices will be collectively referred to herein as “computers”.

コンピュータによるコラボレーションは1台のコンピュータ又はサーバに接続された又はこれで操作しているユーザ間でローカルに行なうことができる。他に、コラボレーションはネットワーク上例えばインターネット上で行われる場合があり、この場合には、ユーザの各々はネットワークに接続されたコンピュータに配置されている。サーバもネットワークに接続される。ネットワーク化されたコンピュータ・コラボレーション・システムとして幾つかのコラボレーション・モデルが現在実装されつつある。これらのモデルの一つがクライアント・サーバ・モデルで、この場合にはコラボレータ全員が、ネットワーク経由で、中央サーバへ接続される。各コラボレータによって生成された情報はネットワーク上でサーバへ送信され、サーバは情報をネットワーク上で他の各コラボレータへブロードキャスト(broadcast)する。このシステムの一つのバージョンではコラボレーションで変更されつつあるデータはサーバ上に集中して格納される。次に、そのデータを変更しようとする各コラボレータはサーバへコマンドを送信してサーバのデータに変更を行わせる。サーバはデータのコピーを変更しコラボレータ全員へ変更したデータの「ビュー」(view)を表す情報を送信することで、各コラボレータはデータをローカルに表示できる。   Computer collaboration can be performed locally between users connected to or operating on a single computer or server. Alternatively, collaboration may occur over a network, for example over the Internet, in which case each user is located on a computer connected to the network. Servers are also connected to the network. Several collaboration models are currently being implemented as networked computer collaboration systems. One of these models is the client-server model, where all collaborators are connected to the central server via the network. The information generated by each collaborator is transmitted over the network to a server, which broadcasts the information to each other collaborator over the network. In one version of this system, data that is being changed by collaboration is stored centrally on the server. Next, each collaborator attempting to change the data sends a command to the server to cause the server data to be changed. Each collaborator can display the data locally by changing the copy of the data and sending information representing the “view” of the changed data to all collaborators.

これ以外に、サーバを用いたシステムでは、サーバに保持されるデータ・コピーの他、更にローカルなデータのコピーを各コラボレーション・コンピュータで保持する。そのデータを変更したい各コラボレータはサーバへコマンドを送信してサーバのデータに変更を加える。サーバはデータのコピーを変更してから、コラボレータ全員へコマンドをブロードキャストする。各コラボレータはコマンドを使ってローカルなデータ・コピーを更新する。このローカル・データ・コピーがローカルに表示される。このモデルの例としては、ニューヨーク州アーモンクにあるアイビーエム社から販売されているロータス・ノーツ(登録商標)やロータス・セイムタイム(登録商標)、またワシントン州レッドモンドのマイクロソフト社から発売されているエクスチェンジが挙げられる。   In addition to this, in a system using a server, a local data copy is held in each collaboration computer in addition to a data copy held in the server. Each collaborator who wants to change the data sends a command to the server to make changes to the server data. The server changes the data copy and then broadcasts the command to all collaborators. Each collaborator uses a command to update the local data copy. This local data copy is displayed locally. Examples of this model are Lotus Notes (registered trademark) and Lotus Sametime (registered trademark) sold by IBM in Armonk, New York, and Exchanges sold by Microsoft in Redmond, Washington. Is mentioned.

別のコラボレーション・モデルは「ピア・ツー・ピア型モデル」で、この場合コラボレーションするコンピュータの各々の間にネットワーク上で直接接続が確立される。各コラボレータが生成した情報は他の各コラボレータへ直接送信される。このようなシステムでは、コラボレータがコラボレーション・システムによって生成維持されるプライベートな「仮想」共有空間内で通信する。コラボレータがコラボレーションに参加すると、共有空間の属性及び情報が「シリアル化」されてから新規コラボレータへネットワーク上で送信される。この情報が到着するとこの情報は「非シリアル化」され新規コラボレータのコンピュータ上に共有空間を作成するために使用される。   Another collaboration model is the “peer-to-peer model”, where a direct connection is established over the network between each collaborating computer. Information generated by each collaborator is transmitted directly to each other collaborator. In such a system, collaborators communicate in a private “virtual” shared space created and maintained by the collaboration system. When the collaborator participates in the collaboration, the shared space attributes and information are “serialized” and then transmitted over the network to the new collaborator. When this information arrives, it is “deserialized” and used to create a shared space on the new collaborator's computer.

集中型のデータ・リポジトリ(data repository)はピア・ツー・ピア型コラボレーション・システムでは必要とされないが、これは各コラボレータがコラボレーションにより変更されるデータのローカル・コピーを保有しているためである。データを変更するためには、コラボレータはデータ変更要求、即ち、「デルタ」を生成して他の各コラボレータへ転送する。到着したデータ変更要求は各コラボレータが自分のローカル・データ・コピーを変更するために使用する。この種のコラボレーション・システムの一例としては、019015 マサチューセッツ州 ビヴァリー、100 カミングス・センター、スイート535Qにあるグルーヴ・ネットワークス社が開発販売しているグルーヴ・ワークスペース・コラボレーション・システム(Groove Workspace collaboration system)があり、これについての詳細はhttp://www.groove.netに記載されている。また米国特許第6,446,113B1号も参照。   A centralized data repository is not required in a peer-to-peer collaboration system because each collaborator has a local copy of the data that is modified by the collaboration. To change the data, the collaborator generates a data change request, or “delta”, and forwards it to each other collaborator. The incoming data change request is used by each collaborator to change his local data copy. An example of this type of collaboration system is the Groove Workspace collaboration system developed and sold by Groove Networks, Inc., 0190015 Beverly, Massachusetts, 100 Cummings Center, Suite 535Q. For details on this, refer to http: // www. groove. net. See also US Pat. No. 6,446,113B1.

ユーザの利便のため、前述のコラボレーション・システムの全てがコンタクト情報を保存する領域(provision)を有している。コンタクトとはユーザが共通の興味を共有する人びとでありそのため通信する必要があり、また仕事の同僚、関係者、友人、家族であり得る。保存されたコンタクトに関する情報(以下、コンタクト情報)は一般に様々な手段例えば電話や電子メール等でコンタクトと通信するのに必要な情報を含む。この保存されたコンタクト情報によってユーザは情報を記憶しなくても済んだり、他の情報源から情報を取り出さなくても済み、コラボレーション・システムのスピードと利便性を増大させることができる。   For the convenience of the user, all of the aforementioned collaboration systems have a provision for storing contact information. Contacts are people with whom users share a common interest and therefore need to communicate, and can be work colleagues, stakeholders, friends, and family members. Stored contact information (hereinafter referred to as contact information) generally includes information necessary to communicate with the contact by various means such as telephone or e-mail. The saved contact information eliminates the need for the user to store information or retrieves information from other information sources, thereby increasing the speed and convenience of the collaboration system.

各コンタクトについて保存された情報は、例えば「vCard」又はその他の配布メカニズムによって他のコンタクトと共有するとコンタクトが決定した視覚的情報を一般に含む。しかし、コンタクト情報は例えばコンタクトに連絡するのに用いる装置に関する装置情報、リレー・サーバ情報、認証情報又は確認情報例えばデジタル署名、デジタル指紋、又はコンタクトとの機密通信を可能にするための暗号化キーなど非視覚的情報も含むことがある。   The information stored for each contact typically includes visual information that the contact has determined to share with other contacts, eg, by “vCard” or other distribution mechanism. However, contact information can be, for example, device information about the device used to contact the contact, relay server information, authentication information or verification information such as a digital signature, digital fingerprint, or an encryption key to enable confidential communication with the contact Non-visual information may also be included.

典型的には、コンタクト情報はコンタクト情報を検索して特定できるようなコンタクト・ディレクトリ又はコンタクト・リストに保持される。コンタクト・リストは多くのサブシステムによって参照され維持される。例えば、コンタクト・リストは、アイデンティティ、コンタクト・リスト・ツール、共有空間メンバ・サブシステム、メッセージ・ストア(message store)によって参照できる。これらのリスト全部が別々の場所に格納され別々のサブシステムによって維持される。多くの異なったリストが存在しそのためコンタクト情報の多くの「供給源」が存在しているため、更新を配布したりコンタクト情報の全部を最新状態に維持するのは困難である。   Typically, contact information is maintained in a contact directory or contact list that can be searched and identified. Contact lists are referenced and maintained by many subsystems. For example, a contact list can be referenced by identity, contact list tool, shared space member subsystem, message store. All of these lists are stored in separate locations and maintained by separate subsystems. Because there are many different lists and thus many “sources” of contact information, it is difficult to distribute updates or keep all of the contact information up to date.

例えば、共有空間でのコンタクト情報の変更は、共有空間の各メンバに送信される「コンタクト変更」デルタによって伝播する必要がある。ユーザが多くの共有空間に参加している場合、これらのデルタを全ての共有空間で処理するには時間の掛かる作業になることがある。更に、ユーザと同一のコンタクトが一緒に多くの共有空間に参加している場合、そのコンタクトはユーザのコンタクト情報の同一の更新を共有空間の各々から受信することになる。   For example, a change in contact information in the shared space needs to be propagated by a “contact change” delta sent to each member of the shared space. If the user is participating in many shared spaces, processing these deltas in all shared spaces can be a time consuming task. Further, if the same contact as the user participates in many shared spaces together, the contact will receive the same update of the user's contact information from each of the shared spaces.

同様に、インスタント・メッセンジャー(instant messenger)のコンタクト情報はユーザがそのコンタクトにインスタント・メッセージ(instant message)を送信した場合にだけ更新される。そのため、あるユーザは任意のコンタクトについて最新バージョンの情報を保有するとは保証されない。ユーザの視覚的情報が陳腐化するだけでなくクライアント装置又はリレーの非視覚的リストも変化することがあり、コンタクト情報の更新なしには将来の通信が不可能になる。   Similarly, instant messenger contact information is updated only when the user sends an instant message to the contact. As such, a user is not guaranteed to have the latest version of information for any contact. Not only will the user's visual information become obsolete, but the non-visual list of client devices or relays may change, making future communications impossible without updating contact information.

本発明の原理によれば、各ユーザは、そのユーザについてのコンタクト情報全部に単一の場所を提供するために、ローカルなコンタクト・ストア(contact store)にコンタクト情報の全部を格納する。例えば共有空間又はコンタクト・リスト等のコンタクト情報を維持するすなわちコンタクト情報の「供給源」として機能する各サブシステムはコンタクト・ストア内にコンタクトを同定する情報例えばURLだけを保存する。そのため、コンタクト情報を最新に保つためには、コンタクト・ストア内の情報を更新するだけで良い。   In accordance with the principles of the present invention, each user stores all of the contact information in a local contact store to provide a single location for all of the contact information for that user. Each subsystem that maintains contact information, such as a shared space or contact list, i.e., serves as a "source" of contact information, stores only information identifying the contact in the contact store, such as a URL. Therefore, in order to keep the contact information up-to-date, it is only necessary to update the information in the contact store.

コンタクトとの通信がコンタクト通信情報を受信できなかったことによって失われないように保証するため、ローカルのコンタクト・ストアはアイデンティティ・メッセージを使用する双方向の購読(subscription)を用いて更新する。更に詳しくは、あるコンタクトについての情報をあるユーザのローカルなコンタクト・ストアに追加する場合、購読要求メッセージをそのコンタクトに送信する。購読要求メッセージはユーザのコンタクト情報と、そのユーザをそのコンタクトについての購読リストに追加する要求とを含む。後で、コンタクトが彼又は彼女のコンタクト情報を更新する場合、更新情報は購読リストにある各人へ自動的に送信される。ユーザがこのような将来の更新を受け取るためには、コンタクトはそのユーザについての最新のコンタクト情報を維持する必要がある。つまり、購読は、ユーザがそのコンタクトをユーザ自身の購読リストに追加してコンタクトが自動的にユーザの全ての更新を受信することを必要とする「双方向」でなければならない。   To ensure that communication with the contact is not lost due to failure to receive contact communication information, the local contact store is updated with a two-way subscription using identity messages. More specifically, when adding information about a contact to a user's local contact store, a subscription request message is sent to the contact. The subscription request message includes the user's contact information and a request to add the user to the subscription list for that contact. Later, if the contact updates his or her contact information, the update information is automatically sent to each person on the subscription list. In order for a user to receive such future updates, the contact needs to maintain up-to-date contact information about the user. That is, the subscription must be “two-way” requiring the user to add the contact to the user's own subscription list and the contact automatically receive all updates for the user.

一つの実施態様において、コンタクトはあるユーザを彼又は彼女の購読リストへ追加する要求を拒否することがある。この場合、ユーザはそのコンタクトをユーザ自身の購読リストへ追加しない。   In one embodiment, a contact may reject a request to add a user to his or her subscription list. In this case, the user does not add the contact to the user's own subscription list.

別の実施態様において、購読要求メッセージの受取人が要求元のコンタクト情報が受取人のコンタクト・ストア内に存在することを必要とするような何らかの供給源(source)を持っていない場合でも、要求内のコンタクト情報が「供給源のない」コンタクトとしてコンタクト・ストアに追加されるがこれは単に双方向の購読を実現するためだけに追加される。   In another embodiment, even if the recipient of the subscription request message does not have any source that requires the requesting contact information to be present in the recipient's contact store. The contact information within is added to the contact store as a “sourceless” contact, but this is only added to implement a two-way subscription.

更に別の実施態様では、コンタクトについての情報供給源のリストがコンタクト・ストア内に維持される。新規供給源がコンタクト情報をコンタクト・ストアへ追加することを要求する(例えば、ユーザがメンバとしてそのコンタクトを有する共有空間に加入する)場合、コンタクト情報がすでにコンタクト・ストア内に存在すれば、その情報はコンタクト・ストアへ追加されない。その代わり、(新規供給源からの情報がコンタクト・ストア内の情報より新しいものである場合)コンタクト・ストア内の情報が更新されコンタクト供給源がリストに追加される。同様に、コンタクト供給源が消去される場合(例えばユーザがメンバとしてそのコンタクトを有する共有空間を離脱する場合)コンタクト供給源はリストから削除されるがコンタクト情報はコンタクト・ストアから削除されない。リストが空の場合、そのコンタクトは供給源のないコンタクトになる。   In yet another embodiment, a list of information sources about contacts is maintained in the contact store. If a new source requires that contact information be added to the contact store (eg, a user subscribes to a shared space that has that contact as a member), if the contact information already exists in the contact store, Information is not added to the contact store. Instead, the information in the contact store is updated and the contact source is added to the list (if the information from the new source is newer than the information in the contact store). Similarly, when a contact source is deleted (eg, when a user leaves the shared space with that contact as a member), the contact source is deleted from the list, but contact information is not deleted from the contact store. If the list is empty, the contact is a sourceless contact.

更に別の実施態様では、アクティブでない供給源なしのコンタクトについての情報がコンタクト・ストア内に蓄積するのを防止するため、各々の供給源なしのコンタクトと定期的に接触を取り、所定の期限内に応答がない場合にはそれらのコンタクト情報がコンタクト・ストアから削除される。   In yet another embodiment, in order to prevent information about inactive sourceless contacts from accumulating in the contact store, contacts with each sourceless source are regularly contacted within a predetermined time limit. If there is no response, the contact information is deleted from the contact store.

別の実施態様では、購読要求はコンタクトの名前だけを含み完全な「vCard」情報を含まないことがある。この場合、「名前だけ」と言うフラグをvCard情報にセットしてコンタクト情報更新中にその購読者には選択された情報だけが送信されるようにする。   In another implementation, the subscription request may include only the name of the contact and not the complete “vCard” information. In this case, the flag “name only” is set in the vCard information so that only the selected information is transmitted to the subscriber during the contact information update.

図1Aは、例えば前述のグルーヴ・コラボレーション・システムなどのコラボレーション・システム100の略ブロック図である。図1Aは3台のコラボレーション装置102、104、106を示しているが、これらはコンピュータ、PDA、ラップトップコンピュータ、セットトップ・ボックス、ウェブ閲覧可能な携帯電話又はその他の通信装置であり得る。3台のコラボレーション装置だけを図示したが追加の装置も存在する。グルーヴ・ソフトウェアが当該装置にロードされた場合、それぞれ装置102、104、106にデータベース108、110、112等のデータベースを作成する。これらのデータベース各々はコラボレータによって処理されるデータのローカル・コピーを保持する。後述するように、データベース108、110、112はコラボレーション装置102、104、106の各々の動作に関する情報も保持する。   FIG. 1A is a schematic block diagram of a collaboration system 100, such as the previously described groove collaboration system. Although FIG. 1A shows three collaboration devices 102, 104, 106, these may be computers, PDAs, laptop computers, set-top boxes, web-viewable mobile phones or other communication devices. Only three collaboration devices are shown, but there are additional devices. When the groove software is loaded on the device, databases such as databases 108, 110, 112 are created on the devices 102, 104, 106, respectively. Each of these databases maintains a local copy of the data processed by the collaborator. As will be described later, the databases 108, 110, and 112 also hold information related to the operations of the collaboration apparatuses 102, 104, and 106.

コラボレーション・ソフトウェアは装置102、104、106に各々トランシーバ114、116、118等のトランシーバも作成する。各トランシーバはデルタと呼ばれるデータ変更要求を作成し矢印122、124、126によって模式的に示してあるようにこれをコラボレータ間で送信する責任がある。典型的には、これらのデータ変更要求は図1Aに図示したようにインターネット120上で送信されるが、例えばLANネットワーク等の別のネットワーク上で送信することもできる。データ変更要求はシステムにコラボレータを追加・除去したり、またデータ・コピーの同期をとるために各々のコラボレーション装置でローカル・データ・コピーを更新するなどの多数の目的で使用される。   The collaboration software also creates transceivers such as transceivers 114, 116, 118, etc. on devices 102, 104, 106, respectively. Each transceiver is responsible for creating a data change request called a delta and transmitting it between collaborators as schematically shown by arrows 122, 124, 126. Typically, these data change requests are sent over the Internet 120 as illustrated in FIG. 1A, but can also be sent over another network, such as a LAN network. Data change requests are used for a number of purposes, such as adding and removing collaborators from the system, and updating local data copies at each collaboration device to synchronize data copies.

前述のコラボレーション・ソフトウェアを使用するため、ユーザは1つ又はそれ以上のアカウントを設定する。一般に、アカウントは他のシステムで共通に見られるユーザ情報ファイル例えばアイデンティティ・ファイル等に相当する。各アカウントはユーザについての情報例えば電子メールアドレスやその他のユーザとコンタクトを取る方法を含む。アカウント情報は暗号化、署名され例えばデータベース108、110、112等、パスワードで保護されコラボレーション・システムによって維持されるデータベースに格納される。このようなデータベース128が図1Bに更に詳細に図示してある。   In order to use the collaboration software described above, the user sets up one or more accounts. In general, an account corresponds to a user information file commonly found in other systems, such as an identity file. Each account includes information about the user, such as an email address and other ways to contact the user. Account information is encrypted and signed and stored in a database such as databases 108, 110, 112, etc. that is password protected and maintained by the collaboration system. Such a database 128 is illustrated in more detail in FIG. 1B.

更に詳しくは、システム・データベース128はアカウント・データベース130を含み、これにはアカウントに関するユーザのプライベートなデータが格納されている。例えば、あるユーザは多数のアイデンティティ、例えばオフィスで使用する職業上のアイデンティティと、画像や休暇の計画を共有するような目的で家族や友人と使用するパーソナル・アイデンティティ等を持つことがある。アカウント・データはこれらのアイデンティティのリスト134と各アイデンティティについてのデータ、アカウントに関連付けられた共有空間のリストを含む。アカウント・データベースは、ユーザがメンバになっている各共有空間に関連している別々のデータ・ストアを含み、そのうちのデータ・ストア148、150、152が図示してある。データ・ストア148、150、152は共有空間に関連したローカルなデータ・コピーを含みその共有空間に関連するその他の情報を含むことがある。アカウント・データベース130は更にアカウント内の各アイデンティティについてのコンタクト情報と他のコンタクトについてのコンタクト情報を格納するコンタクト・ストア140を含む。最後に、アカウント・データベースは他の情報、例えばインスタント・メッセージや招待を格納するメッセージ・ストア154等も含む。   More particularly, the system database 128 includes an account database 130, which stores user private data regarding accounts. For example, a user may have multiple identities, such as a professional identity used in the office and a personal identity used with family and friends for the purpose of sharing images and vacation plans. The account data includes a list 134 of these identities, data for each identity, and a list of shared spaces associated with the account. The account database includes a separate data store associated with each shared space of which the user is a member, of which data stores 148, 150, 152 are shown. Data stores 148, 150, 152 may include local data copies associated with the shared space and other information associated with the shared space. Account database 130 further includes a contact store 140 that stores contact information for each identity in the account and contact information for other contacts. Finally, the account database also includes other information, such as a message store 154 that stores instant messages and invitations.

各アイデンティティのデータは公共的に利用されることのないプライベート部分156と公共的に利用することのできる公共部分158であるコンタクト情報とを含む。プライベート部分156はそのアイデンティティをユニークに同定するURL等とそのアイデンティティがメッセージを暗号化し署名するのに使用する公開鍵/秘密鍵ペアの暗号化・署名秘密鍵等とを含む。公共コンタクト情報158はコンタクトをユニークに同定するコンタクトURLを含み一般にこれはそのアイデンティティのアイデンティティURLと同一である。コンタクト情報はまたそのコンタクトのシーケンス番号も含む。シーケンス番号はコンタクトが作成された時点でゼロにセットされる整数である。コンタクトのシーケンス番号はそのコンタクト情報に新規装置が追加される時には所定の大きな数(例えば1,000)だけ増加(以下、インクリメント)される。コンタクトのシーケンス番号(以下、コンタクト・シーケンス番号)はコンタクト情報が何らかの別の理由で変更される(例えばコンタクトのvCard情報が更新された)時には所定の小さい数(例えば1)だけインクリメントされる。全てのコンタクト情報はアイデンティティの秘密鍵で署名されるので、コンタクト情報を「所有している」アイデンティティだけがその情報を更新することができる点に注意する。更に、コンタクト情報はアカウントの装置の一つだけでしか更新することができない。   Each identity data includes a private part 156 that is not publicly available and contact information that is a public part 158 that is publicly available. The private portion 156 includes a URL, etc., that uniquely identifies the identity, and an encryption / signature private key of the public / private key pair that the identity uses to encrypt and sign the message. Public contact information 158 includes a contact URL that uniquely identifies the contact, which is typically the same as the identity URL for that identity. The contact information also includes the contact sequence number. The sequence number is an integer that is set to zero when the contact is created. The contact sequence number is increased (hereinafter incremented) by a predetermined large number (for example, 1,000) when a new device is added to the contact information. The contact sequence number (hereinafter referred to as contact sequence number) is incremented by a predetermined small number (eg, 1) when the contact information is changed for some other reason (eg, the contact vCard information is updated). Note that since all contact information is signed with the identity's private key, only the identity that “owns” the contact information can update the information. Furthermore, contact information can only be updated by one of the account devices.

コンタクト情報は更にコンタクトのvCard情報(名前、電話番号、ファクシミリ番号、電子メールアドレス等を含む個人用及び仕事用のデータ)を含む。vCard情報はコンタクトの名前だけしか含まないvCardに対して「名前だけ」と言うビットも備えている。コンタクト情報は更にそのコンタクト情報を「所有している」アイデンティティが存在する装置のリストと、一般にサーバであるリレー装置のリストと、機密データも含む。機密データは前述の公開鍵・秘密鍵ペアの公開鍵、鍵アルゴリズム、及び自己署名情報を含むことができる。   The contact information further includes contact vCard information (personal and work data including name, phone number, facsimile number, email address, etc.). The vCard information also includes a bit “name only” for a vCard containing only the contact name. The contact information further includes a list of devices with an identity that “owns” the contact information, a list of relay devices, typically servers, and sensitive data. The confidential data can include the public key of the above-mentioned public key / private key pair, a key algorithm, and self-signed information.

本発明の原理によれば、アカウントに関連するアイデンティティについてのコンタクト情報を含め全てのコンタクト情報は図2に更に詳細に図示してあるコンタクト・ストアに格納される。   In accordance with the principles of the present invention, all contact information, including contact information for the identity associated with the account, is stored in a contact store illustrated in more detail in FIG.

更に詳しくは、コンタクト・ストア200はコンタクト・ストア・エントリのセットを有し、そのうちのエントリ1(202)とエントリN(204)が図示してある。コンタクト・ストアは1つ又はそれ以上のエントリを含むことができることが当業者には理解されよう。各コンタクト・ストア・エントリ、例えばエントリ202はコンタクト情報等を含み、このコンタクト情報はコンタクトURL206、コンタクト・シーケンス番号208、コンタクトのvCard情報210、そのコンタクト情報を「所有している」アイデンティティが存在する装置のリスト212、リレー装置のリスト214、及び公開機密データ216を含む。コンタクト・ストア・エントリはまた、そのエントリのコンタクト情報の「所有者」を同定するURLのリストである供給源のリスト220を含む。そのコンタクト情報の新しい供給源が追加される時には供給源が供給源リスト220に追加され、そのコンタクト情報の供給源が削除される時にはリスト220から削除される。コンタクト・ストア・エントリの削除フラグ221によって後述するように削除のためにコンタクト情報をマークすることができる。   More particularly, contact store 200 has a set of contact store entries, of which entry 1 (202) and entry N (204) are shown. One skilled in the art will appreciate that a contact store can include one or more entries. Each contact store entry, eg, entry 202 contains contact information, etc., which includes contact URL 206, contact sequence number 208, contact vCard information 210, and an identity that “owns” the contact information. A device list 212, a relay device list 214, and public secret data 216 are included. The contact store entry also includes a list of sources 220 that is a list of URLs that identify the “owner” of the contact information for that entry. When a new source of contact information is added, the source is added to the source list 220, and when the source of contact information is deleted, it is deleted from the list 220. Contact information can be marked for deletion by a contact store entry deletion flag 221 as will be described later.

本発明の原理によれば、そのアカウントのアイデンティティに対応するコンタクト・ストア・エントリ(例えば、コンタクト・ストア・エントリ202)は以下で更に詳細に説明する購読リスト218も含む。購読リスト218は購読しているコンタクトを同定するコンタクトURLとコンタクト・ストア・エントリにあるコンタクト情報を購読したコンタクトの各装置についての情報を含む。後述するように、リスト218はそのエントリのコンタクト情報が変更された時にリストにあるコンタクトの各装置へコンタクトの更新情報を送信するのに使用される。リスト上の装置はコンタクト情報を購読したコンタクトの全ての装置(リレー装置を除く)を含む。購読リスト218はコンタクト・ストア・エントリにあるコンタクト情報を購読した各装置について、各購読装置のエントリを含む購読装置のリストを含み、そのうちエントリ222と224が図示してある。各購読装置のエントリはその装置をユニークに同定する装置URL226、装置状態フィールド228、この装置がアイデンティティに関連したコンタクト情報のうち名前だけのバージョンを受信すべきかどうかを示す名前だけフラグ230、ピンカウント・フィールド232を含む。これらのフィールドについては後述する。   In accordance with the principles of the present invention, the contact store entry (eg, contact store entry 202) corresponding to the identity of the account also includes a subscription list 218, described in more detail below. The subscription list 218 includes information about each device of the contact that subscribed to the contact URL identifying the contact being subscribed to and contact information in the contact store entry. As described below, list 218 is used to send contact update information to each device in the list when the contact information for that entry is changed. The devices on the list include all devices (except relay devices) that have subscribed to the contact information. Subscription list 218 includes a list of subscribed devices, including entries for each subscribed device, for each device that subscribed to contact information in the contact store entry, of which entries 222 and 224 are shown. Each subscribed device entry has a device URL 226 that uniquely identifies the device, a device status field 228, a name-only flag 230 indicating whether this device should receive a name-only version of the contact information associated with the identity, pin count Contains field 232 These fields will be described later.

購読装置エントリの装置状態フィールド228は購読装置が置かれる6つの状態のうちの一つを識別する装置状態番号を保持する。6種類の装置状態とその定義は次の通りである。   The device status field 228 of the subscribed device entry holds a device status number that identifies one of the six states in which the subscribed device is placed. The six types of device states and their definitions are as follows.

状態:定義
1:現在のアカウントの1つ又はそれ以上のアイデンティティがそのコンタクトについてのコンタクト情報の供給源を持っており、そのコンタクトは現在のアカウントの1つ又はそれ以上のアイデンティティについてのコンタクト情報の供給源を持っている。
2:現在のアカウントの1つ又はそれ以上のアイデンティティがそのコンタクトについてのコンタクト情報の供給源を持っているが、そのコンタクトは現在のアカウントのどのアイデンティティについてもコンタクト情報の供給源を持っていない。
3:現在のアカウントのどのアイデンティティもそのコンタクトについてのコンタクト情報の供給源を持っていないが、そのコンタクトは現在のアカウントの1つ又はそれ以上のアイデンティティについてのコンタクト情報の供給源を持っている。
4:現在のアカウントのどのアイデンティティもそのコンタクトについてのコンタクト情報の供給源を持っておらず、そのコンタクトは現在のアカウントのどのアイデンティティについてもコンタクト情報の供給源を持っていない。
5:現在のアカウントの1つ又はそれ以上のアイデンティティがそのコンタクトについてのコンタクト情報の供給源を持っているが、そのコンタクトはコンタクト情報に対する購読要求を拒否した。
6:現在のアカウントのどのアイデンティティもそのコンタクトについてのコンタクト情報の供給源を持っておらず、そのコンタクトはコンタクト情報に対する購読要求を拒否した。
Status: Definition 1: One or more identities of the current account have a source of contact information for the contact, and the contact has contact information for one or more identities of the current account. Have a source.
2: One or more identities of the current account have a source of contact information for the contact, but the contact does not have a source of contact information for any identity of the current account.
3: No identity in the current account has a source of contact information for the contact, but the contact has a source of contact information for one or more identities of the current account.
4: No identity in the current account has a source of contact information for the contact, and the contact does not have a source of contact information for any identity in the current account.
5: One or more identities of the current account have a source of contact information about the contact, but the contact refuses a subscription request for contact information.
6: None of the identities in the current account have a source of contact information about the contact, and the contact refuses a subscription request for contact information.

6種類のコンタクト装置状態300〜310を図3に示す。図3はユーザによって受信されたコンタクト伝播(contact dissemination)メッセージによって発生した状態遷移も図示している。状態遷移とコンタクト伝播メッセージについては以下で詳細に説明する。   Six types of contact device states 300-310 are shown in FIG. FIG. 3 also illustrates the state transitions that occur due to the contact propagation message received by the user. The state transition and contact propagation message will be described in detail below.

好適実施態様において、アカウントとコンタクト・ストアはデータベース200等の暗号化XMLオブジェクト・ストアに格納されるXMLドキュメントとして実装される。これらXMLドキュメントの例示的な形式を以下に示す。   In the preferred embodiment, the account and contact store are implemented as XML documents stored in an encrypted XML object store, such as database 200. An exemplary format for these XML documents is shown below.

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
...
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)を防止することができる。   Contact Store 200 provides centralized (per account) storage for all contacts associated with an account, so copies of contacts are consumed in various locations such as personal contact lists, message stores, etc. Significantly reduce the amount of space to play. In addition, the contact store 200 provides a single point for updating any contact information. Furthermore, contact store 200 allows contact store clients to associate any data with any contact in the contact store. Changes to that data can optionally be distributed to all account devices. This arbitrary data can be used to add a comment to the contact or prevent spoofing of the contact.

コンタクト・ストア200はエンジンではないが、アカウントに関連付けられた装置の全部へコンタクトに関連付けられた何らかのデータへの変更を配布するために、別のエンジン例えばアカウント・エンジン又は共有空間メンバ・エンジン等によって維持することができるローカル・ストレージ(local storage)である。この配布はアカウント・ストアに格納されコンタクト・ストア内のコンタクトに関連したプロパティ・リストを取得することにより行われる。このプロパティ・リストはそのコンタクトについてのプロパティ・リスト・プロバイダにより提供される。例えば、アカウント・エンジンはこのようなプロバイダであり得る。つまり、コンタクト情報のストレージはローカルに為されるが、関連データはアカウント装置の全部にわたって透過的に伝播できる。   Contact store 200 is not an engine, but by another engine, such as an account engine or a shared space member engine, to distribute changes to any data associated with a contact to all of the devices associated with the account. A local storage that can be maintained. This distribution is done by obtaining a property list stored in the account store and associated with contacts in the contact store. This property list is provided by the property list provider for the contact. For example, the account engine can be such a provider. That is, contact information is stored locally, but related data can be transmitted transparently throughout the account device.

本発明の原理によれば、自分のデータ・ストア(例えばメッセージ・ストアやメンバ・マネージャ)にあるコンタクト情報のコピーをそれまで保守していた全部のエンジンを変更して、それらのデータ・ストア内に完全なコンタクト情報の代わりにコンタクトURLを格納する。データ・ストアはURLだけを含むが、エンジンによって作成されたデータが他の共有空間メンバへの伝播のため共有空間シリアル化の一環としてシリアル化される際には、データ内のコンタクトURLを用いてコンタクト・ストアから実際のコンタクト情報を取得し、そのコンタクト情報はシリアル化したデータに含まれている。逆に、別の共有空間メンバから受信したデータを共有空間非シリアル化の一環として非シリアル化する際には、非シリアル化されたデータ内にあるコンタクト情報をコンタクト・ストアに追加し、関連付けられたコンタクトURLだけを共有空間データ・ストアに格納する。   In accordance with the principles of the present invention, all engines that have previously maintained a copy of contact information in their data stores (eg, message stores and member managers) are modified and stored in those data stores. The contact URL is stored instead of the complete contact information. The data store contains only a URL, but when the data created by the engine is serialized as part of shared space serialization for propagation to other shared space members, the contact URL in the data is used. Actual contact information is obtained from the contact store, and the contact information is included in the serialized data. Conversely, when deserializing data received from another shared space member as part of shared space deserialization, the contact information in the deserialized data is added to the contact store and associated. Only the contact URL stored in the shared space data store is stored.

前述したように、コンタクト・ストアはアカウント・エンジン又は共有空間メンバ・エンジン等の既存のエンジンによって保守できる。このエンジンは別のユーザから受信したメッセージに応答してコンタクトを更新する能力を備えている。これらのメッセージは以下のメッセージ形式を含む:   As previously mentioned, the contact store can be maintained by an existing engine, such as an account engine or a shared space member engine. The engine has the ability to update a contact in response to a message received from another user. These messages include the following message formats:

購読要求メッセージ ── このメッセージ形式は受信者のアイデンティティ・コンタクト情報の更新を自動的に受信するために送信者が受信者の購読リストに追加されることを要求する。購読要求メッセージは受信者についての完全なvCard情報又は受信者の「名前だけ」と言うvCardのいずれかを含む。どちらの場合でも、保安上の目的から、このメッセージは受信者が送信者を確認して認証するために充分な情報、例えばデジタル署名を含む。   Subscription request message—This message format requires the sender to be added to the recipient's subscription list in order to automatically receive updates of the recipient's identity and contact information. The subscription request message contains either the complete vCard information about the recipient or the vCard saying “only the name” of the recipient. In either case, for security purposes, this message contains sufficient information, such as a digital signature, for the recipient to verify and authenticate the sender.

要求拒否メッセージ ── このメッセージは購読要求メッセージの受信者が更新の要求を拒否した場合に購読要求メッセージの送信者に返送される。購読要求は許可を設定するユーザ・インタフェース画面を用いて拒否できる。   Request rejection message—This message is sent back to the sender of the subscription request message if the recipient of the subscription request message rejects the update request. Subscription requests can be rejected using a user interface screen that sets permissions.

送信者にはコンタクトの供給源がないと言うメッセージ ── このメッセージは購読者についてのコンタクト情報がコンタクト・ストアから削除された場合に購読リストにある各装置へ送信され、送信者がその購読者についてコンタクト情報の他の供給源を持たないことを示す。   A message that the sender does not have a source of contact ── This message is sent to each device on the subscription list when contact information about the subscriber is removed from the contact store, and the sender is the subscriber Indicates that it has no other source of contact information.

コンタクトが更新されたと言うメッセージ ── このメッセージはあるアイデンティティのコンタクト情報が変化した場合に購読リストにある全てのコンタクトに送信され、送信者についてのコンタクト情報を受信者に更新させる。このメッセージは送信者の自己署名を含み、当該更新中に、保安上の目的から、メッセージ処理エンジンは自己署名が確認されたかどうかを検出する。自己署名が確認されない場合、コンタクト情報は破棄されエラーが発生する。   A message that the contact has been updated ── This message is sent to all contacts in the subscription list when the contact information for a given identity changes, causing the recipient to update the contact information about the sender. This message contains the sender's self-signature, and during the update, for security purposes, the message processing engine detects whether the self-signature has been verified. If the self-signature is not confirmed, the contact information is discarded and an error occurs.

「コンタクトが更新された」と言うメッセージは送信者のvCard情報も含む。購読リストにあるコンタクトについての名前だけと言うビットがセットされた場合、vCard情報は送信者の名前と、更新目的でコンタクトと通信するのに充分な情報だけを含む。名前だけと言うビットは購読リストにコンタクトを配置する購読要求メッセージが名前だけのvCardを含む場合に購読リスト内に設定される。後でメッセージ送信者が受信者と交信したときには、送信者の完全なvCard情報を受信できるが、名前だけのvCard情報から完全なvCard情報へ購読リストのエントリを変更するためには、受信者は完全なvCard情報を含む購読要求メッセージを新たに送信する必要がある。LAN/ディレクトリの公開モードを「名前だけ」に変更することではすでに完全なvCard情報を持っているユーザには影響しないが、更新が通知メッセージの結果でない場合には全てのコンタクト更新について再購読が必要になる。   The message “Contact updated” also includes the sender's vCard information. If the only name bit for a contact in the subscription list is set, the vCard information includes only the sender's name and information sufficient to communicate with the contact for update purposes. The name only bit is set in the subscription list if the subscription request message to place a contact in the subscription list contains a vCard with only the name. Later, when the message sender contacts the recipient, he can receive the sender's complete vCard information, but to change the subscription list entry from the name-only vCard information to the complete vCard information, the recipient A new subscription request message containing complete vCard information needs to be sent. Changing the LAN / directory public mode to “name only” will not affect users who already have complete vCard information, but if the update is not the result of a notification message, all contact updates will be resubscribed. I need it.

装置消去メッセージ ── このメッセージは、購読リストがその一部をなすコンタクト・ストア・エントリに関連付けられたアイデンティティが永久に無効になる時又はその装置が消去される時に購読リストにある全ての購読装置へ送信される。このメッセージの受信者はそれまでの購読状態とは関係なく購読リストから送信者の装置を削除する。   Device erasure message-This message is sent to all subscribed devices on the subscription list when the identity associated with the contact store entry that the subscription list is part of is permanently invalidated or when the device is erased. Sent to. The recipient of this message deletes the sender's device from the subscription list regardless of the previous subscription status.

ピン(Ping)メッセージ ── このメッセージは受信者がまだ有効かどうか調べるために使用する。もう有効ではなくなった供給源なしのコンタクトについてコンタクト・ストア内にコンタクト情報を保存するのを避けるため、コンタクト・ストアは定期的に購読リストにある供給源なしのコンタクトへ各々ピン(Ping)メッセージを送信する。所定数のピン・メッセージに対して応答がない場合、その供給源なしのコンタクトは削除にマークされる。この点で、状態4又は状態6になっている購読リスト内の購読者装置に相当するコンタクト・ストア内のコンタクト情報は削除される。同様に、装置を有しない購読者に相当するコンタクト情報は削除フラグ221をセットすることにより削除用にマークされる。コンタクト情報が削除用にマークされた場合、購読者装置は状態4であると仮定される。   Ping message—This message is used to check if the recipient is still valid. To avoid storing contact information in the contact store for contact with no source that is no longer valid, the contact store periodically sends a ping message to each sourceless contact in the subscription list. Send. If there is no response to a predetermined number of pin messages, the contact without that source is marked for deletion. At this point, the contact information in the contact store corresponding to the subscriber device in the subscription list in state 4 or state 6 is deleted. Similarly, contact information corresponding to a subscriber who does not have a device is marked for deletion by setting a deletion flag 221. If the contact information is marked for deletion, the subscriber device is assumed to be in state 4.

ポン(Pong)メッセージ──このメッセージはピン・メッセージの送信者へそのメッセージの受信者から送信され受信者がまだアクティブであることを示す。   Pong message--This message is sent from the recipient of the message to the sender of the ping message, indicating that the recipient is still active.

コンタクト情報を維持するためにコンタクト・ストアによって行われる処理について図4から図15を参照して詳細に説明する。図4はアイデンティティのコンタクト・ストアへ新しいコンタクト供給源を追加する例示的な手順のステップを示す。この処理はコンタクト供給源が内部になくコンタクト情報が現在のアカウントにあるアイデンティティの一つによって所有されていない場合に実行される。処理はステップ400で始まってステップ402に進み、ここでコンタクト・ストア内にすでにコンタクト供給源が存在するかどうかの判定を行う。コンタクトが未だコンタクト・ストア内に存在しない場合、処理はステップ404に進みここでコンタクト・ストアへコンタクト情報を追加する。   The processing performed by the contact store to maintain contact information will be described in detail with reference to FIGS. FIG. 4 illustrates the steps of an exemplary procedure for adding a new contact source to the identity contact store. This process is performed when the contact source is not internal and the contact information is not owned by one of the identities in the current account. Processing begins at step 400 and proceeds to step 402 where a determination is made as to whether a contact source already exists in the contact store. If the contact does not yet exist in the contact store, processing proceeds to step 404 where contact information is added to the contact store.

次に、ステップ408で、コンタクトに関係する全ての装置がアイデンティティのアカウント・アイデンティティの全部に関連付けられた購読リストに追加される。各々の追加された装置の状態変数の値は状態2にセットされる。次に、ステップ416で、情報をコンタクト・ストアへ追加しているコンタクトの装置の各々へアイデンティティによって購読要求メッセージが送信され、アイデンティティがコンタクトの購読リストへ追加され、これによって購読を双方向にする。処理はステップ420で終了する。   Next, at step 408, all devices related to the contact are added to the subscription list associated with all of the identity's account identities. The value of the state variable for each added device is set to state 2. Next, at step 416, a subscription request message is sent by identity to each of the contact's devices that are adding information to the contact store, and the identity is added to the contact's subscription list, thereby making the subscription interactive. . The process ends at step 420.

これ以外に、ステップ402で、コンタクトについての情報がコンタクト・ストアに存在すると判断された場合、ここで処理はステップ406へ進み、アイデンティティの購読リストにあるコンタクト装置のどれかが状態3又は状態4になっているか調べる。状態3又は状態4のいずれかになっている装置がない場合、処理はステップ420で終了する。しかし、1つ又はそれ以上の装置が状態3又は状態4のいずれかになっていると判断された場合、処理はステップ410へ進み、ここで削除フラグを調べることによりコンタクト・レコードが削除にマークされているかどうかを判定する。コンタクト・レコードが削除にマークされていた場合、ステップ414で、(削除フラグをリセットすることにより)コンタクト・レコードは削除のマークが解除され、ステップ418で、コンタクト情報に関連付けられた装置の全部がアイデンティティの購読リストに追加され状態変数の値が状態2にセットされる。この動作は図3に図示してあるように状態306と状態302の間の状態遷移328に相当する。処理はステップ420で終了する。   Otherwise, if it is determined in step 402 that information about the contact exists in the contact store, then processing proceeds to step 406 where any of the contact devices in the identity subscription list are in state 3 or state 4. Find out if it is. If no device is in either state 3 or state 4, the process ends at step 420. However, if it is determined that one or more devices are in either state 3 or state 4, processing proceeds to step 410 where the contact record is marked for deletion by checking the deletion flag. Determine whether it has been. If the contact record has been marked for deletion, at step 414 the contact record is unmarked for deletion (by resetting the deletion flag), and at step 418 all of the devices associated with the contact information are removed. Added to the identity subscription list and the value of the state variable is set to state 2. This operation corresponds to the state transition 328 between the state 306 and the state 302 as shown in FIG. The process ends at step 420.

これ以外に、ステップ410で、コンタクト・レコードが削除にマークされていないと判断された場合、アイデンティティの購読リストにある各装置の状態変数の値は状態3から状態1へ変更される。この動作は図3に示した通り状態300と状態304の間の状態遷移314に相当する。次に、ステップ416で、購読要求メッセージが、情報をコンタクト・ストアへ追加しようとしているコンタクトの装置の各々へアイデンティティによって送信されアイデンティティがコンタクトの購読リストへ追加され、これによって購読を双方向にする。処理はステップ420で終了する。   Otherwise, if it is determined at step 410 that the contact record is not marked for deletion, the value of the state variable for each device in the identity subscription list is changed from state 3 to state 1. This operation corresponds to the state transition 314 between the state 300 and the state 304 as shown in FIG. Next, at step 416, a subscription request message is sent by identity to each of the contact's devices that are adding information to the contact store, and the identity is added to the contact's subscription list, thereby making the subscription interactive. . The process ends at step 420.

図5はコンタクト供給源がコンタクト・ストアから除去された場合にコンタクト・ストアによって行われる例示的な処理を示す。この処理はコンタクト供給源が内部になく、かつ、コンタクト情報が現在のアカウントにあるアイデンティティの一つではない場合に行われ、ステップ500で始まってステップ502へ進み、ここで、除去しようとするコンタクト情報がコンタクト・ストア内にあるこのコンタクト情報についての最後の供給源かどうか判断を行う。このコンタクト情報が最後の供給源ではない場合、処理はステップ514で終了する。これ以外に、コンタクト情報が最後の供給源だった場合、処理はステップ504へ進み、ここで、全てのコンタクト装置を処理したかどうか判定を行う。全部の装置が処理された場合、処理はステップ514で終了する。   FIG. 5 illustrates an exemplary process performed by the contact store when the contact source is removed from the contact store. This process occurs when the contact source is not internal and the contact information is not one of the identities in the current account, starting at step 500 and proceeding to step 502 where the contact to be removed. A determination is made whether the information is the last source for this contact information in the contact store. If this contact information is not the last source, the process ends at step 514. Otherwise, if the contact information is the last source, the process proceeds to step 504 where it is determined whether all contact devices have been processed. If all devices have been processed, processing ends at step 514.

これ以外に、ステップ504で、全てのコンタクト装置が処理されていないと判断された場合、ステップ506で、次の装置に関連した状態変数の値が、装置が状態1又は状態2になっていることを示しているかどうか、チェックを行う。装置が状態1又は状態2になっていない場合、処理はステップ504に戻り、ここで処理すべき追加の装置が残っているかどうかを調べる。   Otherwise, if it is determined in step 504 that all contact devices have not been processed, the value of the state variable associated with the next device is set to state 1 or state 2 in step 506. Check to see if it shows. If the device is not in state 1 or state 2, processing returns to step 504 where it is checked if there are additional devices to process.

次の装置が状態1又は状態2になっていると、ステップ506で判定された場合、処理はステップ508に進み、ここで「送信者はコンタクトの供給源を持たない」と言うメッセージが装置に関連付けられたコンタクトへ送信される。このメッセージはコンタクトがアイデンティティのコンタクト・ストア内で供給源なしになったことを示す。アイデンティティのコンタクト情報が受信者であるコンタクトのコンタクト・ストア内で供給源なしになった場合、両者はそれらの購読リストから他方の名前を削除できコンタクト・ストア内で他方のコンタクトを削除されたものとしてマークすることができる。   If the next device is in state 1 or state 2, if it is determined in step 506, the process proceeds to step 508, where the message "Sender does not have a source of contact" is sent to the device. Sent to the associated contact. This message indicates that the contact has no source in the identity's contact store. If the contact information for an identity becomes sourceless in the contact store of the recipient contact, they can delete the other name from their subscription list and the other contact has been deleted in the contact store Can be marked as

次に、ステップ510で、状態1になっている全装置について、装置に関連付けられた状態変数の値が全部のアカウント・アイデンティティにある購読リスト内で1から3へ変更される。この動作は図3の状態300から状態304への状態遷移312に相当する。次に、ステップ512で、状態2になっている全ての装置がアイデンティティの購読リストから削除される。この動作は図3において状態302から状態306への状態遷移316に相当する。更に、状態5になっている全ての装置がアイデンティティの購読リストから削除される。この動作は図3に置いて状態308から状態310への状態遷移330に相当する。処理はステップ514で終了する。各装置を削除する際に図7に示してあり後述する処理が実行されることに注意する。   Next, at step 510, for all devices in state 1, the value of the state variable associated with the device is changed from 1 to 3 in the subscription list in all account identities. This operation corresponds to the state transition 312 from the state 300 to the state 304 in FIG. Next, at step 512, all devices in state 2 are removed from the identity subscription list. This operation corresponds to the state transition 316 from the state 302 to the state 306 in FIG. In addition, all devices in state 5 are removed from the identity subscription list. This operation corresponds to the state transition 330 from the state 308 to the state 310 in FIG. Processing ends at step 514. Note that when deleting each device, the processing shown in FIG. 7 and described later is executed.

図6はコンタクト・ストア内の情報が更新されたときに全ての購読者に通知するコンタクト・ストアによって行われる例示的処理を示す。この処理はステップ600で始まってステップ602へ進み、ここで更新しようとしているコンタクト情報が現在のアカウントにあるアイデンティティの一つによって保有されているかどうかの判定を行う。このようなコンタクト情報に対して更新が行われつつある場合には、ステップ608で、「コンタクトが更新された」と言うメッセージをアカウントの購読リスト内にある状態1、2又は3の装置の全部へ送信する。これはコンタクト情報を更新しなければならないことを各購読者に通知する。   FIG. 6 illustrates an exemplary process performed by the contact store that notifies all subscribers when information in the contact store is updated. The process begins at step 600 and proceeds to step 602 where it is determined whether the contact information that is to be updated is held by one of the identities in the current account. If such contact information is being updated, in step 608, the message “Contact has been updated” is sent to all of the devices in states 1, 2, or 3 that are in the subscription list for the account. Send to. This notifies each subscriber that the contact information must be updated.

これ以外に、ステップ602で、アイデンティティによって所有されていないコンタクト情報へのコンタクト情報変更が行われていることの判定を行い、処理はステップ604へ進み、ここで更新が別のコンタクトから受信した「コンタクト更新」メッセージによるものかどうかの判定を行う。更新がこのような更新メッセージの結果である場合には処理はステップ614で終了する。   In addition, in step 602, it is determined that a contact information change has been made to contact information that is not owned by the identity, and the process proceeds to step 604 where an update is received from another contact. It is determined whether or not it is due to a “contact update” message. If the update is the result of such an update message, the process ends at step 614.

更新が到着した更新メッセージの結果ではない場合、ステップ606で、新しいコンタクト・シーケンス番号がコンタクト・ストア内のコンタクト・レコードで記録されている現在のシーケンス番号より大きいかどうか(又は新しいコンタクト・シーケンス番号が現在のシーケンス番号と等しい場合には格納されたコンタクトが異なるか)を調べるチェックを行う。新しいシーケンス番号が現在のシーケンス番号より大きくないか、又は格納されたコンタクトが異なる場合、処理はステップ614で終了する。しかし、新しいシーケンス番号が現在のシーケンス番号より大きく格納されたコンタクトが同一の場合には、ステップ610で、コンタクト情報の更新を要求しているコンタクトへ購読要求メッセージを送信する。ステップ612で、「送信者はコンタクトの供給源を持たない」と言うメッセージが状態3になっているコンタクトの購読リストにある全部の装置へ送信される。処理はステップ614で終了する。   If the update is not the result of an incoming update message, then at step 606, whether the new contact sequence number is greater than the current sequence number recorded in the contact record in the contact store (or the new contact sequence number) If is equal to the current sequence number, the stored contact is different). If the new sequence number is not greater than the current sequence number or the stored contacts are different, the process ends at step 614. However, if the contacts stored with the new sequence number greater than the current sequence number are the same, in step 610, a subscription request message is sent to the contact requesting the update of contact information. At step 612, the message “Sender does not have a source of contacts” is sent to all devices in the contact's subscription list in state 3. Processing ends at step 614.

図7はコンタクト装置が購読リストから削除される場合にコンタクト・ストアによって実行される例示的な処理を示す。この処理はステップ700で始まってステップ702へ進み、ここで削除した装置がコンタクトに関連付けられた最後の装置だったかどうか、かつ、コンタクトが現在供給源なしかどうかを判定する。そうであれば、処理はステップ704に進み、ここで関連付けられたコンタクトが削除にマークされ処理はステップ706で終了する。これ以外に、削除された装置がコンタクトに関連付けられた最後の装置ではない場合、処理はステップ702から直接ステップ706へ進んで終了する。   FIG. 7 illustrates an exemplary process performed by the contact store when a contact device is removed from the subscription list. The process begins at step 700 and proceeds to step 702 where it is determined whether the deleted device was the last device associated with the contact and whether the contact is currently a source. If so, processing proceeds to step 704 where the associated contact is marked for deletion and processing ends at step 706. Otherwise, if the deleted device is not the last device associated with the contact, the process proceeds directly from step 702 to step 706 and ends.

図8はすでにアクティブではなくなっている供給源なしコンタクトを除外するため、コンタクト・ストアによって定期的に、例えば最後の時点から1週間後に、実行される例示的な処理を示している。この処理はステップ800で始まってステップ802へ進み、ここでコンタクト・ストア内の各コンタクトを調べる。全部のコンタクトが処理されたら、処理はステップ804で終了する。これ以外に、処理すべきコンタクトが更に残っている場合、処理はステップ806へ進み、ここで、任意のコンタクトについて、購読リスト内でそのコンタクトに関連付けられた装置全部を調べる。ステップ806で、処理すべき購読リスト内の装置がこれ以上残っていなければ、購読リスト内にあってコンタクトに関連付けられた全部の装置が処理されたことになり処理はステップ802へ戻り、処理すべきコンタクトが更に残っているかどうかを調べるチェックを行う。   FIG. 8 shows an exemplary process performed by the contact store periodically, eg, one week after the last time point, to exclude sourceless contacts that are no longer active. The process begins at step 800 and proceeds to step 802 where each contact in the contact store is examined. If all contacts have been processed, processing ends at step 804. Otherwise, if there are more contacts to process, processing proceeds to step 806 where, for any contact, all devices associated with that contact in the subscription list are examined. In step 806, if there are no more devices in the subscription list to be processed, all devices in the subscription list associated with the contact have been processed, and the process returns to step 802 for processing. Check to see if there are any more contacts left.

ステップ806で、処理すべき装置が更に残っていると判断された場合、処理はステップ808へ進み、ここで次の装置状態をチェックする。次の装置がその装置に関連付けられた状態変数の値で示される状態3になっていなければ、処理はステップ806へ戻りここで処理すべき装置が更に残っているかどうかを調べるチェックを行う。これ以外に、ステップ808で、調べている装置が状態3にあると判断された場合、処理はステップ810へ進み、ここで、装置に関連付けられたピンカウント(PingCount)変数をインクリメントする。次に、ステップ812で、インクリメントしたピンカウント変数の値が所定の限界、例えば4より大きいかどうかの判定を行う。ピンカウント変数の値が所定の限界より小さいか又は等しい場合には、ステップ816で、ピン・メッセージを装置へ送信する。装置がアクティブな場合、この装置はピン・メッセージの受信時にポン・メッセージを返す。処理はステップ806へ戻り更にコンタクトを処理する必要があるかどうかを調べる。   If it is determined in step 806 that there are more devices to process, processing proceeds to step 808 where the next device status is checked. If the next device is not in state 3, indicated by the value of the state variable associated with that device, processing returns to step 806 where a check is made to see if there are more devices to process. Otherwise, if it is determined in step 808 that the device being examined is in state 3, the process proceeds to step 810 where the pin count variable associated with the device is incremented. Next, in step 812, it is determined whether the incremented pin count variable value is greater than a predetermined limit, for example, four. If the value of the pin count variable is less than or equal to the predetermined limit, at step 816, a pin message is sent to the device. If the device is active, it returns a pong message upon receipt of the ping message. Processing returns to step 806 to see if further contacts need to be processed.

しかし、ステップ812で、ピンカウント変数値が所定の限界を越えていた場合、ステップ814で装置は全てのアカウント・アイデンティティの購読リストから削除される。処理はステップ806へ戻り更に処理すべきコンタクトが残っているかどうかを調べる。   However, if, at step 812, the pin count variable value exceeds the predetermined limit, then at step 814, the device is removed from the subscription list for all account identities. Processing returns to step 806 to check if there are any more contacts to process.

図9Aと図9Bは並置した場合に他のコンタクトから受信したメッセージを処理するためコンタクト・ストアによって実行される例示的処理を示している。この処理の第1のステップはどの種類のメッセージを受信したか調べることである。この第一ステップが図9Aと図9Bに図示してある。処理はステップ900で始まってステップ902へ進み、ここで幾つかの初期チェックを行ってメッセージがコンタクト伝播メッセージかどうか調べ、送信者のコンタクト情報がうまく認証されたことと、送信者の署名がその送信者についてすでにファイル上にあるいずれかの署名と一致したことを確認する。これらの初期チェックに合格しなかった場合には、処理はページ間接続926と930を経由して進みステップ938で終了する。   9A and 9B illustrate an exemplary process performed by the contact store to process messages received from other contacts when collocated. The first step in this process is to check what kind of message has been received. This first step is illustrated in FIGS. 9A and 9B. Processing begins at step 900 and proceeds to step 902 where some initial checks are made to see if the message is a contact propagation message, that the sender's contact information has been successfully authenticated, and that the sender's signature is Verify that the sender matches any signature already on the file. If these initial checks fail, the process proceeds via interpage connections 926 and 930 and ends at step 938.

これ以外に、ステップ902で、初期チェックに合格した場合、メッセージを調べて受信したメッセージの形式を決定する。ステップ904でチェックを行いメッセージが購読要求メッセージかどうかを調べる。そうなら、購読要求メッセージ・ルーチン処理906を実行する。   In addition, if the initial check passes in step 902, the message is examined to determine the format of the received message. In step 904, a check is made to see if the message is a subscription request message. If so, the subscription request message routine processing 906 is executed.

メッセージが購読要求メッセージでない場合、処理はステップ908へ進み、ここでチェックを行ってメッセージが要求拒否メッセージかどうかを調べる。そうなら、要求拒否メッセージ・ルーチン処理910を実行する。   If the message is not a subscription request message, processing proceeds to step 908 where a check is made to see if the message is a request rejection message. If so, request rejection message routine processing 910 is executed.

メッセージが要求拒否メッセージではない場合、処理はステップ912へ進みここでチェックを行ってメッセージが送信者はコンタクトの供給源なしと言うメッセージかどうかを調べる。そうなら、供給源なしメッセージ・ルーチン処理914を実行する。   If the message is not a request rejection message, processing proceeds to step 912 where a check is made to see if the message is a message that the sender is no source of contact. If so, a no source message routine process 914 is performed.

メッセージが送信者はコンタクトの供給源なしと言うメッセージではない場合、処理はステップ916へ進みここでチェックを行ってメッセージがコンタクト更新済みメッセージかどうかを調べる。そうならコンタクト更新済みメッセージ・ルーチン処理918を実行する。   If the message is not a message that the sender is no source of contact, processing proceeds to step 916 where a check is made to see if the message is a contact updated message. If so, contact updated message routine processing 918 is performed.

メッセージがコンタクト更新済みメッセージではない場合、処理はステップ920へ進みここでチェックを行ってメッセージがピン・メッセージかどうかを調べる。そうなら、ピン・メッセージ・ルーチン処理922を実行する。   If the message is not a contact updated message, processing proceeds to step 920 where a check is made to see if the message is a pin message. If so, the pin message routine process 922 is executed.

メッセージがピン・メッセージではない場合、処理はページ間接続924と928を通ってステップ932へ進み、ここでメッセージがポン・メッセージかどうかを調べる。そうなら、ポン・メッセージ・ルーチン処理934を実行する。   If the message is not a ping message, processing proceeds to step 932 through interpage connections 924 and 928, where it checks to see if the message is a pon message. If so, the Pong message routine process 934 is executed.

最後に、メッセージがポン・メッセージではない場合、これは装置削除メッセージのはずであるから装置削除メッセージ・ルーチン処理936を実行する。いずれの場合も、処理はステップ938で終了する。   Finally, if the message is not a Pong message, it should be a device delete message, so device delete message routine processing 936 is performed. In either case, processing ends at step 938.

購読要求メッセージ・サブルーチン906処理が図10に更に詳細に図示してある。この処理はステップ1000で始まってステップ1002へ進み、ここで要求側に対して購読が許可されているか調べる。前述したように、ユーザ・インタフェース選択を提供してアイデンティティが所有者のアイデンティティ情報に対する購読更新に関する許可をセットすることができる。これらの許可はステップ1002でチェックされてメッセージ送信者がコンタクト情報更新を購読する許可を持っているかどうか調べる。   The subscription request message subroutine 906 process is illustrated in more detail in FIG. This process begins at step 1000 and proceeds to step 1002, where it is checked whether the requester is permitted to subscribe. As described above, a user interface selection can be provided to set permissions for subscription renewals for the identity information of the owner. These permissions are checked at step 1002 to see if the message sender has permission to subscribe to contact information updates.

許可によって送信者が更新を購読できない場合、ステップ1004で送信者のコンタクト情報がメッセージ受信者のコンタクト・ストアから除去され、ステップ1010で要求拒否メッセージがメッセージ送信者へ送信される。サブルーチンはステップ1022へ戻る。   If the permission prevents the sender from subscribing to the update, the sender's contact information is removed from the message recipient's contact store at step 1004 and a request rejection message is sent to the message sender at step 1010. The subroutine returns to step 1022.

これ以外に、ステップ1002で決定したように許可によって送信者が購読を許可する場合、処理はステップ1006へ進み、ここで送信者のコンタクト情報が受信者のコンタクト・ストアに存在するかどうかの判定を行う。コンタクト情報がコンタクト・ストア内にない場合、ステップ1008で、コンタクト情報がコンタクト・ストアへ追加される。処理は次にステップ1020へ進み、ここで送信者の装置が受信者の購読リストへ追加され状態変数が状態3にセットされる。サブルーチンはステップ1022へ戻る。   Otherwise, if the sender allows the subscription by permission as determined in step 1002, the process proceeds to step 1006 where a determination is made as to whether the sender's contact information exists in the recipient's contact store. I do. If the contact information is not in the contact store, at step 1008, the contact information is added to the contact store. Processing then proceeds to step 1020 where the sender's device is added to the recipient's subscription list and the state variable is set to state 3. The subroutine returns to step 1022.

ステップ1006でコンタクト情報がすでに受信者のコンタクト・ストアに存在すると判断された場合、ステップ1012で、チェックを行ってコンタクトが削除にマークされているかどうかを調べる。そうならステップ1016で、コンタクト・レコードが削除マークを解除され処理はステップ1020へ進み、ここで送信者の装置が受信者の購読リストへ追加されて状態変数の値が状態3にセットされる。サブルーチンはステップ1022に戻る。この動作は図3に図示した状態4(306)から状態3(304)への遷移318に相当する。   If it is determined at step 1006 that the contact information already exists in the recipient's contact store, at step 1012 a check is made to see if the contact is marked for deletion. If so, at step 1016, the contact record is unmarked for deletion and processing proceeds to step 1020 where the sender's device is added to the recipient's subscription list and the value of the state variable is set to state 3. The subroutine returns to step 1022. This operation corresponds to the transition 318 from the state 4 (306) to the state 3 (304) shown in FIG.

これ以外に、ステップ1012でコンタクトが削除にマークされていないと判断された場合、処理はステップ1014へ進み、ここで全部のアカウント・アイデンティティについて、送信者のコンタクト装置に対応する購読リスト内の状態変数の値が2から1へ、又は5から1へ、変更される。これらの動作は各々状態302から状態300への状態遷移325と、状態308から状態300への状態遷移322に相当する。次に、ステップ1018で、送信者側装置のピン・カウンタが全部のアカウント・アイデンティティでゼロにセットされる。サブルーチンは次にステップ1022に戻る。   Otherwise, if it is determined in step 1012 that the contact has not been marked for deletion, processing proceeds to step 1014 where all account identities are in the subscription list corresponding to the sender's contact device. The value of the variable is changed from 2 to 1 or from 5 to 1. These operations correspond to the state transition 325 from the state 302 to the state 300 and the state transition 322 from the state 308 to the state 300, respectively. Next, at step 1018, the sender's device pin counter is set to zero for all account identities. The subroutine then returns to step 1022.

要求拒否メッセージ処理サブルーチン910が図11に更に詳細に図示してある。この処理はステップ1100で始まりステップ1102へ進み、ここでメッセージ送信者のコンタクト情報が受信者のコンタクト・ストアに存在するかどうかの判定を行う。この情報がコンタクト・ストアに存在しない場合にはサブルーチンはステップ1106へ戻る。   The request rejection message processing subroutine 910 is illustrated in more detail in FIG. The process begins at step 1100 and proceeds to step 1102 where a determination is made as to whether the message sender's contact information exists in the recipient's contact store. If this information does not exist in the contact store, the subroutine returns to step 1106.

これ以外で、ステップ1102で送信者のコンタクト情報がコンタクト・ストアに存在していると判断された場合、送信者の装置の全部がアカウント・アイデンティティの各々で処理される。第一に、ステップ1104で、チェックを行い送信者について処理すべき装置レコードが未だ残っているかを調べる。処理すべき装置レコードが残っている場合には、ステップ1108で、チェックを行って処理すべき次の装置レコードにある状態変数の値が1か又は2かを調べる。状態変数の値が1又は2の場合、処理はステップ1110へ進みここで全てのアカウント・アイデンティティについて受信者の購読リストにある送信者の装置レコードでの状態変数の値を5に変更する。この動作は図3の状態300から状態308への状態遷移324と状態302から状態308への状態遷移326に相当する。   Otherwise, if it is determined in step 1102 that the sender's contact information is present in the contact store, the entire sender's device is processed with each of the account identities. First, in step 1104, a check is made to see if there are still device records to be processed for the sender. If there remains a device record to be processed, a check is made at step 1108 to see if the value of the state variable in the next device record to be processed is 1 or 2. If the value of the state variable is 1 or 2, the process proceeds to step 1110 where the value of the state variable in the sender's device record in the recipient's subscription list for all account identities is changed to 5. This operation corresponds to the state transition 324 from the state 300 to the state 308 and the state transition 326 from the state 302 to the state 308 in FIG.

これ以外に、送信者の装置レコードの状態変数の値が1又は2ではない場合には、ステップ1112で、チェックを行ない、状態変数の値が3かどうかを調べる。値が3ではない場合、処理はステップ1104へ戻って、更に処理すべき装置レコードがあるかどうかを調べる。しかし、状態変数の値が3であれば、ステップ1114で、全てのアカウント・アイデンティティにおいて装置レコードを削除する。この動作は図3の状態304から状態310への状態遷移332に相当する。処理はステップ1104へ戻って更に処理すべき装置レコードが存在するか調べる。全てのレコードが処理されたら、サブルーチンはステップ1106へ戻る。   Otherwise, if the value of the state variable in the sender's device record is not 1 or 2, in step 1112, a check is made to see if the value of the state variable is 3. If the value is not 3, processing returns to step 1104 to see if there are more device records to process. However, if the value of the state variable is 3, step 1114 deletes device records for all account identities. This operation corresponds to the state transition 332 from the state 304 to the state 310 in FIG. The process returns to step 1104 to check whether there is a device record to be further processed. When all the records have been processed, the subroutine returns to step 1106.

供給源なしメッセージ処理サブルーチン914が図12に更に詳細に図示してある。この処理はステップ1200で始まりステップ1202へ進みここでメッセージ送信者のコンタクト情報が受信者のコンタクト・ストアに存在するかどうかを調べる。情報がコンタクト・ストアに存在しない場合サブルーチンはステップ1206へ戻る。   The no source message processing subroutine 914 is illustrated in more detail in FIG. The process begins at step 1200 and proceeds to step 1202 where it checks whether the contact information of the message sender is present in the recipient's contact store. If the information does not exist in the contact store, the subroutine returns to step 1206.

これ以外に、ステップ1202で送信者のコンタクト情報がコンタクト・ストアに存在すると判断された場合、送信者の装置の全部がアカウント・アイデンティティの各々で処理される。第一に、ステップ1204で、チェックを行い、処理すべき送信者側の装置レコードが未だ残っているか調べる。処理すべき装置レコードが残っている場合、ステップ1208でチェックを行い、処理すべき次の装置レコードの状態変数の値が1かどうか調べる。状態変数の値が1であれば、処理はステップ1210へ進みここで全部のアカウント・アイデンティティについて受信者の購読リストにある送信者の装置レコードで状態変数の値を2に変更する。この動作は図3の状態300から状態302への状態遷移323に相当する。   Alternatively, if it is determined in step 1202 that the sender's contact information exists in the contact store, the entire sender's device is processed with each of the account identities. First, in step 1204, a check is made to see if there is still a device record on the sender side to be processed. If there is a device record to be processed, a check is made at step 1208 to check whether the value of the state variable of the next device record to be processed is 1. If the value of the state variable is 1, the process proceeds to step 1210 where the value of the state variable is changed to 2 in the sender's device record in the recipient's subscription list for all account identities. This operation corresponds to the state transition 323 from the state 300 to the state 302 in FIG.

これ以外に、送信者の装置レコードで状態変数の値が1ではない場合には、ステップ1212で、チェックを行って状態変数の値が3かどうかを調べる。値が3でなければ、処理はステップ1204へ戻り、処理すべき装置レコードが更に残っているかチェックする。しかし、状態変数の値が3であれば、ステップ1214で、全てのアカウント・アイデンティティで装置レコードが削除される。この動作は図3の状態304から状態306への状態遷移320に相当する。処理はステップ1204へ戻り処理すべき装置レコードが更に残っているかどうか調べる。全てのレコードを処理したら、サブルーチンはステップ1206へ戻る。   Otherwise, if the state variable value is not 1 in the sender's device record, in step 1212 a check is made to see if the state variable value is 3. If the value is not 3, the process returns to step 1204 to check whether there are more device records to be processed. However, if the value of the state variable is 3, in step 1214, device records are deleted for all account identities. This operation corresponds to the state transition 320 from the state 304 to the state 306 in FIG. The process returns to step 1204 to check whether there are more device records to be processed. When all records have been processed, the subroutine returns to step 1206.

コンタクト更新済みメッセージ処理サブルーチン918が図13に更に詳細に図示してある。この処理はステップ1300で始まりステップ1302へ進みここでメッセージ送信者のコンタクト情報が受信者のコンタクト・ストアに存在するかどうかを調べる。この情報がコンタクト・ストアに存在しない場合サブルーチンはステップ1310へ戻る。   The contact updated message processing subroutine 918 is illustrated in more detail in FIG. The process begins at step 1300 and proceeds to step 1302, where it checks whether the contact information of the message sender is present in the recipient's contact store. If this information does not exist in the contact store, the subroutine returns to step 1310.

これ以外に、ステップ1302で送信者のコンタクト情報がコンタクト・ストアに存在すると判断された場合、ステップ1304で、送信者のコンタクト・シーケンス番号が変更されたかどうかを調べる。このシーケンス番号が変更された場合、ステップ1306で受信者のコンタクト・ストアにある送信者のコンタクト情報を更新して処理はステップ1308へ進む。しかしこのシーケンス番号が変更されなかった場合には処理はステップ1308へ直接進む。   In addition, if it is determined in step 1302 that the sender's contact information exists in the contact store, then in step 1304, it is checked whether the sender's contact sequence number has been changed. If this sequence number has been changed, the sender's contact information in the recipient's contact store is updated at step 1306 and processing proceeds to step 1308. However, if this sequence number has not been changed, the process proceeds directly to step 1308.

ステップ1308で、全てのアカウント・アイデンティティについて購読リストにある送信者の装置のピン・カウンタがゼロにセットされる。サブルーチンはステップ1310へ戻る。   At step 1308, the pin counter of the sender's device in the subscription list for all account identities is set to zero. The subroutine returns to step 1310.

ピン・メッセージ処理サブルーチン922が図14に更に詳細に図示してある。この処理はステップ1400で始まってステップ1402へ進み、ここで受信者のコンタクト・ストアにメッセージ送信者のコンタクト情報が存在するかどうかを調べる。この情報がコンタクト・ストアに存在しない場合にはサブルーチンはステップ1408へ戻る。   The pin message processing subroutine 922 is illustrated in more detail in FIG. The process begins at step 1400 and proceeds to step 1402, where it checks whether the contact information of the message sender exists in the recipient's contact store. If this information does not exist in the contact store, the subroutine returns to step 1408.

これ以外で、ステップ1302で送信者のコンタクト情報がコンタクト・ストアに存在すると判断された場合には、ステップ1304で、送信者の装置レコードはその状態変数の値が2になっているかどうか調べる。状態変数の値が2であれば、送信者へポン・メッセージが返される。装置レコードが状態2でなければ、サブルーチンはステップ1408へ戻る。   Otherwise, if it is determined in step 1302 that the sender's contact information exists in the contact store, then in step 1304, the sender's device record is checked to see if the value of its state variable is 2. If the value of the state variable is 2, a pong message is returned to the sender. If the device record is not in state 2, the subroutine returns to step 1408.

ポン・メッセージ処理サブルーチン924が図15に更に詳細に図示してある。この処理はステップ1500で始まりステップ1502へ進んで、ここで受信者のコンタクト・ストアにメッセージ送信者のコンタクト情報が存在するかを調べる。この情報がコンタクト・ストアに存在しない場合には、サブルーチンはステップ1512へ戻る。   Pong message processing subroutine 924 is illustrated in more detail in FIG. The process begins at step 1500 and proceeds to step 1502, where it checks whether the contact information of the message sender exists in the recipient's contact store. If this information does not exist in the contact store, the subroutine returns to step 1512.

受信者のコンタクト・ストアに前記の情報が存在する場合、ステップ1504で、チェックを行いコンタクトが削除にマークされているかどうかを調べる。そうなら、ステップ1506で、コンタクト・レコードの削除マークが解除され処理はステップ1508へ進んで、ここで全てのアカウント・アイデンティティについて受信者の購読リストに送信者の装置を追加し、状態変数の値を状態3にセットする。この動作は図3に示した状態4(306)から状態3(304)への状態遷移318に相当する。これ以外で、ステップ1510でコンタクトが削除にマークされていなかったと判断された場合には、処理は直接ステップ1510へ進む。   If the information is present in the recipient's contact store, a check is made at step 1504 to see if the contact is marked for deletion. If so, at step 1506, the contact record is unmarked and processing proceeds to step 1508 where the sender's device is added to the recipient's subscription list for all account identities and the value of the state variable. Is set to state 3. This operation corresponds to the state transition 318 from state 4 (306) to state 3 (304) shown in FIG. Otherwise, if it is determined in step 1510 that the contact has not been marked for deletion, processing proceeds directly to step 1510.

次に、ステップ1510で、全てのアカウント・アイデンティティについて送信者の装置レコードでピン・カウンタがゼロにセットされる。サブルーチンはステップ1512で終了する。   Next, in step 1510, the pin counter is set to zero in the sender's device record for all account identities. The subroutine ends in step 1512.

装置削除メッセージ処理サブルーチン936が図16に更に詳細に図示してある。この処理はステップ1600で始まってステップ1602へ進み、ここで受信者のコンタクト・ストアにメッセージ送信者のコンタクト情報が存在するかどうかを調べる。この情報がコンタクト・ストアに存在しない場合にはサブルーチンはステップ1610へ戻る。   The device deletion message processing subroutine 936 is illustrated in more detail in FIG. The process begins at step 1600 and proceeds to step 1602, where it checks whether the contact information of the message sender is present in the recipient's contact store. If this information does not exist in the contact store, the subroutine returns to step 1610.

これ以外で、ステップ1602で、送信者のコンタクト情報がコンタクト・ストアに存在すると判断された場合には、ステップ1604で、現在のアカウントでの全てのアイデンティティが処理されたかどうかを調べる。そうなら、処理はステップ1610で終了する。違う場合には、ステップ1606で、メッセージ送信者に関連付けられた購読リストを取得し、ステップ1608で、メッセージに記載された装置が購読リストから削除される。処理はステップ1604へ戻り全てのアイデンティティが処理されたかどうかを調べる。全部のアイデンティティを処理した場合には、処理はステップ1610で終了する。   Otherwise, if it is determined in step 1602 that the sender's contact information exists in the contact store, then step 1604 checks to see if all identities in the current account have been processed. If so, the process ends at step 1610. If not, at step 1606, a subscription list associated with the message sender is obtained, and at step 1608, the device described in the message is deleted from the subscription list. Processing returns to step 1604 to see if all identities have been processed. If all identities have been processed, processing ends at step 1610.

他の二つの処理を用いてコンタクト・ストアを保守する。これらの処理はアカウントを別の装置へインポートした場合とアカウントが装置から削除された場合に行われる。第1の処理は図17に図示してあり、アカウントが別の装置へインポートされた場合にステップ1700で始まる。この処理はステップ1702へ進み、ここでそのアカウントについてコンタクト・ストア内にある全てのコンタクト・ストア・エントリが調べられる。ステップ1702で判断されたように処理すべきエントリが残っていれば、ステップ1706で、処理のために次のエントリを選択する。ステップ1708で、そのエントリにある供給源リストを調べることでエントリが供給源なしコンタクトのものかどうかを調べる。コンタクトがステップ1708で判断されたように供給源なしであれば、そのコンタクトについて購読リストにある全部の装置を処理する。更に詳しくは、ステップ1710で全部の装置を処理したかどうか調べる。違う場合には、ステップ1714で、処理する次の装置を選択する。ステップ1718で、「購読要求」メッセージを選択した装置へ送信する。ステップ1722で、「送信者はコンタクトの供給源を持たない」と言うメッセージを選択した装置へ送信する。処理はステップ1710へ戻って全ての装置を処理したかどうか調べる。ステップ1710で判断されたように全ての装置が処理された場合、処理はステップ1702へ戻り全てのコンタクト・ストア・エントリを処理したかどうか調べる。ステップ1702で判断されたように全部のエントリを処理したら、この処理はステップ1704で終了する。   The other two processes are used to maintain the contact store. These processes are performed when the account is imported to another device and when the account is deleted from the device. The first process is illustrated in FIG. 17 and begins at step 1700 when the account is imported to another device. The process proceeds to step 1702, where all contact store entries in the contact store for that account are examined. If there remains an entry to be processed as determined in step 1702, then in step 1706, the next entry is selected for processing. In step 1708, the entry list is examined to see if the entry is for a no-source contact. If the contact has no source as determined at step 1708, all devices on the subscription list for that contact are processed. More specifically, it is checked in step 1710 whether all devices have been processed. If not, step 1714 selects the next device to process. In step 1718, a “subscription request” message is sent to the selected device. In step 1722, a message “The sender has no source of contact” is sent to the selected device. Processing returns to step 1710 to check if all devices have been processed. If all devices have been processed as determined at step 1710, processing returns to step 1702 to see if all contact store entries have been processed. Once all entries have been processed as determined at step 1702, the process ends at step 1704.

ステップ1708に戻って、コンタクトがステップ1708で判断されたように供給源なしではない場合、処理はステップ1712へ進み、ここで、エントリがそのアカウントにあるアイデンティティによって所有されているコンタクトのものかどうかを調べる。コンタクト情報がアイデンティティによって所有されている場合には、処理はステップ1702へ戻って全部のエントリを処理したかどうか調べる。   Returning to step 1708, if the contact is not sourceless as determined in step 1708, processing proceeds to step 1712 where the entry is for a contact owned by an identity in the account. Check out. If the contact information is owned by the identity, processing returns to step 1702 to see if all entries have been processed.

これ以外に、ステップ1712で、コンタクト情報がアイデンティティによって所有されていないと判断された場合、そのコンタクトについて購読リストにある全ての装置を処理する。更に詳しくは、ステップ1716で全部の装置を処理したかどうか調べる。違う場合、ステップ1720で、処理のために次の装置を選択する。ステップ1724で、「購読要求」メッセージを選択した装置へ送信する。処理はステップ1716へ戻って全部の装置を処理したかどうか調べる。ステップ1716で判断されたように全ての装置を処理したら、処理はステップ1702へ戻って全てのコンタクト・ストア・エントリを処理したか調べる。   In addition, if it is determined in step 1712 that the contact information is not owned by the identity, all devices on the subscription list for that contact are processed. More specifically, step 1716 checks whether all devices have been processed. If not, step 1720 selects the next device for processing. In step 1724, a “subscription request” message is sent to the selected device. Processing returns to step 1716 to check if all devices have been processed. Once all devices have been processed as determined at step 1716, processing returns to step 1702 to see if all contact store entries have been processed.

装置からアカウントが削除された時に実行される処理が図18Aと図18Bに図示してある。この処理はステップ1800で始まりステップ1802へ進んで、ここでそのアカウントのコンタクト・ストアにある全部のエントリを処理したかどうか調べる。ステップ1802で判断されたとおり全部のエントリが処理されていない場合、ステップ1806で次の未処理エントリが選択される。次に、ステップ1808で、エントリがそのアカウントに関連付けられたアイデンティティの一つによって所有されているかどうかを調べる。違う場合、処理はステップ1802へ戻って全部のエントリを処理したかどうか調べる。これ以外に、ステップ1808で、エントリがアイデンティティによって所有されていると分かった場合、ステップ1810でそのエントリの全ての購読リストを処理したかどうかを調べる。ステップ1810で判断されたように全部のリストが処理されていない場合、ステップ1812で次の未処理リストを処理するために選択する。   The processing performed when an account is deleted from the device is illustrated in FIGS. 18A and 18B. The process begins at step 1800 and proceeds to step 1802, where it is examined whether all entries in the account's contact store have been processed. If all entries have not been processed as determined in step 1802, the next unprocessed entry is selected in step 1806. Next, step 1808 checks to see if the entry is owned by one of the identities associated with the account. If not, the process returns to step 1802 to check whether all entries have been processed. Otherwise, if step 1808 determines that the entry is owned by the identity, step 1810 checks to see if all subscription lists for that entry have been processed. If the entire list has not been processed as determined at step 1810, then at step 1812, the next unprocessed list is selected for processing.

次に、ステップ1814で、選択したリストの全ての購読者を処理したか調べる。違う場合、リスト内の次の未処理購読者を選択する。処理はページ間接続1820と1824を経由してステップ1826へ進み、ここで、購読者エントリ内の装置リストを調べることにより、選択した購読者について全部の装置を処理したか調べる。違う場合、ステップ1828で、次の未処理装置を選択する。ステップ1830で、選択された装置が状態1、2又は3になっているかどうかを調べる。違う場合処理はステップ1826へ戻って処理すべき装置が更に残っているかどうかを調べる。   Next, in step 1814, it is checked whether all subscribers of the selected list have been processed. If not, select the next outstanding subscriber in the list. Processing proceeds to step 1826 via inter-page connections 1820 and 1824, where it is determined whether all devices have been processed for the selected subscriber by examining the device list in the subscriber entry. If not, in step 1828, the next unprocessed device is selected. Step 1830 checks to see if the selected device is in state 1, 2 or 3. If not, the process returns to step 1826 to check whether there are any more devices to be processed.

これ以外に、ステップ1830で、選択された装置が状態1、2又は3のいずれか一つの状態になっていると判断された場合、ステップ1832で、「装置削除」メッセージを選択された装置へ送信する。処理はステップ1826へ戻って処理すべき装置が更に残っているか調べる。ステップ1826で判断されたように、全部の装置を処理したら、処理はページ間接続1822と1818を経由してステップ1814へ戻り選択したリストに処理すべき購読者が更に残っているか調べる。ステップ1814で判断されたように全部の購読者を処理したら処理はステップ1810へ戻り処理すべき購読リストが未だ残っているかどうか調べる。   In addition, if it is determined in step 1830 that the selected device is in one of states 1, 2, or 3, a “device deletion” message is sent to the selected device in step 1832. Send. Processing returns to step 1826 to see if there are any more devices to process. Once all devices have been processed, as determined at step 1826, processing returns to step 1814 via interpage connections 1822 and 1818 to see if there are more subscribers to be processed in the selected list. If all the subscribers have been processed as determined in step 1814, the process returns to step 1810 to check whether there is still a subscription list to be processed.

ステップ1810で判断されたように全部の購読リストを処理したら、処理はステップ1802へ戻り処理すべきエントリが残っているかを調べる。ステップ1802で、全部のエントリを処理したことが判断されたら、処理はステップ1804で終了する。   Once all subscription lists have been processed as determined at step 1810, the process returns to step 1802 to see if there are any more entries to process. If it is determined in step 1802 that all entries have been processed, processing ends in step 1804.

前述の実施態様のソフトウェアによる実装は、例えばコンピュータで読み取り可能な媒体例えばディスケット、CD−ROM、ROMメモリ、又は固定ディスク等の有形媒体上に固定されるか、又は媒体上でモデム又はその他のインタフェース装置を経由してコンピュータ・システムへ転送可能な一連のコンピュータ命令を含む。媒体は光又はアナログ通信回線を含みこれに制限されない有形媒体であるか、又はマイクロ波、赤外線又はその他の伝送技術を含みこれに制限されない無線技術で実現される。媒体はインターネットでもあり得る。一連のコンピュータ命令は本発明に関して本明細書で前述した機能の全部又は一部を実現する。このようなコンピュータ命令は多くのコンピュータ・アーキテクチャ又はオペレーティング・システムで使用される多数のプログラミング言語で書くことができることは当業者には理解されよう。更に、このような命令は現在又は将来の、半導体、磁気、光又はその他のメモリ装置を含みこれに制限されない何らかのメモリ技術を用いて保存するか、又は現在又は将来の光、赤外線、マイクロ波、又はその他の伝送技術を含みこれに制限されない何らかの通信技術を用いて伝送することが可能である。このようなコンピュータ・プログラム製品は着脱可能な媒体に印刷又は電子化文書を伴って、例えばシュリンクラップ・ソフトウェア等として配布されたり、コンピュータ・システム例えばシステムROM又は固定ディスクへ導入済み、又はサーバ又は電子掲示板からネットワーク上例えばインターネット又はワールドワイド・ウェブで配布することができることを企図している。   A software implementation of the foregoing embodiments may be fixed on a tangible medium such as a computer readable medium such as a diskette, CD-ROM, ROM memory, or fixed disk, or a modem or other interface on the medium. Contains a series of computer instructions that can be transferred to the computer system via the device. The medium may be a tangible medium including but not limited to optical or analog communication lines, or implemented in wireless technology including but not limited to microwave, infrared or other transmission technologies. The medium can also be the Internet. The series of computer instructions implements all or part of the functionality previously described herein with respect to the present invention. Those skilled in the art will appreciate that such computer instructions can be written in a number of programming languages for use with many computer architectures or operating systems. Further, such instructions may be stored using any memory technology, including but not limited to current or future semiconductor, magnetic, optical or other memory devices, or current or future light, infrared, microwave, Alternatively, transmission may be performed using any communication technology including but not limited to other transmission technologies. Such computer program products are distributed on removable media with printed or digitized documents, for example as shrink wrap software, installed in computer systems such as system ROM or fixed disk, or server or electronic It is intended that it can be distributed from the bulletin board on the network, for example, on the Internet or the World Wide Web.

本発明の典型的実施態様を開示したが、本発明の精神と範囲から逸脱することなく本発明の利点の幾つかを実現する様々な変化や変更を成し得ることは当業者には明らかであろう。例えば、他の実装において、図示したものとは異なるプロトコルや変換を実行し得ることが当業者には明らかであろう。例えば特定の処理フローや図示したステップの順序、並びに本発明の概念へのその他の変更などのその他の態様は添付の請求の範囲で包含されることを意図している。   While exemplary embodiments of the present invention have been disclosed, it will be apparent to those skilled in the art that various changes and modifications can be made to realize some of the advantages of the present invention without departing from the spirit and scope of the invention. I will. For example, it will be apparent to those skilled in the art that other implementations may perform different protocols and transformations than those shown. Other aspects, such as, for example, a particular process flow, the order of steps shown, and other modifications to the inventive concepts are intended to be encompassed by the appended claims.

図1Aは、従来技術の分散コラボレーション・システムの略ブロック図である。 図1Bは、図1Aのコラボレータ・コンピュータの一つにあるシステム・データベースの更に詳細なブロック図である。FIG. 1A is a schematic block diagram of a prior art distributed collaboration system. FIG. 1B is a more detailed block diagram of a system database in one of the collaborator computers of FIG. 1A. 図2は、図1Bに図示したデータベースのアカウント・ストアの更に詳細なブロック図である。FIG. 2 is a more detailed block diagram of the database account store illustrated in FIG. 1B. 図3は、購読リストのコンタクト装置レコードの各種状態と各種動作により引き起こされる状態間での遷移を示す状態図である。FIG. 3 is a state diagram showing transitions between various states of contact device records in the subscription list and states caused by various operations. 図4は、コンタクト情報をコンタクト・ストアへ追加する例示的な処理のステップを示すフローチャートである。FIG. 4 is a flowchart illustrating exemplary process steps for adding contact information to a contact store. 図5は、コンタクト情報をコンタクト・ストアから除去する例示的処理のステップを示すフローチャートである。FIG. 5 is a flow chart illustrating steps of an exemplary process for removing contact information from the contact store. 図6は、コンタクト・ストア内のコンタクト情報を更新する例示的処理のステップを示すフローチャートである。FIG. 6 is a flowchart illustrating exemplary process steps for updating contact information in a contact store. 図7は、購読リストからコンタクト装置を削除する例示的な処理のステップを示すフローチャートである。FIG. 7 is a flowchart illustrating exemplary process steps for deleting a contact device from a subscription list. 図8は、定期的チェックを実行して供給源なしコンタクトがまだ有効かどうか判定する例示的な処理のステップを示すフローチャートである。FIG. 8 is a flowchart illustrating exemplary process steps for performing periodic checks to determine if a sourceless contact is still valid. 図9Aと図9Bは、並置した場合コンタクトから受信したコンタクト伝播メッセージを処理するための例示的処理のステップを示すフローチャートを構成する。FIG. 9A and FIG. 9B constitute a flowchart illustrating exemplary processing steps for processing a contact propagation message received from a contact when juxtaposed. 図10は、購読要求メッセージを処理する例示的なサブルーチンのステップを示すフローチャートである。FIG. 10 is a flowchart illustrating the steps of an exemplary subroutine for processing a subscription request message. 図11は、要求拒否メッセージを処理する例示的サブルーチンのステップを示すフローチャートである。FIG. 11 is a flowchart illustrating the steps of an exemplary subroutine for processing a request rejection message. 図12は、送信側が供給源を持たないと言うメッセージを処理するための例示的サブルーチンのステップを示すフローチャートである。FIG. 12 is a flowchart illustrating the steps of an exemplary subroutine for processing a message that the sender has no source. 図13は、コンタクト更新済みと言うメッセージを処理するための例示的サブルーチンのステップを示すフローチャートである。FIG. 13 is a flow chart showing the steps of an exemplary subroutine for processing a message saying contact updated. 図14は、ピン(ping)メッセージを処理する例示的サブルーチンのステップを示すフローチャートである。FIG. 14 is a flowchart illustrating the steps of an exemplary subroutine for processing a ping message. 図15は、ポン(pong)メッセージを処理する例示的サブルーチンのステップを示すフローチャートである。FIG. 15 is a flowchart illustrating the steps of an exemplary subroutine for processing a pong message. 図16は、装置消去メッセージを処理する例示的サブルーチンのステップを示すフローチャートである。FIG. 16 is a flowchart illustrating the steps of an exemplary subroutine for processing a device erase message. 図17は、アカウントが装置へインポートされた場合にコンタクト・ストア・エントリを処理する例示的サブルーチンのステップを示すフローチャートである。FIG. 17 is a flowchart illustrating the steps of an exemplary subroutine for processing a contact store entry when an account is imported into the device. 図18Aと図18Bは、並置した場合に装置からアカウントが削除された場合に実行される例示的処理を示すフローチャートである。18A and 18B are flowcharts illustrating exemplary processing that is performed when an account is deleted from a device when juxtaposed.

Claims (20)

コラボレーション・コンピュータが実行されたときに、コラボレーション・コンピュータに各ステップを実施させるコンピュータ実装方法であって、前記方法は、ネットワークにより接続された複数のコラボレーション・コンピュータを有し、各々のコラボレーション・コンピュータはローカル・データ・ストアを備え、前記ローカル・データ・ストアは、複数のエントリを有し、前記エントリのそれぞれは、他のコラボレーション・コンピュータについての情報を格納し、前記コラボレーション・コンピュータは、前記ローカル・データ・ストアを同期させておくためにデータ変更要求を交換することを特徴とする分散型コラボレーション・システムにおいてコンタクト情報を格納し管理するための方法であって、
(a)あるコンタクトについてのコンタクト情報をコラボレーション・コンピュータで受信した際に、前記コンタクト情報とユニークなコンタクト参照とをそのコラボレーション・コンピュータに関連付けられた前記ローカル・データ・ストア内の単一のコンタクト・ストアに格納するステップであって、前記単一のコンタクト・ストア内の各々のコンタクトに関するコンタクト情報は、ユニークなコンタクト参照により識別されるステップと
(b)前記コンタクト情報の代わりに複数のエントリの各々に前記コンタクト参照を格納するステップと
(c)出力されるデータ変更要求が、前記コラボレーション・コンピュータにより生成されたときに、前記ローカル・データ・ストアからのユニークなコンタクト参照を使用して、前記単一のコンタクト・ストアからコンタクト情報を取り出すステップであって、前記出力されるデータ変更要求コンタクト情報を含むステップと
を含むことを特徴とする方法。
A computer-implemented method for causing a collaboration computer to perform each step when the collaboration computer is executed, the method comprising a plurality of collaboration computers connected by a network, each collaboration computer comprising: A local data store, the local data store having a plurality of entries, each of the entries storing information about other collaboration computers, wherein the collaboration computer A method for storing and managing contact information in a distributed collaboration system characterized by exchanging data change requests to keep the data store synchronized, comprising:
(A) when contact information for a contact is received at a collaboration computer, the contact information and a unique contact reference are associated with a single contact in the local data store associated with the collaboration computer. a storing in the store, the contact information for each contact in said single contact store, the steps identified by unique contact reference,
(B) storing the contact reference in each of a plurality of entries instead of the contact information;
(C) When an output data change request is generated by the collaboration computer, it uses the unique contact reference from the local data store to retrieve contact information from the single contact store. the method comprising responsible to extract the data change request that is the output is a step including contact information
A method comprising the steps of:
(d)あるコンタクトについてのコンタクト情報をコンタクトからコラボレーション・コンピュータで受信した際に、前記コンタクト情報の更新を要求するメッセージをそのコンタクトに送信するステップを更に含む
ことを特徴とする請求項1に記載の方法。
2. The method according to claim 1, further comprising the step of: (d) transmitting a message requesting update of the contact information to the contact when the contact information about the contact is received from the contact by the collaboration computer. the method of.
各々のコラボレーション・コンピュータは前記コラボレーション・コンピュータのユーザに対応する少なくとも一つのアカウントについてのアイデンティティを有することを特徴とする請求項2に記載の方法であって、前記方法は、
(e)前記コンタクト・ストア内に前記アイデンティティについてのコンタクト情報を配置するステップと
を更に含むことを特徴とする請求項2に記載の方法。
The method of claim 2, wherein each collaboration computer has an identity for at least one account corresponding to a user of the collaboration computer.
(E) The method of claim 2, wherein the further comprising the steps of placing the contact information for the identity in the contact store.
前記メッセージが前記アイデンティティについての前記コンタクト情報を含むことを特徴とする請求項3に記載の方法。   The method of claim 3, wherein the message includes the contact information for the identity. (f)メッセージ受信時に前記コンタクトは前記コンタクトによって使用されるコラボレーション・コンピュータに関連付けられた前記ローカル・データ・ストア内のコンタクト・ストアに前記アイデンティティのための前記コンタクト情報を格納する
ことを更に含むことを特徴とする請求項4に記載の方法。
(F) further comprising, upon receipt of the message, the contact stores the contact information for the identity in a contact store in the local data store associated with a collaboration computer used by the contact. The method according to claim 4.
(g)第1の供給源からコンタクト情報を受信した時に前記コンタクト・ストア内に前記コンタクト情報を格納するステップと、
(h)前記格納したコンタクト情報内に前記コンタクト情報の供給源のリストを作成するステップと、
(i)前記コンタクト情報を前記第1の供給源とは異なる第2の供給源からコラボレーション・コンピュータで受信した時に前記供給源のリストへ供給源を追加するステップと、
(j)前記第1と第2の供給源の一方からコンタクト情報を除去する要求を前記コラボレーション・コンピュータで受信した時に前記供給源のリストから供給源を除去するステップ
を更に含むことを特徴とする請求項5に記載の方法。
(G) storing said contact information to said contact in a store when the received contact information from the first source,
(H) a step of creating a list of sources of the contact information in the storage and contact the information,
(I) a step of adding the source to the list of sources when received in collaboration computer from a different second source is said contact information the first source,
(J) and further comprising the step of removing the source from the list of the sources of the first and request the removal of one contact information from a second source when received by the collaboration computer The method according to claim 5.
(k)前記供給源のリストが空になって、かつ、前記アイデンティティについての前記コンタクト情報が前記コンタクトによって使用されるコラボレーション・コンピュータに関連付けられた前記ローカル・データ・ストア内の前記コンタクト・ストアから削除されたときに前記コンタクト・ストアから前記コンタクト情報を削除するステップを更に含むことを特徴とする請求項6に記載の方法。 (K) from the contact store in the local data store where the list of sources is empty and the contact information for the identity is associated with a collaboration computer used by the contact The method of claim 6, further comprising the step of deleting the contact information from the contact store when deleted. 各々のコラボレーション・コンピュータはこれに関連付けられた前記ローカル・データ・ストア内に少なくとも一つのアカウント領域を有し、ステップ(a)は
(a1)前記アカウント領域内に前記コンタクト情報とユニークなコンタクト参照とを格納するステップ
を含むことを特徴とする請求項1に記載の方法。
Each collaboration computer has at least one account area in the local data store associated therewith, and step (a) includes: (a1) the contact information and a unique contact reference in the account area; The method of claim 1 including the step of storing:
(d)前記コラボレーション・コンピュータから受信したメッセージに応答して前記コンタクト情報を更新し削除するステップ
を更に含むことを特徴とする請求項1に記載の方法。
And (d) of claim 1, in response to a message received from the collaboration computer, characterized in that it further comprises a step of deleting to update the contact information.
前記コンタクト情報はこれに関連付けられた状態を有し、かつ、ステップ(d)は前記メッセージに応答して前記状態を変更するステップ
を含むことを特徴とする請求項9に記載の方法。
The method of claim 9, wherein the contact information has a state associated therewith, and step (d) includes the step of changing the state in response to the message.
コラボレーション・コンピュータが実行されたときに、コラボレーション・コンピュータに各手段を実施させる装置であって、前記装置は、ネットワークにより接続された複数のコラボレーション・コンピュータを有し、各々のコラボレーション・コンピュータはローカル・データ・ストアを備え、前記ローカル・データ・ストアは、複数のエントリを有し、前記エントリのそれぞれは、他のコラボレーション・コンピュータについての情報を格納し、前記コラボレーション・コンピュータは、前記ローカル・データ・ストアを同期させておくためにデータ変更要求を交換することを特徴とする分散型コラボレーション・システムにおいてコンタクト情報を格納し管理するための装置であって、
あるコンタクトについてのコンタクト情報をコラボレーション・コンピュータで受信した時に動作してそのコラボレーション・コンピュータに関連付けられた前記ローカル・データ・ストア内の単一のコンタクト・ストアに前記コンタクト情報とユニークなコンタクト参照とを格納し、前記単一のコンタクト・ストア内の各々のコンタクトに関するコンタクト情報は、ユニークなコンタクト参照により識別されるための手段と、
前記コンタクト情報の代わりに前記複数のエントリの各々に前記コンタクト参照を格納するための手段と、
前記ローカル・データ・ストアを使用して、前記コラボレーション・コンピュータで、出力されるデータ変更要求を生成し、前記ローカル・データ・ストア内のユニークなコンタクト参照を使用して、前記単一のコンタクト・ストアからコンタクト情報を取り出し、前記出力されるデータ変更要求にコンタクト情報を格納する手段と
を含むことを特徴とする装置。
An apparatus for causing a collaboration computer to execute each means when the collaboration computer is executed. The apparatus includes a plurality of collaboration computers connected by a network, and each collaboration computer is a local computer. A data store, wherein said local data store has a plurality of entries, each of said entries storing information about other collaboration computers, said collaboration computer comprising said local data store An apparatus for storing and managing contact information in a distributed collaboration system characterized by exchanging data change requests to keep the store synchronized,
Operates when contact information about a contact is received at a collaboration computer and displays the contact information and a unique contact reference in a single contact store within the local data store associated with the collaboration computer. storage and contact information for each contact in said single contact store includes means for being identified by a unique contact reference,
Means for storing the contact reference in each of the plurality of entries instead of the contact information;
Using the local data store, the collaboration computer generates an output data change request and uses the unique contact reference in the local data store to generate the single contact Means for retrieving contact information from the store and storing the contact information in the output data change request.
あるコンタクトについてのコンタクト情報をあるコンタクトからコラボレーション・コンピュータで受信した時に動作して、前記コンタクト情報の更新を要求するメッセージをそのコンタクトに送信するための手段
を更に含むことを特徴とする請求項11に記載の装置。
12. A means for operating upon receiving contact information about a contact from a contact at a collaboration computer, further comprising means for sending a message requesting an update of the contact information to the contact. The device described in 1.
各々のコラボレーション・コンピュータは前記コラボレーション・コンピュータのユーザに対応する少なくとも一つのアカウントについてのアイデンティティを有することを特徴とする請求項12に記載の装置であって、前記装置は
前記コンタクト・ストア内に前記アイデンティティについてのコンタクト情報を配置するための手段
を更に含むことを特徴とする請求項12に記載の装置。
13. The apparatus of claim 12, wherein each collaboration computer has an identity for at least one account corresponding to a user of the collaboration computer, wherein the apparatus is in the contact store. The apparatus of claim 12, further comprising: means for locating contact information about the identity.
前記メッセージは前記アイデンティティについての前記コンタクト情報を含むことを特徴とする請求項13に記載の装置。   The apparatus of claim 13, wherein the message includes the contact information for the identity. 前記コンタクトによって使用されるコラボレーション・コンピュータでメッセージを受信した時に動作して前記コンタクトによって使用される前記コラボレーション・コンピュータに関連付けられた前記ローカル・データ・ストア内のコンタクト・ストア内に前記アイデンティティについての前記コンタクト情報を格納するための手段
を更に含むことを特徴とする請求項14に記載の装置。
The identity for the identity in a contact store in the local data store that operates when receiving a message at a collaboration computer used by the contact and is associated with the collaboration computer used by the contact The apparatus of claim 14, further comprising means for storing contact information.
第1の供給源からコンタクト情報を受信した時に前記コンタクト・ストア内に前記コンタクト情報を格納するための手段と、
前記格納したコンタクト情報内に前記コンタクト情報の供給源のリストを作成するための手段と、
前記コンタクト情報を前記第1の供給源とは異なる第2の供給源からコラボレーション・コンピュータで受信した時に前記供給源のリストへ供給源を追加するための手段と、
前記第1と第2の供給源の一方からコンタクト情報を除去する要求を前記コラボレーション・コンピュータで受信した時に前記供給源のリストから供給源を除去するための手段と、
を更に含むことを特徴とする請求項15に記載の装置。
Means for storing the contact information in the contact store when receiving contact information from a first source;
Means for creating a list of sources of the contact information in the stored contact information;
Means for adding a source to the list of sources when the contact information is received at a collaboration computer from a second source different from the first source;
Means for removing a source from the list of sources when a request to remove contact information from one of the first and second sources is received at the collaboration computer;
The apparatus of claim 15 further comprising:
前記供給源のリストが空になって、かつ、前記アイデンティティについての前記コンタクト情報が前記コンタクトによって使用されるコラボレーション・コンピュータに関連付けられた前記ローカル・データ・ストア内の前記コンタクト・ストアから削除されたときに前記コンタクト・ストアから前記コンタクト情報を削除するための手段
を更に含むことを特徴とする請求項16に記載の装置。
The list of sources is emptied and the contact information for the identity has been deleted from the contact store in the local data store associated with the collaboration computer used by the contact The apparatus of claim 16, further comprising means for sometimes deleting the contact information from the contact store.
各々のコラボレーション・コンピュータはこれに関連付けられた前記ローカル・データ・ストア内に少なくとも一つのアカウント領域を有し、かつ、単一のコンタクト・ストア内に前記コンタクト情報とユニークなコンタクト参照とを格納するための前記手段は前記アカウント領域に前記コンタクト情報とユニークなコンタクト参照とを格納するための手段を含む
ことを特徴とする請求項11に記載の装置。
Each collaboration computer has at least one account area in the local data store associated with it and stores the contact information and a unique contact reference in a single contact store The apparatus of claim 11, wherein the means for storing includes means for storing the contact information and a unique contact reference in the account area.
前記コラボレーション・コンピュータから受信したメッセージに応答して前記コンタクト情報を更新し削除するための手段
を更に含むことを特徴とする請求項11に記載の装置。
The apparatus of claim 11, further comprising means for updating and deleting the contact information in response to a message received from the collaboration computer.
前記コンタクト情報はこれに関連付けられた状態を有し、かつ、前記コンタクト情報を更新し削除するための前記手段は前記メッセージに応答して前記状態を変更するための手段を含む
ことを特徴とする請求項19に記載の装置。
The contact information has a state associated therewith, and the means for updating and deleting the contact information includes means for changing the state in response to the message. The apparatus of claim 19.
JP2004003355A 2004-01-08 2004-01-08 Method and apparatus for storing and managing contacts in a distributed collaboration system Expired - Lifetime JP4681812B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004003355A JP4681812B2 (en) 2004-01-08 2004-01-08 Method and apparatus for storing and managing contacts in a distributed collaboration system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004003355A JP4681812B2 (en) 2004-01-08 2004-01-08 Method and apparatus for storing and managing contacts in a distributed collaboration system

Publications (2)

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

Family

ID=34818296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004003355A Expired - Lifetime JP4681812B2 (en) 2004-01-08 2004-01-08 Method and apparatus for storing and managing contacts in a distributed collaboration system

Country Status (1)

Country Link
JP (1) JP4681812B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10063501B2 (en) 2015-05-22 2018-08-28 Microsoft Technology Licensing, Llc Unified messaging platform for displaying attached content in-line with e-mail messages
US10216709B2 (en) 2015-05-22 2019-02-26 Microsoft Technology Licensing, Llc Unified messaging platform and interface for providing inline replies

Families Citing this family (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

Citations (1)

* 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

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU9283801A (en) * 2000-09-20 2002-04-02 Ants.Com., Inc. Automated system and method for downloading, updating and synchronizing contact information

Patent Citations (2)

* 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 (en) * 1999-07-19 2003-02-12 グルーブ・ネットワークス・インコーポレイテッド Method and apparatus for activity-based collaboration by a computer system with a dynamics manager

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10063501B2 (en) 2015-05-22 2018-08-28 Microsoft Technology Licensing, Llc Unified messaging platform for displaying attached content in-line with e-mail messages
US10216709B2 (en) 2015-05-22 2019-02-26 Microsoft Technology Licensing, Llc Unified messaging platform and interface for providing inline replies
US10360287B2 (en) 2015-05-22 2019-07-23 Microsoft Technology Licensing, Llc Unified messaging platform and interface for providing user callouts

Also Published As

Publication number Publication date
JP2005196581A (en) 2005-07-21

Similar Documents

Publication Publication Date Title
US8601083B1 (en) Content sharing with limited cloud storage
US8510404B2 (en) Peer to peer Synchronization system and method
US7296237B2 (en) Data replication system and method
US8032559B2 (en) Contact management update protocols
US8826375B2 (en) Rich media collaboration system
TW571541B (en) Electronic messaging system method and apparatus
US9661063B2 (en) Automated integration of content from multiple information stores using a mobile communication device
US6990578B1 (en) Method and apparatus for encrypting electronic messages composed using abbreviated address books
JP2008533879A (en) Communication method and system comprising identity information and directory management
JP2004164638A (en) Safe resource management method and system
WO2013170374A1 (en) Event-triggered release through third party of pre-encrypted digital data from data owner to data assignee
US20080317248A1 (en) Information exchange device
US10999370B1 (en) Syncing and sharing data across systems
TWI511064B (en) System and method for a global directory service
KR100757976B1 (en) System and method for user interaction in a peer-to-peer environment
US8656031B2 (en) Dialog communication system, dialog communication method and dialog communication program
KR20130064714A (en) Asynchronous, passive knowledge sharing system and method
JP4681812B2 (en) Method and apparatus for storing and managing contacts in a distributed collaboration system
CA2452893C (en) Method and apparatus for storing and managing contacts in a distributed collaboration system
KR100996819B1 (en) Method and apparatus for storing and managing contacts in a distributed collaboration system
IL159337A (en) Method and apparatus for storing and managing contacts in a distributed collaboration system
EP4171075A1 (en) Method for synchronization of contact information
US8718236B1 (en) Systems and methods for secure on-line repositories
KR102605368B1 (en) Method and server for verifying authenticity of mail
JP2005215797A (en) Terminal device, server, groupware system, groupware method, and groupware program

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