(57)【要約】【課題】複数のユーザによる同時アクセス可能な仮想空間において、操作取消を実行しようとするユーザが対象とすべきオブジェクトを効率的に特定することにより、効率的な共同作業が可能な情報処理方法、情報処理装置およびプログラムを提供する。【解決手段】Ｕｎｄｏボタンが選択されると、Ｖｉｅｗ範囲ＶＡ１に含まれるオブジェクトＯＢＪ１，ＯＢＪ２，ＯＢＪ４に係る操作のみがＵｎｄｏ候補操作として抽出され、Ｖｉｅｗ範囲ＶＡ１の外に位置するオブジェクトＯＢＪ３に係る操作については、Ｕｎｄｏ候補操作とはならない。そして、オブジェクトＯＢＪ２に係る操作（この例では、移動操作）が最も新しいものであるとすると、当該操作が取り消されて、すなわちオブジェクトＯＢＪ２に対してＵｎｄｏ処理が実行されて、オブジェクトＯＢＪ２は移動前の位置に戻る。【選択図】図６
2010113539.tif 000002
【特許請求の範囲】
【請求項１】
表示部を含む少なくとも１つの情報処理装置を用いて、複数のユーザによる同時アクセス可能な仮想空間を提供する情報処理方法であって、
前記情報処理装置が、前記仮想空間のオブジェクトを前記表示部に描画するステップと、
前記情報処理装置が、前記仮想空間においてユーザによってなされたオブジェクトに対する操作の履歴情報を、前記情報処理装置内もしくは外部に配置された記憶部に記憶するステップとを備え、前記履歴情報は、ユーザがオブジェクトに対して操作を行なった前記仮想空間上の位置の情報を含み、
前記情報処理装置が、ユーザからの操作取消の指示に応答して、当該ユーザが視認する前記仮想空間上の範囲である第１の視認範囲を特定するステップと、
前記情報処理装置が、その操作の対象であるオブジェクトの位置が前記第１の視認範囲に含まれる履歴情報を、前記操作取消の候補として抽出するステップとを備える、情報処理方法。
【請求項２】
前記オブジェクトには、当該オブジェクトについてのオーナーを特定する属性が付加されており、
前記情報処理方法は、前記情報処理装置が、操作取消の対象とすべきオブジェクトのオーナーの設定を受付けるステップをさらに備え、
前記操作取消の候補として抽出するステップでは、その操作の対象であるオブジェクトに付加されているオーナーの属性が予め設定されたオーナーには含まれない履歴情報が、前記操作取消の候補から除外される、請求項１に記載の情報処理方法。
【請求項３】
前記操作取消の実行中において、前記操作取消の候補から除外されたオブジェクトは、非表示に維持される、請求項２に記載の情報処理方法。
【請求項４】
前記情報処理方法は、前記情報処理装置が、前記仮想空間上で共同作業を行なうユーザのグループの設定を受付けるステップと、
前記情報処理装置が、前記ユーザからの操作取消の指示に応答して、当該ユーザが属するグループに含まれる他のユーザが視認する前記仮想空間上の範囲である第２の視認範囲を特定するステップと、
前記情報処理装置が、前記第１の視認範囲と前記第２の視認範囲との重複範囲を特定するステップとをさらに備え、
前記操作取消の候補として抽出するステップでは、その操作の対象であるオブジェクトの位置が前記重複範囲に含まれる履歴情報が、前記操作取消の候補として抽出される、請求項１〜３のいずれか１項に記載の情報処理方法。
【請求項５】
前記情報処理方法は、
前記情報処理装置が、前記操作取消についての権限を有するユーザの設定を受付けるステップと、
前記情報処理装置が、前記権限を有するユーザが視認する前記仮想空間上の範囲である第３の視認範囲を特定するステップとをさらに備え、
前記操作取消の候補として抽出するステップでは、その操作の対象であるオブジェクトの位置が前記第１および第２の視認範囲のいずれにも含まれる履歴情報が、前記操作取消の候補として抽出される、請求項１〜４のいずれか１項に記載の情報処理方法。
【請求項６】
前記情報処理方法は、前記情報処理装置が、前記仮想空間上で操作取消が許可される範囲である操作取消可能範囲の設定を受付けるステップをさらに備え、
前記操作取消の候補として抽出するステップは、その操作の対象であるオブジェクトの位置が、前記重複範囲および前記操作取消可能範囲のいずれにも含まれる履歴情報が、前記操作取消の候補として抽出される、請求項１〜５のいずれか１項に記載の情報処理方法。
【請求項７】
前記仮想空間は、複数の前記情報処理装置によって提供され、
前記情報処理方法は、前記複数の情報処理装置の各々が、当該情報処理装置を使用するユーザによって指定される前記仮想空間上の視野範囲を対応する前記表示部に可視化するステップをさらに備え、
前記ユーザが視認する前記仮想空間上の範囲は、当該ユーザが指定した前記視野範囲と同じ範囲とみなされる、請求項１〜６のいずれか１項に記載の情報処理方法。
【請求項８】
前記情報処理方法は、前記操作取消を指示するユーザの視点を特定するステップをさらに備え、
前記ユーザが視認する前記仮想空間上の範囲は、当該ユーザの視点に基づいて決定される、請求項１〜６のいずれか１項に記載の情報処理方法。
【請求項９】
前記表示部は、前記ワークスペースが表示されるスクリーンを含み、
前記情報処理方法は、前記操作取消を指示するユーザと前記スクリーンとの相対位置を特定するステップをさらに備え、
前記ユーザが視認する前記仮想空間上の範囲は、当該ユーザの前記スクリーンとの相対位置に基づいて決定される、請求項１〜６のいずれか１項に記載の情報処理方法。
【請求項１０】
複数のユーザによる同時アクセス可能な仮想空間を提供する情報処理装置であって、
表示部と、
記憶部と、
前記仮想空間のオブジェクトを前記表示部に描画する手段と、
前記仮想空間においてユーザによってなされたオブジェクトに対する操作の履歴情報を前記記憶部に記憶する手段とを備え、前記履歴情報は、ユーザがオブジェクトに対して操作を行なった前記仮想空間上の位置の情報を含み、
ユーザからの操作取消の指示に応答して、当該ユーザが視認する前記仮想空間上の範囲である第１の視認範囲を特定する手段と、
その操作の対象であるオブジェクトの位置が前記第１の視認範囲に含まれる履歴情報を、前記操作取消の候補として抽出する手段とを備える、情報処理装置。
【請求項１１】
表示部を含む少なくとも１つの情報処理装置を用いて、複数のユーザによる同時アクセス可能な仮想空間を提供するためのプログラムであって、
前記プログラムは、前記情報処理装置に、
前記仮想空間のオブジェクトを前記表示部に描画するステップと、
前記仮想空間においてユーザによってなされたオブジェクトに対する操作の履歴情報を、前記情報処理装置内もしくは外部に配置された記憶部に記憶するステップであって、前記履歴情報は、ユーザがオブジェクトに対して操作を行なった前記仮想空間上の位置の情報を含む、前記記憶するステップと、
ユーザからの操作取消の指示に応答して、当該ユーザが視認する前記仮想空間上の範囲である第１の視認範囲を特定するステップと、
その操作の対象であるオブジェクトの位置が前記第１の視認範囲に含まれる履歴情報を、前記操作取消の候補として抽出するステップとを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のユーザによる同時アクセス可能な仮想空間を提供する情報処理方法、情報処理装置およびそのプログラムに関する。
【背景技術】
【０００２】
複数のユーザによる共同作業を効率化するためにワークスペースと呼ばれるアプリケーションが提供されている。このワークスペースは、複数のユーザによる同時アクセス可能な仮想空間であり、典型的には、ネットワーク接続などの互いにデータ通信可能に構成された複数の情報処理装置の間でデータが共有されることで実現される。一般的に、このようなワークスペースでは、テキスト、線、画像といったオブジェクトの単位でデータが共有される。
【０００３】
ところで、情報処理装置で実行される多くのアプリケーションでは、特開平０７−０６５１８６号公報（特許文献１）に開示されるような、一旦行なった操作を元の状態に戻す（操作取消）機能、いわゆる「Ｕｎｄｏ機能」が実装されている。このＵｎｄｏ機能によれば、試行錯誤しながら作業を進めていく上で、作業をより効率化できる。
【０００４】
上述のようなワークスペースにおいてもＵｎｄｏ機能が実装される。たとえば、特開平１１−２８８４２８号公報（特許文献２）には、複数の設計者がチーム形式で行なう設計作業において各設計者が行なう各操作の内容を履歴情報として共通の履歴情報記憶手段に順次記録するとともに履歴情報の履歴情報記憶手段への記録順に基づいて直前の操作を取り消すためのアンドゥ機能を提供するＣＡＤシステムが開示されている。このＣＡＤシステムでは、設計者がアンドゥ機能を実行したときに当該設計者が行なった直前の操作を取り消すことができる。
【特許文献１】特開平０７−０６５１８６号公報
【特許文献２】特開平１１−２８８４２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ワークスペースでは、複数のユーザがリアルタイムに共同作業を行なっているので、同一のワークスペース上であっても、複数のオブジェクトに対する変更などの操作がそれぞれのユーザによって並行して実行され得る。このような状況下において、オブジェクトに対する操作を特定して取り消すことは容易ではない。
【０００６】
すなわち、上述の特開平０７−０６５１８６号公報（特許文献１）に開示されるように、ワークスペース上に存在するすべてのオブジェクトに対する操作を操作取消の候補とすると、操作取消の対象とすべき操作に辿り着くまでＵｎｄｏ操作（たとえば、Ｕｎｄｏボタンの押下）を繰返す必要があり、ユーザの操作が煩雑化するという課題が生じる。また、操作取消の対象とすべき操作に辿り着くまでの過程において、対象とすべきではない操作を取り消してしまうおそれもある。このような場合には、当該ワークスペース上で共同作業を行なっている他のユーザに影響を与えてしまう。
【０００７】
このように、複数のオブジェクトが存在するワークスペースでは、効率的に操作取消（Ｕｎｄｏ）が行なえないことにより、作業効率が低下するという課題が生じ得る。
【０００８】
そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、複数のユーザによる同時アクセス可能な仮想空間において、操作取消を実行しようとするユーザが対象とすべきオブジェクトを効率的に特定することにより、効率的な共同作業が可能な情報処理方法、情報処理装置およびプログラムを提供することである。
【課題を解決するための手段】
【０００９】
この発明のある局面に従えば、表示部を含む少なくとも１つの情報処理装置を用いて、複数のユーザによる同時アクセス可能な仮想空間を提供する情報処理方法を提供する。情報処理方法は、情報処理装置が、仮想空間のオブジェクトを表示部に描画するステップと、情報処理装置が、仮想空間においてユーザによってなされたオブジェクトに対する操作の履歴情報を、情報処理装置内もしくは外部に配置された記憶部に記憶するステップとを含む。履歴情報は、ユーザがオブジェクトに対して操作を行なった仮想空間上の位置の情報を含む。当該情報処理方法は、情報処理装置が、ユーザからの操作取消の指示に応答して、当該ユーザが視認する仮想空間上の範囲である第１の視認範囲を特定するステップと、情報処理装置が、その操作の対象であるオブジェクトの位置が第１の視認範囲に含まれる履歴情報を、操作取消の候補として抽出するステップとを含む。
【００１０】
好ましくは、オブジェクトには、当該オブジェクトについてのオーナーを特定する属性が付加されており、情報処理方法は、情報処理装置が、操作取消の対象とすべきオブジェクトのオーナーの設定を受付けるステップをさらに含む。操作取消の候補として抽出するステップでは、その操作の対象であるオブジェクトに付加されているオーナーの属性が予め設定されたオーナーには含まれない履歴情報が、操作取消の候補から除外される。
【００１１】
さらに好ましくは、操作取消の実行中において、操作取消の候補から除外されたオブジェクトは、非表示に維持される。
【００１２】
好ましくは、情報処理方法は、情報処理装置が、仮想空間上で共同作業を行なうユーザのグループの設定を受付けるステップと、情報処理装置が、ユーザからの操作取消の指示に応答して、当該ユーザが属するグループに含まれる他のユーザが視認する仮想空間上の範囲である第２の視認範囲を特定するステップと、情報処理装置が、第１の視認範囲と第２の視認範囲との重複範囲を特定するステップとをさらに含む。操作取消の候補として抽出するステップでは、その操作の対象であるオブジェクトの位置が重複範囲に含まれる履歴情報が、操作取消の候補として抽出される。
【００１３】
好ましくは、情報処理方法は、情報処理装置が、操作取消についての権限を有するユーザの設定を受付けるステップと、情報処理装置が、権限を有するユーザが視認する仮想空間上の範囲である第３の視認範囲を特定するステップとをさらに含む。操作取消の候補として抽出するステップでは、その操作の対象であるオブジェクトの位置が第１および第２の視認範囲のいずれにも含まれる履歴情報が、操作取消の候補として抽出される。
【００１４】
好ましくは、情報処理方法は、情報処理装置が、仮想空間上で操作取消が許可される範囲である操作取消可能範囲の設定を受付けるステップをさらに含む。操作取消の候補として抽出するステップは、その操作の対象であるオブジェクトの位置が、重複範囲および操作取消可能範囲のいずれにも含まれる履歴情報が、操作取消の候補として抽出される。
【００１５】
好ましくは、仮想空間は、複数の情報処理装置によって提供され、情報処理方法は、複数の情報処理装置の各々が、当該情報処理装置を使用するユーザによって指定される仮想空間上の視野範囲を対応する表示部に可視化するステップをさらに含む。ユーザが視認する仮想空間上の範囲は、当該ユーザが指定した視野範囲と同じ範囲とみなされる。
【００１６】
あるいは好ましくは、情報処理方法は、操作取消を指示するユーザの視点を特定するステップをさらに含み、ユーザが視認する仮想空間上の範囲は、当該ユーザの視点に基づいて決定される。
【００１７】
あるいは好ましくは、表示部は、ワークスペースが表示されるスクリーンを含み、情報処理方法は、操作取消を指示するユーザとスクリーンとの相対位置を特定するステップをさらに含む。ユーザが視認する仮想空間上の範囲は、当該ユーザのスクリーンとの相対位置に基づいて決定される。
【００１８】
この発明の別の局面に従えば、複数のユーザによる同時アクセス可能な仮想空間を提供する情報処理装置を提供する。情報処理装置は、表示部と、記憶部と、仮想空間のオブジェクトを表示部に描画する手段と、仮想空間においてユーザによってなされたオブジェクトに対する操作の履歴情報を記憶部に記憶する手段とを含む。履歴情報は、ユーザがオブジェクトに対して操作を行なった仮想空間上の位置の情報を含む。当該情報処理装置は、ユーザからの操作取消の指示に応答して、当該ユーザが視認する仮想空間上の範囲である第１の視認範囲を特定する手段と、その操作の対象であるオブジェクトの位置が第１の視認範囲に含まれる履歴情報を、操作取消の候補として抽出する手段とを含む。
【００１９】
この発明のさらに別の局面に従えば、表示部を含む少なくとも１つの情報処理装置を用いて、複数のユーザによる同時アクセス可能な仮想空間を提供するためのプログラムを提供する。当該プログラムは、情報処理装置に、仮想空間のオブジェクトを表示部に描画するステップと、仮想空間においてユーザによってなされたオブジェクトに対する操作の履歴情報を、情報処理装置内もしくは外部に配置された記憶部に記憶するステップとを実行させる。履歴情報は、ユーザがオブジェクトに対して操作を行なった仮想空間上の位置の情報を含む。当該プログラムは、情報処理装置に、ユーザからの操作取消の指示に応答して、当該ユーザが視認する仮想空間上の範囲である第１の視認範囲を特定するステップと、その操作の対象であるオブジェクトの位置が第１の視認範囲に含まれる履歴情報を、操作取消の候補として抽出するステップとを実行させる。
【発明の効果】
【００２０】
この発明によれば、複数のユーザによる同時アクセス可能な仮想空間において、操作取消の候補を、当該操作取消を実行しようとするユーザが視認する範囲内に存在するオブジェクトに係るものに制限することで、対象とすべきオブジェクトを効率的に特定することができる。これにより。効率的な共同作業が実現される。
【発明を実施するための最良の形態】
【００２１】
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２２】
［実施の形態１］
（ワークスペースの全体構成）
図１は、この発明の実施の形態１に従うワークスペースを提供するためのシステムの概略構成図である。
【００２３】
図１を参照して、本実施の形態に従うシステムは、ネットワークＮＷを介して互いにデータ通信可能に接続されたデバイスである複数の情報処理装置ＰＣ１〜ＰＣ３（以下、「情報処理装置ＰＣ」とも総称する。）を含む。さらに、本実施の形態に従うシステムでは、後述するユーザ認証などを行なうために、情報処理装置の別形態であるサーバ装置ＳＲＶが同一のネットワークＮＷにデータ通信可能に接続されている。なお、これらの機能がいずれかの情報処理装置ＰＣで提供される場合には、このサーバ装置ＳＲＶを省略することができる。
【００２４】
これらの情報処理装置ＰＣ１〜ＰＣ３は、後述するワークスペースデータを共有することで、複数のユーザによる同時アクセス可能な仮想空間を提供する。すなわち、いずれかの情報処理装置ＰＣ上でユーザ操作によってワークスペースが更新されると、当該更新後のワークスペースの内容が他の情報処理装置ＰＣにも送信される。このような同期処理が随時行われることで、すべての情報処理装置ＰＣ間で実質的に同一のワークスペースの内容が共有されることになる。なお、複数の情報処理装置ＰＣがワークスペースデータを個々に保持する構成に代えて、特定の１台の情報処理装置ＰＣ（マスター）のみがワークスペースデータを保持し、他の情報処理装置ＰＣ（スレーブ）が当該マスターの情報処理装置ＰＣに対してデータアクセスをするような構成を採用することもできる。
【００２５】
さらに、サーバ装置ＳＲＶがワークスペースデータを一元的に保持するようにしてもよい。このような場合には、サーバ装置ＳＲＶが複数の表示部であるモニター２０５を複数提供することで、全体としては、１台の情報処理装置でワークスペースを提供することも可能となる。
【００２６】
なお、それぞれの情報処理装置ＰＣは、論理的に相互にデータ通信可能であれば、必ずしも同一階層のネットワークに接続されている必要はない。
【００２７】
（ハードウェア構成）
図２は、この発明の実施の形態１に従う情報処理装置ＰＣの代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
【００２８】
図２を参照して、本実施の形態１に従う情報処理装置ＰＣは、オペレーティングシステムを含む各種プログラムを実行するＣＰＵ２０１と、ＣＰＵ２０１でのプログラムの実行に必要なデータを一時的に記憶する記憶部としてのメモリ部２１３と、ＣＰＵ２０１で実行されるプログラムを不揮発的に記憶するハードディスク部（ＨＤＤ）２１１とを含む。このようなプログラムは、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）ドライブ２１５またはフレキシブルディスク（ＦＤ：Flexible Disk）ドライブ２１７によって、それぞれＣＤ−ＲＯＭ２１５ａまたはフレキシブルディスク２１７ａなどから読取られる。
【００２９】
ＣＰＵ２０１は、キーボードやマウスなどからなる入力装置２０９を介してユーザによる操作要求を受取るとともに、プログラムの実行によって生成される画面出力を表示部であるモニター２０５へ出力する。また、ＣＰＵ２０１は、ＬＡＮカードなどからなる通信インターフェイス２０７を介して、他の情報処理装置ＰＣやサーバ装置ＳＲＶとの間でデータ通信を行なう。なお、これらの部位は、内部バス２０３を介して互いに接続される。
【００３０】
また、サーバ装置ＳＲＶのハードウェア構成についても、図２と同様であるので、詳細な説明は繰返さない。
【００３１】
（ワークスペース）
本明細書において「ワークスペース」とは、複数のユーザによる同時アクセス可能な仮想空間を意味し、ワークスペースは、ワークスペースデータおよび当該ワークスペースデータに含まれる任意数のオブジェクトデータなどによって提供される。なお、本明細書中では、ワークスペースデータおよびオブジェクトデータなどをレンダリング（可視化）したものを「ワークスペース」という場合もある。
【００３２】
図３は、この発明の実施の形態１に従うワークスペースの一例を模式的に示した図である。
【００３３】
図３（ａ）には、可視化されたワークスペースＷＳの全体像を示す。このワークスペースＷＳには、一例として、３つのオブジェクトＯＢＪが含まれているとする。なお、オブジェクトＯＢＪは、ユーザによる各操作の対象となる対象物の単位であり、具体的には、文字を示すテキストオブジェクト、描画を示す線オブジェクト、イメージを示す画像オブジェクトといった任意の電子的に取扱可能な情報を用いることができる。
【００３４】
ワークスペースＷＳのサイズは自在に設定することができ、一般的に、情報処理装置ＰＣのモニター２０５の表示サイズに比較して大きくなるように設定される。そのため、情報処理装置ＰＣのモニター２０５には、図２（ａ）および図２（ｂ）に示すようにワークスペースＷＳの一部の領域だけがレンダリング（可視化）される。以下では、情報処理装置ＰＣのモニター２０５に表示される領域をＶｉｅｗ範囲（視野範囲）ＶＡと称する。
【００３５】
図２（ｂ）を参照して、情報処理装置ＰＣのモニター２０５には、ワークスペースＷＳのうち、ユーザにより指定されたＶｉｅｗ範囲内のオブジェクトを描画したＶｉｅｗ表示ウィンドウ３００が表示される。このＶｉｅｗ表示ウィンドウ３００上には、Ｖｉｅｗ範囲ＶＡをワークスペースＷＳのいずれの位置に配置するかを指定するためのＶｉｅｗ位置指定ダイアログ３０２、およびワークスペースＷＳにおける各種操作を行なうためのツールボックス３０４などが表示される。
【００３６】
すなわち、各情報処理装置ＰＣを使用するユーザは、キーボードやマウスなどからなる入力装置２０９を用いて、Ｖｉｅｗ位置指定ダイアログ３０２を選択および操作することで、Ｖｉｅｗ範囲ＶＡの位置を適宜指定する。また、ユーザは、キーボードやマウスなどからなる入力装置２０９を用いて、ツールボックス３０４に含まれる各種操作ボタンを選択したり、表示されるオブジェクトを選択してドラッグしたりすることで、各オブジェクトの新規作成・変更・削除といった操作が可能である。
【００３７】
図４は、この発明の実施の形態１に従うワークスペースを提供するためのデータ構造を示す模式図である。
【００３８】
図４を参照して、データ構造には、ワークスペースのサイズ、ワークスペース名、オブジェクトデータのファイル名などを記述したワークスペースデータ２６２ａが含まれる。このワークスペースデータ２６２ａに対応付けて、各オブジェクトを記述するオブジェクトデータ２６２ｂが設けられる。このオブジェクトデータ２６２ｂは、ユーザがワークスペース上で新たなオブジェクトを追加した場合に新規作成される。さらに、各オブジェクトデータ２６２ｂに対応付けて、履歴情報が設けられる。この履歴情報は、ユーザによってなされたオブジェクトに対する操作の内容を順次格納したものである。そのため、履歴情報は、オブジェクトに対して何らかの操作がなされれば、新規作成もしくはその内容が更新される。
【００３９】
これらの各データの詳細な内容については、後述する。
（Ｕｎｄｏ機能の概要）
次に、図５および図６を参照して、本実施の形態に従うワークスペースで提供されるＵｎｄｏ機能について説明する。
【００４０】
図５は、この発明の実施の形態１に従うワークスペースの使用状態の一例を示す図である。図６は、図５に示す使用状態におけるＵｎｄｏ処理の実行例を示す図である。
【００４１】
図５を参照して、ワークスペースＷＳにおいて、４つのオブジェクトＯＢＪ１〜ＯＢＪ４が既に作成されているものとする。また、情報処理装置ＰＣ１のユーザは、オブジェクトＯＢＪ３を除く範囲をＶｉｅｗ範囲ＶＡ１と設定しているものとする。ここで、情報処理装置ＰＣ１のユーザが、入力装置２０９を操作して、情報処理装置ＰＣのモニター２０５に表示されるツールボックス３０４に含まれるＵｎｄｏ処理の実行を指示するボタン（以下、「Ｕｎｄｏボタン」とも称す。）を選択すると、ワークスペースＷＳ上に存在するオブジェクトに対してＵｎｄｏ処理が実行される。すなわち、ツールボックス３０４に含まれるＵｎｄｏボタンは、ユーザからの操作取消の指示を受付ける。
【００４２】
特に、本実施の形態に従うワークスペースでは、Ｕｎｄｏ処理を実行しようとするユーザ（この例では、情報処理装置ＰＣ１のユーザ）が視認する範囲内に含まれるオブジェクトに係る操作がＵｎｄｏ処理の候補となる操作（以下、「Ｕｎｄｏ候補操作」とも称す。）として抽出される。すなわち、ワークスペースＷＳ上に存在するすべてのオブジェクトではなく、Ｕｎｄｏ処理を実行しようとするユーザ（この例では、情報処理装置ＰＣ１のユーザ）が視認する範囲内に含まれるオブジェクトに係る操作のみをＵｎｄｏ候補操作とする。そして、Ｕｎｄｏ候補操作として抽出された操作に対して、所定の順序（典型的には、操作がなされた時系列）に従って、Ｕｎｄｏ処理が順次実行される。
【００４３】
以下に示す本実施の形態では、Ｕｎｄｏ処理を実行しようとするユーザが視認する範囲を、当該ユーザによって指定されているＶｉｅｗ範囲と同じ範囲とみなされる。すなわち、Ｕｎｄｏ処理を実行しようとするユーザが指定しているＶｉｅｗ範囲に含まれるオブジェクトに係る操作がＵｎｄｏ候補操作として抽出される。
【００４４】
より具体的な処理としては、図５に示す状態において、Ｕｎｄｏボタンが選択されると、すなわちＵｎｄｏ処理が指示されると、図６に示すように、Ｖｉｅｗ範囲ＶＡ１に含まれるオブジェクトＯＢＪ１，ＯＢＪ２，ＯＢＪ４に係る操作のみがＵｎｄｏ候補操作として抽出され、Ｖｉｅｗ範囲ＶＡ１の外に位置するオブジェクトＯＢＪ３に係る操作については、Ｕｎｄｏ候補操作とはならない。
【００４５】
さらに、オブジェクトＯＢＪ１，ＯＢＪ２，ＯＢＪ４に係る操作のうち、オブジェクトＯＢＪ２に係る操作（この例では、移動操作）が最も新しいものであるとすると、当該操作が取り消されて、すなわちオブジェクトＯＢＪ２に対してＵｎｄｏ処理が実行されて、オブジェクトＯＢＪ２は移動前の位置に戻る。
【００４６】
このように、本実施の形態に従うワークスペースにおいては、Ｕｎｄｏ処理を実行しようとするユーザが視認する範囲内に含まれるオブジェクトに係る操作に絞って、Ｕｎｄｏ候補操作が抽出されるので、同一のワークスペース上に多くのオブジェクトが存在する場合であっても、Ｕｎｄｏ処理の対象を効率的に特定できる。また、他のユーザが変更などを行なったオブジェクトに対して誤ってＵｎｄｏ処理を行なってしまうといったミスも防ぐことができる。
【００４７】
（情報処理装置の制御構造）
図７は、この発明の実施の形態１に従う情報処理装置ＰＣの制御構造を示すブロック図である。
【００４８】
図７を参照して、情報処理装置ＰＣの各々は、その制御構造として、データ操作部２５２と、Ｖｉｅｗ管理部２５４と、描画部２５６と、Ｕｎｄｏ処理用インターフェイス２５８と、オブジェクト抽出部２６０と、データ格納部２６２と、同期処理部２６４と、送受信部２６６と、ユーザ認証部２７０とを含む。データ格納部２６２は、ハードディスク部２１１（図２）の任意の領域として提供され、送受信部２６６は、通信インターフェイス２０７（図２）および関連するドライバソフトの共同によって提供され、その他の各部は、代表的に、ＣＰＵ２０１（図２）がプログラムをメモリ部２１３（図２）に展開し、各コマンドを実行することで提供される。なお、これらの機能の全部もしくは一部をハードウェアによって実現してもよい。
【００４９】
また、データ格納部２６２は、互いに関連付けられた、ワークスペースデータ２６２ａと、オブジェクトデータ２６２ｂと、履歴情報２６２ｃとを含む。さらに、データ格納部２６２は、Ｖｉｅｗ情報２６２ｄを含む。
【００５０】
データ操作部２５２は、ユーザによる入力装置２０９の操作に従って、対象のオブジェクトについてのオブジェクトデータ２６２ｂおよび履歴情報２６２ｃの新規作成・変更・削除などを行なう。このとき、データ操作部２５２は、後述するユーザ認証部２７０からのユーザ情報に基づいて、各操作について、いずれのユーザによってなされた操作であるのかを履歴情報２６２ｃに記述してもよい。また、データ操作部２５２は、後述するＵｎｄｏ処理用インターフェイス２５８からのＵｎｄｏ処理を指示する指令に従って、対象のオブジェクトデータ２６２ｂの内容を更新する。これにより、対象のオブジェクトに対する操作が取り消される。
【００５１】
Ｖｉｅｗ管理部２５４は、データ格納部２６２に格納されているワークスペースデータ２６２ａ、オブジェクトデータ２６２ｂ、履歴情報２６２ｃを参照して、ユーザにより指定されたＶｉｅｗ範囲に含まれるオブジェクトなどの情報を描画部２５６へ出力する。また、Ｖｉｅｗ管理部２５４は、現在のＶｉｅｗ範囲の位置情報をＶｉｅｗ情報２６２ｄに出力する。このＶｉｅｗ情報２６２ｄは、Ｖｉｅｗ範囲の変更に伴って、随時更新される。
【００５２】
描画部２５６は、データ格納部２６２に格納されるＶｉｅｗ情報２６２ｄを参照して、現在のＶｉｅｗ範囲に含まれるオブジェクトを特定し、当該オブジェクトに基づいて、描画処理を行なう。すなわち、描画部２５６は、ワークスペースのうちＶｉｅｗ範囲内のオブジェクトを可視化したＶｉｅｗ表示ウィンドウ３００（図３（ｂ）参照）を生成する。
【００５３】
Ｕｎｄｏ処理用インターフェイス２５８は、本実施の形態に従うＵｎｄｏ処理を全体的に制御する。具体的には、Ｕｎｄｏ処理用インターフェイス２５８は、後述するオブジェクト抽出部２６０により抽出（認識）されたＵｎｄｏ候補操作を、それぞれの操作が行われた時刻順に並べ替える。続いて、Ｕｎｄｏ処理用インターフェイス２５８は、ユーザ操作に従って、並び替えられたＵｎｄｏ候補操作を取り消すための指令をデータ操作部２５２へ順次与える。
【００５４】
オブジェクト抽出部２６０は、ユーザ操作によってＵｎｄｏ処理が指示されると、データ格納部２６２に格納されるＶｉｅｗ情報２６２ｄを参照してＶｉｅｗ範囲の位置情報を取得し、データ格納部２６２内のオブジェクトデータ２６２ｂおよび履歴情報２６２ｃを参照して、当該Ｖｉｅｗ範囲内に含まれるＵｎｄｏ候補操作を抽出する。このとき、当該Ｖｉｅｗ範囲に存在するまたは存在していたオブジェクトの履歴情報２６２ｃがＵｎｄｏ候補操作となる。
【００５５】
同期処理部２６４は、ワークスペースを提供するワークスペースデータ２６２ａ、オブジェクトデータ２６２ｂ、履歴情報２６２ｃを他の情報処理装置ＰＣとの間で同期する。すなわち、同期処理部２６４は、自装置においてワークスペースデータ２６２ａ、オブジェクトデータ２６２ｂ、履歴情報２６２ｃのいずれかが追加または更新されると、追加または更新後の各データの全部または差分を、ワークスペースデータを共有している他の情報処理装置ＰＣへそれぞれ送信する。また、同期処理部２６４は、他の情報処理装置ＰＣから追加または更新後のデータの全部または差分を受信すると、それに応じて、自装置のデータ格納部２６２に格納されているデータを更新する。
【００５６】
送受信部２６６は、他の情報処理装置ＰＣおよびサーバ装置ＳＲＶとの間のデータ通信を制御する。具体的には、送受信部２６６は、同期処理部２６４からの要求に応じて必要なメッセージを送信したり、他の情報処理装置ＰＣまたはサーバ装置ＳＲＶから受信したデータを同期処理部２６４へ与えたりする。
【００５７】
ユーザ認証部２７０は、本実施の形態に従うワークスペースのアプリケーションを使用するユーザ認証を行なう。具体的には、当該ワークスペースのアプリケーションが実行されると、ユーザ認証部２７０は、ユーザにＩＤおよびパスワードの入力を促す。そして、ユーザからＩＤおよびパスワードの入力があると、サーバ装置ＳＲＶ（図１）に問合せを行なってユーザ認証を行なう。ユーザ認証が成功すると、ユーザによる当該ワークスペースのアプリケーションの使用を許可するとともに、現在使用中（ログイン中）のユーザ名を保持する。なお、本実施の形態においては、ユーザ認証部２７０により認証されたユーザのＩＤに基づいて、履歴情報２６２ｃにそれぞれの操作を行なったユーザ名が記述される。なお、履歴情報２６２ｃには、必ずしもユーザ名を記述する必要はない。
【００５８】
（データ構造）
情報処理装置ＰＣのデータ格納部２６２に格納される各データの構造について、図８〜図１１を参照して説明する。各データは、代表的に、ＸＭＬ（Extensible Markup Language）などのマークアップ言語で記述される。これは、タグ（＜＞と＜／＞とで囲まれる文字に与える属性）を自在に設定することでシステムの拡張性を高めるためである。
【００５９】
（１−１）ワークスペースデータ
図８は、この発明の実施の形態１に従うワークスペースデータ２６２ａの内容の一例を示す図である。図８を参照して、ワークスペースデータ２６２ａは、当該ワークスペースを特定するための識別番号（ＩＤ）４０１と、当該ワークスペースの名称であるワークスペース名４０２と、当該ワークスペースに含まれるオブジェクトを特定するためのオブジェクトデータ番号４０３とを含む。
【００６０】
オブジェクトデータ番号４０３は、ユーザ操作によってワークスペース上に追加されたオブジェクトに応じて順次追記される。なお、ワークスペースに一旦オブジェクトが追加されると、たとえその後、当該オブジェクトが削除されたとしても、特段の処理がなされない限り、オブジェクトデータ番号４０３の記述自体は残存する。これは、後述するように、Ｕｎｄｏ機能を提供するためには、各オブジェクトの履歴情報を残しておく必要があるからである。
【００６１】
（１−２）オブジェクトデータ
図９は、この発明の実施の形態１に従うオブジェクトデータ２６２ｂの内容の一例を示す図である。図９を参照して、オブジェクトデータ２６２ｂは、図８に示すワークスペースデータ２６２ａに記述されるオブジェクトデータ番号４０３に対応付けて生成される。すなわち、各オブジェクトデータ２６２ｂは、ワークスペースデータ２６２ａのオブジェクトデータ番号４０３（図８）と対応付けられた識別番号（ＩＤ）４０５を含む。さらに、各オブジェクトデータ２６２ｂは、当該オブジェクトの名称であるオブジェクト名４０６と、当該オブジェクトについての所有者（オーナー）を特定するためのオーナー情報４０７と、当該オブジェクトについての履歴情報を特定するための履歴情報番号４０８とを含む。
【００６２】
オーナー情報４０７は、対応のオブジェクトを新規作成もしくは変更したユーザを特定するための情報である。オーナー情報４０７に記述されたユーザは、典型的には、対象のオブジェクトの変更などに対する権限を有するユーザとして扱われる。すなわち、オーナー情報４０７は、各オブジェクトについてのオーナーを特定するための属性である。
【００６３】
また、履歴情報番号４０８は、後述する履歴情報の識別番号と対応付けられた番号である。なお、履歴情報の識別番号は任意に設定することができるが、本実施の形態では、時系列に識別番号が増加、すなわち新しいものほど大きな識別番号であるとする。
【００６４】
（１−３）履歴情報
図１０は、この発明の実施の形態１に従う履歴情報２６２ｃの内容の一例を示す図である。図１０を参照して、履歴情報２６２ｃは、図９に示すオブジェクトデータ２６２ｂに記述された履歴情報番号４０８と対応付けて生成される。すなわち、オブジェクトデータ２６２ｂの履歴情報番号４０８（図１１）と対応付けられた識別番号（ＩＤ）４０９を含む。さらに、各履歴情報２６２ｃは、当該履歴情報の名称である履歴名４１０と、当該履歴の操作された内容を示す動作タイプ情報４１１と、当該履歴の操作がなされた時刻を示す動作時刻情報４１２と、当該履歴の操作がなされた位置情報（各座標）を示す動作場所情報４１３と、当該履歴の操作を行なったユーザを示す動作操作者情報４１４と、対応のオブジェクトの詳細な情報を示すオブジェクト詳細情報４１５とを含む。
【００６５】
動作タイプ情報４１１には、対応のオブジェクトについてなされた操作の内容、たとえば「（新規）作成」、「移動」、「サイズ変更」、「削除」などの値が記述される。動作時刻情報４１２には、ユーザが各オブジェクトに対して操作を行なった時刻が記述される。なお、履歴情報２６２ｃは、ユーザが各オブジェクトに対して１回の操作（たとえば、１回の移動操作）を行なう毎に新規作成される。
【００６６】
動作場所情報４１３には、ユーザが各オブジェクトに対して操作を行なったワークスペース上の位置情報（開始位置または終点位置）の値が記述される。
【００６７】
動作操作者情報４１４には、各オブジェクトに対して操作を行なったユーザを特定するための値が記述される。このユーザを特定するための値としては、ユーザ認証部２７０（図７）が保持する認証されたユーザ名などが用いられる。
【００６８】
オブジェクト詳細情報４１５には、各オブジェクトを規定する情報が記述される。たとえば、対応のオブジェクトが線オブジェクト（オブジェクトタイプが「線」）であれば、そのアウトラインを示すベクトルデータ（始点、終点、アンカーポイント、曲率）などが記述される。また、対応のオブジェクトが画像オブジェクト（オブジェクトタイプが「・・・．ｊｐｇ」）であれば、その画像データを特定するためのファイル名などが記述される。
【００６９】
なお、上述の例では、各オブジェクトデータと対応する履歴情報とは、互いにリンク付けした別のファイル（データ）として取扱う構成について説明したが、各オブジェクトデータに履歴情報を含ませた同一のファイル（データ）としてもよい。
【００７０】
（１−４）Ｖｉｅｗ情報リスト
図１１は、この発明の実施の形態１に従うＶｉｅｗ情報２６２ｄの内容の一例を示す図である。図１１を参照して、Ｖｉｅｗ情報２６２ｄは、当該Ｖｉｅｗ情報を特定するための識別番号（ＩＤ）４２１と、情報処理装置ＰＣを使用しているユーザを特定するためのユーザ名４２２と、情報処理装置ＰＣにおけるＶｉｅｗ範囲の各頂点の座標を示すＶｉｅｗ位置情報４２３とを含む。
【００７１】
（Ｕｎｄｏ処理の処理手順）
図１２は、この発明の実施の形態１に従うＵｎｄｏ処理の処理手順を示すフローチャートである。なお、図１２に示す処理手順は、代表的に、情報処理装置ＰＣのＣＰＵ２０１がプログラムを実行することで提供される。ここで、情報処理装置ＰＣでは、ワークスペースのうち各ユーザにより指定されたＶｉｅｗ範囲内のオブジェクトがモニター２０５に逐次描画されているものとする。また、情報処理装置ＰＣでは、ワークスペースにおいて各ユーザによってなされた何らかのオブジェクトに対する操作がなされると、その内容がデータ格納部２６２の履歴情報２６２ｃに順次格納される。
【００７２】
図１２を参照して、まず、情報処理装置ＰＣのＣＰＵ２０１は、ユーザがツールボックス３０４（図５および図６参照）のＵｎｄｏボタンを選択したか否かを判断する（ステップＳ１００）。Ｕｎｄｏボタンが選択されていなければ（ステップＳ１００においてＮＯ）、ステップＳ１００の処理が繰返される。一方、Ｕｎｄｏボタンが選択された場合（ステップＳ１００においてＹＥＳの場合）には、処理はステップＳ１０２に進む。
【００７３】
すなわち、何らかの操作を取り消そうとするユーザは、使用している情報処理装置ＰＣを操作して、対象の操作がなされたオブジェクトの存在している位置、あるいは存在していた位置を含むように、Ｖｉｅｗ範囲を設定した上で、Ｖｉｅｗ表示ウィンドウ３００（図５および図６参照）に表示されるツールボックス３０４のＵｎｄｏボタンをマウスなどによって選択する。
【００７４】
ステップＳ１０２では、情報処理装置ＰＣのＣＰＵ２０１は、データ格納部２６２（ハードディスク部２１１）に格納されるＶｉｅｗ情報２６２ｄを参照して、現在のＶｉｅｗ範囲の情報（各頂点の座標）を取得する。続いて、情報処理装置ＰＣのＣＰＵ２０１は、データ格納部２６２に格納されているすべての履歴情報２６２ｃ（ハードディスク部２１１）を参照し、それぞれの履歴情報２６２ｃに含まれる動作場所情報４１３（図１０）の値に基づいて、Ｖｉｅｗ範囲に含まれるＵｎｄｏ候補操作を抽出する（ステップＳ１０４）。すなわち、情報処理装置ＰＣのＣＰＵ２０１は、その位置情報である動作場所情報４１３の値がステップＳ１０２において取得したＶｉｅｗ範囲に含まれる履歴情報２６２ｃをＵｎｄｏ候補操作として抽出する。
【００７５】
さらに、情報処理装置ＰＣのＣＰＵ２０１は、抽出したＵｎｄｏ候補操作を、それぞれの動作時刻情報４１２（図１２）の値に基づいて実行された時刻の新しい順に並び替える（ステップＳ１０６）。すなわち、情報処理装置ＰＣのＣＰＵ２０１は、抽出したＵｎｄｏ候補操作について、動作時刻情報４１２の値をキーにして降順にソートする。
【００７６】
以下、ステップＳ１０４およびＳ１０６における処理について、図１３および図１４を参照して説明する。
【００７７】
図１３は、この発明の実施の形態１に従う履歴情報の一例を示す図である。図１４は、図１３に示す履歴情報から抽出されたＵｎｄｏ候補操作およびそれらの並び替え後の一例を示す図である。
【００７８】
一例として、ワークスペース上に、「オブジェクトＡ」（ＩＤ＝１）、「オブジェクトＢ」（ＩＤ＝２）、「オブジェクトＣ」（ＩＤ＝３）、「オブジェクトＤ」（ＩＤ＝４）の４つのオブジェクトが配置されているものとする。そして、図１３は、これらのオブジェクトの履歴情報２６２ｃに記述された内容を簡潔に表形式で示したものである。なお、図１３において、各履歴情報についての左側の枠には、上から順に「動作タイプ情報４１１」、「動作時刻情報４１２」、「動作操作者情報４１４」の値が示されているものとする。また、各履歴情報についての右側の枠には、上から順に「動作場所情報４１３」の「Ｘ座標値」および「Ｙ座標値」が示されているものとする。
【００７９】
なお、図１３に示す表は説明の便宜上のものであり、図１３と同じデータ構造のデータを必ずしも生成する必要はない。
【００８０】
このような各オブジェクトについての履歴情報に対して、情報処理装置ＰＣのＣＰＵ２０１は、現在のＶｉｅｗ範囲内にあるものを抽出する。たとえば、現在のＶｉｅｗ範囲の各頂点の座標が（４２１，３８５），（６１０，３８５），（４２１，５１８），（６１０，５１８）である場合には、履歴情報のうち、その動作場所情報４１３のＸ座標値が４２１〜６１０の範囲であり、かつＹ座標値が３８５〜５１８の範囲であるものが、Ｕｎｄｏ候補操作として抽出される。
【００８１】
図１３に示す例では、オブジェクトＣの履歴情報（１）がこの例におけるＶｉｅｗ範囲外に存在することになるので、それを除いた残りの履歴情報がＵｎｄｏ候補操作として抽出される。
【００８２】
さらに、情報処理装置ＰＣのＣＰＵ２０１は、抽出したＵｎｄｏ候補操作を、それぞれの動作時刻情報４１２の値に基づいて新しい順に並び替える。図１４には、上述のような抽出および並び替え後のＵｎｄｏ候補操作の一例が示される。これらのＵｎｄｏ候補操作の内容がＵｎｄｏ処理の対象となる。その後、処理はステップＳ１０８（図１２）に進む。
【００８３】
再度、図１２を参照して、ステップＳ１０８では、情報処理装置ＰＣのＣＰＵ２０１は、ステップＳ１０６において並び替えたＵｎｄｏ候補操作のうち、最新のものを対象のＵｎｄｏ候補操作とする。続く、ステップＳ１１０では、情報処理装置ＰＣのＣＰＵ２０１は、対象のＵｎｄｏ候補操作に対するＵｎｄｏ処理を実行する。より具体的には、情報処理装置ＰＣのＣＰＵ２０１は、データ格納部２６２に格納されているオブジェクトデータ２６２ｂ（図９）に記述された履歴情報番号４０８のうち対応するもの（履歴情報番号の値が最も大きいもの）を削除する。この操作によって、対象としたオブジェクトには、１つ少ない履歴情報番号をもつ履歴情報がその属性として対応付けられ、最も新しい操作が取り消されたことになる。そして、処理はステップＳ１１２に進む。
【００８４】
ステップＳ１１２では、情報処理装置ＰＣのＣＰＵ２０１は、ステップＳ１０６において並び替えたＵｎｄｏ候補操作のうち、次に新しいものが存在するか否かを判断する。次に新しいものが存在しない場合（ステップＳ１１２においてＮＯの場合）には、Ｕｎｄｏ処理は終了する。
【００８５】
一方、次に新しいＵｎｄｏ候補操作が存在する場合（ステップＳ１１２においてＹＥＳの場合）には、情報処理装置ＰＣのＣＰＵ２０１は、当該次に新しいＵｎｄｏ候補操作を対象のＵｎｄｏ候補操作とする（ステップＳ１１４）。さらに、情報処理装置ＰＣのＣＰＵ２０１は、ユーザがツールボックス３０４のＵｎｄｏボタンを再度選択したか否かを判断する（ステップＳ１１６）。Ｕｎｄｏボタンが再度選択された場合（ステップＳ１１６においてＹＥＳの場合）には、処理はステップＳ１１０に移る。
【００８６】
一方、Ｕｎｄｏボタンが再度選択されていなければ（ステップＳ１１６においてＮＯ）、情報処理装置ＰＣのＣＰＵ２０１は、ユーザがＵｎｄｏボタン以外の他の操作を指示したか否かを判断する（ステップＳ１１８）。ユーザが何らの操作もしていない場合には（ステップＳ１１８においてＮＯの場合）、処理はステップＳ１１６に戻る。
【００８７】
これに対して、ユーザがＵｎｄｏボタン以外の他の操作を指示した場合（ステップＳ１１８においてＹＥＳの場合）には、Ｕｎｄｏ処理は終了し、指定された操作に対応する処理を実行する。
【００８８】
（実施の形態１における作用・効果）
本実施の形態によれば、複数のユーザによる同時アクセス可能な仮想空間であるワークスペースにおいて、複数のオブジェクトが存在する場合であっても、操作取消を実行しようとするユーザは、自身の視認する範囲に含まれるオブジェクトに係る操作のみが、その候補として抽出される。このように、Ｕｎｄｏ候補操作が各ユーザの視認する範囲に絞り込まれるので、Ｕｎｄｏ処理の対象とすべきオブジェクトを効率的に特定することができる。
【００８９】
したがって、各ユーザは、簡単な操作によって、Ｕｎｄｏ処理の対象とするオブジェクトを効率的に特定して、処理を実行できることになり、共同作業全体としての効率を高めることができる。同時に、各ユーザが視認する範囲外に存在するオブジェクトに係る操作に対して、当該ユーザが関知しないところでＵｎｄｏ処理が実行されてしまうといった事態を回避できる。
【００９０】
［実施の形態２］
上述した実施の形態１では、情報処理装置ＰＣのユーザが設定したＶｉｅｗ範囲内に存在するオブジェクトに係る操作をすべてＵｎｄｏ候補操作とする構成について例示した。一方、状況によっては、特定のユーザが所有者となっているオブジェクトに係る操作のみをＵｎｄｏ候補操作としたい場合もある。たとえば、同一の共同作業を行なうチームのメンバー間でのみ、Ｕｎｄｏ処理を許可したいような場合も想定される。このような場合には、以下に説明する実施の形態２に従う構成がより適切である。
【００９１】
なお、この発明の実施の形態２に従うワークスペースを提供するためのシステムおよび情報処理装置ＰＣの構成などについては、上述した実施の形態１と同様であるので、詳細な説明は繰返さない。
【００９２】
図１５は、この発明の実施の形態２に従うＶｉｅｗフィルタリング設定を行なうためのダイアログの一例を示す図である。図１６は、この発明の実施の形態２に従うワークスペースの使用状態におけるＵｎｄｏ処理の実行例を示す図である。
【００９３】
本実施の形態に従う情報処理装置ＰＣのモニター２０５には、ユーザ操作に応じて、もしくはワークスペースの描画開始とともに、図１５に示すＶｉｅｗフィルタリング設定を行なうためのダイアログが表示される。すなわち、このダイアログは、Ｕｎｄｏ候補操作とすべきオブジェクトのオーナーの設定を受付ける。より具体的には、このダイアログ上で設定（チェックボックスが選択）されたユーザがオーナーであるオブジェクトに係る操作のみが、Ｕｎｄｏ候補操作として抽出され得る。図１５に示す一例においては、「表示するオブジェクトのオーナー」として、「ユーザＡ」、「ユーザＢ」、「ユーザＣ」が選択されている。
【００９４】
なお、図１５に示すダイアログでは、ワークスペースに既に存在するオブジェクトのオーナーを抽出して、その選択候補（ユーザＡ，ユーザＢ，・・・）が表示される。あるいは、サーバ装置ＳＲＶ（図１）へ問い合わせを行なって、認証可能なユーザの一覧を取得することで、その選択候補（ユーザＡ，ユーザＢ，・・・）が表示されてもよい。
【００９５】
図１６を参照して、本実施の形態に従うワークスペースＷＳにおいて、図５と同様に、４つのオブジェクトＯＢＪ１〜ＯＢＪ４が既に作成されているものとする。また、情報処理装置ＰＣ１のユーザは、オブジェクトＯＢＪ３を除く範囲をＶｉｅｗ範囲ＶＡ１と設定しているものとする。さらに、オブジェクトＯＢＪ１およびＯＢＪ２のオーナーは「ユーザＡ」であり、オブジェクトＯＢＪ３のオーナーは「ユーザＣ」であり、オブジェクトＯＢＪ４のオーナーは「ユーザＤ」であるものとする。
【００９６】
ここで、情報処理装置ＰＣ１のユーザが、入力装置２０９を操作して、情報処理装置ＰＣのモニター２０５に表示されるツールボックス３０４に含まれるＵｎｄｏボタンを選択すると、上述の実施の形態１と同様に、ワークスペースＷＳ上に存在するオブジェクトに対してＵｎｄｏ処理が実行される。特に、本実施の形態に従うワークスペースでは、図１５に示すようなＶｉｅｗフィルタリング設定に適合するオブジェクトに係る操作のみがＵｎｄｏ候補操作として抽出される。すなわち、それぞれの履歴情報のうち、その対象であるオブジェクトに付加されているオーナーの属性が、図１５に示すＶｉｅｗフィルタリング設定には含まれないものは、Ｕｎｄｏ候補操作から除外される。
【００９７】
図１６に示す例では、Ｕｎｄｏ処理を実行しようとするユーザが視認する範囲内（Ｖｉｅｗ範囲ＶＡ１内）に存在するオブジェクトのうち、「ユーザＡ」がオーナーであるオブジェクトＯＢＪ１およびＯＢＪ２に係る操作のみがＵｎｄｏ候補操作として抽出される。ここで、Ｕｎｄｏ候補操作から除外された履歴情報に対応するオブジェクトＯＢＪ４については、少なくとも一連のＵｎｄｏ処理の実行中にわたって、ワークスペースＷＳ上で非表示に維持（あるいは、透明化）される。以下、上述の実施の形態１と同様に、これらのＵｎｄｏ候補操作として抽出された履歴情報に対して、所定の順序（典型的には、操作がなされた時系列）に従って、Ｕｎｄｏ処理が順次実行される。
【００９８】
このように、Ｕｎｄｏ候補操作として抽出されなかったオブジェクトＯＢＪ４については非表示とされることで、Ｕｎｄｏ処理を実行しようとするユーザが混乱することを抑制できる。
【００９９】
この発明の実施の形態２に従う情報処理装置ＰＣの制御構造については、データ格納部２６２に保持されるＶｉｅｗ情報の内容を除いて、上述の図７に示す制御構造と同様であるので詳細な説明は繰返さない。
【０１００】
図１７は、この発明の実施の形態２に従うＶｉｅｗ情報２６２ｄ＃１の内容の一例を示す図である。図１７を参照して、Ｖｉｅｗ情報２６２ｄ＃１は、図１１に示すＶｉｅｗ情報２６２ｄに含まれるデータに加えて、フィルタリング情報４２４をさらに含む。このフィルタリング情報４２４は、図１５に示すダイアログでの設定、すなわちＵｎｄｏ候補操作の対象とすべきオブジェクトのオーナー設定を記述するものである。具体的には、図１５に示すダイアログ上で設定（チェックボックスが選択）されたユーザが、＜表示＞タグのエレメントとして記述される。後述するように、このフィルタリング情報４２４の内容に基づいて、Ｕｎｄｏ候補操作が抽出される。
【０１０１】
（Ｕｎｄｏ処理の処理手順）
図１８は、この発明の実施の形態２に従うＵｎｄｏ処理の処理手順を示すフローチャートである。図１８に示す処理手順は、図１２に示す実施の形態１に従うＵｎｄｏ処理の処理手順を示すフローチャートにおいて、ステップＳ１０３を追加するとともに、ステップＳ１０４に代えてステップＳ１０４Ａを実行するようにしたものである。
【０１０２】
また、図１８に示す処理手順は、代表的に、情報処理装置ＰＣのＣＰＵ２０１がプログラムを実行することで提供される。ここで、情報処理装置ＰＣでは、ワークスペースのうち各ユーザにより指定されたＶｉｅｗ範囲内のオブジェクトがモニター２０５に逐次描画されているものとする。また、情報処理装置ＰＣでは、ワークスペースにおいて各ユーザによってなされた何らかのオブジェクトに対する操作がなされると、その内容がデータ格納部２６２の履歴情報２６２ｃに順次格納される。
【０１０３】
図１８を参照して、情報処理装置ＰＣのＣＰＵ２０１は、データ格納部２６２（ハードディスク部２１１）に格納されるＶｉｅｗ情報２６２ｄを参照して、現在のＶｉｅｗ範囲の情報（各頂点の座標）を取得する（ステップＳ１０２）とともに、フィルタリング情報を取得する（ステップＳ１０３）。続くステップＳ１０４Ａにおいて、情報処理装置ＰＣのＣＰＵ２０１は、データ格納部２６２に格納されているすべての履歴情報２６２ｃ（ハードディスク部２１１）を参照し、それぞれの履歴情報２６２ｃに含まれる動作場所情報４１３（図１０）の値、および関連付けられているオブジェクトデータ２６２ｂに含まれるオーナー情報４０７に基づいて、Ｕｎｄｏ候補操作を抽出する（ステップＳ１０４Ａ）。すなわち、情報処理装置ＰＣのＣＰＵ２０１は、その位置情報である動作場所情報４１３の値がステップＳ１０２において取得したＶｉｅｗ範囲に含まれ、かつ対応するオブジェクトのオーナーがステップＳ１０３において取得したフィルタリング情報に合致する履歴情報２６２ｃをＵｎｄｏ候補操作として抽出する。
【０１０４】
これらの処理により、Ｕｎｄｏ処理を実行しようとするユーザが視認する範囲内に存在し、かつ所定のフィルタリング情報に合致するオブジェクトに係る操作がＵｎｄｏ処理の候補として抽出される。
【０１０５】
その他の処理については、図１２に示すフローチャートと同様であるので、詳細な説明は繰返さない。
【０１０６】
なお、図１５に示すフィルタリングの設定において、抽出されるＵｎｄｏ候補操作の一例を示すと、図１９のようになる。図１９は、この発明の実施の形態２において、図１３に示す履歴情報から抽出されるＵｎｄｏ候補操作およびそれらの並び替え後の一例を示す図である。図１４に示す実施の形態１に従う履歴情報から抽出されたＵｎｄｏ候補操作およびそれらの並び替え後の一例と比較すると分かるように、図１９では、オーナーが「ユーザＤ」であるオブジェクトＯＢＪ４に係る操作については、Ｕｎｄｏ候補操作から除外される。
【０１０７】
（実施の形態２における作用・効果）
本実施の形態によれば、上述の実施の形態１における作用・効果に加えて、Ｕｎｄｏ候補操作として抽出する対象をより絞り込むことができる。すなわち、本実施の形態によれば、予め設定した同一の共同作業を行なうチームのメンバーが行なった操作のみを、Ｕｎｄｏ候補操作として抽出できるので、Ｕｎｄｏ処理の対象とすべきオブジェクトをより効率的に特定することができる。
【０１０８】
したがって、各ユーザは、簡単な操作によって、Ｕｎｄｏ処理の対象とするオブジェクトを効率的に特定して、処理を実行できることになり、共同作業全体としての効率をより高めることができる。
【０１０９】
［実施の形態３］
上述した実施の形態１では、情報処理装置ＰＣのユーザが視認する範囲内に存在するオブジェクトに係る操作をすべてＵｎｄｏ候補操作とする構成について例示した。一方、状況によっては、Ｕｎｄｏ候補操作を、同一の共同作業を行なうすべてのメンバーが視認している範囲内に存在するオブジェクトに係る操作に限ることが好ましい場合もある。このような場合には、以下に説明する実施の形態３に従う構成がより適切である。
【０１１０】
なお、この発明の実施の形態３に従うワークスペースを提供するためのシステムおよび情報処理装置ＰＣの構成などについては、後述する内部の制御構造を除いて、上述した実施の形態１と同様であるので、詳細な説明は繰返さない。
【０１１１】
図２０は、この発明の実施の形態３に従う共同ユーザ設定を行なうためのダイアログの一例を示す図である。図２１は、この発明の実施の形態３に従うワークスペースの使用状態におけるＵｎｄｏ処理の実行例を示す図である。図２２は、図２０に示す共同ユーザ設定を行なうためのダイアログに対する設定が有効化されている場合の情報処理装置ＰＣのモニターでの表示例を示す図である。
【０１１２】
本実施の形態に従う情報処理装置ＰＣのモニター２０５には、ユーザ操作に応じて、もしくはワークスペースの描画開始とともに、図２０に示す共同ユーザ設定を行なうためのダイアログが表示される。このダイアログは、ワークスペース上で共同作業を行なうユーザのグループの設定を受付ける。より具体的には、このダイアログ上で設定（チェックボックスが選択）された（複数の）ユーザが共通に視認する範囲に含まれるオブジェクトに係る操作がＵｎｄｏ候補操作として抽出される。
【０１１３】
このように、図２０に示すダイアログは、Ｕｎｄｏ候補操作を抽出するためのさらなる絞込条件を受付ける。図２０に示す一例においては、「共同作業ユーザ」として、「ユーザＡ」および「ユーザＢ」が選択されている。すなわち、「ユーザＡ」および「ユーザＢ」が、ワークスペース上で共同作業を行なうユーザのグループとして設定されている。
【０１１４】
なお、図２０に示すダイアログでは、サーバ装置ＳＲＶ（図１）へ問い合わせを行なって、認証可能なユーザの一覧を取得することで、その選択候補（ユーザＡ，ユーザＢ，・・・）を表示される。
【０１１５】
図２１を参照して、本実施の形態に従うワークスペースＷＳにおいて、図５と同様に、４つのオブジェクトＯＢＪ１〜ＯＢＪ４が既に作成されているものとする。また、ユーザＡが情報処理装置ＰＣ１を使用しており、ユーザＢが情報処理装置ＰＣ２を使用しているものとする。さらに、ユーザＡは、情報処理装置ＰＣ１を操作して、オブジェクトＯＢＪ１，ＯＢＪ２，ＯＢＪ４を含む範囲をＶｉｅｗ範囲ＶＡ１と設定しており、ユーザＢは、情報処理装置ＰＣ２を操作して、ＯＢＪ２を含む範囲をＶｉｅｗ範囲ＶＡ２と設定しているものとする。
【０１１６】
ここで、情報処理装置ＰＣ１のユーザが、入力装置２０９を操作して、情報処理装置ＰＣのモニター２０５に表示されるツールボックス３０４に含まれるＵｎｄｏボタンを選択すると、上述の実施の形態１と同様に、ワークスペースＷＳ上に存在するオブジェクトに対してＵｎｄｏ処理が実行される。
【０１１７】
特に、本実施の形態に従うワークスペースでは、図２０において設定されるグループに含まれるそれぞれのユーザが共通に視認する範囲に含まれるオブジェクトに係る操作のみがＵｎｄｏ候補操作として抽出される。典型的に、図２１に示す例では、ユーザＡが視認する範囲（典型的には、Ｖｉｅｗ範囲ＶＡ１）と、ユーザＢが視認する範囲（典型的には、Ｖｉｅｗ範囲ＶＡ２）との重複Ｖｉｅｗ範囲ＶＡＣ内に存在するオブジェクトＯＢＪ２に係る操作のみがＵｎｄｏ候補操作として抽出される。その後、上述の実施の形態１と同様に、これらのＵｎｄｏ処理の候補として抽出された操作に対して、所定の順序（典型的には、操作がなされた時系列）に従って、Ｕｎｄｏ処理が順次実行される。
【０１１８】
なお、図２０に示す共同ユーザ設定を行なうためのダイアログに対する設定が有効化されている場合には、情報処理装置ＰＣのモニター２０５には、図２２に示すような設定中のグループに含まれるユーザを示すダイアログ３０６が表示されてもよい。
【０１１９】
また、上述の説明では、２人のユーザが視認している範囲の間での重複範囲を特定する構成について例示したが、３人以上のユーザが視認している範囲の間での重複範囲を特定するようにしてもよい。
【０１２０】
あるいは、上述の説明では、それぞれのユーザが視認している範囲の間での重複範囲に含まれるオブジェクトに係る操作をＵｎｄｏ候補操作として抽出する構成について例示したが、共同作業を行なういずれかのユーザが視認しているオブジェクトに係る操作をＵｎｄｏ対象とすることもできる。このような場合には、それぞれのユーザが視認している範囲を合計した範囲から、Ｕｎｄｏ候補操作を抽出するようにしてもよい。
【０１２１】
このように、共同作業を行なっているすべてのユーザ（設定されたグループに属するユーザ）が共通に視認している範囲内のオブジェクトに係る操作のみがＵｎｄｏ候補操作として抽出されるので、共同作業を行なっているユーザのうち一部のユーザが関知しないところで、Ｕｎｄｏ処理が実行されるといった事態を回避できる。
【０１２２】
（情報処理装置の制御構造）
図２３は、この発明の実施の形態３に従う情報処理装置ＰＣの制御構造を示すブロック図である。
【０１２３】
図２３に示す情報処理装置ＰＣの制御構造は、図７に示す情報処理装置ＰＣの制御構造において、Ｖｉｅｗ情報交換部２６８を追加したものに実質的に等しい。
【０１２４】
Ｖｉｅｗ情報交換部２６８は、後述するようにサーバ装置ＳＲＶとの間で、現在のＶｉｅｗ範囲の位置情報および重複Ｖｉｅｗ範囲の位置情報を交換する。より具体的には、Ｖｉｅｗ情報交換部２６８は、データ格納部２６２に格納されているＶｉｅｗ情報２６２ｄをサーバ装置ＳＲＶへ送信するとともに、サーバ装置ＳＲＶから重複Ｖｉｅｗ範囲の位置情報を取得する。Ｖｉｅｗ情報交換部２６８は、Ｖｉｅｗ範囲の設定が変更されるたびに、サーバ装置ＳＲＶへその変更後の値を随時送信する。
【０１２５】
なお、本実施の形態においては、重複Ｖｉｅｗ範囲は、それぞれの情報処理装置ＰＣからサーバ装置ＳＲＶへ送信されるＶｉｅｗ範囲の位置情報に基づいて、サーバ装置ＳＲＶが算出する。このような構成に代えて、Ｖｉｅｗ情報交換部２６８が他の情報処理装置ＰＣなどからそれぞれのユーザについてのＶｉｅｗ範囲の位置情報を取得して、各情報処理装置ＰＣにおいて重複Ｖｉｅｗ範囲を特定してもよい。
【０１２６】
また、Ｖｉｅｗ情報交換部２６８は、送受信部２６６を介して、図２０に示すダイアログにおいて設定される共同ユーザ設定についてもサーバ装置ＳＲＶへ送信する。
【０１２７】
その他の部位については、図７に示す情報処理装置ＰＣの制御構造の対応する部位と同様であるので、詳細な説明は繰返さない。
【０１２８】
（サーバ装置の制御構造）
図２４は、この発明の実施の形態３に従うサーバ装置ＳＲＶの制御構造を示すブロック図である。
【０１２９】
図２４に示すサーバ装置ＳＲＶの制御構造は、その制御構造として、送受信部２９０と、データ格納部２９２と、共同ユーザ管理部２９４と、重複Ｖｉｅｗ情報生成部２９６と、Ｖｉｅｗ情報更新部２９８とを含む。データ格納部２９２は、ハードディスク部２１１（図２）の任意の領域として提供され、送受信部２９０は、通信インターフェイス２０７（図２）および関連するドライバソフトの共同によって提供され、その他の各部は、代表的に、ＣＰＵ２０１（図２）がプログラムをメモリ部２１３（図２）に展開し、各コマンドを実行することで提供される。なお、これらの機能の全部もしくは一部をハードウェアによって実現してもよい。
【０１３０】
データ格納部２９２は、それぞれの情報処理装置ＰＣから取得した複数のＶｉｅｗ情報２６２ｄと、共同ユーザ情報２６２ｆとを含む。
【０１３１】
共同ユーザ管理部２９４は、いずれかの情報処理装置ＰＣから送信される共同ユーザ設定に従って、データ格納部２９２に格納される共同ユーザ情報２６２ｆの内容を更新する。この共同ユーザ情報２６２ｆには、後述するように、共同ユーザとして設定された各ユーザ名が記述されている。すなわち、共同ユーザ情報２６２ｆは、ワークスペース上で共同作業を行なうユーザのグループの設定を保持する。
【０１３２】
Ｖｉｅｗ情報更新部２９８は、それぞれの情報処理装置ＰＣから送信されるＶｉｅｗ範囲の位置情報に従って、データ格納部２９２に格納されるそれぞれの情報処理装置ＰＣに対応付けたＶｉｅｗ情報２６２ｄの内容を更新する。このＶｉｅｗ情報２６２ｄの内容は、対応する情報処理装置ＰＣのデータ格納部２６２に格納されるＶｉｅｗ情報２６２ｄの内容と実質的に同一である。
【０１３３】
重複Ｖｉｅｗ情報生成部２９６は、データ格納部２９２に格納されている、それぞれの情報処理装置ＰＣのＶｉｅｗ情報２６２ｄおよび共同ユーザ情報２６２ｆに基づいて、重複Ｖｉｅｗ範囲の位置情報を特定する。そして、重複Ｖｉｅｗ情報生成部２９６は、この算出した重複Ｖｉｅｗ範囲の位置情報を、すべての、あるいは送信要求のあった情報処理装置ＰＣへ送信する。
【０１３４】
送受信部２６６は、情報処理装置ＰＣとの間のデータ通信を制御する。具体的には、送受信部２６６は、重複Ｖｉｅｗ情報生成部２９６からの要求に応じて必要なメッセージを送信したり、いずれかの情報処理装置ＰＣから受信したデータを共同ユーザ管理部２９４やＶｉｅｗ情報更新部２９８へ与えたりする。
【０１３５】
なお、サーバ装置ＳＲＶは、図示しないユーザ認証を行なうための公知の制御構造をも含む。
【０１３６】
（データ構造）
図２５は、この発明の実施の形態３に従う共同ユーザ情報２６２ｆの内容の一例を示す図である。図２５を参照して、共同ユーザ情報２６２ｆは、共同作業を行なうユーザとしての設定、すなわち共同ユーザ設定の内容を特定する共同ユーザ情報４３１を含む。この共同ユーザ情報４３１の内容は、いずれかの情報処理装置ＰＣにおいて、ユーザが図２０に示すダイアログ上で設定を変更するたびに、共同ユーザ管理部２９４によってその値が更新される。
【０１３７】
（重複Ｖｉｅｗ範囲の位置情報）
図２６は、この発明の実施の形態３に従う重複Ｖｉｅｗ範囲の位置情報を特定する処理を説明するための図である。なお、図２６には、説明を簡素化するために、図２１に示すように、ユーザＡおよびユーザＢが共同作業を行なうユーザとして設定されている場合について例示する。また、この重複Ｖｉｅｗ範囲の位置情報は、重複Ｖｉｅｗ情報生成部２９６（図２４）によって生成される。
【０１３８】
図２６を参照して、重複Ｖｉｅｗ情報生成部２９６は、データ格納部２９２に格納される情報処理装置ＰＣ１（ユーザＡ）および情報処理装置ＰＣ２（ユーザＢ）についてのＶｉｅｗ情報２６２ｄの内容を取得する。図２６に示す例では、ユーザＡが設定しているＶｉｅｗ範囲の各頂点の座標が（１２５，２３０），（９２５，２３０），（１２５，８３０），（９２５，８３０）であり、ユーザＢが設定しているＶｉｅｗ範囲の各頂点の座標が（５２０，２６），（１３３５，２６），（５２０，５２８），（１３３５，５２８）であるとする。
【０１３９】
重複Ｖｉｅｗ情報生成部２９６は、それぞれのＶｉｅｗ範囲の共通部分（ＡＮＤ）を算出して、重複Ｖｉｅｗ範囲の各頂点の座標を算出する。図２６に示す例においては、重複Ｖｉｅｗ範囲の各頂点の座標は、（５２０，２３０），（９２５，２３０），（５２０，５２８），（９２５，５２８）として算出される。この算出された座標（位置情報）が、重複Ｖｉｅｗ情報２６２ｇとして出力される。さらに、この重複Ｖｉｅｗ情報２６２ｇは、サーバ装置ＳＲＶからそれぞれの情報処理装置ＰＣへ送信される。
【０１４０】
（シーケンス）
図２７に示すシーケンス図を参照して、上述のような重複Ｖｉｅｗ情報を算出するために、各情報処理装置ＰＣとサーバ装置ＳＲＶとの間で実行される処理について説明する。
【０１４１】
図２７を参照して、情報処理装置ＰＣ１を使用中のユーザＡがＶｉｅｗ範囲の位置を変更する操作をすると（シーケンスＳＱ１２）、情報処理装置ＰＣ１は、変更後のＶｉｅｗ範囲の位置情報をサーバ装置ＳＲＶへ送信する（シーケンスＳＱ１４）。この送信されたＶｉｅｗ情報に応答して、サーバ装置ＳＲＶは、自装置のデータ格納部２９２に保持されている、情報処理装置ＰＣ１に対応付けられたＶｉｅｗ情報２６２ｄの内容を更新する（シーケンスＳＱ１６）。
【０１４２】
同様に、情報処理装置ＰＣ２を使用中のユーザＢがＶｉｅｗ範囲の位置を変更する操作をすると（シーケンスＳＱ２２）、情報処理装置ＰＣ２は、変更後のＶｉｅｗ範囲の位置情報をサーバ装置ＳＲＶへ送信する（シーケンスＳＱ２４）。この送信されたＶｉｅｗ情報に応答して、サーバ装置ＳＲＶは、自装置のデータ格納部２９２に保持されている、情報処理装置ＰＣ２に対応付けられたＶｉｅｗ情報２６２ｄの内容を更新する（シーケンスＳＱ２６）。
【０１４３】
このような処理によって、Ｖｉｅｗ情報２６２ｄの内容は随時更新される。
たとえば、情報処理装置ＰＣ１を使用中のユーザＡが、共同ユーザ設定を行なうためのダイアログ（図２０）において、共同ユーザ設定操作を行なうと（シーケンスＳＱ３２）、情報処理装置ＰＣ１は、当該設定された共同ユーザ情報をサーバ装置ＳＲＶへ送信する（シーケンスＳＱ３４）。この送信された共同ユーザ情報に応答して、サーバ装置ＳＲＶは、自装置のデータ格納部２９２に保持されている、共同ユーザ情報２６２ｆの内容を更新する（シーケンスＳＱ３６）。図示していないが、情報処理装置ＰＣ２を使用中のユーザＢが、共同ユーザ設定操作を行なった場合にも、同様の処理が実行される。
【０１４４】
さらに、情報処理装置ＰＣ１を使用中のユーザＡが、ツールボックス３０４のＵｎｄｏボタンを選択して、Ｕｎｄｏ操作を行なうと（シーケンスＳＱ４２）、情報処理装置ＰＣ１は、重複Ｖｉｅｗ情報要求をサーバ装置ＳＲＶへ送信する（シーケンスＳＱ４４）。この送信された重複Ｖｉｅｗ情報要求に応答して、サーバ装置ＳＲＶは、データ格納部２９２に格納されている共同ユーザ情報２６２ｆの内容を参照して、ユーザＡが属する共同ユーザ情報を特定する。そして、サーバ装置ＳＲＶは、特定した共同ユーザ情報に含まれるすべてのユーザについてのＶｉｅｗ範囲の位置情報を、Ｖｉｅｗ情報２６２ｄを参照して取得する。さらに、サーバ装置ＳＲＶは、取得したＶｉｅｗ範囲の共通部分を算出して、重複Ｖｉｅｗ範囲の位置情報を生成する（シーケンスＳＱ３６）。その後、サーバ装置ＳＲＶは、この生成した重複Ｖｉｅｗ範囲の位置情報を要求元の情報処理装置ＰＣ１へ送信する（シーケンスＳＱ４８）。
【０１４５】
情報処理装置ＰＣ１は、この重複Ｖｉｅｗ範囲の位置情報に基づいて、Ｕｎｄｏ処理を実行する（シーケンスＳＱ５０）。
【０１４６】
また、図示していないが、情報処理装置ＰＣ２を使用中のユーザＢが、Ｕｎｄｏ操作を行なった場合にも、同様の処理が実行される。
【０１４７】
（Ｕｎｄｏ処理の処理手順）
図２８は、この発明の実施の形態３に従うＵｎｄｏ処理の処理手順を示すフローチャートである。図２８に示す処理手順は、図１２に示す実施の形態１に従うＵｎｄｏ処理の処理手順を示すフローチャートにおいて、ステップＳ１０２に代えてステップＳ１０２ＡおよびＳ１０２Ｂを実行するようにしたものである。
【０１４８】
また、図２８に示す処理手順は、代表的に、情報処理装置ＰＣのＣＰＵ２０１がプログラムを実行することで提供される。ここで、情報処理装置ＰＣでは、ワークスペースのうち各ユーザにより指定されたＶｉｅｗ範囲内のオブジェクトがモニター２０５に逐次描画されているものとする。また、情報処理装置ＰＣでは、ワークスペースにおいて各ユーザによってなされた何らかのオブジェクトに対する操作がなされると、その内容がデータ格納部２６２の履歴情報２６２ｃに順次格納される。
【０１４９】
図２８を参照して、Ｕｎｄｏボタンが選択された場合（ステップＳ１００においてＹＥＳの場合）には、情報処理装置ＰＣのＣＰＵ２０１は、サーバ装置ＳＲＶに対して、重複Ｖｉｅｗ情報要求を送信する（ステップＳ１０２Ａ）。その後、情報処理装置ＰＣのＣＰＵ２０１は、サーバ装置ＳＲＶから重複Ｖｉｅｗ情報を受信したか否かを判断する（ステップＳ１０２Ｂ）。サーバ装置ＳＲＶから重複Ｖｉｅｗ情報が受信されなければ（ステップＳ１０２ＢにおいてＮＯ）、受信されるまで待機する。
【０１５０】
サーバ装置ＳＲＶから重複Ｖｉｅｗ情報が受信されると（ステップＳ１０２ＢにおいてＹＥＳ）、情報処理装置ＰＣのＣＰＵ２０１は、データ格納部２６２に格納されているすべての履歴情報２６２ｃ（ハードディスク部２１１）を参照し、それぞれの履歴情報２６２ｃに含まれる動作場所情報４１３（図１０）の値に基づいて、受信した重複Ｖｉｅｗ範囲に含まれるＵｎｄｏ候補操作を抽出する（ステップＳ１０４）。すなわち、情報処理装置ＰＣのＣＰＵ２０１は、その位置情報である動作場所情報４１３の値がステップＳ１０２Ｂにおいて取得した重複Ｖｉｅｗ範囲に含まれる履歴情報２６２ｃをＵｎｄｏ候補操作として抽出する。
【０１５１】
その他の処理については、図１２に示すフローチャートと同様であるので、詳細な説明は繰返さない。
【０１５２】
なお、上述の説明では、一種類の共同作業を行なうユーザが設定される構成について例示したが、複数の共同作業の別に参加するユーザを定めるようにしてもよい。すなわち、ワークスペース上で共同作業を行なうユーザのグループの設定を複数受付けるようにしてもよい。この場合には、図２０に示す共同ユーザ設定を行なうためのダイアログにおいて、それぞれのグループを特定するための識別情報を設定するようにしてもよく、さらに、これらの識別情報とともに、共同ユーザ情報を格納してもよい。
【０１５３】
（実施の形態３における作用・効果）
本実施の形態によれば、上述の実施の形態１における作用・効果に加えて、Ｕｎｄｏ候補操作として抽出する対象をより絞り込むことができる。すなわち、本実施の形態によれば、共同作業を行なっているそれぞれのメンバーが共通に視認している範囲に含まれるオブジェクトに係る操作を、Ｕｎｄｏ候補操作として抽出できるので、Ｕｎｄｏ処理の対象とすべきオブジェクトをより効率的に特定することができる。
【０１５４】
したがって、各ユーザは、簡単な操作によって、Ｕｎｄｏ処理の対象とするオブジェクトを効率的に特定して、処理を実行できることになり、共同作業全体としての効率をより高めることができる。同時に、共同作業を行なっているユーザのうち一部のユーザが関知しないところで、Ｕｎｄｏ処理が実行されるといった事態も回避できる。
【０１５５】
［実施の形態３の第１変形例］
上述の実施の形態３では、共同作業を行なうユーザ間が共通に視認している範囲内に存在するオブジェクトに係る操作をＵｎｄｏ候補操作とする構成について例示したが、組織的に共同作業を行なうような場合には、権限を有するユーザ（あるいは、「議長」）が視認していることを条件にＵｎｄｏ処理を実行することが好ましい場合もある。すなわち、Ｕｎｄｏ処理を実行しようとするユーザが視認する範囲内に存在し、かつ権限を有するユーザが視認する範囲内に存在するオブジェクトに係る操作のみがＵｎｄｏ処理の候補として抽出されることが好ましい場合もある。このような場合には、以下に説明する実施の形態３の第１変形例に従う構成がより適切である。
【０１５６】
なお、この発明の実施の形態３の第１変形例に従うワークスペースを提供するためのシステムおよび情報処理装置ＰＣの構成などについては、上述した実施の形態１と同様であるので、詳細な説明は繰返さない。また、情報処理装置ＰＣおよびサーバ装置ＳＲＶの制御構造については、上述したそれぞれ図２３および２４と同様であるので、詳細な説明は繰返さない。
【０１５７】
図２９は、この発明の実施の形態３の第１変形例に従うワークスペースデータ２６２ａ＃１の内容の一例を示す図である。本変形例では、ワークスペースデータ２６２ａ＃１に、Ｕｎｄｏ処理の実行を監視する権限を有するユーザが記述される。
【０１５８】
図２９に示すワークスペースデータ２６２ａ＃１は、図８に示すワークスペースデータ２６２ａにおいて、Ｕｎｄｏ処理の実行を監視する権限を有するユーザを示すＵｎｄｏ処理権限ユーザ情報４３３をさらに含む。このＵｎｄｏ処理権限ユーザ情報４３３は、所定のダイアログ画面やデフォルト設定などに応じて、ワークスペースが新規に作成されたタイミングで付加される。
【０１５９】
いずれかのユーザがＵｎｄｏ操作を行なうと、対象のワークスペースＷＳを定義するワークスペースデータ２６２ａ＃１に含まれるＵｎｄｏ処理権限ユーザ情報４３３の値が参照され、上述の図２６および図２７と同様の手順に従って、当該権限を有するユーザが視認するＶｉｅｗ範囲の位置情報が取得される。そして、Ｕｎｄｏ処理を実行しようとするユーザのＶｉｅｗ範囲と権限を有するユーザのＶｉｅｗ範囲との重複範囲内に存在する、もしくは存在したオブジェクトに係る操作がＵｎｄｏ候補操作として抽出される。このような操作手順は、上述の実施の形態３と同様であるので、これ以上の詳細な説明は繰返さない。
【０１６０】
（Ｕｎｄｏ処理の処理手順）
図３０は、この発明の実施の形態３の第１変形例に従うＵｎｄｏ処理の処理手順を示すフローチャートである。図３０に示す処理手順は、図１２に示す実施の形態１に従うＵｎｄｏ処理の処理手順を示すフローチャートにおいて、ステップＳ１０３Ａ〜Ｓ１０３Ｃをさらに実行するようにし、かつステップＳ１０４に代えてステップＳ１０４Ｂを実行するようにしたものである。
【０１６１】
また、図３０に示す処理手順は、代表的に、情報処理装置ＰＣのＣＰＵ２０１がプログラムを実行することで提供される。ここで、情報処理装置ＰＣでは、ワークスペースのうち各ユーザにより指定されたＶｉｅｗ範囲内のオブジェクトがモニター２０５に逐次描画されているものとする。また、情報処理装置ＰＣでは、ワークスペースにおいて各ユーザによってなされた何らかのオブジェクトに対する操作がなされると、その内容がデータ格納部２６２の履歴情報２６２ｃに順次格納される。
【０１６２】
図３０を参照して、Ｕｎｄｏボタンが選択された場合（ステップＳ１００においてＹＥＳの場合）には、情報処理装置ＰＣのＣＰＵ２０１は、データ格納部２６２（ハードディスク部２１１）に格納されるＶｉｅｗ情報２６２ｄを参照して、現在のＶｉｅｗ範囲の情報（各頂点の座標）を取得する（ステップＳ１０２）。続いて、情報処理装置ＰＣのＣＰＵ２０１は、データ格納部２６２（ハードディスク部２１１）に格納されるワークスペースデータ２６２ａ＃１を参照して、Ｕｎｄｏ処理権限ユーザ情報に格納されている値を取得する（ステップＳ１０３Ａ）。さらに、情報処理装置ＰＣのＣＰＵ２０１は、サーバ装置ＳＲＶに対して、ステップＳ１０３Ａにおいて取得したユーザを指定して、Ｖｉｅｗ情報の要求を送信する（ステップＳ１０３Ｂ）。その後、情報処理装置ＰＣのＣＰＵ２０１は、サーバ装置ＳＲＶから指定されたユーザのＶｉｅｗ情報を受信したか否かを判断する（ステップＳ１０３Ｃ）。サーバ装置ＳＲＶから指定されたユーザのＶｉｅｗ情報が受信されなければ（ステップＳ１０３ＣにおいてＮＯ）、受信されるまで待機する。
【０１６３】
サーバ装置ＳＲＶから指定されたユーザのＶｉｅｗ情報が受信されると（ステップＳ１０３ＣにおいてＹＥＳ）、処理はステップＳ１０４Ｂへ進む。
【０１６４】
ステップＳ１０４Ｂにおいて、情報処理装置ＰＣのＣＰＵ２０１は、データ格納部２６２に格納されているすべての履歴情報２６２ｃ（ハードディスク部２１１）を参照し、それぞれの履歴情報２６２ｃに含まれる動作場所情報４１３（図１０）の値に基づいて、Ｕｎｄｏ候補操作を抽出する（ステップＳ１０４Ｂ）。すなわち、情報処理装置ＰＣのＣＰＵ２０１は、その位置情報である動作場所情報４１３の値がステップＳ１０２において取得したＶｉｅｗ範囲に含まれ、かつステップＳ１０３Ｃにおいて受信した権限を有するユーザのＶｉｅｗ範囲に含まれる履歴情報２６２ｃをＵｎｄｏ候補操作として抽出する。
【０１６５】
その他の処理については、図１２に示すフローチャートと同様であるので、詳細な説明は繰返さない。
【０１６６】
（実施の形態３の第１変形例における作用・効果）
本変形例によれば、上述の実施の形態１における作用・効果に加えて、Ｕｎｄｏ候補操作として抽出する対象をより絞り込むことができる。すなわち、本実施の形態によれば、Ｕｎｄｏ候補操作として抽出される範囲を、共同作業についての権限を有するユーザが視認している範囲に限定することができるので、Ｕｎｄｏ処理の対象とすべきオブジェクトをより効率的に特定することができる。
【０１６７】
したがって、各ユーザは、簡単な操作によって、Ｕｎｄｏ処理の対象とするオブジェクトを効率的に特定して、処理を実行できることになり、共同作業全体としての効率をより高めることができる。同時に、共同作業の権限を有するユーザが関知しないところで、Ｕｎｄｏ処理が実行されるといった事態も回避できる。
【０１６８】
［実施の形態３の第２変形例］
上述の実施の形態３および同第１変形例では、複数の情報処理装置ＰＣとサーバ装置ＳＲＶとで構成されるシステムについて例示したが、情報処理装置ＰＣ同士がいわゆるピア・トゥ・ピア接続により、同様のシステムを構成してもよい。
【０１６９】
図３１は、この発明の実施の形態３の第２変形例に従うワークスペースを実現するための情報処理装置ＰＣ１およびＰＣ２の制御構造を示すブロック図である。
【０１７０】
図３１を参照して、例えば、情報処理装置ＰＣ１に、実施の形態３に従う情報処理装置ＰＣの制御構造（図２３）に含まれる各機能に加えて、実施の形態３に従うサーバ装置ＳＲＶ（図２４）の主要な機能を実装するとともに、情報処理装置ＰＣ２に、実施の形態３に従う情報処理装置ＰＣの制御構造（図２３）に含まれる機能のうちデータ格納部２６２などを除く機能を実装することで、サーバ装置ＳＲＶを必要としないでワークスペースを提供することができる。なお、各部の構成および動作については、上述したので、詳細な説明は繰返さない。
【０１７１】
さらに、サーバ装置ＳＲＶがデータ格納部２６２に相当する機能を、それぞれの情報処理装置ＰＣに対して共通的に提供するようにしてもよい。
【０１７２】
（実施の形態３の第２変形例における作用・効果）
本変形例によれば、上述の実施の形態１および３における作用・効果に加えて、ワークスペースをより簡素化された構成を用いて実現することができる。
【０１７３】
［実施の形態４］
上述した実施の形態１では、情報処理装置ＰＣのユーザが設定したＶｉｅｗ範囲内に存在するオブジェクトに係る操作をすべてＵｎｄｏ候補操作とする構成について例示した。一方、状況によっては、ワークスペースの特定の範囲に存在するオブジェクトに係る操作のみをＵｎｄｏ候補操作としたい場合もある。たとえば、ワークスペース上に存在する特定のオブジェクトのみが変更対象であったりする場合には、それ以外のオブジェクトに対するＵｎｄｏ処理がなされないように保護する必要がある場合も想定される。このような場合には、以下に説明する実施の形態４に従う構成がより適切である。
【０１７４】
なお、この発明の実施の形態４に従うワークスペースを提供するためのシステムおよび情報処理装置ＰＣの構成などについては、上述した実施の形態１と同様であるので、詳細な説明は繰返さない。
【０１７５】
図３２は、この発明の実施の形態４に従うＵｎｄｏ処理可能範囲を設定する画面の一例を示す図である。本実施の形態に従うワークスペースでは、Ｕｎｄｏ処理が許可される範囲（以下、「Ｕｎｄｏ処理可能範囲」とも称す。）が設定可能である。なお、このＵｎｄｏ処理可能範囲は、ワークスペースに参加するすべてのユーザに対して共通に設定されることが好ましい。なぜならば、このＵｎｄｏ処理可能範囲は、ワークスペース上に存在するオブジェクトを保護することを主目的とするからである。
【０１７６】
本実施の形態に従う情報処理装置ＰＣのモニター２０５には、ユーザ操作に応じて、もしくはワークスペースの描画開始とともに、図３２に示すＵｎｄｏ処理可能範囲を設定するためのダイアログが表示される。このダイアログには、ワークスペースの全体が描画されるとともに、Ｕｎｄｏ処理可能範囲を設定するための設定枠３２２がオーバーレイ表示される。ユーザは、キーボードやマウスなどからなる入力装置２０９を操作して、この設定枠３２２を任意の範囲に調整することで、Ｕｎｄｏ処理可能範囲が設定される。そして、このＵｎｄｏ処理可能範囲は、後述するように、ワークスペースデータに格納される。
【０１７７】
このようなＵｎｄｏ処理可能範囲が設定された状態において、いずれかのユーザがＵｎｄｏ操作を行なうと、Ｕｎｄｏ処理を実行しようとするユーザのＶｉｅｗ範囲とＵｎｄｏ処理可能範囲との重複範囲内に存在する、もしくは存在したオブジェクトに係る操作がＵｎｄｏ候補操作として抽出される。そして、上述の実施の形態１と同様に、これらのＵｎｄｏ処理の候補として抽出された操作に対して、所定の順序（典型的には、操作がなされた時系列）に従って、Ｕｎｄｏ処理が順次実行される。
【０１７８】
このように、Ｕｎｄｏ処理可能範囲外のオブジェクトについては、たとえＵｎｄｏ処理を実行しようとするユーザが視認する範囲内に存在したとしても、Ｕｎｄｏ処理の候補として抽出されない。これにより、何らの変更もすべきではないオブジェクトに対する意図しないＵｎｄｏ処理などを回避できる。
【０１７９】
この発明の実施の形態４に従う情報処理装置ＰＣの制御構造についても、データ格納部２６２に保持されるワークスペースデータの内容を除いて、上述の図７に示す制御構造と同様であるので詳細な説明は繰返さない。
【０１８０】
図３３は、この発明の実施の形態４に従うワークスペースデータ２６２ａ＃２の内容の一例を示す図である。本実施の形態では、ワークスペースデータ２６２ａ＃２に、Ｕｎｄｏ処理可能範囲の情報が記述される。
【０１８１】
図３３に示すワークスペースデータ２６２ａ＃２は、図８に示すワークスペースデータ２６２ａにおいて、Ｕｎｄｏ処理可能範囲を記述するＵｎｄｏ処理可能範囲情報４３２をさらに含む。このＵｎｄｏ処理可能範囲情報４３２は、上述の図３２に示すようなダイアログ画面上での設定やデフォルト設定などに応じて、ワークスペースが新規に作成されたタイミングで付加される。
【０１８２】
いずれかのユーザがＵｎｄｏ操作を行なうと、対象のワークスペースＷＳを定義するワークスペースデータ２６２ａ＃２に含まれるＵｎｄｏ処理可能範囲情報４３２の値が参照される。そして、Ｕｎｄｏ処理を実行しようとするユーザのＶｉｅｗ範囲とこのＵｎｄｏ処理可能範囲との重複範囲内に存在する、もしくは存在したオブジェクトに係る操作がＵｎｄｏ候補操作として抽出される。
【０１８３】
（Ｕｎｄｏ処理の処理手順）
図３４は、この発明の実施の形態４に従うＵｎｄｏ処理の処理手順を示すフローチャートである。図３４に示す処理手順は、図１２に示す実施の形態１に従うＵｎｄｏ処理の処理手順を示すフローチャートにおいて、ステップＳ１０３Ｄをさらに実行するようにし、かつステップＳ１０４に代えてステップＳ１０４Ｃを実行するようにしたものである。
【０１８４】
また、図３４に示す処理手順は、代表的に、情報処理装置ＰＣのＣＰＵ２０１がプログラムを実行することで提供される。ここで、情報処理装置ＰＣでは、ワークスペースのうち各ユーザにより指定されたＶｉｅｗ範囲内のオブジェクトがモニター２０５に逐次描画されているものとする。また、情報処理装置ＰＣでは、ワークスペースにおいて各ユーザによってなされた何らかのオブジェクトに対する操作がなされると、その内容がデータ格納部２６２の履歴情報２６２ｃに順次格納される。
【０１８５】
図３４を参照して、Ｕｎｄｏボタンが選択された場合（ステップＳ１００においてＹＥＳの場合）には、情報処理装置ＰＣのＣＰＵ２０１は、データ格納部２６２（ハードディスク部２１１）に格納されるＶｉｅｗ情報２６２ｄを参照して、現在のＶｉｅｗ範囲の情報（各頂点の座標）を取得する（ステップＳ１０２）。続いて、情報処理装置ＰＣのＣＰＵ２０１は、データ格納部２６２（ハードディスク部２１１）に格納されるワークスペースデータ２６２ａ＃１を参照して、Ｕｎｄｏ処理可能範囲情報に格納されている値を取得する（ステップＳ１０３Ｄ）。そして、処理はステップＳ１０４Ｃに進む。
【０１８６】
ステップＳ１０４Ｃにおいて、情報処理装置ＰＣのＣＰＵ２０１は、データ格納部２６２に格納されているすべての履歴情報２６２ｃ（ハードディスク部２１１）を参照し、それぞれの履歴情報２６２ｃに含まれる動作場所情報４１３（図１０）の値に基づいて、Ｕｎｄｏ候補操作を抽出する（ステップＳ１０４Ｃ）。すなわち、情報処理装置ＰＣのＣＰＵ２０１は、その位置情報である動作場所情報４１３の値がステップＳ１０２において取得したＶｉｅｗ範囲に含まれ、かつステップＳ１０３Ｄにおいて取得したＵｎｄｏ処理可能範囲に含まれる履歴情報２６２ｃをＵｎｄｏ候補操作として抽出する。
【０１８７】
その他の処理については、図１２に示すフローチャートと同様であるので、詳細な説明は繰返さない。
【０１８８】
（実施の形態４における作用・効果）
本実施の形態によれば、上述の実施の形態１における作用・効果に加えて、Ｕｎｄｏ候補操作として抽出する対象をより絞り込むことができる。すなわち、本実施の形態によれば、予め設定したＵｎｄｏ処理が許可される範囲に含まれるオブジェクトに係る操作のみを、Ｕｎｄｏ候補操作として抽出できるので、Ｕｎｄｏ処理の対象とすべきオブジェクトをより効率的に特定することができる。
【０１８９】
したがって、各ユーザは、簡単な操作によって、Ｕｎｄｏ処理の対象とするオブジェクトを効率的に特定して、処理を実行できることになり、共同作業全体としての効率をより高めることができる。同時に、予め共同作業を行なうメンバー間で合意のとれた範囲に存在するオブジェクトに係る操作に対してのみＵｎｄｏ処理が実行されるので、ワークスペース上の関係のないオブジェクトに対して、誤ってＵｎｄｏ処理が実行されるような事態を回避できる。
【０１９０】
［実施の形態５］
上述した実施の形態１〜４では、各ユーザが異なる情報処理装置ＰＣを使用して、ワークスペース上で共同作業する形態について例示した。これに対して、この発明の実施の形態５では、共通の画面（スクリーン）を複数のユーザで共有する構成について例示する。すなわち、実施の形態１〜４では、各ユーザが視認する範囲をそれぞれの情報処理装置ＰＣ上のＶｉｅｗ範囲とみなすことも可能であるが、共通の画面を複数のユーザが視認する場合には、それぞれのユーザがいずれの部分に視認しているかを別の方法で特定する必要がある。以下、このような形態に適した構成について例示する。
【０１９１】
図３５は、この発明の実施の形態５に従うワークスペースの提供形態の示す外観図である。
【０１９２】
図３５を参照して、本実施の形態に従うワークスペースは、典型的には、比較的大きな画面（スクリーン）ＳＣＮ上に表示もしくは投影される。このような画面表示されるワークスペースに対して、各ユーザが、典型的には携帯端末やワイヤレスの入力装置などを用いて、共同作業を行なう。
【０１９３】
このような形態では、各ユーザの視点に基づいて、視認している範囲を特定することができる。より具体的には、各ユーザに、赤外線照射装置が備えられたメガネやサングラスを装着してもらい、この赤外線照射装置からスクリーンＳＣＮに投影される赤外線のポインタなどの位置を、各ユーザの視点の位置として検出することができる。あるいは、特開平２００３−１１５０４３号に開示されるような、各ユーザの眼球の動きを検出し、この検出結果に基づいて、各ユーザの視点の位置を検出してもよい。
【０１９４】
図３６は、ユーザの視点に基づいて、ユーザの視認する範囲を検出する処理の一例を示す図である。
【０１９５】
図３６（ａ）に示すように、壁掛けタイプのスクリーンＳＣＮにワークスペースが表示されている場合には、上記のような処理によって検出された各ユーザの視点を中心とした所定範囲をユーザが視認する範囲として決定することができる。より具体的には、図３６（ｂ）に示すように、検出されたユーザの視点を中心とした距離Ｘの範囲の円領域ＡＲＥＡ１を当該ユーザが視認する範囲として決定する。そして、この円領域ＡＲＥＡ１に含まれるオブジェクトに係る操作がＵｎｄｏ候補操作として抽出される。なお、Ｕｎｄｏ候補操作の抽出処理については、上述した処理と同様であるので、詳細な説明は繰返さない。
【０１９６】
図３７は、スクリーンとユーザとの相対位置に基づいて、ユーザの視認する範囲を検出する処理の一例を示す図である。
【０１９７】
図３７（ａ）に示すように、壁掛けタイプのスクリーンＳＣＮにワークスペースが表示されている場合には、当該スクリーンと各ユーザとの相対位置に基づいて、各ユーザが視認する範囲として決定することができる。より具体的には、図３７（ｂ）に示すように、ユーザの目線の高さなどに基づいて決定された中心点を中心とした距離Ｙの範囲の円領域ＡＲＥＡ２を当該ユーザが視認する範囲として決定する。この距離Ｙは、スクリーンＳＣＮとユーザとの間の距離に依存して動的に変化する。そして、この円領域ＡＲＥＡ２に含まれるオブジェクトに係る操作がＵｎｄｏ候補操作として抽出される。なお、Ｕｎｄｏ候補操作の抽出処理については、上述した処理と同様であるので、詳細な説明は繰返さない。
【０１９８】
なお、ユーザのスクリーンＳＣＮに対する相対位置については、床面に設置した圧力センサなどによって検出することができる。あるいは、各ユーザに、レーザ装置が備えられたメガネやサングラスを装着してもらい、このレーザ装置によってスクリーンＳＣＮまでの距離を測定するようにしてもよい。
【０１９９】
図３８は、床面に配置されたスクリーンに表示されるワークスペースにおいて、ユーザが視認する範囲を決定する処理の一例を示す図である。
【０２００】
図３８（ａ）に示すように、床面配置のスクリーンＳＣＮにワークスペースが表示されている場合には、ユーザの立ち位置およびその向きに基づいて、各ユーザが視認する範囲を決定することができる。より具体的には、図３８（ｂ）に示すように、ユーザの立ち位置からその向き（すなわち、ユーザの目が向いている向き）に沿って所定距離だけ離れた点を中心とする所定範囲の円領域ＡＲＥＡ３を当該ユーザが視認する範囲として決定する。これは、ユーザの目線が斜め上から床面配置のスクリーンＳＣＮに向かうと考えられるからである。そして、この円領域ＡＲＥＡ３に含まれるオブジェクトに係る操作がＵｎｄｏ候補操作として抽出される。なお、Ｕｎｄｏ候補操作の抽出処理については、上述した処理と同様であるので、詳細な説明は繰返さない。
【０２０１】
なお、ユーザの立ち位置およびその向きについては、各ユーザの靴などに装着したセンサなどを用いて検出することができる。
【０２０２】
（実施の形態５における作用・効果）
本実施の形態によれば、上述の実施の形態１における作用・効果に加えて、実際のユーザが視認している範囲を視認している範囲として特定することができるので、よりユーザフレンドリなワークスペースを提供できる。
【０２０３】
［実施の形態１〜５の組み合わせ］
上述した実施の形態１〜５に従うそれぞれの構成を任意に組み合わせることも当然に実施可能である。
【０２０４】
［その他の実施の形態］
上述の実施の形態１〜５では、本発明を各種オブジェクトを任意に配置できるワークスペースに適用した場合の構成について例示したが、共同作業可能な表計算アプリケーションや文書作成アプリケーションであっても同様に適用可能である。すなわち、行列状にセルが配置された表計算アプリケーションでは、各セルを上述した１つのオブジェクトに相当するものと見なすことで、上記と同様の処理が可能である。また、文書作成アプリケーションでは、単語、文、段落、節などの各構成単位を上述した１つのオブジェクトに相当するものと見なすことで、上記と同様の処理が可能である。
【０２０５】
また、本発明に係るプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明に係るプログラムに含まれ得る。
【０２０６】
さらに、本発明に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明に係るプログラムに含まれ得る。
【０２０７】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記憶媒体とを含む。
【０２０８】
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
【０２０９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０２１０】
【図１】この発明の実施の形態１に従うワークスペースを提供するためのシステムの概略構成図である。
【図２】この発明の実施の形態１に従う情報処理装置の代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
【図３】この発明の実施の形態１に従うワークスペースの一例を模式的に示した図である。
【図４】この発明の実施の形態１に従うワークスペースを提供するためのデータ構造を示す模式図である。
【図５】この発明の実施の形態１に従うワークスペースの使用状態の一例を示す図である。
【図６】図５に示す使用状態におけるＵｎｄｏ処理の実行例を示す図である。
【図７】この発明の実施の形態１に従う情報処理装置の制御構造を示すブロック図である。
【図８】この発明の実施の形態１に従うワークスペースデータの内容の一例を示す図である。
【図９】この発明の実施の形態１に従うオブジェクトデータの内容の一例を示す図である。
【図１０】この発明の実施の形態１に従う履歴情報の内容の一例を示す図である。
【図１１】この発明の実施の形態１に従うＶｉｅｗ情報の内容の一例を示す図である。
【図１２】この発明の実施の形態１に従うＵｎｄｏ処理の処理手順を示すフローチャートである。
【図１３】この発明の実施の形態１に従う履歴情報の一例を示す図である。
【図１４】図１３に示す履歴情報から抽出されたＵｎｄｏ候補操作およびそれらの並び替え後の一例を示す図である。
【図１５】この発明の実施の形態２に従うＶｉｅｗフィルタリング設定を行なうためのダイアログの一例を示す図である。
【図１６】この発明の実施の形態２に従うワークスペースの使用状態におけるＵｎｄｏ処理の実行例を示す図である。
【図１７】この発明の実施の形態２に従うＶｉｅｗ情報の内容の一例を示す図である。
【図１８】この発明の実施の形態２に従うＵｎｄｏ処理の処理手順を示すフローチャートである。
【図１９】この発明の実施の形態２において、図１３に示す履歴情報から抽出されるＵｎｄｏ候補操作およびそれらの並び替え後の一例を示す図である。
【図２０】この発明の実施の形態３に従う共同ユーザ設定を行なうためのダイアログの一例を示す図である。
【図２１】この発明の実施の形態３に従うワークスペースの使用状態におけるＵｎｄｏ処理の実行例を示す図である。
【図２２】図２０に示す共同ユーザ設定を行なうためのダイアログに対する設定が有効化されている場合の情報処理装置のモニターでの表示例を示す図である。
【図２３】この発明の実施の形態３に従う情報処理装置の制御構造を示すブロック図である。
【図２４】この発明の実施の形態３に従うサーバ装置の制御構造を示すブロック図である。
【図２５】この発明の実施の形態３に従う共同ユーザ情報の内容の一例を示す図である。
【図２６】この発明の実施の形態３に従う重複Ｖｉｅｗ範囲の位置情報を特定する処理を説明するための図である。
【図２７】この発明の実施の形態３に従う重複Ｖｉｅｗ情報を算出するための情報処理装置とサーバ装置との間で実行される処理を示すシーケンス図である。
【図２８】この発明の実施の形態３に従うＵｎｄｏ処理の処理手順を示すフローチャートである。
【図２９】この発明の実施の形態３の第１変形例に従うワークスペースデータの内容の一例を示す図である。
【図３０】この発明の実施の形態３の第１変形例に従うＵｎｄｏ処理の処理手順を示すフローチャートである。
【図３１】この発明の実施の形態３の第２変形例に従うワークスペースを実現するための情報処理装置の制御構造を示すブロック図である。
【図３２】この発明の実施の形態４に従うＵｎｄｏ処理可能範囲を設定する画面の一例を示す図である。
【図３３】この発明の実施の形態４に従うワークスペースデータの内容の一例を示す図である。
【図３４】この発明の実施の形態４に従うＵｎｄｏ処理の処理手順を示すフローチャートである。
【図３５】この発明の実施の形態５に従うワークスペースの提供形態の示す外観図である。
【図３６】ユーザの視点に基づいて、ユーザの視認する範囲を検出する処理の一例を示す図である。
【図３７】スクリーンとユーザとの相対位置に基づいて、ユーザの視認する範囲を検出する処理の一例を示す図である。
【図３８】床面に配置されたスクリーンに表示されるワークスペースにおいて、ユーザが視認する範囲を決定する処理の一例を示す図である。
【符号の説明】
【０２１１】
２０１  ＣＰＵ、２０３  内部バス、２０５  モニター、２０７  通信インターフェイス、２０９  入力装置、２１１  ハードディスク部（ＨＤＤ）、２１３  メモリ部、２１５  ＣＤ−ＲＯＭドライブ、２１５ａ  ＣＤ−ＲＯＭ、２１７  ＦＤＤドライブ、２１７ａ  フレキシブルディスク、２５２  データ操作部、２５４  Ｖｉｅｗ管理部、２５６  描画部、２５８  Ｕｎｄｏ処理用インターフェイス、２６０  オブジェクト抽出部、２６２，２９６  データ格納部、２６４  同期処理部、２６６，２９０  送受信部、２６８  Ｖｉｅｗ情報交換部、２７０  ユーザ認証部、２９４  共同ユーザ管理部、２９６  重複Ｖｉｅｗ情報生成部、２９８  Ｖｉｅｗ情報更新部、ＮＷ  ネットワーク、ＰＣ，ＰＣ１〜ＰＣ３  情報処理装置、ＳＣＮ  スクリーン、ＳＲＶ  サーバ装置。
【図１】
2010113539.tif 000003
【図２】
2010113539.tif 000004
【図３】
2010113539.tif 000005
【図４】
2010113539.tif 000006
【図５】
2010113539.tif 000007
【図６】
2010113539.tif 000008
【図７】
2010113539.tif 000009
【図８】
2010113539.tif 000010
【図９】
2010113539.tif 000011
【図１０】
2010113539.tif 000012
【図１１】
2010113539.tif 000013
【図１２】
2010113539.tif 000014
【図１３】
2010113539.tif 000015
【図１４】
2010113539.tif 000016
【図１５】
2010113539.tif 000017
【図１６】
2010113539.tif 000018
【図１７】
2010113539.tif 000019
【図１８】
2010113539.tif 000020
【図１９】
2010113539.tif 000021
【図２０】
2010113539.tif 000022
【図２１】
2010113539.tif 000023
【図２２】
2010113539.tif 000024
【図２３】
2010113539.tif 000025
【図２４】
2010113539.tif 000026
【図２５】
2010113539.tif 000027
【図２６】
2010113539.tif 000028
【図２７】
2010113539.tif 000029
【図２８】
2010113539.tif 000030
【図２９】
2010113539.tif 000031
【図３０】
2010113539.tif 000032
【図３１】
2010113539.tif 000033
【図３２】
2010113539.tif 000034
【図３３】
2010113539.tif 000035
【図３４】
2010113539.tif 000036
【図３５】
2010113539.tif 000037
【図３６】
2010113539.tif 000038
【図３７】
2010113539.tif 000039
【図３８】
2010113539.tif 000040