(57)【特許請求の範囲】
【請求項１】
サーバ及び他の装置との間でデータの授受を行なう通信装置であって、
サーバ及び他の装置と通信するための通信手段と、
データの転送要求が与えられると、前記通信手段を用いて前記サーバよりデータを取得し、前記ブラウザに与えるためのデータ取得手段と、
データの閲覧に関する所定の操作入力を受付けるための入力手段と、
前記入力手段が受付けた入力操作に応じてデータの転送要求を前記データ取得手段に与えるとともに、前記データ取得手段により取得されるデータを閲覧可能に出力するためのブラウザと、
前記データ取得手段により取得されるデータにフラグを付して保持するためのフラグ付データ保持手段とを含み、
前記フラグは、第１の値又は第２の値に設定され、
前記通信装置はさらに、
前記データ取得手段が前記ブラウザより与えられた転送要求に応答して取得したデータを前記フラグ付データ保持手段が保持すると、当該データに付されたフラグを前記第１の値に設定するための手段と、
前記フラグが第１の値に設定されると、当該フラグに対応するデータを取得する動作を前記他の装置に実行させるための制御情報を、前記通信手段を用いて前記他の装置へ送信するための制御情報送信手段と、
前記通信手段を用いて前記他の装置よりデータの転送要求を受信するための転送要求受信手段と、
前記転送要求受信手段が受信した転送要求に対応するデータであって、前記第１の値に設定されたフラグとともに前記フラグ付データ保持手段に保持されているデータを、前記通信手段を用いて前記他の装置に提供して、当該データに付されているフラグを第２の値に設定するためのデータ提供手段と、
前記転送要求受信手段が受信した転送要求に対応するデータが前記フラグ付データ保持手段に保持されているという条件、及び、当該データとともに保持されているフラグが第１の値に設定されているという条件、のいずれかが充足されていない場合には、当該転送要求を前記データ取得手段に与えるための手段と、
前記データ取得手段が前記与えるための手段より与えられた前記転送要求に対応するデータを取得すると、当該データを、前記通信手段を用いて前記他の装置へ提供するための手段とを含む通信装置。
【請求項２】
サーバ及び複数存在する他の装置との間でデータの授受を行なう通信装置であって、
前記サーバ及び前記他の装置の各々と通信するための通信手段と、
データの転送要求が与えられると、前記通信手段を用いて前記サーバよりデータを取得するためのデータ取得手段と、
前記データ取得手段で取得したデータに前記他の装置ごとに設けられたフラグを付して保持するための複数フラグ付データ保持手段とを含み、
前記フラグの各々は、第１の値又は第２の値に設定され、
前記通信装置はさらに、
前記通信手段を用いて前記他の装置よりデータの転送要求を受信するための転送要求受信手段と、
前記転送要求受信手段が前記他の装置のうち第１の装置から前記転送要求を受信したときに、当該転送要求に対応するデータが当該第１の装置に対応する前記第１の値に設定されたフラグとともに前記複数フラグ付データ保持手段に保持されていなければ、当該転送要求を前記データ取得手段に与えるため手段と、
前記データ取得手段が前記与えるための手段より与えられた転送要求に対応するデータを取得すると、当該データを、前記通信手段を用いて前記第１の装置へ提供するための第１のデータ提供手段と、
前記データ取得手段が前記与えるための手段により与えられた転送要求に対応するデータを取得し、当該データを前記複数フラグ付データ保持手段が保持すると、当該データに付されたフラグであって前記他の装置のうち第１の装置と異なる第２の装置に対応するフラグを、第１の値に設定するための手段と、
前記フラグが第１の値に設定されると、当該データを取得する動作を前記他の装置に実行させるための制御情報を、前記通信手段を用いて前記第２の装置へ送信するための制御情報送信手段と、
前記転送要求受信手段が受信した転送要求に対応するデータであって、転送要求の送信元の装置に対応する前記第１の値に設定されたフラグとともに前記複数フラグ付データ保持手段に保持されているデータを、前記通信手段を用いて転送要求の送信元である他の装置に提供して、当該データに付されている当該他の装置のフラグを前記第２の値に設定するための第２のデータ提供手段とを含む、通信装置。
【請求項３】
さらに、
データの閲覧に関する所定の操作入力を受付けるための入力手段と、
前記入力手段が受付けた操作入力に応じてデータの前記転送要求を前記データ取得手段に与えるとともに、前記データ取得手段により取得されるデータを閲覧可能に出力するためのブラウザと、
前記データ取得手段が前記ブラウザにより与えられた前記転送要求に対応するデータを取得し、当該データを前記複数フラグ付データ保持手段が保持すると、当該データに付された前記他の装置の各々に対応するフラグを、第１の値に設定するための手段とを含む、請求項２に記載の通信装置。
【請求項４】
コンピュータにより実行されると、当該コンピュータを請求項１〜請求項３のいずれかに記載の通信装置として動作させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを共有し、そのデータをユーザが共同で利用するための技術に関し、特に、複数の装置でネットワーク上のデータを共有し共同で利用するための通信装置、データ共有システム、データ共有装置、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
通信技術の発展と普及とに伴い、多種多様な情報が実際の距離に関係なく伝送されるようになった。例えば、パーソナルコンピュータ及び最近の携帯電話機等の情報端末は、いわゆるインターネットを介して世界中のサーバにアクセスできる。それらのユーザは、家庭内など好きな場所にいながらにしてさまざまなウェブページを閲覧することができる。また、離れた場所にいる複数のユーザが、情報端末を用いてリアルタイムにコミュニケーションをとることも可能となった。
【０００３】
離れた場所にいるユーザ同士がコミュニケーションをとる際、双方のユーザが同じ情報を共有して同じ情報を閲覧するようにすると、円滑なコミュニケーションを図ることができて便利である。後掲の特許文献１及び特許文献２には、ネットワーク上で公開されているウェブページを閲覧するためのブラウザをそれぞれ持つ端末同士が、ウェブページのデータを共有するための技術が開示されている。
【０００４】
特許文献１に記載のシステムは、ネットワークを介して接続された複数の端末を含む。この技術においては、一方の端末のブラウザに対して操作が行なわれると、当該端末が他方の端末に対し、ネットワーク上でのデータの場所を表すＵＲＬ（Uniform  Resource  Locator）と、閲覧中のデータに関しブラウザに対して行なわれた操作の情報とを送信する。他方の端末は、これらの情報にしたがい動作し、ＵＲＬにより表される場所にあるデータを取得し、そのデータを操作の情報により表される操作にしたがって表示する。そのため、双方の端末においてブラウザに対する操作の状態は同一に保たれ、双方の端末のブラウザは、同じＵＲＬにあるデータを取得し表示することができる。
【０００５】
特許文献２に記載のシステムは、それぞれネットワークに接続された複数の端末と、ネットワークに接続され、データ共有を行なうためのキャッシュを持つコラボレーションサーバとを含む。ある端末のブラウザに対する操作が行なわれると、その端末は、行なわれた操作内容の反映を行なう。この際の操作がデータの取得を求めるものであれば、その端末はコラボレーションサーバを介して共有用のページを取得する。この際の操作が、データの取得を要する動作以外の動作（例えば、スクロールバーの移動、フォーカス選択の移動など）を求めるものであれば、端末は、コラボレーションサーバを介して、共有用のページへその操作内容の反映を行なう。このようにしてある端末により操作内容の反映が行われると、共有相手の端末は、その情報を取得して自端末のブラウザに反映させる。
【０００６】
コラボレーションサーバは、端末からページの取得要求があった場合には、ネットワークを介して取得したデータとブラウザへの操作情報とを一つにまとめて共有用のページを作成し、共有用のページを端末に送信するとともに、共有用のページをコラボレーションサーバのキャッシュに保存する。コラボレーションサーバは、ブラウザ操作により端末から共有用のページへ内容変更の要求があった場合には、キャッシュに保存されている共有用のページの内容を変更する。また、共有相手の端末は、共有用のページの内容に変化があった場合に、その情報を取得して自端末のブラウザに反映させる。このようにして、端末はコラボレーションサーバのキャッシュに蓄積された共有用のページを共有することで、相手と同じ操作状態でデータを共有できる。例えば、端末は自端末のブラウザを操作した際に操作結果を共有用のページに反映させ、又は共有用のページの内容に変化があった場合に、変化した情報を取得して自端末のページに反映させる。
【０００７】
【特許文献１】特開平１０−１２４４６１号公報
【特許文献２】特許第３４３７９３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１に開示された技術では、データのある場所（ＵＲＬ）について情報を共有し、それぞれの端末がＵＲＬを指定してウェブサーバにアクセスしデータを取得する。そのため、ウェブサーバに対するあるアクセスとその次のアクセスとの間に、指定されたＵＲＬにあるデータが変更された場合には、データ共有を行なったことにはならない。
【０００９】
特許文献２に開示された技術では、データ共有を行なうためのキャッシュ機能を備えたサーバを利用し、端末はキャッシュにある同じデータを共有する。そのため、アクセスごとに異なるデータを取得する問題は解決できる。ただし、この技術において端末間で共有されるデータは、コラボレーションサーバにより作成される共有用のページである。この共有用のページは操作情報を含んでいる。操作情報は、端末で行なわれる操作の状況に応じて変化するため共有用のページは、端末で行なわれる操作の状況に応じて変化する、再利用できないデータとなる。また、コラボレーションサーバのキャッシュ機能は、現在共有の対象となっている共有用のページを保存するためのものである。そのため、以下のような問題が生じる。
【００１０】
すなわち、第１に、端末は、共有の対象となるデータを過去に取得したことがあっても、過去に取得したそのデータを再利用できない。端末は、共有の対象となるデータが指定されるたびに、共有用のページをコラボレーションサーバに要求して、コラボレーションサーバからデータを取得しなければならない。コラボレーションサーバは、共有の対象となるデータが端末において指定されるたびに、いちいちウェブサーバから該当するデータを取得し、共有用のページを作成した上で端末に送信しなければならない。したがって、端末がデータにアクセスするたびに、コラボレーションサーバとウェブサーバとの間、及びコラボレーションサーバと各端末との間での通信が発生し、端末から当該データへのアクセスは、その分非効率的なものになる。
【００１１】
第２に、この技術では、端末のみでデータ共有を行なえず、共有用のページを保存するためのキャッシュ機能を備えた別のコラボレーションサーバが必要となる。さらに、コラボレーションサーバのキャッシュ機能は、データ共有以外の用途に使用することが困難である。コラボレーションサーバのキャッシュ機能は、現在共有を行なっている共有用のページを保存するためのものであるため、一度ウェブサーバにアクセスして取得したデータをキャッシュに保存し、保存しておいたデータを端末に提供するプロキシ機能はない。コラボレーションサーバのキャッシュを用いて、上記のようなプロキシ機能を実現しようとすると、データの共有に参加している端末以外のものから、キャッシュへのアクセスを受けることになり、端末からのアクセスごとにキャッシュの中身が書換わってしまうおそれがある。キャッシュの中身である共有用のページが書換わってしまうと、キャッシュを用いたデータの共有が成立しなくなる。
【００１２】
それゆえに、本発明の目的は、複数のブラウザ間でデータの共有を簡便に行なうことができ、他の装置との間で共有の対象となるデータが変化する場合においても、確実にかつ効率的にデータの共有を行なうことを可能とする通信装置を提供することである。
【課題を解決するための手段】
【００１３】
本発明の第１の局面に係る通信装置は、サーバ及び他の装置と通信するための通信手段と、データの転送要求が与えられると、通信手段を用いてサーバより当該データの転送要求に対応するデータを取得するためのデータ取得手段と、データの閲覧に関する所定の操作入力を受付けるための入力手段と、入力手段が受付けた操作入力に応じてデータの転送要求をデータ取得手段に与えるとともに、データ取得手段により取得されるデータを閲覧可能に出力するためのブラウザと、データ取得手段により取得されたデータを保持するためのデータ保持手段と、データ取得手段がブラウザより与えられた転送要求に応じてデータを取得すると、データを取得する動作を他の装置に実行させるための制御情報を、通信手段を用いて他の装置へ送信するための制御情報送信手段と、通信手段を用いて他の装置よりデータの転送要求を受信するための転送要求受信手段と、制御情報送信手段が制御情報を送信した後に転送要求受信手段が転送要求を受信すると、データ保持手段に保持されているデータを、通信手段を用いて他の装置へ提供するためのデータ提供手段とを含む。
【００１４】
好ましくは、通信装置はさらに、制御情報送信手段が制御情報を送信したという条件が充足されていない状態で転送要求受信手段がデータの転送要求を受信したという条件が充足されると、データ取得手段に当該転送要求を与えるための手段と、与えるための手段より与えられた転送要求に対応するデータをデータ取得手段が取得すると、通信手段を用いて当該データを他の装置へ提供するための手段とを含む。
【００１５】
本発明の第２の局面に係る通信装置は、サーバ及び他の装置との間でデータの授受を行なう通信装置であって、サーバ及び他の装置と通信するための通信手段と、データの転送要求が与えられると、通信手段を用いてサーバよりデータを取得し、ブラウザに与えるためのデータ取得手段と、データの閲覧に関する所定の操作入力を受付けるための入力手段と、入力手段が受付けた入力操作に応じてデータの転送要求をデータ取得手段に与えるとともに、データ取得手段により取得されるデータを閲覧可能に出力するためのブラウザと、データ取得手段により取得されるデータにフラグを付して保持するためのフラグ付データ保持手段とを含む。フラグは、第１の値又は第２の値に設定される。通信装置はさらに、データ取得手段がブラウザより与えられた転送要求に応答して取得したデータをフラグ付データ保持手段が保持すると、当該データに付されたフラグを第１の値に設定するための手段と、フラグが第１の値に設定されると、当該フラグに対応するデータを取得する動作を他の装置に実行させるための制御情報を、通信手段を用いて他の装置へ送信するための制御情報送信手段と、通信手段を用いて他の装置よりデータの転送要求を受信するための転送要求受信手段と、転送要求受信手段が受信した転送要求に対応するデータであって、第１の値に設定されたフラグとともにフラグ付データ保持手段に保持されているデータを、通信手段を用いて他の装置に提供して、当該データに付されているフラグを第２の値に設定するためのデータ提供手段とを含む。
【００１６】
好ましくは、通信装置はさらに、転送要求受信手段が受信した転送要求に対応するデータがフラグ付データ保持手段に保持されておりかつ当該データとともに保持されているフラグが第１の値に設定されているという条件が充足されていなければ、当該転送要求をデータ取得手段に与えるための手段と、データ取得手段が与えるための手段より与えられた転送要求に対応するデータを取得すると、当該データを、通信手段を用いて他の装置へ提供するための手段とを含む。
【００１７】
本発明の第３の局面に係る通信装置は、サーバ及び複数存在する他の装置との間でデータの授受を行なう通信装置であって、サーバ及び他の装置の各々と通信するための通信手段と、データの転送要求が与えられると、通信手段を用いてサーバよりデータを取得するためのデータ取得手段と、データ取得手段で取得したデータに他の装置ごとに設けられたフラグを付して保持するための複数フラグ付データ保持手段とを含む。フラグの各々は、第１の値又は第２の値に設定される。通信装置はさらに、通信手段を用いて他の装置よりデータの転送要求を受信するための転送要求受信手段と、転送要求受信手段が他の装置のうち第１の装置から転送要求を受信したときに、当該転送要求に対応するデータが当該第１の装置に対応する第１の値に設定されたフラグとともに複数フラグ付データ保持手段に保持されていなければ、当該転送要求をデータ取得手段に与えるため手段と、データ取得手段が与えるための手段より与えられた転送要求に対応するデータを取得すると、当該データを、通信手段を用いて第１の装置へ提供するための第１のデータ提供手段と、データ取得手段が与えるための手段により与えられた転送要求に対応するデータを取得し、当該データを複数フラグ付データ保持手段が保持すると、当該データに付されたフラグであって他の装置のうち第１の装置と異なる第２の装置に対応するフラグを、第１の値に設定するための手段と、フラグが第１の値に設定されると、当該データを取得する動作を他の装置に実行させるための制御情報を、通信手段を用いて第２の装置へ送信するための制御情報送信手段と、転送要求受信手段が受信した転送要求に対応するデータであって、転送要求の送信元の装置に対応する第１の値に設定されたフラグとともに複数フラグ付データ保持手段に保持されているデータを、通信手段を用いて転送要求の送信元である他の装置に提供して、当該データに付されている当該他の装置のフラグを第２の値に設定するための第２のデータ提供手段とを含む。
【００１８】
好ましくは、通信装置はさらに、データの閲覧に関する所定の操作入力を受付けるための入力手段と、入力手段が受付けた操作入力に応じてデータの転送要求をデータ取得手段に与えるとともに、データ取得手段により取得されるデータを閲覧可能に出力するためのブラウザと、データ取得手段がブラウザにより与えられた転送要求に対応するデータを取得し、当該データを複数フラグ付データ保持手段が保持すると、当該データに付された他の装置の各々に対応するフラグを、第１の値に設定するための手段とを含む。
【００１９】
本発明の第４の局面に係る通信装置は、他の装置と通信するための通信手段と、データを閲覧可能に表示するためのブラウザと、通信手段を用い、データの取得指示を他の装置より受信するためのデータ取得指示受信手段と、通信手段を用い、取得指示に基づき他の装置に転送要求を送信して他の装置よりデータを受信するためのデータ受信手段とを含む。ブラウザは、データ受信手段が取得したデータに基づき出力を更新する。
【００２０】
本発明の第５の局面に係るコンピュータプログラムは、コンピュータにより実行されると、当該コンピュータを第１の局面〜第４の局面に係るいずれかの通信装置として動作させる。
【００２１】
本発明の第６の局面に係るデータ共有システムは、本発明の第１の局面〜第３の局面に係るいずれかの通信装置を有する第１の通信装置と、本発明の第４の局面に係る通信装置を有する第２の通信装置とを含む。第１の通信装置の通信手段は、サーバ及び第２の通信装置の通信手段と通信し、第２の通信装置の通信手段は、第１の通信装置の通信手段と通信する。
【００２２】
本発明の第７の局面に係るデータ共有装置は、データを閲覧可能に表示するための所定のブラウザと共に用いられ、ブラウザにより行なわれる閲覧対象のデータの表示が、予め定められた共有相手となる端末装置においても行なわれるよう、共有相手となる端末装置との間でデータを共有するためのデータ共有装置である。ブラウザは、閲覧対象のデータを取得する動作の実行時に、当該閲覧対象のデータの転送要求を発行する。データ共有装置は、ブラウザにより閲覧対象のデータの転送要求が発行されたことに応答して、当該閲覧対象のデータを取得するための取得手段と、取得手段により取得された閲覧対象のデータをブラウザに供給して、当該閲覧対象のデータをブラウザに表示させるための供給手段と、取得手段により取得された閲覧対象のデータを予め定められたキャッシュに格納するための格納手段と、供給手段により閲覧対象のデータがブラウザに供給されたときに、当該閲覧対象のデータのキャッシュからの取得を、共有相手となる端末装置に対し要求するためのデータ取得要求手段とを含む。
【発明を実施するための最良の形態】
【００２３】
［第１の実施の形態］
以下、図面を参照しつつ本発明の一実施の形態について説明する。なお、以下の説明に用いる図面では、同一の部品に同一の符号を付してある。それらの名称及び機能も同一である。したがって、それらについての詳細な説明は繰返さない。
【００２４】
図１に、本実施の形態に係るデータ共有システムの概略構成を示す。図１を参照して、データ共有システム１００は、ネットワーク１０２を介してデータを提供するためのサーバ１０４と、それぞれネットワーク１０２に接続され、サーバ１０４より提供されるデータを共有し、当該データを互いに他と同様の態様で閲覧可能に表示するための端末装置１１０及び１１２を含む。サーバ１０４は、具体的には一般的なウェブサーバであり、ウェブページ等のデータを保持し、ネットワーク１０２を介して所定の転送要求を受信したことに応答して、その転送要求に対応するデータを要求元に返信する。より具体的には、ネットワーク１０２を介して所定のＨＴＴＰ（Hyper  Text  Transfer  Protocol）リクエストを受信したことに応答して、その転送要求に対応するデータを返信する。
【００２５】
端末装置１１０及び１１２には、主体的にデータ共有のための処理を行ないデータの共有を開始する装置であるか、開始する側の装置に対するデータ共有の相手となる装置であるかという観点から、２種類の装置に分類される。すなわち、共有の対象となるデータの管理を行ない、データの共有に要する処理を開始する側（以下、「開始側」と呼ぶ。）の端末装置１１０と、当該端末装置に対する共有相手となる側（以下、「相手側」と呼ぶ。）の端末装置１１２とである。本明細書では、前者の端末装置１１０を「開始側共有端末装置」と呼び、後者の端末装置１１２を「相手側共有端末装置」と呼ぶ。なお、端末装置が開始側／相手側のいずれに属するかは固定されることはないが、以下の説明では、端末装置１１０が開始側であり端末装置１１２が相手側であるものとする。
【００２６】
開始側端末装置１１０は、ネットワーク１０２を介してサーバ１０４に転送要求を送信し、サーバ１０４から返信されるデータを閲覧可能な態様で表示するとともに当該返信されるデータを相手側共有端末装置１１２と共有する。相手側共有端末装置１１２は、ネットワーク１０２を介して開始側共有端末装置１１０との間でデータを共有し、共有しているデータを取得し閲覧可能な態様で表示する。
【００２７】
開始側共有端末装置１１０は、ネットワーク１０２を介して通信を行なうためのインタフェースとなる通信部１２０と、ユーザによる操作を受けて、その操作に対応する操作情報を発行するための入力部１２２と、入力部１２２により発行される操作情報にしたがってデータを取得し表示するためのブラウザ１２６と、ブラウザ１２６によるデータの取得を仲介するとともに、取得したデータ及びユーザによる操作を相手側共有端末装置１１２との間で共有する処理を行なうための開始側共有制御部１２４と、開始側共有制御部１２４に接続され、ブラウザ１２６が開始側共有制御部１２４を介して取得したデータを蓄積するためのキャッシュ１２８とを含む。
【００２８】
相手側共有端末装置１１２は、開始側共有端末装置１１０の通信部１２０、入力部１２２、及びブラウザ１２６と同一の機能を持つ通信部１３０、入力部１３２、及びブラウザ１３６と、ブラウザ１３６によるデータの取得を仲介するとともに、取得したデータ及びユーザによる操作を共有する処理を実行するための相手側共有制御部１３４とを含む。なお、相手側共有端末装置１１２は、開始側共有端末装置１１０と同様のキャッシュを含んでもよいが、本実施の形態に係るデータ共有システム１００において、データ及び操作の共有を行なう場合、相手側共有端末装置１１２のキャッシュは使用されない。
【００２９】
ブラウザ１２６及び１３６はいずれも、具体的には一般的なウェブブラウザである。すなわち、ユーザによる操作にしたがい、ネットワーク１０２上で提供されているデータの転送を要求するためにＨＴＴＰリクエストを発行し、当該発行したＨＴＴＰリクエストに対応するＨＴＴＰレスポンスを受け、当該ＨＴＴＰレスポンスに含まれるデータを閲覧可能に表示する。ただし、ブラウザに対する操作の内容は、入力部１２２又は１３２からブラウザ１２６又は１３６に直接に与えられ、さらに開始側共有制御部１２４又は相手側共有制御部１３４にも与えられる。開始側共有制御部１２４及び相手側共有制御部１３４は、与えられる操作情報に基づき、ブラウザ１２６及び１３６を制御し、データ及び操作の共有を行なう。以下、ブラウザ１２６及び１３６をそれぞれ、「開始側のブラウザ１２６」及び「相手側のブラウザ１３６」と呼ぶことがある。
【００３０】
ユーザによるブラウザに対する操作は次の二つに分類することができる。すなわち、ブラウザ１２６又は１３６のデータを更新する操作と、データを更新する操作に含まれない操作である。具体的には、ＵＲＬなどデータのアドレスを指定する操作、他のデータへのハイパーリンクが設定されたオブジェクトをクリックする操作、データ取得履歴を利用して別のデータへ更新するための「進む」「戻る」ボタンを押す操作、データを再取得するリロード（再読込）ボタンを押す操作、及びフォームデータを送信するボタンを押す操作が前者の操作に該当する。現在保持しているデータに基づいて表示を更新する操作などは、後者の操作に該当する。具体的には、表示をスクロールする操作、同一データ内の別の位置へのハイパーリンクが設定されたオブジェクトをクリックする操作、及びブラウザの表示領域を拡大／縮小する操作が、後者の操作に該当する。
【００３１】
開始側共有端末装置１１０及び相手側共有端末装置１１２は、双方が同一の情報を同一の状態で表示するよう、データ及びその表示に関する操作を共有する。図２に、ブラウザ１２６及び１３６における表示の遷移例を示す。図２を参照して、開始側共有端末装置１１０又は相手側共有端末装置１１２において、ユーザがデータを更新する操作を行なったものとする。この操作に応答して、開始側共有端末装置１１０及び相手側共有端末装置１１２はデータを共有する。例えば、開始側共有端末装置１１０があるデータを取得し、開始側のブラウザ１２６が表示画面１５０を表示すると、相手側共有端末装置１１２も、画面１５０の表示に用いられたデータと同じデータを取得する。相手側のブラウザ１３６は画面１５０と同じ画面１５２を表示する。
【００３２】
さらに、開始側共有端末装置１１０及び相手側共有端末装置１１２の一方において、データを更新する操作に含まれない操作を行なうと、まず操作を受付けた装置の表示にその操作が反映され、続いて、他方の装置の表示に同じ操作が反映される。例えば、開始側共有端末装置１１０のユーザが、画面１５０上のスクロールバー１５４Ａを画面の下方向に移動させる操作を行なったものとする。この操作はまず開始側のブラウザ１２６で反映される。すなわち、開始側のブラウザ１２６の表示は、画面１５０から画面１６０に変更される。画面１６０においては、スクロールバー１５４Ａの表示位置が移動し、それに伴い画面上でのデータの表示も変更される。続く操作の共有により、相手側のブラウザ１３６においても操作が反映される。すなわち、相手側のブラウザ１３６の表示は画面１５２から、開始側のブラウザ１２６の表示している画面１６０と同じ画面１６２に変更される。画面１６２上のスクロールバー１５４Ｂの位置は画面１６０上のスクロールバー１５４Ａの位置と同じ位置となる。
【００３３】
開始側共有端末装置１１０と相手側共有端末装置１１２とは、互いにユーザの入力に応答してブラウザの制御情報を作成する。さらに一方の装置のブラウザに対し行なわれた制御が他方の装置のブラウザにおいても行なわれるように、制御情報を相互にやり取りする。制御情報は、例えば、ブラウザの表示画面のスクロール、進む、戻る、及び履歴表示等の操作に対応する処理を制御するための情報、並びに取得すべきデータの位置を表すＵＲＬ及びＵＲＬにより示される位置に対応するデータの転送を受けるようブラウザを制御するための情報である。
【００３４】
開始側共有端末装置１１０及び相手側共有端末装置１１２が同じ表示を行なうためには、双方が同じデータを得ることが必要となる。ところが、サーバ１０４により提供されるデータは、同一のＵＲＬにより識別されるデータであっても、アクセスするタイミング等により変化することがある。
【００３５】
そこで、本実施の形態に係るデータ共有システム１００は、キャッシュ１２８を用いて、データの共有を行なう。一般的なウェブブラウザにおいては、キャッシュを用いてデータへのアクセス速度を向上させることが行なわれている。すなわち、ウェブブラウザがネットワークにアクセスしてデータを取得し表示した際に、取得したデータをキャッシュに格納しておく。同じデータを再度表示しようとした際には、ウェブブラウザはキャッシュから該当するデータを取得して表示する。これによりブラウザは、ネットワーク１０２へアクセスすることなく、同じデータを繰返し表示することができる。
【００３６】
本実施の形態に係るデータ共有システム１００においてキャッシュ１２８は、開始側のブラウザ１２６に対しては、一般的なキャッシュとしての機能を持つ。ただしキャッシュ１２８は、相手側のブラウザ１３６に対しては、共有されるべきデータの唯一の転送元として機能する。すなわち、データの取得を要する処理を求める操作が行なわれると、開始側共有端末装置１１０が、サーバ１０４又はキャッシュ１２８から、相手側共有端末装置１１２に先立ってデータを取得し、開始側のブラウザ１２６に転送する。さらに、取得したデータをキャッシュ１２８に格納することにより、開始側のブラウザ１２６に転送されたデータと同じデータを準備する。そして、キャッシュ１２８に格納されたデータの転送を相手側のブラウザ１３６が受けるようにする。
【００３７】
〈構成〉
図３に、図１に示すキャッシュ１２８内のデータの概略構成を示す。図３を参照して、キャッシュ１２８は、複数のキャッシュデータ１７０Ａ，１７０Ｂ，…，１７０Ｎを含む。キャッシュデータ１７０Ａ，１７０Ｂ，…，１７０Ｎの各々は、そのキャッシュデータを識別するための名称１７２と、データ１７４とを含む。名称１７２は、ネットワーク１０２を介してデータ１７４を取得した際に用いられたＵＲＬに対応する。開始側共有制御部１２４がキャッシュ１２８からデータを取得する際には、名称１７２を参照して、取得すべきデータを選択する。
【００３８】
図４に、開始側共有制御部１２４及び相手側共有制御部１３４が作成する制御情報の例を示す。図４を参照して、制御情報には２種の情報が存在する。一方の制御情報１８０Ａは、データを更新する操作に含まれない操作に対応する動作を、ブラウザに命令するための操作制御情報である。他方の制御情報１８０Ｂは、データを更新する操作に対応し、データの取得を命令するためのデータ取得制御情報である。
【００３９】
操作制御情報１８０Ａは、この制御情報がデータを更新する操作に含まれない操作に対応する動作をブラウザに要求するものであることを表すパラメタである操作制御要求を格納するフィールド１８２と、操作の内容１８４とを含む。
【００４０】
データ取得制御情報１８０Ｂは、この制御情報がデータの取得を要求するものであることを表すパラメタであるデータ取得制御要求を格納するフィールド１８６と、取得対象のデータに対応するＵＲＬ１８８とを含む。本実施の形態に係るデータ取得制御情報１８０Ｂはさらに、データを取得する際の転送元がネットワーク１０２上のサーバ１０４であるか、キャッシュであるかの別を表す転送元指定情報１９０を含む。転送元指定情報１９０は、転送元がサーバであることを表す第１の値と、転送元がキャッシュであることを表す第２の値とのいずれかをとる。開始側共有端末装置１１０が相手側共有端末装置１１２に対してデータ共有制御情報１８０Ｂを送信する際には、開始側共有制御部１２４が転送元指定情報１９０の値を第２の値に設定する。それ以外の場合には、転送元指定情報１９０の値は、開始側共有制御部１２４又は相手側共有制御部１３４により設定される。
【００４１】
本実施の形態に係る開始側共有端末装置１１０は、実質的には、一般的なコンピュータと同様のプログラム実行のためのハードウェアと、そのハードウェアにより実行されるコンピュータプログラム（以下単に「プログラム」と呼ぶ。）と、そのハードウェアに格納されるデータとにより実現される。図５に、このコンピュータシステム２００の内部構成を示す。
【００４２】
図５を参照して、このコンピュータシステム２００は、コンピュータ２１０と、キーボード２１２と、マウス２１４と、モニタ２１６とを含む。コンピュータ２１０は、ＣＤ−ＲＯＭ（コンパクトディスク読出専用メモリ）ドライブ２２２及びＦＤ（フレキシブルディスク）ドライブ２２６と、ＣＰＵ（中央処理装置）２２８と、キーボード２１２と、マウス２１４と、モニタ２１６、ＣＤ−ＲＯＭドライブ２２２、ＦＤドライブ２２６、ＣＰＵ２２８に接続されたバス２３０と、バス２３０に接続され、ブートアッププログラム等を記憶する読出専用メモリ（ＲＯＭ）２３２と、バス２３０に接続され、プログラム命令、システムプログラム、及び作業データ等を記憶するランダムアクセスメモリ（ＲＡＭ）２３４と、プログラム及びデータを記憶するハードディスク２３６と、図１に示すネットワーク１０２への接続を提供するネットワークアダプタボード２３８とを含む。
【００４３】
コンピュータシステム２００に開始側共有端末装置１１０としての動作を行なわせるためのプログラムは、ＣＤ−ＲＯＭドライブ２２２若しくはＦＤドライブ２２６に挿入されるＣＤ−ＲＯＭ２２０若しくはＦＤ２２４に記憶され、さらにハードディスク２３６に転送される。又は、プログラムはネットワーク１０２（図１参照）を通じてコンピュータ２１０に送信されハードディスク２３６に記憶されてもよい。プログラムは実行の際にＲＡＭ２３４にロードされる。ＣＤ−ＲＯＭ２２０から、ＦＤ２２４から、若しくはネットワーク１０２を介して、直接にＲＡＭ２３４にプログラムをロードしてもよい。
【００４４】
このプログラムは、コンピュータ２１０に本実施の形態に係る開始側共有端末装置１１０として動作を行なわせる複数の命令を含む。この動作を行なわせるのに必要な基本的機能のいくつかはコンピュータ２１０上で動作するオペレーティングシステム（ＯＳ）若しくはサードパーティのプログラム、又はコンピュータ２１０にインストールされる各種ツールキットのモジュールにより提供される。したがってこのプログラムは開始側共有端末装置１１０の動作をコンピュータ２１０に実行させるのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能又は「ツール」を呼出すことにより、上記した開始側共有端末装置１１０としての動作を実行する命令のみを含んでいればよい。コンピュータシステム２００の動作は周知であるので、ここでは繰返さない。
【００４５】
図６に、開始側共有端末装置１１０の機能をコンピュータに実現させるためのプログラムの制御構造を示す。図６を参照して、開始側共有端末処理２６０が開始されると、ステップ２６２において、ユーザによる操作の有無を判定する。入力部１２２（図１参照）により操作情報が発行されたならば、ステップ２６４に進む。さもなければステップ２７４に進む。ステップ２６４では、操作情報に基づき、ユーザによる操作がデータを更新する操作であるかそれ以外のものであるかを判定する。データの取得を伴う動作を求める操作であれば、ステップ２７０に進む。それ以外のものであればステップ２７２に進む。この判定は、ブラウザ１２６において実行される。
【００４６】
ステップ２７０では、相手側共有端末装置１１２（図１参照）との間でのデータの共有を実現するための開始側データ共有処理を行ない、ステップ２６２に戻る。開始側データ共有処理の詳細については、図７を用いて後述する。
【００４７】
ステップ２７２では、新たなデータの取得を伴わない動作を求める操作の共有を行なうための操作共有処理を行ない、ステップ２６２に戻る。操作共有処理の詳細については、図８を用いて後述する。
【００４８】
ステップ２６２からステップ２７４に処理が移行すると、ステップ２７４において、相手側共有端末装置１１２から制御情報を受信したか否かを判定する。制御情報を受信したならばステップ２７６に移行する。さもなければステップ２６２に戻る。
【００４９】
ステップ２７６では、受信した制御情報を解析する。続くステップ２７８では、受信した制御情報が操作制御情報１８０Ａであるか、データ取得制御情報１８０Ｂであるかを判定する。制御情報がデータ取得制御情報１８０Ｂであれば、ステップ２７０の開始側データ共有処理に移行する。操作制御情報１８０Ａであれば、操作制御情報１８０Ａにより表される操作の内容を開始側のブラウザ１２６において反映するための操作制御情報反映処理をステップ２８０において行ない、ステップ２６２に戻る。操作制御情報反映処理の詳細については、図９を用いて後述する。
【００５０】
図７に、図６のステップ２７０において行なわれる開始側データ共有処理の制御構造を示す。図７を参照して、ステップ２７０の開始側データ共有処理が開始されると、ステップ３０２において、開始側のブラウザ１２６がこのデータ取得制御情報１８０Ｂにしたがい転送要求を発行し、開始側共有制御部１２４がこれを受付ける。なお、図６のステップ２６２で受付けた操作が、リロード（再読込）ボタンを押す操作など、サーバ１０４からのデータ取得を指定した操作である場合には、転送要求において、データの転送を禁止するための記述を付加する。例えば、ＨＴＴＰリクエストで転送要求を行なう際に、ヘッダに、キャッシュ１２８からのデータの転送を禁止するための記述「Ｐｒａｇｍａ：ｎｏ−ｃａｃｈｅ」が付加される。
【００５１】
ステップ３０４では、転送要求により指定された転送元からデータを取得する。すなわち、転送元としてサーバ１０４が指定されていたならば、ステップ３０２で受付けた転送要求を、当該転送要求に基づきネットワーク１０２を介してサーバ１０４に送信し、サーバ１０４からデータを受信する。転送元としてキャッシュが指定されていたならば、該当するデータをキャッシュ１２８（図１参照）から読出す。
【００５２】
ステップ３０６では、ステップ３０４で取得したデータを開始側のブラウザ１２６に供給し、当該データを開始側のブラウザ１２６の表示に反映させる。ステップ３０８では、ステップ３０４で受信したデータをキャッシュ１２８に格納し、開始側のブラウザ１２６において反映されているデータとキャッシュ１２８内のデータとを同期させる。
【００５３】
続くステップ３１０では、データ取得制御情報１８０Ｂを準備し、その転送元指定情報１９０を、キャッシュ１２８を表す第２の値に設定する。ステップ３１２では、ステップ３１０で準備したデータ取得制御情報１８０Ｂを相手側共有端末装置１１２（図１参照）に送信する。ステップ３１６では、相手側共有端末装置１１２から転送要求が送信されてくるのを待ち、転送要求を受信するとステップ３１８に進む。なお、相手側共有端末装置１１２から転送要求を受信した場合、当該転送要求においては、図１２を用いて後述するとおり、キャッシュ１２８からのデータの転送を指定する情報が付加されている。
【００５４】
ステップ３１８では、ステップ３１６で受信した転送要求にしたがい、転送の対象となるデータをキャッシュ１２８から取得する。ステップ３２０では、ステップ３１８で取得したデータを相手側共有端末装置１１２に送信し、処理を終了する。
【００５５】
図８に、図６のステップ２７２において実行される操作共有処理の制御構造を示す。図８を参照して、ステップ２７２の操作共有処理が開始されると、ステップ３４４において、操作が自己のブラウザに反映されるのを待ち、そのブラウザの動作に関しブラウザから情報を得る。操作が反映されるとステップ３４６に進む。ステップ３４６では、ステップ２７４で得た情報をもとに操作制御情報１８０Ａを作成し、共有関係にある他の装置に対して操作制御情報１８０Ａ送信し、処理を終了する。
【００５６】
図９に、図６のステップ２８０において実行される操作制御反映処理の制御構造を示す。図９を参照して、ステップ２８０の操作制御情報反映処理が開始されると、ステップ３６０において、他の装置から受信した操作制御情報１８０Ａをもとに、ブラウザに対し操作情報を模した情報を生成し、ブラウザに対し発行する。ステップ３６２では、操作制御情報１８０Ａにより指定された制御内容の操作がブラウザに反映されるのを待つ。操作が反映されると処理を終了する。
【００５７】
本実施の形態に係る相手側共有端末装置１１２（図１参照）は、開始側共有端末装置１１０に係るコンピュータシステム２００（図５参照）と同様のプログラム実行のためのハードウェアと、そのハードウェアにより実行されるプログラムと、そのハードウェアに格納されるデータとにより実現される。相手側共有端末装置１１２の機能を実現するコンピュータの内部構造は図５に示すコンピュータシステム２００と同様であり、その動作は周知であるので、これらについての説明は、ここでは繰返さない。
【００５８】
図１０に、相手側共有端末装置１１２の機能をコンピュータに実現させるための制御構造を示す。図１０を参照して、相手側共有端末処理３８０の制御構造は、図６に示す開始側共有端末処理２６０の制御構造に類似する。図１０において、図６と同じステップには同じ参照符号を付してある。ただし、相手側共有端末処理３８０では、開始側共有端末処理２６０のステップ２７０における開始側データ共有処理に替えて、ステップ３８８の処理を行なう。ステップ３８８では、開始側共有端末装置１１０との間で共有されるデータを取得し自己のブラウザに反映させるための相手側データ取得処理を行なう。また、相手側共有端末処理３８０では、開始側共有端末処理２６４での判定結果が得られれば、ステップ３８６へ進む。ステップ３８６では、開始側共有端末装置１１０との間でのデータの共有を実現するための相手側データ共有処理を行ない、ステップ３８８に進む。
【００５９】
図１１に、図１０のステップ３８６において実行される相手側データ共有処理の制御構造を示す。図１１を参照して、ステップ３８６での相手側データ共有処理が開始されると、ステップ４２４で、転送要求をもとにデータ取得制御情報１８０Ｂを作成し開始側共有端末装置１１０に送信する。このデータ取得制御情報１８０Ｂに対し、開始側共有端末装置１１０が開始側データ共有処理（図７参照）を行なって、データ取得制御情報１８０Ｂを送信してくる。ステップ４２６では、開始側共有端末装置１１０からデータ取得制御情報１８０Ｂが送信されてくるのを待つ。データ取得制御情報１８０Ｂを受信すると、相手側データ共有処理３８６を終了し、図１０のステップ３８８に示す相手側データ取得処理に移行する。
【００６０】
図１０に示すステップ３８８の相手側データ取得処理は、開始側共有端末１１０からデータ取得制御情報１８０Ｂが与えられた場合に実行される。このデータ取得制御情報１８０Ｂは、図７に示す開始側データ共有処理のステップ３１２において送信されたものである。したがって、このデータ取得制御情報１８０Ｂの転送元指定情報１９０は、第２の値に設定されている。
【００６１】
図１２に、図１０のステップ３８８において実行される相手側データ取得処理の制御構造を示す。図１２を参照して、この処理が開始されると、ステップ４４２において、相手側共有制御部１３４（図１参照）が、受信したデータ取得制御情報１８０Ｂにしたがい転送要求を発行する。データ取得制御情報１８０Ｂにおいて、データの転送元としてキャッシュが指定されているため、相手側共有制御部１３４は、この転送要求を開始側共有端末装置１１０にこれを送信する。この転送要求は、開始側共有端末装置１１０のキャッシュ１２８からのデータの転送を要求する旨の情報を含む。
【００６２】
この転送要求を開始側共有端末装置１１０が図７に示すステップ３１６において受信し、ステップ３１８及び３２０の処理を行なう。これにより、開始側共有端末装置１１０は、相手側共有端末装置１１２に対しキャッシュ１２８内のデータを送信してくる。
【００６３】
ステップ４４４では、開始側共有端末装置１１０から送信されてきたデータを取得する。ステップ４４６では、ステップ４４４で受信したデータを相手側のブラウザ１３６に与え、相手側のブラウザ１３６の表示に当該データを反映させて処理を終了する。
【００６４】
〈動作〉
本実施の形態に係るデータ共有システム１００（図１参照）は、大別して２種類の動作を実行する。一方の動作は、データ共有を行ない、開始側のブラウザ１２６と相手側のブラウザ１３６とに同一のデータを反映させる動作であり、他方の動作は、ユーザの操作を共有し、ブラウザ１２６及び１３６の表示状態を同一に保つ動作である。いずれの動作も、開始側共有端末装置１１０のユーザ又は相手側共有端末装置１１２のユーザによる操作に応答して開始される。
【００６５】
以下にまず、データ共有を行なうための動作について説明する。図１３に、開始側共有端末装置１１０に対してユーザが操作を行なう場合における、サーバ１０４にあるデータを新たに取得し共有する処理のシーケンスを示す。図１３を参照して、開始側共有端末装置１１０のユーザが入力部１２２に対して、データの取得を要する操作を行なう。入力部１２２（図１参照）は、その操作に対応する操作情報４６０を発生する。
【００６６】
ここで、開始側共有端末装置１１０は、以下の処理４６２を行なってサーバ１０４に対して転送要求４６４を送信する。すなわち、開始側のブラウザ１２６が、与えられた操作情報にしたがい動作する。この場合、操作に基づき取得すべきデータのＵＲＬを特定し、そのデータに関する転送要求４６４を発行する。この際、受付けた操作がサーバ１０４からのデータ取得を指定した操作であれば、ブラウザにより、転送要求に、キャッシュ１２８からのデータの転送を禁止するための記述が付加される。開始側共有制御部１２４は、まず転送要求をもとに、取得すべきデータのＵＲＬを特定する。転送要求に対応するデータがキャッシュ１２８内にない場合、又は、上記記述によりキャッシュからのデータの転送が禁止されている場合、この転送要求を、通信部１２０を介してサーバ１０４に対して送信する。
【００６７】
サーバ１０４は、転送要求４６４を受信すると、その転送要求により指定されたＵＲＬのデータを取得する処理４６６を行ない、取得したデータ４６８を転送の要求元である開始側共有端末装置１１０に送信する。開始側共有制御部１２４は、通信部１２０を介してデータ４６８を受信する。
【００６８】
転送要求に対応するデータがキャッシュ１２８内にあり、かつキャッシュからのデータの転送が禁止する記述が転送要求にない場合、サーバ１０４からデータ４６８を得る代わりに、処理４６２において次の処理を行なう。すなわち、開始側共有制御部１２４は、この転送要求に基づき、キャッシュ１２８から、その転送要求により指定されたＵＲＬのデータ４６８を取得する。
【００６９】
以上のようにして、開始側共有制御部１２４がデータ４６８を取得すると、そのデータ４６８を開始側のブラウザ１２６に与えて、開始側のブラウザ１２６の表示にデータ４６８を反映させる。開始側共有制御部１２４はさらに、データ４６８をキャッシュ１２８に格納する。キャッシュ１２８内のキャッシュデータ１７０Ａ，１７０Ｂ，…，１７０Ｎ（図３参照）のうち上記の指定されたＵＲＬに対応する名称１７２を持つものにおいて、そのキャッシュデータ内のデータ１７４は、開始側のブラウザ１２６において表示されているデータと同一のデータとなる。
【００７０】
続いて、開始側共有制御部１２４は、データの取得を相手側のブラウザ１３６（図１参照）に実行させるためのデータ取得制御情報４７６を作成する処理４７４を行なう。作成されるデータ取得制御情報４７６のＵＲＬ１８８は、処理４６２において転送要求をもとに特定されたＵＲＬと同じである。ただし、開始側共有制御部１２４は、キャッシュ１２８を転送元に指定するために、転送元指定情報１９０を第２の値に設定する。開始側共有制御部１２４は、作成したデータ取得制御情報４７６を、通信部１２０を介して相手側共有端末装置１１２に対して送信する。
【００７１】
相手側共有制御部１３４（図１参照）は、通信部１３０を介してデータ取得制御情報４７６を受信すると、以下の処理４７８を実行する。すなわち、相手側共有制御部１３４は、受信したデータ取得制御情報４７６にしたがい、データ取得制御情報４７６のＵＲＬ１８８（図４参照）に対応するデータに関する転送要求４８０を発行する処理を行なう。この転送要求において指定されるＵＲＬは、転送要求４６４により指定されるＵＲＬと同じである。しかし、データ取得制御情報４７６においては転送元としてキャッシュ１２８が指定されているため、発行される転送要求４８０においても、転送元としてキャッシュ１２８が指定される。相手側共有制御部１３４はこの転送要求４８０を、通信部１３０を介して開始側共有端末装置１１０に対し送信する。
【００７２】
開始側共有制御部１２４は、通信部１２０を介して相手側共有端末装置１１２から転送要求４８０を受信すると、以下の処理４８２を実行する。すなわち開始側共有制御部１２４は、当該転送要求に基づいてデータの転送元を特定する。転送要求４８０においては、転送元としてキャッシュ１２８が指定されている。そのため、開始側共有制御部１２４は、キャッシュ１２８（図３参照）から該当するデータ４８４を取得する。この際、開始側共有制御部１２４は、キャッシュデータ１７０Ａ，１７０Ｂ，…，１７０Ｎの中から、転送要求４８０により指定されたＵＲＬに対応する名称１７２を持つものを選び、当該キャッシュデータにおけるデータ１７４を取得する。転送要求４８０により指定されるＵＲＬは、転送要求４６４により指定されるＵＲＬと同じであるため、この際取得されるデータ４８４は、サーバ１０４が処理４６６において開始側共有端末装置１１０に送信したデータ４６８となる。取得したデータ４８４は、相手側共有端末装置１１２に送信される。
【００７３】
相手側共有制御部１３４が、通信部１３０（図１参照）を介してこのデータ４８４を受信すると、当該データ４８４を相手側のブラウザ１３６に与えて、当該データ４８４を相手側のブラウザ１３６の表示に反映させる。相手側のブラウザ１３６の表示に反映されるデータ４８４は、開始側のブラウザ１２６において表示に反映されたデータ４６８と同じものである。したがって、開始側のブラウザ１２６の表示に反映されたデータと同じデータが、相手側のブラウザ１３６の表示に反映される。
【００７４】
図１４に、相手側共有端末装置１１２に対してユーザが操作を行なった場合におけるデータ共有の処理のシーケンスを示す。なお、図１４において図１３と同じ処理及び情報には同じ参照符号を付してある。図１４を参照して、相手側共有端末装置１１２のユーザが入力部１３２（図１参照）に対して、データを更新するための操作を行なう。入力部１３２はその操作に対応する操作情報５００を発生し、相手側のブラウザ１３６に与える。相手側共有装置１１２は、以下の処理５０２を行なう。すなわち、まず相手側のブラウザ１３６が操作情報５００に応答して、転送要求を発行する。相手側共有制御部１３４は、この転送要求をもとに、データ取得制御情報５０４を作成し、通信部１３０を介して開始側共有端末装置１１０に送信する。
【００７５】
この場合、開始側共有端末装置１１０は、処理４６２において、このデータ取得制御情報５０４に基づき、転送要求を作成し、これをサーバ１０４に送信する。これ以降、開始側共有端末装置１１０は、図１３に示す処理と同様の処理を実行する。したがって、開始側のブラウザ１２６の表示に反映されたデータと同じデータが、相手側のブラウザ１３６の表示に反映される。
【００７６】
続いて、操作の共有を実現する動作について説明する。図１に示す開始側共有端末装置１１０及び相手側共有端末装置１１２の一方において、ユーザがデータを更新する操作以外の操作を行なう。当該操作を受けた装置のブラウザ（ブラウザ１２６又はブラウザ１３６）は、その操作に応じて動作し、当該操作を受けた装置の共有制御部（開始側共有制御部１２４又は相手側共有制御部１３４）は、操作情報にしたがってブラウザが動作し操作が反映されると、そのブラウザの動作に関しブラウザから情報を得る。共有制御部は、得た情報をもとに操作制御情報１８０Ａを作成し、共有関係にある他の装置に対して操作制御情報１８０Ａを送信する。
【００７７】
操作制御情報１８０Ａを受信すると、操作制御情報１８０Ａをもとに、ブラウザに対し操作情報を模した情報を生成し、ブラウザに与える。操作制御情報１８０Ａにより指定された制御内容の操作がブラウザに反映されるのを待つ。操作が反映されると処理を終了する。
【００７８】
以上のように、データの取得を伴う処理を要求する操作が開始側共有端末装置１１０及び相手側共有端末装置１１２のいずれの装置において行なわれた場合でも、その操作に対応するデータ取得制御情報が、開始側共有端末装置１１０に集約される。その結果、開始側共有端末装置１１０が相手側共有端末装置１１２に先立ってデータの取得を行なうことになる。この際、データをサーバ１０４から新たに取得するか、それともキャッシュ内に既に存在するデータを取得するかを選択できる。
【００７９】
さらに、取得したデータを開始側のブラウザ１２６の表示に反映させるとともに、キャッシュ１２８に保持しておく。これにより、開始側のブラウザ１２６に反映させたデータがサーバ１０４から取得した新たなデータであっても、またキャッシュ１２８に格納されていたデータであっても、そのデータと同じデータがキャッシュ１２８内に準備されることになる。キャッシュ１２８へのデータ格納後に開始側共有端末装置１１０が相手側共有端末装置１１２に対しデータ取得制御情報を発行することにより、相手側共有端末装置１１２は、キャッシュ１２８内のデータを取得することが可能になる。
【００８０】
さらに、開始側共有端末装置１１０が、データ取得制御情報においてキャッシュ１２８を転送元として指定する。これにより、相手側共有端末装置１１２は、キャッシュ１２８からのデータの転送を要求することになる。開始側共有端末装置１１０は、この要求にしたがって、データの転送元としてキャッシュ１２８を選び、当該キャッシュ１２８内に格納されたデータを相手側共有端末装置１１２に送信する。したがって、開始側のブラウザ１２６の表示に反映されたデータと同じデータが、相手側のブラウザ１３６の表示に反映される。
【００８１】
［第２の実施の形態］
第１の実施の形態では、開始側共有端末装置１１０と相手側共有端末装置１１２とが、データ取得制御情報において転送元指定情報を設定し、ブラウザに転送元の指定を行なわせて、開始側共有端末装置１１０と相手側共有端末装置１１２との間のデータの共有を実現した。しかし、本発明はこのような実施の形態には限定されない。
【００８２】
以下に示す第２の実施の形態においては、データ取得制御情報は転送元指定情報を含まない。その代り、キャッシュに格納されるデータ自体に、転送元の指定に関する情報を付与する。そして、データの取得時に、当該付与する情報に基づいて転送元の選択を行なう。なお、第２の実施の形態では、後述のとおり、１台の開始側共有端末装置に対して、複数の相手側共有端末装置がネットワーク１０２を介して接続されていても適切にデータ共有を実現できる。前提として、相手側共有端末装置１１２の転送要求の送信先は、取得するデータのＵＲＬに関わらず、常に開始側共有端末装置１１０に設定される。これは、例えば相手側共有端末装置１１２のプロキシサーバとして、開始側共有端末装置１１０を設定することによって実現される。
【００８３】
第２の実施の形態に係るデータ共有システムは、第１の実施の形態に係るデータ共有システム１００と同様に、開始側共有端末装置１１０及び相手側共有装置１１２を含む。これらの開始側共有端末装置１１０及び相手側共有装置１１２は、第１の実施の形態と同様のハードウェアと、そのハードウェアにより実行されるプログラムと、そのハードウェアに格納されるデータとにより実現される。しかし、本実施の形態に係るキャッシュのデータ構成は、第１の実施の形態に係るキャッシュのものと異なる。
【００８４】
図１５に、本実施の形態に係るキャッシュのデータ構成を示す。図１５を参照して、キャッシュ５３０は、キャッシュデータ５３２Ａ，５３２Ｂ，…，５３２Ｎを格納する。これらのキャッシュデータ５３２Ａ，５３２Ｂ，…，５３２Ｎはそれぞれ、図３に示すキャッシュデータ１７０Ａ，１７０Ｂ，…，１７０Ｎと同様に、データを識別するための名称１７２とデータ１７４とを含む。さらに、キャッシュデータ５３２Ａ，５３２Ｂ，…，５３２Ｎの各々に対して、相手側共有端末装置１１２へのデータを転送する際に転送元についての判別に用いるフラグを格納するための領域５４０が設けられている。この領域５４０には、相手側共有端末装置を表す値が格納される（以下、この状態を「フラグが立っている」と呼ぶ。）。又は何も格納されない（以下、この状態を「フラグが下りている」と呼ぶ。）。フラグは、当該データが、当該フラグの値により表されている相手側共有端末装置１１２と共有されるべきであることを表す。例えばキャッシュデータ５３２Ａには、「共有相手Ａ」という名前の相手側共有端末装置を表すフラグが立っている。これは、「ｗｗｗ．○○○．ｃｏ．ｊｐ」の名称で識別されるキャッシュデータ５３２Ａがデータ共有の対象であることを表す。すなわち、このキャッシュデータ５３２Ａに関する転送要求が与えられた場合には、要求されたキャッシュデータ５３２Ａにおけるデータ１７４をキャッシュから取得して転送するべきであることを表す。また、例えばデータ５３２Ｂのフラグは下りている。これは、「ｗｗｗ．△△△．ｃｏ．ｊｐ」の名称で識別されるキャッシュデータ５３２Ｂがデータ共有の対象ではないことを表す。すなわち、このキャッシュデータ５３２Ｂに関する転送要求が開始側共有制御部１２４に与えられた場合には、開始側共有制御部１２４は、キャッシュ内からデータ５３２Ｂを取得して要求の発行元に転送しても、サーバ１０４からデータを取得して転送してキャッシュデータ５３２Ｂを取得したデータで更新してもよいことを表す。
【００８５】
なお、フラグは、立っている状態に対応する第１の値、又は下りている状態に対応する第２の値に設定される。相手側共有端末装置が１台であれば、フラグは立っている状態と下りている状態とを区別できればよい。この場合、１と０との２値で表してもよい。フラグが立っている状態にあるときに限り、フラグが立っている状態にあることを表す情報を付与し、下りている状態になると、その情報を消去するようにすることによっても、フラグが立っている状態と下りている状態とを表すことができる。相手側共有端末装置が複数の場合には、それぞれの相手側共有端末装置を表すフラグを設定する。これらのフラグの各々は、対応の相手側共有端末装置に関して、フラグが立っている状態にあるのか、下りている状態にあるのかを表す。この場合、相手側共有端末装置ごとに１と０との２値で状態を表したフラグをデータに付してもよい。また、データの送信がまだ行なわれていない相手側共有端末装置を表す情報をデータに付与し、その相手側共有端末装置に対するデータの送信が完了すると、その情報を消去するようにすることによっても、フラグが立っている状態と下りている状態とを表すことができる。
【００８６】
本実施の形態において開始側共有制御部１２４は、図４に示すデータ取得制御情報１８０Ｂに代る制御情報として、データ取得指示を作成し相手側共有端末装置１１２に対し送信する。図１６に、データ取得指示の例を示す。データ取得指示５５０は、その制御情報が開始側共有端末装置１１０から相手側共有端末装置１１２に対してデータの取得を指示するものであることを表すパラメタを格納するフィールド５５２と、取得するデータのＵＲＬ５５４とを含む。データ取得指示５５０は、第１の実施の形態に係るデータ取得制御要求情報１８０Ｂが有するような転送元指定情報を持たない。
【００８７】
第２の実施の形態において、開始側共有制御部１２４及び相手側共有制御部１３４がデータを更新する操作に含まれない操作に応じて実行する動作を実現するための処理の制御構造は、第１の実施の形態のものと同様である。開始側共有制御部１２４及び相手側１３６がデータを更新する操作に応じて実行する処理の構造は、第１の実施の形態に係る処理の制御構造とは異なる。以下、コンピュータに、第２の実施の形態に係る開始側共有端末装置としての機能を実現させるためのプログラムにおいて、開始側共有制御部１２４の動作を実現するための開始側共有端末処理の制御構造を説明する。
【００８８】
開始側共有端末装置１１０の共有制御部１２４は、データの転送要求（ＨＴＴＰリクエスト）が与えられるとサーバ１０４より転送要求（ＨＴＴＰリクエスト）に対応するデータをＨＴＴＰレスポンスを用いて取得するためのデータ取得処理と、データを取得する動作を相手側共有端末装置１１２に実行させるための制御情報（データ取得指示）を送信するための制御情報送信処理と、相手側共有端末装置１１２よりデータの転送要求（ＨＴＴＰリクエスト）を受信するための転送要求受信処理と、データ転送要求受信処理で受信した転送要求（ＨＴＴＰリクエスト）に基づくデータをＨＴＴＰレスポンスを用いて相手側共有端末装置１１２に提供するデータ提供処理とを行なう。
【００８９】
図１７に、入力部１２２（図１参照）がデータを更新する操作を受けたときの開始側共有装置１１０の処理６００の構造をフローチャートで示す。図１７を参照して、この処理６００の実行が開始されると、まず、ステップ６０２において、ブラウザ１２６の表示するデータを更新する操作を受付ける。ブラウザ１２６は、受付けた操作に対応する動作を実行する。この場合データを更新する操作を受付けているため、ブラウザ１２６は、更新により新たに表示されるべきデータを取得するための転送要求（ＨＴＴＰリクエスト）を発行する。この際、受付けた操作がサーバ１０４からのデータ取得を指定した操作であれば、ブラウザにより、転送要求のヘッダ内に、キャッシュからのデータの転送を禁止するための記述が付加される。ステップ６０４では、ステップ６０２で発行された転送要求（ＨＴＴＰリクエスト）をもとに、取得すべきデータの名称を調べる。具体的には、取得すべきデータのネットワーク上での場所を表すＵＲＬを求める。
【００９０】
ステップ６０６では、この時点でキャッシュ１２８に保持されているデータを、以降の処理に利用できるか否かを判定する。ステップ６０４で求めたＵＲＬに対応するデータがキャッシュ１２８に保持されていて、かつ、転送要求（ＨＴＴＰリクエスト）にキャッシュからのデータの転送を禁止するための記述が付加されていない、という条件が充足されていれば、キャッシュ１２８に含まれているデータを利用できると判定し、ステップ６１４に進む。充足されていなければ、利用できないと判定し、ステップ６０８に進む。
【００９１】
ステップ６０８及びステップ６１０ではデータ取得処理を実行する。ステップ６０８では、ステップ６０４で求めたＵＲＬに基づき、ステップ６０２で発行された転送要求（ＨＴＴＰリクエスト）を、通信部１２０を介してサーバ１０４に対して送信する。ステップ６１０ではサーバ１０４よりデータを取得する。具体的には、ステップ６０８で送信した転送要求（ＨＴＴＰリクエスト）に対する応答（ＨＴＴＰレスポンス）をサーバ１０４より受信する。続くステップ６１２では、取得したデータをキャッシュ１２８に格納する。
【００９２】
ステップ６１４では、キャッシュ１２８内のステップ６０４で求めたＵＲＬに対応するデータに、フラグを立てる。もし相手側共有端末装置１１２が複数台存在する場合には、相手側共有端末装置１１２の各々に対応するフラグを立てる。ステップ６１６では制御情報送信処理を実行する。すなわち、通信部１２０を介して相手側共有端末装置１１２に対し、取得されたデータに関するデータ取得指示５５０を送信する。もし相手側共有端末装置１１２が複数台存在する場合には、相手側共有端末装置１１２の各々に対してデータ取得指示５５０を送信する。ステップ６１８では、ブラウザ１２６における表示内容を、キャッシュ１２８内にある取得されたデータに基づいて更新し処理６００を終了する。
【００９３】
以上、図１７に示す処理６００により、開始側共有端末装置１１０のブラウザ１２６が新しいデータに基づいて表示を更新した場合には、キャッシュ１２８にデータが保持され、さらにキャッシュ内のそのデータに対応してフラグが立つことになる。
【００９４】
図１８に、開始側共有端末装置１１０が、相手側共有端末装置１１２より転送要求（ＨＴＴＰリクエスト）を受付けて、その転送要求（ＨＴＴＰリクエスト）に応答する処理６４０の制御構造をフローチャートで示す。図１８を参照して、処理６４０の実行が開始されると、ステップ６４２において転送要求受信処理を実行する。すなわち、転送要求（ＨＴＴＰリクエスト）を受付ける。
【００９５】
ステップ６４４では、ステップ６４２で与えられた転送要求を解析する。具体的には、当該ＨＴＴＰリクエストに含まれるＵＲＬを取出すとともに、ＨＴＴＰリクエストの送信元を識別する。またこの際、ＨＴＴＰリクエストのヘッダ内において、キャッシュからのデータの転送を禁止するための記述があるかを調べる。
【００９６】
ステップ６４６では、相手側の要求するデータを、キャッシュ１２８内で検索する。ステップ６４８では、キャッシュ１２８に含まれているデータを利用できるかを判定する。すなわち、ステップ６４４で取出したＵＲＬに対応するデータがステップ６４６でキャッシュ１２８で検索され、かつ、ステップ６４４でキャッシュからのデータの転送を禁止するための記述が検出されなかった、という条件が充足されていれば、キャッシュ１２８内のデータを利用できると判定し、ステップ６５０に進む。条件が充足されていなければ、利用できないと判定し、ステップ６５２に進む。
【００９７】
ステップ６５０では、ステップ６４６で検索されたキャッシュ１２８内のデータにフラグが立っているか否かを判定する。フラグが立っていなければ、判定結果はＮＯとなり、ステップ６５２に進む。立っていれば判定結果はＹＥＳとなり、ステップ６７０に進む。なお、相手側共有端末装置１１２が複数台存在する場合には、ステップ６４４で識別された、送信元の相手側共有端末装置のフラグが立っているか否かを判定する。
【００９８】
ステップ６５２及びステップ６５４では、図１７に示すステップ６０８及びステップ６１０と同様のデータ取得処理を実行する。すなわち、ステップ６５２では、転送要求（ＨＴＴＰリクエスト）をサーバ１０４に送信する。ステップ６５４では、転送要求（ＨＴＴＰリクエスト）への応答（ＨＴＴＰレスポンス）を受信することにより、サーバ１０４からデータを取得する。続くステップ６５６では、受信した取得対象のデータをキャッシュ１２８に格納する。
【００９９】
ステップ６６０では、ステップ６５４で取得したデータを相手側に返信することにより、転送要求に対応するデータを相手側に提供する。具体的には、ステップ６５４で取得されたデータを、転送要求の送信元に対して（ＨＴＴＰレスポンスを用いて）送信する。
【０１００】
ステップ６６２では、ブラウザ１２６における表示内容を、ステップ６５４で取得したデータに基づいて更新する。続くステップ６６６では、ステップ６６０でのデータの送信先以外に、相手側共有端末装置があるか否かを判定する。ステップ６６０でのデータの送信先以外に相手側共有端末装置がある場合とは、例えば、１台の開始側共有端末装置１１０と２台以上の相手側共有端末装置１１２とでデータを共有しているような場合である。ステップ６６０でのデータの送信先以外に相手側共有端末装置があればステップ６６７に進む。なければ処理６４０を終了する。
【０１０１】
ステップ６６７では、ステップ６５６でキャッシュ１２８に格納したデータに対応する、ステップ６６０でのデータの送信先以外の相手側共有端末装置のフラグを立てる。ステップ６６８では、ステップ６６７で立てたフラグに基づき、図１７のステップ６１６と同様の制御情報送信処理を実行する。すなわち、転送要求を送信してきた相手側共有端末装置以外の相手側共有端末装置に対して、取得したデータに関するデータ取得指示５５０を送信し、処理６４０を終了する。これにより、転送要求を送信してきた相手側共有端末装置において行なわれた操作を、それ以外の相手側共有端末装置にも反映させることが可能となる。
【０１０２】
ステップ６７０及び６７２において、データ提供処理が実行される。すなわち、ステップ６７０では、ステップ６４６によりキャッシュ１２８で検索されたデータを含むＨＴＴＰレスポンスを準備し、相手側共有端末装置１１２に対しこれを送信する。続くステップ６７２では、開始側共有制御部１２４は、キャッシュ１２８に保持されたデータに対応する、転送要求の送信元の相手側共有端末装置１１２のフラグを下ろし、処理６４０を終了する。相手側共有端末装置が複数存在する場合でも、ステップ６７２において下ろすフラグは、ステップ６７０でのデータの送信先に対応するもののみである。それ以外の相手側共有端末装置１１２に対応するフラグについては何もしない。このようにしておくと、複数台の相手側共有端末装置の各々に対し共有すべきデータを送信し終えたか否かが、フラグによって識別可能になる。
【０１０３】
なお、図１７のステップ６０６での判定において、利用可能との判定結果が得られたものの、当該キャッシュ１２８に格納されたデータにフラグが立っていることがあり得る。このような場合には、ステップ６０８に進んでサーバ１０４からデータを取得してもよい。
【０１０４】
この場合、ステップ６１２では、新たにサーバ１０４から取得した方のデータを、既に格納されフラグが立っている方のデータとは別に、キャッシュ１２８内に格納する。さらに、新たにサーバ１０４から取得した方のデータにも、フラグを立てる。このようにしておくと、同じＵＲＬに対応する古いデータと新しいデータとが、共にキャッシュ１２８内に存在することになる。この場合、同じＵＲＬに対応するデータのうち、取得日時が古いものを相手側に返信し、古いデータをキャッシュ１２８から削除する。これにより、相手側共有端末装置１１２がまだ取得していないデータがある場合でも、開始側共有端末装置１１０はサーバ１０４から新しくデータを取得し、その後古いデータと新しいデータをともに相手側共有端末装置１１２に提供することができる。
【０１０５】
相手側共有装置１１２の共有制御部１３４は、データを取得する動作を指示する制御情報（データ取得指示）を開始側共有端末装置１１０より受信するためのデータ取得指示受信処理と、データを取得する動作を指示する制御情報（データ取得指示）に基づき開始側共有端末装置１１０に転送要求（ＨＴＴＰリクエスト）を送信して開始側共有端末装置１１０よりＨＴＴＰレスポンスによりデータを受信するためのデータ受信処理とを行なう。以下、図１９、図２０を用いて、第２の実施の形態における相手側共有端末装置１１２の処理を示す。
【０１０６】
図１９に、相手側共有端末装置１１２において、ユーザによる入力部１３２への操作に応じて、ブラウザ１３６の表示を更新する処理７００の構造を示す。処理７００の実行が開始されると、ステップ７０２において、ブラウザ１３６が入力部１３２を介してデータを更新する操作を受付け、その操作に基づき、転送要求（ＨＴＴＰリクエスト）を発行する。ステップ７０４では、取得すべきデータの名称を調べる。具体的には、ステップ７０２の操作に基づいて、取得すべきデータのＵＲＬを求める。ステップ７０６では、ステップ７０２で発行された転送要求（ＨＴＴＰリクエスト）を開始側共有端末装置１１０に送信する。ステップ７０８では、開始側データ共有端末装置１１０からデータを取得する。具体的には、通信部１３０を介してステップ７０６で送信した転送要求への応答（ＨＴＴＰレスポンス）を開始側共有端末装置１１０より受信する。ステップ７１０では、ブラウザ１３６における表示内容を取得したデータに基づき更新し、処理７００を終了する。
【０１０７】
なお、図１９での処理は、プロキシサーバとして、開始側共有端末装置１１０を設定すれば、既存のブラウザ技術において行なうことが可能な処理である。すなわち、相手側共有端末装置１１２は、プロキシサーバとして開始側共有端末装置１１０を設定することにより、転送要求（ＨＴＴＰリクエスト）の送信先を指定していることになる。
【０１０８】
図２０に、相手側共有端末装置１１２が開始側共有端末装置１１０よりデータ取得指示５５０を受信した場合に実行される処理７２０の構造を示す。ステップ７２０の実行が開始されると、ステップ７２２においてデータ取得指示受信処理を実行する。すなわち、通信部１３０を介して開始側共有端末装置１１０よりデータ取得指示５５０を受信する。続くステップ７２４及びステップ７２６では、データ受信処理を実行する。すなわち、ステップ７２４では、ステップ７２２で受信したデータ取得指示５５０に基づき、通信部１３０を介して開始側共有端末装置１１０に対し、ステップ７２２で受信したデータ取得指示５５０において指定されたＵＲＬ５５４を含む転送要求（ＨＴＴＰリクエスト）を送信する。ステップ７２６では、相手側共有制御部１３４は、通信部１３０を介して転送要求への応答（ＨＴＴＰレスポンス）を開始側共有端末装置１１０より受信する。ステップ７２８では、ブラウザ１３６における表示内容を、ステップ７２６で受信したデータに基づいて更新し、処理７２０を終了する。
【０１０９】
本実施の形態においても、開始側共有端末装置１１０及び相手側共有端末装置１１２のいずれにおいてデータの取得を伴う処理を要求する操作が行なわれた場合でも、その操作に対応する転送要求が、開始側共有端末装置１１０に集約される。したがって、開始側共有端末装置１１０が相手側共有端末装置１１２に先立ってデータの取得を行なう。さらに、取得したデータを開始側のブラウザ１２６の表示に反映させるとともに、キャッシュ５３０に保持しておく。これにより、開始側のブラウザ１２６に反映させたデータと同じデータがキャッシュ５３０内に準備される。この際に、当該データを共有する相手側端末装置を表すフラグを立てる。このフラグにより、どのデータが共有すべきデータであるかを識別できるようになる。キャッシュ５３０へのデータ格納後に開始側共有端末装置１１０が相手側共有端末装置１１２に対しデータ取得指示を発行することにより、相手側共有端末装置１１２は、キャッシュ５３０内のデータを取得することが可能になる。相手側共有端末装置１１２は、データの転送を開始側端末装置１１０に要求する。開始側共有端末装置１１０は、この要求に応答して、要求されたデータと同じデータをキャッシュ５３０内で検索し、そのフラグを確認する。共有すべきデータにはフラグが立っているため、データの転送元としてキャッシュ５３０を選び、当該キャッシュ５３０内に格納されたデータを相手側共有端末装置１１２に送信する。したがって、開始側のブラウザ１２６の表示に反映されたデータと同じデータが、相手側のブラウザ１３６の表示に反映される。さらに、この際に立っていたフラグを下ろす。
【０１１０】
再度、データ共有の対象となるデータを開始側のブラウザ１２６に転送する際には、キャッシュ内の該当するデータにはフラグが立っていないため、サーバ１０４から取得し、キャッシュ内のデータを更新することができる。又は、キャッシュ内のデータをそのままブラウザ１２６に転送できる。逆に相手側のブラウザ１３６にデータを転送する際には、キャッシュ内の該当するデータにはフラグが立っているため、必ずキャッシュからデータを取得することになる。よって、確実にデータを共有できる。
【０１１１】
なお、上記の実施の形態では、キャッシュ内のフラグは、当該データを転送する際の転送元を指定するためのものであったが、当該キャッシュ内のデータに関する利用権限の設定にこのフラグを用いることもできる。例えば、フラグの立っているデータに関する転送要求があった場合に、転送要求の発行元をフラグにより表される共有相手によって認証するようにし、認証された相手側端末装置にのみ当該データを転送するようにすることができる。これにより、予め定められた共有の相手以外の装置からネットワーク１０２を介して転送要求を受信した場合に、当該データを誤って当該共有の相手以外の装置に送信することを防止できる。したがって、データ共有システムのユーザがどのようなデータを共有しているかが秘匿され、ユーザのプライバシを保護できる。
【０１１２】
さらに、開始側共有端末装置と相手側共有端末装置とがデータ共有を行っていない状態の時にも、キャッシュとフラグとを利用してデータの授受を行なうことが可能である。例えば、相手側共有端末装置から転送要求が与えられ、キャッシュ内に該当するデータがない場合に、その要求に基づきデータをネットワーク１０２経由で取得し相手側共有装置１１２に転送するとともに、フラグを立てずに当該データをキャッシュに格納する。このように、フラグとキャッシュを利用することにより、開始側共有端末装置１１０は、相手側共有端末装置１１２に対して、あたかもプロキシサーバとして動作することになる。
【０１１３】
上記の第１の実施の形態に係るデータ共有システム１００において、開始側共有制御部１２４は、データ取得制御情報１８０Ｂを開始側のブラウザ１２６に与える際に、キャッシュ１２８内に対象のデータがあるか否かによって、転送元指定情報を設定したが、本発明はこのような実施の形態には限定されない。例えば、キャッシュ１２８内に対象のデータがあっても、そのデータが、キャッシュ内に格納されてから所定期間以上経過していれば、サーバから新たにデータを取得するよう、転送元指定情報を設定するようにしてもよい。また、キャッシュ内に対象のデータがある場合には、ユーザの指示に応じて適宜、開始側共有制御部１２４又は相手側共有制御部１３４により設定されてもよい。開始側共有制御部１２４が相手側共有制御部１３４を介して相手側のブラウザ１３６に対してデータ取得制御情報１８０Ｂを与える場合を除き、データ取得制御情報１８０Ｂに、必ずしも転送元指定情報１９０を含めなくてもよい。例えば、開始側共有制御部１２４が開始側のブラウザ１２６にデータを取得させるために制御情報を発行する場合には、データ取得制御要求１８６とＵＲＬ１８８とからなるデータ取得制御情報を発行するようにしてもよい。このデータ取得制御情報に応じて、開始側のブラウザは、一般的なブラウザと同様の動作で転送要求を発行し、開始側共有制御部１２４は、その転送要求に基づき、一般的なブラウザにおけるデータ取得の動作と同様の動作で、サーバ又はキャッシュからデータを取得してブラウザに転送する。
【０１１４】
また、共有の対象となるデータとして、以前キャッシュしておいたデータを設定してもよい。この場合、一方のデータ共有端末装置が過去にキャッシュしておいたデータを取得して、共有するデータとして設定する。そしてそのデータを、上記第１又は第２の実施の形態に係る方法を用いて、共有相手となる端末装置と共有する。
【０１１５】
上記の第１の実施の形態及び第２の実施の形態においては、開始側共有端末装置がキャッシュを備え、開始側共有端末装置のキャッシュのみを使用してデータの共有を行なっていた。しかし、本発明はこのような実施の形態には限定されない。データ共有システム内の少なくとも一つの装置がキャッシュを持ち、少なくとも一つの端末が開始側共有端末装置としての機能を備えていればよい。例えば、開始側共有端末装置に代り、相手側共有端末装置がキャッシュを持つようにしてもよい。この場合、開始側共有端末装置は、サーバ１０４から受信したデータを自己のブラウザに与えるとともに当該データを、相手側端末装置のキャッシュに格納することになる。
【０１１６】
また例えば、相手側共有端末装置と開始側共有端末装置との両方がキャッシュを持つようにしてもよい。この場合、相手側共有端末装置と開始側共有端末装置とのどちらを、共有対象のデータの蓄積に用いるか、事前に指定する必要がある。またこのような場合、ユーザからデータの取得を要する処理を求める操作を受けた方の装置が、そのデータの共有に関して開始側として動作し、自己のキャッシュにデータを格納するようにしてもよい。
【０１１７】
なお、端末装置は、その時々によって共有開始側にも共有相手側にもなることができる。また、共有に参加する装置に対しユーザが操作を行なうと、その都度、操作を受けた端末装置が開始側として動作するようにしてもよい。この場合、データ共有システム内の各端末装置がキャッシュを備えていれば、操作を受けた端末装置のキャッシュが、その操作に対応して共有されるデータを保持するようにすればよい。過去に共有されたデータは、データ共有システム内の各端末装置のキャッシュ内に分散する。または、操作を受けた端末装置が特定の端末装置にデータを格納するようにし、指定された端末装置のキャッシュがその操作に対応して共有されるデータを保持するようにしてもよい。
【０１１８】
上記実施の形態では、開始側のブラウザに対するユーザの操作は、共有制御部に与えられた。そして、共有制御部が、その操作内容を制御情報に変換して、ブラウザに与えることにより、ブラウザに実行すべき動作を指定した。しかし、本発明は、このような実施の形態には限定されない。例えばブラウザが、直接にユーザから操作を受けるようにしてもよい。この場合、データ及び動作の共有は、例えば以下のように行なわれる。すなわち、ブラウザは、ユーザによる操作を受けてその操作に対応する動作を実行する。ブラウザがデータの取得を要する動作を実行するのであれば、ブラウザは転送要求を発行する。共有制御部は、その転送要求に応答して、データ共有に関する上記一連の動作を実行する。ブラウザがそれ以外の動作を実行する場合には、共有制御部が、ブラウザに与えられた操作又はブラウザの実行した動作を解析し、ブラウザの動作に応じた制御情報を作成して、相手側に送信する。
【０１１９】
以上のように、キャッシュを利用することにより、ブラウザにより表示されるデータを、他のサーバ等を介することなく、共有相手となる他の装置との間で共有できる。サーバにおいて共有の対象となるデータが変化する場合においても、最新のデータを共有することが可能になる。また、キャッシュ内のデータを利用して、データへのアクセス速度の向上とデータの共有とを両立させることもできる。
【０１２０】
共有の対象に共有相手となる他の装置以外の装置からアクセスできないようにして、当該データが書換えられないようにすることができ、共有の対象である閲覧対象のデータと当該閲覧対象のデータの共有を行なうユーザのプライバシとを保護できる。また、キャッシュ内に、データ共有の対象以外のデータがあれば、そのデータへデータ共有以外の目的でアクセスできるようにして、キャッシュを利用して、プロキシ機能とデータ共有とを提供することができる。さらに、ユーザによる操作に関する情報を共有することにより、同じデータを、共有相手となる装置と同じ表示状態で表示できるようになる。
【０１２１】
また、他のサーバ等を介することなく、共有相手となる他の装置との間での通信によってデータの共有を直接的に行なうことが可能になる。
【０１２２】
また、共有されるべきデータを、共有相手となる装置経由で取得し表示することにより、共有相手となる装置との間で、データを共有することができる。さらに、共有相手となる装置との間で、ユーザによる操作に関する情報を共有することにより、共有相手となる装置と同じ表示状態で同じデータを表示することが可能になる。
【０１２３】
上記各実施の形態に係るプログラムをコンピュータで実行することにより、上記各実施の形態の作用及び効果をコンピュータで実現できる。また、そのプログラムが記録した記録媒体から、そのプログラムをコンピュータで読取り実行することにより、上記各実施の形態の作用及び効果をコンピュータで実現できる。
【０１２４】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内でのすべての変更を含む。
【図面の簡単な説明】
【０１２５】
【図１】本発明の実施の形態に係るデータ共有システムの構成を示す概略図である。
【図２】開始側共有端末装置１１０及び相手側共有端末装置１１２のブラウザ１２６及び１３６における表示の遷移例を示す図である。
【図３】キャッシュ１２８内のデータ構成を示す図である。
【図４】制御情報のデータ構成を示す図である。
【図５】開始側共有端末装置１１０の機能及び相手側共有端末装置１１２の機能を実現するコンピュータシステムのブロック図である。
【図６】開始側共有端末装置１１０の共有制御部１２４の動作を実現するための開始側共有端末処理の制御構造を示すフローチャートである。
【図７】図６に示す開始側共有端末処理のステップ２７０において行なわれる開始側データ共有処理の流れを表す図である。
【図８】図６に示す開始側共有端末処理のステップ２７２において行なわれる操作共有処理の流れを表す図である。
【図９】図６に示す開始側共有端末処理のステップ２８０において行なわれる操作制御反映処理の流れを表す図である。
【図１０】相手側共有端末装置１１２の共有制御部１３４の動作を実現するための相手側共有端末処理の制御構造を示すフローチャートである。
【図１１】図１０に示す開始側共有端末処理のステップ３８６において行なわれる相手側データ共有処理の流れを表す図である。
【図１２】図１０に示す開始側共有端末処理のステップ３８８において行なわれる相手側データ取得処理の流れを表す図である。
【図１３】開始側共有端末装置１１０のユーザがデータの取得を求める操作を行なった場合における、データ共有の処理のシーケンスを示す図である。
【図１４】相手側共有端末装置１１２のユーザがデータの取得を求める操作を行なった場合における、データ共有の処理のシーケンスを示す図である。
【図１５】本発明の第２の実施の形態に係るキャッシュのデータ構成を表す図である。
【図１６】第２の実施の形態に係るデータ取得指示の構成を表す図である。
【図１７】第２の実施の形態において、開始側共有端末装置がデータを更新する操作を受けたときの処理の流れを示すフローチャートである。
【図１８】第２の実施の形態において、開始側共有端末装置が、相手側共有端末装置より受付けた転送要求に応答する処理の流れを示すフローチャートある。
【図１９】第２の実施の形態において、相手側共有端末装置がデータを更新する操作を受けたときの処理の流れを示すフローチャートである。
【図２０】第２の実施の形態において、相手側共有端末装置がデータ取得指示に応じて実行する処理の流れを示すフローチャートである。
【符号の説明】
【０１２６】
１００  データ共有システム、１０２  ネットワーク、１０４  サーバ、１１０  開始側共有端末装置、１１２  相手側共有端末装置、１２０，１３０  通信部、１２２，１３２  入力部、１２４  開始側共有制御部、１３４  相手側共有制御部、１２６，１３６  ブラウザ、１２８，５３０  キャッシュ、１７０Ａ，…，Ｎ，５３２Ａ，…，Ｎ  キャッシュデータ、１８０Ａ，１８０Ｂ  制御情報、２１０  コンピュータ、２１２  キーボード、２１４  マウス、２１６  モニタ、２２０  ＣＤ−ＲＯＭ、２２２  ＣＤ−ＲＯＭドライブ、２２４  ＦＤ、２２６  ＦＤドライブ、２２８  ＣＰＵ、２３０  バス、２３２  ＲＯＭ、２３４  ＲＡＭ、２３６  ハードディスク、２３８  ネットワークアダプタボード、５５０  データ取得指示
【図１】
0004714586.tif 000002
【図２】
0004714586.tif 000003
【図３】
0004714586.tif 000004
【図４】
0004714586.tif 000005
【図５】
0004714586.tif 000006
【図６】
0004714586.tif 000007
【図７】
0004714586.tif 000008
【図８】
0004714586.tif 000009
【図９】
0004714586.tif 000010
【図１０】
0004714586.tif 000011
【図１１】
0004714586.tif 000012
【図１２】
0004714586.tif 000013
【図１３】
0004714586.tif 000014
【図１４】
0004714586.tif 000015
【図１５】
0004714586.tif 000016
【図１６】
0004714586.tif 000017
【図１７】
0004714586.tif 000018
【図１８】
0004714586.tif 000019
【図１９】
0004714586.tif 000020
【図２０】
0004714586.tif 000021