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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 88
- 238000012508 change request Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims 2
- 238000012545 processing Methods 0.000 description 72
- 230000008569 process Effects 0.000 description 66
- 238000012217 deletion Methods 0.000 description 20
- 230000037430 deletion Effects 0.000 description 20
- 230000007704 transition Effects 0.000 description 17
- 230000008859 change Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 2
- 240000002853 Nelumbo nucifera Species 0.000 description 2
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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
コラボレーション・ソフトウェアは装置102、104、106に各々トランシーバ114、116、118等のトランシーバも作成する。各トランシーバはデルタと呼ばれるデータ変更要求を作成し矢印122、124、126によって模式的に示してあるようにこれをコラボレータ間で送信する責任がある。典型的には、これらのデータ変更要求は図1Aに図示したようにインターネット120上で送信されるが、例えばLANネットワーク等の別のネットワーク上で送信することもできる。データ変更要求はシステムにコラボレータを追加・除去したり、またデータ・コピーの同期をとるために各々のコラボレーション装置でローカル・データ・コピーを更新するなどの多数の目的で使用される。
The collaboration software also creates transceivers such as
前述のコラボレーション・ソフトウェアを使用するため、ユーザは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
更に詳しくは、システム・データベース128はアカウント・データベース130を含み、これにはアカウントに関するユーザのプライベートなデータが格納されている。例えば、あるユーザは多数のアイデンティティ、例えばオフィスで使用する職業上のアイデンティティと、画像や休暇の計画を共有するような目的で家族や友人と使用するパーソナル・アイデンティティ等を持つことがある。アカウント・データはこれらのアイデンティティのリスト134と各アイデンティティについてのデータ、アカウントに関連付けられた共有空間のリストを含む。アカウント・データベースは、ユーザがメンバになっている各共有空間に関連している別々のデータ・ストアを含み、そのうちのデータ・ストア148、150、152が図示してある。データ・ストア148、150、152は共有空間に関連したローカルなデータ・コピーを含みその共有空間に関連するその他の情報を含むことがある。アカウント・データベース130は更にアカウント内の各アイデンティティについてのコンタクト情報と他のコンタクトについてのコンタクト情報を格納するコンタクト・ストア140を含む。最後に、アカウント・データベースは他の情報、例えばインスタント・メッセージや招待を格納するメッセージ・ストア154等も含む。
More particularly, the
各アイデンティティのデータは公共的に利用されることのないプライベート部分156と公共的に利用することのできる公共部分158であるコンタクト情報とを含む。プライベート部分156はそのアイデンティティをユニークに同定するURL等とそのアイデンティティがメッセージを暗号化し署名するのに使用する公開鍵/秘密鍵ペアの暗号化・署名秘密鍵等とを含む。公共コンタクト情報158はコンタクトをユニークに同定するコンタクトURLを含み一般にこれはそのアイデンティティのアイデンティティURLと同一である。コンタクト情報はまたそのコンタクトのシーケンス番号も含む。シーケンス番号はコンタクトが作成された時点でゼロにセットされる整数である。コンタクトのシーケンス番号はそのコンタクト情報に新規装置が追加される時には所定の大きな数(例えば1,000)だけ増加(以下、インクリメント)される。コンタクトのシーケンス番号(以下、コンタクト・シーケンス番号)はコンタクト情報が何らかの別の理由で変更される(例えばコンタクトのvCard情報が更新された)時には所定の小さい数(例えば1)だけインクリメントされる。全てのコンタクト情報はアイデンティティの秘密鍵で署名されるので、コンタクト情報を「所有している」アイデンティティだけがその情報を更新することができる点に注意する。更に、コンタクト情報はアカウントの装置の一つだけでしか更新することができない。
Each identity data includes a
コンタクト情報は更にコンタクトの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,
本発明の原理によれば、そのアカウントのアイデンティティに対応するコンタクト・ストア・エントリ(例えば、コンタクト・ストア・エントリ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
購読装置エントリの装置状態フィールド228は購読装置が置かれる6つの状態のうちの一つを識別する装置状態番号を保持する。6種類の装置状態とその定義は次の通りである。
The
状態:定義
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
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
devices
device1 DeviceURL State NameOnly PingCount
device2 DeviceURL State NameOnly PingCount
...
subscription2 contactURL
...
sources
source_1 URL
source_2 URL
deleted flag
entry_2
...
コンタクト・ストア200はアカウントに関連したコンタクト全部について集中型(アカウントごと)のストレージ(storage)を提供しているので、パーソナル・コンタクト・リスト、メッセージ・ストア等の様々な場所でコンタクトのコピーが消費する空間の量を有意に減少させる。更に、コンタクト・ストア200はいかなるコンタクト情報をも更新する単一の点を提供する。更にコンタクト・ストア200によりコンタクト・ストアのクライアントはコンタクト・ストア内のいかなるコンタクトにも任意のデータを関連付けることができる。そのデータへの変更はオプションでアカウント装置の全部へ配布できる。この任意のデータを用いてコンタクトにコメントを追加したり、コンタクトになりすますこと(spoofing)を防止することができる。
コンタクト・ストア200はエンジンではないが、アカウントに関連付けられた装置の全部へコンタクトに関連付けられた何らかのデータへの変更を配布するために、別のエンジン例えばアカウント・エンジン又は共有空間メンバ・エンジン等によって維持することができるローカル・ストレージ(local storage)である。この配布はアカウント・ストアに格納されコンタクト・ストア内のコンタクトに関連したプロパティ・リストを取得することにより行われる。このプロパティ・リストはそのコンタクトについてのプロパティ・リスト・プロバイダにより提供される。例えば、アカウント・エンジンはこのようなプロバイダであり得る。つまり、コンタクト情報のストレージはローカルに為されるが、関連データはアカウント装置の全部にわたって透過的に伝播できる。
本発明の原理によれば、自分のデータ・ストア(例えばメッセージ・ストアやメンバ・マネージャ)にあるコンタクト情報のコピーをそれまで保守していた全部のエンジンを変更して、それらのデータ・ストア内に完全なコンタクト情報の代わりにコンタクトURLを格納する。データ・ストアはURLだけを含むが、エンジンによって作成されたデータが他の共有空間メンバへの伝播のため共有空間シリアル化の一環としてシリアル化される際には、データ内のコンタクトURLを用いてコンタクト・ストアから実際のコンタクト情報を取得し、そのコンタクト情報はシリアル化したデータに含まれている。逆に、別の共有空間メンバから受信したデータを共有空間非シリアル化の一環として非シリアル化する際には、非シリアル化されたデータ内にあるコンタクト情報をコンタクト・ストアに追加し、関連付けられたコンタクトURLだけを共有空間データ・ストアに格納する。 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
ポン(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
次に、ステップ408で、コンタクトに関係する全ての装置がアイデンティティのアカウント・アイデンティティの全部に関連付けられた購読リストに追加される。各々の追加された装置の状態変数の値は状態2にセットされる。次に、ステップ416で、情報をコンタクト・ストアへ追加しているコンタクトの装置の各々へアイデンティティによって購読要求メッセージが送信され、アイデンティティがコンタクトの購読リストへ追加され、これによって購読を双方向にする。処理はステップ420で終了する。
Next, at
これ以外に、ステップ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
これ以外に、ステップ410で、コンタクト・レコードが削除にマークされていないと判断された場合、アイデンティティの購読リストにある各装置の状態変数の値は状態3から状態1へ変更される。この動作は図3に示した通り状態300と状態304の間の状態遷移314に相当する。次に、ステップ416で、購読要求メッセージが、情報をコンタクト・ストアへ追加しようとしているコンタクトの装置の各々へアイデンティティによって送信されアイデンティティがコンタクトの購読リストへ追加され、これによって購読を双方向にする。処理はステップ420で終了する。
Otherwise, if it is determined at
図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
これ以外に、ステップ504で、全てのコンタクト装置が処理されていないと判断された場合、ステップ506で、次の装置に関連した状態変数の値が、装置が状態1又は状態2になっていることを示しているかどうか、チェックを行う。装置が状態1又は状態2になっていない場合、処理はステップ504に戻り、ここで処理すべき追加の装置が残っているかどうかを調べる。
Otherwise, if it is determined in
次の装置が状態1又は状態2になっていると、ステップ506で判定された場合、処理はステップ508に進み、ここで「送信者はコンタクトの供給源を持たない」と言うメッセージが装置に関連付けられたコンタクトへ送信される。このメッセージはコンタクトがアイデンティティのコンタクト・ストア内で供給源なしになったことを示す。アイデンティティのコンタクト情報が受信者であるコンタクトのコンタクト・ストア内で供給源なしになった場合、両者はそれらの購読リストから他方の名前を削除できコンタクト・ストア内で他方のコンタクトを削除されたものとしてマークすることができる。
If the next device is in
次に、ステップ510で、状態1になっている全装置について、装置に関連付けられた状態変数の値が全部のアカウント・アイデンティティにある購読リスト内で1から3へ変更される。この動作は図3の状態300から状態304への状態遷移312に相当する。次に、ステップ512で、状態2になっている全ての装置がアイデンティティの購読リストから削除される。この動作は図3において状態302から状態306への状態遷移316に相当する。更に、状態5になっている全ての装置がアイデンティティの購読リストから削除される。この動作は図3に置いて状態308から状態310への状態遷移330に相当する。処理はステップ514で終了する。各装置を削除する際に図7に示してあり後述する処理が実行されることに注意する。
Next, at
図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
これ以外に、ステップ602で、アイデンティティによって所有されていないコンタクト情報へのコンタクト情報変更が行われていることの判定を行い、処理はステップ604へ進み、ここで更新が別のコンタクトから受信した「コンタクト更新」メッセージによるものかどうかの判定を行う。更新がこのような更新メッセージの結果である場合には処理はステップ614で終了する。
In addition, in
更新が到着した更新メッセージの結果ではない場合、ステップ606で、新しいコンタクト・シーケンス番号がコンタクト・ストア内のコンタクト・レコードで記録されている現在のシーケンス番号より大きいかどうか(又は新しいコンタクト・シーケンス番号が現在のシーケンス番号と等しい場合には格納されたコンタクトが異なるか)を調べるチェックを行う。新しいシーケンス番号が現在のシーケンス番号より大きくないか、又は格納されたコンタクトが異なる場合、処理はステップ614で終了する。しかし、新しいシーケンス番号が現在のシーケンス番号より大きく格納されたコンタクトが同一の場合には、ステップ610で、コンタクト情報の更新を要求しているコンタクトへ購読要求メッセージを送信する。ステップ612で、「送信者はコンタクトの供給源を持たない」と言うメッセージが状態3になっているコンタクトの購読リストにある全部の装置へ送信される。処理はステップ614で終了する。
If the update is not the result of an incoming update message, then at
図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
図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
ステップ806で、処理すべき装置が更に残っていると判断された場合、処理はステップ808へ進み、ここで次の装置状態をチェックする。次の装置がその装置に関連付けられた状態変数の値で示される状態3になっていなければ、処理はステップ806へ戻りここで処理すべき装置が更に残っているかどうかを調べるチェックを行う。これ以外に、ステップ808で、調べている装置が状態3にあると判断された場合、処理はステップ810へ進み、ここで、装置に関連付けられたピンカウント(PingCount)変数をインクリメントする。次に、ステップ812で、インクリメントしたピンカウント変数の値が所定の限界、例えば4より大きいかどうかの判定を行う。ピンカウント変数の値が所定の限界より小さいか又は等しい場合には、ステップ816で、ピン・メッセージを装置へ送信する。装置がアクティブな場合、この装置はピン・メッセージの受信時にポン・メッセージを返す。処理はステップ806へ戻り更にコンタクトを処理する必要があるかどうかを調べる。
If it is determined in
しかし、ステップ812で、ピンカウント変数値が所定の限界を越えていた場合、ステップ814で装置は全てのアカウント・アイデンティティの購読リストから削除される。処理はステップ806へ戻り更に処理すべきコンタクトが残っているかどうかを調べる。
However, if, at
図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
これ以外に、ステップ902で、初期チェックに合格した場合、メッセージを調べて受信したメッセージの形式を決定する。ステップ904でチェックを行いメッセージが購読要求メッセージかどうかを調べる。そうなら、購読要求メッセージ・ルーチン処理906を実行する。
In addition, if the initial check passes in
メッセージが購読要求メッセージでない場合、処理はステップ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
メッセージが要求拒否メッセージではない場合、処理はステップ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
メッセージが送信者はコンタクトの供給源なしと言うメッセージではない場合、処理はステップ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
メッセージがコンタクト更新済みメッセージではない場合、処理はステップ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
メッセージがピン・メッセージではない場合、処理はページ間接続924と928を通ってステップ932へ進み、ここでメッセージがポン・メッセージかどうかを調べる。そうなら、ポン・メッセージ・ルーチン処理934を実行する。
If the message is not a ping message, processing proceeds to step 932 through
最後に、メッセージがポン・メッセージではない場合、これは装置削除メッセージのはずであるから装置削除メッセージ・ルーチン処理936を実行する。いずれの場合も、処理はステップ938で終了する。
Finally, if the message is not a Pong message, it should be a device delete message, so device delete
購読要求メッセージ・サブルーチン906処理が図10に更に詳細に図示してある。この処理はステップ1000で始まってステップ1002へ進み、ここで要求側に対して購読が許可されているか調べる。前述したように、ユーザ・インタフェース選択を提供してアイデンティティが所有者のアイデンティティ情報に対する購読更新に関する許可をセットすることができる。これらの許可はステップ1002でチェックされてメッセージ送信者がコンタクト情報更新を購読する許可を持っているかどうか調べる。
The subscription
許可によって送信者が更新を購読できない場合、ステップ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
これ以外に、ステップ1002で決定したように許可によって送信者が購読を許可する場合、処理はステップ1006へ進み、ここで送信者のコンタクト情報が受信者のコンタクト・ストアに存在するかどうかの判定を行う。コンタクト情報がコンタクト・ストア内にない場合、ステップ1008で、コンタクト情報がコンタクト・ストアへ追加される。処理は次にステップ1020へ進み、ここで送信者の装置が受信者の購読リストへ追加され状態変数が状態3にセットされる。サブルーチンはステップ1022へ戻る。
Otherwise, if the sender allows the subscription by permission as determined in
ステップ1006でコンタクト情報がすでに受信者のコンタクト・ストアに存在すると判断された場合、ステップ1012で、チェックを行ってコンタクトが削除にマークされているかどうかを調べる。そうならステップ1016で、コンタクト・レコードが削除マークを解除され処理はステップ1020へ進み、ここで送信者の装置が受信者の購読リストへ追加されて状態変数の値が状態3にセットされる。サブルーチンはステップ1022に戻る。この動作は図3に図示した状態4(306)から状態3(304)への遷移318に相当する。
If it is determined at
これ以外に、ステップ1012でコンタクトが削除にマークされていないと判断された場合、処理はステップ1014へ進み、ここで全部のアカウント・アイデンティティについて、送信者のコンタクト装置に対応する購読リスト内の状態変数の値が2から1へ、又は5から1へ、変更される。これらの動作は各々状態302から状態300への状態遷移325と、状態308から状態300への状態遷移322に相当する。次に、ステップ1018で、送信者側装置のピン・カウンタが全部のアカウント・アイデンティティでゼロにセットされる。サブルーチンは次にステップ1022に戻る。
Otherwise, if it is determined in
要求拒否メッセージ処理サブルーチン910が図11に更に詳細に図示してある。この処理はステップ1100で始まりステップ1102へ進み、ここでメッセージ送信者のコンタクト情報が受信者のコンタクト・ストアに存在するかどうかの判定を行う。この情報がコンタクト・ストアに存在しない場合にはサブルーチンはステップ1106へ戻る。
The request rejection
これ以外で、ステップ1102で送信者のコンタクト情報がコンタクト・ストアに存在していると判断された場合、送信者の装置の全部がアカウント・アイデンティティの各々で処理される。第一に、ステップ1104で、チェックを行い送信者について処理すべき装置レコードが未だ残っているかを調べる。処理すべき装置レコードが残っている場合には、ステップ1108で、チェックを行って処理すべき次の装置レコードにある状態変数の値が1か又は2かを調べる。状態変数の値が1又は2の場合、処理はステップ1110へ進みここで全てのアカウント・アイデンティティについて受信者の購読リストにある送信者の装置レコードでの状態変数の値を5に変更する。この動作は図3の状態300から状態308への状態遷移324と状態302から状態308への状態遷移326に相当する。
Otherwise, if it is determined in
これ以外に、送信者の装置レコードの状態変数の値が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
供給源なしメッセージ処理サブルーチン914が図12に更に詳細に図示してある。この処理はステップ1200で始まりステップ1202へ進みここでメッセージ送信者のコンタクト情報が受信者のコンタクト・ストアに存在するかどうかを調べる。情報がコンタクト・ストアに存在しない場合サブルーチンはステップ1206へ戻る。
The no source
これ以外に、ステップ1202で送信者のコンタクト情報がコンタクト・ストアに存在すると判断された場合、送信者の装置の全部がアカウント・アイデンティティの各々で処理される。第一に、ステップ1204で、チェックを行い、処理すべき送信者側の装置レコードが未だ残っているか調べる。処理すべき装置レコードが残っている場合、ステップ1208でチェックを行い、処理すべき次の装置レコードの状態変数の値が1かどうか調べる。状態変数の値が1であれば、処理はステップ1210へ進みここで全部のアカウント・アイデンティティについて受信者の購読リストにある送信者の装置レコードで状態変数の値を2に変更する。この動作は図3の状態300から状態302への状態遷移323に相当する。
Alternatively, if it is determined in
これ以外に、送信者の装置レコードで状態変数の値が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
コンタクト更新済みメッセージ処理サブルーチン918が図13に更に詳細に図示してある。この処理はステップ1300で始まりステップ1302へ進みここでメッセージ送信者のコンタクト情報が受信者のコンタクト・ストアに存在するかどうかを調べる。この情報がコンタクト・ストアに存在しない場合サブルーチンはステップ1310へ戻る。
The contact updated
これ以外に、ステップ1302で送信者のコンタクト情報がコンタクト・ストアに存在すると判断された場合、ステップ1304で、送信者のコンタクト・シーケンス番号が変更されたかどうかを調べる。このシーケンス番号が変更された場合、ステップ1306で受信者のコンタクト・ストアにある送信者のコンタクト情報を更新して処理はステップ1308へ進む。しかしこのシーケンス番号が変更されなかった場合には処理はステップ1308へ直接進む。
In addition, if it is determined in
ステップ1308で、全てのアカウント・アイデンティティについて購読リストにある送信者の装置のピン・カウンタがゼロにセットされる。サブルーチンはステップ1310へ戻る。
At
ピン・メッセージ処理サブルーチン922が図14に更に詳細に図示してある。この処理はステップ1400で始まってステップ1402へ進み、ここで受信者のコンタクト・ストアにメッセージ送信者のコンタクト情報が存在するかどうかを調べる。この情報がコンタクト・ストアに存在しない場合にはサブルーチンはステップ1408へ戻る。
The pin
これ以外で、ステップ1302で送信者のコンタクト情報がコンタクト・ストアに存在すると判断された場合には、ステップ1304で、送信者の装置レコードはその状態変数の値が2になっているかどうか調べる。状態変数の値が2であれば、送信者へポン・メッセージが返される。装置レコードが状態2でなければ、サブルーチンはステップ1408へ戻る。
Otherwise, if it is determined in
ポン・メッセージ処理サブルーチン924が図15に更に詳細に図示してある。この処理はステップ1500で始まりステップ1502へ進んで、ここで受信者のコンタクト・ストアにメッセージ送信者のコンタクト情報が存在するかを調べる。この情報がコンタクト・ストアに存在しない場合には、サブルーチンはステップ1512へ戻る。
Pong
受信者のコンタクト・ストアに前記の情報が存在する場合、ステップ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
次に、ステップ1510で、全てのアカウント・アイデンティティについて送信者の装置レコードでピン・カウンタがゼロにセットされる。サブルーチンはステップ1512で終了する。
Next, in
装置削除メッセージ処理サブルーチン936が図16に更に詳細に図示してある。この処理はステップ1600で始まってステップ1602へ進み、ここで受信者のコンタクト・ストアにメッセージ送信者のコンタクト情報が存在するかどうかを調べる。この情報がコンタクト・ストアに存在しない場合にはサブルーチンはステップ1610へ戻る。
The device deletion
これ以外で、ステップ1602で、送信者のコンタクト情報がコンタクト・ストアに存在すると判断された場合には、ステップ1604で、現在のアカウントでの全てのアイデンティティが処理されたかどうかを調べる。そうなら、処理はステップ1610で終了する。違う場合には、ステップ1606で、メッセージ送信者に関連付けられた購読リストを取得し、ステップ1608で、メッセージに記載された装置が購読リストから削除される。処理はステップ1604へ戻り全てのアイデンティティが処理されたかどうかを調べる。全部のアイデンティティを処理した場合には、処理はステップ1610で終了する。
Otherwise, if it is determined in
他の二つの処理を用いてコンタクト・ストアを保守する。これらの処理はアカウントを別の装置へインポートした場合とアカウントが装置から削除された場合に行われる。第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
ステップ1708に戻って、コンタクトがステップ1708で判断されたように供給源なしではない場合、処理はステップ1712へ進み、ここで、エントリがそのアカウントにあるアイデンティティによって所有されているコンタクトのものかどうかを調べる。コンタクト情報がアイデンティティによって所有されている場合には、処理はステップ1702へ戻って全部のエントリを処理したかどうか調べる。
Returning to step 1708, if the contact is not sourceless as determined in
これ以外に、ステップ1712で、コンタクト情報がアイデンティティによって所有されていないと判断された場合、そのコンタクトについて購読リストにある全ての装置を処理する。更に詳しくは、ステップ1716で全部の装置を処理したかどうか調べる。違う場合、ステップ1720で、処理のために次の装置を選択する。ステップ1724で、「購読要求」メッセージを選択した装置へ送信する。処理はステップ1716へ戻って全部の装置を処理したかどうか調べる。ステップ1716で判断されたように全ての装置を処理したら、処理はステップ1702へ戻って全てのコンタクト・ストア・エントリを処理したか調べる。
In addition, if it is determined in
装置からアカウントが削除された時に実行される処理が図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
次に、ステップ1814で、選択したリストの全ての購読者を処理したか調べる。違う場合、リスト内の次の未処理購読者を選択する。処理はページ間接続1820と1824を経由してステップ1826へ進み、ここで、購読者エントリ内の装置リストを調べることにより、選択した購読者について全部の装置を処理したか調べる。違う場合、ステップ1828で、次の未処理装置を選択する。ステップ1830で、選択された装置が状態1、2又は3になっているかどうかを調べる。違う場合処理はステップ1826へ戻って処理すべき装置が更に残っているかどうかを調べる。
Next, in
これ以外に、ステップ1830で、選択された装置が状態1、2又は3のいずれか一つの状態になっていると判断された場合、ステップ1832で、「装置削除」メッセージを選択された装置へ送信する。処理はステップ1826へ戻って処理すべき装置が更に残っているか調べる。ステップ1826で判断されたように、全部の装置を処理したら、処理はページ間接続1822と1818を経由してステップ1814へ戻り選択したリストに処理すべき購読者が更に残っているか調べる。ステップ1814で判断されたように全部の購読者を処理したら処理はステップ1810へ戻り処理すべき購読リストが未だ残っているかどうか調べる。
In addition, if it is determined in
ステップ1810で判断されたように全部の購読リストを処理したら、処理はステップ1802へ戻り処理すべきエントリが残っているかを調べる。ステップ1802で、全部のエントリを処理したことが判断されたら、処理はステップ1804で終了する。
Once all subscription lists have been processed as determined at
前述の実施態様のソフトウェアによる実装は、例えばコンピュータで読み取り可能な媒体例えばディスケット、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.
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:
ことを特徴とする請求項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.
(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.
ことを更に含むことを特徴とする請求項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.
(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.
(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:
を更に含むことを特徴とする請求項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.
を含むことを特徴とする請求項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に記載の装置。 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.
を更に含むことを特徴とする請求項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の供給源とは異なる第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.
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)
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)
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)
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)
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 |
-
2004
- 2004-01-08 JP JP2004003355A patent/JP4681812B2/en not_active Expired - Lifetime
Patent Citations (2)
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)
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 |