(57)【要約】 【課題】  本発明は、情報共有装置に関し、ネットワークへの負荷を増大させることなく容易に端末間の共有情報を一致させることができる情報共有装置を提供することを目的とする。【解決手段】  情報取得手段１１で取得した共有情報に識別子作成手段１２で作成した識別子を関連付けて保持手段１３に保持し、伝達手段１５は、取得した共有情報及び識別子と、保持手段１３に保持されている共有情報の識別子から伝達情報を作成し、送信する。同期手段１６は、識別子のみのデータを受信すると、受信した識別子と一致する識別子が保持手段１３に保持されているか検索し、保持されていなければ、送信元に該識別子に対応する共有情報の再送要求を送信する。【選択図】      図１
2006004277.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続され、互いに情報を共有する情報共有装置において、
共有する共有情報を取得する情報取得手段と、
前記共有情報を識別する識別子を作成する識別子作成手段と、
他の情報共有装置に前記情報取得手段で取得した共有情報及び該共有情報の識別子を送信するとともに、他の情報共有装置からの共有情報及び該共有情報の識別子を受信する伝達手段と、
前記情報取得手段で取得した共有情報及び他の情報共有装置からの共有情報を該共有情報の識別子と関連付けて保持する保持手段と、
他の情報共有装置から受信した識別子に基づいて、前記保持手段に保持されている共有情報を他の情報共有装置と同期させる同期手段とを備え、
前記伝達手段は、前記情報取得手段で取得した共有情報を送信するとき、前記保持手段に保持されている共有情報の識別子も送信することを特徴とする情報共有装置。
【請求項２】
前記同期手段は、受信した識別子に対応する共有情報が前記保持手段に保持されていなければ、該識別子に対応する共有情報を送信元に要求することを特徴とする請求項１に記載の情報共有装置。
【請求項３】
前記伝達手段は、前記識別子及び共有情報を送信するとき、該識別子及び共有情報を連結して伝達情報を作成し、送信することを特徴とする請求項１または２に記載の情報共有装置。
【請求項４】
前記識別子または共有情報には、該共有情報の作成元の情報が付加されていることを特徴とする請求項１から３のいずれかに記載の情報共有装置。
【請求項５】
前記伝達情報には、該伝達情報の作成元の情報が付加されていることを特徴とする請求項３に記載の情報共有装置。
【請求項６】
前記識別子作成手段は、乱数により前記識別子を作成することを特徴とする請求項１から５のいずれかに記載の情報共有装置。
【請求項７】
前記識別子作成手段は、前記共有情報の特徴量に基づいて識別子を作成することを特徴とする請求項１から５のいずれかに記載の情報共有装置。
【請求項８】
複数の端末間で互いに共有する情報を送信する情報送信方法であって、
前記複数の端末間で共有する共有情報を初めて該複数の端末に送信するときに、前記共有情報を識別する識別子を付加して送信し、
その後、送信済みの前記共有情報を送信するときは、該共有情報を識別する識別子のみを送信することを特徴とする情報送信方法。
【請求項９】
複数の端末間で互いに共有する情報を送信する情報送信方法であって、
前記複数の端末間で共有する共有情報を初めて該複数の端末に送信するときに、前記共有情報を識別する識別子を付加して送信し、
その後、送信済みの前記共有情報を送信するときに、該共有情報に対し該共有情報を識別する識別子のデータサイズが小さい場合は、該識別子のみを送信し、該共有情報に対し該共有情報を識別する識別子のデータサイズが大きい場合は、該共有情報のみを送信することを特徴とする情報送信方法。
【請求項１０】
複数の端末間で互いに共有する情報を送信する情報送信方法であって、
前記複数の端末間で共有する共有情報を該複数の端末に送信するときに、保持されている既に送信した共有情報から送信する共有情報と一致するものを検索し、
一致するものが無い場合は、送信する共有情報を識別する識別子を生成し、該共有情報と識別子を関連付けて保持し、該共有情報に該識別子を付加して送信し、
一致するものが有る場合は、一致する共有情報に関連付けられて保持されている識別子のみを送信することを特徴とする情報送信方法。
【請求項１１】
複数の端末間で互いに共有する情報を受信する情報受信方法であって、
前記複数の端末間で共有する共有情報と該共有情報を識別する識別子を受信したとき、該共有情報と識別子を関連付けて保持し、
前記識別子のみを受信したとき、保持されている識別子の中に受信した識別子と一致するものが有る場合は、一致する識別子に関連付けられて保持されている共有情報を受信情報とすることを特徴とする情報受信方法。
【請求項１２】
複数の端末間で互いに共有する情報を受信する情報受信方法であって、
前記複数の端末間で共有する共有情報と該共有情報を識別する識別子を受信したとき、該共有情報と識別子を関連付けて保持し、
前記識別子のみを受信したとき、保持されている識別子の中に受信した識別子と一致するものが無い場合は、送信元に該識別子の共有情報を再送する要求を送信することを特徴とする情報受信方法。
【請求項１３】
少なくとも１つのコンテンツファイルと、該コンテンツファイルを表示動作させる少なくても１つのプログラムとを、単一ファイルにしたカプセル化文書において、前記プログラムとして、請求項８から１２のいずれかの方法をコンピュータに実行させるプログラムを少なくとも１つ有することを特徴とするカプセル化文書。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報共有装置に関し、詳しくは、ネットワークに接続された複数の端末間で互いに情報を共有する情報共有装置に関する。
【背景技術】
【０００２】
従来、ネットワークを介して遠隔の端末間で情報を共有してコミュニケーションを行う情報共有装置が知られている。
【０００３】
この種の情報共有装置としては、ペン入力されたデータから文字や図形を認識し、認識された文字や図形のデータを複数の端末間で送受信して共有しながらコミュニケーションを行うものがある（例えば、特許文献１参照）。
【０００４】
また、入力されたストロークの情報に端末のＩＤを付けて送信し、各ストロークがどの端末で入力されたかを識別して別々に表示するようにしたものもある（例えば、特許文献２参照）。
【０００５】
これらの情報共有装置では、新たに書き加えられた情報のみを送信しているので、途中でコミュニケーションに参加した端末では、参加した時点以降の情報しか取得することができず、参加した時点以前の情報は表示できなかった。
【０００６】
このような問題を解決するものとして、サーバに各端末の最新の情報を保存しておき、新たに参加した端末には、保存している各端末の情報を送信して、途中から参加した端末も最新の状態から情報を共有できるようにしたものもある（例えば、特許文献３）。
【特許文献１】特開平７−３３４４５７号公報
【特許文献２】特開２００１−３１３７６１号公報
【特許文献３】特開平６−３３３０２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、このような方法では、サーバを設ける必要があり、サーバの設置や運用に手間がかかるという問題があった。
【０００８】
そこで、本発明は、共有情報に識別子を付け、識別子を使って端末間で共有情報を同期することにより、ネットワークへの負荷を増大させることなく容易に端末間の共有情報を一致させることができる情報共有装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決する第１の発明は、ネットワークに接続され、互いに情報を共有する情報共有装置において、共有する共有情報を取得する情報取得手段と、前記共有情報を識別する識別子を作成する識別子作成手段と、他の情報共有装置に前記情報取得手段で取得した共有情報及び該共有情報の識別子を送信するとともに、他の情報共有装置からの共有情報及び該共有情報の識別子を受信する伝達手段と、前記情報取得手段で取得した共有情報及び他の情報共有装置からの共有情報を該共有情報の識別子と関連付けて保持する保持手段と、他の情報共有装置から受信した識別子に基づいて、前記保持手段に保持されている共有情報を他の情報共有装置と同期させる同期手段とを備え、前記伝達手段は、前記情報取得手段で取得した共有情報を送信するとき、前記保持手段に保持されている共有情報の識別子も送信することを特徴とするものである。
【００１０】
この発明では、各情報共有装置で共有する共有情報に識別子が付与され、保持手段に共有情報と該共有情報の識別子が保持され、新たな共有情報が他の情報共有装置に送信されるとき、新たに取得された共有情報及び識別子とともに既に保持されている共有情報の識別子が送信され、受信した識別子に基づいて他の情報共有装置と共有情報が同期される。したがって、保持手段に全ての共有情報が保持され、新たな共有情報受信時に一緒に受信した識別子により共有情報が同期される。
【００１１】
上記課題を解決する第２の発明は、上記第１の発明の構成に加え、前記同期手段は、受信した識別子に対応する共有情報が前記保持手段に保持されていなければ、該識別子に対応する共有情報を送信元に要求することを特徴とするものである。
【００１２】
この発明では、識別子により共有情報の欠落が判明し、欠落した共有情報が取得される。したがって、少ない情報量で共有情報が同期される。
【００１３】
上記課題を解決する第３の発明は、上記第１または第２の発明の構成に加え、前記伝達手段は、前記識別子及び共有情報を送信するとき、該識別子及び共有情報を連結して伝達情報を作成し、送信することを特徴とするものである。
【００１４】
この発明では、識別子及び共有情報が連結されて伝達情報が作成され、送信される。したがって、識別子及び共有情報が一括して送信される。
【００１５】
上記課題を解決する第４の発明は、上記第１から第３の発明のいずれかの構成に加え、前記識別子または共有情報には、該共有情報の作成元の情報が付加されていることを特徴とするものである。
【００１６】
この発明では、識別子及び共有情報に作成元の情報が付加されて送信される。したがって、識別子及び共有情報の作成元が分かる。
【００１７】
上記課題を解決する第５の発明は、上記第３の発明の構成に加え、前記伝達情報には、該伝達情報に固有の情報が付加されていることを特徴とするものである。
【００１８】
この発明では、伝達情報に作成元の情報が付加されて送信される。したがって、伝達情報の作成元が分かる。
【００１９】
上記課題を解決する第６の発明は、上記第１から第５の発明のいずれかの構成に加え、前記識別子作成手段は、乱数により前記識別子を作成することを特徴とするものである。
【００２０】
この発明では、識別子が乱数により作成される。したがって、簡便に識別子が作成される。
【００２１】
上記課題を解決する第７の発明は、上記第１から第５の発明のいずれかの構成に加え、前記識別子作成手段は、前記共有情報の特徴量に基づいて識別子を作成することを特徴とするものである。
【００２２】
この発明では、共有情報の特徴量に基づいて識別子が作成される。したがって、識別子に共有情報の特徴が反映される。
【００２３】
上記課題を解決する第８の発明は、複数の端末間で互いに共有する情報を送信する情報送信方法であって、前記複数の端末間で共有する共有情報を初めて該複数の端末に送信するときに、前記共有情報を識別する識別子を付加して送信し、その後、送信済みの前記共有情報を送信するときは、該共有情報を識別する識別子のみを送信することを特徴とするものである。
【００２４】
この発明では、新たな共有情報が送信されるとき、共有情報に識別子が付与されて送信され、送信済みの共有情報が送信されるときは、識別子のみが送信される。したがって、送信済みの共有情報は送信されない。
【００２５】
上記課題を解決する第９の発明は、複数の端末間で互いに共有する情報を送信する情報送信方法であって、前記複数の端末間で共有する共有情報を初めて該複数の端末に送信するときに、前記共有情報を識別する識別子を付加して送信し、その後、送信済みの前記共有情報を送信するときに、該共有情報に対し該共有情報を識別する識別子のデータサイズが小さい場合は、該識別子のみを送信し、該共有情報に対し該共有情報を識別する識別子のデータサイズが大きい場合は、該共有情報のみを送信することを特徴とするものである。
【００２６】
この発明では、新たな共有情報が送信されるとき、共有情報に識別子が付与されて送信され、送信済みの共有情報が送信されるときは、共有情報と識別子のデータサイズが小さいもののみが送信される。したがって、データサイズが小さいものが送信される。
【００２７】
上記課題を解決する第１０の発明は、複数の端末間で互いに共有する情報を送信する情報送信方法であって、前記複数の端末間で共有する共有情報を該複数の端末に送信するときに、保持されている既に送信した共有情報から送信する共有情報と一致するものを検索し、一致するものが無い場合は、送信する共有情報を識別する識別子を生成し、該共有情報と識別子を関連付けて保持し、該共有情報に該識別子を付加して送信し、一致するものが有る場合は、一致する共有情報に関連付けられて保持されている識別子のみを送信することを特徴とするものである。
【００２８】
この発明では、保持されていない共有情報が送信されるとき、共有情報に識別子が付与されて送信され、送信済みの共有情報が送信されるときは、識別子のみが送信される。したがって、送信済みの共有情報は送信されない。
【００２９】
上記課題を解決する第１１の発明は、複数の端末間で互いに共有する情報を受信する情報受信方法であって、前記複数の端末間で共有する共有情報と該共有情報を識別する識別子を受信したとき、該共有情報と識別子を関連付けて保持し、前記識別子のみを受信したとき、保持されている識別子の中に受信した識別子と一致するものが有る場合は、一致する識別子に関連付けられて保持されている共有情報を受信情報とすることを特徴とするものである。
【００３０】
この発明では、識別子のみを受信すると、保持されている識別子から一致するものに対応する共有情報が受信されたものとされる。したがって、既に送信している情報は、識別子のみを送信すれば情報が伝達される。
【００３１】
上記課題を解決する第１２の発明は、複数の端末間で互いに共有する情報を受信する情報受信方法であって、前記複数の端末間で共有する共有情報と該共有情報を識別する識別子を受信したとき、該共有情報と識別子を関連付けて保持し、前記識別子のみを受信したとき、保持されている識別子の中に受信した識別子と一致するものが無い場合は、送信元に該識別子の共有情報を再送する要求を送信することを特徴とするものである。
【００３２】
この発明では、識別子のみを受信し、保持されている識別子に一致するものが無い場合は、送信元に再送要求が送信される。したがって、欠落した共有情報が適宜取得される。
【００３３】
上記課題を解決する第１３の発明は、少なくとも１つのコンテンツファイルと、該コンテンツファイルを表示動作させる少なくても１つのプログラムとを、単一ファイルにしたカプセル化文書において、前記プログラムとして、上記第８から第１２の発明のいずれかの方法をコンピュータに実行させるプログラムを少なくとも１つ有することを特徴とするものである。
【００３４】
この発明では、カプセル化文書に共有する情報を送受信するプログラムが組み込まれる。したがって、カプセル化文書により情報が共有される。
【発明の効果】
【００３５】
第１の発明によれば、共有情報に識別子を付与し、保持手段に共有情報と該共有情報の識別子を保持し、新たな共有情報を送信するとき、新たに取得された共有情報及び識別子とともに既に保持されている共有情報の識別子を送信し、受信した識別子に基づいて共有情報を同期しているので、保持手段に全ての共有情報が保持され、識別子のみの送信で共有情報を同期することができ、ネットワークへの負荷を増大させることなく容易に端末間の共有情報を一致させることができる。
【００３６】
第２の発明によれば、受信した識別子に対応する共有情報が保持手段に保持されていなければ、該識別子に対応する共有情報を取得するようにしているので、識別子により共有情報の欠落が分かり、少ない情報量で共有情報を同期することができる。
【００３７】
第３の発明によれば、識別子及び共有情報を連結して伝達情報を作成し、送信するようにしているので、複数の識別子及び共有情報を一括して送信することができ、送信する情報量を削減することができる。
【００３８】
第４の発明によれば、識別子または共有情報に共有情報の作成元の情報を付加して送信するようにしているので、識別子及び共有情報の作成元が分かり、再送の要求などを確実に送信することができる。
【００３９】
第５の発明によれば、伝達情報に伝達情報の作成元の情報を付加して送信するようにしているので、作成元の情報を１つにまとめることができ、送信する情報量を削減することができる。
【００４０】
第６の発明によれば、識別子を乱数により作成するようにしているので、簡便に識別子を作成することができる。
【００４１】
第７の発明によれば、共有情報の特徴量に基づいて識別子を作成するようにしているので、識別子の一致により共有情報の一致を判定することができる。
【００４２】
第８の発明によれば、新たな共有情報を送信するとき、共有情報に識別子を付与して送信し、送信済みの共有情報を送信するときは、識別子のみ送信しているので、送信済みの共有情報を送信しなくて済み、送信する情報量を削減することができる。
【００４３】
第９の発明によれば、新たな共有情報を送信するとき、共有情報に識別子を付与して送信し、送信済みの共有情報を送信するときは、共有情報と識別子のデータサイズが小さいもののみを送信しているので、送信する情報量を削減することができる。
【００４４】
第１０の発明によれば、保持されていない共有情報を送信するとき、共有情報に識別子を付与して送信し、送信済みの共有情報を送信するときは、識別子のみを送信するように
しているので、送信する情報量を削減することができる。
【００４５】
第１１の発明によれば、識別子のみを受信すると、保持されている識別子から一致するものに対応する共有情報を受信情報としているので、既に送信している情報は、識別子のみを送信すれば情報を伝達することができ、送信する情報量を削減することができる。
【００４６】
第１２の発明によれば、識別子のみを受信し、保持されている識別子に一致するものが無い場合は、送信元に再送要求を送信しているので、送信する情報量を削減しつつ、欠落した共有情報を取得することができる。
【００４７】
第１３の発明によれば、カプセル化文書に共有する情報を送受信するプログラムを組み込んでいるので、ネットワークへの負荷を増大させることなく容易に文書間の共有情報を一致させることができる。
【発明を実施するための最良の形態】
【００４８】
以下、本発明を図面を参照して説明する。
【００４９】
図１は本発明に係る情報共有装置の一実施形態を示す図である。
【００５０】
図１において、情報共有装置１は、他の情報共有装置１と共有する共有情報を取得する情報取得手段１１と、取得された共有情報に関連付ける識別子（ＩＤ）を作成する識別子作成手段１２と、取得された共有情報と作成された識別子を関連付けて保持する保持手段１３と、共有情報を表示装置などに出力する情報出力手段１４と、共有情報と識別子を他の情報共有装置１に伝達させる伝達手段１５と、保持されている共有情報を他の情報共有装置１と伝達手段１５を用いて同期させる同期手段１６とを備えている。
【００５１】
このような情報共有装置１は、図２に示すようなハードウェア構成のコンピュータ２とコンピュータで動作するプログラムにより実現できる。
【００５２】
図２において、コンピュータ２は、演算処理を行うＣＰＵ（Central Processing Unit）２１と、ＯＳ（オペレーティングシステム）等をローディングする為のローダやＢＩＯＳ等を永続的に格納するＲＯＭ（Read-Only Memory）２２と、読み出したプログラムを保持したり、ＣＰＵ２１の演算結果を一時的に保持したりするＲＡＭ（Random Access Memory）２３、ＯＳ、アプリケーションプログラム、データ等を持続的に保持するＨＤＤ（ハードディスクドライブ）２４、ＣＤ（Compact Disc）等のメディアから情報を読み込んだり書き込んだりするリムーバブルメディアドライブ２５と、ネットワークに接続され、該ネットワークのプロトコルを制御してネットワーク上の他のコンピュータとの通信を制御するネットワークインターフェース２６と、処理経過や結果等を操作者に表示するディスプレイ２７と、操作者がコンピュータに命令や情報等を入力する、キーボード２８、マウス２９がバスコントローラ３０を介して接続されている。
【００５３】
一般にコンピュータ２は、ユーザが電源を投入すると、ＣＰＵ２１がＲＯＭ２２内のローダというプログラムに基づいて動作し、ＨＤＤ２４より複数のプログラムから構成されるコンピュータ２のハードウェアとソフトウェアを管理するＯＳというプログラムの一部をＲＡＭ２３に読み込み、ＣＰＵ２１はこのＯＳのプログラムに基づいて動作する。
【００５４】
このＯＳは、ユーザの操作等に応じてプログラムの起動／停止、情報の読み込み／保存等をサポートする。通常ユーザはこのＯＳを通じてユーザの目的とするプログラムを起動する事で目的の処理を行う。
【００５５】
現在この様なコンピュータ２は，パーソナルコンピュータとして発達し、多くのコンピュータはネットワークに接続され、本発明はこの様なネットワークに接続された複数のコンピュータ２における情報共有に関するものである。
【００５６】
具体的には図３に示すように、インターネット、電話回線網等のグローバルネットワークやローカルエリアネットワーク等のネットワーク６に接続された複数のコンピュータ２間で情報を共有し、コンピュータ２を操作しているユーザ間でネットワークコミュニュケーションを行うもので、図１のような構成の情報共有装置１は、入力装置３として図３のキーボード２８、マウス２９を接続され、出力装置４として図３のディスプレイ２７を接続され、通信装置５として図３のネットワークインターフェース２６を接続された図３の様なハードウェア構成のコンピュータ２としてプログラムにより実現される。
【００５７】
次に、フローチャートを使って図１のような構成を実現するために必要なプログラム構成について説明する。
【００５８】
ここで現在のパーソナルコンピュータはイベントドリブンなマルチプロセス、マルチスレッド環境のＯＳ上で動作しているのが普通であるので実際に即してマルチスレッドモデルで説明する。なお、旧来のシングルスレッドでポーリング処理に基づくモデルでもよい。
【００５９】
まず、図４は、情報共有を行うアプリケーションプログラムのメインスレッドの処理を示すフローチャートである。
【００６０】
図４に示すように、最初に、コンピュータの操作者の入力情報やコンピュータ内の情報を取得し、他のコンピュータに情報を送信する情報取得送信スレッドを起動する（Ｓ１１）。次に他のコンピュータから通信装置を通じて受信される伝達情報をコンピュータ内に保持されている情報と同期させる伝達情報同期スレッドを起動する（Ｓ１２）。これらのスレッドはメインスレッドの停止要求を受けるまで動作し続ける。
【００６１】
次に、ユーザ操作等で情報共有を終了させる要求が検出されているか判定し（Ｓ１３）、検出されていなければ、一定期間スリープ（処理を中断）を行い（Ｓ１４）、Ｓ１３に戻って情報共有を終了させる要求が検出されているかを判定するループを繰り返し、終了要求を定期的に検出する。
【００６２】
情報共有を終了させる要求が検出されている場合は、情報取得送信スレッドを停止させ（Ｓ１５）、伝達情報同期スレッドを停止させ（Ｓ１６）、情報共有アプリケーションを終了する。
【００６３】
次に、図５は、情報取得送信スレッドのプログラムを説明するフローチャートである。
【００６４】
図５に示すように、まず、メインスレッドからの停止要求が出されているか判定し（Ｓ２１）、停止要求が出されている場合には処理を終了する。
【００６５】
停止要求が出されていなければ、ユーザ操作等によるキーボード２８やマウス２９等の入力装置３からのイベントが検出されているか判定し（Ｓ２２）、イベントが検出されていない場合は、一定期間スリープを行い（Ｓ２３）、Ｓ２１に戻ってメインスレッドからの停止要求が出されているかを判定するループを繰り返し、定期的にイベントを検出することを繰り返す。
【００６６】
イベントが検出されている場合、ユーザ操作等による入力情報をキーボード２８、マウス２９等の入力装置３から取得し（Ｓ２４）、取得した入力情報と関連付ける識別子を作成し（Ｓ２５）、取得した入力情報と作成した識別子とを関連付けて保持手段１３に保存する（Ｓ２６）。ここで、入力情報および識別子は、ＲＡＭ２３内に記憶してもよいし、ＨＤＤ２４やリムーバブルメディアドライブ２５等の二次記憶装置内にデータファイルとして記憶してもよい。また、入力情報および識別子は、図６に示すように、識別子と入力情報（共有情報）とを関連付けて記憶する。
【００６７】
次に、入力された入力情報をディスプレイ２７等の出力装置４に出力し、出力装置４に表示する（Ｓ２７）。
【００６８】
入力情報を出力装置４に出力する場合は、図７に示すように、単に入力された情報を表示の為の情報（表示情報）に変換し（Ｓ３１）、変換した表示情報をディスプレイ２７等の出力装置４に出力して表示する（Ｓ３２）。具体的な例としてはマウス２９等で入力されたマウス座標はその座標列をつないだ線分として表示する。
【００６９】
次に、入力された入力情報を他のコンピュータに伝達する為に、入力情報と識別子から伝達情報を作成し（Ｓ２８）、ネットワークインターフェース２６等の通信装置５を介してネットワーク６上の他のコンピュータ２に伝達する（Ｓ２９）。なお、伝達情報のフォーマット等については後述する。また、ネットワーク６上で使う通信プロトコルは、通常使われるＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）でもよいし、ＵＤＰ（User Datagram Protocol）でもよい。
【００７０】
上述の様にして、共有する情報を入力情報として取得すると共にそれに対応する識別子を作成し、それらを他のコンピュータに送信すると共に、入力情報を表示する。
【００７１】
ここで、入力情報に関連付ける識別子の作成には幾つかの方法が考えられる。一番単純な方法は単に乱数を用いる方法である。この場合は作成される識別子がユニークな物に成るようにするため十分大きな数値範囲である必要があり、１２８ｂｉｔ（１６Ｂｙｔｅ）、２５６ｂｉｔ（３２Ｂｙｔｅ）程度あれば十分である。
【００７２】
また、入力情報からハッシュ関数によりハッシュ値を計算して、このハッシュ値を識別子として使用してもよい。この場合も上述の様に１６Ｂｙｔｅ、３２Ｂｙｔｅ程度のハッシュ値を使用する事が望ましい。識別子の作成にハッシュ関数を用いる場合は、受信側で同じハッシュ関数を持ち、受信した入力情報からこのハッシュ関数によりハッシュ値を計算し、受信した識別子であるハッシュ値と比較することで入力情報の伝送ミスや改ざん等を検出できる。
【００７３】
また、図８に示すように、入力時刻や識別子作成時刻を作成時に取得し（Ｓ４１）、取得した時刻と入力情報からハッシュ関数を使ってハッシュ値を計算して識別子としてもよい。
【００７４】
次に、図９は、伝達情報同期スレッドのプログラムを説明するフローチャートである。情報取得送信スレッドは、ユーザの操作等でコンピュータ２に入力された情報に識別子を付加して送信する物である。これに対し、伝達情報同期スレッドは、ネットワーク６に接続された他のコンピュータ２の情報取得送信スレッドにより識別子と入力情報から作成された伝達情報を受信するものである。
【００７５】
図９に示すように、まず、メインスレッドからの停止要求が出されているか判定し（Ｓ５１）、停止要求が出されている場合には処理を終了する。
【００７６】
停止要求が出されていなければ、ネットワークインターフェース２６等の通信装置５からのネットワーク６から伝達情報を受信したイベントが検出されているか判定し（Ｓ５２）、イベントが検出されていない場合は、一定期間スリープを行い（Ｓ５３）、Ｓ５１に戻ってメインスレッドからの停止要求が出されているかを判定するループを繰り返し、定期的にイベントを検出することを繰り返す。
【００７７】
イベントが検出されている場合、ネットワーク６から受信した伝達情報をネットワークインターフェース２６等の通信装置５から取得し（Ｓ５４）、取得した伝達情報を元に、後述する同期処理により送信元のコンピュータ２の入力情報を自装置の入力情報に同期させる（Ｓ５５）。
【００７８】
以上、情報の取得、送信、受信を行う情報共有装置をコンピュータによって行う概要のフローに付いて説明した。
【００７９】
次に、具体的な伝達情報のデータフォーマットの例を説明すると共に同期処理について説明する。
【００８０】
図１０は、伝達情報のデータフォーマットの例を示す図である。
【００８１】
図１０に示すように、伝達情報には、この伝達情報の作成装置固有の識別子、作成時刻等が含まれるヘッダ情報と、識別子、Ｆｌａｇ、共有情報からなる情報ブロック複数から構成される。情報ブロックは図１１に示すように、Ｆｌａｇにより複数の種類がある。
【００８２】
図１１（ａ）の例は、Ｆｌａｇが０で省略を表し共有情報は無い。図１１（ｂ）の例は、Ｆｌａｇが１で新規を表し共有情報が有る。図１１（ｃ）の例は、Ｆｌａｇが２で要求を表し共有情報は無い。図１１（ｄ）の例は、Ｆｌａｇが３で再送を表し共有情報が有る。また、各共有情報は、図１２に示すように、送信される情報のサイズと情報のデータ列からなる。
【００８３】
このような複数の異なる種類の情報ブロックが、図１０のようなフォーマットで伝達される。
【００８４】
次に各フラグに付いて説明する。
【００８５】
まず、Ｆｌａｇが省略の情報ブロックは、送信元が以前にこの情報ブロックの識別子と同じ識別子の共有情報を送っている場合に使用する。
【００８６】
Ｆｌａｇが新規の情報ブロックは、送信元がこの識別子と共有情報を最初に送信する場合に使用する。
【００８７】
Ｆｌａｇが要求の情報ブロックは、識別子に対応する共有情報を受信元が送信先に要求する場合に使用する。
【００８８】
Ｆｌａｇが再送の情報ブロックは、上述のＦｌａｇが要求の情報ブロックの送信先に対し受信元が識別子と共有情報を再送する場合に使用する。
【００８９】
このように、Ｆｌａｇを持った情報ブロックを使用することで、複数の情報を伝達する場合に、新規に作成された共有情報以外は、Ｆｌａｇを省略にした情報ブロックを送信することで、送信する情報量を削減することができる。
【００９０】
また、Ｆｌａｇを省略にした情報ブロックを受信した受信先が、その識別子に対応する共有情報を保持していない場合は、Ｆｌａｇを要求にした情報ブロックを送信して、送信元に省略された共有情報の再送を要求することができる。これに呼応して送信元（Ｆｌａｇを要求にした情報ブロックの受信先）は要求された共有情報をＦｌａｇを再送にした情報ブロックとして送信すればよい。
【００９１】
また、ここで示したＦｌａｇの内容以外にも、共有情報を更新する更新や、共有情報を削除する削除などが考えられる。
【００９２】
図１３は、同期処理を説明するためのフローチャートである。同期処理は、図１０に示すようなフォーマットの伝達情報の情報ブロックを順次読み込んで処理を行うものである。
【００９３】
図１３に示すように、まず、伝達情報の最初の部分のヘッダ情報を取得し、保持手段１３に保存する（Ｓ６１）。このヘッダ情報は、上述のように送信元の情報（コンピュータ名、ＩＰアドレス）や作成時刻等の、複数の共有情報に共通の情報である。
【００９４】
次に、伝達情報内の情報ブロックを最後まで読み込んで処理したかを判定し（Ｓ６２）、最後の情報ブロックまで読み込んで処理していれば、処理を終了する。
【００９５】
次に、次に処理する情報ブロックの識別子とＦｌａｇを伝達情報から取得する（Ｓ６３）。
【００９６】
取得したＦｌａｇが０（省略）であるか判定し（Ｓ６４）、Ｆｌａｇが０の場合は省略で、共有情報は以前送られているという前提なので、情報ブロックに共有情報は付加されていない。このため、受信先は、自装置内の保持手段１３から、取得した識別子に一致する共有情報を取得する（Ｓ６５）。
【００９７】
具体的には、図６のように、識別子と関連付けられて共有情報が保持されているので、取得した識別子と、保持手段１３に保持されている識別子を順番に比較、検索し、取得した識別子と一致する識別子に対応する共有情報を取得すれば良い。この様なキーによる関連情報の検索手段、保持方法等は一般的なデータベースシステムの基本であり、広く周知の方法を使用すればよい。
【００９８】
次に、取得した識別子と一致する識別子の共有情報が無いかどうか判定し（Ｓ６６）、共有情報が無かった場合、送信元に情報を要求する必要が有るので、ヘッダ情報を作成し（Ｓ６７）、取得した識別子を元に図１１（ｃ）のような要求情報ブロックを作成し、これらに基づいて伝達情報を作成し（Ｓ６９）、受信した伝達情報のヘッダ情報で特定される、この伝達情報の送信元に通信装置５により作成した伝達情報を送信し（Ｓ７０）、Ｓ６２に戻り、次の情報ブロックの処理を行う。
【００９９】
Ｓ６６において、取得した識別子に対応する共有情報があり、共有情報を取得できた場合、取得した共有情報を出力装置４に出力して表示し（Ｓ７３）、Ｓ６２に戻り、次の情報ブロックの処理を行う。
【０１００】
Ｓ６４において、Ｆｌａｇが０でない場合、Ｆｌａｇが１（新規）であるか判定し（Ｓ７１）、Ｆｌａｇが１であれば新規なので、この情報ブロックの共有情報を取得し、これを保持手段１３に図６のように識別子と関連付けて保存し（Ｓ７２）、取得した共有情報を出力装置４に出力して表示し（Ｓ７３）、Ｓ６２に戻り、次の情報ブロックの処理を行う。
【０１０１】
Ｓ７１において、Ｆｌａｇが１でない場合、Ｆｌａｇが２（要求）であるか判定し（Ｓ７４）、Ｆｌａｇが２であれば要求なので、取得した識別子に対応する共有情報を保持手段１３から取得し（Ｓ７５）、ヘッダ情報を作成し（Ｓ７６）、図１１（ｄ）のような再送情報ブロックを取得した識別子および共有情報から作成し（Ｓ７７）、これらに基づいて伝達情報を作成し（Ｓ７８）、受信した伝達情報のヘッダ情報で特定される、この伝達情報の送信元に通信装置５により作成した伝達情報を送信し（Ｓ７９）、Ｓ６２に戻り、次の情報ブロックの処理を行う。
【０１０２】
Ｓ７４において、Ｆｌａｇが２でない場合、Ｆｌａｇが３（再送）であるか判定し（Ｓ８０）、Ｆｌａｇが３であれば再送なので、この情報ブロックの共有情報を取得し、これを保持手段１３に識別子と関連付けて保存し（Ｓ８１）、取得した共有情報を出力装置４に出力して表示し（Ｓ８２）、Ｓ６２に戻り、次の情報ブロックの処理を行う。
【０１０３】
なお、上述の更新や削除のように、Ｆｌａｇに０から３以外の値を追加した場合は、その機能に対応した処理をこのフローチャートの中に付加すればよい。
【０１０４】
このように、図４のようにして、共有する情報を送信する情報取得送信スレッドと、共有する情報を受信し、欠落した情報の同期を行う伝達情報同期スレッドとをそれぞれ動作させ、図１０のような複数の情報ブロックを持つ伝達情報を送受信することで、一度送信した情報を相手に伝達する時はそれに関連した識別子のみを送信するようにでき、共有する情報を伝達する通信量を大幅に削減できる。
【０１０５】
また、このように、新規に伝達したい情報が発生した場合はその識別子とその情報を送信し、再度、その情報を伝達したい場合は識別子のみを伝達し、仮に識別子に対応する情報が受信元で欠落している場合は再送を要求し、要求先では保持手段に保持している情報を再送するメカニズムを実装したプロトコル（ＳＰ：シンクロプロトコルの略）を作成し、図１４（ａ）、（ｂ）のような、従来のプロトコルの上位のレイアにかぶせることで、情報共有を行う機器においてこの様な同期処理を意識せずに行う事ができる。
【０１０６】
具体的には送信フローは図１５、受信フローは図１６のようになり、出力装置４への出力が無く、共有情報、伝達情報の入出力が上位レイアおよび下位レイヤに変更になっただけで、図５、図１３のフローとほぼ同じなので、詳しい説明は省略する。
【０１０７】
図１５において、共有情報は送信情報として上位レイアから取得し（Ｓ９１）、伝達情報は下位レイアに出力する（Ｓ９２）ようになり、図１６において、伝達情報は下位レイアから取得し（Ｓ１０１）、伝達情報は下位レイアに伝達し（Ｓ１０２、Ｓ１０４）、共有情報は受信情報として上位レイアに出力する（Ｓ１０３、Ｓ１０５）。
【０１０８】
次に、利用アプリケーションについて説明する。
【０１０９】
図１７は、特定の画像について操作者Ａと操作者Ｂが情報を共有しながら作業を進める場合の概略構成図である。
【０１１０】
最初に操作者Ａが、図１８の第１ステップの表示画面の様な画像を自分のコンピュータに表示させ、共有情報として画像情報である共有情報ａとその識別子ａからなる伝達情報ａを操作者Ｂのコンピュータに伝達する。
【０１１１】
すると双方のコンピュータ内には、識別子ａとそれに関連する共有情報ａが関連付けられ保持手段に保持され（保持情報ａ）、双方のコンピュータに同じ画像情報が表示される。
【０１１２】
次に第２ステップで、操作者Ａが画像表示を見ながら共有情報ｂの様な情報をマウス等で加筆すると、コンピュータは、この共有情報ｂとそれに関連付けられる識別子ｂを作成すると共に関連した情報として識別子ａを一緒に伝達情報ｂとして操作者Ｂのコンピュータに送信する。これにより双方のコンピュータは保持情報ｂの様な情報が保持され第２ステップの表示画面が双方に表示される。
【０１１３】
また第３ステップでは、操作者Ｂが共有情報ｃの様な情報を入力すると、同様にして第３ステップの様な画面表示を共有できる。同様にステップ４では操作者Ａが共有情報ｄを入力すると、第４ステップのような画面表示を共有できる。
【０１１４】
なお、図１８の伝達情報では、Ｆｌａｇの表示を省略したが、識別子のみのときはＦｌａｇは０（省略）であり、続けて共有情報がある場合は、Ｆｌａｇは１（新規）が付加されている。
【０１１５】
このようにすることで、操作者Ａと操作者Ｂは、お互いに入力した情報を、少ない通信量でリアルタイムに共有することができる。
【０１１６】
また、図１９のように、ステップ毎の複数の識別子群を伝達時刻に関連付けて記録すれば、簡単に以前の表示状態に戻ることができる。
【０１１７】
図２０は、このようにして記録された識別子群の情報に基づいて共有情報を再生するときのフローチャートである。
【０１１８】
図２０に示すように、再生する時刻をユーザに入力させ取得する（Ｓ１１１）。
【０１１９】
次に、図１９のように保持手段１３に保持されている時刻毎の識別子群の情報から、再生時刻に対応する識別子群を取得し（Ｓ１１２）、取得した識別子群のそれぞれの識別子に対応する共有情報を図６のように保持された情報から取得し（Ｓ１１３）、取得した共有情報群の情報を表示する（Ｓ１１４）。
【０１２０】
このようにすることで、リアルタイムに情報を共有すると共に、簡単に過去の状態に戻って情報を共有でき、例えば、図２１に示すように、第２ステップの状態にさかのぼって新たな情報（共有情報ｅ）を付加するようなことも簡単に実現できる。
【０１２１】
また操作者Ａと操作者Ｂが情報共有している時に、例えば、第３ステップの終了時点で新たに操作者Ｃが加わった場合、第４ステップの入力が行われると、伝達情報が操作者Ｃにも伝達され、識別子ａからｃの共有情報が操作者Ｃのコンピュータの保持手段に記録されているので、上述のような同期処理が行われ、第４ステップの識別子ａからｄを表示する為の情報が送信元より取得でき、第４ステップの表示が可能となる。
【０１２２】
また、各操作者のコンピュータ２の保持手段１３に保持している情報を、ＨＤＤ２４等の不揮発性の記録媒体に永続的に保存することで、共有を一時的に中止し、再開しても、少ない情報送信量で共有を再開することができる。つまり、共有を再開したときに、共有を中止する以前の情報はＨＤＤ２４に残っているので、共有再開時には欠落した情報を同期するだけでよく、共有再開時の情報送信量を削減することができる。
【０１２３】
また、図２２に示すように、複数識別子に関連付けられた複数の共有情報を一つの共有情報にまとめて一つの新たな識別子に関連付けてもよい。
【０１２４】
また、図２３のように、情報ブロックの構成を、Ｆｌａｇ、識別子、共有情報の順としても良い。
【０１２５】
また、共有情報に必要なデータサイズが比較的小さい場合は識別子を用いず直接共有情報のみを送信する図２４のような識別子の無い情報ブロックを採用する方式を用いても良い。つまりＦｌａｇの種類に応じて情報ブロックの種類を決定するものである。
【０１２６】
また、説明の為に情報取得送信スレッドで取得された情報を保持手段１３に保持し、出力装置４で表示する様に説明したが、情報取得送信スレッドが、情報の取得、識別子作成、送信を図２５のように行い、伝達情報を他の端末に送信すると共に自分の端末に送信するようにし、伝達情報同期スレッドで情報の同期、保持、表示を行う様にしてもよい。このようにすることで情報の保持と表示を伝達情報同期スレッドで一元的に行うことができる。
【０１２７】
また、図２６は、図１４（ａ）、（ｂ）のように、通常のＴＣＰ／ＩＰやＵＤＰなどのプロトコルの上位レイアとして本実施形態の同期方法を使用した場合で、アプリケーション側に新規、省略モードを意識させず、常に送りたい情報を送信情報として送信依頼させるようにする場合のフローチャートである。
【０１２８】
図２６に示すように、依頼された送信情報を取得し（Ｓ１２１）、図６のように保持された共有情報の中から取得した送信情報と一致するものを検索して（Ｓ１２２）、一致するものがあったか判定し（Ｓ１２３）、一致するものが有った場合は、その共有情報に対応する識別子を取得し（Ｓ１２４）、取得した識別子から省略の情報ブロックを作成し、この情報ブロックを含む伝達情報を作成する（Ｓ１２５）。
【０１２９】
一致するものが無かった場合は、識別子を作成し（Ｓ１２６）、作成した識別子と送信情報とを関連付けて保持手段１３に保存し（Ｓ１２７）、作成した識別子と送信情報から新規の情報ブロックを作成し、この情報ブロックを含む伝達情報を作成する（Ｓ１２８）。
【０１３０】
そして、作成した伝達情報を下位レイアに伝達する（Ｓ１２９）。
【０１３１】
このようにすることで、同期処理を本プログラムに隠蔽できるので、アプリケーション側は通常の送信依頼をするだけでよい。
【０１３２】
上述の処理において、送信情報と同一の保持情報を検索するとき、情報の一致を比較するのはＣＰＵ２１の処理負荷が大きいので、ハッシュ値を利用してもよい。
【０１３３】
具体的には、識別子として共有情報から計算したハッシュ値を用い、送信情報から同じハッシュ関数でハッシュ値を算出し、このハッシュ値と一致する識別子を検索するようにする。
【０１３４】
また、上述のように、通信プロトコルとアプリケーションの間で、本実施形態のプログラムを動作させる場合、共有される情報はアプリケーション側で保持されると考えられるので、本実施形態のプログラム側では、定期的に古い情報から削除してもよい。
【０１３５】
具体的には、図６の識別子、共有情報と共に送信時刻を保持するようにし、送信する毎に送信時刻を更新し、保持個数または保持容量に応じて、送信時刻が古いものから削除するようにする。
【０１３６】
また、本実施形態においては、図２７に示すように、伝達情報のフォーマットとして、ヘッダに各種送信情報を設定するようにしたが、図２８に示すように、共有情報毎に各種送信情報を付加してもよい。
【０１３７】
また、Ｆｌａｇに応じて共有情報に各種送信情報の有り無しを予め決めるようにしてもよい。
【０１３８】
具体的には、図２９に示すように、下位４ビットをＦｌａｇの指定、上位４ビットを共有情報のフォーマットの指定とし、上位４ビットが０のときは各種送信情報無し（この場合、各種送信情報を記述するフィールドは不要）、上位４ビットが１のときはヘッダと共通の情報（この場合も各種送信情報を記述するフィールドは不要）、上位４ビットが２のときはＩＰアドレス付加（ＩＰアドレスを記述するフィールドのみ）のようにしてもよい。
【０１３９】
また、本実施形態のプログラムは、例えば特開２００３−１５９４１号公報に記載されている、複数のコンテンツファイルと、そのコンテンツファイルを表示動作させるプログラムファイルとを単一ファイルにカプセル化したカプセル化文書の、プログラムファイルとして本実施形態の受信、送信プログラムを格納するようにしてもよい。
【０１４０】
このようにすることで、カプセル化文書間でのコンテンツ内容の同期を容易に行うことができる。
【０１４１】
このように本実施形態においては、共有情報に識別子を付与し、共有情報と識別子とを関連付けて保持手段１３に保持し、新たな共有情報を送信するとき、保持している共有情報の識別子を全て送信し、受信側では、受信した識別子が保持している識別子の中に無い場合、識別子により欠落した共有情報の再送を要求するので、保持手段１３に全ての共有情報を保持することができ、また、識別子のみの送信により共有情報を同期させることができ、ネットワークへの負荷を増大させることなく容易に端末間の共有情報を一致させることができる。
【図面の簡単な説明】
【０１４２】
【図１】本発明に係る情報共有装置の一実施形態を示す図であり、そのブロック図である。
【図２】その機能を実現するコンピュータのブロック図である。
【図３】その情報共有を行うコンピュータの接続状態を示す図である。
【図４】その情報共有を行うアプリケーションプログラムのメインスレッドの処理を示すフローチャートである。
【図５】その情報取得送信スレッドのプログラムを説明するフローチャートである。
【図６】その識別子と共有情報の記録状態を示す図である。
【図７】その入力情報を表示するプログラムを説明するフローチャートである。
【図８】その時刻と入力情報からハッシュ関数を使って識別子を作成するプログラムを説明するフローチャート。
【図９】その伝達情報同期スレッドのプログラムを説明するフローチャートである。
【図１０】その伝達情報のデータフォーマットの例を示す図である。
【図１１】その情報ブロックのデータフォーマットの例を示す図である。
【図１２】その共有情報のデータフォーマットの例を示す図である。
【図１３】その同期処理を説明するためのフローチャートである。
【図１４】その従来のプロトコルの上位のレイアとしたときのプロトコルスタックを示す図。
【図１５】その従来のプロトコルの上位のレイアとしたときの送信フローを説明するためのフローチャート。
【図１６】その従来のプロトコルの上位のレイアとしたときの受信フローを説明するためのフローチャート。
【図１７】その情報を共有しながら作業を進める場合の概略構成図である。
【図１８】その情報を共有しながら作業を進める場合の表示画面、入力情報、伝達情報、保持情報を示す図である。
【図１９】その保持されている時刻毎の識別子群の情報を示す図である。
【図２０】その時刻毎の識別子群の情報に基づいて共有情報を再生するときのフローチャートである。
【図２１】その前の状態にさかのぼって新たな情報を付加したときを示す図である。
【図２２】その複数識別子に関連付けられた複数の共有情報を一つの共有情報にまとめて一つの新たな識別子に関連付けたときを示す図である。
【図２３】その伝達情報のデータフォーマットの第２例を示す図である。
【図２４】その識別子の無い情報ブロックのデータフォーマットを示す図である。
【図２５】その伝達情報を他の端末に送信すると共に自分の端末に送信するようにしたときの情報取得送信スレッドのプログラムを説明するフローチャートである。
【図２６】その従来のプロトコルの上位のレイアとしたときのアプリケーション側に常に送りたい情報を送信情報として送信依頼させるようにする場合のフローチャートである。
【図２７】その伝達情報のヘッダに各種送信情報を設定するようにしたときのフォーマットを示す図である。
【図２８】その伝達情報の共有情報毎に各種送信情報を付加するようにしたときのフォーマットを示す図である。
【図２９】そのＦｌａｇに応じて共有情報に各種送信情報の有り無しを予め決めるようにしたときのフォーマットを示す図である。
【符号の説明】
【０１４３】
１  情報共有装置
１１  情報取得手段
１２  識別子作成手段
１３  保持手段
１４  情報出力手段
１５  伝達手段
１６  同期手段
２  コンピュータ
２１  ＣＰＵ
２２  ＲＯＭ
２３  ＲＡＭ
２４  ＨＤＤ
２５  リムーバブルメディアドライブ
２６  ネットワークインターフェース
２７  ディスプレイ
２８  キーボード
２９  マウス
３０  バスコントローラ
３  入力装置
４  出力装置
５  通信装置
６  ネットワーク
【図１】
2006004277.tif 000003
【図２】
2006004277.tif 000004
【図３】
2006004277.tif 000005
【図４】
2006004277.tif 000006
【図５】
2006004277.tif 000007
【図６】
2006004277.tif 000008
【図７】
2006004277.tif 000009
【図８】
2006004277.tif 000010
【図９】
2006004277.tif 000011
【図１０】
2006004277.tif 000012
【図１１】
2006004277.tif 000013
【図１２】
2006004277.tif 000014
【図１３】
2006004277.tif 000015
【図１４】
2006004277.tif 000016
【図１５】
2006004277.tif 000017
【図１６】
2006004277.tif 000018
【図１７】
2006004277.tif 000019
【図１８】
2006004277.tif 000020
【図１９】
2006004277.tif 000021
【図２０】
2006004277.tif 000022
【図２１】
2006004277.tif 000023
【図２２】
2006004277.tif 000024
【図２３】
2006004277.tif 000025
【図２４】
2006004277.tif 000026
【図２５】
2006004277.tif 000027
【図２６】
2006004277.tif 000028
【図２７】
2006004277.tif 000029
【図２８】
2006004277.tif 000030
【図２９】
2006004277.tif 000031