(57)【特許請求の範囲】
【請求項１】
データオブジェクトを処理可能に保持する複数のワークスペースを備える情報処理装置において、
ワークスペースが保持するデータオブジェクトの状態情報を履歴として当該ワークスペースに対応付けて保持する状態履歴保持手段と、
ワークスペース同士を関連付ける関連情報を保持する関連保持手段と、
ワークスペースの状態変化を前記状態情報に基づいて検出する検出手段と、
ワークスペースを開いている状態で当該ワークスペースの状態をそのまま継承した新たなワークスペースを生成する操作、ワークスペースを切り替える操作、データオブジェクトの参照先を開く操作、データオブジェクトを移動する操作のうちの少なくともひとつの操作を受け付け可能であって、前記操作のいずれかの操作を受け付けたことに基づいて、当該操作の対象のワークスペースに前記関連情報によって関連付けられている他のワークスペースについての前記状態変化を当該操作を行ったユーザへ提示する提示手段と、を備えたことを特徴とする情報処理装置。
【請求項２】
請求項１に記載した情報処理装置において、
更に、ワークスペース間を関連付けるべく設定された所定の操作を受け付けたことに基づいて、対応するワークスペース同士を関連付ける関連情報を関連保持手段に格納する格納手段を、備えたことを特徴とする情報処理装置。
【請求項３】
データオブジェクトを処理可能に保持するワークスペースを備えた情報処理装置において、
ワークスペースの状態に関する状態情報の履歴を保持する状態履歴保持手段と、
ワークスペースの状態変化を前記状態情報に基づいて検出する検出手段と、
他のユーザによって使用されたワークスペースに切り替える操作、他のユーザの作成したデータオブジェクトを参照する操作のうちの少なくともひとつの操作を受け付け可能であって、前記操作のいずれかの操作を受け付けたことに基づいて、当該操作によって特定されるワークスペースについての前記状態変化を当該操作を行ったユーザへ提示する提示手段と、を備えたことを特徴とする情報処理装置。
【請求項４】
請求項３に記載した情報処理装置において、
前記状態履歴保持手段は、前記状態情報にワークスペースを使用していたユーザのＩＤを対応付けて保持し、
前記提示手段は、ワークスペースの現在の状態情報と、前記操作を行ったユーザのＩＤに対応付けられている状態情報中の最新の状態情報と、により検出された状態変化を提示することを特徴とする情報処理装置。
【請求項５】
請求項３に記載した情報処理装置において、
前記状態履歴保持手段は、前記状態情報にワークスペースを使用していたユーザのＩＤを対応付けて保持し、
前記提示手段は、一のユーザのＩＤが対応付けられている状態情報中の最新の状態情報と、当該状態情報と同一のＩＤが対応付けられ且つ操作により指定された時点の状態情報と、により検出された状態変化を提示することを特徴とする情報処理装置。
【請求項６】
請求項３から請求項５のいずれか１項に記載した情報処理装置において、
前記情報処理装置には、複数のワークスペースが備えられており、
前記履歴情報保持手段は、前記状態情報をワークスペースに対応付けて保持し、
前記提示手段は、操作により指定されたワークスペースに対応付けられた状態情報に基づいて状態変化を提示することを特徴とする情報処理装置。
【請求項７】
状態履歴保持手段と、関連保持手段と、検出手段と、提示手段とを備えた情報処理装置が、データオブジェクトを処理可能に保持する複数のワークスペースに対して行う方法において、
前記状態履歴保持手段が、ワークスペースが保持するデータオブジェクトの状態情報を履歴として当該ワークスペースに対応付けて保持し、
前記関連保持手段が、ワークスペース同士を関連付ける関連情報を保持し、
前記検出手段が、ワークスペースの状態変化を前記状態情報に基づいて検出し、
前記提示手段が、ワークスペースを開いている状態で当該ワークスペースの状態をそのまま継承した新たなワークスペースを生成する操作、ワークスペースを切り替える操作、データオブジェクトの参照先を開く操作、データオブジェクトを移動する操作のうちの少なくともひとつの操作を受付け可能であって、前記操作のいずれかの操作を受け付けたことに基づいて、当該操作の対象のワークスペースに前記関連情報によって関連付けられている他のワークスペースについての前記状態変化を当該操作を行ったユーザへ提示することを特徴とする情報処理方法。
【請求項８】
状態履歴保持手段と、検出手段と、提示手段とを備えた情報処理装置が、データオブジェクトを処理可能に保持するワークスペースに対して行う方法において、
前記状態履歴保持手段が、ワークスペースの状態に関する状態情報の履歴を保持し、
前記検出手段が、ワークスペースの状態変化を前記状態情報に基づいて検出し、
前記提示手段が、他のユーザによって使用されたワークスペースに切り替える操作、他のユーザの作成したデータオブジェクトを参照する操作のうちの少なくともひとつの操作を受付け可能であって、前記操作のいずれかの操作を受け付けたことに基づいて、当該操作によって特定されるワークスペースについての前記状態変化を当該操作を行ったユーザへ提示することを特徴とする情報処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子的な文書等のデータオブジェクトをアクセス等可能に保持するワークスペースを備えた情報処理装置及び情報処理方法に関し、特に、ユーザによる操作に基づいて或いはリアルタイムに、ワークスペースの状態変化を操作を行っているユーザに提示する情報処理装置及び情報処理方法に関する。
【０００２】
【従来の技術】
従来より、コンピュータを用いてユーザが行う作業の環境（ワークスペース）を保存し、管理し、それらを切り替えることにより複数の業務を並行して行うことを支援するワークスペースシステムがあり、このようなシステムとしては、Ｘｅｒｏｘ社のＲｏｏｍｓ（商品名）や、特開平7-295930号公報に記載された情報処理装置等がある。
【０００３】
しかしながら、これらのワークスペースシステムでは、複数のユーザが協調して作業することを想定していないために、他ユーザによってどのようにワークスペースの状態が変化されたかといったことを知ることが困難である。
例えば、Ｒｏｏｍｓに関して言えば、過去の活動の履歴が残らないために、他ユーザのワークスペースの状態変化を知るためには、前回参照した際の記憶に頼らざるをえない。
また、特開平7-295930号公報に開示された技術に関して言えば、他ユーザによるワークスぺースの状態変化を知るためには、履歴を辿り、逐一自分の目で差分を確認するといったことを行わなければならず、重要なワークスペースの状態変化を見落とし易いと言った問題があった。
【０００４】
上記した問題を解決するシステムとして、他ユーザが起こしたワークスペースに対するイベントをユーザに通知させるシステムがいくつか存在する。
例えば、特開平8-292902号公報（以下、文献１という。）に記載されたシステムでは、予め設定した興味範囲のイベントが発生した際にユーザに通知する。
また、特開平6-35821号公報（以下、文献２という。）に記載されたシステムでは、操作の発生をユーザに通知する方法として即時・蓄積・メールといった方法を選択することができる。
【０００５】
また、ＧＭＤ（German National Research Center for Information Technology）のＧｒｏｕｐＤｅｓｋ（Ludwin Fuchs, Uta Pankoke-Babatz, Wolfgang Prinz, "Supporting Cooperative Awareness with Local Event Mechanisms: The GroupDesk Sysytem", ECSCW '95, 1995に記載。以下、文献３という。）では、ユーザは、予め設定したワークスペースで起きた(或いは、伝播してきた)イベントの通知を受け取ることができる。
ここで、イベントは、オブジェクトの階層関係・操作関係・意味関係を辿って伝播するので、例えば、文書を変更するイベントが発生した場合には、その文書の上位階層のワークスペースにイベントが伝わり、そのワークスペースを開いているという操作関係を持つユーザに対して通知が行われる。
このように、ユーザは現在活動しているワークスペース或いは興味のあるワークスペースと関連するワークスペースの状態の変化を知ることができる。つまり、ユーザは、今行っている仕事に関するイベントと、興味のある仕事に関するイベントを常に受け取ることができる。
【０００６】
【発明が解決しようとする課題】
現実のオフィスワークでは、複数ユーザがそれぞれ複数の仕事を抱えた状態で業務の遂行が行われており、協調して作業を行っている他ユーザが常に同時に関連する業務を行っているとは限らない。
したがって、ユーザは、自分の仕事に関連する状態変化を非同期に自分が必要なタイミングで知る必要がある。
しかしながら、上記した文献１や文献３のシステムでは、他ユーザのイベントが発生した際に否応無しに通知してくる。つまり、自分にとって必要とは限らないタイミングで通知が行われることになってしまう。
このように、他人の活動を契機に情報が伝えられた場合には、自分の活動が乱されるばかりでなく、いざ自分が必要なときにその情報を覚えていない或いは紛失してしまっているといった事態が発生する可能性がある。
更に、他人の活動が行われる度に情報が伝えられると、状況の変化を理解しておくためには、伝えられる全ての情報を監視する必要がある。
【０００７】
また、上記した文献２のシステムでは、操作の発生を蓄積しておき、ユーザが指示した時に表示させることができるが、蓄積された通知が全て同時に表示されてしまう。つまり、全く業務に関連しない通知がユーザになされるといった事態が発生してしまう。
【０００８】
また、自分にとって重要な情報があり、その情報の保持されているフォルダを監視していたとしても、自分にとって必要な情報がいつまでも前記フォルダに格納されているとは限らず、場合によっては、必要な情報が既に他のフォルダに移されている可能性があるために、ユーザにとって必要な通知が適切になされるとは限らない。なお、このように必要な情報が他に移されてしまうといったことは、非定型業務においては必ず生じてしまうものである。
また、通知される情報はそのときの変化分のみで、継続的に状況を共有しようとすると、各々が他者の活動経過を保存しておく必要があった。
【０００９】
本発明は上記した従来の事情に鑑みてなされたもので、ユーザにとって適切なタイミングに、適切なワークスペースの状態変化を通知することができるようにすることを目的としている。
また、本発明は、新たに起きた状態変化のみを通知するだけではなく、当該状態変化を反映させたワークスペースを提示することにより、関連する他のワークスペースとの間で同期をとらせて継続的に作業状況を共有する機能及び方法を提供することを目的としている。
【００１０】
【課題を解決するための手段】
上記した目的を達成するために本発明に係る情報処理装置は、データオブジェクトを処理可能に保持する複数のワークスペースを備える情報処理装置において、ワークスペースが保持するデータオブジェクトの状態情報を履歴として当該ワークスペースに対応付けて保持する状態履歴保持手段と、ワークスペース同士を関連付ける関連情報を保持する関連保持手段と、ワークスペースの状態変化を前記状態情報に基づいて検出する検出手段と、情報処理装置に対するユーザの操作を監視する監視手段と、関連するワークスペースの状態変化を提示すべく設定された所定の操作が監視手段により検出されたことに基づいて、当該操作の対象のワークスペースに前記関連情報によって関連付けられている他のワークスペースについての前記状態変化を当該操作を行ったユーザへ提示する提示手段と、を備えたことを特徴とする。
【００１１】
ここで、関連するワークスペースの状態変化を提示すべく設定された所定の操作とは、例えば、新たにワークスペースを生成する操作、他のワークスペースを開く操作、ワークスペース内のデータオブジェクトを参照する操作、データオブジェクトを移動する操作、予めユーザが設定している操作等といったユーザの作業を妨害しない時点、或いは、ユーザの作業において他のワークスペースとの整合をとるに必要な時点に行われる操作のことをいう。
【００１２】
上記した情報処理装置では、検出手段がワークスペースの状態変化を状態履歴保持手段の状態情報に基づいて検出し、関連するワークスペースの状態変化を提示すべく設定された所定の操作が監視手段により検出されたことに基づいて、提示手段が当該操作の対象のワークスペースに関連保持手段の関連情報によって関連付けられている他のワークスペースについての前記状態変化を当該操作を行ったユーザへ提示する。
また、本発明に係る情報処理方法では、データオブジェクトを処理可能に保持する複数のワークスペースについてデータオブジェクトの状態情報を履歴として記憶手段に保持し、また、当該ワークスペース同士を関連付ける関連情報を記憶手段に保持し、関連するワークスペースの状態変化を提示すべく設定された所定の操作がユーザによってなされると、当該操作の対象のワークスペースに前記関連情報によって関連付けられている他のワークスペースについての状態変化を、前記状態情報に基づいて検出して、当該操作を行ったユーザへ提示する。
したがって、ユーザの作業を妨害しない時点、或いは、ユーザの作業において他のワークスペースとの整合をとるに必要な時点といった適切なタイミングで、ユーザの操作対象のワークスペースに関連する他のワークスペースの状態変化をユーザに提示することができる。
【００１３】
更に、本発明に係る情報処理装置は、ワークスペース間を関連付けるべく設定された所定の操作が監視手段により検出されたことに基づいて、対応するワークスペース同士を関連付ける関連情報を関連保持手段に格納する格納手段を、備えたことを特徴とする。
ここで、ワークスペース間を関連付けるべく設定された所定の操作とは、例えば、ワークスペースを開いている際に前記ワークスペースの状態をそのまま継承した新たなワークスペースを生成する操作、データオブジェクトをワークスペース間でコピーあるいは移動する操作、ユーザによるワークスペースを関連付けさせる指示を表す操作等といった、ワークスペース間が関連することを表していると考えられる操作のことをいう。
【００１４】
上記した情報処理装置では、ワークスペース間を関連付けるべく設定された所定の操作が監視手段により検出されたことに基づいて、格納手段が対応するワークスペース同士を関連付ける関連情報を関連保持手段に格納する。
したがって、ワークスペース間をユーザの操作に応じて適切に関連付けることができる。
【００１５】
また、本発明に係る情報処理装置は、データオブジェクトを処理可能に保持するワークスペースを備えた情報処理装置において、ワークスペースの状態に関する状態情報の履歴を保持する状態履歴保持手段と、ワークスペースの状態変化を前記状態情報に基づいて検出する検出手段と、情報処理装置に対するユーザの操作を監視する監視手段と、ワークスペースの状態変化を提示すべく設定された所定の操作が監視手段により検出されたことに基づいて、当該操作によって特定されるワークスペースについての前記状態変化を当該操作を行ったユーザへ提示する提示手段と、を備えたことを特徴とする。
【００１６】
ここで、ワークスペースの状態変化を提示すべく設定された所定の操作とは、例えば、ユーザが明示的に状態変化の提示を指示する操作、他のユーザが作成したデータオブジェクトを参照する操作、他のユーザによって使用されたワークスペースを開く操作等といった、ユーザが必要としている時点、或いは、ユーザにワークスペースの状態変化を把握させるに適した時点に行われる操作のことをいう。
【００１７】
上記した情報処理装置では、検出手段がワークスペースの状態変化を状態履歴保持手段の状態情報に基づいて検出し、ワークスペースの状態変化を提示すべく設定された所定の操作が監視手段により検出されたことに基づいて、提示手段が当該操作によって特定されるワークスペースについて状態変化を当該操作を行ったユーザへ提示する。
また、本発明に係る情報処理方法では、データオブジェクトを処理可能に保持するワークスペースについてワークスペースの状態に関する状態情報を履歴として記憶手段に保持し、ワークスペースの状態変化を提示すべく設定された所定の操作がユーザによってなされると、当該操作によって特定されるワークスペースについての状態変化を、前記状態情報に基づいて検出して、当該操作を行ったユーザへ提示する。
したがって、ユーザが必要としている時点、或いは、ユーザにワークスペースの状態変化を把握させるに適した時点といった適切なタイミングで、操作によって特定されるワークスペースの状態変化をユーザに提示することができる。
【００１８】
また、本発明に係る情報処理装置は、データオブジェクトを処理可能に保持する複数のワークスペースを複数のユーザに同時に提供する情報処理装置において、ワークスペースが保持するデータオブジェクトの状態情報を履歴として当該ワークスペースに対応付けて保持する状態履歴保持手段と、ワークスペース同士を関連付ける関連情報を保持する関連保持手段と、ワークスペースの状態変化を前記状態情報に基づいて検出する検出手段と、ワークスペースの状態変化が検出手段により検出されたことに基づいて、当該状態が変化したワークスペースに前記関連情報によって関連付けられている他のワークスペースを操作するユーザに対して前記状態変化を提示する提示手段と、を備えたことを特徴とする。
【００１９】
上記した情報処理装置では、検出手段がワークスペースの状態変化を状態履歴保持手段の状態情報に基づいて検出し、この状態変化が検出されたことに基づいて、提示手段が当該ワークスペースに関連保持手段の関連情報によって関連付けられている他のワークスペースへ当該状態変化を提示する。
また、本発明に係る情報処理方法では、データオブジェクトを処理可能に保持する複数のワークスペースについてデータオブジェクトの状態情報を履歴として記憶手段に保持し、また、当該ワークスペース同士を関連付ける関連情報を記憶手段に保持し、ワークスペースの状態変化を前記状態情報に基づいて検出すると、当該状態が変化したワークスペースに前記関連情報によって関連付けられている他のワークスペースを操作するユーザに対して前記状態変化を提示する。
したがって、リアルタイムに、互いに関連するワークスペース間で状態変化を通知してユーザに提示することができる。
【００２０】
更に、本発明に係る情報処理装置は、関連情報により関連付けられた複数のワークスペースが保持するデータオブジェクトの状態情報に基づいた演算を行って、これらワークスペースの状態を同期させる新たな状態情報を生成する状態情報演算手段を備え、提示手段は、前記検出手段によりワークスペースの状態変化を検出した際に、当該ワークスぺースと関連付けられている他のワークスペースに対して、状態変化が検出されたワークスペースとの間で前記新たな情報を生成して、当該他のワークスペースの状態情報を更新することを特徴とする。
これにより、互いに関連するワークスペース間で状態を同期させることができ、現実には独立した複数のワークスペースを仮想的にシェアドワークスペースとすることができる。
【００２１】
更に、本発明に係る情報処理装置は、同時に使用されている複数のワークスペースに対するユーザの操作を監視する監視手段と、状態変化を提示するワークスペースの使用ユーザを選択するユーザ選択手段と、を備え、提示手段は、監視手段によって検出されたユーザが選択手段により選択されたユーザと一致するときにのみ当該ユーザに対して他のワークスペースの状態変化を通知することを特徴とする。
これにより、互いに関連付けらた複数のワークスペースの中でも、更に、特定されたユーザとの間でのみワークスペース状態の共有化が図られる。
【００２２】
【発明の実施の形態】
本発明の第１実施例に係る情報処理装置を図１を参照して説明する。
この情報処理装置は、ネットワーク４を介して接続されたサーバ１とクライアント５により構成されており、サーバ１及びクライアント５は、どちらもワークステーション、パーソナルコンピュータ等といった計算機により構成されている。なお、本実施例では、クライアント・サーバによる実現形態をとっているが、このような形態である必要はなく、例えば、ネットワークを用いずに１台の計算機内に情報処理装置を構成するようにしてもよい。
【００２３】
サーバ１は、履歴保持部２と、変化検出部３とを有している。なお、サーバ１は複数のユーザ(クライアント)によって共通に用いられる情報を管理する。
履歴保持部２は、ワークスペースを管理するとともに、ワークスペースの履歴を保持する。そして、クライアント５からの日時の入力に対し、最も近い日時に保存されたワークスペースを復元するための情報を出力として返す。
【００２４】
本実施例では、ワークスペースの状態を、アンカー(文書、他のワークスペース等を参照するためのリファレンス・オブジェクト)の集合を保持するスナップショット(以下、スナップという。)として表現しており、履歴保持部２は当該スナップを時系列的に保存することによってワークスペースの履歴を管理している。
【００２５】
具体的には、この履歴保持部２は、関係データベースにより構成され、ワークスペース、スナップ、アンカー、ユーザといったデータベーススキーマを有している。
ワークスペースは、作業を行う場所を代表するオブジェクトであり、図２に示すように、ワークスペースの識別子（ワークスペースｉｄ）と、ワークスペースの名前（ワークスペース名）と、ワークスペースが作られた日時（作成日時）と、ワークスペースを作成したユーザ（作成ユーザ）と、階層関係において１つ下の階層の中で最上位のワークスペースの識別子（長男ワークスペース）と、階層関係において同じ階層で１つ下位のワークスペースの識別子（弟ワークスペース）と、を組で有している。本実施例では、あるワークスペースに対し、その１つ下の階層の中で最上位のワークスペースを長男ワークスペース、最下位のワークスペースを末っ子ワークスペース、同階層で１つ下位のワークスペースを弟ワークスペースと呼ぶことにする。
【００２６】
上記した長男ワークスペース、弟ワークスペースといったデータベーススキーマによると、ワークスペース間の階層関係を表現することができる。例えば、図３に示す階層構造であれば、「特許作成」ワークスペースの長男ワークスペースを「特許調査」、弟ワークスペースを「null(存在しない)」とし、更に、「特許調査」ワークスペースの長男ワークスぺースを「null」とし、弟ワークスペースを「アイデア整理」とするといったように各ワークスペースの長男ワークスペース及び弟ワークスペースを設定することにより、階層関係を表現することができる。
【００２７】
スナップは、ワークスペースの或る時点における状態を表すオブジェクトであり、図４に示すように、スナップの識別子（スナップｉｄ）と、スナップが作られた日時（作成日時）と、当該スナップを作成した時点のユーザ（作成ユーザ）と、当該スナップが表しているワークスペースの識別子（ワークスペース）と、当該スナップを作成した時点にワークスペースが保持していたアンカーの集合（アンカー集合）と、を組で有している。
【００２８】
アンカーは、文書（データオブジェクト）を指し示すリファレンス・オブジェクト、或いは、状態変化を監視すべき他のワークスペース（すなわち、関連するワークスペース）のスナップを指し示すリファレンス・オブジェクトであり、図５に示すように、アンカーの識別子（アンカーｉｄ）と、アンカーの名称（アンカー名）と、アンカーが作られた日時（作成日時）と、当該アンカーを作成したユーザ（作成ユーザ）と、当該アンカーが指し示す文書の識別子（参照先）と、アンカーの種類を表すフラグ（ウォッチ・フラグ）と、状態変化を監視するスナップの識別子（参照先スナップ）と、アンカーを表すアイコンの表示位置（Ｘ座標、Ｙ座標）と、を組で有している。
【００２９】
ここで、ウォッチ・フラグが”ｔｒｕｅ”であれば、当該アンカーが状態変化を監視すべきワークスペースのスナップを指し示すアンカー（以下、ウォッチ・アンカーという。）であることを意味している。
なお、本実施例では、文書の識別子として、ＵＲＬ（Uniform Resource Locator）を用いている。
【００３０】
ユーザは、各利用者を指し示すオブジェクトであり、図６に示すように、識別子（ユーザｉｄ）と、ユーザ名と、ユーザに与えられたパスワードと、ユーザによってログインされた際に開くワークスペース（ホームワークスペース）と、を組で有している。
【００３１】
変化検出部３は、クライアント５より、後述する関連変化通知リクエスト、ユーザ変化通知リクエスト、最新変化通知リクエストを受け取り、各リクエストに応じてワークスペースの状態変化を検出する処理を行い、検出結果をリクエストを送ってきた変化提示部１１に返す。なお、処理における詳細な機能の説明については、後述する動作説明において行うこととする。
【００３２】
クライアント５は、入出力部６と、ワークスペース保持部７と、通知ルール記憶部８と、関係定義及び保存ルール記憶部９と、操作監視部１０と、変化提示部１１と、を有している。なお、クライアント５はユーザが仕事を行うためのもので、ワークステーションやパーソナルコンピュータ上のソフトウェアによって実現されている。
【００３３】
入出力部６は、ディスプレイ、キーボード、マウスなどの入出力装置によって構成される。ここでは、各種のアプリケーションに共通に用いられるウィンドウの表示、キーボード入力、カーソルによるアイコンやボタン操作などの標準的な入出力制御が行なわれるものとする。
【００３４】
ワークスペース保持部７は、ユーザが作業を行うワークスペースの最新のスナップを保持し、保持したワークスペースを入出力部１に表示させ、ユーザによる作業によって変更されていくワークスペースのスナップを逐次更新して保持する。
そして、操作監視部１０より後述するスナップ保存リクエストが送られてきた場合には、サーバ１の履歴保持部２へ現時点のスナップを格納し、階層関係定義リクエストが送られてきた場合には、ワークスペースを関連付ける処理を行い、ウォッチ・アンカー生成リクエストが送られてきた場合には、ワークスペースのスナップ同士を関連付ける処理を行う。なお、詳細な動作説明については、後述する動作説明において行うこととする。
【００３５】
図７には、ワークスペース保持部７によって表示されたワークスペース表示画面を示してある。
この画面には、ワークスペースの最新のスナップを表示するスナップ領域２１があり、当該スナップ領域２１には、アンカーを表すアイコン２２、２３が表示される。そして、文書を指し示すアンカーのアイコン２２と、ウォッチ・アンカーのアイコン２３とは、異なったものとしており、容易に区別できるようになっている。なお、各アンカーを表すアイコン２２、２３は、入出力装置６によるダブルクリックによってアンカーが指し示す文書或いはワークスペースを開く機能を有している。
【００３６】
また、ワークスペース保持部７は、予め設定された複数のワークスペースから成るワークスペース集合を図８に示すように表示させることもできる。
このワークスペース集合表示画面は、集合表示領域２４と、スナップ表示領域２５とを有している。
そして、集合表示領域２４には、集合に属するワークスペースの階層構造が表示され、この領域のワークスペースを表すノードが入出力手段６により選択されると（同図中では、太枠のノードが選択されているノードを表している。）、スナップ表示領域２５に、選択されたワークスペースに保持されているアンカーが表示される。なお、上記したワークスペース表示画面と同様に、文書を指し示すアンカーのアイコンと、ウォッチ・アンカーを表すアイコンとは、異なったものを用い、容易に区別できるようにしている。
【００３７】
通知ルール記憶部８は、関連するワークスペースの状態変化の提示を行わせる関連変化通知リクエストを発生させるタイミングを規定した関連変化通知ルールと、或るユーザに関するワークスペースの状態変化の提示を行わせるユーザ変化通知リクエストを発生させるタイミングを規定したユーザ変化通知ルールと、ユーザが過去に使用した時点からのワークスペースの状態変化の提示を行わせる最新変化通知リクエストを発生させるタイミングを規定した最新変化通知ルールと、を記憶する。
【００３８】
関連変化通知ルールとしては、本実施例では図９に示すように、ワークスペースを開いている状態で前記ワークスペースの状態をそのまま継承した新たなワークスペースを生成した時に関連変化通知リクエストを送る、ワークスペースを切り替えた時に関連変化通知リクエストを送る、アンカーの参照先を開いた時に関連変化通知リクエストを送る、アンカーを移動した時に関連変化通知リクエストを送るといった４つのルールが記憶されている。
【００３９】
ユーザ変化通知ルールとしては、本実施例では、ユーザが明示的に或るユーザの状態変化通知を指定した時にユーザ変化通知リクエストを送るルールが記憶されている。なお、ユーザが他ユーザの作成したアンカーを参照しようとした時にユーザ変化通知リクエストを送る、他ユーザが作成したスナップが現在のスナップとなっているワークスペースを開いた時にユーザ変化通知リクエストを送る等といったルールを記憶させてもよい。
最新変化通知ルールとしては、本実施例では、ワークスペース集合を表示させる指示があった時に最新変化通知リクエストを送るルールが記憶されている。
【００４０】
関係定義及び保存ルール記憶部９は、ワークスペース間の階層関係、スナップ間のリンクを生成する状況を規定した関連付けルールと、ワークスペースのスナップを履歴保持部２に保存させるタイミングを規定したスナップ保存ルールを記憶する。
関連付けルールとしては、本実施例では図１０に示すように、ワークスペースを新規生成した時に階層関係定義リクエストを送る、アンカーを移動した時にウォッチ・アンカー生成リクエストを送る、ユーザが明示的にリンク生成を指示したときにウォッチ・アンカー生成リクエストを送るといった３つのルールが記憶されている。
【００４１】
スナップ保存ルールとしては、本実施例では図１１に示すように、スナップ中のアンカーが増加から減少に転じた時にスナップ保存リクエストを送る、ワークスペースを切り替えた時にスナップ保存リクエストを送る、ユーザが明示的にスナップ保存指示を行った時にスナップ保存リクエストを送る、の３つのルールが記憶されている。
【００４２】
操作監視部１０は、常に、入出力部６に対するユーザの操作を監視し、通知ルール記憶部８、関係定義及び履歴保存ルール記憶部９に保持されたルールに規定されたユーザの操作を検出すると、該当するルールに規定されたリクエストを送る。例えば、階層関係定義リクエスト、ウォッチ・アンカー生成リクエスト、スナップ保存リクエストであれば、ワークスペース保持部７に送り、関連変化通知リクエスト、ユーザ変化通知リクエスト、最新変化通知リクエスト、であれば、サーバ１の変化検出部３に送る。
【００４３】
変化提示部１１は、サーバ１の変化検出部３により検出されたワークスペースの状態変化を入出力部６に表示させる。
図１２には、関連するワークスペースの状態変化を表示させた表示画面の例を示してある。
【００４４】
この表示画面は、関連ワークスペース表示領域２６と、状態変化表示領域２７とを有している。
関連ワークスペース表示領域２６は、ユーザによる操作の対象のワークスペースに関連するワークスペースを表示する領域であり、状態変化表示領域２７に状態変化を表示させるワークスペースを選択する領域である。同図中では、太枠で囲まれたワークスペースが選択されていることを表している。
状態変化表示領域２７は、関連ワークススペース表示領域２６において選択されたワークスペースに関する状態変化を表示する領域であり、状態変化に係わる文書を指し示すアンカーのアイコン２８を他のアイコンと異なる形態で表示する。
【００４５】
ここで、特許請求の範囲にいう状態履歴保持手段及び関連保持手段は、主に履歴保持部２によって構成され、特許請求の範囲にいう検出手段は、主に変化検出部３によって構成され、特許請求の範囲にいう監視手段は、主に操作監視部１０によって構成され、特許請求の範囲にいう提示手段は、主に変化提示部１１によって構成され、特許請求の範囲にいう格納手段は、主にワークスペース保持部７によって構成されている。
【００４６】
次に上記した情報処理装置の動作を図面を参照して説明する。
まず、ユーザがワークスペースを新規生成する操作を行った際の情報処理装置の動作を図１３を参照して説明する。
操作監視部１０は、入出力部６に対するユーザの操作を常に監視し、通知ルール記憶部８及び関連定義及び保存ルール記憶部９に保持されたルールに規定されている操作が行われているか否かを検出する（ステップＳ１）。
【００４７】
そして、ワークスペースを新規生成させる指示の操作が行われた場合には、操作監視部１０は、関連変化通知ルール及び関係付けルールに規定されている操作であることを検出し、当該ルールに従って、関連変化通知リクエストを変化検出部３に送るとともに、階層関係定義リクエストをワークスペース保持部７に送る。これにより、変化検出部３と、ワークスペース保持部７とが以下の処理を行う。
【００４８】
すなわち、変化検出部３は、現在開かれているワークスペースの識別子を調べ、ユーザにより現在ワークスペースが開かれているか否かを検出し（ステップＳ２、Ｓ３）、開かれていない場合には、ワークスペース保持部７が新規ワークスペースを履歴保持部２に登録させて、当該ワークスペースを開く（ステップＳ１２、Ｓ１３）。
一方、開かれている場合には、当該開かれているワークスペースのスナップにウォッチフラグが”ｔｒｕｅ”のアンカーがあるか否かを検出する（ステップＳ４）。
【００４９】
そして、スナップにウォッチフラグが”ｔｒｕｅ”のアンカーがある場合には、関連するワークスペースがあることを意味しているので、変化検出部３が後述して説明する関連するワークスペースを特定して状態変化を検出する処理を行う（ステップＳ５）。
一方、スナップにウォッチフラグが”ｔｒｕｅ”のアンカーがない場合、或いは、状態変化提示処理が終了した場合には、ワークスペース保持部７が現在開かれているワークスペースの長男ワークスペースを調べ、長男ワークスペースがあるか否かを検出する（ステップＳ６、Ｓ７）。
【００５０】
この結果、長男ワークスペースがない場合には、ワークスペース保持部７は、現在の開かれているワークスペースの長男ワークスペースに新規ワークスペースの識別子を設定し、新規ワークスペースを履歴保持部２に登録させて、当該ワークスペースを開く（ステップＳ１２、Ｓ１３）。
【００５１】
一方、長男ワークスペースがない場合には、ワークスペース保持部７は、末っ子の弟ワークススペースを検出し（ステップＳ９、Ｓ１０）、当該末っ子のワークスペースの弟ワークスペースに新規ワークスペースの識別子を設定し、新規ワークスペースを登録し、当該新規のワークスペースを開く（ステップＳ１１、Ｓ１２、Ｓ１３）。
これにより、新規作成されたワークスペースと、当該ワークスペースを作成する際に開いていた既に存在するワークスペースとの間を階層関係によって接続することができる。
【００５２】
次に、ユーザがアンカーをワークスペース間で移動させる操作を行った際の動作を図１４を参照して説明する。
操作監視部１０は、入出力部６に対するユーザの操作を常に監視し、アンカーをペースト（貼り付け）させる指示の操作を検出すると、コピーバッファ中のアンカーのコピー元のスナップの識別子を獲得し、獲得した識別子と、現在開いているスナップの識別子とを比較する（ステップＳ１４〜Ｓ１６）。これは、コピーバッファに、アンカーに加えコピー元のスナップの識別子を予め保存しておくことにより達成される。
【００５３】
この結果、両識別子が一致しない場合には、この操作がワークスペース（スナップ）間でのアンカーの移動操作を表しているので、操作監視部１０は、関連変化通知ルール及び関係付ルールに規定されている操作であることを検出し、当該ルールに従って、関連変化通知リクエストを変化検出部３に送るとともに、ウォッチ・アンカー生成リクエストをワークスペース保持部７に送る。これにより、変化検出部３と、ワークスペース保持部７が以下の処理を行う。
【００５４】
すなわち、変化検出部３が現在開かれているワークスペースのスナップ上にウォッチフラグが”ｔｒｕｅ”のアンカーがあるか否かを検出し（ステップＳ１７）、アンカーがある場合には、関連するワークスペースがあることを表しているので、後述する関連するワークスペースを特定して状態変化を検出する処理（ステップＳ５）を行う。
【００５５】
アンカーがない場合、或いは、関連するワークスペースを特定して状態変化を検出する処理を終えた場合には、ワークスペース保持部７が現在のスナップに、参照先スナップにコピー元の識別子を設定し、ウォッチ・フラグに”ｔｒｕｅ”を設定したアンカーを作成して加え（ステップＳ１８）、更に、コピー元のスナップに、参照先スナップに現在開いているスナップの識別子を設定し、ウォッチ・フラグに”ｔｒｕｅ”を設定したウォッチ・アンカーを作成して加える（ステップＳ１９）。
これによって、ユーザの操作によってアンカーの移動が行われたワークスペースのスナップ同士を関係付けることができる。
【００５６】
次に、ユーザが作業を行うワークスペースの切り換え操作を行った際の動作を図１５を参照して説明する。
操作監視部１０は、入出力部６に対するユーザの操作を常に監視し、通知ルール記憶部８及び関連定義及び保存ルール記憶部９に保持されたルールに規定されている操作が行われているか否かを検出する（ステップＳ２０）。
【００５７】
そして、ワークスペースを開く指示の操作が行われた場合には、操作監視部１０は、関連変化通知ルール及びスナップ保存ルールに規定されている操作であることを検出し、当該ルールに従って、関連変化通知リクエストを変化検出部３に送るとともに、スナップ保存リクエストをワークスペース保持部７に送る。これにより、変化検出部３と、ワークスペース保持部７とが以下の処理を行う。
【００５８】
まず、ワークスペース保持部７が以前スナップを保存した後に、アンカーの変化があったか否かを検出し（ステップＳ２１）、変化があった場合には、現在のスナップを履歴保持部２に格納する（ステップＳ２２）一方、変化がなかった場合には、何もしない。
【００５９】
次いで、変化検出部３が現在開かれているワークスペースのスナップ上にウォッチフラグが”ｔｒｕｅ”のウォッチ・アンカーがあるか否かを検出し（ステップＳ２３）、ウォッチ・アンカーがある場合には、後述する関連するワークスペースを特定して状態変化を検出する処理（ステップＳ５）を行う。
一方、アンカーがない場合、或いは、関連するワークスペースを特定して状態変化を検出する処理を終えた場合には、ワークスペース保持部７が現在のワークスペースを閉じる処理を行うとともに（ステップＳ２４）、指示されたワークスペースを開く処理を行う（ステップＳ２５）。
【００６０】
上記した関連するワークスペースを特定して状態変化を検出する処理（ステップＳ５）を図１６を参照して説明する。
まず、ユーザの操作の対象のワークスペース（例えば、開いていたワークスペース、他から自己にアンカーを移動させたワークスペース、他のワークスペースに切り換えられるワークスペース等）のスナップが保持するアンカーに対して、以下の処理（ステップＳ２６〜Ｓ３２）を繰り返し行う。
【００６１】
まず、ウォッチ・フラグが”ｔｒｕｅ”のウォッチ・アンカーを検出し（ステップＳ２６）、再起的に実行されているフローでない場合には、アンカーの作成日時を時刻Ｔに代入する（ステップＳ２７、Ｓ２８）。
次いで、アンカーの参照先スナップの識別子を獲得し（ステップＳ２９）、当該参照先スナップのワークスペースにおいて、時刻Ｔから現在までに作成されたスナップに関して以下の処理（ステップＳ３０〜Ｓ３２）を行う。
【００６２】
まず、スナップにウォッチ・フラグが”ｔｒｕｅ”のウォッチ・アンカーがあるか否かを検出し（ステップＳ３０）、ウォッチ・アンカーがある場合には、当該アンカーが検出されたスナップについて当該同様の処理（ステップＳ２６〜Ｓ３２）を再帰的に実行する（ステップＳ３１）。ここで、再帰的とは、処理の実行途中に、現在の処理を重ねて呼び出すことをいう。
【００６３】
一方、ウォッチ・アンカーがない場合、或いは、再帰してきた場合には、最新のスナップと、参照先スナップとの状態変化を検出する後述する状態変化検出処理を行う（ステップＳ３２）。
この処理によって、ユーザの操作対象のワークスペースにウォッチ・アンカーによって関連付けられているワークスペースを特定することができ、これらワークスペースに対して状態変化検出処理を行うことができる。
【００６４】
上記した処理（ステップＳ２６〜Ｓ３１）を図１７を参照して具体的に説明する。
この処理は、ワークスペース「履歴管理特許作成」を開いて行っている作業において、例えば、新規ワークフローの作成操作等を行った場合において開始される。
この処理によると、まず、作業を行っていたワークスペース「履歴管理特許作成」の現在のスナップに作成されているウォッチ・アンカーの参照先スナップが特定される。すなわち、ワークスペース「特許説明会」のスナップ２９が特定される。
【００６５】
次いで、当該ワークスペース「特許説明会」において、当該スナップ２９と、最新のスナップとの間で作られたウォッチ・アンカーが特定される。すなわち、ウォッチ・アンカー３０が特定される。
そして、更に、当該ウォッチ・アンカー３０の参照先スナップからワークスペース「２Ｇ特許調査関連」が特定される。そして、このワークスペースにおいても、ワークスペース「履歴管理特許作成」においてウォッチ・アンカーが作成された時点以降に作成されたウォッチ・アンカー３１が特定され、このウォッチ・アンカー３１によりワークスペース「１Ｇ特許調査」が特定される。
このようにして、特定されたワークスペースについて状態変化検出処理（ステップＳ３２）が行われることとなる。
【００６６】
次に、上記した状態変化検出処理（ステップＳ３２）の動作を図１８を参照して説明する。
まず、変化検出部３は、最新のスナップのアンカー集合を集合Ｌにコピーする（ステップＳ３３）。
そして、集合Ｌの各アンカーの参照先と、過去のスナップの各アンカーの参照先とが一致しているか否かを検出し（ステップＳ３４）、一致している場合には、変化していないことを意味しているので集合Ｌからアンカーを削除する一方（ステップＳ３５）、一致しない場合には何もしない。これにより、新たに加えられた、或いは、内容が変わった等といったアンカーが集合Ｌに残ることになる。
【００６７】
次いで、変化検出部３が、リクエストを行ったクライアント５の変化提示部１１に当該集合Ｌを通知し、通知を受けた変化提示部１１がワークスペースの状態変化を操作を行ったユーザに提示する。
このように、ユーザは、関連変化通知ルールとして規定された操作を行った時点に、操作対象のワークスペースに関連するワークスペースの状態変化を把握することができる。
【００６８】
上記した動作による具体的な例を図１９〜２５を参照して説明する。
まず、ユーザnomuraが図１９に示すようにワークスペース「報告書TR-1」を開いて報告書を書いており、共著者であるユーザhayashiのワークスペース「レポート」にアンカー「目次」をコピーして渡したとすると、図２０及び図２１に示すように、ユーザnomuraのワークスペース「報告書TR-1」と、ユーザhayashiのワークスペース「レポート」には、それぞれウォッチ・フラグが設定されたウォッチ・アンカーが作成され、このアンカーによって相互参照できるようになる。
【００６９】
そして、この後に、ユーザhayashiが図２２に示すように、ワークスペース「レポート」において、アンカー「2章ドラフト」を作り、協調作業を開始したとする。
一方、ユーザnomuraは、図２３に示すユーザsekijimaのワークスペース「参考文献」から、アンカー「Sekijima96」をコピーして、図２４に示すように自分のワークスペース「報告書TR-1」に持ってくる操作を行ったとする。
【００７０】
すると、このアンカーをワークスペース間で移動させるといったユーザnomuraの操作をきっかけとして、ワークスペース「報告書TR-1」に関連するワークスペース、すなわち、スナップ上のウォッチ・アンカーの参照先である、ワークスペース「レポート」に関する状態変化が検出され、図２５に示すように、ウォッチ・アンカーが作成された以降に作成されたアンカー「2章ドラフト」状態変化としてユーザnomuraに提示される。
これにより、ユーザnomuraは、この提示された「2章ドラフト」を参照する等して、自己の作業に影響があるかどうかといった判断を行うことができる。
【００７１】
次に、ユーザによって或るユーザに関するワークスペースの状態変化の提示を指定する操作があった場合の動作を図２６を参照して説明する。なお、このような操作は、例えば、或るユーザが指定期間内にどのような活動を行ったかを知りたい場合に行われる。
【００７２】
操作監視部１０は、入出力部６に対するユーザの操作を常に監視し、ユーザから状態変化を探索するユーザの指定を受け付ける（ステップＳ３６）。
そして、ユーザの指定を受け付けると、操作監視部１０は、状態変化を探索する期間の指定を受け付ける図２７に示すような期間指定用ウィンドウを入出力部６に表示させ、このウィンドウによりユーザからの期間の指定を受け付ける（ステップＳ３７）。なお、予め期間（例えば、１日）を設定するようにして、当該ウィンドウを使っての期間の指定を省くことができる。
【００７３】
上記したユーザの操作により、操作監視部１０はユーザ状態変化リクエストを変化検出部３へ送る。
そして、ユーザ状態変化リクエストを受け取ると、変化検出部３は履歴保持部２に格納された各ワークスペースから指定された期間内に作成されたスナップの中で指定されたユーザの識別子が設定されている最新のスナップ（以下、ユーザ最新スナップという。）を抽出し（ステップＳ３８）、更に、ユーザ最新スナップと同一のワークスペースのスナップで、指定期間以前に作成されたスナップの中で指定されたユーザの識別子が設定されている最新のスナップ（以下、ユーザ期間前スナップという。）を抽出する（ステップＳ３９）。
【００７４】
次いで、ステップＳ３８において、ユーザ最新スナップが抽出された各ワークスペースに関して、変化検出部３は、以下の処理（ステップＳ４０、Ｓ４１）を繰り返し行う。
まず、ワークスペースからユーザ期間前スナップが抽出されたか否かを検出する（ステップＳ４０）。
この結果、ユーザ期間前スナップが検出されない場合には、ユーザによるワークスペースの状態変化を検出することができないので、何もしない。
【００７５】
一方、ユーザ期間前スナップが検出された場合には、当該ワークスペースのユーザ最新スナップと、ユーザ期間前スナップとの間で、上記した状態変化検出処理（ステップＳ３２）と同様な処理を行って、ワークスペースの状態変化を検出する（ステップＳ４１）。
そして、ユーザ最新スナップが抽出されたすべてのワークスペースに対する処理を終了した後に、変化検出部３は、検出した状態変化を変化提示部１１に通知し、通知を受けた変化提示部１１が、状態変化をユーザへ提示する（ステップＳ４２）。
これによって、ユーザは、自己の所望するユーザが所望する期間においてワークスペースに対してどのような処理を行ったかといったことを把握することができる。
【００７６】
ここで、上記した処理について、ユーザnomuraが、ユーザhayashiに関するワークスペースの状態変化の提示を指定し、１日間における状態変化の提示を求めた場合を例にとって図２８を参照して説明する。
まず、各ワークスペースにおいて、ユーザhayashiが過去１日間以内に作成したスナップの中の最新のスナップ（ユーザ最新スナップ）が抽出される。ここで、過去１日間にユーザhayashiが４つのワークスペースで仕事をしていたとすると、それぞれのワークスペース毎にユーザ最新スナップが抽出される。同図中では、極太線で表示したスナップ３２がユーザ最新スナップである。
【００７７】
次いで、これら各ワークスペースにおいて、１日前以前にユーザhayashiが作成した最新のスナップ（ユーザ期間前スナップ）が抽出される。同図中では、スナップ３３が抽出されたユーザ期間前スナップである。
そして、各ワークスペースのユーザ最新スナップ３２とユーザ期間前スナップ３３とによってワークスペースの状態変化が検出され、状態変化がユーザに提示される。
これによって、ユーザnomuraは、ユーザhayashiがこの１日間に行った仕事の進捗を知ることができる。
【００７８】
次に、ユーザによって、ワークスペース集合の表示を指示する操作があった場合の動作を図２９を参照して説明する。なお、このような操作は、例えば、或るユーザが複数のワークスペースにわたる作業を開始しようとしている場合等に行われる。
【００７９】
操作監視部１０は、入出力部６に対するユーザの操作を常に監視し、ユーザからワークスペース集合の表示を指示する操作を検出すると（ステップＳ４３）、最新変化通知リクエストを変化検出部３に送る。
そして、最新変化通知リクエストを受け取ると、変化検出部３は、履歴保持部２に格納されたワークスペース集合に属する各ワークスペースからユーザの識別子が設定されている最新のスナップ（以下、ユーザ関与スナップという。）を抽出し（ステップＳ４４）、更に、当該スナップと同一のワークスペースの現在のスナップ（以下、現在スナップという。）を抽出する（ステップＳ４５）。
【００８０】
次いで、ステップＳ４４において、スナップが抽出された各ワークスペースに関して、変化検出部３は、以下の処理（ステップＳ４６、Ｓ４７）を繰り返し行う。
まず、ワークスペースのユーザ関与スナップが、現在スナップであるか否かを検出する（ステップＳ４６）。
この結果、ユーザ関与スナップが現在スナップである場合には、ユーザがワークスペースを使用してから状態変化が起きていないことを表しているので、何もしない。
【００８１】
一方、ユーザ関与スナップが現在スナップでない場合には、ユーザがワークスペースを使用してから状態変化が起きていることを表しているので、当該ワークスペースのユーザ関与スナップと、現在スナップとの間で、上記した状態変化検出処理（ステップＳ３２）と同様な処理を行って、ワークスペースの状態変化を検出する（ステップＳ４７）。
【００８２】
そして、ユーザ関与スナップが抽出されたすべてのワークスペースに対する処理を終了した後に、変化検出部３は、検出した状態変化を変化提示部１１に通知し、通知を受けた変化提示部１１が、状態変化をユーザへ提示する（ステップＳ４８）。
これによって、ワークスペース集合のワークスペースにおいて、以前ユーザが使用した後に発生した状態変化をユーザに提示することができる。
【００８３】
ここで、上記した処理について、ユーザnomuraがワークスペース集合「1Gホーム」を開く操作を行った場合を例にとって図３０を参照して説明する。
ユーザnomuraがワークスペース集合「1Gホーム」を開く操作を行った場合には、ワークスペース集合内の各ワークスペースに関して、ユーザnomuraの最新のスナップ３４（ユーザ関与スナップ）が抽出され、更に、ワークスペース集合内の各ワークスペースの現在のスナップ３５（現在スナップ）が抽出され、各ワークスペースのユーザ関与スナップ３４と現在スナップ３５とによってワークスペースの状態変化が検出され、状態変化がユーザnomuraに提示される。
【００８４】
これにより、ユーザnomuraは、自分がそのワークスペース集合を以前利用してから今までの間に、このワークスペース集合内でどのような活動が行われたかといったことを容易に把握することができる。
【００８５】
次に、本発明の第２実施例に係る情報処理装置を図３１を参照して説明する。この情報処理装置は、ネットワーク４を介して接続されたサーバ１とクライアント５により構成されており、前述した第１実施例とほほ同様な構成を有している。
したがって、第１実施例とほほ同様な機能部については同一符号を付して重複する説明は省略する。
【００８６】
サーバ１は、操作監視部１２、履歴保持部２、変化算出部１４、関連記憶部１３を有している。なお、サーバは複数のユーザ（クライアント）によって共通に用いられる情報を管理し、複数のクライアント５間に対して操作の監視および情報の提供を行う。
クライアント５は、入出力部６、ワークスぺース保持部７、変化提示部１１を有している。なお、クライアントは各ユーザがワークスペースを用いた作業を行うための機能を提供する。
【００８７】
操作監視部１２は、サーバ１に接続する全てのクライアント５の操作を監視する。すなわち、ユーザがクライアント５からログインすることで、クライアント５とサーバ１の間のコネクションが繋がると、サーバ１はクライアントプログラムの実行プロセスを特定するためのソケットなどのポインタを掴み、このポインタを利用して、操作監視部１２は、任意のタイミングで各クライアント５の実行状態を知ることができる。
また、操作監視部１２は、接続されたクライアント５毎に図３２に示すような情報を保持する。ここで、クライアント５が接続した直後に、少なくとも接続クライアントのポインタだけは獲得する必要があるが、他の属性（つまり、ログインユーザと使用中のワークスペース）はこの時点でなくとも、クライアント５側で変更がある度に獲得して随時更新されてもよく、また、サーバ１側で操作を監視する必要が生じた際だけ獲得してもよい。
【００８８】
履歴保持部２は、第１実施例に示したものと同様であるが、第１実施例ではワークスペース間の参照関係をアンカーのウォッチ・フラグを用いて実現していたが、本実施例では関連記憶部１３に参照関係は保持されるようになっている。
ここで、本実施例におけるワークスペースのデータ構造は図３３に示すようになっており、このワークスペースは、第１実施例のデータ構造に加え、リレーションの集合を保持する。
また、本実施例におけるアンカーのデータ構造は、図３４に示すようになっており、このアンカーは、第１実施例に比べて、ウォッチ・フラグと参照先スナップの属性を持たない。
【００８９】
関連記憶部１３は、第１実施例のウォッチ・アンカーの代わりに、ワークスペース間の関係を示すリレーション・オブジェクトを保持する。リレーションは、そのデータ構造を図３５に示すように、その識別子（リレーションｉｄ）、リレーション・オブジェクトを作成したユーザの識別子（作成ユーザ）、作成日時、このリレーションを用いて変化を最後に提示した日時（最終変化提示日時）、このリレーションに基づく通知を中止した日時（変化提示中止日時）、そして、このリレーションにより関係付けられる参照元のワークスペースと参照先のワークスペースの識別子を保持する。
【００９０】
ここで、最終変化提示日時は、このリレーションに基づいて（つまりWorkspace2の変化をWorkspace1に提示した際）、その時点の日時に更新される。また、変化提示中止日時は、このリレーションの作成ユーザが、このリレーションに基づく変化通知を必要としなくなり、その通知を中止したときに、属性にその日時が代入される。なお、変化提示中止日時に特定の日時が代入されると、このリレーションに基づく変化通知は行われなくなる。
【００９１】
変化算出部１４は、第１実施例に示した変化検出部３と同様な機能に加えて、ワークスペース間の変化分を計算する機能を有している。
ただし、変化算出部１４が変化分を計算する必要のあるワークスペースは、ワークスペースが保持するリレーション集合のうち、参照元がそのワークスペース自身であるリレーションに関して、その参照先に指定されているワークスぺースである。また、変化分をいつから計算することが必要なのかという探索範囲は、リレーションが保持する最終変化提示日時により決定される。すなわち、最終変化提示日時に最も近いスナップを探索し、そのスナップと最新のスナップとの間の変化分をユーザに提示すべき変化分とみなす。
【００９２】
次に、上記した本実施例の情報処理装置の動作を図面を参照して説明する。
まず、新たなクライアント５がユーザにより立ち上げられ、サーバ１とネットワーク４を介してコネクションを張る動作を図３６を参照して説明する。
クライアント５が立ち上げられると（ステップＳ５１）、クライアント５がサーバ１のアドレスを取得してコネクションを張る（ステップＳ５２）。そして、クライアント５のポインタをサーバ１に渡し（ステップＳ５３）、これに基づいて、サーバ１が当該クライアント５におけるログイン中のユーザと使用中のワークスペースとを獲得する（ステップＳ５４）。
これにより、クライアント５におけるユーザ操作やワークスペースの状態変化が、サーバ１の操作監視部１２や変化算出部１４でリアルタイムに検知される。
【００９３】
次いで、或るワークスペースが他のワークスペースを参照する操作を行い、それによりリレーション・データが生成される動作を図３７を参照して説明する。或るクライアント５におけるユーザの操作で参照先および参照元のワークスペースがその識別子で指示されると（ステップＳ６１、Ｓ６２）、この指示情報がサーバ１に送られてリレーションが生成される（ステップＳ６３）。そして、生成されたリレーションが図３５に示した構造で、関連記憶部１３に格納される（ステップＳ６６）。
このようにして、各ワークスペース間の関連付がなされ、その関連情報がリレーションとして関連記憶部１３に登録される。
【００９４】
次いで、リレーションにより関連付けられたワークスペース間で、リレーションを用いた状態変化の提示を行う動作を図３８を参照して説明する。
サーバ１側の変化算出部１４が、コネクションが張られた或る接続クライアント５におけるワークスペースの状態変化を検出すると（ステップＳ７１）、履歴保持部２に格納されている過去の情報を参照して、そのワークスペースの状態変化分を算出する（ステップＳ７２）。
そして、サーバ１において、関連保持部１３を検索して、状態が変化したワークスペースを参照先としている他のワークスペースを抽出し（ステップＳ７３）、これら他のワークスペースを接続クライアント５から取得する（ステップＳ７４）。
【００９５】
そして、状態が変化したワークスペースと取得された他のワークスペースとの状態を比較して（ステップＳ７５）、両者が一致しない場合には、これら両者間の状態の変化分を変化算出部１４が算出し、取得された他のワークスペースが存在するクライアント５に算出した変化分を送って、この変化分を変化提示部１１によって画面表示してユーザに提示する（ステップＳ７６）。
上記の処理は、ワークスペース毎及び接続クライアント毎に順次繰り返して行われ、結果的には、状態が変化したワークスペースと関連付けられた他の全てのワークスペースに対してそれらの間の状態変化分が提示される。
【００９６】
次に、本発明の第３実施例として、仮想シェアドワークスペースを実現する情報処理装置を説明する。
本実施例では、第２実施例のようにクライアント５間でワークスペースの状態変化分を通知しあうだけではなく、関連付けられた互いのワークスぺースの状態が同じになるよう演算を行うことによって、あたかもワークスペースを共同利用しているような効果を得るようにしている。そして、このようにワークスペースを仮想的に共同利用することにより、ユーザは、必要に応じて選択的に他のユーザとの協業を行うことができ、ワークスぺースを使い出すときには想定していなかった共同利用を適宜行うことが可能になる。
【００９７】
本実施例に係る情報処理装置は、第２実施例とほぼ同様な構成を有しているが、変化算出部１４は、そのワークスペースにおける過去の状態との間の差分を算出するのではなく、状態変化が検出されたワークスペースの最新の状態と、状態変化を提示する他のワークスぺースの最新の状態との和集合を計算し、また、当該他のワークスペースの係る変化提示部１１はこの和集合の状態を最新の状態に更新する。
【００９８】
次に、仮想的にワークスペース間の状態の同期をとる動作を図３９を参照して説明する。
サーバ１側の変化算出部１４が、コネクションが張られた或る接続クライアント５におけるワークスペースの状態変化を検出すると、関連保持部１３を検索して、状態変化を提示すべき他のワークスペースを抽出て、当該他のワークスペースの最新の状態を獲得する（ステップＳ８１）。
そして、変化算出部１４が、状態が変化したワークスペースと取得された他のワークスペースとの状態を比較して（ステップＳ７５）、両者が一致しない場合には、これらワークスペースの最新状態が含むアンカー集合の和集合を算出してこれを新たな同期状態とする（ステップＳ８３）。
【００９９】
そして、変化算出部１４が算出した同期状態を提示すべき他のワークスペースが存在するクライアント５に送り、変化提示部１１がこの同期状態によって当該ワークスペースの状態を更新して画面表示によりユーザに提示する（ステップＳ８４）。
上記の処理は、状態変化の提示先のワークスペース毎及び状態が変化したワークスペースのアンカー毎に順次繰り返して行われ、結果的には、状態が変化したワークスペースと関連付けられた他の全てのワークスペースにおいて、互いの状態が同期する。
【０１００】
図４０を参照して、仮想的なワークスペースの同期を用いた協調作業の一例を説明する。
まず、ワークスペースＡ、Ｂ、Ｃがあったとして、時刻ｔ１のときは、これらワークスペースは参照関係なしにそれぞれ独立して作業が行われていたとする。
その後、ワークスぺースＢとＣの間に参照関係が設定されたため、時刻ｔ２でワークスペースＣにアンカーが追加された際に、ワークスぺースＢにワークスぺースＣとの同期をとった状態が提示される。
その後、ワークスペースＢとＡの間で参照関係が設定されたとすると、後にワークスペースＢにアンカーが追加された際は、ワークスぺースＡとＣともにワークスペースＢと同期をとった状態が提示される。
なお、ワークスペース間の参照関係はいつでも切ることができるため、ユーザは、必要に応じて変化を知りたいワークスペース間の関係を張ることで、仮想的に同じ場所を共有して作業を進めているような状態を作り出すことができる。
【０１０１】
次に、本発明の第４実施例として、指定したユーザにだけ状況を通知する設定を行い、特定のユーザとの間においてのみワークスペースの共有を実現する情報処理装置を説明する。
本実施例に係る情報処理装置は、第２実施例とほぼ同様な構成を有しているが、更に、図４１に示すようなユーザインタフェースを有するユーザ選択部がクライアント５に備えられている。
【０１０２】
このユーザインタフェースには、通知対象とするワークスペースを特定するワークスペース名エリアと、通知を行うユーザを選択するための通知ユーザエリアとが設けられており、ユーザは、これらエリアに設定入力することにより、特定したワークスペースの状態変化を選択した他のユーザについてのみ通知することができる。
例えば、図４１において、「特許作成スペース」というワークスペースを参照している他のワークスペースが１０個あったとした場合、図示のようにUser-3のみに通知するよう設定した場合には、「特許作成スペース」というワークスペースでの状態変化は、このワークスペースを参照しているワークスペースをUser-3が使用中の場合のみ通知される。なお、ユーザがワークスペースを使用中か否かは操作監視部１２によって検出される。
なお、上記のような動作は、図３８に示したフローチャートにおいて、変化分を他ワークスぺースへ提示する処理（ステップＳ７６）の直前に、そのワークスペースのユーザが通知ユーザとして選択されているかを確認する処理を行い、通知ユーザとして選択設定されている場合にのみ当該提示処理を行えば実施できる。
【０１０３】
なお、上記した実施例では、アンカーを単位として状態変化を検出するようにしていたが、これに限らず、例えば、アンカーの指し示す文書内の情報を単位として状態変化を検出するようにしてもよく、要は、ワークスペースにおける状態変化を表すものであればどのようなものを単位としてもよい。
また、ワークスペースの状態変化を検出する際に用いるスナップの組み合わせは、上記した実施例の組み合わせに限らず、同一のワークスペースのスナップであれば、どのような組み合わせを用いてもよい。
【０１０４】
また、上記した実施例では、履歴保持部２は、ワークスペースの履歴として、スナップを時系列的に保存するようにしていたが、例えば、ワークスペース上で行われた活動の履歴をイベント列として保存しておいてもよく、ワークスペースの状態変化を差分だけ保持しておく等、他のバージョン管理方法を用いてもよく、要は、ワークスペースの過去の状態が履歴として保存できればよい。
また、上記した実施例では、ウォッチ・アンカーを辿って関連するワークスペースを特定するようにしていたが、ワークスペース間の階層関係を辿って関連するワークスペースを特定するようにしてもよく、ウォッチ・アンカー及びワークスペース間の階層関係の両方を辿って関連するワークスペースを特定してもよい。
【０１０５】
なお、上記した各機能手段はプロセッサが（ＲＯＭ、ＲＡＭ等に予め格納された）制御プログラムを実行することにより構成されるが、本発明ではこれら機能手段を独立したハードウエア回路として構成してもよい。
また、本発明は上記の制御プログラムをフロッピーディスクやＣＤ−ＲＯＭ等といったコンピュータが読み取り可能な記憶媒体として把握させておき、当該制御プログラムを記憶媒体から読み取ってプロセッサに実行させることにより、本発明に係る処理を実行させることもできる。
【０１０６】
【発明の効果】
以上説明したように、本発明によると、関連するワークスペースの状態変化を提示すべく設定された所定の操作が検出されたことに基づいて、当該操作の対象のワークスペースの関連情報によって関連付けられている他のワークスペースについての状態変化を当該操作を行ったユーザへ提示するようにしたために、ユーザの作業を妨害しない時点、或いは、ユーザの作業において他のワークスペースとの整合をとるに必要な時点といった適切なタイミングで、ユーザの操作対象のワークスペースに関連する他のワークスペースの状態変化を提示することができる。
【０１０７】
更に、本発明によると、ワークスペース間を関連付けるべく設定された所定の操作が検出されたことに基づいて、対応するワークスペース同士を関連付けるようにしたために、前記効果に加え、ワークスペース間を適切に関連付けることができる。
また、本発明によると、ワークスペースの状態変化を提示すべく設定された所定の操作が検出されたことに基づいて、当該操作によって特定されるワークスペースについて状態変化を当該操作を行ったユーザへ提示するようにしたために、ユーザが必要としている時点、或いは、ユーザにワークスペースの状態変化を把握させるに適した時点といった適切なタイミングで、操作によって特定されるワークスペースの状態変化をユーザに提示することができる。
【０１０８】
更に、本発明によると、ワークスペースの状態変化が検出されたことに基づいて、当該ワークスペースに関連情報によって関連付けられている他のワークスペースのユーザへ当該状態変化を提示するようにしたために、リアルタイムに、ユーザの操作対象のワークスペースに関連する他のワークスペースの状態変化を提示することができ、あらかじめ決められた個人活動の場と場の間で、必要な情報がユーザの手をわずらわせずに伝達し合うことにより、各個人にとっては、自分の個人活動の場が一時的にあたかも共有の場になったかのようになる。
また、このようなリアルタイムな状態変化の提示だけでなく、状態の変化に基づいてワークスペース間の状態を更新させるようにしたため、関連するワークスペース間の状態同期がとれて、仮想的なシェアドワークスペースが実現される。
【図面の簡単な説明】
【図１】  本発明の第１実施例に係る情報処理装置の構成図である。
【図２】  本発明の第１実施例に係るワークスペースのデータ構造の一例を示す図である。
【図３】  本発明の第１実施例に係るワークスペース間の階層構造の一例を示す図である。
【図４】  本発明の第１実施例に係るスナップのデータ構造の一例を示す図である。
【図５】  本発明の第１実施例に係るアンカーのデータ構造の一例を示す図である。
【図６】  本発明の第１実施例に係るユーザのデータ構造の一例を示す図である。
【図７】  本発明の第１実施例に係るワークスペース表示画面の一例を示す図である。
【図８】  本発明の第１実施例に係るワークスペース集合表示画面の一例を示す図である。
【図９】  本発明の第１実施例に係る関連変化通知ルールの一例を示す図である。
【図１０】  本発明の第１実施例に係る関連付ルールの一例を示す図である。
【図１１】  本発明の第１実施例に係るスナップ保存ルールの一例を示す図である。
【図１２】  本発明の第１実施例に係るワークスペースの状態変化を表示する画面の一例を示す図である。
【図１３】  本発明の第１実施例に係る新規ワークスペース生成時の動作を説明するフローチャートである。
【図１４】  本発明の第１実施例に係るアンカーをワークスペース間で移動させた時の動作を説明するフローチャートである。
【図１５】  本発明の第１実施例に係るワークスぺースを切り換えた時の動作を説明するフローチャートである。
【図１６】  本発明の第１実施例に係る関連するワークスペースを特定して状態変化を検出する処理を説明するフローチャートである。
【図１７】  本発明の第１実施例に係る関連するワークスペースを特定する動作を具体的に説明する図である。
【図１８】  本発明の第１実施例に係る状態変化検出処理を説明するフローチャートである。
【図１９】  ユーザnomuraによって開かれているワークスペース「報告書TR-1」を示す図である。
【図２０】  アンカー「目次」が複写された後のユーザhayashiによって開かれているワークスペース「レポート」を示す図である。
【図２１】  ウォッチ・アンカーが生成されたユーザnomuraによって開かれているワークスペース「報告書TR-1」を示す図である。
【図２２】  アンカー「２章ドラフト」が作成された後のユーザhayashiによって開かれているワークスペース「レポート」を示す図である。
【図２３】  ユーザsekijimaのワークスペース「参考文献」を示す図である。
【図２４】  アンカー「Sekijima96」が複写された後のユーザnomuraによって開かれているワークスペース「報告書TR-1」を示す図である。
【図２５】  ユーザnomuraによる操作によって提示されたワークスペース「レポート」の状態変化の表示例を示す図である。
【図２６】  本発明の第１実施例に係るユーザに関するワークスペースの状態変化の提示を指定された時の動作を説明するフローチャートである。
【図２７】  本発明の第１実施例に係る期間指定ウィンドウの一例を示す図である。
【図２８】  本発明の第１実施例に係るユーザに関するワークスペースの状態変化の提示を指定された時の動作についての具体的な内容を説明する図である。
【図２９】  本発明の第１実施例に係るワークスペース集合の表示を指示された時の動作を説明するフローチャートである。
【図３０】  本発明の第１実施例に係るワークスペース集合の表示を指示された時の動作についての具体的な内容を説明する図である。
【図３１】  本発明の第２実施例に係る情報処理装置の構成図である。
【図３２】  本発明の第２実施例に係る接続クライアント情報のデータ構造の一例を示す図である。
【図３３】  本発明の第２実施例に係るワークスペースのデータ構造の一例を示す図である。
【図３４】  本発明の第２実施例に係るアンカーのデータ構造の一例を示す図である。
【図３５】  本発明の第２実施例に係るリレーションのデータ構造の一例を示す図である。
【図３６】  本発明の第２実施例に係るクライアントが立ち上げたれた場合の処理を説明するフローチャートである。
【図３７】  本発明の第２実施例に係るリレーションの生成処理を説明するフローチャートである。
【図３８】  本発明の第２実施例に係る状態変化分の提示処理を説明するフローチャートである。
【図３９】  本発明の第３実施例に係るワークスペース間の状態同期処理を説明するフローチャートである。
【図４０】  本発明の第３実施例に係るワークスペース間の状態同期を説明する図である。
【図４１】  本発明の第４実施例に係る通知ユーザを選択するウインドウを示す図である。
【符号の説明】
１・・・サーバ、  ２・・・履歴保持部、  ３・・・変化検出部、
４・・・ネットワーク、  ５・・・クライアント、  ６・・・入出力部、
７・・・ワークスペース保持部、  ８・・・通知ルール保持部、
９・・・関連定義及び保存ルール記憶部、  １０・・・操作監視部、
１１・・・変化提示部、  １２・・・操作監視部、  １３・・・関連記憶部、
１４・・・変化算出部、
【図１】
0003837892.tif 000002
【図２】
0003837892.tif 000003
【図３】
0003837892.tif 000004
【図４】
0003837892.tif 000005
【図５】
0003837892.tif 000006
【図６】
0003837892.tif 000007
【図７】
0003837892.tif 000008
【図８】
0003837892.tif 000009
【図９】
0003837892.tif 000010
【図１０】
0003837892.tif 000011
【図１１】
0003837892.tif 000012
【図１２】
0003837892.tif 000013
【図１３】
0003837892.tif 000014
【図１４】
0003837892.tif 000015
【図１５】
0003837892.tif 000016
【図１６】
0003837892.tif 000017
【図１７】
0003837892.tif 000018
【図１８】
0003837892.tif 000019
【図１９】
0003837892.tif 000020
【図２０】
0003837892.tif 000021
【図２１】
0003837892.tif 000022
【図２２】
0003837892.tif 000023
【図２３】
0003837892.tif 000024
【図２４】
0003837892.tif 000025
【図２５】
0003837892.tif 000026
【図２６】
0003837892.tif 000027
【図２７】
0003837892.tif 000028
【図２８】
0003837892.tif 000029
【図２９】
0003837892.tif 000030
【図３０】
0003837892.tif 000031
【図３１】
0003837892.tif 000032
【図３２】
0003837892.tif 000033
【図３３】
0003837892.tif 000034
【図３４】
0003837892.tif 000035
【図３５】
0003837892.tif 000036
【図３６】
0003837892.tif 000037
【図３７】
0003837892.tif 000038
【図３８】
0003837892.tif 000039
【図３９】
0003837892.tif 000040
【図４０】
0003837892.tif 000041
【図４１】
0003837892.tif 000042