(57)【要約】【課題】  データサーバ、共存サーバ及び少なくとも２つの共存データ検索クライアントを含むデータ検索システムを与える。【解決手段】  データサーバはデータリポジトリから複数のデータオブジェクトのうちの少なくとも１つを検索する。共存データ検索クライアントは少なくとも共存サーバ及びデータサーバと通信する。共存サーバはコミュニティと関連付けられたユーザのリストを少なくとも維持するためのコミュニティ手段及びコミュニティからのユーザのリストを有する少なくとも１つの仮想位置を含む。各共存データ検索クライアントはオブジェクト結合手段及び共存手段を含む。オブジェクト結合手段は共存サーバ内の少なくとも１つの仮想位置のうちの１つとデータサーバから検索されたデータオブジェクトを関連付ける。共存手段は１つの仮想位置と関連付けられ、コミュニティとクライアントを関連付け、１つの仮想位置と少なくとも関連付けられた他の共存手段との通信を可能にする。【選択図】  図６
2008077672.tif 000002
【特許請求の範囲】
【請求項１】
下記のものを含むデータ検索システム：
−データレポジトリから複数のデータオブジェクトのうちの少なくとも１つを検索するためのデータサーバ；
−共存サーバ；及び
−少なくとも前記データサーバ及び前記共存サーバと通信するための少なくとも２つの共存データ検索クライアント；
Ａ）前記共存サーバは下記のものを含む：
ａ）コミュニティと関連付けられた共存データ検索クライアントのリストを少なくとも維持するためのコミュニティ手段；及び
ｂ）関連付けられた共存データ検索クライアント間の通信を少なくとも可能にするための前記コミュニティからの共存データ検索クライアントのリストを有する少なくとも１つの仮想位置、
Ｂ）前記共存データ検索クライアントのそれぞれは下記のものを含む：
ｃ）前記共存サーバ内の前記の少なくとも１つの仮想位置のうちの１つと前記データサーバから受信されたデータオブジェクトを関連付けるためのオブジェクト結合手段；及び
ｄ）前記コミュニティと前記クライアントを関連付けるための及び前記の１つの仮想位置と関連付けられた前記共存データ検索クライアント間の通信を可能にするための前記の１つの仮想位置と関連付けられた共存手段。
【請求項２】
前記コミュニティ手段が第２共存データ検索クライアントが関連付けられた第２仮想位置を第１仮想位置の第１共存データ検索クライアントに与えるための発見手段及び前記第１及び第２共存データ検索クライアント間の通信を可能にするために前記第１及び第２仮想位置間に通信チャネルを与えるための通信手段も含む請求項１のデータ検索システム。
【請求項３】
前記共存サーバが、複数の位置プロセスの変更（各仮想位置に１つ）を含み、かつ前記共存データ検索クライアントから前記位置プロセスへの通信を与えるための管理プロセスを含む請求項１のデータ検索システム。
【請求項４】
前記オブジェクト結合手段が新しい仮想位置へ移動するための手段を含む請求項１のデータ検索システム。
【請求項５】
下記のものを含むコミュニティ共存サーバ：
−コミュニティと関連付けられたユーザのリストを少なくとも維持するためのコミュニティ手段；及び
−前記コミュニティからのユーザのリストを有するデータオブジェクトと関連付けられた少なくとも１つの仮想位置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にデータ検索システム及び特に共存機構を伴うデータ検索システムに関する。
【背景技術】
【０００２】
データ検索システムは技術上周知である。代表的な例がここに参照される図１に示されている。データ検索システムは代表的にはデータサーバ１０及び代表的には別々のコンピューターである複数のデータ検索クライアント１２を含む。データ検索クライアント１２の指令により、データサーバ１０はデータレポジトリ１４、すなわちデータオブジェクト１６を含んだデータベースにアクセスする。データオブジェクト１６は代表的には情報ファイルである。データ検索クライアント１２はユーザ１７と、代表的には対話式表示装置(interactive display) １８を通じて通信もする。
【０００３】
ここに参照される図２に示される代表的なデータ検索操作は次のように進められる：あるデータオブジェクト１６を検索するためにユーザ１７からの命令（矢印１）を受けると、データ検索クライアント１２はオブジェクトが存在しているデータサーバ１０へ要求を送る（矢印２）。データサーバ１０はデータレポジトリ１４から要求されたデータオブジェクト１６を検索し（矢印３）、オブジェクト１６をデータ検索クライアント１２へ送り返す（矢印４）。次にデータ検索クライアント１２は検索されたデータオブジェクト１６をユーザ１７へ表示する（矢印５）。
【０００４】
データ検索システムに含まれる追加的特徴としては、データ検索クライアント１２が新しいデータオブジェクト１６を作成することができ、検索されたデータオブジェクト１６を変更することができ、作成又は変更されたデータオブジェクト１６をデータレポジトリ１４内に記憶するためにデータサーバ１０へ送り返すことができるデータ管理機構、及びサーバ１０がクライアント要求を承認又は拒否することができる許可機構を含んでもよい。
【０００５】
データ検索システムの例は（そのうちのいくつかが前記追加的特徴を含む）ファイル転送プロトコル（ＦＴＰ）、ＨＴＴＰ(hypertext transfer protocol) 、Gopher及びネットワーク・ファイル・システム（ＮＦＳ）規格、ネットワーク・ニュース・サーバ（ＮＮＴＰ）、米国のDigital Electric CorporationのDEC Notes 、米国のLotus Inc. のLotus Notes 、米国のNovell Inc. のNovell NetWare、及び米国のOracle、Sybase及びInformixによって製造されているようなＲＤＢＭＳ(relational database management system )を含む。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、同時に同じデータオブジェクトを検索する２人以上のユーザが互いの存在に気づくことができ、結果としてリアルタイムで互いに通信することができる共存機構を伴うデータ検索システムを提供することである。データ検索システムは、ある書類にアクセスするユーザが同時にその書類にアクセスすることになった他の人とその書類についてリアルタイムで話し合うことを可能にする。
【０００７】
“共存(co-presence)”は“仮想(virtual)”位置に２人以上のユーザが“存在(present)”することができる機能である。例えば、University of IllinoisのＮＣＳＡ(National Center for Supercomputing Applications)によって開発されたＣＯＬＬＡＧＥは共用ホワイトボード(shared whiteboard)上で共存をサポートするクライアント−サーバ・パッケージである。ユーザはデータサーバから存在するＣＯＬＬＡＧＥセッションにデータオブジェクトを複写し、次にＣＯＬＬＡＧＥセッション内のデータオブジェクトを処理する。ＣＯＬＬＡＧＥセッションに参加する他のユーザも同じデータオブジェクトを処理することができる；しかしながらセッションに参加するために、ユーザは前もってＣＯＬＬＡＧＥセッションのアドレスを知る必要がある。
【０００８】
Internet Relay Chat はリアルタイム、インターネットワイド、マルチパーティ、テキストベースの対話ツールである。これは人々が自分の選択した主題についてリアルタイムで対話することを可能にし、特定の話題用の仮想“チャネル(channels)”に参加したり“チャネル”から立ち去ることを可能にする。
【０００９】
Multiple-User Dungeon （ＤＵＮ）は相互に連結された位置（各位置は、オブジェクト及び他の位置への通路を含んでもよい）の概念を与えるマルチプレーヤ対話式ゲームのファミリーである。プレーヤは次から次へ位置を移動することができ、“共存”プレーヤと通信することができ、その位置内にあるオブジェクトと対話することができる。
【００１０】
これらの共存システムは人々が通信することができる仮想位置を与えるが、本発明に記載されているように、共存はデータに関係がなく、またデータオブジェクトの検索と関連して作成されない。
【００１１】
更に、本発明はユーザのコミュニティの定義を与える。データオブジェクトに存在するコミュニティのユーザは互いに共存するが、同じデータオブジェクトに存在する他のコミュニティのユーザとは共存しない。
【課題を解決するための手段】
【００１２】
従って、本発明の好ましい例によれば、データサーバ、共存サーバ及び少なくとも２つ以上の共存データ検索クライアントを含むデータ検索システムが与えられる。データサーバはデータレポジトリから複数のデータオブジェクトのうちの少なくとも１つを検索する。共存データ検索クライアントは少なくともデータサーバ及び共存サーバと通信する。共存サーバはコミュニティユニット及び少なくとも１つの仮想位置を含む。コミュニティユニットはコミュニティと関連付けられた共存データ検索クライアントのリストを少なくとも維持する。仮想位置は、それ自身の中にあるコミュニティからの共存データ検索クライアントのリストを有し、少なくともコミュニティと関連付けられた共存データ検索クライアント間の通信を可能にする。各共存データ検索クライアントは、オブジェクト結合ユニット及び共存ユニットを含む。オブジェクト結合ユニットは、データサーバから検索されたデータオブジェクトを共存サーバ内の仮想位置のうちの１つと関連付ける。共存ユニットは１つの仮想位置と関連付けられ、クライアントをコミュニティと関連付ける。共存ユニットは、１つの仮想位置と関連付けられた共存データ検索クライアント間の通信も可能にする。
【００１３】
更に、本発明の好ましい例によれば、コミュニティユニットは、探索ユニット及び通信ユニットも含む。探索ユニットは第１仮想位置の第１共存データ検索クライアントに第２データ検索クライアントを関連付けた第２仮想位置を与える。通信ユニットは、第１及び第２共存データ検索クライアント間の通信を可能にするために第１ 及び第２仮想位置間に通信チャネルを与える。
【００１４】
更に、本発明の好ましい例によれば、共存サーバは複数の位置プロセスの変更（各仮想位置に１つ）を含み、共存データ検索クライアントから位置プロセスへの通信を与えるための管理プロセスを含む。
【００１５】
更に、本発明の好ましい例によれば、オブジェクト結合ユニットは新しい仮想位置へ移動するためのユニットを含む。
【発明を実施するための最良の形態】
【００１６】
本発明は添付の図面と結合してなされた以下の詳細な記述から充分に理解及び認識されるであろう。
【００１７】
本発明のデータ検索システムを示した図３及び図４をここで参照する。本発明のシステムは、代表的には先行技術におけるデータサーバ１０及びデータレポジトリ１４を含む。又、本発明の好ましい例によれば、本発明のシステムは共存サーバ２０及びデータサーバ１０、共存サーバ２０及び関連付けられた表示１８を通じてユーザ１７と通信する複数の共存データ検索クライアント２２を含む。
【００１８】
先行技術に見られるように、各データ検索クライアント２２はデータレポジトリ１４から要求されたデータオブジェクト１６を検索するデータサーバ１０を通じてデータオブジェクト１６を要求する。更に本発明の好ましい例によれば、共存データ検索クライアント２２は、同時に共存サーバ２０に共存データ検索クライアントが特定のオブジェクト、例えばオブジェクト１６ａを検索したことを知らせる。それに反応して、共存サーバ２０はデータ検索クライアント２２を検索されたデータオブジェクト１６ａと関連付けられた仮想位置２４へ加える。クライアント２２は検索されたデータオブジェクト１６ａ〜１６ｃを仮想位置２４ａ〜２４ｃと関連付ける。
【００１９】
説明を明確にするために、共存サーバ２０がデータサーバ１０に記憶された各データオブジェクト１６のために仮想位置２４を維持することを述べる。第１ユーザがデータオブジェクト１６に存在する時、共存サーバ２０は必要に応じて仮想位置２４を作成することもでき、誰も存在しない時、仮想位置２４を取り除くことができるということは理解されるであろう。
【００２０】
データ検索クライアント２２を介してデータオブジェクト１６にアクセスする全てのユーザは、自分がアクセスしたデータオブジェクト１６と関連付けられた仮想位置２４に加えられる。更に、共存サーバ２０は各仮想位置２４にデータオブジェクト１６にアクセスするどんなユーザでも、同じデータオブジェクト１６を現在利用している他のユーザーと（もしユーザが望めば）通信することができるようなインターユーザ通信機能を与える。共存サーバ２０はデータオブジェクト１６に存在するユーザ１７が他の共存ユーザの存在を知ることができるようにし、共存ユーザ１７のためにリアルタイムで互いに通信する手段を与える。ユーザ１７間の通信もまた、もし共存サーバ２０を通る通信が遅ければ、クライアントからクライアント(client-to-client)型であることができる。
【００２１】
共存サーバ２０は基本的には、各データオブジェクトをユーザ１７がデータオブジェクト１６を見る・変更する・話し合うために集まることができる仮想位置に変化させる。例えば、もしデータサーバ１０が、ある製品に関するユーザマニュアルを含む場合、それは製品販売者がユーザマニュアルと関連付けられた仮想位置に製品相談係(help-desk person)を置くのに役立つかもしれない。製品相談係は、もしユーザマニュアルにアクセスするユーザが更なる助けが必要な場合又は製品資料内で“自分の探している物”を見つけるのに困っている場合、リアルタイムで彼らを助けることができる。
【００２２】
共存サーバ２０及び共存データ検索クライアント２２は図４の矢印３１〜３８に示される共存プロトコルに従う。
【００２３】
ユーザ１７は先行技術（図２の矢印１〜５と同様の矢印３１〜３５）に示されるプロトコルに従って、あるデータサーバ１０からデータ１６ｄを検索する。同時に、共存データ検索クライアント２２はデータオブジェクト１６ｄと関連付けられた共存サーバ２０内の仮想位置２４ｄへユーザがデータオブジェクト１６ｄにアクセスしたという主旨のメッセージを送る（矢印３６）。（代表的には、データオブジェクト１６はデータサーバ１０上の明確な名前を有する。クライアント２２は対応する仮想位置２４を識別するために同じ又は対応する名前を利用する。）次に、仮想位置２４ｄは共存ユーザのリストにユーザを加え（工程３７）、仮想位置２４ｄに先ほど参加したユーザを含む全ての共存ユーザにその主旨のメッセージを送る（矢印３８）。
【００２４】
データオブジェクト１６に存在するユーザ１７が共存ユーザ１７のうちの選択されたユーザにメッセージを送りたい時、第１ユーザ１７はその主旨のメッセージを、共存データ検索クライアント２２及び共存サーバ２０を介して、データオブジェクト１６に存在する選択されたユーザ１７にメッセージを順次に中継する関連付けられた仮想位置２４へ送る。
【００２５】
ユーザ１７が（同じ又は他のデータサーバ１０から他のデータオブジェクト１６の検索のため、又は共存データ検索クライアント２２の閉鎖のためから）データオブジェクト１６に存在することをやめる時、共存データ検索クライアント２２は共存ユーザのリストからそのユーザ１７を順次に削除する仮想位置２４へその主旨のメッセージを送る（矢印３６）。次に、仮想位置２４は残っている全てのユーザ１７にその事象を知らせるメッセージを送る（矢印３８）。
【００２６】
共存プロトコルを、共存データ検索クライアント２２によって及び共存サーバ２０と仮想位置２４によって行われる操作によって示すことができる。次の疑似コードはプロトコルを示す：
ユーザＵのクライアント２２のために：
ユーザＵが既にサーバＳ１から文書Ｄ１を有していると仮定する。
−ユーザＵがサーバＳ２から文書Ｄ２を要求する時：
１．サーバＳ２から文書Ｄ２を検索することを試みる；
２．もし検索が成功すれば、文書Ｄ１に対応する共存サーバＣ（Ｓ１）内
の仮想位置Ｐ（Ｄ１）へ次のメッセージを送る：“ＵがサーバＳ２内の仮想位置Ｄ２へ行った(U left for virtual place D2 in server S2)”。
−ユーザＵがテキストＴ(text T)と言うことを要求するとき：
・メッセージ“ＵがＴと言った(U said T)”を共存サーバＣ（Ｓ２）へ送る。
−メッセージ“ユーザＶがサーバＳｋ内の仮想位置Ｐ（Ｄｊ）から入った（又は仮想位置Ｐ（Ｄｊ）へ行った）[User V entered (or left) for (from) virtual place P(Dj) in server Sk]”を受け取って、
・仮想位置内のユーザの最近のリストをユーザＵに表示する。
−メッセージ“ＶがＴと言った(V said T)”を受け取って、
・メッセージ“ＶがＴと言った(V said T)”をユーザＵに表示する。
【００２７】
共存サーバＣ（Ｓｉ）上の仮想位置Ｐ（Ｄｉ）のために、
共存ユーザの集合(set )をＣＰにさせる：
−メッセージ“ＵがサーバＳｋ内の仮想位置Ｐ（Ｄｊ）へ行った(U left for virtual place P(Dj) in server Sk) ”を受け取って、
１．共存ユーザの集合ＣＰからユーザＵを削除する。
２．メッセージ“ＵがサーバＳｋ内の仮想位置Ｐ（Ｄｊ）へ行った(U left for virtual place P(Dj) in server Sk )”をＣＰ内の残っている各ユーザＶへ送る。
−メッセージ“ＵがサーバＳｋ内の仮想位置Ｐ（Ｄｊ）から入った(U entered from virtual place P(Dj) in server Sk )”を受け取って、
１．共存ユーザの集合ＣＰにユーザＵを加える。
２．メッセージ“ＵがサーバＳｋ内の仮想位置Ｐ（Ｄｊ）から入った(U entered from virtual place P(Dj) in server Sk )”を共存ユーザの集合ＣＰ内の各ユーザＶへ送る。
−メッセージ“ＵがＴと言った(U said T)”を受け取って、
・メッセージ“ＵがＴと言った(U said T)”を共存ユーザの集合ＣＰ内の各ユーザへ送る。
【００２８】
共存サーバ２０は共存を与えるどんな方法でも実現されることができる。１つの実施例において、共存サーバ２０はフラットコンカレントＰＲＯＬＯＮＧ（ＦＣＰ）と呼ばれるコンカレントプログラミング言語を実行するＵＮＩＸプロセスとして実現される。Houri らの米国特許第５２２２２２１号（参照としてここに組み入れる）に開示されているようにＦＣＰ内部軽量(internal light-weight )プロセス構造を使用して、各仮想位置２４はそれぞれがＦＣＰプロセスの収集(collection)から形成される位置プロセスとして実現されることができる。各ＦＣＰプロセスは上記された共存プロトコルに従う。
【００２９】
共存サーバ２０は前もって割り当てられ、発行されたポート上の通信を検索する。このポートの識別は共存データ検索クライアント２２に組み込まれる。共存サーバ２０は、代表的には共存データ検索クライアント２２からのメッセージを検索し、それらを適切な仮想位置２４に与える。更に、所望により、管理ＵＮＩＸプロセス（共存サーバ２０）は、第１ユーザがデータオブジェクト１６にアクセスする度に、超軽量(featherweight )プロセス（仮想位置２４）を作成することもでき、ユーザが関係のある仮想位置２４で共存することをやめる度に、プロセスを削除することもできる。
【００３０】
共存サーバ２０との通信がデータ検索操作から分けられているので、本発明のデータ検索システムが共存機能を何も持たない標準データ検索クライアント１２と動作できることは明らかになるであろう。
【００３１】
更に、本発明のシステムが既存の先行技術のデータ検索システムから簡単に作成されうることも明らかになるであろう。アップグレーディングプロセスは上記されるように、共存サーバ２０の追加及び次の機能の追加を通してデータ検索クライアント１２を共存データ検索クライアント２２にする変更を含む：
ａ）共存サーバ２０との追加通信チャネルを開く機能；
ｂ）データオブジェクト１６を仮想位置２４にマップする機能；
ｃ）共存情報を表示する機能；
ｄ）ユーザ１７がリアルタイムで通信できる機能；及び
ｅ）クライアント２２が終了又は閉路する時、共存サーバ２０に知らせる機能。
【００３２】
アップグレードされていないデータ検索クライアントが図３及び４のデータ検索システム内でもまだ動作できることは理解されるであろう。
【００３３】
本発明の別の例を示した図５をここで参照する。この例において、データ検索システムは同じ素子を含むが、それらの素子はこのなった様態で構成されている。特にデータ検索システムは、先行技術のデータサーバ１０及びデータレポジトリ１４と同様に、共存データ検索クライアント（符号４０）及び共存データ検索サーバ４２を含む。
【００３４】
この別の例において、共存データ検索クライアント４０は共存データ検索サーバ４２とだけ通信し、サーバ４２が順次にデータサーバ１０へ送るそれらのデータ検索要求及び共存通信を共存データ検索サーバ４２に与える。共存データ検索サーバ４２は仮想位置４４を含む。多数のサーバ４２が存在してもよく、それらの各サーバはそれ自身の関連付けられたデータサーバ１０のためにデータ検索要求を取り扱う。
【００３５】
次のものはクライアント４０とサーバ４２間のプロトコルを示した疑似コードである：
ユーザＵのクライアント４２のために：
ユーザが現在サーバＳ１内の文書Ｄ１を有すると仮定する。
−ユーザがサーバＳ２から文書Ｄ２を要求する時：
１．メッセージ“ＵがサーバＳ１内の位置Ｐ（Ｄ１）から入ることを要求する(U requests to enter from place P(D1) in server S1 )”を共存サーバＣ（Ｓ２）内の位置Ｐ（Ｄ２）へ送る。
２．もしデータ検索が成功すれば、メッセージ“ＵがサーバＳ２内の位置Ｐ（Ｄ２）へ行った(U left for virtual place P(D2) in server S2) ”を共存サーバＣ（Ｓ１）内の位置Ｐ（Ｄ１）へ送る。
−ユーザＵがテキストＴ(text T)と言うことを要求する時：
・メッセージ“ＵがＴと言った(U said T)”を共存サーバＣ（Ｓ２）へ送る。
−メッセージ“ＶがサーバＳｉ内の位置Ｐ（Ｄｊ）から入った（へ行った）  [V entered (left) for (from) virtual place P(Dj) in server Si]”を受け取って：
・位置Ｐ（Ｄｊ）内の現在の共存ユーザをユーザＵに表示する。
−メッセージ“ＶがＴと言った(V said T)”を受け取って：
・ユーザＶからのメッセージをユーザＵに表示する。
【００３６】
共存サーバＣ（Ｓｉ）上の仮想位置Ｐ（Ｄｉ）のために、共存ユーザの集合をＣＰにさせる：
−メッセージ“ＵがサーバＳｋ内の仮想位置Ｐ（Ｄｊ）へ行った(U left for virtual place P(Dj) in server Sk) ”を受け取って：
１．共存ユーザの集合ＣＰからユーザＵを削除する。
２．メッセージ“ＵがサーバＳｉ内の仮想位置Ｐ（Ｄｊ）へ行った(U left for virtual place P(Dj) in server Si )”をＣＰ内の残っている各ユーザＶへ送る。
−メッセージ“ＵがサーバＳｋ内の仮想位置Ｐ（Ｄｊ）から入ることを要求する(U requests to enter from virtual place P(Dj) in server Sk )”を受け取って：
１．データサーバ１０からデータの検索を試みる。
２．もし成功すれば：
ａ．ユーザＵのクライアント４２へデータを送る。
ｂ．共存ユーザの集合ＣＰにユーザＵを加える。
ｃ．メッセージ“ＵがサーバＳｉ内の仮想位置Ｐ（Ｄｉ）から入った(U entered from virtual place P(Di) in server Si )”を共存ユーザの集合ＣＰ内の各ユーザＶへ送る。
−メッセージ“ＵがＴと言った(U said T)”を受け取って、
・メッセージ“ＵがＴと言った(U said T)”を共存ユーザの集合ＣＰ内の各ユーザへ送る。
【００３７】
本発明の更なる好ましい例に従って構成及び操作されるコミュニティ共存サーバ及びその操作方法をそれぞれ示した図６及び図７をここで参照する。
【００３８】
図６は２つのコミュニティ共存サーバ５０Ａ、５０Ｂ、４つの共存データ検索クライアント５２Ａ、５２Ｂ、５２Ｃ、５２Ｄ及び４つのデータサーバ５４Ａ、５４Ｂ、５４Ｃ、５４Ｄを示す。各コミュニティ共存サーバ５０が、（例として４つ示されているが）所望により多くのデータサーバ５４及びデータ検索クライアント５２と動作できることは理解されるであろう。
【００３９】
各コミュニティ共存サーバ５０はデータにアクセスする全てのクライアント５２を通じて共存ユーザのコミュニティを与える。ウエブページのような１つのデータを見ている１つのコミュニティのそれらのユーザは、互いに共存するであろう。しかし、他のコミュニティのユーザ（例えば、他のインターネットサービスプロバイダーからのユーザ）は、先のコミュニティのユーザとは共存しないであろう。彼らは自分達自身のコミュニティからのユーザとしか共存しないであろう。
【００４０】
これは図６に示されている。クライアント５２Ａ及び５２Ｂはサーバ５０Ａと関連付けられ（直線５１Ａ及び５１Ｂ参照）、クライアント５２Ｃ及び５２Ｄはサーバ５０Ｂと関連付けられる（直線５１Ｃ及び５１Ｄ）。クライアント５２Ａが破線５３Ａに示されるようにデータサーバ５４Ｂ内のデータオブジェクト（符号５６）にアクセスする時、コミュニティサーバ５０Ａはデータオブジェクト５６と関連付けられ、クライアント５２Ａが結合される（点線５５Ａ）仮想位置５８を作成する。また、コミュニティサーバ５０Ａと関連付けられたクライアント５２Ｂがデータオブジェクト５６にアクセスする時（破線５３Ｂ）、クライアント５２Ｂは仮想位置５８に結合され（点線５５Ｂ）、既にそこに存在するクライアント５２Ａと共存するであろう。従って、クライアント５２Ａ及び５２Ｂは同じデータオブジェクトを見て、互いが同じデータオブジェクトに存在することを知り、互いにデータオブジェクトについて又は他の事について話すことができる。
【００４１】
一方、クライアント５２Ｃが（破線５３Ｃに示されるように）データオブジェクト５６にアクセスする時、クライアント５２Ｃは仮想位置５８に結合されない。何故なら、その位置はコミュニティサーバ５０Ａに属し、クライアント５２Ｃがコミュニティサーバ５０Ｂに属するからである。その代わり、コミュニティサーバ５０Ｂはデータオブジェクト５６と関連付けられたそれ自身の仮想位置（符号６０）を作成し、クライアント５２Ｃをそれに（点線６１Ａに示されるように）結合する。クライアント５２Ｄがデータオブジェクト５６に（破線５３Ｄに示されるように）アクセスする時、コミュニティサーバ５０Ｂはクライアント５２Ｄがクライアント５２Ｃと共存する仮想位置６０にクライアント５２Ｄを（点線６１Ｂに示されるように）結合する。
【００４２】
４つのクライアント５２全てが、同じデータオブジェクト５６にアクセスするが、各クライアント５２は同じコミュニティサーバ５０に属する他のクライアント５２とだけ共存することは理解されるであろう。
【００４３】
コミュニティに共存を与えるための手順が図７に示されている。最初に、ユーザ７０は自分の“クライアント”コンピューター５２を通して、代表的にはコミュニティ共存サーバ５０に登録することによって、コミュニティの一部になる。この工程は工程７１と符号付けされ、コミュニティの部分を形成するユーザのリストを維持することを含む。第２工程（符号７２）において、ユーザ７０はデータサーバ５４にあるデータオブジェクト５６のようなデータオブジェクトにアクセスする。工程７３において、データサーバ５４はデータ５６をクライアント５２に与える。工程７４において、クライアント５２はデータオブジェクト５６と関連付けられたコミュニティ共存サーバ５０内の仮想位置５８にユーザ７０がデータオブジェクト５６にアクセスしたという主旨のメッセージを送る。次に仮想位置５８はユーザ７０を現存するユーザのリストに加える。最後に、工程７５において、コミュニティ共存サーバ５０はクライアント５２が先程データオブジェクト５６にアクセスしたというメッセージを仮想位置５８のユーザリストにリストされている全てのクライアント５２に送る。
【００４４】
工程７２、７３、７４、７５が図４の工程３２、３４、３６、３８のそれぞれと同様であることは理解されるであろう。実行された動作は上記されたものと同様であり、仮想位置がデータオブジェクト５６と特定のコミュニティ共存サーバの仮想位置５８又は６０の両方と関連付けられているという違いがあるだけである。
【００４５】
コミュニティ共存サーバの更なる特徴を示した図８をここで簡単に参照する。図８は１つのサーバ５０、２つのデータサーバ５４Ｅ及び５４Ｆ、２つの共存データ検索クライアント５２Ｅ及び５２Ｆを示している。この図において、クライアント５２Ｅ及び５２Ｆの両方はサーバ５０に登録されているが、クライアント５２Ｆがデータサーバ５４Ｆのデータオブジェクト７２にアクセスしている間にクライアント５２Ｅがデータサーバ５４Ｅのデータオブジェクト７０にアクセスしている。従って、サーバ５０はデータオブジェクト７０及び７２のそれぞれと関連付けられた２つの仮想位置７６及び７８を有する。
【００４６】
本発明の好ましい例によれば、２つのクライアント５２Ｅ及び５２Ｆが２つの異なった仮想位置７６及び７８と関連付けられている時（即ち、互いに共存していない時）でも、サーバ５０はクライアント５２Ｅ及び５２Ｆ間の通信を可能にする。会話を開始するために、クライアントの一方（例えば５２Ｅ）はサーバ５０がクライアント５２Ｆを“発見する(find)”ことを要求する。サーバ５０はクライアント５２Ｆが関連付けられている仮想位置を発見するために各仮想位置（７６、７８など）と関連付けられたクライアントのリスト内を探索する。もし見つかれば、次にサーバ５０は仮想位置を介して２つのクライアント間の通信チャネルを開ける。２つのクライアントは共存ではないが、両クライアントが同じコミュニティの一部なので通信することができる。
【００４７】
もしコミュニティ共存サーバ間の通信チャネルがあるならば、第１クライアントが他のコミュニティ共存サーバと関連付けられた第２クライアントを探索することができることは更に理解されるであろう。メインサーバは最初にサーバ内の仮想位置間を探索し、もし所望のクライアントを発見することができなければ、メインサーバは自分と連結されたサーバがそれ自身の仮想位置を探索することも要求することができる。もし１つのサーバが所望のクライアントを発見すれば、２つのサーバ間の及びその２つのサーバを通って２つのクライアント間の通信チャネルを開けることができる。
【００４８】
本発明が上記され特に示されているものに限定されないことは当業者によって理解されるであろう。むしろ本発明の範囲は請求項によって規定される。
【図面の簡単な説明】
【００４９】
【図１】図１は先行技術のデータ検索システムの概略図である。
【図２】図２はある先行技術のデータ検索操作の概略図である。
【図３】図３は本発明の第１の好ましい例に従って構成及び操作される共存サーバを伴ったデータ検索システムの概略図である。
【図４】図４は共存データ検索操作の概略図である。
【図５】図５は共存データ検索システム及びその操作の別の例の概略図である。
【図６】図６は本発明の更なる好ましい例に従って構成及び操作されるコミュニティ共存システムの概略図である。
【図７】図７は図６のシステム内の共存データ検索操作の概略図である。
【図８】図８は図６のコミュニティ共存サーバ内の操作の概略図である。
【図１】
2008077672.tif 000003
【図２】
2008077672.tif 000004
【図３】
2008077672.tif 000005
【図４】
2008077672.tif 000006
【図５】
2008077672.tif 000007
【図６】
2008077672.tif 000008
【図７】
2008077672.tif 000009
【図８】
2008077672.tif 000010
【手続補正書】
【提出日】平成19年10月17日(2007.10.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データレポジトリから複数のデータオブジェクトのうちの少なくとも１つを検索するためのデータサーバ及び少なくとも１つの仮想位置を夫々含む少なくとも２つの共存サーバの夫々と通信することができる少なくとも２つの共存データ検索クライアント間においてリアルタイム通信を可能にする方法であって、
第１の共存サーバに関連付けられた第１の共存データ検索クライアントが前記データサーバ内のデータオブジェクトにアクセスするステップと、
前記第１の共存サーバが、前記データオブジェクトに関連付けられ且つ前記第１の共存データ検索クライアントと接続される第１の仮想位置を前記第１の共存サーバ内に作成するステップと、
前記第１の共存サーバに関連付けられた第２の共存データ検索クライアントが前記データオブジェクトにアクセスするときに、前記第２の共存データ検索クライアントが前記第１の仮想位置に接続されるステップであって、それによって前記第１の共存データ検索クライアントと前記第２の共存データ検索クライアントとの間でコミュニケーションすることが可能になる、前記アクセスするステップと、
第２の共存サーバに関連付けられた第３の共存データ検索クライアントが前記データサーバ内の前記データオブジェクトにアクセスするステップと、
前記第２の共存サーバが、前記データオブジェクトに関連付けられ且つ前記第３の共存データ検索クライアントと接続される第２の仮想位置を前記第２の共存サーバ内に作成するステップと、
前記第２の共存サーバに関連付けられた第４の共存データ検索クライアントが前記データオブジェクトにアクセスするときに、前記第３の共存データ検索クライアントが前記第２の仮想位置に接続されるステップであって、それによって前記第３の共存データ検索クライアントと前記第４の共存データ検索クライアントとの間でコミュニケーションすることが可能になる、前記アクセスするステップと
を含み、
前記第１乃至第４の共存データ検索クライアントは、同じ前記データオブジェクトにアクセスするが、前記第１の共存検索クライアントは前記第２の共存検索クライアントと共存し、前記第３の共存検索クライアントは前記第４の共存検索クライアントと共存する、  前記方法。
【請求項２】
データレポジトリから複数のデータオブジェクトのうちの少なくとも１つを検索するための少なくとも２つのデータサーバ及び少なくとも２つの仮想位置を含む共存サーバと通信することができる少なくとも２つの共存データ検索クライアント間においてリアルタイム通信を可能にする方法であって、
共存サーバに関連付けられた第１の共存データ検索クライアントが第１のデータサーバ内のデータオブジェクトにアクセスするステップと、
前記共存サーバが、前記データオブジェクトに関連付けられ且つ前記第１の共存データ検索クライアントと接続される第１の仮想位置を前記共存サーバ内に作成するステップと、
前記共存サーバに関連付けられた第２の共存データ検索クライアントが第２のデータサーバ内のデータオブジェクトにアクセスするステップと、
前記共存サーバが、前記データオブジェクトに関連付けられ且つ前記第２の共存データ検索クライアントと接続される第２の仮想位置を前記共存サーバ内に作成するステップと、
前記第１の共存データ検索クライアントと前記第２の共存データ検索クライアント間の通信を可能にするために、前記第１又は前記第２の共存データ検索クライアントが前記共存サーバに前記第２又は前記第１の共存データ検索クライアントを発見することを要求するステップと、
前記共存サーバが、前記第２又は前記第１の共存データ検索クライアントが関連付けられている前記第２又は前記第１の仮想位置を発見するために、各仮想位置に関連付けられた共存データ検索クライアントのリストを探索するステップと、
前記第２又は前記第１の共存データ検索クライアントが見つかると、前記共存サーバが、前記第１及び第２の仮想位置を介して前記第１及び前記第２の共存データ検索クライアント間の通信チャンネルを開くステップと
を含み、
それによって、前記第１の共存データ検索クライアントと前記第２の共存データ検索クライアントとの間でコミュニケーションすることが可能になる、前記方法。