(57)【要約】【課題】作業の履歴を視覚的に容易に把握できるワークスペースを提供することができる情報処理方法および情報処理装置を提供する。【解決手段】オブジェクトの選択とともに履歴表示機能が指示されると、選択されたオブジェクトに対する何らかの操作がなされた各時点における、当該選択されたオブジェクトを含むスナップショットが抽出される。抽出されたスナップショットは、時系列で、もしくはユーザによるスライドバー３０２の操作に応じて、モニター２０５に表示される。【選択図】図１９
2010165178.tif 000002
【特許請求の範囲】
【請求項１】
表示部および記憶部を含む情報処理装置を用いて、複数のユーザにアクセス可能な仮想空間を提供する情報処理方法であって、
前記情報処理装置が、前記仮想空間上のオブジェクトに対するユーザ操作の内容を時間に関連付けた履歴情報として記憶するステップと、
前記情報処理装置が、ユーザ操作によるオブジェクトの選択に応答して、前記履歴情報を参照して、選択されたオブジェクトについての変更履歴を検索するステップと、
前記情報処理装置が、前記選択されたオブジェクトに対する操作がなされた各時点における、当該選択されたオブジェクトを含む前記仮想空間の状態を取得するステップと、
前記情報処理装置が、取得された各時点における前記仮想空間の状態を表示するステップとを備える、情報処理方法。
【請求項２】
取得された各時点における前記仮想空間の状態は、時系列に表示される、請求項１に記載の情報処理方法。
【請求項３】
前記情報処理方法は、前記情報処理装置が、前記仮想空間上のオブジェクトに対する操作がなされたときに、前記仮想空間の状態をスナップショットとして逐次記憶するステップをさらに備え、
前記仮想空間の状態を取得するステップは、前記選択されたオブジェクトに対する操作がなされた各時点に対応するスナップショットを抽出するステップを含む、請求項１または２に記載の情報処理方法。
【請求項４】
前記仮想空間の状態を取得するステップは、
前記選択されたオブジェクトに対する操作がなされた各時点について、前記履歴情報を参照して、当該時点より過去になされた他のオブジェクトについての変更履歴を検索するステップと、
検索された前記他のオブジェクトについての変更履歴に基づいて、前記選択されたオブジェクトを含む前記仮想空間の状態を取得するステップとを含む、請求項１または２に記載の情報処理方法。
【請求項５】
前記仮想空間は、指定されたビュー範囲に含まれる内容が前記表示部に可視化されており、
前記他のオブジェクトについての変更履歴を検索するステップは、各時点におけるビュー範囲に含まれていた他のオブジェクトについての前記変更履歴を選択的に検索するステップを含む、請求項４に記載の情報処理方法。
【請求項６】
前記情報処理装置が、前記選択されたオブジェクトとともに表示すべき他のオブジェクトの条件を受付けるステップをさらに備え、
前記仮想空間の状態を取得するステップは、入力された条件を満たした他のオブジェクトのみを抽出するステップを含む、請求項４または５に記載の情報処理方法。
【請求項７】
前記情報処理装置が、表示する前記仮想空間の状態の時間の指定を受付けるステップをさらに備え、
前記仮想空間の状態を表示するステップは、指定された時間に対応する前記仮想空間の状態を選択的に表示するステップを含む、請求項１〜６のいずれか１項に記載の情報処理方法。
【請求項８】
前記履歴情報は、前記仮想空間の内容を前記表示部に可視化する範囲を示すビュー範囲の情報を含む、請求項１〜７のいずれか１項に記載の情報処理方法。
【請求項９】
各時点における前記仮想空間の状態は、各時点における前記選択されたオブジェクトの配置位置を中心としたビュー範囲に相当する内容を含む、請求項１〜８のいずれか１項に記載の情報処理方法。
【請求項１０】
複数のユーザにアクセス可能な仮想空間を提供する情報処理装置であって、
表示部と、
記憶部と、
前記仮想空間上のオブジェクトに対するユーザ操作の内容を時間に関連付けた履歴情報として前記記憶部に記憶する手段と、
ユーザ操作によるオブジェクトの選択に応答して、前記履歴情報を参照して、選択されたオブジェクトについての変更履歴を検索する手段と、
前記選択されたオブジェクトに対する操作がなされた各時点における、当該選択されたオブジェクトを含む前記仮想空間の状態を取得する手段と、
取得された各時点における前記仮想空間の状態を前記表示部に表示する手段とを備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のユーザが共同作業を行なうことが可能な仮想作業空間を提供する情報処理方法および情報処理装置に関する。
【背景技術】
【０００２】
近年、複数のユーザによる知的創造作業を支援するために仮想作業空間（以下、「ワークスペース」とも称す。）が提案されている。
【０００３】
このワークスペースとは、典型的には、仮想的なホワイトボード類似の空間であり、ユーザは、この空間上において、手書き文字、画像、写真などの題材（以下、「オブジェクト」とも称す。）をインタラクティブに入力したり操作したりすることができる。このようなワークスペースによって、グループ内での知的創造作業（考えを練ったり、他メンバーとコミュニケーションをとったりする）が促進される。
【０００４】
一般的に、複数のメンバーからなるグループで共同作業を行なう場合には、後からその内容を調べたい必要が生じ得る。そのため、特開２００７−１９９８６６号公報（特許文献１）には、複数のメンバーが参加して行なわれる会議などの内容を記録する技術が開示されている。より具体的には、特開２００７−１９９８６６号公報（特許文献１）には、収集した会議における音声、映像、電子文書等の各種会議情報を、当該会議の課題、会議資料、話者等の会議情報属性の変化が発生する毎に情報区切りマークを付与するとともに、当該情報区切りマークで区切られた会議情報に当該会議情報属性を付与して、記録装置に記録するミーティング記録装置２が開示されている。
【０００５】
上述のようなワークスペースを用いた共同作業を行なう場合にも、過去に議論された内容をレビューしたり、何らかの決定がなされた経緯を調べたりしたいようなニーズがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１９９８６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述の特開２００７−１９９８６６号公報（特許文献１）に開示される技術は、主として実際の会議中の音声、画像、文書等の会議情報を利用性が良好な状態で収集・記録することを目的としており、上述のワークスペースにそのまま適用できる技術ではない。
【０００８】
そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、作業の履歴を視覚的に容易に把握できるワークスペースを提供することができる情報処理方法および情報処理装置を提供することである。
【課題を解決するための手段】
【０００９】
この発明のある局面によれば、表示部および記憶部を含む情報処理装置を用いて、複数のユーザにアクセス可能な仮想空間を提供する情報処理方法を提供する。本情報処理方法において、情報処理装置は、仮想空間上のオブジェクトに対するユーザ操作の内容を時間に関連付けた履歴情報として記憶するステップと、ユーザ操作によるオブジェクトの選択に応答して、履歴情報を参照して、選択されたオブジェクトについての変更履歴を検索するステップと、選択されたオブジェクトに対する操作がなされた各時点における、当該選択されたオブジェクトを含む仮想空間の状態を取得するステップと、取得された各時点における仮想空間の状態を表示するステップとを実行する。
【００１０】
好ましくは、取得された各時点における仮想空間の状態は、時系列に表示される。
好ましくは、本情報処理方法では、情報処理装置は、仮想空間上のオブジェクトに対する操作がなされたときに、仮想空間の状態をスナップショットとして逐次記憶するステップをさらに実行し、仮想空間の状態を取得するステップは、選択されたオブジェクトに対する操作がなされた各時点に対応するスナップショットを抽出するステップを含む。
【００１１】
あるいは好ましくは、仮想空間の状態を取得するステップは、選択されたオブジェクトに対する操作がなされた各時点について、履歴情報を参照して、当該時点より過去になされた他のオブジェクトについての変更履歴を検索するステップと、検索された他のオブジェクトについての変更履歴に基づいて、選択されたオブジェクトを含む仮想空間の状態を取得するステップとを含む。
【００１２】
さらに好ましくは、仮想空間は、指定されたビュー範囲に含まれる内容が表示部に可視化されており、他のオブジェクトについての変更履歴を検索するステップは、各時点におけるビュー範囲に含まれていた他のオブジェクトについての変更履歴を選択的に検索するステップを含む。
【００１３】
さらに好ましくは、本情報処理方法では、情報処理装置が、選択されたオブジェクトとともに表示すべき他のオブジェクトの条件を受付けるステップをさらに実行し、仮想空間の状態を取得するステップは、入力された条件を満たした他のオブジェクトのみを抽出するステップを含む。
【００１４】
好ましくは、本情報処理方法では、情報処理装置が、表示する仮想空間の状態の時間の指定を受付けるステップをさらに実行し、仮想空間の状態を表示するステップは、指定された時間に対応する仮想空間の状態を選択的に表示するステップを含む。
【００１５】
好ましくは、履歴情報は、仮想空間の内容を表示部に可視化する範囲を示すビュー範囲の情報を含む。
【００１６】
好ましくは、各時点における仮想空間の状態は、各時点における選択されたオブジェクトの配置位置を中心としたビュー範囲に相当する内容を含む。
【００１７】
この発明の別の局面に従えば、複数のユーザにアクセス可能な仮想空間を提供する情報処理装置を提供する。情報処理装置は、表示部と、記憶部と、仮想空間上のオブジェクトに対するユーザ操作の内容を時間に関連付けた履歴情報として記憶部に記憶する手段と、ユーザ操作によるオブジェクトの選択に応答して、履歴情報を参照して、選択されたオブジェクトについての変更履歴を検索する手段と、選択されたオブジェクトに対する操作がなされた各時点における、当該選択されたオブジェクトを含む仮想空間の状態を取得する手段と、取得された各時点における仮想空間の状態を表示部に表示する手段とを備える。
【発明の効果】
【００１８】
本発明に係るワークスペースによれば、作業の履歴を視覚的に容易に把握できる。
【図面の簡単な説明】
【００１９】
【図１】この発明の実施の形態１に従うワークスペースを提供するためのシステムの概略構成図である。
【図２】この発明の実施の形態１に従う情報処理装置の代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
【図３】この発明の実施の形態１に従うワークスペースの一例を模式的に示す図である。
【図４】この発明の実施の形態１に従うワークスペース定義ファイルの内容の一例を示す図である。
【図５】この発明の実施の形態１に従うワークスペースのある状態を示す図である。
【図６】図５に示す状態において、ｎｏｄｅ１でユーザ操作が行なわれた直後の状態を示す図である。
【図７】図６の後に同期処理中の状態を示す図である。
【図８】図７に示すユーザ操作に係る同期処理が完了した状態を示す図である。
【図９】この発明の実施の形態１に従う各情報処理装置の制御構造を示すブロック図である。
【図１０】図９に示す履歴管理部のより詳細な制御構造を示すブロック図である。
【図１１】この発明の実施の形態１に従う履歴データの一例を示す図である。
【図１２】この発明の実施の形態１に従うスナップショット履歴データの一例を示す図である。
【図１３】この発明の実施の形態１に従うワークスペースの状態の一例を示す図である。
【図１４】あるオブジェクトについての履歴データの検索結果の一例を示す図である。
【図１５】この発明の実施の形態１に従うワークスペースにおける履歴表示機能により提供される画面例（その１）を示す図である。
【図１６】この発明の実施の形態１に従うワークスペースにおける履歴表示機能により提供される画面例（その２）を示す図である。
【図１７】この発明の実施の形態１に従うワークスペースにおける履歴表示機能により提供される画面例（その３）を示す図である。
【図１８】この発明の実施の形態１に従うワークスペースにおける履歴表示機能により提供される画面例（その４）を示す図である。
【図１９】この発明の実施の形態１に従う履歴表示機能のユーザインターフェイスの一例を示す図である。
【図２０】この発明の実施の形態１に従う履歴表示機能のユーザインターフェイスの別の一例を示す図である。
【図２１】この発明の実施の形態１に従う履歴表示機能を提供するための処理手順を示すフローチャートである。
【図２２】この発明の実施の形態２に従う各情報処理装置の制御構造を示すブロック図である。
【図２３】この発明の実施の形態２に従う履歴表示機能を提供するための処理手順を示すフローチャートである。
【図２４】この発明の実施の形態２の変形例１に従うワークスペースにおける履歴表示機能により提供される画面例を示す図である。
【図２５】この発明の実施の形態２の変形例２に従うワークスペースにおける履歴表示機能により提供される画面例を示す図である。
【図２６】この発明の実施の形態３に従うワークスペースにおける履歴表示機能により提供される画面例を示す図である。
【図２７】この発明の実施の形態３に従う各情報処理装置の制御構造を示すブロック図である。
【図２８】この発明の実施の形態３に従う履歴データの一例を示す図である。
【図２９】この発明の実施の形態４に従う履歴表示機能を説明するための図である。
【図３０】図２９に示す各状態に対応するワークスペース定義ファイルの内容の一例を示す図である。
【発明を実施するための形態】
【００２０】
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２１】
［実施の形態１］
＜ワークスペースの全体構成＞
図１は、この発明の実施の形態１に従うワークスペースを提供するためのシステムの概略構成図である。
【００２２】
図１を参照して、本実施の形態に従うシステムは、ネットワークＮＷを介して互いにデータ通信可能に接続されたデバイスである複数の情報処理装置ＰＣ１〜ＰＣ３（以下、「情報処理装置ＰＣ」あるいは「ｎｏｄｅ（ノード）」とも総称する。）を含む。本明細書において、「ｎｏｄｅ」は、ネットワーク接続されたデバイス一般を示し、特に、ネットワーク上を伝送される情報（データ）を受信して、当該情報を自身で処理可能なデバイスを示す。
【００２３】
これらの情報処理装置ＰＣ１〜ＰＣ３の各々は、ワークスペースを定義するファイル（以下、「ワークスペース定義ファイル」とも称す。）を保持することで、複数のユーザによるアクセス可能な仮想空間（共同作業空間）を提供する。すなわち、いずれかの情報処理装置ＰＣ上でユーザ操作によってワークスペース定義ファイルが変更されると、当該変更後のワークスペース定義ファイルを変更するための情報（変更に係るワークスペース定義ファイルの内容の全部または一部）が他の情報処理装置ＰＣにも送信される。このような同期処理が随時行われることで、すべての情報処理装置ＰＣにおいて、実質的に同一のワークスペースが提供されることになる。
【００２４】
なお、それぞれの情報処理装置ＰＣは、論理的に相互にデータ通信可能であれば、必ずしも同一階層のネットワークに接続されている必要はない。また、図１には、ピア・トゥ・ピア構成について例示するが、サーバ・クライアント構成を採用してもよい。あるいは、１台の情報処理装置に複数の表示部および入力部が接続されたような構成を採用し、当該１台の情報処理装置が本実施の形態に従うワークスペースを提供するようにしてもよい。
【００２５】
＜ハードウェア構成＞
図２は、この発明の実施の形態１に従う情報処理装置ＰＣの代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
【００２６】
図２を参照して、本実施の形態に従う情報処理装置ＰＣは、オペレーティングシステムを含む各種プログラムを実行するＣＰＵ２０１と、ＣＰＵ２０１でのプログラムの実行に必要なデータを一時的に記憶する記憶部としてのメモリ部２１３と、ＣＰＵ２０１で実行されるプログラムを不揮発的に記憶するハードディスク部（ＨＤＤ）２１１とを含む。このようなプログラムは、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）ドライブ２１５またはフレキシブルディスク（ＦＤ：Flexible Disk）ドライブ２１７によって、それぞれＣＤ−ＲＯＭ２１５ａまたはフレキシブルディスク２１７ａなどから読取られる。
【００２７】
ＣＰＵ２０１は、キーボードやマウスなどからなる入力装置２０９を介してユーザによる操作要求を受取るとともに、プログラムの実行によって生成される画面出力を表示部であるモニター２０５へ出力する。また、ＣＰＵ２０１は、ＬＡＮカードなどからなる通信インターフェイス２０７を介して、他の情報処理装置ＰＣや図示しないサーバ装置などとの間でデータ通信を行なう。これらの各部は、内部バス２０３を介して互いに接続される。
【００２８】
なお、本明細書における「ｎｏｄｅ」として機能するデバイスであれば、どのようなデバイスを用いてもよく、たとえば通信機能を備えた携帯電話などを用いることもできる。
【００２９】
＜ワークスペース＞
本明細書において「ワークスペース」とは、複数のユーザによるアクセス可能な仮想空間を意味し、ワークスペース定義ファイルおよび当該ワークスペース定義ファイルにおいて関連付けられた実体ファイルなどによってワークスペースは提供される。なお、本明細書中では、ワークスペース定義ファイルおよび実体ファイルなどをレンダリング（可視化）したものを「ワークスペース」という場合もある。
【００３０】
図３は、この発明の実施の形態１に従うワークスペースＷＳの一例を模式的に示す図である。
【００３１】
図３（ａ）には、可視化されたワークスペースＷＳの全体構造の一例を示す。このワークスペースＷＳには、一例として、オブジェクトＯＢＪ１〜ＯＢＪ８が既に作成されているとする。なお、本明細書において「オブジェクト」とは、ユーザによる各操作の対象となる対象物の単位であり、具体的には、文書ファイルや表計算ファイルといったファイルオブジェクト（file）、ＪＰＥＧ形式やＧＩＦ形式などの画像オブジェクト（image）、文字を示すテキストオブジェクト（text）、描画を示す線オブジェクト（line）といった任意の電子的に取扱可能な情報を用いることができる。なお、ファイルオブジェクトや画像オブジェクトについては、ワークスペース定義ファイルとは別の実体ファイルが用意されており、ワークスペース定義ファイル中に当該実体ファイルへの関連付け（リンクアドレス）が記述される。このようなファイルオブジェクトや画像オブジェクトについては、ワークスペースＷＳ上で、その内容を参照したり編集したりすることも可能である。また、本明細書において「オブジェクト」とは、ワークスペース定義ファイル中に定義されたファイルオブジェクトや画像オブジェクトのリンク先である実体ファイル自体をも含む。
【００３２】
図３（ａ）に示す例では、オブジェクトＯＢＪ１として「ファイルオブジェクト」を例示し、オブジェクトＯＢＪ２，ＯＢＪ３として「画像オブジェクト」を例示し、オブジェクトＯＢＪ４，ＯＢＪ６として「線オブジェクト」を例示し、オブジェクトＯＢＪ５，ＯＢＪ７，ＯＢＪ８として「テキストオブジェクト」を例示する。
【００３３】
ワークスペースＷＳのサイズは自在に設定することができ、一般的に、各情報処理装置ＰＣのモニター２０５の表示サイズに比較して大きくなるように設定される。そのため、各情報処理装置ＰＣのモニター２０５には、図３（ｂ）に示すようにワークスペースＷＳの一部の領域だけがレンダリング（可視化）される場合が多い。
【００３４】
ユーザは、キーボードやマウスなどからなる入力装置２０９（図２）を用いて、ワークスペースＷＳのうちモニター２０５にレンダリングする領域を指定し、また各種操作ボタンを選択したり、表示されるオブジェクトを選択してドラッグしたりすることで、各オブジェクトの新規作成、変更、移動、削除といった操作が可能である。また、ワークスペースＷＳのうち各情報処理装置ＰＣのモニター２０５に表示される領域を表示エリアＶＡとも称する。
【００３５】
＜全体処理概要＞
本実施の形態に従うワークスペースでは、ワークスペース上のオブジェクトに対する何らかのユーザ操作（新規作成、変更、移動、削除など）がなされる毎に、そのユーザ操作の内容が時間に関連付けた履歴データとして記憶される。同時に、そのユーザ操作がなされた時点における、ワークスペースの状態を表わすスナップショットが逐次格納される。
【００３６】
その後、いずれかのユーザがワークスペース上のオブジェクトを選択した上で、過去の作業履歴の確認を指示すると、履歴データを参照して、選択されたオブジェクトについての変更履歴が検索される。続いて、この検索された変更履歴に基づいて、選択されたオブジェクトに対する変更がなされた時間（時刻）が特定される。さらに、記憶されているスナップショットのうち、この特定された時間における、選択されたオブジェクトを含むワークスペースの状態を表わすスナップショットが抽出される。そして、抽出されたスナップショットが所定順序（典型的には、時系列）に切換表示される。
【００３７】
このようなワークスペースの履歴を表示する機能（以下、「履歴表示機能」とも称す。）を提供することで、過去の作業や議論に参加していないユーザであっても、これまでの経緯を視覚的に、かつ容易に把握することができる。
【００３８】
＜データ構造＞
次に、本実施の形態に従うワークスペースを構成するためのワークスペース定義ファイル１００のデータ構造について説明する。各データは、代表的に、ＸＭＬ（extensible markup language）などのマークアップ言語で記述される。これは、タグ（＜＞と＜／＞とで囲まれる文字に与える属性）を自在に設定することでシステムの拡張性を高めるためである。
【００３９】
図４は、この発明の実施の形態１に従うワークスペース定義ファイル１００の内容の一例を示す図である。なお、図４に示す内容は、図３（ａ）に示すワークスペースＷＳに対応している。
【００４０】
図４を参照して、ワークスペース定義ファイル１００は、当該ワークスペースを特定するためのワークスペースタグ１１０と、オブジェクトＯＢＪ１〜ＯＢＪ８をそれぞれ定義する記述１２１〜１２８とを含む。
【００４１】
ワークスペースタグ１１０は、ワークスペースの識別番号（space id）や文字エンコーディング属性（encoding）などを含む。図４に示す例では、識別番号＝「AB12」である。  
【００４２】
各オブジェクトは、<object>タグと</object>タグとの間の記述によって定義され、これらの記述１２１〜１２８の各々には、各オブジェクトの識別番号（object id）、各オブジェクトの種類（type）、配置される座標位置（point）、実体ファイルのリンクアドレス（src）、各オブジェクトのオーナー（user）などの要素が含まれる。
【００４３】
より具体的には、<object id>タグには、各オブジェクトを一意に特定する識別番号が定義され、<type>タグには、各オブジェクトの種類（file：ファイルオブジェクト、image：画像オブジェクト、text：テキストオブジェクト、line：線オブジェクトなど）が定義される。また、<point>タグには、各オブジェクトまたは各オブジェクトを構成する要素についてのワークスペース上の座標位置が定義される。<src>タグには、関連付けされた実体ファイルのリンクアドレスが定義される。<user>タグには、各オブジェクトのオーナーが定義される。この各オブジェクトのオーナーとしては、各オブジェクトの作成や変更を行なったユーザが記述される。あるいは、ワークスペースに参加するユーザが任意に設定してもよい。本実施の形態では、各オブジェクトを作成したユーザがオーナー（所有者）として記述される。
【００４４】
たとえば、オブジェクトＯＢＪ１に対応する記述１２１には、<object id>タグにおいて、識別番号が「CX11」であることが定義され、<type>タグにおいて、ファイルオブジェクトであることを示す「file」が定義される。さらに、<point>タグにおいて、x='100' y='300'の位置に配置されることが定義され、<src>タグにおいて、実体のファイルを特定する「salesplan.doc」が定義され、<user>タグにおいて、オブジェクトＯＢＪ１のオーナーが「ユーザＡ」であることが定義される。
【００４５】
なお、図４では、１つのワークスペース定義ファイル１００を用いて、ワークスペースを構成する例について例示したが、複数のファイルを用いて同等の情報を定義してもよい。たとえば、各オブジェクトが定義されたファイルを、リレーショナルデータベースなどを用いて互いに関連付けた構成などを採用することができる。
【００４６】
また、情報処理装置ＰＣ群の間で任意の数のワークスペースを共有することも可能である。この場合には、上述のワークスペースの識別番号（space id）の値に基づいて、対象のワークスペースが特定される。
【００４７】
＜同期処理＞
各ｎｏｄｅがワークスペース定義ファイル１００を共有することで、各ｎｏｄｅのユーザにワークスペースが提供される。このようなワークスペースを提供するため、ｎｏｄｅ間では、ワークスペース定義ファイル１００の同期処理が継続的に実行される。
【００４８】
まず、図５〜図８を参照して、本実施の形態に従うワークスペースの同期処理について説明する。なお、図５〜図８に示す例は、図３（ａ）に示すワークスペースＷＳに対応している。
【００４９】
図５は、この発明の実施の形態１に従うワークスペースのある状態を示す図である。図６は、図５に示す状態において、ｎｏｄｅ１でユーザ操作が行なわれた直後の状態を示す図である。図７は、図６の後に同期処理中の状態を示す図である。図８は、図７に示すユーザ操作に係る同期処理が完了した状態を示す図である。
【００５０】
図５を参照して、同期処理が完了している状態では、ｎｏｄｅ１〜ｎｏｄｅ３の各々は、同一の内容が記述されたワークスペース定義ファイル１００を保持している。
【００５１】
次に、図５に示す状態において、ｎｏｄｅ１のユーザが何らかの操作を行なった場合について説明する。一例として、ｎｏｄｅ１のユーザがマウスなどの入力装置２０９を操作して、ワークスペースＷＳ上のオブジェクトＯＢＪ１（図３（ａ）参照）をドラッグし、オブジェクトＯＢＪ１の位置を変更したとする。このユーザ操作に伴って、ｎｏｄｅ１は、オブジェクトＯＢＪ１の変更後の位置情報を取得し、自装置が保持しているワークスペース定義ファイル１００中の対応する要素内の値（属性値）を変更する。
【００５２】
具体的には、図６に示すように、ｎｏｄｅ１の保持するワークスペース定義ファイル１００のオブジェクトＯＢＪ１を記述する<point>タグ１０８の値が「x='100' y='300'」から「x='200' y='300'」に書き換えられる。
【００５３】
このワークスペース定義ファイル１００の変更に伴って、ｎｏｄｅ１は、他のｎｏｄｅに対して、この変更が反映されるように同期処理を実行する。具体的には、図７に示すように、ｎｏｄｅ１は、自装置におけるワークスペース定義ファイル１００の変更後と変更前との差分を示す変更情報データ１０２を、ワークスペースＷＳに参加している他のｎｏｄｅの各々へ送信（たとえば、マルチキャスト送信）する。
【００５４】
図７に示す変更情報データ１０２の内容の一例としては、行頭に「−」の記号を付した削除行指示１０４と、行頭に「＋」の記号を付した追加行指示１０６とを含む。この削除行指示１０４は、現在のワークスペース定義ファイル１００から削除すべき内容を示し、追加行指示１０６は、現在のワークスペース定義ファイル１００に追加すべき内容を示す。
【００５５】
なお、この変更情報データ１０２には、当該変更情報データ１０２の送信元および送信先と特定するための情報（図示しない）も併せて付加される。
【００５６】
この変更情報データ１０２を受信したｎｏｄｅ２およびｎｏｄｅ３は、この変更情報データ１０２に基づいて、各装置に格納されたワークスペース定義ファイル１００の内容を変更する。この結果、図８に示すように、ワークスペースＷＳに参加しているすべてのｎｏｄｅで変更後のワークスペース定義ファイル１００が共通に保持されるようになる。
【００５７】
以下、いずれのｎｏｄｅにおいてユーザがなされたとしても、上述と同様の同期処理が実行される。
【００５８】
＜制御構造＞
図９は、この発明の実施の形態１に従う各情報処理装置ＰＣの制御構造を示すブロック図である。図１０は、図９に示す履歴管理部２５４のより詳細な制御構造を示すブロック図である。
【００５９】
図９を参照して、各情報処理装置ＰＣは、その制御構造として、同期制御部２５０と、データ操作部２５２と、履歴管理部２５４と、描画部２５６と、ユーザ認証部２５８と、データ送受信部２６０と、データ格納部２６２とを含む。データ格納部２６２は、ハードディスク部２１１（図２）の任意の領域として提供され、データ送受信部２６０は、通信インターフェイス２０７（図２）および関連するドライバソフトの協働によって提供され、その他の部位は、代表的に、ＣＰＵ２０１（図２）がプログラムをメモリ部２１３（図２）に展開し、プログラム中のコマンドを実行することで提供される。
【００６０】
また、データ格納部２６２は、ワークスペースを構成するためのワークスペース定義ファイル１００と、ワークスペース定義ファイル１００内でリンクされた（関連付けられた）実体ファイル１２０と、ネットワークＮＷ（図１）を介して接続可能な他のｎｏｄｅ（情報処理装置ＰＣ）を特定するための情報（たとえば、ＩＰアドレスなどの各ｎｏｄｅを一意に特定できる宛て先情報）をリスト形式で記述した接続テーブル１８０とを含む。さらに、データ格納部２６２には、後述する描画部２５６により可視化処理（レンダリング処理）を行なう範囲を指定するＶｉｅｗ情報１６０が格納される。本実施の形態に従うワークスペースでは、ワークスペースの内容をモニター２０５に可視化する範囲（以下、「ビュー範囲」とも称す。）は、対象のワークスペースに参加するｎｏｄｅの間で共通化されるため、このＶｉｅｗ情報１６０についても、他のｎｏｄｅとの間で同期して保持される。すなわち、本実施の形態に従うワークスペースでは、各ｎｏｄｅにおいて可視化されるワークスペースの内容はいずれも同一となる。このＶｉｅｗ情報１６０には、オブジェクトを作成する直前に編集したオブジェクト、共有Ｖｉｅｗを見ているユーザ名、デバイス情報、ズーム倍率、サイズ、色数、持続時間などの情報が追加されてもよい。
【００６１】
さらに、データ格納部２６２には、履歴データ１３０、ならびにスナップショット１４０およびスナップショット履歴データ１５０が格納される。履歴データ１３０は、ワークスペース上のオブジェクトに何らかの操作（新規作成、変更、移動、削除など）がなされる毎に、その内容を時間に関連付けて記憶したデータである。スナップショット１４０は、ワークスペース上のオブジェクトに何らかの操作（新規作成、変更、移動、削除など）がなされる毎に、その時点のワークスペースの状態（より具外的には、その時点のＶｉｅｗ情報１６０に基づくビュー範囲に存在していたオブジェクトの状態）を記憶したデータである。また、スナップショット履歴データ１５０は、一連に記憶されるスナップショットの時刻などを記憶したデータである。これらの履歴データ１３０、ならびにスナップショット１４０およびスナップショット履歴データ１５０は、本実施の形態に従う履歴表示機能に用いられる。
【００６２】
なお、スナップショット１４０の保存形式としては、ビュー範囲内に存在するオブジェクトの座標およびその時点の状態をＸＭＬ形式などで記憶する方法を採用することができる。これに代えて、各時点のビュー範囲の可視化された状態をイメージ形式で記憶するようにしてもよい。
【００６３】
同期制御部２５０は、ワークスペースを構成するワークスペース定義ファイル１００を他のｎｏｄｅ（情報処理装置ＰＣ）との間で同期する。すなわち、同期制御部２５０は、自ｎｏｄｅにおいてワークスペース定義ファイル１００に何らかの変更がなされると、変更後のワークスペース定義ファイル１００の全部または一部（差分）を、当該ワークスペースを形成する他のｎｏｄｅへそれぞれ送信する。また、同期制御部２５０は、他のｎｏｄｅから変更後のワークスペース定義ファイル１００の全部または一部（差分）を受信すると、それに応じて、自装置のデータ格納部２６２に記憶されているワークスペース定義ファイル１００を更新する。また、同期制御部２５０は、上述のようなワークスペース定義ファイル１００の同期処理に応じて、対応付けられる実体ファイル１２０についても他のｎｏｄｅとの間で同期する。
【００６４】
さらに、同期制御部２５０は、Ｖｉｅｗ情報１６０についても他のｎｏｄｅ（情報処理装置ＰＣ）との間で同期する。すなわち、同期制御部２５０は、自ｎｏｄｅにおいて、Ｖｉｅｗ範囲の変更がなされると、当該変更後のＶｉｅｗ情報１６０の全部または一部（差分）を、当該ワークスペースを形成する他のｎｏｄｅへそれぞれ送信する。また、同期制御部２５０は、他のｎｏｄｅから変更後のワークスペース定義ファイル１００の全部または一部（差分）を受信すると、それに応じて、自装置のデータ格納部２６２に記憶されているＶｉｅｗ情報１６０を更新する。
【００６５】
なお、上述したように、各情報処理装置ＰＣにおいて何らかの操作がなされることをイベントとしてこのような同期処理が実行されるようにしてもよいし、これに加えて、あるいはこれに代えて、所定周期毎に、ワークスペースに参加するすべてのｎｏｄｅ（情報処理装置ＰＣ）の間で、データの一致／不一致をつきあわせ、この結果に応じて、ワークスペース定義ファイル１００の内容を変更するようにしてもよい。
【００６６】
データ操作部２５２は、ユーザによる入力装置２０９（図２）の操作に従って、オブジェクトの新規作成、変更、移動、削除などを行なう。このユーザによる操作によって、データ操作部２５２は、データ格納部２６２に格納されているワークスペース定義ファイル１００および実体ファイル１２０の追加、変更、移動、削除などを行なう。
【００６７】
履歴管理部２５４は、本実施の形態に従う履歴表示機能を提供するための主たる部分である。より具体的には、履歴管理部２５４は、ワークスペース上のオブジェクトに対するユーザ操作（新規作成、変更、移動、削除など）がなされると、その内容を時間データに関連付けた履歴データ１３０として記憶するとともに、その時点のワークスペースの状態（Ｖｉｅｗ情報１６０に基づいて描画されているイメージ）をスナップショット１４０として記憶する。さらに、履歴管理部２５４は、記憶したスナップショット１４０を検索するためのスナップショット履歴データ１５０を追記する。
【００６８】
また、履歴管理部２５４は、ユーザからオブジェクトを選択した履歴表示が指示されると、履歴データ１３０を参照して、選択されたオブジェクトに対して何らかの操作がなされた時間帯（典型的には、対象のオブジェクトが新規作成された時刻と、対象のオブジェクトが最後に変更された時刻との間）を特定する。すなわち、履歴管理部２５４は、選択されたオブジェクトの変更履歴を検索する。続いて、履歴管理部２５４は、スナップショット１４０のうち、特定した時間帯に生成されたものを抽出するとともに、抽出したスナップショット１４０を所定順序（典型的には、時系列）に切換表示する。すなわち、履歴管理部２５４は、選択されたオブジェクトに対する変更がなされた各時点に対応するスナップショットを抽出することで、選択されたオブジェクトに対する変更がなされた各時点における、当該選択されたオブジェクトを含む前記仮想空間の状態を取得する。
【００６９】
描画部２５６は、ワークスペース定義ファイル１００の情報のうち、Ｖｉｅｗ情報１６０に基づいて、指定されたビュー範囲に含まれる情報について可視化処理（レンダリング処理）を行なう。すなわち、描画部２５６は、ワークスペースのうちユーザが指定した領域の内容を描画する。より具体的には、描画部２５６は、ワークスペース定義ファイル１００を参照して、モニター２０５（図２）に表示すべき画像を示すデータを図示しないビデオメモリに周期的に出力する。このビデオメモリに格納されるデータに応じて、モニター２０５には画像が表示される。
【００７０】
ユーザ認証部２５８は、各情報処理装置ＰＣを使用するユーザに対するユーザ認証処理を実行する。具体的には、ユーザ認証部２５８は、いずれかのユーザが各情報処理装置ＰＣの使用開始時に、ＩＤおよびパスワードの入力を促す。そして、ユーザからＩＤおよびパスワードの入力があると、予め格納されたユーザテーブル（図示しない）、あるいはユーザ認証サーバ（図示しない）に問合せを行ってユーザ認証処理を行なう。ユーザ認証が成功すると、ユーザによる当該情報処理装置ＰＣの使用を許可するとともに、現在使用中（ログイン中）のユーザ名を保持する。なお、本実施の形態に従う情報処理装置ＰＣでは、各装置を使用するユーザを識別できればよいので、パスワードを必ずしも要求しなくてもよい。
【００７１】
データ送受信部２６０は、他のｎｏｄｅ（情報処理装置ＰＣ）との間のデータ通信を制御する。具体的には、データ送受信部２６０は、同期制御部２５０からの要求に応じて、データ格納部２６２に格納されているワークスペース定義ファイル１００および／または実体ファイル１２０の全部または一部を読み出して他のｎｏｄｅへ送信し、あるいは、他のｎｏｄｅから受信したワークスペース定義ファイル１００および／または実体ファイル１２０の全部または一部を同期制御部２５０へ渡す。なお、データ送受信部２６０は、データ格納部２６２に格納されている接続テーブル１８０を参照して、データの送受信を行なう相手を特定する。
【００７２】
図１０を参照して、履歴管理部２５４は、履歴データ記録部２５４ａと、スナップショット記録部２５４ｂと、履歴データ検索部２５４ｃと、スナップショット抽出部２５４ｄとを含む。
【００７３】
履歴データ記録部２５４ａは、ワークスペース上のオブジェクトに何らかのユーザ操作（新規作成、変更、移動、削除など）が生じる毎に、当該ユーザ操作の内容を時間に関連付けてデータ格納部２６２の履歴データ１３０（図９）に逐次書込む。
【００７４】
図１１は、この発明の実施の形態１に従う履歴データ１３０の一例を示す図である。
図１１を参照して、履歴データ１３０は、第１〜第６フィールド１３０ａ〜１３０ｆを含む。履歴データ記録部２５４ａは、ワークスペース上のオブジェクトの新規作成、変更、移動、削除といったイベントが発生すると、この履歴データ１３０に、これらのフィールドからなるレコードを順次追加する。
【００７５】
第１フィールド１３０ａには、新規作成、変更、移動、削除の対象となったオブジェクトを特定するための識別情報である、ＯｂｊｅｃｔＫｅｙの値が記録される。第２フィールド１３０ｂには、各レコードが追加された時点において、対象のワークスペースに参加していたユーザを示すＵｓｅｒＩｎｆｏの値が記録される。第３フィールド１３０ｃには、各レコードが追加された時点の時刻を示すＴｉｍｅＳｔａｍｐの値が記録される。第４フィールド１３０ｄには、対象のオブジェクトに対してなされた操作の種類を示すＰｒｏｃｅｓｓの値が記録される。すなわち、このＰｒｏｃｅｓｓの値には、「新規作成」、「変更」、「移動」、「削除」などの値が設定される。第５フィールド１３０ｅには、新規作成、変更、移動、削除の対象となったオブジェクトが存在していた座標を示すＰｏｓｉｔｉｏｎの値が記録される。第６フィールド１３０ｆには、各レコードが追加された時点におけるＶｉｅｗ情報１６０の内容を示すＶｉｅｗＩｎｆｏの値が記録される。このＶｉｅｗＩｎｆｏの値としては、表示倍率を示す値（図１１に示す例では「等倍」）およびビュー範囲の対角頂点の座標（たとえば、ビュー範囲の左上頂点の座標および右下頂点の座標）が記録される。
【００７６】
履歴データ１３０を保存する構成としては、検索などの観点からはリレーショナルデータベースが好ましいが、代替的に、単なるテキストファイルあるいはＸＭＬ形式のファイルであってもよい。
【００７７】
また、履歴データ１３０には、上述したフィールドの値に加えて、各ユーザ操作を行なったユーザ名、および、オブジェクトが生成された場合の時刻およびその制作者を記録するようにしてもよい。さらに、履歴データ１３０には、（１）オブジェクトを作成する直前に編集したオブジェクト、（２）ビュー範囲を共通に見ている他のユーザ、（３）プレゼンス情報、（４）他のオブジェクトの派生であるか否か、（５）ワークスペース開始からの経過時間、（６）保存領域の余力などを記録してもよい。これらの場合には、少なくとも、各レコードが追加された時間情報（典型的には、オブジェクトに何らかの変更がなされた時刻）および共有Ｖｉｅｗ情報の値と対応付けて記録される。
【００７８】
再度図１０を参照して、スナップショット記録部２５４ｂは、ワークスペース上のオブジェクトに何らかのユーザ操作（新規作成、変更、移動、削除など）がなされると、その時点のワークスペースの状態（その時点のＶｉｅｗ情報１６０に基づくビュー範囲に存在していたオブジェクトの状態）をスナップショット１４０として順次格納する。上述したように、いずれかのオブジェクトに対するユーザ操作を行なうためには、ビュー範囲に対象のオブジェクトが存在していなければならず、そのため、当該ユーザ操作がなされた時点のビュー範囲の内容をスナップショットとして格納することで、対象のオブジェクトに対するユーザ操作がなされた前後の状態をリプレイすることができる。
【００７９】
典型的には、スナップショット１４０の各々は、図４に示すワークスペース定義ファイル１００に類似した内容を含む。なお、スナップショット１４０には、各々を識別するための情報として、固有の「ｓｐａｃｅ  ｉｄ」が割当てられる。
【００８０】
また、スナップショット記録部２５４ｂは、スナップショット１４０の記録とともに、スナップショット履歴データ１５０に各スナップショット１４０の記録された時刻を検索するための情報を記録する。
【００８１】
図１２は、この発明の実施の形態１に従うスナップショット履歴データ１５０の一例を示す図である。
【００８２】
図１２を参照して、スナップショット履歴データ１５０は、第１〜第４フィールド１５０ａ〜１５０ｄを含む。第１フィールド１５０ａには、各レコードが追加された時点の時刻を示すＴｉｍｅＳｔａｍｐの値が記録される。第２フィールド１５０ｂには、各レコードが追加された時点において、対象のワークスペースに参加していたユーザを示すＵｓｅｒＩｎｆｏの値が記録される。第３フィールド１５０ｃには、各レコードが追加された時点におけるＶｉｅｗ情報１６０の内容を示すＶｉｅｗＩｎｆｏの値が記録される。第４フィールド１５０ｄには、スナップショット１４０（図９）に含まれるスナップショットを特定するための識別情報である、「ｓｐａｃｅ  ｉｄ」の値が記録される。
【００８３】
なお、上述のような履歴データ１３０およびスナップショット履歴データ１５０をリレーショナルデータベースとして構成した場合に、これらの履歴データ（典型的に、ファイル名を「history_table」とする）に各レコードを追加するようなＳＱＬ命令としては、以下のようになる。
【００８４】
INSERT INTO history_table (UserInfo, Timestamp, ViewInfo) VALUE(?,?,?,?)
但し、「？」は、実際に指定されるデータが記述されることを示す。
【００８５】
再度図１０を参照して、履歴データ検索部２５４ｃは、履歴データ１３０（図９）を参照して、後述するようにユーザに選択されたオブジェクトに対して何らかの操作がなされた時間帯を特定する。続いて、履歴データ検索部２５４ｃは、スナップショット履歴データ１５０を参照して、特定された時間帯に格納されたスナップショット１４０を特定するための識別情報（ｓｐａｃｅ  ｉｄ）を検索する。この検索されたｓｐａｃｅ  ｉｄの値は、スナップショット抽出部２５４ｄへ出力される。
【００８６】
スナップショット抽出部２５４ｄは、データ格納部２６２に記憶済のスナップショット１４０の中から、履歴データ検索部２５４ｃにより取得されたｓｐａｃｅ  ｉｄの値をもつものを抽出する。
【００８７】
＜操作例＞
次に、図１３〜図１８を参照して、本実施の形態に従うワークスペースにおける履歴表示機能の操作例について説明する。
【００８８】
図１３は、この発明の実施の形態１に従うワークスペースの状態の一例を示す図である。図１４は、あるオブジェクトについての履歴データの検索結果の一例を示す図である。図１５〜図１８は、この発明の実施の形態１に従うワークスペースにおける履歴表示機能により提供される画面例を示す図である。
【００８９】
一例として、ユーザＡ、ユーザＢ、ユーザＣの３名が共同して作業することで、図１３に示すようなワークスペースを完成したとする。このようなワークスペースに対して、作業に参加していないユーザＤが過去の共同作業の経緯について理解したいと考えた場合を想定する。
【００９０】
特に、図１３に示すワークスペースの「チューリップ」の画像オブジェクトＯＢＪ１０が、「ひまわり」の画像オブジェクトＯＢＪ３に比較してより小さなサイズに設定された上で、ワークスペースの左下隅に配置されているのを見て、ユーザＤが「なぜチューリップはこの位置に配置されているのか？」という経緯を知りたいと考えたとする。この図１３に示すワークスペースの状態では、「チューリップ」の画像オブジェクトが参考として配置されたのか、次回の議論にペンディングなのか、あるいは、既に却下された話題なのかを直感的に読取ることは難しい。
【００９１】
このような疑問を持ったユーザＤは、所定の操作を行なってワークスペース上に操作ダイアログＭＮＷを表示させた後、カーソルＣＲＳを用いて「チューリップ」の画像オブジェクトＯＢＪ１０を選択し、続いて、操作ダイアログＭＮＷ上の履歴表示機能に対応するボタンを選択する。なお、「チューリップ」の画像オブジェクトＯＢＪ１０の識別番号は「ＡＫ６０」であるとする。
【００９２】
なお、履歴表示機能の対象とするオブジェクトの選択方法としては、上述のようにカーソルＣＲＳなどを用いて直接的に指定してもよいし、あるいは、カーソルＣＲＳなどを用いて任意の範囲を指定することで、その中に含まれるオブジェクトを間接的に指定してもよい。
【００９３】
すると、履歴管理部２５４の履歴データ検索部２５４ｃ（図１０）は、「チューリップ」の画像オブジェクトＯＢＪ１０の識別番号である「ＡＫ６０」を検索キーとして、履歴データ１３０（図１１）を検索する。すなわち、履歴データ１３０に含まれるレコードのうち、その第１フィールド１３０ａ（ＯｂｊｅｃｔＫｅｙ）に「ＡＫ６０」が記録されているものを抽出する。
【００９４】
なお、上述のような履歴データ１３０をリレーショナルデータベースとして構成した場合に、履歴データ１３０（ファイル名を「history_table」とする）からレコードを抽出するようなＳＱＬ命令としては、以下のようになる。
【００９５】
SELECT * FROM history_table WHERE ObjectKey='AK60'
上述のような抽出処理によって、図１４に示すような抽出結果が得られたとする。図１４に示す抽出結果を見ると、「チューリップ」の画像オブジェクトＯＢＪ１０は、ユーザＡによって新規作成され、２度の変更を経て、最終的に現在の座標に移動されたことがわかる。しかしながら、この情報だけでは、「チューリップ」の画像オブジェクトＯＢＪ１０の履歴はわかっても、「なぜチューリップはこの位置に配置されているのか？」という経緯を知るには不十分である。
【００９６】
そこで、履歴管理部２５４のスナップショット抽出部２５４ｄ（図１０）は、この抽出された履歴に基づいて、「チューリップ」の画像オブジェクトＯＢＪ１０に対する一連の操作がなされた時間帯に格納されたスナップショット１４０を抽出する。すなわち、図１４に示す抽出結果について見れば、２００８／０９／１８  １２：５０から２００８／０９／１９  １３：１０までに格納されたスナップショット１４０が抽出される。
【００９７】
このようなスナップショット１４０を抽出するために、履歴管理部２５４の履歴データ検索部２５４ｃ（図１０）は、この時間帯を条件として、スナップショット履歴データ１５０（図１２）を検索する。より具体的には、スナップショット履歴データ１５０に含まれるレコードのうち、その第１フィールド１５０ａ（ＴｉｍｅＳｔａｍｐ）に記録されている値が「２００８／０９／１８  １２：５０〜２００８／０９／１９  １３：１０」の条件を満たすものを抽出する。
【００９８】
なお、上述のようなスナップショット履歴データ１５０をリレーショナルデータベースとして構成した場合に、スナップショット履歴データ１５０（典型的に、ファイル名を「history_table」とする）からレコードを抽出するようなＳＱＬ命令としては、以下のようになる。
【００９９】
SELECT * FROM history_table WHERE TimeStamp BETWEEN '2008/09/18 12:50' AND '2008/09/19 13:10'
上述のような抽出処理によって、４つのスナップショット（記録時刻ｔ１，ｔ２，ｔ３，ｔ４）が抽出されたとする。このように抽出された複数のスナップショットが時系列あるいは同時に表示される。
【０１００】
図１５は、時刻ｔ１（２００８／９／１８  １２：５０）におけるワークスペースの状態を示し、図１６は、時刻ｔ１より後の時刻ｔ２（＝２００８／９／１８  １３：１０）におけるワークスペースの状態を示し、図１７は、時刻ｔ２より後の時刻ｔ３（＝２００８／９／１８  １３：３０）におけるワークスペースの状態を示し、図１８は、時刻ｔ３より後の時刻ｔ４（＝２００８／９／１９  １３：１０）におけるワークスペースの状態を示す。
【０１０１】
図１５〜図１８に示すように、ワークスペースの状態の移り変わりを視覚的に表示することで、たとえば「なぜチューリップはこの位置に配置されているのか？」という経緯を知ることができる。すなわち、図１５に示すように、最も古い時刻ｔ１では、「ひまわり」の画像オブジェクトＯＢＪ３および「チューリップ」の画像オブジェクトＯＢＪ１０が並べて配置されており、かつ、いずれの写真を使うべきかを議論していることを示す文字オブジェクトＯＢＪ１１が付加されていた。その後、図１６に示すように、時刻ｔ２では、「ひまわり」の画像オブジェクトＯＢＪ３に対して、「チューリップ」の画像オブジェクトＯＢＪ１０より適切であることの意見を示す文字オブジェクトＯＢＪ１２が追加された。さらにその後、図１７に示すように、時刻ｔ３では、「チューリップ」の画像オブジェクトＯＢＪ１０に対する否定的な意見を示すオブジェクトＯＢＪ１５が追加されるともに、「チューリップ」の画像オブジェクトＯＢＪ１０自体もサイズを小さく変更された。最終的には、図１８に示すように、時刻ｔ４では、「チューリップ」の画像オブジェクトＯＢＪ１０は、ワークスペースの左下隅に移動されるとともに、その他のオブジェクトから隔離されていることを示す線オブジェクトＯＢＪ１７が追加された。
【０１０２】
上述のような図１５〜図１８に示す過去の複数の時点におけるワークスペースの過去の状態を同一画面上に並べて表示してもよい。あるいは、時系列に順次切替えるように表示してもよい。この場合には、動画像ライクに表示するようにしてもよい。さらに、ワークスペースの過去の状態を時系列に切り替え表示を行なうことで動画ファイル（ムービーファイル）を出力するようにしてもよい。
【０１０３】
なお、ワークスペースの過去の状態を時系列に表示する場合には、図１９に示すようなユーザインターフェイスを設けることが好ましい。
【０１０４】
図１９は、この発明の実施の形態１に従う履歴表示機能のユーザインターフェイスの一例を示す図である。図１９に示すワークスペースでは、下部に時間の経過を示す時間軸３００を表示するとともに、ユーザ操作により時間軸３００に沿って移動可能なスライドバー３０２が表示される。すなわち、このスライドバー３０２は、表示するスナップショットの時間の指定を受付ける。より具体的には、このスライドバー３０２がユーザのマウス操作などによって移動されることで、表示されるワークスペースの状態が順次変化する。あるいは、回転式のコントローラを回転操作することで、表示するワークスペースの時刻を変更してもよい。
【０１０５】
さらに、表示対象の一覧をサイドバーとしてサムネイルした上で、スライドショー形式で表示してもよい。このとき、サムネイルを動画像表示してもよい。あるいは、ワークスペース自体がレイヤー状に並んでいてもよい。さらに、単にキーボードやマウスからの入力に応答して表示するワークスペースを変更できてもよい。
【０１０６】
さらに、スライドバーの移動に対応付けた時間の倍率（分解能）を変更（粗調整および微調整）できるようにしてもよい。このような切換機能を採用することで、全体の流れを大雑把に把握した上で、必要な部分については、より細かな時間で確認するといった使用形態が可能となる。
【０１０７】
図２０は、この発明の実施の形態１に従う履歴表示機能のユーザインターフェイスの別の一例を示す図である。図２０に示すように、現在のワークスペースを示す表示ウィンドウＷＤ１とは別の表示ウィンドウＷＤ２として、履歴表示機能を提供してもよい。すなわち、図２０に示す表示ウィンドウＷＤ２において、上述ような抽出されたスナップショットが表示される。
【０１０８】
＜処理手順＞
以上説明した内容を実現するための処理手順について説明する。
【０１０９】
図２１は、この発明の実施の形態１に従う履歴表示機能を提供するための処理手順を示すフローチャートである。図２１に示す処理手順は、代表的に、情報処理装置ＰＣのＣＰＵ２０１（図２）がプログラムを実行することで提供される。なお、図２１に示す処理は、定周期（たとえば、数１０〜数１００ｍｓｅｃ）で繰り返し実行される。また、予めワークスペース定義ファイル１００が読出されて、ワークスペースが提供されているものとする。
【０１１０】
図２１を参照して、まず、ワークスペース上のオブジェクトについてのユーザ操作（新規作成、変更、移動、削除など）がなされたか否かが判断される（ステップＳ１００）。ワークスペース上のオブジェクトについてのユーザ操作がなされた場合（ステップＳ１００においてＹＥＳの場合）には、当該ユーザ操作に応じて、ワークスペース定義ファイル１００および実体ファイル１２０の内容が更新される（ステップＳ１０２）。続いて、変更後のワークスペース定義ファイル１００およびＶｉｅｗ情報１６０に基づいて、スナップショット１４０が作成されて記憶されるとともに、履歴データ１３０およびスナップショット履歴データ１５０の内容が更新される（ステップＳ１０４）。すなわち、ワークスペース上のオブジェクトに対するユーザ操作の内容が時間に関連付けた履歴情報として記憶されるとともに、ワークスペースの状態がスナップショットとして逐次記憶される。
【０１１１】
さらに、ワークスペース定義ファイル１００および実体ファイル１２０の変更された部分を示す変更情報データ１０２が他のｎｏｄｅへマルチキャスト送信される（ステップＳ１０６）。そして、処理はステップＳ１０８へ進む。すなわち、自ｎｏｄｅにおいてワークスペースおよびワークスペース上のオブジェクトに何らかの操作がなされた場合に、他ｎｏｄｅとの間で同期処理が実行される。
【０１１２】
ステップＳ１０８においては、他のｎｏｄｅから変更情報データ１０２を受信したか否かが判断される。他のｎｏｄｅから変更情報データ１０２を受信した場合（ステップＳ１０８においてＹＥＳの場合）には、受信した変更情報データに基づいて、ワークスペース定義ファイル１００および実体ファイル１２０の内容が更新される（ステップＳ１１０）。続いて、変更後のワークスペース定義ファイル１００およびＶｉｅｗ情報１６０に基づいて、スナップショット１４０が作成されて記憶されるとともに、履歴データ１３０およびスナップショット履歴データ１５０の内容が更新される（ステップＳ１１１）。そして、処理はステップＳ１１２へ進む。
【０１１３】
ステップＳ１１２において、ワークスペース上のいずれかのオブジェクトの選択を伴う履歴表示機能の開始が指示されたか否かが判断される。履歴表示機能の開始が指示されていない場合（ステップＳ１１２においてＮＯの場合）には、処理はリターンする。
【０１１４】
一方、履歴表示機能の開始が指示された場合（ステップＳ１１２においてＹＥＳの場合）には、指示された履歴表示機能についての選択されたオブジェクト（以下、「対象オブジェクト」とも称す。）の識別情報（ＯｂｊｅｃｔＫｅｙの値）が取得される（ステップＳ１１４）。続いて、取得されたオブジェクトの識別情報を検索キーとして、履歴データ１３０に含まれる対象オブジェクトの変更履歴（レコード）が検索される（ステップＳ１１６）。さらに、検索された対象オブジェクトの変更履歴（レコード）のＴｉｍｅＳｔａｍｐの値に基づいて、対象オブジェクトに対して何らかの操作がなされた時間帯が特定される（ステップＳ１１８）。すなわち、検索された対象オブジェクトの変更履歴（レコード）の有する最も古いＴｉｍｅＳｔａｍｐの値と、最も新しいＴｉｍｅＳｔａｍｐの値との間が、対象オブジェクトに対して何らかの操作がなされた時間帯として特定される。
【０１１５】
続いて、ステップＳ１１８において特定された時間帯を検索条件として、スナップショット履歴データ１５０に含まれるスナップショット１４０の識別情報（ｓｐａｃｅ  ｉｄ）が取得される（ステップＳ１２０）。さらに、ステップＳ１２０において取得された識別情報（ｓｐａｃｅ  ｉｄ）を有するスナップショット１４０が抽出される（ステップＳ１２２）。
【０１１６】
上述のステップＳ１１４〜Ｓ１２２の処理によって、対象オブジェクトに対する操作がなされた各時点における、対象オブジェクトを含むワークスペースの状態を示すスナップショットが取得される。すなわち、対象オブジェクトに対する操作がなされた各時点に対応するスナップショットが抽出される。
【０１１７】
最終的に、抽出されたスナップショット１４０がモニター２０５などに表示される（ステップＳ１２２）。すなわち、取得された各時点におけるワークスペースの状態が表示される。なお、ユーザ操作に応じて、表示順および表示態様が変更される。
【０１１８】
このステップＳ１２２においては、図１９に示すようなユーザインターフェイスを介して、表示するスナップショットの時間の指定を受付ける処理が実行され、ユーザにより時間が指定されると、指定された時間に対応するスナップショットを選択的に表示される。
【０１１９】
ステップＳ１２４において、履歴表示機能の終了が指示されたか否かが判断される。履歴表示機能の終了が指示されていない場合（ステップＳ１１４においてＮＯの場合）には、ステップＳ１２２の処理が繰返される。一方、履歴表示機能の終了が指示された場合（ステップＳ１２４においてＹＥＳの場合）には、処理はリターンする。
【０１２０】
＜作用効果＞
以上により、ワークスペース全体の履歴を逐一追うよりも効率よく議論の流れを追うことが出来る。さらに、オブジェクト単体の履歴と違い、選択したオブジェクトの周囲にあったオブジェクトの履歴も同時に見ることが出来るので、議論の流れを把握しやすい。
【０１２１】
過去行われた会議の内容やアイデアが提案された経緯を理解しようとする際に、従来のワークスペースにおいては以下のような課題があった。
【０１２２】
（１）会議の参加者に質問するなどして、該当参加者の記憶に頼るしかない。
（２）会議資料に履歴が付与されていても、その履歴を文書で追うことしかできない。
【０１２３】
（３）履歴をフィルタリングする場合、例えばユーザ（参加者）Ａだけの発言を追いかけても理解できない（その発言者の応答を追いかける必要がある）。
【０１２４】
それに対して、本実施の形態に従うワークスペースでは、以下のような効果をえることができる。
【０１２５】
（ａ）単体のオブジェクトだけではなく、それに関連するオブジェクトも併せて見ることが出来るため、履歴から知りたい部分のみをピックアップしつつ、議論の流れが追えるようになる。
【０１２６】
（ｂ）履歴を表示する際に、簡単に該当箇所を選べるようになる。
（ｃ）それぞれの議論の時のビューの内容を再現しながら履歴を見ることで、議論の流れを追いやすくなる。
【０１２７】
（ｄ）単体のオブジェクトだけではなく、幾つかのオブジェクトと、それに関連するオブジェクトの履歴を見ることが出来るため、オブジェクト間の関係性などで履歴を見ることが出来るようになる。それによって議論の流れが追いやすい。
【０１２８】
また、ワークスペースに参加している参加者の貢献度などを後から確認するような使い方も可能である。すなわち、各参加者による変更寄与度を確認することができる。
【０１２９】
［実施の形態２］
上述の実施の形態１では、ワークスペース上のいずれかのオブジェクトに対して操作がなされる毎にスナップショットが記憶される構成について例示した。この構成によれば、対象のスナップショットの検索が高速化するという利点があるが、記憶するデータが肥大化するおそれもある。そこで、実施の形態２においては、スナップショットを記憶せずに、上述と同様な履歴表示機能を提供する構成について例示する。
【０１３０】
図２２は、この発明の実施の形態２に従う各情報処理装置ＰＣの制御構造を示すブロック図である。
【０１３１】
図２２に示す制御構造は、図９に示す実施の形態１に従う制御構造において、データ格納部２６２に格納するデータとして、スナップショット１４０およびスナップショット履歴データ１５０を除外したものに相当する。このようにスナップショット１４０およびスナップショット履歴データ１５０を格納しないようにしたことに伴って、履歴管理部２５４における処理が、後述するように変更された点を除いて、図９と同様であるので、詳細な説明は繰返さない。
【０１３２】
なお、本実施の形態においては、ビュー範囲を対象のワークスペースに参加するｎｏｄｅの間で共通化する必要は必ずしもない。すなわち、各ｎｏｄｅにおいて、他のｎｏｄｅとは独立してビュー範囲を設定可能にする場合には、Ｖｉｅｗ情報１６０を同期して保持する必要はない。
【０１３３】
＜履歴抽出処理＞
再度図１１および図１４を参照して、本実施の形態に従う履歴抽出処理について説明する。上述の実施の形態１と同様に、ユーザ操作によって、特定のオブジェクトが選択された上で、履歴表示機能の開始が指示されると、選択されたオブジェクトの識別番号（ＯｂｊｅｃｔＫｅｙ）を検索キーとして履歴データ１３０（図１１）が検索される。そして、図１４に示すような検索結果が得られる。
【０１３４】
図１４に示す例では、４つのレコードが抽出されている。本実施の形態に従う履歴管理部２５４は、この抽出された各レコードの時点における他のオブジェクトの状態を、履歴データ１３０を参照して他のオブジェクトについての変更履歴を再度検索を行なうことで取得する。
【０１３５】
より具体的な手順について、図１４の１番目に示すレコード（ＴｉｍｅＳｔａｍｐフィールドの値が２００８／０９／１８  １２：５０であるレコード）を例に説明する。まず、履歴管理部２５４は、図１４の１番目に示すレコードのＶｉｅｗＩｎｆｏフィールド値である（１００，２００），（５００，５００）を取得する。このＶｉｅｗＩｎｆｏフィールド値は、１番目のレコードに対応する時点における、対象オブジェクトを含むビュー範囲を示す。そのため、このビュー範囲に含まれ、かつ何らかの操作がなされた時刻が１番目のレコードに記録された時刻より前のオブジェクトを検索することで、１番目のレコードが記録された時刻における、対象オブジェクトの周辺に配置されていた他のオブジェクトの状態を取得することができる。
【０１３６】
より具体的には、図１４に示す例では、ＶｉｅｗＩｎｆｏの値が（１００，２００），（５００，５００）の範囲と一部でも重複しており、かつＴｉｍｅＳｔａｍｐの値が「２００８／０９／１８  １２：５０」より以前であることを条件に、履歴データ１３０からレコードが検索される。なお、同一の識別番号（ＯｂｊｅｃｔＫｅｙ）を有するレコードが複数検索された場合には、最も新しいものだけが選択される。このように検索された１または複数のレコードの内容に基づいて、第１番目のレコードが記録された時刻（２００８／０９／１８  １２：５０）におけるワークスペースの状態を復元することができる。
【０１３７】
同様の手順によって、図１４に示す残りのレコード（第２番目〜第４番目のレコード）についても、対象のレコードが検索されて、各時点におけるワークスペースの状態が復元される。
【０１３８】
すなわち、対象オブジェクトに対する操作がなされた各時点について、履歴データ１３０を参照して、当該時点より過去になされた他のオブジェクトについての変更履歴が検索され、この検索された他のオブジェクトについての変更履歴に基づいて、対象オブジェクトを含むワークスペースの状態が取得される。ここで、各時点におけるビュー範囲に含まれていた他のオブジェクトについての変更履歴のみが選択的に検索される。これは、対象オブジェクトに関連するオブジェクトの状態のみを表示することで、より内容の把握を容易にするためである。
【０１３９】
その他の処理については、上述の実施の形態１と同様であるので、詳細な説明は繰返さない。
【０１４０】
＜処理手順＞
以上説明した内容を実現するための処理手順について説明する。
【０１４１】
図２３は、この発明の実施の形態２に従う履歴表示機能を提供するための処理手順を示すフローチャートである。図２３に示す処理手順は、代表的に、情報処理装置ＰＣのＣＰＵ２０１（図２）がプログラムを実行することで提供される。なお、図２３に示す処理は、定周期（たとえば、数１０〜数１００ｍｓｅｃ）で繰り返し実行される。また、予めワークスペース定義ファイル１００が読出されて、ワークスペースが提供されているものとする。
【０１４２】
図２３を参照して、まず、ワークスペース上のオブジェクトについてのユーザ操作（新規作成、変更、移動、削除など）がなされたか否かが判断される（ステップＳ２００）。ワークスペース上のオブジェクトについてのユーザ操作がなされた場合（ステップＳ２００においてＹＥＳの場合）には、当該ユーザ操作に応じて、ワークスペース定義ファイル１００および実体ファイル１２０の内容が更新される（ステップＳ２０２）。続いて、履歴データ１３０の内容が更新される（ステップＳ２０３）。すなわち、ワークスペース上のオブジェクトに対するユーザ操作の内容が時間に関連付けた履歴情報として記憶される。
【０１４３】
さらに、ワークスペース定義ファイル１００および実体ファイル１２０の変更された部分を示す変更情報データ１０２が他のｎｏｄｅへマルチキャスト送信される（ステップＳ２０４）。そして、処理はステップＳ２０６へ進む。すなわち、自ｎｏｄｅにおいてワークスペースおよびワークスペース上のオブジェクトに何らかの操作がなされた場合に、他ｎｏｄｅとの間で同期処理が実行される。
【０１４４】
ステップＳ２０６においては、他のｎｏｄｅから変更情報データ１０２を受信したか否かが判断される。他のｎｏｄｅから変更情報データ１０２を受信した場合（ステップＳ２０６においてＹＥＳの場合）には、受信した変更情報データに基づいて、ワークスペース定義ファイル１００および実体ファイル１２０の内容が更新される（ステップＳ２０８）。続いて、履歴データ１３０の内容が更新される（ステップＳ２０９）。そして、処理はステップＳ２１０へ進む。
【０１４５】
ステップＳ２１０において、ワークスペース上のいずれかのオブジェクトの選択を伴う履歴表示機能の開始が指示されたか否かが判断される。履歴表示機能の開始が指示されていない場合（ステップＳ２１０においてＮＯの場合）には、処理はリターンする。
【０１４６】
一方、履歴表示機能の開始が指示された場合（ステップＳ２１０においてＹＥＳの場合）には、指示された履歴表示機能の実行の対象となったオブジェクトの識別情報（ＯｂｊｅｃｔＫｅｙの値）が取得される（ステップＳ２１２）。続いて、取得されたオブジェクトの識別情報を検索キーとして、履歴データ１３０に含まれる対象オブジェクトの変更履歴（レコード）が検索される（ステップＳ２１４）。
【０１４７】
続いて、１番目に検索された対象オブジェクトの変更履歴（レコード）のＶｉｅｗＩｎｆｏの値およびＴｉｍｅＳｔａｍｐの値に基づいて、履歴データ１３０から対象オブジェクトに関連するオブジェクトの変更履歴（レコード）が検索される（ステップＳ２１６）。より具体的には、検索された対象オブジェクトの変更履歴（レコード）のＶｉｅｗＩｎｆｏの範囲と一部でも重複したＶｉｅｗＩｎｆｏの値をもち、かつ検索された対象オブジェクトの変更履歴（レコード）のＴｉｍｅＳｔａｍｐより以前のＴｉｍｅＳｔａｍｐの値をもつレコードが検索される。さらに、検索された変更履歴（レコード）のうち、同一の識別番号（ＯｂｊｅｃｔＫｅｙ）を有するものが存在するか否かが判断される（ステップＳ２１８）。同一の識別番号（ＯｂｊｅｃｔＫｅｙ）を有する変更履歴（レコード）が存在する場合（ステップＳ２１８においてＹＥＳの場合）には、最も新しい変更履歴（レコード）のみを有効化する（ステップＳ２２０）。
【０１４８】
ステップＳ２２２において、検索された対象オブジェクトの変更履歴（レコード）に基づいて、ワークスペースの状態を再現する。続いて、検索された対象オブジェクトの変更履歴（レコード）がさらに存在するか否かが判断される（ステップＳ２２４）。検索された対象オブジェクトの変更履歴（レコード）がさらに存在する場合（ステップＳ２２４においてＹＥＳの場合）には、次に検索された対象オブジェクトの変更履歴（レコード）が対象として選択された（ステップＳ２２６）後、ステップＳ２１６以下の処理が繰返される。
【０１４９】
検索された対象オブジェクトの変更履歴（レコード）がこれ以上存在しない場合（ステップＳ２２４においてＮＯの場合）には、再現されたワークスペースの状態がモニター２０５などに表示される（ステップＳ２２８）。なお、ユーザ操作に応じて、表示するスナップショット１４０およびその表示態様が変更される。
【０１５０】
ステップＳ２３０において、履歴表示機能の終了が指示されたか否かが判断される。履歴表示機能の終了が指示されていない場合（ステップＳ２３０においてＮＯの場合）には、ステップＳ２２８の処理が繰返される。一方、履歴表示機能の終了が指示された場合（ステップＳ２３０においてＹＥＳの場合）には、処理はリターンする。
【０１５１】
＜作用効果＞
本実施の形態によれば、上述の実施の形態１による作用効果に加えて、記憶するデータの過剰な増加を抑制することができる。
【０１５２】
［実施の形態２の変形例１］
上述の実施の形態２においては、履歴データ１３０に記憶されている対象オブジェクトの変更履歴（レコード）に対応するＶｉｅｗＩｎｆｏの値に基づいて、各時点におけるビュー範囲に含まれるオブジェクトを関連するオブジェクトとして検索する構成について例示した。しかしながら、各変更履歴（レコード）に対応するビュー範囲において、対象オブジェクトが常に中心に存在するとは限らない。すなわち、対象オブジェクトの位置と、ビュー範囲の位置とはそれぞれ独立に変更されるからである。そこで、ワークスペースの履歴表示を行なう際に、対象オブジェクトを中心に固定してワークスペースの状態を再現するようにしてもよい。
【０１５３】
図２４は、この発明の実施の形態２の変形例１に従うワークスペースにおける履歴表示機能により提供される画面例を示す図である。
【０１５４】
図２４（ａ）と図２４（ｂ）を比較するとわかるように、一例の作業中に、対象オブジェクト（図２４に示す例では、「チューリップ」の画像オブジェクトＯＢＪ１０）が移動されたとしても、履歴表示機能において表示されるワークスペースの内容としては、画像オブジェクトＯＢＪ１０を固定する。すなわち、「チューリップ」の画像オブジェクトＯＢＪ１０が移動された場合には、描画する範囲を相対的に移動させる。
【０１５５】
このような履歴表示機能は、上述の実施の形態２における対象オブジェクトの周辺に配置されていた他のオブジェクトの状態を取得する処理において、履歴データ１３０から検索された対象オブジェクトの変更履歴（レコード）のＶｉｅｗＩｎｆｏの値およびＴｉｍｅＳｔａｍｐの値を用いるのではなく、履歴データ１３０から検索された対象オブジェクトの変更履歴（レコード）のＰｏｓｉｔｉｏｎの値およびＴｉｍｅＳｔａｍｐの値を用いることで提供される。より具体的には、対象オブジェクトに関連するオブジェクトの変更履歴（レコード）を検索する条件として、対象オブジェクトの変更履歴（レコード）のＰｏｓｉｔｉｏｎの値を中心とした範囲をそれぞれ設定し、この範囲に含まれるものを選択的に抽出すればよい。この条件を付加することで、各時点における対象オブジェクトの位置を中心とした所定範囲内に存在した関連オブジェクトの状態を再現することができる。
【０１５６】
上述のような処理によって再現されるワークスペースには、各時点における対象オブジェクトの配置位置を中心としたビュー範囲に相当する内容が含まれることになる。
【０１５７】
さらに、複数のオブジェクトが対象として選択された場合には、その複数のオブジェクトが画面内に存在する限りは、検索を継続するようにしてもよい。あるいは、あるオブジェクトを中心に検索してもよい。さらに、最も古くから存在するオブジェクトまで遡って検索するようにしてもよい。
【０１５８】
代替的に、特定のユーザのビュー範囲に含まれていることを条件にしてもよいし、共有ビュー範囲あるいは議長のビュー範囲が設定されている場合には、それらのビュー範囲に含まれていることを条件にしてもよい。
【０１５９】
以上のような構成を採用することで、特定のオブジェクトに着目した形で経緯を知ることができる。そのため、全体の議論の流れよりも、特定のオブジェクトについての変化を追いかける場合により便利である。
【０１６０】
また、特定のユーザのビュー範囲内に存在することを条件にオブジェクトを検索することで、特定のユーザの始点で過去の議論の流れを理解することができる。
【０１６１】
［実施の形態２の変形例２］
上述の実施の形態２においては、対象オブジェクトに何らかの操作（新規作成、変更、移動、削除など）がなされたすべての時点におけるワークスペースの状態を履歴表示する構成について例示したが、対象オブジェクトに対する特定の操作がなされた場合に限って履歴表示するようにしてもよい。
【０１６２】
図２５は、この発明の実施の形態２の変形例２に従うワークスペースにおける履歴表示機能により提供される画面例を示す図である。図２５に示す例は、上述の図１５〜図１８に示す実施の形態１に従う履歴表示に対応させたものである。
【０１６３】
図２５（ａ）〜（ｃ）に示す例では、対象オブジェクト（「チューリップ」の画像オブジェクトＯＢＪ１０）に対して「変更」の操作がなされた場合の履歴が表示されている。すなわち、対象オブジェクトに対して「移動」の操作がなされた時点のワークスペースの状態は履歴表示の対象から除外されている。
【０１６４】
このような操作の内容による選別（フィルタリング）に代えて、あるいはそれに加えて、たとえば、特定のユーザによる変更操作がなされた時点のワークスペースの状態のみを抽出してもよいし、ある指定された期間内になされた操作に係る履歴のみを抽出してもよい。さらに、履歴に付加されたコメント（たとえば、「アイデアだし３回目中」などの文言）に基づいて、必要な履歴を抽出してもよい。このような処理を採用することで、対象オブジェクトに対する変更履歴のみを追いかけたい場合などに有効である。
【０１６５】
このような履歴表示を行なうものを選別（フィルタリング）するファクタとしては、（１）ユーザ別、（２）指定された期間、（３）履歴に付加されたコメントの内容、（４）指定された範囲、（５）関連するオブジェクト（明示的に紐付けされているオブジェクト）、（６）特定のユーザのビュー範囲、などが挙げられる。
【０１６６】
さらに、対象オブジェクトの周辺に存在する関連オブジェクトを抽出する際にも、それ以前に何ら変更操作がなされたオブジェクトのみを抽出するとか、移動操作が行われたオブジェクトのみを抽出するといった選別（フィルタリング）を行なってもよい。あるいは、移動や変更を行なったのがワークスペースに参加していたユーザであるオブジェクトのみを抽出するとか、対象オブジェクと紐付けられているオブジェクトのみを抽出してもよい。
【０１６７】
すなわち、対象オブジェクトとともに表示すべき他のオブジェクト（関連オブジェクト）の条件を受付け、さらに入力された条件を満たした他のオブジェクト（関連オブジェクト）のみを抽出するようにしてもよい。
【０１６８】
このような関連オブジェクトを選別（フィルタリング）するファクタとしては、（１）変更操作がなされたか否か、（２）移動操作がなされたか否か、（３）ワークスペースに参加していたユーザが変更操作や移動操作を行なったものであるか否か、（４）新規作成されたものであるか否か、（５）対象オブジェクトと紐付けられているオブジェクトであるか否か、（６）特定のユーザのビュー範囲、（７）ワークスペース内のオブジェクトであるか否か、（８）別のワークスペース内のオブジェクトであるか否か、（９）指定された期間に属していないこと、（１０）指定された範囲に存在していないこと、などが挙げられる。
【０１６９】
なお、各時点のワークスペースを正確に再現する観点から見れば、初期表示としては、各時点で表示されていたオブジェクトはすべて抽出することが好ましい。その上で、ユーザが必要に応じて抽出条件を設定した上で、絞り込みを行なうことが好ましい。
【０１７０】
以上のような構成を採用することで、ワークスペースの履歴表示を単に行なうことのみならず、より必要なオブジェクトに絞り込んだ形で履歴を追いかけることができる。これにより、過去の議論の流れを把握するのがより容易になる。また追いかけたい形を柔軟に設定することができるので、把握までの時間が短縮できる。
【０１７１】
［実施の形態３］
上述したように履歴表示機能により提供される過去のワークスペースの状態を参照していた場合に、過去のワークスペース上のオブジェクトを現在のワークスペースで利用したい場合もある。そこで、実施の形態３においては、過去のワークスペース上のオブジェクトを利用できる構成について説明する。
【０１７２】
図２６は、この発明の実施の形態３に従うワークスペースにおける履歴表示機能により提供される画面例を示す図である。
【０１７３】
図２６を参照して、現在のワークスペースを示す表示ウィンドウＷＤ１と、履歴表示機能が提供される表示ウィンドウＷＤ２とが共にモニター２０５に表示されているような状態において、表示ウィンドウＷＤ２に表示される過去のワークスペース上の任意のオブジェクトを現在のワークスペース上にドラッグ操作などを行なうことで、コピーすることができる。
【０１７４】
図２７は、この発明の実施の形態３に従う各情報処理装置ＰＣの制御構造を示すブロック図である。
【０１７５】
図２７に示す制御構造は、図９に示す実施の形態１に従う制御構造において、データ格納部２６２に実体バックアップデータ１７０をさらに格納するとともに、履歴データ１３０に代えて履歴データ１３０＃を格納するようにしたものに相当する。実体バックアップデータ１７０は、ワークスペース上の実体ファイルと関連付けられたオブジェクトに対する操作などによって、実体ファイル１２０の内容が更新された場合などに、更新前の実体ファイルを順次格納したものである。たとえば、「チューリップ」の画像オブジェクトＯＢＪ１０の実体ファイルが「ｔｕｌｉｐ．ｊｐｇ」であるとすると、これに対して何らかの変更操作がなされる毎に、「ｔｕｌｉｐ．ｊｐｇ．２００８０９１８１７２５」や「ｔｕｌｉｐ．ｊｐｇ．２００８０９１８１７３０」といったように、変更操作がなされた時刻などを付加した上で保存される。なお、これらの更新前の実体ファイルは、データベースにバイナリデータとして保存してもよいし、同じファイル名のままフォルダ（ディレクトリ）を別にして保存してもよい。もちろん、上述の例のように、ファイル名をリネームする、ファイル名の一部をインクリメントする、あるいは、名前とタイムスタンプとを組み合わせてリネームするといった方法を採用してもよい。
【０１７６】
但し、それぞれの実体ファイルを識別するために、各実体ファイルが記録される毎に、各実体ファイルに対応付けてユニークな識別情報（ＩＤ）を発生することが好ましい。たとえば、識別情報を、実体ファイルの記録順に「１００１」，「１００２」，「１００３」，…とした場合には、実体バックアップデータ１７０に記録される実体ファイルに対して、「ｔｕｌｉｐ．ｊｐｇ．１００１」，「ｔｕｌｉｐ．ｊｐｇ．１００２」，「ｔｕｌｉｐ．ｊｐｇ．１００３」，…などと追記する形でリネームするのが好ましい。
【０１７７】
図２８は、この発明の実施の形態３に従う履歴データ１３０＃の一例を示す図である。
図２８を参照して、履歴データ１３０＃は、履歴データ１３０に含まれる第１〜第６フィールド１３０ａ〜１３０ｆに加えて、第７フィールド１３０ｇを含む。この第７フィールド１３０ｇには、ワークスペース上のオブジェクトに対する何らかの操作がなされることで、対応付けられた実体ファイルに変更がなされた場合に、それぞれ変更に係る実体ファイルを特定するための識別情報が記録される。
【０１７８】
また、データ操作部２５２は、過去のワークスペース上からドラッグされたオブジェクトの定義などを、ワークスペース定義ファイル１００に追記する。このように、オブジェクトの集合とし追記することで、現在のワークスペース上においてそのまま利用することができる。
【０１７９】
上述のような履歴表示されるワークスペース上のオブジェクトを利用する構成を提供するために、データ操作部２５２および履歴管理部２５４における処理が、後述するように変更された点を除いて、図９と同様であるので、詳細な説明は繰返さない。
【０１８０】
なお、現在のワークスペースに追加するオブジェクトについては、そのままのサイズで貼り付けてもよいが、一旦縮小したりであるとか、グループ化が行われたりであるとか、共通のタグが付けられた形で追加するようにしてもよい。また、追加されるオブジェクトについては、その履歴情報を持ったまま貼り付けられることが好ましいが、履歴情報を持たず、全くの新規オブジェクトとして貼り付けるようにしてもよい。
【０１８１】
なお、上述の例では、現在のワークスペースと当該ワークスペースの履歴表示との間でのオブジェクトの利用形態を例示したが、別のワークスペースとの間で利用するようにしてもよい。
【０１８２】
また、オブジェクトの貼り付けを行なう先としては、ワークスペースの空いている領域であることが好ましいが、複数のレイヤを用いる構成を採用してもよいし、単に重ねて貼り付けてもよい。さらに、過去のある時点のワークスペースのオブジェクトを、過去の別の時点のワークスペースに貼り付けてもよい。この場合には、そのオブジェクトは履歴を持たない形で貼り付けることが望ましい。
【０１８３】
なお、上述のような実体ファイルと定義ファイルを用いて貼り付けに代えて、単にＪＰＥＧなどの画像として貼り付けてもよいし、ＰＤＦなどに一旦変換してファイルとして貼り付けてもよい。
【０１８４】
以上のような構成を採用することで、単に履歴を眺めて議論を把握するのみならず、ある過去の地点から発展させることや、過去のある時点での議論と比較し、議論の進捗・流れを把握して発展させることが容易になる。
【０１８５】
［実施の形態４］
上述の実施の形態１〜３では、主として対象オブジェクトに対して何らかの操作がなされたことに基づいて履歴を検索する構成について例示した。しかしながら、対象オブジェクトに対する操作の内容によっては、必要な履歴を十分に検索することができない場合もある。そこで、実施の形態４では、オブジェクト同士の関連性に基づいて、履歴を検索する構成について例示する。
【０１８６】
図２９は、この発明の実施の形態４に従う履歴表示機能を説明するための図である。図３０は、図２９に示す各状態に対応するワークスペース定義ファイルの内容の一例を示す図である。
【０１８７】
図２９（ａ）に示すように、あるユーザがオブジェクトＯＢＪ２１を新規作成したとする。続く操作として、図２９（ｂ）に示すように、オブジェクトＯＢＪ２２を新規作成するとともに、オブジェクトＯＢＪ２１とオブジェクトＯＢＪ２２とを紐付けるオブジェクトＯＢＪ２３を追加したものとする。さらに、ユーザが、図２９（ｃ）に示すように、オブジェクトＯＢＪ２１を移動したとする。このとき、オブジェクトＯＢＪ２１とオブジェクトＯＢＪ２２とを紐付けるオブジェクトＯＢＪ２３もオブジェクトＯＢＪ２１の移動に伴って、その位置および形状が変更されたものとする。
【０１８８】
図３０（ａ），図３０（ｂ），図３０（ｃ）には、それぞれ図２９（ａ），図２９（ｂ），図２９（ｃ）の各状態に示す内容が記述されている。すなわち、オブジェクトＯＢＪ２１の定義１６１、オブジェクトＯＢＪ２２の定義１６２、オブジェクトＯＢＪ２３の定義１６３がそれぞれ示されている。そして、上述のようなオブジェクト間の紐付けは、定義１６１，１６２，１６３のそれぞれ<relation>タグ１６１ａ，１６２ａ，１６３ａなどによって定義される。
【０１８９】
図２９に示す例において、オブジェクトＯＢＪ２１を対象として、上述のような履歴表示機能を実行すると、図２９（ｂ）に示す操作においては、オブジェクトＯＢＪ２１に対して何らの操作もなされていないので、図２９（ａ）および図２９（ｃ）の状態のみが履歴として表示される。
【０１９０】
そこで、本実施の形態に従う履歴表示機能においては、オブジェクトＯＢＪ２１の定義１６１（図３０）を参照して、オブジェクトＯＢＪ２１に紐付けられているオブジェクトＯＢＪ２３を特定し、さらに、オブジェクトＯＢＪ２３の定義１６３（図３０）を参照して、オブジェクトＯＢＪ２３に紐付けられているオブジェクトＯＢＪ２２を特定する。このように、各オブジェクトの定義を順次参照することで、互いに紐付けられているオブジェクトを順次特定する。このような検索処理を行なうことで、対象オブジェクトに関連するオブジェクトに対する操作がなされた履歴であっても表示することができる。
【０１９１】
なお、対象オブジェクトと関連するオブジェクトのみに限定して検索してもよいし、対象オブジェクトと関連する複数のオブジェクトの中からユーザにより選択されたオブジェクトについてのみ検索してもよい。好ましい形態としては、対象オブジェクトに紐付けられたり、互いに重なり合って配置されたりしているようなオブジェクトに対する操作の内容を履歴表示の対象とする形態である。
【０１９２】
［その他の実施の形態］
本発明に係るプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明に係るプログラムに含まれ得る。
【０１９３】
さらに、本発明に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明に係るプログラムに含まれ得る。
【０１９４】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記憶媒体とを含む。
【０１９５】
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
【０１９６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１９７】
１００  ワークスペース定義ファイル、１２０  実体ファイル、１３０  履歴データ、１４０  スナップショット、１５０  スナップショット履歴データ、１６０  Ｖｉｅｗ情報、１７０  実体バックアップデータ、１８０  接続テーブル、２０１  ＣＰＵ、２０３  内部バス、２０５  モニター、２０７  通信インターフェイス、２０９  入力装置、２１１  ハードディスク部、２１３  メモリ部、２１５  ＣＤ−ＲＯＭドライブ、２１７  フレキシブルディスク（ＦＤ）ドライブ、２１５ａ  ＣＤ−ＲＯＭ、２１７ａ  フレキシブルディスク、２５０  同期制御部、２５２  データ操作部、２５４  履歴管理部、２５４ａ  履歴データ記録部、２５４ｂ  スナップショット記録部、２５４ｃ  履歴データ検索部、２５４ｄ  スナップショット抽出部、２５６  描画部、２５８  ユーザ認証部、２６０  データ送受信部、２６２  データ格納部、ＮＷ  ネットワーク、ＰＣ，ＰＣ１〜ＰＣ３  情報処理装置。
【図１】
2010165178.tif 000003
【図２】
2010165178.tif 000004
【図３】
2010165178.tif 000005
【図４】
2010165178.tif 000006
【図５】
2010165178.tif 000007
【図６】
2010165178.tif 000008
【図７】
2010165178.tif 000009
【図８】
2010165178.tif 000010
【図９】
2010165178.tif 000011
【図１０】
2010165178.tif 000012
【図１１】
2010165178.tif 000013
【図１２】
2010165178.tif 000014
【図１３】
2010165178.tif 000015
【図１４】
2010165178.tif 000016
【図１５】
2010165178.tif 000017
【図１６】
2010165178.tif 000018
【図１７】
2010165178.tif 000019
【図１８】
2010165178.tif 000020
【図１９】
2010165178.tif 000021
【図２０】
2010165178.tif 000022
【図２１】
2010165178.tif 000023
【図２２】
2010165178.tif 000024
【図２３】
2010165178.tif 000025
【図２４】
2010165178.tif 000026
【図２５】
2010165178.tif 000027
【図２６】
2010165178.tif 000028
【図２７】
2010165178.tif 000029
【図２８】
2010165178.tif 000030
【図２９】
2010165178.tif 000031
【図３０】
2010165178.tif 000032