(57)【要約】【課題】  文書を介してのリアルタイムコミュニケーションを手助けするツールとして、文書の状態の管理などを行うための常駐プログラムを提供する。【解決手段】  文書１Ａ、文書情報管理装置２Ａはネットワークセグメント１０Ａに属し、文書１Ｂ、文書情報管理装置２Ｂはネットワークセグメント１０Ｂに属している。また、文書１Ａ、１Ｂにはそれぞれ自文書情報のブロードキャスト機能が持たせられている。一方、文書情報管理装置２Ａ、２Ｂには、それぞれ発信情報取得手段３Ａ、３Ｂ、文書受信手段４Ａ、４Ｂ、文書起動手段５Ａ、５Ｂ、文書情報保持手段６Ａ、６Ｂ、文書情報交換手段７Ａ、７Ｂなどの機能が設けられている。この構成において、文書情報管理装置２Ａ、２Ｂが保持する情報は、文書情報交換手段７Ａ、７Ｂにより他者の保持する情報を取得し、取得したデータと保持していたデータをマージすることができる。【選択図】        図１
2007080179.tif 000002
【特許請求の範囲】
【請求項１】
通信機能を有する文書ファイルもしくは文書ファイルを扱うプログラムが発信する情報を取得する発信情報取得手段と、
前記発信情報取得手段を介して取得した文書に関する情報を保持する文書情報保持手段と
を有することを特徴とする情報処理装置。
【請求項２】
通信機能を有する文書ファイルもしくは文書ファイルを扱うプログラムが発信する情報を取得する発信情報取得手段と、
前記文書ファイルを受信する文書ファイル受信手段と、
受信したファイルを起動する文書ファイル起動手段と、
前記発信情報取得手段及び／または前記文書ファイル受信手段を介して取得した文書に関する情報を保持する文書情報保持手段と
を有することを特徴とする情報処理装置。
【請求項３】
自己以外の情報処理装置に設けられる前記発信情報取得手段及び／または前記文書ファイル受信手段との間で情報交換を行う情報交換手段を有する
ことを特徴とする請求項１または２のいずれかに記載の情報処理装置。
【請求項４】
前記文書情報保持手段で保持している情報が有効であるかどうかを確認する文書情報確認手段を有する
ことを特徴とする請求項１または２のいずれかに記載の情報処理装置。
【請求項５】
前記文書の状態を検知する文書状態検知手段を有する
ことを特徴とする請求項１または２のいずれかに記載の情報処理装置。
【請求項６】
前記文書状態検知手段によって検知した起動情報を通知する文書起動情報通知手段と、
前記起動情報を受信する文書起動情報受信手段と
を有することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記文書起動情報受信手段により受信した情報に文書情報保持手段により保持している文書がある場合にはそれをユーザに通知するリモート文書起動情報通知手段を有する
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記文書情報保持手段により保持している文書を検索する文書検索手段を有する
ことを特徴とする請求項１または２のいずれかに記載の情報処理装置。
【請求項９】
前記受信した文書ファイルに含まれるコンテンツをインデックス化する手段を有する
ことを特徴とする請求項１または２のいずれかに記載の情報処理装置。
【請求項１０】
ログ情報収集機能を有する
ことを特徴とする請求項１〜９のいずれかに記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばピアトゥピアコミュニケーション型文書のディスカバリや文書管理システムに使用して好適な情報処理装置に関する。詳しくは、ユーザ情報はもちろん、文書情報をも扱えるようにして、通信機能つき文書を有効に扱うことができるようにしたものである。
【背景技術】
【０００２】
カプセル化文書作成の手段として、本願出願人は以前より通信機能を有する文書のデータ構造、記憶媒体及び情報処理装置の発明を各種出願している（例えば、特許文献１〜３参照。）。
【０００３】
また、ピアツーピア型文書共有ネットワークシステムとして、ファイル名およびファイルの内容の情報検索が可能なファイル共有システムが実用化されているものである（例えば、特許文献４参照。）。
【０００４】
さらに、異なるネットワークセグメント間で野情報の取得方法についての技術も提案されているものである（例えば、特許文献５参照。）。
【０００５】
すなわち、任意の電子データとその処理に用いるプログラムをカプセル化する技術は公知である。また、ピアツーピア型文書共有ネットワークシステム及び異なるネットワークセグメント間で野情報の取得方法についても一般的に知られているものである。
【特許文献１】特開２００３−１５９４１号公報
【特許文献２】特開２００３−９９３０３号公報
【特許文献３】特開２００５−１８２５９５号公報
【特許文献４】特開２００４−１５７８２６号公報
【特許文献５】特開２００３−２６４５７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
文書でコミュニケーションする機会が増えている。例えば、何らかの報告書を作成した場合、特許を作成した場合、説明書を作成した場合、企画書を作成した場合など、特にオフィスにおいては、いろいろなシチュエーションで文書を作成し、その文書を使ってコミュニケーションをしている。また、最近ではテレビ会議システムが普及しており、遠隔地とのやり取りにおいても文書はコミュニケーションの面で大きな役割を果たしている。
【０００７】
このように文書がコミュニケーションにおいて重要な役割を果たすに当って、文書自体の機能の充実を図っている技術がある。特許文献１に記載の「文書のデータ構造、記憶媒体及び情報処理装置」に代表されるカプセル化文書構造である。この文書構造において、文書は単なるファイルではなく、プログラムも含むものになっており、さらにこのプログラムに特許文献２、３に記載のように通信機能を盛り込むことによって、文書自身で他の文書と通信できるようになっている。
【０００８】
また、このような通信機能つきの文書は、例えばテレビ会議において文書を閲覧する際に、同じ文書を両者ともに保持しておいて、一方の地点の文書のページ送りがされたら、他方の地点にある文書もページが送られるというように、リモート環境下において文書の表示の同期をとることによって、お互いに文書のどのページを指しているかの確認ができるというような使い方ができるものである。このように文書自体が通信機能をもっていると、人と人とのコミュニケーションを文書を通じてより円滑にすることが可能になる。
【０００９】
しかしながら、このような通信機能つきの文書を扱う上での問題点は、その文書を扱うユーザが文書を起動した状態でないと文書間でのコミュニケーションができないということである。つまり、一方の人が文書を起動してコミュニケーションの準備が整っていたとしても、他者が文書を起動しない限りは文書を用いたコミュニケーションができないわけである。
【００１０】
これに対して、通信機能つき文書を有効に扱うための常駐プログラムはすでに提案されている。すなわち、コミュニケーションを行うための常駐プログラムとして最も一般的なのは、特許文献４に記載されるようなインスタントメッセンジャーであると思われるが、このインスタントメッセンジャーは、ユーザ同士がピアトゥピアでテキストなどをやりとりするツールであって、ユーザがオンラインであるかどうかなどが判るものである。
【００１１】
しかしながら、現状のインスタントメッセンジャーなどのピアトゥピア系のメッセージングアプリケーションは、ユーザがオンラインであるかどうかなどを把握することができるが、文書情報に焦点を当てたものは見当たらない。そこでさらに本願発明者は、特許文献３及び５に開示した常駐プログラムを提案しているものである。
【００１２】
すなわち、特許文献３に記載のプログラムにおいては、文書がオンラインかどうかや、どこでどの文書が使われたかのログ、誰がその文書を持っていたか、持っていると思われるかなどの情報を扱える。従ってこれらの情報がわかると、ユーザがコミュニケーション相手の状況を容易にわかることができ、文書を使ったコミュニケーションをはじめるにあたっての準備が簡単になる。
【００１３】
これにより、例えば、相手がすでに文書を開いている状態であるということを常駐プログラムが通知してくれれば、こちらもその文書を起動すれば、文書同士でのコミュニケーションができるものである。しかしながらこの特許文献３に記載された発明は、あくまでも文書ファイルの送信と受信の技術に関して開示してあるものであって、やりとりする文書を管理することは行っていない。またファイル転送に限らず、文書が発信する情報の取得、管理も行っていないものである。
【００１４】
さらに、特許文献５においては、異なるネットワークセグメント間での情報の取得方法などについて述べられているが、文書を対象としたものではないため、そのまま文書情報の管理を行うものとして扱うことができないものである。
【００１５】
この発明はこのような問題点に鑑みて成されたものである。すなわち従来の技術では、今までマシンを介してのリアルタイムコミュニケーションとしてインスタントメッセンジャーやチャットなどが使われてきたが、これからは文書を介してのリアルタイムコミュニケーションを手助けするツールとして、文書の状態を管理することなどができる常駐プログラムが必要になってくると考えられる。本発明はその点に着目したものである。
【課題を解決するための手段】
【００１６】
上記の課題を解決し、本発明の目的を達成するため、請求項１に記載された発明は、通信機能を有する文書ファイルもしくは文書ファイルを扱うプログラムが発信する情報を取得する発信情報取得手段と、発信情報取得手段を介して取得した文書に関する情報を保持する文書情報保持手段とを有することを特徴とする情報処理装置である。
【００１７】
また、本発明の目的を達成するため、請求項２に記載された発明は、通信機能を有する文書ファイルもしくは文書ファイルを扱うプログラムが発信する情報を取得する発信情報取得手段と、文書ファイルを受信する文書ファイル受信手段と、受信したファイルを起動する文書ファイル起動手段と、発信情報取得手段及び／または文書ファイル受信手段を介して取得した文書に関する情報を保持する文書情報保持手段とを有することを特徴とする情報処理装置である。
【００１８】
請求項３に記載の情報処理装置においては、自己以外の情報処理装置に設けられる発信情報取得手段及び／または文書ファイル受信手段との間で情報交換を行う情報交換手段を有することを特徴とするものである。
【００１９】
請求項４に記載の情報処理装置においては、文書情報保持手段で保持している情報が有効であるかどうかを確認する文書情報確認手段を有することを特徴とするものである。
【００２０】
請求項５に記載の情報処理装置においては、文書の状態を検知する文書状態検知手段を有することを特徴とするものである。
【００２１】
請求項６に記載の情報処理装置においては、文書状態検知手段によって検知した起動情報を通知する文書起動情報通知手段と、起動情報を受信する文書起動情報受信手段とを有することを特徴とするものである。
【００２２】
請求項７に記載の情報処理装置においては、文書起動情報受信手段により受信した情報に文書情報保持手段により保持している文書がある場合にはそれをユーザに通知するリモート文書起動情報通知手段を有することを特徴とするものである。
【００２３】
請求項８に記載の情報処理装置においては、文書情報保持手段により保持している文書を検索する文書検索手段を有することを特徴とするものである。
【００２４】
請求項９に記載の情報処理装置においては、受信した文書ファイルに含まれるコンテンツをインデックス化する手段を有することを特徴とするものである。
【００２５】
請求項１０に記載の情報処理装置においては、ログ情報収集機能を有することを特徴とするものである。
【発明の効果】
【００２６】
請求項１−３の本発明によれば、文書に関する情報や、文書そのものを受信する手段を有しているので、やりとりされる文書情報もしくは文書ファイル自体をもとにピアトゥピアで文書の管理を行うことができる。
【００２７】
請求項４の本発明によれば、保持している情報が有効であるかどうかをリアルタイムで確認できるので、ユーザが、その文書を保持しているのかどうなのかを容易に判断できる。
【００２８】
請求項５−７の本発明によれば、他のマシンで、通信可能な文書が起動しているかどうかがわかるので、ユーザがどの文書を起動すればよいかがわかる。
【００２９】
請求項８−９の本発明によれば、コミュニケーションを行った文書ファイル、保持している文書ファイルに関する検索が可能になる。
【００３０】
請求項１０の本発明によれば、文書に関するユーザアクションなどを確認することができる。
【発明を実施するための最良の形態】
【００３１】
本発明が対象としている文書もしくは文書を扱うプログラムが有する機能は、以下に示す通りである。
１. 文書起動時、終了時の自文書情報のブロードキャスト機能
２. ＩＰアドレス（もしくはマシン名）を指定しての情報送信機能
３．ＩＰアドレス（もしくはマシン名）を指定してのファイル送信機能
以下の説明では、上記機能を有する文書の発信するデータを扱うものとして実施の形態を記述する。
【００３２】
基本動作例を以下に示す。
基本機能は、
・文書ファイルもしくは文書を扱うプログラムが発信する文書情報の取得
・他(のセグメントに属する)マシンとの文書情報の交換
・文書ファイルの受信、保存、起動
である。
【００３３】
本発明の情報処理装置を適用した文書情報管理装置に関連するシステムの概要図を図１に示す。図１において、文書１Ａ、文書情報管理装置２Ａはネットワークセグメント１０Ａに属し、文書１Ｂ、文書情報管理装置２Ｂはネットワークセグメント１０Ｂに属している。また、文書１Ａ、１Ｂにはそれぞれ自文書情報のブロードキャスト機能が持たせられている。一方、文書情報管理装置２Ａ、２Ｂには、それぞれ発信情報取得手段３Ａ、３Ｂ、文書受信手段４Ａ、４Ｂ、文書起動手段５Ａ、５Ｂ、文書情報保持手段６Ａ、６Ｂ、文書情報交換手段７Ａ、７Ｂなどの機能が設けられている。
【００３４】
この場合に、ネットワークセグメント１０Ａ内において、文書１Ａがブロードキャストする情報は文書管理装置２Ａが取得することができるので、文書管理装置２Ａは文書１Ａに関する情報を取得できる。また、同様にネットワークセグメント１０Ｂ内において、文書１Ｂがブロードキャストする情報は文書管理装置２Ｂが取得することができるので、文書情報管理装置２Ｂは文書１Ｂに関する情報を取得できる。すなわちこの場合に、同一セグメント１０Ａ、１０Ｂで起動した文書情報を取得することは可能であるが、異なるセグメントで起動した文書の情報を取得することはできない。
【００３５】
しかしながら上述の構成においても、文書情報管理装置２Ａ、２Ｂが保持する情報は、文書情報交換手段７Ａ、７Ｂにより他者の保持する情報を取得し、取得したデータと保持していたデータをマージすることができる。このようにマージすることによってネットワークセグメント１０Ａ、１０Ｂ上で扱った文書１Ａ、１Ｂに関する情報を取得し、管理を行う。また、文書情報管理装置２Ａ、２Ｂは、文書ファイル自体の受信、保存、起動を行うことができる。直接ファイルを受信することによって、送信元のＩＰアドレスなどの情報や文書ファイルに関する情報も取得できる。
以下にそれぞれの動作を述べる。
【００３６】
〔文書が発信する情報の取得と登録〕
図２において、発信情報取得手段３は、文書１がネットワーク１０に発信する情報を、ネットワークインターフェイスを介して受信する手段である。この場合に文書間でデータをやりとりするピアトゥピア型のプログラムは、起動する際に自文書（文書１Ａ）がどういうものであるかを周りに知らせる必要がある。すでに起動している他文書（文書１Ｂ）は、この情報を受信し、自文書がどういうものであるかを送信先（文書１Ａ）に知らせることによって、文書１Ａ、１Ｂがそれぞれの文書がどういうものかがわかる。その時点で通信相手として成り立つと判断すれば、文書１Ａ、１Ｂ間で通信を行う。
【００３７】
自文書がどういうものかを知らせるにあたって発信される情報は、
・ＩＰアドレス
・（ポート番号）
・ＩＤ（固有のＩＤ、唯一無二）
・文書ＩＤ（文書ごとのＩＤ）
・その他（ユーザ名、タイトル、ファイルパス、など）
が基本である。ＩＰアドレスは、自分がどこで起動しているかを通知するためであり、ポート番号は通信に使用するポート番号（常に決まった番号であれば通知する必要なし）、文書ＩＤは文書を区別するためのＩＤである。
【００３８】
これらの情報は、通常ブロードキャストによって送信される。ブロードキャストはＬＡＮ（Local Area Network）の同一セグメント内に伝達できるＵＤＰ（User Datagram Protocol）のデータ送信である。ブロードキャストはブロードキャストアドレス（255.255.255.255など）に送信することによって可能である。この場合にブロードキャストはコネクションをはらずに行われるため、受信側はポート番号さえ合わせておけばそのデータを受信できる。
【００３９】
常駐プログラムは、文書１が発信するブロードキャストを受信することによって先に述べた文書情報を取得する。ここで、ブロードキャストは同一セグメント内に伝播されるので、他のマシン上で起動した文書が発する文書情報を取得することもできる。つまり同一セグメント１０内にある文書は他のマシンで起動している文書も含めて、セグメント１０内で起動している文書情報を取得することが可能である。なお、発信情報取得手段３が取得した文書情報は、図３に示すように文書情報保持手段５に渡されて保持される。
【００４０】
ここまでの処理の流れを図４に示す。まず文書情報管理装置２はステップＳ１で起動すると、ステップＳ２で情報待ち受け状態に入る。ここで文書１がブロードキャストすることにより情報がネットワークセグメント１０に送信されると、ステップＳ３で発信情報取得手段３がそれを受信する。受信した情報は、文書情報保持手段６が受け取り、ステップＳ４で文書情報を登録する。その後、発信情報取得手段３は再び情報待ち受け手段（ステップＳ２）に入り、文書情報が発信され、発信された情報がネットワークインターフェイスに到達するのを待つ。以上が同一セグメント内で起動する文書情報の取得方法である。
【００４１】
〔文書の受信〕
次に、ネットワークを介して送信される文書の受信に関して述べる。ここで例えば特許文献３に記載された「文書ファイルのデータ構造、記録媒体、文書ファイル転送方法、文書ファイル受信プログラム、文書ファイル受信方法および情報処理装置」では、文書自体に文書のコピーを送信する文書送信機能が付加されている。この場合に、文書受信手段４は例えば図５に示すように、このファイル送信機能付の文書１から送信されるファイルをネットワークセグメント１０を介して受信するものである。
【００４２】
そこで図６に示すように、文書受信手段４は文書を受信するとその文書情報を文書情報保持手段６に渡す。一方、文書情報保持手段６は情報を受け取るとその情報を登録する。また、ファイル受信手段４は文書ファイル自体を文書起動手段５に渡し、文書起動手段５は受信した文書１を起動する。このようにしてネットワークセグメント１０を介して送信される文書１の受信が行われる。
【００４３】
さらに図７に、ファイル受信に関連する処理の流れを示す。なお、この例ではTCP/IPでの通信を仮定している。そこで始めにステップＳ１１でファイル受信のためのソケットを所定のポート番号で生成し、ステップＳ１２接続の待ちうけをする。そして接続要求がきたらステップＳ１３で接続を確立し、ステップＳ１４でファイルの受信を行う。さらにステップＳ１５で受信したファイルの保存を行い、ステップＳ１６で取得した文書の情報を登録し、ステップＳ１２での接続待ち受けに戻る。
【００４４】
なお、ファイル受信、保存時に取得できる文書情報には以下のものがあげられる。
・ファイル名
・ファイル送信元ＩＰアドレス
・ファイル保存先
・その他ファイル内に格納されている情報
【００４５】
さらにファイル保存に関しては、保存先は、ダイアログを出してユーザに保存先を決めさせる場合と、自動で所定のディレクトリに保存する場合とがある。ユーザに保存先を決めさせる場合もその保存先パスを取得することができるし、所定のディレクトリに保存する場合ももちろん保存先パス情報を取得できる。なお、ファイル受信に関しては独自にソケットを生成し、ファイル送信を待ち受けるものであり、ユーザが、例えばＩＰアドレスを指定することによって、送信先が決定される。したがって、同一セグメント内でなくともファイル送信は可能である。
【００４６】
また、ファイルの起動に関しては、保存したファイルは、自動的に起動させると便利である。ファイルは自身が保存しているので対象ファイルのパス情報やファイル拡張子情報を取得可能である。このファイルを起動するには、拡張子から判断して対応するプログラムをファイルパスを引数として起動する。例えば、拡張子が「.jar」の場合は、
javaw -jar ファイルパス
とすれば良い。
【００４７】
また、例えばWindows環境においては、ファイルをダブルクリックすると拡張子に関連付けられたプログラムが自動的に起動するようになっているが、これを利用するには、コマンドとして
cmd.exe /k ファイルパス
としてやると、すでに拡張子と関連付けられていれば、拡張子の判断なしにＯＳ側で判断して適切なプログラムを起動する。
【００４８】
以上では、ファイルの受信、保存、起動に関して述べたが、文書ファイルを送信する側では、どこの文書を送信すべきかの情報が必要である。したがって、例えば文書が起動時に自身の情報をブロードキャストするのに呼応して、文書ファイルを受ける側は、受信可能かどうかの通知を文書に対して行えるとより便利である。
【００４９】
〔取得した情報の利用〕
文書が発信する文書情報や、文書ファイルを受信することによって、文書に関する情報を取得することができる。以下に取得できる文書情報をあげる。
＜文書情報受信時＞
・ＩＰアドレス
・（ポート番号）
・ＩＤ（固有のＩＤ、他に同じものなし。）
・文書ＩＤ（文書ごとのＩＤ）
・その他（ユーザ名、タイトル、ファイルパス、…その他）
＜文書ファイル受信時＞
・ファイル名
・ファイル送信元ＩＰアドレス
・ファイル保存先
・その他ファイル内に格納されている情報
【００５０】
これらの情報はローカルに保持される。保持したデータは次回起動時にロードする(ロードしなくても必要なときに読み込むことができればそれでもよい)。これは、一度取得したデータを有効活用するためのものである。つまり、上記文書情報の取得により、どこでどの文書が起動したかという情報を取得できているので、例えば、他マシンで文書が起動し、情報がブロードキャストされた際に、それがローカルマシンにある文書かどうかの判断などができる。
【００５１】
さらに図８に取得した情報の利用に関する処理の流れを示す。まず文書情報管理装置２はステップＳ２１で起動すると、ステップＳ２２で情報待ち受け状態に入る。ここで文書１がブロードキャストすることにより情報がネットワークセグメント１０に送信されると、ステップＳ２３で発信情報取得手段３がそれを受信する。そして文書情報を受信すると、ステップＳ２４で受信したデータを解析して、そのデータが、他のマシンで起動した文書のデータであって、同じ文書ＩＤを持つ文書の登録が、ローカルマシンにあるかどうかをチェックする。
【００５２】
ここで、同じ文書ＩＤを持つ文書の登録がローカルマシンにある（Ｙｅｓ）、つまり、以前にそのマシンで起動したことがあれば、ステップＳ２５でその文書の起動をユーザに促す。また、該当する文書がなければ（Ｎｏ）、その文書を持っていないことになるので、ステップＳ２６でユーザに対して、「ファイル送信要求しますか？」などのダイアログを表示し、ステップＳ２７でユーザの対応に応じて処理を行う。すなわち、ユーザがファイル送信要求をした場合（Ｙｅｓ）は、ステップＳ２８でファイル送信要求を送信する。
【００５３】
つまり、持っていればそれを起動するようユーザに促すことができるし、もっていなければ、ファイルの送信要求ができる。そしてファイル要求する場合は、その文書を起動した文書に対して行う。なお、文書側が対応していない場合もありえるが、この場合は対応しているものとする。また、ファイル要求を受信した文書は自身のコピーをマシンに対して送信する。その後、発信情報取得手段３は再び情報待ち受け手段（ステップＳ２２）に入り、発信された情報がネットワークインターフェイスに到達するのを待つ。このようにして、取得した情報の利用に関する処理が行われる。
【００５４】
〔他のマシンとの情報交換〕
先に述べたように、文書がブロードキャストするデータは他のセグメントには届かないので、同じセグメント内の異なるマシンが保持する文書情報は、同じセグメント内で起動した文書に限られる。それぞれが保持する文書情報は、ローカルに保持しているか否か以外は基本的には同じ情報である。したがって、他のセグメントの文書情報を取得するには他のセグメントのマシンと情報交換する必要がある。
【００５５】
ただし、異なるセグメントにおけるマシンが保持する情報は、当然ながら全く異なるものである。例えば、ＩＰアドレス192.168.0.xxx、サブネットマスク255.255.255.0で起動している常駐プログラムは、192.168.0.系のマシンで起動している文書情報を保持することはできるが、192.168.11.xxx サブネットマスク255.255.255.0のマシンで起動している文書情報は取得することができない。
【００５６】
そこで、他セグメントのマシンと情報交換するには、他のセグメントに属するマシンのＩＰアドレスを何らかの形で知る必要がある。一番簡単にマシンが他のセグメントに属するマシンのＩＰアドレスを知るには、ユーザによる指定が挙げられる。ここでは一等最初にのみユーザが指定し、その後はそのアドレスのマシンと自動的に情報をやり取りする。以下に、図９〜図１１を参照して、他のセグメントに属するマシンとの情報交換の動作例について説明する。
【００５７】
例えば、192.168.0.2のマシンで起動している文書情報管理装置２Ａが、192.168.11.5で起動している文書情報管理装置２Ｂに、ユーザ指示により文書情報を要求したとする（ステップＳ３１）。文書情報管理装置２Ｂは要求を受信（ステップＳ４２）した時点で、送信元のＩＰアドレスを取得することができる。ここで文書情報管理装置２Ｂは送信元のＩＰアドレスで起動しているマシンに対して、保持している情報の送信を要求するとともに、文書情報管理装置２Ｂ自身が保持している情報を文書情報管理装置２Ａに送信（ステップＳ４３）する。
【００５８】
すなわち、ユーザは文書を作成する際に文書内に作成者情報の一つとしてＩＰアドレスを記述することとする。この文書はメールなどによって転送されるものであり、転送先で起動された際に、文書内に記述されたＩＰアドレスを参照して，作成者の文書ないしは常駐プログラムに情報を送信することが可能になる。この際に、起動したマシンのＩＰアドレスを通知することや、保持している情報を通知することが可能となる。
【００５９】
これにより、文書情報管理装置２Ａは文書情報管理装置２Ｂからの要求を受信（ステップＳ３３）し、内容を解釈し、対応する。この場合は保持している情報を文書情報管理装置２Ｂに対して送信（ステップＳ３５）する。また、文書情報管理装置２Ｂの保持していた情報も受信する。さらに、文書情報管理装置２Ａ、２Ｂはともに保持データを更新（マージ）する。そして、文書情報管理装置２Ａ、２Ｂはともにマージした情報をブロードキャスト（ステップＳ３６、４７）してセグメント内の他のマシンに通知する。
【００６０】
このような他セグメントとの情報交換により、プログラムＡ、Ｂを基点として、両者がセグメント192.168.0.系と192.168.11.系の情報をもつことができる。したがって、プログラムＡ、Ｂが起点になったことにより、文書情報管理装置２Ａが属するセグメントにある他のマシン上で起動している常駐プログラムと、文書情報管理装置２Ｂが属するセグメントにある他のマシン上で起動している常駐プログラムが文書情報管理装置２Ａ、２Ｂを介することなくブロードキャストでは伝わらない情報をユニキャストやTCP/IPで保持している情報をやりとりできる。
【００６１】
また、さらに他のセグメントからの要求を受信することによって、異なるセグメントに属するプログラムが保持する情報を取得することができるので、処理をすればするほど広範囲にわたるネットワーク上の文書情報を取得することができる。さらに、他セグメントに属するマシンのＩＰアドレスはファイル受信を通じて取得することも可能である。
【００６２】
なお、ファイル受信手段は特定マシンから特定マシンへのファイル送信を受信するものであるので、基本的には、TCP/IPでコネクションをはってファイルの送受信を行う。これはつまり、セグメント内であろうがなかろうが同じ処理で済むので、ユーザはファイル送信先として、異なるセグメントのマシンを指定することもできる。
【００６３】
さらにこのときに受信側は他のセグメントからの送信により、その送信元のＩＰアドレスを取得することができるし、送信側はユーザ指定によってＩＰアドレスが直接入力されるので、この情報を利用することによって他のセグメントに属するマシンのアドレスを取得できる。該当文書が起動しているかどうかは、通常、文書が起動時に発信する情報と、文書が閉じられる際に発信される情報をもとに判断する。
【００６４】
また、これらは基本的にブロードキャストで行われるため、異なるサブネットへは、明示的に送信しなければならないが、この動作に関しても上述したのと同じ要領で行うことが可能である。つまり、あるセグメントの代表（例えば最初に起動したもの）が、他のセグメントへの通知を行い、通知を受信したマシンはその情報をブロードキャストすることにより、文書情報をそのマシンが属するセグメント全体に通知する。以上が基本的な動作である。
【００６５】
〔表示例〕
以下に、本文書情報管理装置の表示例を示す。図１２のＡにおいては、Windowsでいうところのタスクトレイに常駐プログラムとして待機する。そこでタスクトレイのアイコンをクリックすると、図１２のＢに示すように保持している文書情報の一覧が表示される。なお、文書情報の一覧の具体例は図１３に示すように、タイトル、ファイル名ユーザ名、保存パスはオプションで、取得できた場合に表示する。文書ＩＤやＩＤに関しては、処理上必要になる情報であるので表示する必要はない。
【００６６】
なお、文書情報の一覧表示に関しては、取り扱う文書が増えてくると、ユーザが一覧から文書を探すのが大変になるので、後述する検索機能や、日付順や名前順の並び替え、最近扱った文書一覧など、表示を工夫する必要がある。また図１２のＣに示すように、他のマシンで起動中の文書は強調表示される。このとき、強調表示された文書をクリックすると、ローカルマシンに保持している場合は起動させることができる。また、ローカルマシンに保持していない場合は、ファイル送信要求を送信することができる。
【００６７】
さらに図１４のＡにおいては、Windowsでいうところのタスクトレイに常駐プログラムとして待機する。この場合には、他マシンで文書が起動されたり、文書ファイルが送信されたりするとアイコンが点滅してユーザに通知する。文書起動情報とファイル受信情報とで点滅色を変えるとわかりやすい。
【００６８】
また、文書情報を受信した場合には、クリックすると文書情報一覧が表示され、図１２のＣと同様に該当文書が強調表示される。さらにファイルを受信した場合には、クリックすると図１４のＢに示すように「起動しますか」のダイアログが表示され、ＯＫクリックでファイルが起動される。
以下には、さらに付加的な機能の動作について述べる。
【００６９】
〔文書が起動しているかどうかの検知〕
文書が起動しているかどうかの検知は、文書が起動時に通知するデータを用いて行うことができる。先に述べたように起動時にＩＰアドレスなどの情報を文書がブロードキャストするので、その情報を受信した場合が、文書を起動している状態である。この情報は他セグメントには通知されないため、保持している情報の中に他のセグメントの文書情報がある場合には、その文書に対して情報を通知する必要がある。
【００７０】
しかしながら、その他セグメント文書情報は、同一セグメント内の他のマシンも保持している可能性が高い。したがって、そのままでは、他の文書も他のセグメントの文書に対して情報を送信してしまうことになり、起動しているマシンが多ければ多いほど、無駄な送信が多くなる。これを解決するための一つの方法としては、例えば、同一セグメント内において最初に起動したマシンを主とし、他セグメントへの情報伝達などはこのマシンに一任するという方法がある。
【００７１】
最初に起動したマシンは他セグメントへの情報伝達を行い、2番目以降に起動したマシンは他セグメントへの情報伝達は行わないものとする。最初に起動したマシンかどうかの判断は、文書がブロードキャストするのと同じように、自身の情報をブロードキャストし、返答がくれば2番目以降であるし、なければ最初の起動とすればよい。最初に起動したマシンは、2番目以降に起動するマシンがブロードキャストするデータを受信したら、その送信元に、最初に起動したことを表すデータを送信するようにすればよい。
【００７２】
〔受信した文書が有効かどうかの確認〕
先に述べたように文書ファイルを受信した場合、保存先まで確認できるので、マシンは受信した文書のファイルパス情報を保持することが可能である。また、文書が最初にブロードキャストした情報にファイルパス情報が含まれている場合もそれを受信することによって文書ファイルのパス情報を取得することができる。
【００７３】
しかしながらこのファイルパス情報は、ユーザのフォルダ操作などにより、時間がたつにつれて情報が変化することが多い。したがって、取得しているファイルパス情報が有効であるかどうかを常に検証する手段が必要である。定期的にファイルパスの検証を行うことにより、保持している情報の正確性を高めることができる。
【００７４】
ファイルパス検証は定期的に保持している情報のパスにファイルが存在しているかどうかを検証する。例えば、Javaで言えば、Fileクラスのexist()で調べればよい。なければ、検索する。同一ファイル名を検索し、もし見つかれば、ファイルの中身を検証して、IDなどをチェックし、同一文書であると判断できれば、ファイルパス情報を変更する。一定時間ファイル検索を行って同一ファイル名を検索できなかったり、同一ファイル名があってもIDが異なっていたりした場合は、ファイルパス情報を削除する。
【００７５】
〔ログ〕
あるマシンで起動している常駐プログラムが取得できる情報は以下のとおりである。
・起動している文書情報（ＩＰアドレス、文書ＩＤ（同文書同ＩＤ）、ＩＤ（唯一無二））
・過去に起動した文書および起動した時刻、閉じた時刻
・受信した文書ファイルに関する情報(文書情報、保存先パス、送信元IPアドレス)
これらの情報の記録をとることによってマシンが扱っている情報をもとにした文書のログを記述することができる。ログはローカルのファイルに記述される。
【００７６】
〔検索〕
例えば、受信したファイルに関しては、そのコンテンツのインデックスを生成することができる。コンテンツのインデックス化について以下に述べる。インデックスはテーブルに格納されているデータを高速に取り出すための仕組みであり、インデックスにもいくつか種類がある。ここではインデックスの中でも代表的な、B-Treeインデックスを例にとって述べる。
【００７７】
B-Treeインデックスは、ヘッダブロック、ブランチブロック、リーフブロックの３段ツリー構造になっており、要は、ヘッダブロックを頂点とした木構造になっている。アルファベットを例にとると、ヘッダブロックの部分は、Ａ−ＫとＬ−Ｚの２種類、ブランチブロックは、Ａ−Ｋから伸びたＡ−Ｄ、Ｅ−Ｇ、Ｈ−Ｋと、Ｌ−Ｚから伸びたＬ−Ｏ、Ｐ−Ｒ、Ｓ−Ｚというように、下層に行くにしたがって細分化されていく。Ａ−Ｋ、Ａ−Ｄに続くリーフブロックにはＡＰＰＬＥなど具体的な言葉がキーとして与えられ、リーフブロックの値として物理的な位置へのポインタが与えられる。
【００７８】
つまり、例えばＡＰＰＬＥというキーがあった場合には、ヘッダブロックではＡ−Ｋ、ブランチブロックではＡ−Ｄ、リーフブロックでＡＰＰＬＥときて、最終的に物理的な位置にたどり着く。以上が簡単なインデックスの仕組みである。したがって、受信したファイルに含まれるコンテンツからインデックスを生成するには、以下のような手順を踏む。「ファイルの内容を読み込む」→「形態素解析などを行い、単語単位で切り分ける」→「単語がキーとなるように、ツリーを生成し、キーに対応する情報を物理的な位置へのポインタとして格納する」。
【００７９】
以上のようにすることで、ファイルを受信したローカルマシンにおいて、対象ファイルに含まれるコンテンツのインデックスが作成される。つまりインデックスは、各ローカルマシンにおいて、受信したファイルもしくは起動したファイルを対象として生成される。
【００８０】
また、ログとして先に述べたような情報を取得できるので、時刻やユーザ名をキーとした文書検索も可能である。検索処理の流れを図１５に示す。図１５において、マシンはステップＳ５１で検索キーを受け付けると、ステップＳ５２で自身が保持している情報で、他のセグメントに属する情報があるかどうかを確認する。
【００８１】
このステップＳ５２で確認した結果、他のセグメントに属する文書情報がない場合（Ｎｏ）は、ステップＳ５３でローカル文書に関する情報をもとに検索し、ステップＳ５４で結果を表示する。また、ステップＳ５２で他のセグメントに属する文書情報がある場合（Ｙｅｓ）は、ステップＳ５５でそのセグメントに属するマシンに検索キーを送信して、ステップＳ５６で検索させる。
【００８２】
それとともに、ローカル文書に関する情報をもとに検索を行い、ステップＳ５７で結果の情報を保持する。また検索キーを受信したマシンは、ローカルで保持している情報をもとに検索し、検索結果を送信元に送信する。そして検索依頼したマシンは、ステップＳ５８、Ｓ５９で結果を受信し、他や自マシンの結果とあわせて表示する。以上のように各セグメントで代表して検索することで、検索の負荷を分散させることが可能である。
【００８３】
〔ディレクトリサーバ〕
以上は完全にピートゥピー環境での文書情報のやり取りであったが、サーバと組み合わせるとより便利である。ここで文書情報管理装置に追加で必要な機能は、ディレクトリサーバに取得した文書情報を通知する機能と、ディレクトリサーバが保持する情報を取得する手段である。またディレクトリサーバに必要な機能は、文書情報管理装置から送信される文書情報を受信する機能と、受信した情報を登録する機能と、登録した情報を文書情報管理装置の要求に応じて配布する機能である。
【００８４】
基本的な処理の流れを図１６に示す。文書情報管理装置はステップＳ６１で起動すると、ステップＳ６２で文書情報待ち受け状態に入る。ディレクトリサーバもステップＳ７１で起動すると、ステップＳ７２で情報待ち受け状態で待機する。さらに文書情報管理装置はステップＳ６３で文書情報を受信すると、ステップＳ６４でディレクトリサーバにその情報を送信、ステップＳ６５でサーバからの情報待ちうけ状態に入る。
【００８５】
一方、ディレクトリサーバは、ステップＳ７３で文書情報管理装置から送信される情報を受信すると、ステップＳ７４でその情報を登録し、ステップＳ７５でサーバが保持している情報を文書情報管理装置へ送信する。さらに文書情報管理装置は、ステップＳ６６で受信した情報を、ステップＳ６７で登録する。
【００８６】
ディレクトリサーバを用いる利点は、それぞれの文書情報管理装置が、他セグメントとのやりとりを処理しなくてもよくなるため、処理が簡単になることである。つまり、各文書情報管理装置が、所定のディレクトリサーバに情報を送信することによって、ディレクトリサーバはセグメントに関係なく文書情報を取得することが可能であり、各文書管理装置は、ディレクトリサーバが収集した情報を受信することによって、他のセグメントの情報も取得することができる。
【００８７】
〔文書が最初からTCP/IPでコネクションを確立して通信する場合〕
文書が最初にブロードキャストせずにいきなり１対１でコネクションを確立する通信を行う場合は、基本的に、本文書情報管理装置が取得できる情報がなくなってしまう。なぜなら、コネクションを確立する通信の場合、常に情報の送信側と受信側とで１対１で接続され、他の装置もしくはプログラムには情報を受け取る余地がないためである。
【００８８】
この場合、別途、文書と文書情報管理装置との間で情報をやりとりする仕組みが別に必要である。文書側の機能としては、前述しているように、自身の情報をブロードキャストする機能が必要であり、それがあれば、本発明の文書情報管理装置はそのまま対応可能である。
【００８９】
こうして本発明の文書情報管理装置によれば、通信機能を有する文書ファイルもしくは文書ファイルを扱うプログラムが発信する情報を取得する発信情報取得手段と、発信情報取得手段を介して取得した文書に関する情報を保持する文書情報保持手段とを有することにより、文書を介してのリアルタイムコミュニケーションを手助けするツールとして、文書の状態の管理などを行うための常駐プログラムを提供することができる。
【００９０】
なお本発明は、上述の説明した実施形態に限定されるものではなく、特許請求の範囲の記載を逸脱しない範囲において、種々の変形が可能とされるものである。
【図面の簡単な説明】
【００９１】
【図１】本発明の情報処理装置を適用した文書情報管理装置に関連するシステムの概要図である。
【図２】その発信情報取得の動作の説明のための図である。
【図３】その発信情報取得の動作の説明のための図である。
【図４】その発信情報取得の動作の説明のための図である。
【図５】その文書ファイル受信の動作の説明のための図である。
【図６】その文書ファイル受信の動作の説明のための図である。
【図７】その文書ファイル受信の動作の説明のための図である。
【図８】その取得した情報の利用の説明のためのフローチャート図である。
【図９】その情報交換の動作の説明のための図である。
【図１０】その情報交換の動作の説明のための図である。
【図１１】その情報交換の動作の説明のための図である。
【図１２】その表示例の説明のための図である。
【図１３】その表示例の説明のための図である。
【図１４】その表示例の説明のための図である。
【図１５】その検索処理の動作の説明のためのフローチャート図である。
【図１６】そのディレクトリサーバの動作の説明のための図である。
【符号の説明】
【００９２】
１Ａ，１Ｂ…文書、２Ａ，２Ｂ…文書情報管理装置、１０Ａ，１０Ｂ…ネットワークセグメント、３Ａ，３Ｂ…発信情報取得手段、４Ａ，４Ｂ…文書受信手段、５Ａ，５Ｂ…文書起動手段、６Ａ，６Ｂ…文書情報保持手段、７Ａ，７Ｂ…文書情報交換手段
【図１】
2007080179.tif 000003
【図２】
2007080179.tif 000004
【図３】
2007080179.tif 000005
【図４】
2007080179.tif 000006
【図５】
2007080179.tif 000007
【図６】
2007080179.tif 000008
【図７】
2007080179.tif 000009
【図８】
2007080179.tif 000010
【図９】
2007080179.tif 000011
【図１０】
2007080179.tif 000012
【図１１】
2007080179.tif 000013
【図１２】
2007080179.tif 000014
【図１３】
2007080179.tif 000015
【図１４】
2007080179.tif 000016
【図１５】
2007080179.tif 000017
【図１６】
2007080179.tif 000018