(57)【要約】【課題】特殊なブラウザを必要とせずに、コンピュータ間でリアルタイムで同じウェブ情報を共有する。【解決手段】ユーザがサーバシステム１００にアクセスすると、サーバシステム１００は、ユーザのコンピュータ上にサロゲート（代理）１５３を作成するための可搬性コードをユーザのコンピュータに送信する。同じセッションにおいてユーザに対して作成されるサロゲートは、サーバシステムのコントローラ１１１によって接続され、サロゲート１５３は、コントローラ１１１と、ユーザのコンピュータ上のそれぞれのブラウザ１５１との間のインタフェースとして作用する。セッションのユーザがブラウザ１５１でウェブサイトアドレスを変更すると、対応するサロゲート１５３がその新しいアドレスを取得して、インターネットを通じて同じセッションの他のサロゲート１７３に送信する。【選択図】図１
2008269658.tif 000002
【特許請求の範囲】
【請求項１】
協調的セッションを実現する装置であって、前記装置は通信ネットワークを介して少なくとも１つのデバイスと通信するものであり、そして、
前記装置の外部にあるソースからプログラミングコードを受信するインタフェースと、
前記プログラミングコードに基づいてサロゲートを生成するプロセッサとを含み、前記サロゲートは、前記少なくとも１つのデバイスへ情報を送信して前記セッションを実現するものであり、
前記通信ネットワーク上の、前記装置以外の少なくとも１つのソースを識別するアドレスからなるデータを前記デバイスが受信したことに応動して、前記デバイスが、前記アドレスによって識別される少なくとも１つのソースから情報を得、そして、
他のユーザからの通信からなるデータを前記デバイスが受信したことに応動して、前記デバイスが、前記デバイスのユーザへの前記通信を提供することを特徴とする装置。
【請求項２】
前記セッションが、前記少なくとも１つのデバイスとの音声通信、テキスト通信、またはビデオ通信を行う、請求項１記載の装置。
【請求項３】
前記プログラミングコードはモバイル・プログラミング言語により作成される請求項１記載の装置。
【請求項４】
前記モバイル・プログラミング言語はＪＡＶＡ（登録商標，以下同）言語を含む請求項３記載の装置。
【請求項５】
前記プログラミングコードはＪＡＶＡアプレットの形式である請求項４記載の装置。
【請求項６】
前記通信ネットワーク上で記憶された、ユニフォームリソースロケータ（ＵＲＬ）を介してアクセスされる情報をブラウズするブラウザをさらに含み、
前記サロゲートは前記ブラウザとのユーザのやりとりをモニタし、そして前記ＵＲＬを前記少なくとも１つのデバイスへ送信する請求項１記載の装置。
【請求項７】
通信ネットワークを介して少なくとも第１のデバイスと第２のデバイスとの間の協調的通信を実現する方法であって、前記第１のデバイスは前記通信ネットワークから情報を得るブラウザを含み、前記方法が、
前記第１のデバイス内にサロゲートを生成するプログラミングコードを前記第１のデバイスへ提供するステップと、
前記サロゲートによって、前記ブラウザから第１のデータを得るステップと、
前記サロゲートから前記第１のデータを受信するステップと、
前記第１のデータに基づいて、第２のデータを前記第２のデバイスへ送信するステップとを含み、
前記通信ネットワーク上の、前記第１のデバイス以外の少なくとも１つのソースを識別するアドレスからなる第１データ及び第２のデータの少なくとも１つに応動して、前記第２のデバイスが、前記アドレスによって識別される少なくとも１つのソースから情報を得、そして、
前記第１のデバイスのユーザからの通信からなる第１データ及び第２のデータの少なくとも１つに応動して、前記第２のデバイスが、前記第２のデバイスのユーザへ前記通信を提供することを特徴とする装置。
【請求項８】
前記第２のデバイスから前記第１のデバイスへのデータの流れを制御するステップをさらに含む、請求項７記載の方法。
【請求項９】
前記通信を導くために前記第１のデバイス及び前記第２のデバイスのうち１つを選択するステップをさらに含む請求項７記載の方法。
【請求項１０】
前記第１のデータが、前記第１のデバイスのユーザによって提供された選択データを含む請求項７記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークを通じてユーザ間で通信を行うシステムおよび方法に関し、特に、ワールドワイドウェブ（ＷＷＷ）上で情報の協調的ブラウジングおよび双方向（対話的）通信を行うシステムおよび方法に関する。
【背景技術】
【０００２】
コンピュータユーザは、インターネットとして知られる、コンピュータネットワークからなる広大な国際ネットワーク上で多くのリソースにアクセスすることができる。ＷＷＷは、インターネットのグラフィカルサブネットワークである。Ｎｅｔｓｃａｐｅブラウザのような普通の「ウェブブラウザ」ソフトウェアにより、ユーザは、ＷＷＷ上のウェブサーバによって提供されるインターネット情報あるいはサービスに直ちにアクセスすることができる。
【０００３】
多くのインターネットサービスはユーザ間の通信を可能にしている。例えば、複数のコンピュータユーザが、「テキストチャット」サービスを提供する指定されたウェブサーバにアクセスすることにより、リアルタイムで互いにテキストで双方向に通信することが可能である。
【０００４】
また、コンピュータユーザは、Ｓｈａｒｅｄ  Ｍｏｓａｉｃブラウザを用いてウェブブラウジング体験を共有することも可能である。このためには、各ユーザはコンピュータ上にＳｈａｒｅｄ  Ｍｏｓａｉｃソフトウェアの自分のコピーを有することが要求される。ユーザと仲間の間のリンクを確立するため、ユーザは、例えば、電子メールや電話により、ユーザの特定のブラウザを識別するインターネットプロトコル（ＩＰ）ポート番号を事前に仲間に通知する必要がある。その後、仲間は、それぞれのコンピュータ上でそれぞれのブラウザを起動し、通知されたＩＰポート番号を入力することにより、ユーザのコンピュータと仲間のコンピュータの間にインターネットを通じてリンクを確立する。ユーザは、インターネットのあるウェブサイトを訪れているときに、ブラウザによって与えられる選択肢を選択して、確立されたリンクを通じてそのウェブサイトからの同じ情報を仲間と共有することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
Ｓｈａｒｅｄ  Ｍｏｓａｉｃ型のシステムは、ユーザとその仲間がリアルタイムで同じウェブ情報を共有することができるという点では好ましいが、そのアプリケーションはある面では不利であると認められる。特に、より一般的なさまざまなブラウザが使用されているのにもかかわらず、従来のシステムを利用するためには、ユーザと仲間はそれぞれ同一の特殊なブラウザ（例えば、Ｓｈａｒｅｄ  Ｍｏｓａｉｃブラウザ）を有する必要がある。
【課題を解決するための手段】
【０００６】
これに対して、本発明は、上記の問題点を解決する。本発明によれば、各ユーザが協調的なウェブブラウジングセッションに参加したいときに、ユーザは、ユーザのコンピュータ上にサロゲート（代理）を作成するためのモバイル（可搬性）コードをユーザのコンピュータに送信するシステムにアクセスする。同じセッションにおいてユーザに対して作成されるサロゲートは、システム内の少なくとも１つのコントローラによって接続され、サロゲートは、コントローラと、ユーザのコンピュータ上のそれぞれのブラウザとの間のインタフェースとして作用する。ブラウザは、互いに異なっていてもよい。そのセッションのユーザが、あるブラウザでウェブサイトアドレスを変更すると、対応するサロゲートがその新しいアドレスを取得して、インターネットを通じて同じセッションの他のサロゲートに送信する。その後、他の各サロゲートは、それぞれのブラウザに対して、これに従ってウェブアドレスを変更するよう指示する。このようにして、あるセッションのユーザは、ウェブサイトからウェブサイトへ同期して移動することが可能となり、リアルタイムで情報を共有することになる。
【発明を実施するための最良の形態】
【０００７】
図１に、本発明の原理を実現するサーバシステム１００を示す。サーバシステム１００は、ウェブサーバとしてワールドワイドウェブ（ＷＷＷ）に接続される。システム１００の動作は、Ｎｅｔｓｃａｐｅブラウザのような標準的なウェブブラウザ、標準的なハイパーテキスト転送プロトコル（ＨＴＴＰ）およびハイパーテキストマークアップ言語（ＨＴＭＬ）に対応している。とりわけ、本発明によれば、システム１００は、ユーザに、（ａ）ＷＷＷ上のさまざまなウェブサイトのＨＴＭＬ文書の協調的ブラウジング、および（ｂ）ユーザ間のリアルタイムの双方向通信というサービスを提供する。特に、システム１００によれば、協調的ブラウジングセッション中に、複数のユーザ（共同作業者）は、ユニフォームリソースロケータ（ＵＲＬ）によってアドレス可能なウェブサイトからの情報を同期的かつ協調的にブラウズ（閲覧）することが可能となる。また、共同作業者は、例えばテキストチャット通信を通じて相互に対話することも可能である。さらに、システム１００によれば、ユーザは、進行中のセッションに自由に参加すること、および、進行中のセッションから自由に退出することが可能であり、また、システム１００は、変化するセッション数および特定のセッションの共同作業者の数を収容するように容量を拡大縮小することが可能である。
【０００８】
図１に示されるように、ユーザは、コンピュータＵ−１を利用して、所定のＵＲＬでＷＷＷを通じてシステム１００にアクセスすることが可能である。コンピュータＵ−１は、Ｎｅｔｓｃａｐｅブラウザのような標準的なウェブブラウザ１５１が動作する従来のパーソナルコンピュータ（ＰＣ）でよい。Ｕ−１がリンク１０５を通じてシステム１００に接続されると、システム１００内のマネージャ１０７は、ウェブブラウザ１５１と、コモンゲートウェイインタフェース（ＣＧＩ）を有するＨＴＴＰサーバ１０９を通じてＵ−１との通信を開始する。
【０００９】
マネージャ１０７は、ユーザが協調的ブラウジングセッションを確立するのを助けるサービスルーチンからなる。図２および図３に、本発明によるサービスルーチンのステップを示す。ステップ２０１で、マネージャ１０７はホームページがＵ−１に表示されるようにする。このホームページは、ユーザに挨拶し、システム１００によって提供されるサービスを説明する。次に、ステップ２０３で、マネージャ１０７は、Ｕ−１から、ユーザ情報を引き出す。この情報には、ユーザ識別（ＩＤ）、パスワードおよびその他の、そのユーザが権限のあるユーザであることを確かめるのに必要な管理データが含まれる。ステップ２０５で、マネージャ１０７は、ユーザがセッションを作成したいか、それとも、進行中のセッションに参加したいかについてＵ−１に問い合わせる。ここで、Ｕ−１のユーザはセッションを作成することを選択したとする。ステップ２０７で、マネージャ１０７は、ユーザに対して、作成するセッションの詳細（例えば、セッションの目的あるいは話題）、および、それが秘密セッションであるかそれとも公開セッションであるかを入力するよう促す。例えば、秘密セッションの場合、共同作業者となりたい者は、参加するためには、セッションを作成したユーザのユーザＩＤによってこのユーザが誰であるかを明らかにしなければならない。公開セッションの場合、セッションのトピックはリストされ、共同作業者となりたい者により検索可能である。
【００１０】
この例では、Ｕ−１のユーザは、作成するセッションは公開であり、セッションの目的は自動車の購入であるとする。ステップ２０９で、マネージャ１０７は、新たなセッションの開始に進み、サロゲート１５３をコンピュータＵ−１のブラウザ１５１内に作成する。このために、システム１００は、標準的なＪＡＶＡ言語のような可搬性プログラミング言語による可搬性コードをコンピュータＵ−１に送信する。この例では、可搬性コードはＪＡＶＡアプレットの形式であるとする。サロゲート１５３は、アプレットがコンピュータＵ−１に到達して、ブラウザ１５１内で実行を開始するときに実現される。サロゲート１５３については以下でさらに説明するが、今のところ、セッションを実行するためにブラウザを補助するように作用することを知っていれば十分である。
【００１１】
この例では新しいセッションであるため、ステップ２１１で、マネージャ１０７は、このセッションを管理し制御するように、新たなコントローラ１１１を割り当てる。ステップ２１３で、マネージャ１０７は、リンク１１３を通じてコントローラ１１１をサロゲート１５３に接続し、同時にリンク１０５を切断する。
【００１２】
サロゲート１５３は、ブラウザ１５１とコントローラ１１１の間のインタフェースとして作用する。とりわけ、サロゲート１５３は、ブラウザとのユーザ対話をモニタし、ユーザ対話をコントローラ１１１に報告する。
【００１３】
この時点で注意すべき点であるが、サロゲート１５３は、オンデマンドでＵ−１に送信されＵ−１上で実行されたＪＡＶＡ（登録商標，以下同）アプレットを用いて実現されており、従来のアプリケーションの場合のように事前にユーザコンピュータ上にインストールされあるいは維持されるソフトウェアは不要である。従って、Ｎｅｔｓｃａｐｅブラウザのような標準的なＪＡＶＡ対応ブラウザを利用して本発明を実現することが可能である。換言すれば、システム１００は、本発明のサービスを利用するために特殊なブラウザソフトウェアを有することをユーザに要求しない。
【００１４】
新たなセッションが開始した後、コンピュータＵ−１のユーザは、ブラウザ１５１で、自動車のウェブサイトあるいはその他のウェブサイトにＵＲＬを変更して、さまざまな車のモデルやその仕様に関する情報を取得する。新しいＵＲＬはサロゲート１５３によってコントローラ１１１に送信され、この新しいＵＲＬは記録され、同じセッションの他の共同作業者がいれば、その共同作業者のサロゲートに送られる。同時に、ブラウザ１５１は、この新しいＵＲＬのウェブサーバにアクセスし、コンピュータＵ−１上に、そのウェブサーバによって提供されるＨＴＭＬ文書を開く。
【００１５】
第２のユーザが、コンピュータＵ−２を利用して、所定のＵＲＬのシステム１００にアクセスし、進行中のセッションに参加することが可能である。コンピュータＵ−２がＨＴＴＰサーバ１０９へのリンク（図示せず）を確立した後、マネージャ１０７は、上記と同様にして、図２のステップ２０１および２０３を行う。しかし、ステップ２０５で、この例ではＵ−２のユーザは進行中のセッションへの参加を選択する。この場合、図３のステップ３０２で、マネージャ１０７は、Ｕ−２に対して、この第２ユーザが参加したいのは秘密セッションかそれとも公開セッションかについて問い合わせる。この例では、第２ユーザは公開セッションへの参加を選択したとすると、マネージャ１０７はステップ３０６に進む。そうでない場合は、ステップ３０４に示すように、第２ユーザは、セッションの作成者のユーザＩＤによって、参加する秘密セッションが何であるかを明らかにする必要がある。
【００１６】
ステップ３０６で、マネージャ１０７は、コンピュータＵ−１のユーザによって作成された自動車購入セッションを含むすべての進行中のセッションのリストをコンピュータＵ−２に表示する。次に、マネージャ１０７はステップ３０８に進み、第２ユーザによって選択されたセッションを判定する。この例では、第２ユーザは、リストされた話題を、マウスデバイスを用いてポイントしクリックすることによって自動車購入セッションに参加することを選択したとする。ステップ３１０で、サロゲート１７３が、前に説明したのと同様にして、コンピュータＵ−２上のブラウザ１７１内に作成される。このブラウザは、本発明によれば、ブラウザ１５１と異なっていてもよい。サロゲート１７３が作成され、自動車購入セッションがコントローラ１１１に割り当てられたことを知ると、ステップ３１２で、マネージャ１０７は、コントローラ１１１を、リンク１７５を通じてサロゲート１７０に接続する。
【００１７】
この時点で、コントローラ１１１によって、接続された各共同作業者のコンピュータへ、新たな共同作業者の存在についてのメッセージが送られる。その後、Ｕ−２のユーザには、セッションが通ったＵＲＬの系列を訪れてその履歴を概観する機会が与えられる。このＵＲＬの系列は、セッションが進行するにつれてコントローラ１１１に記録され更新されている。また、Ｕ−２のユーザには、他の共同作業者と同期して新たなＨＴＭＬ文書をブラウズするオプションも与えられる。このオプションが実行されると、コントローラ１１１は、現在のＵＲＬをサロゲート１７３に送る。サロゲート１７３は、ウェブブラウザ１７１に、この現在のＵＲＬのＨＴＭＬ文書を開くよう指示する。
【００１８】
自動車購入セッションの間、ブラウザ１５１がＵＲＬを変更すると、その新しいＵＲＬ情報はサロゲート１５３によって取得され、サロゲート１５３はこの情報を、コントローラ１１１を介して他のすべての共同作業者のサロゲートへ通知する。その後、各サロゲートは、それぞれのブラウザに、この新しいＵＲＬのＨＴＭＬ文書を開くよう指示する。こうして、セッションが進行するにつれて、共同作業者は、ＵＲＬからＵＲＬへと同期的に異動して文書をブラウズすることが可能となる。
【００１９】
この特定実施例では、セッションの作成者は、そのセッションを先導することを除いては、他の共同作業者と同じ能力を与えられる。さらに、コントローラ１１１に接続されたサロゲートは、共同作業者が、テキストで相互にリアルタイムで双方向通信することが可能なようにプログラムされる。共同作業者は、ＨＴＭＬ文書を開きながら、マウスデバイスを用いてコンピュータ上で指定されたアイコンをポイントしクリックして、自動車に関する意見を交換するためにテキストチャット接続を形成する。しかし、理解されるように、当業者であれば、コントローラ１１１が何らかのアクセス制御を行うようにプログラムすることも可能である。例えば、コントローラ１１１が、協調的セッション中に、異なる共同作業者には異なる能力を与えることも可能である。また、コントローラ１１１が優先度方式を実施することにより、共同作業者が代わる代わるセッションを先導し相互に通信することも可能である。
【００２０】
セッションを作成すること、または、進行中のセッションに参加することを求める他のコンピュータユーザは、上記のＵ−１あるいはＵ−２と同様のプロセスを実行する。しかし、コントローラによって制御される特定のセッションに多くの共同作業者が参加すると、コントローラは、ある時点で過負荷になる可能性がある。システム１００のサーバベースのアーキテクチャではあらゆるユーザの接続に関する情報がマネージャ１０７に存在するため、システム容量は、サービス品質に影響を与えることなく、増加する共同作業者を収容するように容易に拡張可能である。コントローラにおいて、共同作業者数が所定のしきい値に到達すると、マネージャ１０７は新しいコントローラを使用して、過剰の共同作業者を接続する。同じセッションに対するこの新しいコントローラと既存のコントローラは、階層的に動的に再編成され、相互の通信および調整を行い、同期的にセッションを実行する。図４に、そのような階層の例を示す。既存のコントローラ（Ｅとマークされた円で示す）と、新しいコントローラ（Ｎとマークされた円で示す）はスタートポロジーを形成する。この階層では、コントローラ３８８は情報センタとして作用し、あるコントローラから他のすべてのコントローラへ効率的に情報を分配する。
【００２１】
さらに、多くのコントローラが関わると、システム１００の初期容量は尽きる可能性がある。この場合も、本発明によるシステム１００のアーキテクチャにより、システム１００に容易に吸収させることが可能な追加ハードウェアを用いて新しいコントローラを設けることが可能である。
【００２２】
同様に、セッション数が所定のしきい値を超えるときには、マネージャ１０７と同様の複数のマネージャを設け、これらのマネージャは、図４と同様の階層に動的に再編成される。
【００２３】
以上、本発明の実施例について説明したが、さまざまな変形例が可能である。例えば、実施例では、共同作業者間のテキストチャット通信機能がサロゲートの協力により実現される。サロゲートを用いて、「テキストチャット」通信に加えて、あるいはその代わりに、他の通信手段を設けることも可能である。そのような他の通信手段には、標準的な電話、インターネット電話、パケット電話およびビデオ会議機能が含まれる。
【００２４】
さらに重要なこととして、システム１００は、例えばサービス販売員が、製品の販売、あるいは、顧客との請求書の問題点の解決をしようとする場合に、サービス産業にとって非常に有効である。販売の場合、サービス販売員（例えばＵ−１のユーザ）と顧客（例えばＵ−２のユーザ）が、システム１００にアクセスし、あるセッションに参加して、コンピュータネットワーク（例えばＷＷＷ）を通じて関連する製品データベース（例えばウェブサイト）に協調的にアクセスし、リアルタイムで相互に対話的に通信して販売を完了することが可能である。請求書の問題点の場合、サービス販売員と顧客はあるセッションに参加し、代わる代わる関連するデータベースを参照して、リアルタイムで相互に対話的に通信し、請求書の問題点を解決することができる。
【００２５】
さらに、実施例の協調的セッションでは、ＵＲＬを変更したブラウザのサロゲートがコントローラを介して他の共同作業者のサロゲートへ新しいＵＲＬ情報を送る。その後、他の各サロゲートはそれぞれのウェブブラウザにその新しいＵＲＬのＨＴＭＬ文書を開くよう指示する。これに対して、ＵＲＬを共有する代わりに、共同作業者は、ＨＴＭＬ文書の内容を共有することも可能である。この代替法では、サロゲートは、対応するブラウザによって開かれた新しいＵＲＬのＨＴＭＬ文書のコピーを取得し、それを、コントローラを通じて、他のサロゲートに送る。他のサロゲートは、それぞれのウェブブラウザに、受け取ったコピーを表示するよう指示する。
【００２６】
しかし、上記のＵＲＬ共有法と内容共有法では異なる効果を生じることがある。ＵＲＬ共有法では、各共同作業者が独立にその新しいＵＲＬにアクセスして文書を取得すると、そのＵＲＬに過大なトラフィックが発生することがある。実際、一部の共同作業者は文書にアクセスすることができるが、他の共同作業者はウェブサーバが過負荷となったためにアクセスを拒否されるという可能性がある。内容共有法では、ウェブサーバから一度だけ文書を取得することによって、そのような過負荷は避けられる。
【００２７】
さらに、ＵＲＬ共有法では、共同作業者は同一の文書を見ていない可能性がある。例えば、文書が、そのウェブサイトが訪問された回数を記録するフィールドを含む場合、各共同作業者が見ている文書は少なくともそのフィールドの示される数については異なる。従って、ＵＲＬ共有法は、２人の共同作業者が同一の文書を受け取ることができるべきではないような場合には有効である。例として、請求書の問題点の解決の場合、サービス販売員は顧客よりも多くのデータを有することが好ましい。例えば、顧客に提示されるものに加えて、サービス販売員は、文書から、顧客に対する評価（良い顧客か悪い顧客か）を見たいことがある。この評価は秘密である。内容共有法では、このようなデータのカスタマイズは容易には実現可能ではないが、ＵＲＬ共有法では、このカスタマイズは、サービス販売員に特別のユーザＩＤを割り当てることにより比較的簡単である。データベースが認識可能な特別ＩＤにより、データベースは、サービス販売員と顧客に異なるバージョンの文書を送信する。
【００２８】
最後に、上記では、システム１００について、さまざまなシステム機能が別個の機能ブロックによって実行されるような形式で説明した。しかし、これらのブロックの機能の一部または全部を、例えば適当にプログラムしたプロセッサによって実現することも可能である。
【図面の簡単な説明】
【００２９】
【図１】本発明に従って、ＷＷＷを通じて情報を取得し交換するサーバシステムのブロック図である。
【図２】図１のシステムの動作を実行する際のステップを示す流れ図である。
【図３】図１のシステムの動作を実行する際のステップを示す流れ図である。
【図４】図１のシステムの複数のコントローラの階層を示す図である。
【符号の説明】
【００３０】
１００  サーバシステム
１０７  マネージャ
１０９  ＨＴＴＰサーバ
１５１  ウェブブラウザ
１５３  サロゲート
１７１  ウェブブラウザ
１７３  サロゲート
３８８  コントローラ
【図１】
2008269658.tif 000003
【図２】
2008269658.tif 000004
【図３】
2008269658.tif 000005
【図４】
2008269658.tif 000006