(57)【要約】  複数のユーザによる同時アクセス可能な仮想空間において、何らかの操作が取り消される場合には、当該取消対象となった操作を行ったユーザが認識していることを確認することで、効率的な共同作業が可能な情報処理方法および情報処理装置を提供する。対象のオブジェクト（ＯＢＪ１）が情報処理装置（ＰＣ２）のＶｉｅｗ範囲（ＶＡ２）に含まれている場合には、オブジェクト（ＯＢＪ１）についての操作に対する操作取消が実行される。対象のオブジェクト（ＯＢＪ１）が情報処理装置（ＰＣ２）のＶｉｅｗ範囲（ＶＡ２）に含まれていない場合には、オブジェクト（ＯＢＪ１）についての操作に対する操作取消は実行されない。
2009154045.tif 000002
【特許請求の範囲】
【請求項１】
記憶部（２１１；２６２）と、各々が入力部（２０９）および表示部（２０５）を含む複数の情報処理装置（ＰＣ）とを用いて、複数のユーザによる同時アクセス可能な仮想空間を提供する情報処理方法であって、
前記情報処理装置が、前記仮想空間のオブジェクトを前記表示部に描画するステップ（２５６）と、
前記情報処理装置が、前記入力部によって前記仮想空間においてユーザによってなされたオブジェクトに対する操作の履歴情報（２６２ｃ）を前記記憶部に格納するステップ（２５２）とを備え、前記履歴情報は、オブジェクトに対する操作を行ったユーザの情報を含み、
前記情報処理装置が、ユーザによる操作取消の指示を受けて、前記記憶部の前記履歴情報に基づいて、操作取消候補となる操作および当該操作取消候補の対象となるオブジェクトを特定するステップ（Ｓ１０２，Ｓ１０４，Ｓ１０６，Ｓ１０８）と、
前記情報処理装置が、前記操作取消候補のオブジェクトが当該操作取消候補の操作を行ったユーザによって視認されているとみなされる場合に、当該操作取消候補についての操作取消を実行するステップ（Ｓ１１０，Ｓ１１２，Ｓ１１４，Ｓ１１６）とを備える、情報処理方法。
【請求項２】
前記履歴情報は、オブジェクトの位置情報をさらに含む、請求の範囲第１項に記載の情報処理方法。
【請求項３】
前記描画するステップは、前記仮想空間のうちユーザにより指定された第１視野範囲内にあるオブジェクトを描画するステップを含み、
前記特定するステップは、操作取消候補の対象となるオブジェクトとしてその位置が前記第１視野範囲に含まれるものを操作取消候補として抽出するステップ（Ｓ１０４）を含む、請求の範囲第２項に記載の情報処理方法。
【請求項４】
前記操作取消を実行するステップは、
前記操作取消候補の操作を行ったユーザにより指定されている第２視野範囲を取得するステップ（Ｓ１１０）と、
前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内であるか否かを判断するステップ（Ｓ１１４）と、
前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内である場合には、前記操作取消を実行し、前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内ではない場合には、前記操作取消を実行しないステップ（Ｓ１１４，Ｓ１１６）とを含む、請求の範囲第２項に記載の情報処理方法。
【請求項５】
前記操作取消を実行するステップは、
前記操作取消候補の操作を行ったユーザにより指定されている第２視野範囲を取得するステップ（Ｓ１１０）と、
前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内であるか否かを判断するステップ（Ｓ１１４）と、
前記第２視野範囲を描画する表示窓が選択状態であるか否かを判断するステップ（Ｓ１１５Ａ）と、
前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内であり、かつ前記第２視野範囲を描画する表示窓が選択状態である場合には、前記操作取消を実行し、それ以外の場合には、前記操作取消を実行しないステップ（Ｓ１１４，Ｓ１１５Ａ，Ｓ１１６）とを含む、請求の範囲第２項に記載の情報処理方法。
【請求項６】
前記操作取消を実行するステップは、
前記操作取消候補の操作を行ったユーザにより指定されている第２視野範囲を取得するステップ（Ｓ１１０）と、
前記操作取消候補の対象となるオブジェクトの位置が当該操作取消候補の操作の実行から継続して前記第２視野範囲内であったか否かを判断するステップ（Ｓ１１４Ａ）と、
前記操作取消候補の対象となるオブジェクトの位置が継続して前記第２視野範囲内であった場合には、前記操作取消を実行し、前記操作取消候補の対象となるオブジェクトの位置が継続しては前記第２視野範囲内になかった場合には、前記操作取消を実行しないステップ（Ｓ１１４Ａ，Ｓ１１６）とを含む、請求の範囲第２項に記載の情報処理方法。
【請求項７】
前記操作取消を実行するステップは、
前記操作取消候補の操作を行ったユーザにより指定されている第２視野範囲を取得するステップ（Ｓ１１０）と、
前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内に含まれるか否かを判断するステップ（Ｓ１１４）と、
前記操作取消候補の操作を行ったユーザによって前記操作取消候補のオブジェクトが選択されているか否かを判断する（Ｓ１１５Ｂ）ステップと、
前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内であり、かつ前記操作取消候補のオブジェクトが選択されていない場合には、前記操作取消を実行し、それ以外の場合には、前記操作取消を実行しないステップ（Ｓ１１４，Ｓ１１５Ｂ，Ｓ１１６）とを含む、請求の範囲第２項に記載の情報処理方法。
【請求項８】
前記情報処理装置が、ユーザによる指示を受けて、当該ユーザによってなされた操作についての操作取消の実行の委任状態を設定するステップをさらに備え、
前記操作取消を実行するステップは、
前記操作取消候補の操作を行ったユーザにより指定されている第２視野範囲を取得するステップ（Ｓ１１０）と、
前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内であるか否かを判断するステップ（Ｓ１１４）と、
前記操作取消候補のオブジェクトについて委任状態に設定されているか否かを判断するステップ（Ｓ１１１Ａ，Ｓ１１１Ｂ）と、
前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内である、および前記操作取消候補のオブジェクトについて委任状態に設定されている、のいずれかの場合には、前記操作取消を実行し、それ以外の場合には、前記操作取消を実行しないステップ（Ｓ１１１Ｂ，Ｓ１１４，Ｓ１１６）とを含む、請求の範囲第２項に記載の情報処理方法。
【請求項９】
前記情報処理装置が、ユーザによる操作取消の再指示を受けて、前記記憶部からその位置情報が前記第１視野範囲内に含まれる次に新しい履歴情報を操作取消の次候補として抽出するステップ（Ｓ１１０，Ｓ１２２）と、
前記情報処理装置が、前記操作取消の次候補のオブジェクトが当該前記操作取消の次候補の操作を行ったユーザによって視認されているとみなされる場合に、当該前記操作取消の次候補についての操作取消を実行するステップ（Ｓ１１２，Ｓ１１４，Ｓ１１６）とをさらに備える、請求の範囲第３項に記載の情報処理方法。
【請求項１０】
他の情報処理装置（ＰＣ）および記憶部（２１１；２６２）とデータ通信可能に構成され、複数のユーザによる同時アクセス可能な仮想空間を提供する情報処理装置であって、
入力部（２０９）と、
表示部（２０５）と、
前記仮想空間のオブジェクトを前記表示部に描画するための描画部（２５６）と、
前記入力部によって前記仮想空間においてユーザによってなされたオブジェクトに対する操作の履歴情報（２６２ｃ）を前記記憶部に格納するための管理部（２５２）とを備え、前記履歴情報は、オブジェクトに対する操作を行ったユーザの情報を含み、
ユーザによる操作取消の指示を受けて、前記記憶部の前記履歴情報に基づいて、操作取消候補となる操作および当該操作取消候補の対象となるオブジェクトを抽出するための抽出部（２６０）と、
前記操作取消候補のオブジェクトが当該操作取消候補の操作を行ったユーザによって視認されているとみなされる場合に、当該操作取消候補についての操作取消を実行するための実行部（２５８）とを備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のユーザが共同作業を行うことが可能なワークスペースを提供する情報処理方法、情報処理装置およびそのプログラムに関する。
【背景技術】
【０００２】
複数のユーザによる共同作業を効率化するためにワークスペースと呼ばれるアプリケーションが提供されている。このワークスペースは、複数のユーザが同時にアクセス可能な仮想空間であり、ネットワーク接続などの互いにデータ通信可能に構成された複数の情報処理装置の間でデータが共有されることで実現される。一般的に、このようなワークスペースでは、テキスト、線、画像といったオブジェクトの単位でデータが共有される。【０００３】
ところで、情報処理装置で実行される多くのアプリケーションでは、一旦行った操作を元の状態に戻す（取り消す）機能、いわゆる「Ｕｎｄｏ機能」が実装されている。この機能によれば、試行錯誤しながら作業を進めていく上で、作業をより効率化できる。【０００４】
上述のようなワークスペースにおいてもＵｎｄｏ機能が実装される。たとえば、特開平１１−２８８４２８号公報（特許文献１）には、複数の設計者がチーム形式で行う設計作業において各設計者が行う各操作の内容を履歴情報として共通の履歴情報記憶手段に順次記録するとともに、履歴情報の履歴情報記憶手段への記録順に基づいて直前の操作を取り消すためのアンドゥ機能を提供するＣＡＤシステムが開示されている。このＣＡＤシステムでは、設計者がアンドゥ機能を実行したときに当該設計者が行った直前の操作を取り消すことができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−２８８４２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ワークスペースでは、複数のユーザがリアルタイムに共同作業を行っているので、あるユーザが何らかのオブジェクトに対して行った変更などの操作を別のユーザが取り消したい場合も存在する。そのため、各操作を行ったユーザのみが、当該操作を取り消すことができるような構成では、効率的な作業を実現できない。【０００７】
一方で、当該オブジェクトの操作を行ったユーザのあずかり知らないところで、別のユーザによって操作が取り消されると、当該操作を行ったユーザおよび取り消し操作を行ったユーザの間で意思疎通ができず、結果としてスムーズな共同作業を妨げるおそれもある。【０００８】
また、上述の特開平１１−２８８４２８号公報（特許文献１）に開示されたＣＡＤシステムでは、単に設計者単位で操作の取り消しができる機能を提供するのみであり、上述のような相反する両課題を解決するものではなかった。【０００９】
そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、複数のユーザによる同時アクセス可能な仮想空間において、何らかの操作が取り消される場合には、当該取消対象となった操作を行ったユーザが認識していることを確認することで、効率的な共同作業が可能な情報処理方法および情報処理装置を提供することである。
【課題を解決するための手段】
【００１０】
この発明のある局面に従う情報処理方法は、記憶部と、各々が入力部および表示部を含む複数の情報処理装置とを用いて、複数のユーザによる同時アクセス可能な仮想空間を提供する。情報処理方法は、情報処理装置が以下のステップを実行する。仮想空間のオブジェクトを表示部に描画するステップと、入力部によって仮想空間においてユーザによってなされたオブジェクトに対する操作の履歴情報を記憶部に格納するステップと、ユーザによる操作取消の指示を受けて、記憶部の履歴情報に基づいて、操作取消候補となる操作および当該操作取消候補の対象となるオブジェクトを特定するステップと、操作取消候補のオブジェクトが当該操作取消候補の操作を行ったユーザによって視認されているとみなされる場合に、当該操作取消候補についての操作取消を実行するステップとを含む。ここで、履歴情報は、オブジェクトに対する操作を行ったユーザの情報を含む。【００１１】
好ましくは、履歴情報は、オブジェクトの位置情報をさらに含む。
さらに好ましくは、描画するステップは、仮想空間のうちユーザにより指定された第１視野範囲内にあるオブジェクトを描画するステップを含み、特定するステップは、操作取消候補の対象となるオブジェクトとしてその位置が第１視野範囲に含まれるものを操作取消候補として抽出するステップを含む。【００１２】
好ましくは、操作取消を実行するステップは、操作取消候補の操作を行ったユーザにより指定されている第２視野範囲を取得するステップと、操作取消候補の対象となるオブジェクトの位置が第２視野範囲内であるか否かを判断するステップと、操作取消候補の対象となるオブジェクトの位置が第２視野範囲内である場合には、操作取消を実行し、操作取消候補の対象となるオブジェクトの位置が第２視野範囲内ではない場合には、操作取消を実行しないステップとを含む。【００１３】
また好ましくは、操作取消を実行するステップは、操作取消候補の操作を行ったユーザにより指定されている第２視野範囲を取得するステップと、操作取消候補の対象となるオブジェクトの位置が第２視野範囲内であるか否かを判断するステップと、第２視野範囲を描画する表示窓が選択状態であるか否かを判断するステップと、操作取消候補の対象となるオブジェクトのがなされた位置が第２視野範囲内であり、かつ第２視野範囲を描画する表示窓が選択状態である場合には、操作取消を実行し、それ以外の場合には、操作取消を実行しないステップとを含む。【００１４】
また好ましくは、操作取消を実行するステップは、操作取消候補の操作を行ったユーザにより指定されている第２視野範囲を取得するステップと、操作取消候補の対象となるオブジェクトの位置が当該操作取消候補の操作の実行から継続して第２視野範囲内であったか否かを判断するステップと、操作取消候補の対象となるオブジェクトの位置が継続して第２視野範囲内であった場合には、操作取消を実行し、操作取消候補の対象となるオブジェクトの位置が継続しては第２視野範囲内になかった場合には、操作取消を実行しないステップとを含む。【００１５】
また好ましくは、操作取消を実行するステップは、操作取消候補の操作を行ったユーザにより指定されている第２視野範囲を取得するステップと、操作取消候補の対象となるオブジェクトの位置が第２視野範囲内に含まれるか否かを判断するステップと、操作取消候補の操作を行ったユーザによって操作取消候補のオブジェクトが選択されているか否かを判断するステップと、操作取消候補の対象となるオブジェクトの位置が第２視野範囲内であり、かつ操作取消候補のオブジェクトが選択されていない場合には、操作取消を実行し、それ以外の場合には、操作取消を実行しないステップとを含む。【００１６】
また好ましくは、情報処理方法は、情報処理装置が、ユーザによる指示を受けて、当該ユーザによってなされた操作についての操作取消の実行の委任状態を設定するステップをさらに含み。操作取消を実行するステップは、操作取消候補の操作を行ったユーザにより指定されている第２視野範囲を取得するステップと、操作取消候補の対象となるオブジェクトの位置が第２視野範囲内であるか否かを判断するステップと、操作取消候補の対象となるオブジェクトの位置が第２視野範囲内である、および操作取消候補のオブジェクトについて委任状態に設定されている、のいずれかの場合には、操作取消を実行し、それ以外の場合には、操作取消を実行しないステップとを含む。【００１７】
好ましくは、情報処理方法は、ユーザによる操作取消の再指示を受けて、記憶部からその位置情報が第１視野範囲内に含まれる次に新しい履歴情報を操作取消の次候補として抽出するステップと、操作取消の次候補のオブジェクトが当該操作取消の次候補の操作を行ったユーザによって視認されているとみなされる場合に、当該操作取消の次候補についての操作取消を実行するステップとをさらに含む。【００１８】
この発明の別の局面に従う情報処理装置は、他の情報処理装置および記憶部とデータ通信可能に構成され、複数のユーザによる同時アクセス可能な仮想空間を提供する。情報処理装置は、入力部と、表示部と、仮想空間のオブジェクトを表示部に描画するための描画部と、入力部によって仮想空間においてユーザによってなされたオブジェクトに対する操作の履歴情報を記憶部に格納するための管理部と、ユーザによる操作取消の指示を受けて、記憶部の履歴情報に基づいて、操作取消候補となる操作および当該操作取消候補の対象となるオブジェクトを抽出するための抽出部と、操作取消候補のオブジェクトが当該操作取消候補の操作を行ったユーザによって視認されているとみなされる場合に、当該操作取消候補についての操作取消を実行するための実行部とを含む。ここで、履歴情報は、オブジェクトに対する操作を行ったユーザの情報を含む。
【発明の効果】
【００１９】
この発明によれば、複数のユーザによる同時アクセス可能な仮想空間において、何らかの操作が取り消される場合には、当該取消対象となった操作を行ったユーザが認識していることを確認することで、効率的な共同作業を実現する。
【図面の簡単な説明】
【００２０】
【図１】この発明の実施の形態１に従うワークスペースを提供するためのシステムの概略構成図である。
【図２】この発明の実施の形態１に従う情報処理装置の代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
【図３】この発明の実施の形態１に従うワークスペースの一例を模式的に示した図である。
【図４】この発明の実施の形態１に従うワークスペースを提供するためのデータ構造を示す模式図である。
【図５】この発明の実施の形態１に従うワークスペースの使用状態の一例を示す図である。
【図６】図５に示す使用状態において操作取消（Ｕｎｄｏ）の実行が許可される場合の処理例を示す図である。
【図７】図５に示す使用状態において操作取消（Ｕｎｄｏ）の実行が許可されない場合の処理例を示す図である。
【図８】この発明の実施の形態１に従う各情報処理装置の制御構造を示すブロック図である。
【図９】この発明の実施の形態１に従うサーバ装置の制御構造を示すブロック図である。
【図１０】この発明の実施の形態１に従うワークスペースデータの内容の一例を示す図である。
【図１１】この発明の実施の形態１に従うオブジェクトデータの内容の一例を示す図である。
【図１２Ａ】この発明の実施の形態１に従う履歴情報の内容の一例を示す図である。
【図１２Ｂ】この発明の実施の形態１に従う履歴情報の内容の一例を示す図である。
【図１３】この発明の実施の形態１に従うＶｉｅｗ情報の内容の一例を示す図である。
【図１４】この発明の実施の形態１に従うＶｉｅｗ情報リストの内容の一例を示す図である。
【図１５】この発明の実施の形態１に従うＵｎｄｏ処理の処理手順を示すフローチャートである。
【図１６】この発明の実施の形態１に従う履歴情報の一例を示す図である。
【図１７】図１６に示す履歴情報を抽出および並び替え後の一例を示す図である。
【図１８】この発明の実施の形態２に従うＶｉｅｗ情報の内容の一例を示す図である。
【図１９】この発明の実施の形態２に従うＵｎｄｏ処理の処理手順を示すフローチャートである。
【図２０】この発明の実施の形態３に従うＶｉｅｗ情報の内容の一例を示す図である。
【図２１】この発明の実施の形態３に従うＶｉｅｗ情報リストの内容の一例を示す図である。
【図２２】この発明の実施の形態３に従うＵｎｄｏ処理の処理手順を示すフローチャートである。
【図２３】この発明の実施の形態４に従うＶｉｅｗ情報の内容の一例を示す図である。
【図２４】この発明の実施の形態４に従うＵｎｄｏ処理の処理手順を示すフローチャートである。
【図２５】この発明の実施の形態５に従う委任リストの内容の一例を示す図である。
【図２６】この発明の実施の形態５に従うＵｎｄｏ処理の処理手順を示すフローチャートである。
【図２７】この発明の実施の形態６に従うワークスペースを提供するための情報処理装置の制御構造を示すブロック図である。
【発明を実施するための形態】
【００２１】
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２２】
［実施の形態１］
（ワークスペースの全体構成）
図１は、この発明の実施の形態１に従うワークスペースを提供するためのシステムの概略構成図である。
【００２３】
図１を参照して、本実施の形態に従うシステムは、ネットワークＮＷを介して互いにデータ通信可能に接続されたデバイスである複数の情報処理装置ＰＣ１〜ＰＣ３（以下、「情報処理装置ＰＣ」とも総称する。）を含む。さらに、本実施の形態に従うシステムでは、後述するユーザ認証および各情報処理装置ＰＣのＶｉｅｗ情報の管理を行うために、情報処理装置の別形態であるサーバ装置ＳＲＶが同一のネットワークＮＷにデータ通信可能に接続されている。なお、これらの機能がいずれかの情報処理装置ＰＣで提供される場合には、このサーバ装置ＳＲＶを省略することができる。
【００２４】
これらの情報処理装置ＰＣ１〜ＰＣ３は、後述するワークスペースデータを共有することで、複数のユーザによる同時アクセス可能な仮想空間を提供する。すなわち、いずれかの情報処理装置ＰＣ上でユーザ操作によってワークスペースデータが更新されると、当該更新後のワークスペースデータが他の情報処理装置ＰＣにも送信される。このような同期処理が随時行われることで、すべての情報処理装置ＰＣ間で実質的に同一のワークスペースデータが共有されることになる。なお、複数の情報処理装置ＰＣがワークスペースデータを個々に保持する構成に代えて、特定の１台の情報処理装置ＰＣ（マスター）のみがワークスペースデータを保持し、他の情報処理装置ＰＣ（スレーブ）が当該マスターの情報処理装置ＰＣに対してデータアクセスをするような構成を採用することもできる。
【００２５】
なお、それぞれの情報処理装置ＰＣは、論理的に相互にデータ通信可能であれば、必ずしも同一階層のネットワークに接続されている必要はない。
【００２６】
（ハードウェア構成）
図２は、この発明の実施の形態１に従う情報処理装置ＰＣの代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
【００２７】
図２を参照して、本実施の形態１に従う情報処理装置ＰＣは、オペレーティングシステムを含む各種プログラムを実行するＣＰＵ２０１と、ＣＰＵ２０１でのプログラムの実行に必要なデータを一時的に記憶する記憶部としてのメモリ２１３と、ＣＰＵ２０１で実行されるプログラムを不揮発的に記憶するハードディスクドライブ（ＨＤＤ）２１１とを含む。このようなプログラムは、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブ２１５またはフレキシブルディスク（ＦＤ：Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）ドライブ２１７によって、それぞれＣＤ−ＲＯＭ２１５ａまたはフレキシブルディスク２１７ａなどから読取られる。
【００２８】
ＣＰＵ２０１は、キーボードやマウスなどからなる入力装置２０９を介してユーザによる操作要求を受取るとともに、プログラムの実行によって生成される画面出力を表示部であるモニター２０５へ出力する。また、ＣＰＵ２０１は、ＬＡＮカードなどからなる通信インターフェイス２０７を介して、他の情報処理装置ＰＣやサーバ装置ＳＲＶとの間でデータ通信を行う。なお、これらの部位は、内部バス２０３を介して互いに接続される。
【００２９】
また、サーバ装置ＳＲＶのハードウェア構成についても、図２と同様であるので、詳細な説明は繰返さない。
【００３０】
（ワークスペース）
本明細書において「ワークスペース」とは、複数のユーザによる同時アクセス可能な仮想空間を意味し、ワークスペースは、ワークスペースデータおよび当該ワークスペースデータに含まれる任意数のオブジェクトデータなどによって提供される。なお、本明細書中では、ワークスペースデータおよびオブジェクトデータなどをレンダリング（可視化）したものを「ワークスペース」という場合もある。
【００３１】
図３は、この発明の実施の形態１に従うワークスペースの一例を模式的に示した図である。
【００３２】
図３（Ａ）には、可視化されたワークスペースＷＳの全体像を示す。このワークスペースＷＳには、一例として、３つのオブジェクトＯＢＪが含まれているとする。なお、オブジェクトＯＢＪは、ユーザによる各操作の対象となる単位であり、具体的には、文字を示すテキストオブジェクト、描画を示す線オブジェクト、イメージを示す画像オブジェクトといった任意の電子的に取扱可能な情報を用いることができる。
【００３３】
ワークスペースＷＳのサイズは自在に設定することができ、一般的に、各情報処理装置ＰＣのモニター２０５の表示サイズに比較して大きくなるように設定される。そのため、各情報処理装置ＰＣのモニター２０５には、図３（Ａ）および図３（Ｂ）に示すようにワークスペースＷＳの一部の領域だけがレンダリング（可視化）される。以下では、各情報処理装置ＰＣのモニター２０５に表示される領域をＶｉｅｗ範囲（視野範囲）ＶＡと称する。
【００３４】
図３（Ｂ）を参照して、各情報処理装置ＰＣのモニター２０５には、ワークスペースＷＳのうち、ユーザにより指定されたＶｉｅｗ範囲内のオブジェクトを描画したＶｉｅｗ表示ウィンドウ３００が表示される。このＶｉｅｗ表示ウィンドウ３００上には、Ｖｉｅｗ範囲ＶＡをワークスペースＷＳのいずれの位置に配置するかを指定するためのＶｉｅｗ位置指定ウィンドウ３０２、およびワークスペースＷＳにおける各種操作を行うためのツールボックス３０４が表示される。
【００３５】
すなわち、ユーザは、キーボードやマウスなどからなる入力装置２０９を用いて、Ｖｉｅｗ位置指定ウィンドウ３０２を選択および操作することで、Ｖｉｅｗ範囲ＶＡの位置を適宜指定する。また、ユーザは、キーボードやマウスなどからなる入力装置２０９を用いて、ツールボックス３０４に含まれる各種操作ボタンを選択したり、表示されるオブジェクトを選択してドラッグしたりすることで、各オブジェクトの新規作成、変更、削除といった動作が可能である。
【００３６】
図４は、この発明の実施の形態１に従うワークスペースを提供するためのデータ構造を示す模式図である。
【００３７】
図４を参照して、データ構造には、ワークスペースのサイズ、ワークスペース名、オブジェクトデータのファイル名などを記述したワークスペースデータ２６２ａが含まれる。このワークスペースデータ２６２ａに対応付けて、各オブジェクトを記述するオブジェクトデータ２６２ｂが設けられる。このオブジェクトデータ２６２ｂは、ユーザがワークスペース上で新たなオブジェクトを追加した場合に新規作成される。さらに、各オブジェクトデータ２６２ｂに対応付けて、履歴情報が設けられる。この履歴情報は、ユーザによってなされたオブジェクトに対する操作の内容を順次格納したものである。そのため、履歴情報は、オブジェクトに対して何らかの操作がなされれば、新規作成もしくはその内容が更新される。
【００３８】
これらの各データの詳細な内容については、後述する。
（Ｕｎｄｏ機能の概要）
次に、図５〜図７を参照して、本実施の形態に従うワークスペースで提供されるＵｎｄｏ機能について説明する。
【００３９】
図５は、この発明の実施の形態１に従うワークスペースの使用状態の一例を示す図である。図６は、図５に示す使用状態において操作取消（Ｕｎｄｏ）の実行が許可される場合の処理例を示す図である。図７は、図５に示す使用状態において操作取消（Ｕｎｄｏ）の実行が許可されない場合の処理例を示す図である。
【００４０】
図５を参照して、２人のユーザがそれぞれ情報処理装置ＰＣ１およびＰＣ２を操作して、ワークスペースＷＳで共同作業を行っている場合を考える。情報処理装置ＰＣ１およびＰＣ２のそれぞれのＶｉｅｗ範囲ＶＡ１およびＶＡ２には、いずれもオブジェクトＯＢＪ１が含まれているとする。
【００４１】
ここで、情報処理装置ＰＣ２のユーザが、オブジェクトＯＢＪ１に対して移動操作を行ったとする。この操作によって、オブジェクトＯＢＪ１に対応する履歴情報が新規作成され格納される。この新たな履歴情報の内容に基づいて、情報処理装置ＰＣ１およびＰＣ２では、オブジェクトＯＢＪ１があたかも移動したように表示される。
【００４２】
次に、情報処理装置ＰＣ１のユーザが上述のような情報処理装置ＰＣ１のユーザによる操作に対して操作取消（Ｕｎｄｏ）を指示した場合の処理を説明する。
【００４３】
図６に示すように、情報処理装置ＰＣ１のユーザが入力装置２０９を操作して、ツールボックス３０４のＵｎｄｏ処理の実行を指示するボタン（以下、「Ｕｎｄｏボタン」とも称す。）を選択すると、オブジェクトＯＢＪ１に対してＵｎｄｏ処理が実行される。本実施の形態に従うＵｎｄｏ処理においては、操作取消候補の操作（図６の例では、オブジェクトＯＢＪ１の移動）を行ったユーザによって視認されているとみなされる場合に限って、当該操作取消候補の操作についての操作取消を実行する。
【００４４】
より具体的には、情報処理装置ＰＣ２のユーザによるオブジェクトＯＢＪ１についての操作を、情報処理装置ＰＣ１のユーザが取り消すためには、情報処理装置ＰＣ２におけるＶｉｅｗ範囲ＶＡ２に対象のオブジェクトＯＢＪ１が含まれていることがＵｎｄｏの条件とされる。
【００４５】
従って、図６に示すように、対象のオブジェクトＯＢＪ１が情報処理装置ＰＣ２のＶｉｅｗ範囲ＶＡ２に含まれている場合には、オブジェクトＯＢＪ１についての操作に対する操作取消が実行される。
【００４６】
一方、図７に示すように、対象のオブジェクトＯＢＪ１が情報処理装置ＰＣ２のＶｉｅｗ範囲ＶＡ２に含まれていない場合には、オブジェクトＯＢＪ１についての操作に対する操作取消は実行されない。
【００４７】
上述のように、何らかのオブジェクトに対する操作を行ったユーザ、および当該操作を取り消したユーザの両者が、当該操作取消の実行を認識することができる。それにより、作業途中でやり直しなどがあっても、両ユーザの共通認識の下、効率的な共同作業を進めることができる。
【００４８】
（情報処理装置の制御構造）
図８は、この発明の実施の形態１に従う各情報処理装置ＰＣの制御構造を示すブロック図である。
【００４９】
図８を参照して、各情報処理装置ＰＣは、その制御構造として、データ操作部２５２と、Ｖｉｅｗ作成部２５４と、描画部２５６と、Ｕｎｄｏ処理用インターフェイス２５８と、オブジェクト抽出部２６０と、データ格納部２６２と、同期処理部２６４と、送受信部２６６と、Ｖｉｅｗ情報管理部２６８と、ユーザ認証部２７０とを含む。データ格納部２６２は、ハードディスクドライブ２１１（図２）の任意の領域として提供され、送受信部２６６は、通信インターフェイス２０７（図２）および関連するドライバソフトの協働によって提供され、その他の各部は、代表的に、ＣＰＵ２０１（図２）がプログラムをメモリ２１３（図２）に展開し、各コマンドを実行することで提供される。
【００５０】
また、データ格納部２６２は、互いに関連付けられた、ワークスペースデータ２６２ａと、オブジェクトデータ２６２ｂと、履歴情報２６２ｃとを含む。
【００５１】
データ操作部２５２は、ユーザによる入力装置２０９に対する操作に従って、対象のオブジェクトについてのオブジェクトデータ２６２ｂおよび履歴情報２６２ｃの新規作成、変更、削除を行う。このとき、データ操作部２５２は、後述するユーザ認証部２７０からのユーザ情報に基づいて、各操作について、いずれのユーザによってなされた操作であるかを履歴情報２６２ｃに記述する。また、データ操作部２５２は、後述するＵｎｄｏ処理用インターフェイス２５８からの指令に従って、対象のオブジェクトデータ２６２ｂの内容を更新する。これにより、対象のオブジェクトに対する操作が取り消される。
【００５２】
Ｖｉｅｗ作成部２５４は、データ格納部２６２に格納されているワークスペースデータ２６２ａ、オブジェクトデータ２６２ｂ、履歴情報２６２ｃを参照して、ユーザにより指定されたＶｉｅｗ範囲に含まれるオブジェクトなどの情報を描画部２５６へ出力する。
【００５３】
描画部２５６は、Ｖｉｅｗ作成部２５４から出力されるＶｉｅｗ範囲に含まれるオブジェクトなどの情報に基づいて、描画処理を行う。すなわち、描画部２５６は、ワークスペースのうちＶｉｅｗ範囲内のオブジェクトを可視化したＶｉｅｗ表示ウィンドウ３００（図３（ｂ）参照）を生成する。また、描画部２５６は、後述するＵｎｄｏ処理用インターフェイス２５８からの情報に基づいて、Ｖｉｅｗ表示ウィンドウ３００上で、操作取消に係る処理を可視化する。より具体的には、描画部２５６は、操作取消によって操作前の状態に戻っていくオブジェクトの様子を可視化する。
【００５４】
Ｕｎｄｏ処理用インターフェイス２５８は、本実施の形態に従うＵｎｄｏ処理の主たる部分を実行する。具体的には、Ｕｎｄｏ処理用インターフェイス２５８は、後述するオブジェクト抽出部２６０により抽出（認識）された操作取消の候補となる動作（以下、「Ｕｎｄｏ候補動作」とも称す。）のうち、所定の条件に合致するものを特定する。続いて、Ｕｎｄｏ処理用インターフェイス２５８は、ユーザ操作に従って、条件に合致したオブジェクトに対する操作を取り消すための指令をデータ操作部２５２へ与える。所定の条件とは、上述したように、操作取消候補の操作を行ったユーザによって視認されているものとみなされることである。より具体的には、操作取消候補の操作を行ったユーザが選択中のＶｉｅｗ範囲にＵｎｄｏ対象のオブジェクトが存在することである。そのため、Ｕｎｄｏ処理用インターフェイス２５８は、後述するＶｉｅｗ情報管理部２６８から他のユーザが使用する（ログインしている）情報処理装置ＰＣにおけるＶｉｅｗ範囲の位置情報を取得し、Ｕｎｄｏ候補動作が所定の条件に合致しているか否かを判断する。
【００５５】
オブジェクト抽出部２６０は、ユーザ操作によってＵｎｄｏ処理が指示されると、Ｖｉｅｗ作成部２５４からの情報に基づいて、自装置におけるＶｉｅｗ範囲の位置を取得するとともに、データ格納部２６２内のオブジェクトデータ２６２ｂおよび履歴情報２６２ｃを参照してＵｎｄｏ候補動作を抽出する。このとき、当該Ｖｉｅｗ範囲に存在するまたは存在したオブジェクトの履歴情報２６２ｃがＵｎｄｏ候補動作となる。
【００５６】
同期処理部２６４は、ワークスペースを提供するワークスペースデータ２６２ａ、オブジェクトデータ２６２ｂ、履歴情報２６２ｃを他の情報処理装置ＰＣとの間で同期する。すなわち、同期処理部２６４は、自装置においてワークスペースデータ２６２ａ、オブジェクトデータ２６２ｂ、履歴情報２６２ｃのいずれかが追加または更新されると、追加または更新後の各データの全部または差分を、ワークスペースデータを共有している他の情報処理装置ＰＣへそれぞれ送信する。また、同期処理部２６４は、他の情報処理装置ＰＣから追加または更新後のデータの全部または差分を受信すると、それに応じて、自装置のデータ格納部２６２に格納されているデータを更新する。
【００５７】
Ｖｉｅｗ情報管理部２６８は、自装置におけるＶｉｅｗ情報をサーバ装置ＳＲＶへ送信するとともに、必要に応じて、サーバ装置ＳＲＶから他の情報処理装置ＰＣにおけるＶｉｅｗ情報を取得する。このＶｉｅｗ情報には、各時点におけるＶｉｅｗ範囲の位置情報（各座標など）および使用しているユーザ名などが含まれる。
【００５８】
送受信部２６６は、他の情報処理装置ＰＣおよびサーバ装置ＳＲＶとの間のデータ通信を制御する。具体的には、送受信部２６６は、同期処理部２６４またはＶｉｅｗ情報管理部２６８からの要求に応じて必要なメッセージを送信したり、他の情報処理装置ＰＣまたはサーバ装置ＳＲＶから受信したデータを同期処理部２６４またはＶｉｅｗ情報管理部２６８へ与えたりする。
【００５９】
ユーザ認証部２７０は、本実施の形態に従うワークスペースのアプリケーションを使用するユーザ認証を行う。具体的には、当該ワークスペースのアプリケーションが実行されると、ユーザ認証部２７０は、ユーザにＩＤおよびパスワードの入力を促す。そして、ユーザからＩＤおよびパスワードの入力があると、サーバ装置ＳＲＶ（図１）に問合せを行ってユーザ認証を行う。ユーザ認証が成功すると、ユーザによる当該ワークスペースのアプリケーションの使用を許可するとともに、現在使用中（ログイン中）のユーザ名を保持する。
【００６０】
（サーバ装置の制御構造）
図９は、この発明の実施の形態１に従うサーバ装置ＳＲＶの制御構造を示すブロック図である。
【００６１】
図９を参照して、サーバ装置ＳＲＶは、その制御構造として、ユーザ認証部２９０と、データ格納部２９２と、Ｖｉｅｗ情報管理部２９４と、送受信部２９６とを含む。データ格納部２９２は、ハードディスクドライブ２１１（図２）の任意の領域として提供され、送受信部２９６は、通信インターフェイス２０７および関連するドライバソフトの協働によって提供され、その他の各部は、代表的に、ＣＰＵ２０１（図２）がプログラムをメモリ２１３（図２）に展開し、各コマンドを実行することで提供される。
【００６２】
また、データ格納部２９２は、認証データ２９２ａと、Ｖｉｅｗ情報２９２ｂと、Ｖｉｅｗ情報リスト２９２ｃとを含む。
【００６３】
ユーザ認証部２９０は、情報処理装置ＰＣからのユーザ認証の問合せに応答して、ユーザの認証を行う。具体的には、情報処理装置ＰＣからユーザのＩＤおよびパスワードを含む問合せを受信すると、データ格納部２９２内の認証データ２９２ａを参照して受信したＩＤに対応付けられたパスワードを読出し、当該読出した値が受信したパスワードと一致するか否かに基づいて、ユーザ認証を行う。ここで、認証データ２９２ａには、予めユーザのＩＤとパスワードとが対応付けて格納されているものとする。続いて、ユーザ認証部２９０は、認証結果（認証成功または認証失敗）を送信元の情報処理装置に応答する。
【００６４】
Ｖｉｅｗ情報管理部２９４は、各情報処理装置ＰＣからＶｉｅｗ情報を受信すると、データ格納部２９２に格納されている対応するＶｉｅｗ情報２９２ｂを新規作成または更新する。さらに、Ｖｉｅｗ情報管理部２９４は、これらのＶｉｅｗ情報２９２ｂをリスト化したＶｉｅｗ情報リスト２９２ｃについても更新する。また、Ｖｉｅｗ情報管理部２９４は、各情報処理装置ＰＣからＶｉｅｗ情報の要求を受けると、Ｖｉｅｗ情報リスト２９２ｃおよびＶｉｅｗ情報２９２ｂを参照して、対象の情報処理装置におけるＶｉｅｗ情報を応答する。
【００６５】
送受信部２９６は、各情報処理装置ＰＣとの間のデータ通信を制御する。
（データ構造）
各情報処理装置ＰＣのデータ格納部２６２に格納される各データの構造について、図１０、図１１、図１２Ａ、図１２Ｂを参照して説明する。各データは、代表的に、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）などのマークアップ言語で記述される。これは、タグ（＜＞と＜／＞とで囲まれる文字に与える属性）を自在に設定することでシステムの拡張性を高めるためである。
【００６６】
（１−１）ワークスペースデータ
図１０は、この発明の実施の形態１に従うワークスペースデータ２６２ａの内容の一例を示す図である。図１０を参照して、ワークスペースデータ２６２ａは、当該ワークスペースを特定するための識別番号（ＩＤ）４０１と、当該ワークスペースの名称であるワークスペース名４０２と、当該ワークスペースに含まれるオブジェクトを特定するためのオブジェクトデータ番号４０３とを含む。
【００６７】
オブジェクトデータ番号４０３は、ユーザ操作によってワークスペース上に追加されたオブジェクトに応じて順次追記される。なお、ワークスペースに一旦オブジェクトが追加されると、たとえその後、当該オブジェクトが削除されたとしても、特段の処理がなされない限り、オブジェクトデータ番号４０３の記述自体は残存する。これは、後述するように、Ｕｎｄｏ機能を提供するためには、各オブジェクトの履歴情報を残しておく必要があるからである。
【００６８】
（１−２）オブジェクトデータ
図１１は、この発明の実施の形態１に従うオブジェクトデータ２６２ｂの内容の一例を示す図である。図１１を参照して、オブジェクトデータ２６２ｂは、図１０に示すワークスペースデータ２６２ａに記述されるオブジェクトデータ番号４０３に対応付けて生成される。すなわち、各オブジェクトデータ２６２ｂは、ワークスペースデータ２６２ａのオブジェクトデータ番号４０３（図１０）と対応付けられた識別番号（ＩＤ）４０５を含む。さらに、各オブジェクトデータ２６２ｂは、当該オブジェクトの名称であるオブジェクト名４０６と、当該オブジェクトについての履歴情報を特定するための履歴情報番号４０７とを含む。この履歴情報番号４０７は、後述する履歴情報の識別番号と対応付けられた番号である。なお、履歴情報の識別番号は任意に設定することができるが、本実施の形態では、時系列に識別番号をインクリメント、すなわち新しいものほど大きな識別番号であるとする。
【００６９】
（１−３）履歴情報
図１２Ａおよび図１２Ｂは、この発明の実施の形態１に従う履歴情報２６２ｃの内容の一例を示す図である。図１２Ａおよび図１２Ｂを参照して、履歴情報２６２ｃは、図１１に示すオブジェクトデータ２６２ｂに記述された履歴情報番号４０７と対応付けて生成される。すなわち、オブジェクトデータ２６２ｂの各々は、オブジェクトデータ２６２ｂの履歴情報番号４０７（図１１）と対応付けられた識別番号（ＩＤ）４０９を含む。さらに、各履歴情報２６２ｃは、当該履歴情報の名称である履歴名４１０と、当該履歴の操作がなされた内容を示す動作タイプ情報４１１と、当該履歴の操作がなされた時刻を示す動作時刻情報４１２と、当該履歴の操作がなされた位置情報（各座標）を示す動作場所情報４１３と、当該履歴の操作を行ったユーザを示す動作操作者情報４１４と、対応のオブジェクトの詳細な情報を示すオブジェクト詳細情報４１５とを含む。
【００７０】
動作タイプ情報４１１には、対応のオブジェクトについてなされた操作の内容、たとえば「（新規）作成」、「移動」、「サイズ変更」、「削除」などの値が記述される。動作時刻情報４１２には、ユーザが対応のオブジェクトに対して操作を行った時刻が記述される。なお、履歴情報２６２ｃは、ユーザがいずれかのオブジェクトに対して１回の操作（たとえば、１回の移動動作）を行う毎に新規作成される。動作場所情報４１３には、ユーザが対応のオブジェクトに対して操作を行った位置情報（開始位置または終点位置）の値が記述される。動作操作者情報４１４には、対応のオブジェクトに対して操作を行ったユーザを特定するための値が記述される。このユーザを特定するための値としては、ユーザ認証部２７０（図８）が保持するユーザ認証されたユーザ名などが用いられる。オブジェクト詳細情報４１５には、各オブジェクトを規定する情報が記述される。たとえば、対応のオブジェクトが線オブジェクト（オブジェクトタイプが「線」）であれば、そのアウトラインを示すベクトルデータ（始点、終点、アンカーポイント、曲率）などが記述される。また、対応のオブジェクトが画像オブジェクト（オブジェクトタイプが「・・・．ｊｐｇ」）であれば、その画像データを特定するためのファイル名などが記述される。
【００７１】
なお、上述の例では、各オブジェクトデータと対応する履歴情報とを、互いにリンク付けした別のファイル（データ）として取扱う構成について説明したが、各オブジェクトデータに履歴情報を含ませた同一のファイル（データ）としてもよい。
【００７２】
次に、サーバ装置ＳＲＶのデータ格納部２９２に格納される各データの構造について、図１３および図１４を参照して説明する。これらのデータについても、代表的に、ＸＭＬなどのマークアップ言語で記述される。
【００７３】
（２−１）Ｖｉｅｗ情報リスト
図１３は、この発明の実施の形態１に従うＶｉｅｗ情報２９２ｂの内容の一例を示す図である。図１３を参照して、Ｖｉｅｗ情報２９２ｂは、当該Ｖｉｅｗ情報を特定するための識別番号（ＩＤ）４２１と、各情報処理装置ＰＣを使用しているユーザを特定するためのユーザ名４２２と、各情報処理装置ＰＣにおけるＶｉｅｗ範囲の各頂点の座標を示すＶｉｅｗ位置情報４２３とを含む。なお、Ｖｉｅｗ情報２９２ｂは、少なくとも、同一のワークスペースに参加している情報処理装置ＰＣと同じ数だけ存在する。
【００７４】
（２−２）Ｖｉｅｗ情報
図１４は、この発明の実施の形態１に従うＶｉｅｗ情報リスト２９２ｃの内容の一例を示す図である。図１４を参照して、Ｖｉｅｗ情報リスト２９２ｃは、図１３に示すＶｉｅｗ情報リストの識別番号（図１３）４２１と対応付けられたＶｉｅｗ情報番号４２５を含む。なお、このＶｉｅｗ情報リスト２９２ｃに記述されるＶｉｅｗ情報番号４２５の数は、各時点において、同一のワークスペースに参加している情報処理装置ＰＣの数に応じて増減するようにしてもよい。
【００７５】
（Ｕｎｄｏ処理の処理手順）
図１５は、この発明の実施の形態１に従うＵｎｄｏ処理の処理手順を示すフローチャートである。なお、図１５に示す処理手順が実行される前提として、複数のユーザがユーザ認証手続きを経て、それぞれが正規にログインしているものとする。また、図１５に示す処理手順は、代表的に、情報処理装置ＰＣのＣＰＵ２０１の各々がプログラムを実行することで提供される。
【００７６】
さらに、各情報処理装置ＰＣでは、ワークスペースのうち各ユーザにより指定されたＶｉｅｗ範囲内のオブジェクトがモニター２０５に逐次描画される。また、各情報処理装置ＰＣでは、ワークスペースにおいて各ユーザによってなされたオブジェクトに対する操作についての履歴情報２６２ｃが順次格納される。
【００７７】
図１５を参照して、まず、情報処理装置ＰＣのＣＰＵ２０１は、自装置において、ユーザがツールボックス３０４（図５および図６参照）のＵｎｄｏボタンを選択したか否かを判断する（ステップＳ１００）。Ｕｎｄｏボタンが選択されていなければ（ステップＳ１００においてＮＯ）、ステップＳ１００の処理が繰返される。一方、Ｕｎｄｏボタンが選択された場合（ステップＳ１００においてＹＥＳの場合）には、処理はステップＳ１０２に進む。
【００７８】
すなわち、何らかの操作を取り消そうとするユーザは、使用している情報処理装置ＰＣを操作して、ワークスペースの所望する位置にＶｉｅｗ範囲を設定した上で、Ｖｉｅｗ表示ウィンドウ３００（図５および図６参照）に表示されるツールボックス３０４のＵｎｄｏボタンをマウスなどによって選択する。Ｕｎｄｏボタンは、操作取消の指示を情報処理装置ＰＣに与えるボタンである。
【００７９】
ステップＳ１０２では、情報処理装置ＰＣのＣＰＵ２０１は、自装置におけるＶｉｅｗ範囲の情報（各頂点の座標）を取得する。続いて、情報処理装置ＰＣのＣＰＵ２０１は、データ格納部２６２に格納されているすべての履歴情報２６２ｃ（図８）を参照し、各履歴情報２６２ｃに含まれる動作場所情報４１３（図１２Ａおよび図１２Ｂ）の値に基づいて、自装置のＶｉｅｗ範囲（第１視野範囲）に含まれる履歴情報２６２ｃを抽出する（ステップＳ１０４）。すなわち、情報処理装置ＰＣのＣＰＵ２０１は、その位置情報である動作場所情報４１３の値が自装置のＶｉｅｗ範囲に含まれる履歴情報２６２ｃを操作取消の候補として抽出する。
【００８０】
さらに、情報処理装置ＰＣのＣＰＵ２０１は、抽出した履歴情報２６２ｃを、それぞれの動作時刻情報４１２（図１２Ａおよび図１２Ｂ）の値に基づいて新しい順に並び替える（ステップＳ１０６）。すなわち、情報処理装置ＰＣのＣＰＵ２０１は、抽出した履歴情報２６２ｃについて、動作時刻情報４１２の値をキーにして降順にソートする。
【００８１】
以下、ステップＳ１０４およびＳ１０６における処理について、図１６および図１７を参照して説明する。
【００８２】
図１６は、この発明の実施の形態１に従う履歴情報の一例を示す図である。図１７は、図１６に示す履歴情報を抽出および並び替え後の一例を示す図である。
【００８３】
一例として、ワークスペース上に、「オブジェクトＡ」（ＩＤ＝１）、「オブジェクトＢ」（ＩＤ＝２）、「オブジェクトＣ」（ＩＤ＝３）の３つのオブジェクトが配置されているものとする。そして、図１６は、これらのオブジェクトの履歴情報２６２ｃに記述された内容を簡潔に表形式で示したものである。なお、図１６において、各履歴情報についての左側の枠には、上から順に「動作タイプ情報４１１」、「動作時刻情報４１２」、「動作操作者情報４１４」の値が示されているものとする。また、各履歴情報についての右側の枠には、上から順に「動作場所情報４１３」の「Ｘ座標値」および「Ｙ座標値」が示されているものとする。
【００８４】
なお、図１６に示す表は説明の便宜上のものであり、図１６と同じデータ構造のデータを生成する必要はない。
【００８５】
このような各オブジェクトについての履歴情報に対して、情報処理装置ＰＣのＣＰＵ２０１は、自装置のＶｉｅｗ範囲内にあるものを抽出する。たとえば、自装置におけるＶｉｅｗ位置情報の各頂点の座標が（４２１，３８５），（６１０，３８５），（４２１，５１８），（６１０，５１８）である場合には、動作場所情報４１３のＸ座標値が４２１〜６１０の範囲であり、かつＹ座標値が３８５〜５１８の範囲であるものが抽出される。
【００８６】
図１６に示す例では、オブジェクトＣの履歴情報（１）が自装置のＶｉｅｗ範囲外にあることを示しているので、それを除いた残りの履歴情報が自装置のＶｉｅｗ範囲内にあるものとして抽出される。
【００８７】
さらに、情報処理装置ＰＣのＣＰＵ２０１は、抽出した履歴情報を、対応する動作時刻情報４１２の値に基づいて新しい順に並び替える。図１７には、上述のような抽出および並び替え後の履歴情報の一例が示される。これらの履歴情報に係る各操作がＵｎｄｏ候補動作となる。その後、処理はステップＳ１０８（図１５）に進む。
【００８８】
再度、図１５を参照して、ステップＳ１０８では、情報処理装置ＰＣのＣＰＵ２０１は、ステップＳ１０６において並び替えたＵｎｄｏ候補動作のうち、最新のものを対象のＵｎｄｏ候補動作とする。
【００８９】
続くステップＳ１１０では、情報処理装置ＰＣのＣＰＵ２０１は、対象としたＵｎｄｏ候補動作についての操作者（ユーザ）を取得する。図１７に示す例では、「オブジェクトＢ（２）」に対する「ユーザＢ」が行った「移動」が最新のＵｎｄｏ候補動作であるので、情報処理装置ＰＣのＣＰＵ２０１は、対象としたＵｎｄｏ候補動作についての操作者として「ユーザＢ」を取得する。そして、処理はステップＳ１１２に進む。ステップＳ１１２およびＳ１１４では、対象としたＵｎｄｏ候補動作のオブジェクトが当該Ｕｎｄｏ候補動作の操作を行ったユーザによって視認されているとみなされるかが判断され、そのようにみなされると判断された場合に限って、操作取消（Ｕｎｄｏ）が実行される。
【００９０】
より具体的には、ステップＳ１１２では、情報処理装置ＰＣのＣＰＵ２０１は、対象としたＵｎｄｏ候補動作についての操作者（ユーザ）が使用している情報処理装置ＰＣにおけるＶｉｅｗ範囲の位置情報を取得する。具体的には、情報処理装置ＰＣのＣＰＵ２０１は、サーバ装置ＳＲＶから、データ格納部２９２に格納されているＶｉｅｗ情報２９２ｂおよびＶｉｅｗ情報リスト２９２ｄ（図１３参照）を取得する。そして、情報処理装置ＰＣのＣＰＵ２０１は、これらの取得した情報のうち、その中に含まれるユーザ名４２２の値がステップＳ１１０において取得した操作者と一致するものを検索する。なお、図１３に示す例では、「ユーザＢ」により指定されているＶｉｅｗ範囲（第２視野範囲）の位置情報として、４つの頂点の座標（１００，２００），（９００，２００），（１００，８００），（９００，８００）が取得される。そして、処理はステップＳ１１４に進む。
【００９１】
ステップＳ１１４では、情報処理装置ＰＣのＣＰＵ２０１は、対象としたＵｎｄｏ候補動作の動作位置（操作がなされた位置）が、対象としたＵｎｄｏ候補に係る操作者のＶｉｅｗ範囲内であるか否かを判断する。
【００９２】
Ｕｎｄｏ候補動作の動作位置がステップＳ１１２で取得したＶｉｅｗ範囲内である場合（ステップＳ１１４においてＹＥＳの場合）には、処理はステップＳ１１６に進み、情報処理装置ＰＣのＣＰＵ２０１は、対象としたＵｎｄｏ候補動作の操作取消（Ｕｎｄｏ）を実行する。より具体的には、ステップＳ１１６において、情報処理装置ＰＣのＣＰＵ２０１は、データ格納部２６２に格納されているオブジェクトデータ２６２ｂ（図１１）に記述された履歴情報番号４０７のうち対応するもの（履歴情報番号の値が最も大きいもの）を削除する。この操作によって、対象としたオブジェクトには、１つ少ない履歴情報番号をもつ履歴情報がその属性として対応付けられ、最も新しい動作が取り消されたことになる。そして、処理はステップＳ１１８に進む。
【００９３】
一方、Ｕｎｄｏ候補動作の動作位置がステップＳ１１０で取得したＶｉｅｗ範囲内でない場合（ステップＳ１１４においてＮＯの場合）には、対象としたＵｎｄｏ候補動作の操作取消（Ｕｎｄｏ）は実行されない。そして、処理はステップＳ１１８に進む。
【００９４】
ステップＳ１１８では、情報処理装置ＰＣのＣＰＵ２０１は、ステップＳ１０６において並び替えたＵｎｄｏ候補動作のうち、次に新しいものが存在するか否かを判断する。次に新しいものが存在しない場合（ステップＳ１１８においてＮＯの場合）には、Ｕｎｄｏ処理は終了する。
【００９５】
一方、次に新しいものが存在する場合（ステップＳ１１８においてＹＥＳの場合）には、情報処理装置ＰＣのＣＰＵ２０１は、当該次に新しいＵｎｄｏ候補動作を対象のＵｎｄｏ候補動作とする（ステップＳ１２０）。さらに、情報処理装置ＰＣのＣＰＵ２０１は、自装置において、ユーザがツールボックス３０４のＵｎｄｏボタンを再度選択したか否かを判断する（ステップＳ１２２）。Ｕｎｄｏボタンが再度選択された場合には、処理はステップＳ１１０に移る。
【００９６】
一方、Ｕｎｄｏボタンが再度選択されていなければ（ステップＳ１２２においてＮＯ）、情報処理装置ＰＣのＣＰＵ２０１は、自装置において、ユーザがＵｎｄｏボタン以外の他の操作を指示したか否かを判断する（ステップＳ１２４）。ユーザが何らの操作もしていない場合には（ステップＳ１２４においてＮＯの場合）、処理はステップＳ１２２に戻る。
【００９７】
これに対して、ユーザがＵｎｄｏボタン以外の他の操作を指示した場合（ステップＳ１２４においてＹＥＳの場合）には、Ｕｎｄｏ処理は終了する。
【００９８】
本実施の形態によれば、複数のユーザによる同時アクセス可能なワークスペースにおいて、オブジェクトに対する何らかの操作の操作取消（Ｕｎｄｏ）は、当該オブジェクトが当該取消対象となった操作を行ったユーザによって視認されているとみなされる場合に限って、実行される。そのため、このような操作取消（Ｕｎｄｏ）をその操作を行ったユーザが認識していることを確認することで、複数のユーザ間で効率的な共同作業を行うことができる。
【００９９】
［実施の形態２］
上述した実施の形態１では、対象のオブジェクトが当該Ｕｎｄｏ候補動作の操作者のＶｉｅｗ範囲内に存在していることを条件として、操作取消（Ｕｎｄｏ）を実行する構成について例示した。これに対して、以下に説明する実施の形態２では、当該Ｖｉｅｗ範囲を描画するＶｉｅｗ表示ウィンドウ（表示窓）がアクティブ（選択状態）であることを操作取消（Ｕｎｄｏ）の実行条件とする構成について例示する。
【０１００】
Ｍｉｃｒｏｓｏｆｔ（登録商標）のＷｉｎｄｏｗｓ（登録商標）を代表とするマルチウィンドウシステムを搭載したオペレーティングシステム（ＯＳ）では、同一画面上に複数のウィンドウ（表示窓）を配置可能である。このような場合には、当該操作者によってＵｎｄｏ候補動作に係るオブジェクトが視認されていることをより確実に判断するために、Ｖｉｅｗ表示ウィンドウがアクティブであることを条件とすることが好ましい。なお、「アクティブ」とは、同一画面上に表示可能な複数のウィンドウのうち、キーボードやマウスなどの入力装置を操作することで選択されているものを意味する。
【０１０１】
なお、上述のようなマルチウィンドウシステムを搭載したＯＳでは、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を提供するプロセスによって、いずれの表示ウィンドウがアクティブであるかが管理されている。そのため、ＯＳのシステムコールなどを利用することで、Ｖｉｅｗ表示ウィンドウがアクティブであるか否かを容易に取得することができる。そのため、本実施の形態に従うシステムでは、Ｖｉｅｗ情報として、Ｖｉｅｗ範囲の位置情報およびユーザ名に加えて、Ｖｉｅｗ表示ウィンドウの状態（「アクティブ」であるか否か）が送信される。
【０１０２】
本実施の形態に従う各情報処理装置ＰＣの制御構造については、実施の形態１に従う制御構造（図８）とほぼ同様であるが、Ｖｉｅｗ情報管理部２６８における処理が異なっている。すなわち、本実施の形態に従うＶｉｅｗ情報管理部２６８は、自装置におけるＶｉｅｗ表示ウィンドウの選択状態をＯＳから取得し、Ｖｉｅｗ情報としてサーバ装置ＳＲＶへ送信する点において、上述した実施の形態１に従うＶｉｅｗ情報管理部２６８とは異なる。
【０１０３】
一方、本実施の形態に従うサーバ装置ＳＲＶの制御構造については、そのデータ格納部２９２に格納されるＶｉｅｗ情報のデータ構造が実施の形態１とは異なっている。
【０１０４】
図１８は、この発明の実施の形態２に従うＶｉｅｗ情報２９２ｄの内容の一例を示す図である。図１８を参照して、Ｖｉｅｗ情報２９２ｄには、図１３に示すＶｉｅｗ情報２９２ｂに比較して、各ユーザが表示させているＶｉｅｗ表示ウィンドウがアクティブであるか否かを示すアクティブ情報４２７が追加されている。なお、対応のＶｉｅｗ表示ウィンドウがアクティブであれば、その値は「ｔｒｕｅ」となり、アクティブでなければ、その値は「ｆａｌｓｅ」となる。
【０１０５】
図１９は、この発明の実施の形態２に従うＵｎｄｏ処理の処理手順を示すフローチャートである。図１９に示す処理手順は、図１５に示す実施の形態１に従うＵｎｄｏ処理の処理手順にステップＳ１１５Ａの処理を追加したものに相当する。なお、図１９のフローチャートに示すステップのうち、図１５のフローチャートに示すステップと同様の処理を行うものについては、同一のステップ番号を付している。
【０１０６】
より具体的には、ステップＳ１１４においてＹＥＳの場合、すなわちＵｎｄｏ候補動作の動作位置がステップＳ１１２で取得したＶｉｅｗ範囲内である場合には、処理はステップＳ１１５Ａに進む。
【０１０７】
ステップＳ１１５Ａでは、情報処理装置ＰＣのＣＰＵ２０１は、対象としたＵｎｄｏ候補に係る操作者のＶｉｅｗ範囲を描画するＶｉｅｗ表示ウィンドウがアクティブであるか否かを判断する。この判断は、ステップＳ１１２においてサーバ装置ＳＲＶから取得されるＶｉｅｗ情報２９２ｄのアクティブ情報４２７の値に基づいて行われる。
【０１０８】
対象としたＵｎｄｏ候補に係る操作者のＶｉｅｗ範囲を描画したＶｉｅｗ表示ウィンドウがアクティブである場合（ステップＳ１１５ＡにおいてＹＥＳの場合）には、処理はステップＳ１１６に進む。一方、対象としたＵｎｄｏ候補に係る操作者のＶｉｅｗ範囲を描画したＶｉｅｗ表示ウィンドウがアクティブでない場合（ステップＳ１１５ＡにおいてＮＯの場合）には、処理はステップＳ１１８に進む。
【０１０９】
その他のステップにおける処理については、図１５の対応するステップにおける処理と同様であるので、詳細な説明は繰返さない。
【０１１０】
本実施の形態によれば、上述の実施の形態１における効果に加えて、対象のオブジェクトが当該取消対象となった操作を行ったユーザによって視認されているとみなされる可能性がより高いことを条件として、操作取消（Ｕｎｄｏ）が実行されため、操作取消の操作を行ったユーザが認識していることを確認することができる。
【０１１１】
［実施の形態３］
上述した実施の形態１では、対象のオブジェクトが当該Ｕｎｄｏ候補動作の操作者のＶｉｅｗ範囲内に存在しているか否かについての判断をＵｎｄｏ処理時にのみ行う構成について例示した。これに対して、以下に説明する実施の形態３では、当該操作者によってＵｎｄｏ候補動作に係るオブジェクトが視認されていることをより確実に判断するために、条件が継続的に成立していることを操作取消（Ｕｎｄｏ）の条件とする構成について例示する。
【０１１２】
これは、いずれかのユーザによってＵｎｄｏ処理が実行された場合に、Ｕｎｄｏ候補動作の操作者のＶｉｅｗ範囲内にたまたま当該Ｕｎｄｏ候補動作に係るオブジェクトが存在していた場合であっても、当該Ｕｎｄｏ候補動作についてのＵｎｄｏが実行されてしまう。そのため、Ｕｎｄｏ候補動作の操作者がＵｎｄｏ候補動作に係るオブジェクトを視認している可能性がより高い状態であることをＵｎｄｏ実行の条件とするものである。
【０１１３】
本実施の形態に従う各情報処理装置ＰＣの制御構造については、Ｕｎｄｏ実行に係る条件を除いて、実施の形態１に従う制御構造（図８）とほぼ同様である。
【０１１４】
一方、本実施の形態に従うサーバ装置ＳＲＶの制御構造については、そのデータ格納部２９２に格納されるＶｉｅｗ情報リストおよびＶｉｅｗ情報のデータ構造が実施の形態１とは異なっている。
【０１１５】
図２０は、この発明の実施の形態３に従うＶｉｅｗ情報２９２ｅの内容の一例を示す図である。図２１は、この発明の実施の形態３に従うＶｉｅｗ情報リスト２９２ｆの内容の一例を示す図である。
【０１１６】
図２０を参照して、Ｖｉｅｗ情報２９２ｅには、図１３に示すＶｉｅｗ情報２９２ｂに比較して、Ｖｉｅｗ情報が更新された時刻を示す更新時刻情報４２８が追加されている。なお、この更新時刻情報４２８は、各情報処理装置ＰＣのＶｉｅｗ情報管理部２６８（図８）、またはサーバ装置ＳＲＶのＶｉｅｗ情報管理部２９４（図９）によって付加される。
【０１１７】
図２１を参照して、Ｖｉｅｗ情報リスト２９２ｆは、各ユーザについてのＶｉｅｗ情報の更新履歴４３１を含む。この更新履歴４３１には、各ユーザのＶｉｅｗ情報２９２ｅが更新される毎に、対応するＶｉｅｗ情報２９２ｅを特定するＶｉｅｗ情報番号が追加される。このように、更新履歴４３１を格納しておくことで、Ｕｎｄｏ候補動作に係るオブジェクトがいずれのタイミングで当該Ｕｎｄｏ候補動作の操作者のＶｉｅｗ範囲内に存在していたかを判断することができる。さらに、Ｕｎｄｏ候補動作に係るオブジェクトが当該Ｕｎｄｏ候補動作の操作者のＶｉｅｗ範囲内に存在していた期間を算出することもできる。
【０１１８】
図２２は、この発明の実施の形態３に従うＵｎｄｏ処理の処理手順を示すフローチャートである。図２２に示す処理手順は、図１５に示す実施の形態１に従うＵｎｄｏ処理の処理手順にステップＳ１１３の処理を追加するとともに、ステップＳ１１４の処理に代えてステップＳ１１４Ａの処理を実行するようにしたものに相当する。なお、図２２のフローチャートに示すステップのうち、図１５のフローチャートに示すステップと同様の処理を行うものについては、同一のステップ番号を付している。
【０１１９】
より具体的には、ステップＳ１１２において、対象としたＵｎｄｏ候補動作に係る操作者によって使用されている情報処理装置ＰＣにおけるＶｉｅｗ範囲の位置情報が取得されると、処理はステップＳ１１３に進む。
【０１２０】
ステップＳ１１３において、情報処理装置ＰＣのＣＰＵ２０１は、Ｕｎｄｏ候補動作の操作者のＶｉｅｗ情報２９２ｅのうち、その更新時刻情報４２８の値が対象としたＵｎｄｏ候補動作が行われた時刻（動作時刻情報４１２の値）から現在時刻までに含まれるものを抽出する。そして、処理はステップＳ１１４Ａに進む。
【０１２１】
ステップＳ１１４Ａでは、情報処理装置ＰＣのＣＰＵ２０１は、対象としたＵｎｄｏ候補動作の動作位置が、対象としたＵｎｄｏ候補動作が行われた時刻から現在時刻までの間において、対象としたＵｎｄｏ候補に係る操作者のＶｉｅｗ範囲内に継続して存在していたか否かを判断する。
【０１２２】
具体的には、情報処理装置ＰＣのＣＰＵ２０１は、ステップＳ１１３において抽出したＵｎｄｏ候補動作の操作者のＶｉｅｗ情報２９２ｅの各々について、対象としたＵｎｄｏ候補動作の動作位置がそのＶｉｅｗ範囲内であるか否かについて判断する。そして、すべてのＶｉｅｗ情報２９２ｅについて、対象としたＵｎｄｏ候補動作の動作位置がそのＶｉｅｗ範囲内である場合に、対象としたＵｎｄｏ候補に係る操作者のＶｉｅｗ範囲内に継続して存在していたと判断される（ステップＳ１１４ＡにおいてＹＥＳ）。そして、処理はステップＳ１１６に進む。
【０１２３】
一方、いずれか１つのＶｉｅｗ情報２９２ｅでも対象としたＵｎｄｏ候補動作の動作位置がそのＶｉｅｗ範囲内でなければ、対象としたＵｎｄｏ候補に係る操作者のＶｉｅｗ範囲内に継続して存在していなかったと判断される（ステップＳ１１４ＡにおいてＮＯ）。そして、処理はステップＳ１１８に進む。
【０１２４】
その他のステップにおける処理については、図１５の対応するステップにおける処理と同様であるので、詳細な説明は繰返さない。
【０１２５】
なお、上述したステップＳ１１４Ａでは、対象としたＵｎｄｏ候補動作の動作位置が、当該Ｕｎｄｏ候補動作が行われた時刻から現在時刻までの全期間に亘って、当該Ｕｎｄｏ候補に係る操作者のＶｉｅｗ範囲内に存在していた場合に、Ｕｎｄｏの条件が成立したと判断したが、当該全期間のうち所定割合の期間において、当該Ｕｎｄｏ候補に係る操作者のＶｉｅｗ範囲内に存在していた場合に、Ｕｎｄｏの条件が成立したと判断してもよい。すなわち、対象としたＵｎｄｏ候補動作の動作位置が当該Ｕｎｄｏ候補に係る操作者のＶｉｅｗ範囲内に存在した期間を積算し、当該積算した期間が対象としたＵｎｄｏ候補動作が行われた時刻から現在時刻までの全期間のうちの所定割合（たとえば、８０％）以上であれば、Ｕｎｄｏを実行してもよい。
【０１２６】
本実施の形態によれば、上述の実施の形態１における効果に加えて、対象のオブジェクトが当該取消対象となった操作を行ったユーザによって視認されているとみなされる可能性がより高いことを条件として、操作取消（Ｕｎｄｏ）が実行されため、操作取消の操作を行ったユーザが認識していることをより確実に確認することができる。
【０１２７】
［実施の形態４］
上述した実施の形態１では、Ｕｎｄｏ候補動作の操作者のＶｉｅｗ範囲の位置に基づいて、当該Ｕｎｄｏ候補動作に対する操作取消（Ｕｎｄｏ）を実行するか否かについて判断する構成について例示した。ところで、Ｕｎｄｏ候補動作の操作者がその対象とされたオブジェクトに対してさらに操作を行おうとしている場合も考えられる。このような場合には、操作取消（Ｕｎｄｏ）を実行することは適切ではない。
【０１２８】
そのため、以下に説明する実施の形態４では、対象としたＵｎｄｏ候補動作の操作者が対象となったオブジェクトに対して、何らかの操作を行おうとしている場合には、操作取消（Ｕｎｄｏ）を実行しない構成について例示する。より具体的には、対象としたＵｎｄｏ候補動作の操作者が対象となったオブジェクトを選択している場合には、当該オブジェクトに対する操作取消（Ｕｎｄｏ）を実行しない。
【０１２９】
本実施の形態に従う各情報処理装置ＰＣの制御構造については、実施の形態１に従う制御構造（図８）とほぼ同様であるが、Ｖｉｅｗ情報管理部２６８における処理が異なっている。すなわち、本実施の形態に従うＶｉｅｗ情報管理部２６８は、自装置におけるワークスペース上においてユーザが選択しているオブジェクトの情報をデータ操作部２５２などから取得し、Ｖｉｅｗ情報としてサーバ装置ＳＲＶへ送信する点において、上述した実施の形態１に従うＶｉｅｗ情報管理部２６８とは異なる。
【０１３０】
一方、本実施の形態に従うサーバ装置ＳＲＶの制御構造については、そのデータ格納部２９２に格納されるＶｉｅｗ情報のデータ構造が実施の形態１とは異なっている。
【０１３１】
図２３は、この発明の実施の形態４に従うＶｉｅｗ情報２９２ｇの内容の一例を示す図である。図２３を参照して、Ｖｉｅｗ情報２９２ｇには、図１３に示すＶｉｅｗ情報２９２ｂに比較して、対応するユーザが選択しているオブジェクトを示す選択オブジェクト名４３３が追加されている。なお、図２３には、選択オブジェクト名４３３として、オブジェクト名およびオブジェクトＩＤを用いる場合を例示する。
【０１３２】
図２４は、この発明の実施の形態４に従うＵｎｄｏ処理の処理手順を示すフローチャートである。図２４に示す処理手順は、図１５に示す実施の形態１に従うＵｎｄｏ処理の処理手順にステップＳ１１５Ｂの処理を追加したものに相当する。なお、図２４のフローチャートに示すステップのうち、図１５のフローチャートに示すステップと同様の処理を行うものについては、同一のステップ番号を付している。
【０１３３】
より具体的には、ステップＳ１１４においてＹＥＳの場合、すなわちＵｎｄｏ候補動作の動作位置がステップＳ１１２で取得したＶｉｅｗ範囲内である場合には、処理はステップＳ１１５Ｂに進む。
【０１３４】
ステップＳ１１５Ｂでは、情報処理装置ＰＣのＣＰＵ２０１は、対象としたＵｎｄｏ候補に係る操作者が当該Ｕｎｄｏ候補動作のオブジェクトを選択しているか否かを判断する。この判断は、ステップＳ１１２においてサーバ装置ＳＲＶから取得されるＶｉｅｗ情報２９２ｇの選択オブジェクト名４３３の値に基づいて行われる。
【０１３５】
対象としたＵｎｄｏ候補に係る操作者が当該Ｕｎｄｏ候補動作のオブジェクトを選択している場合（ステップＳ１１５ＢにおいてＹＥＳの場合）には、処理はステップＳ１１６に進む。一方、対象としたＵｎｄｏ候補に係る操作者が当該Ｕｎｄｏ候補動作のオブジェクトを選択していない場合（ステップＳ１１５ＢにおいてＮＯの場合）には、処理はステップＳ１１８に進む。
【０１３６】
その他のステップにおける処理については、図１５の対応するステップにおける処理と同様であるので、詳細な説明は繰返さない。
【０１３７】
本実施の形態によれば、上述の実施の形態１における効果に加えて、あるユーザがオブジェクトに対して何らかの操作を行おうとしている場合に、別のユーザによって同一のオブジェクトに対して行われた直前の操作が取り消されるといった事態を回避できる。これにより、複数のユーザによる同時アクセス可能な仮想空間においても、効率的な共同作業を実現できる。
【０１３８】
［実施の形態５］
上述した実施の形態１では、Ｕｎｄｏ候補動作の操作者のＶｉｅｗ範囲の位置に基づいて、当該Ｕｎｄｏ候補動作に対するＵｎｄｏを実行するか否かについて判断する構成について例示した。ところで、Ｕｎｄｏ候補動作の操作者が常にワークスペースを操作しているとは限らない。たとえば、共同作業を行う複数のユーザのうち、一部のユーザが当該作業を離れる場合も考えられる。このような場合には、残るユーザにＵｎｄｏの実行を委任することができれば、業務の停滞を低減できる。そのため、以下に説明する実施の形態５では、各ユーザが自身のなした操作についてのＵｎｄｏを他のユーザに委任できる構成について例示する。
【０１３９】
本実施の形態に従う各情報処理装置ＰＣの制御構造については、実施の形態１に従う制御構造（図８）とほぼ同様であるが、ユーザからの指示に応じて、委任情報をサーバ装置ＳＲＶへ送信可能に構成されている点において、上述した実施の形態１に従う制御構造とは異なる。
【０１４０】
一方、本実施の形態に従うサーバ装置ＳＲＶの制御構造については、実施の形態１に従う制御構造（図９）とほぼ同様であるが、データ格納部２９２に委任リスト２９２ｈがさらに格納される点において、上述した実施の形態１に従う制御構造とは異なる。この委任リスト２９２ｈは、各情報処理装置ＰＣからの委任情報に応じて、新規作成または更新される。
【０１４１】
図２５は、この発明の実施の形態５に従う委任リスト２９２ｈの内容の一例を示す図である。図２５を参照して、委任リスト２９２ｈには、委任を行ったユーザ名が記述される。
【０１４２】
なお、ユーザ名に加えて、Ｕｎｄｏの実行を委任する期間をさらに定めるようにしてもよい。この場合には、Ｕｎｄｏ候補動作が行われた時刻（動作時刻情報４１２の値）が委任された期間内であれば、無条件にＵｎｄｏが実行され、そうでなければ、通常の条件判断がなされる。
【０１４３】
図２６は、この発明の実施の形態５に従うＵｎｄｏ処理の処理手順を示すフローチャートである。図２６に示す処理手順は、図１５に示す実施の形態１に従うＵｎｄｏ処理の処理手順にステップＳ１１１ＡおよびＡ１１１Ｂの処理を追加したものに相当する。なお、図２６のフローチャートに示すステップのうち、図１５のフローチャートに示すステップと同様の処理を行うものについては、同一のステップ番号を付している。
【０１４４】
より具体的には、ステップＳ１１０の実行後、処理はステップＳ１１１Ａに進む。
ステップＳ１１１Ａでは、情報処理装置ＰＣのＣＰＵ２０１は、サーバ装置ＳＲＶから委任リストを取得する。続くステップＳ１１１Ｂでは、情報処理装置ＰＣのＣＰＵ２０１は、取得した委任リストに対象としたＵｎｄｏ候補動作に係る操作者のエントリが有るか否かを判断する。
【０１４５】
取得した委任リストに対象としたＵｎｄｏ候補動作に係る操作者のエントリが有る場合（ステップＳ１１１ＢにおいてＹＥＳの場合）には、処理はステップＳ１１６に進む。一方、取得した委任リストに対象としたＵｎｄｏ候補動作に係る操作者のエントリが無い場合（ステップＳ１１１ＢにおいてＮＯの場合）には、処理はステップＳ１１２に進む。
【０１４６】
その他のステップにおける処理については、図１５の対応するステップにおける処理と同様であるので、詳細な説明は繰返さない。
【０１４７】
なお、上述した実施の形態５では、委任リストを用いてユーザ単位で委任を設定する構成について例示したが、サーバ装置ＳＲＶに格納される履歴情報に委任属性を付加できるようにしてもよい。この場合には、対象としたＵｎｄｏ候補動作の各々について、委任の有無が随時判断される。
【０１４８】
［実施の形態６］
上述の実施の形態１〜５では、複数の情報処理装置ＰＣとサーバ装置ＳＲＶとで構成されるシステムについて例示したが、情報処理装置ＰＣ同士がいわゆるピア・トゥ・ピア接続により、同様のシステムを構成してもよい。
【０１４９】
図２７は、この発明の実施の形態６に従うワークスペースを提供するための情報処理装置ＰＣ１およびＰＣ２の制御構造を示すブロック図である。
【０１５０】
図２７を参照して、例えば、情報処理装置ＰＣ１に、実施の形態１に従う情報処理装置ＰＣの制御構造（図８）に含まれる各機能に加えて、実施の形態１に従うサーバ装置ＳＲＶ（図９）の主要な機能を実装するとともに、情報処理装置ＰＣ２に、実施の形態１に従う情報処理装置ＰＣの制御構造（図８）に含まれる機能のうちデータ格納部２６２などを除く機能を実装することで、サーバ装置ＳＲＶを必要としないでワークスペースを提供することができる。なお、各部の構成および動作については、上述したので、詳細な説明は繰返さない。
【０１５１】
このような構成を採用することで、より簡素化された構成によってワークスペースを実現することができる。
【０１５２】
あるいは、サーバ装置ＳＲＶがデータ格納部２６２に相当する機能を共通的に提供するようにしてもよい。
【０１５３】
［実施の形態１〜６の組み合わせ］
上述した実施の形態１〜６に従うそれぞれの構成を任意に組み合わせることも当然に実施可能である。
【０１５４】
［その他の実施の形態］
上述の実施の形態１〜６では、本発明を各種オブジェクトを任意に配置できるワークスペースに適用した場合の構成について例示したが、共同作業可能な表計算アプリケーションや文書作成アプリケーションであっても同様に適用可能である。すなわち、行列状にセルが配置された表計算アプリケーションでは、各セルを上述した１つのオブジェクトに相当するものと見なすことで、上記と同様の処理が可能である。また、文書作成アプリケーションでは、単語、文、段落、節などの各構成単位を上述した１つのオブジェクトに相当するものと見なすことで、上記と同様の処理が可能である。
【０１５５】
また、本発明に係るプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明に係るプログラムに含まれ得る。
【０１５６】
さらに、本発明に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明に係るプログラムに含まれ得る。
【０１５７】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記憶媒体とを含む。
【０１５８】
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
【０１５９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１６０】
２０１  ＣＰＵ、２０３  内部バス、２０５  モニター、２０７  通信インターフェイス、２０９  入力装置、２１１  ハードディスクドライブ（ＨＤＤ）、２１３  メモリ、２１５  ＣＤ−ＲＯＭドライブ、２１５ａ  ＣＤ−ＲＯＭ、２１７  ＦＤＤドライブ、２１７ａ  フレキシブルディスク、２５２  データ操作部、２５４  Ｖｉｅｗ作成部、２５６  描画部、２５８  Ｕｎｄｏ処理用インターフェイス、２６０  オブジェクト抽出部、２６２  データ格納部、２６２ａ  ワークスペースデータ、２６２ｂ  オブジェクトデータ、２６２ｃ  履歴情報、２６４  同期処理部、２６６，２９６  送受信部、２６８  Ｖｉｅｗ情報管理部、２７０，２９０  ユーザ認証部、２９２  データ格納部、２９２ａ  認証データ、２９２ｂ，２９２ｄ，２９２ｅ，２９２ｇ  Ｖｉｅｗ情報、２９２ｃ，２９２ｆ  Ｖｉｅｗ情報リスト、２９２ｈ  委任リスト、２９４  Ｖｉｅｗ情報管理部、３００  表示ウィンドウ、３０２  位置指定ウィンドウ、３０４  ツールボックス、４０２  ワークスペース名、４０３  オブジェクトデータ番号、４０６  オブジェクト名、４０７  履歴情報番号、４１０  履歴名、４１１  動作タイプ情報、４１２  動作時刻情報、４１３  動作場所情報、４１４  動作操作者情報、４１５  オブジェクト詳細情報、４２２  ユーザ名、４２３  Ｖｉｅｗ位置情報、４２５  Ｖｉｅｗ情報番号、４２７  アクティブ情報、４２８  更新時刻情報、４３１  更新履歴、４３３  選択オブジェクト名、ＮＷ  ネットワーク、ＯＢＪ，ＯＢＪ１  オブジェクト、ＰＣ，ＰＣ１〜ＰＣ３  情報処理装置、ＳＲＶ  サーバ装置、ＶＡ，ＶＡ１，ＶＡ２  Ｖｉｅｗ範囲、ＷＳ  ワークスペース。
【図１】
2009154045.tif 000003
【図２】
2009154045.tif 000004
【図３】
2009154045.tif 000005
【図４】
2009154045.tif 000006
【図５】
2009154045.tif 000007
【図６】
2009154045.tif 000008
【図７】
2009154045.tif 000009
【図８】
2009154045.tif 000010
【図９】
2009154045.tif 000011
【図１０】
2009154045.tif 000012
【図１１】
2009154045.tif 000013
【図１２Ａ】
2009154045.tif 000014
【図１２Ｂ】
2009154045.tif 000015
【図１３】
2009154045.tif 000016
【図１４】
2009154045.tif 000017
【図１５】
2009154045.tif 000018
【図１６】
2009154045.tif 000019
【図１７】
2009154045.tif 000020
【図１８】
2009154045.tif 000021
【図１９】
2009154045.tif 000022
【図２０】
2009154045.tif 000023
【図２１】
2009154045.tif 000024
【図２２】
2009154045.tif 000025
【図２３】
2009154045.tif 000026
【図２４】
2009154045.tif 000027
【図２５】
2009154045.tif 000028
【図２６】
2009154045.tif 000029
【図２７】
2009154045.tif 000030
【手続補正書】
【提出日】平成21年10月1日(2009.10.1)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
記憶部と、各々が入力部および表示部を含む複数の情報処理装置とを用いて、複数のユーザによる同時アクセス可能な仮想空間を提供する情報処理方法であって、
前記情報処理装置が、前記仮想空間のオブジェクトを前記表示部に描画するステップと、
前記情報処理装置が、前記入力部によって前記仮想空間においてユーザによってなされたオブジェクトに対する操作の履歴情報を前記記憶部に格納するステップとを備え、前記履歴情報は、オブジェクトに対する操作を行ったユーザの情報を含み、
前記情報処理装置が、ユーザによる操作取消の指示を受けて、前記記憶部の前記履歴情報に基づいて、操作取消候補となる操作および当該操作取消候補の対象となるオブジェクトを特定するステップと、
前記情報処理装置が、前記操作取消候補のオブジェクトが当該操作取消候補の操作を行ったユーザによって視認されているとみなされる場合に、当該操作取消候補についての操作取消を実行するステップとを備える、情報処理方法。
【請求項２】
前記履歴情報は、オブジェクトの位置情報をさらに含む、請求項１に記載の情報処理方法。
【請求項３】
前記描画するステップは、前記仮想空間のうちユーザにより指定された第１視野範囲内にあるオブジェクトを描画するステップを含み、
前記特定するステップは、操作取消候補の対象となるオブジェクトとしてその位置が前記第１視野範囲に含まれるものを操作取消候補として抽出するステップを含む、請求項２に記載の情報処理方法。
【請求項４】
前記操作取消を実行するステップは、
前記操作取消候補の操作を行ったユーザにより指定されている第２視野範囲を取得するステップと、
前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内であるか否かを判断するステップと、
前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内である場合には、前記操作取消を実行し、前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内ではない場合には、前記操作取消を実行しないステップとを含む、請求項２または３に記載の情報処理方法。
【請求項５】
前記操作取消を実行するステップは、
前記操作取消候補の操作を行ったユーザにより指定されている第２視野範囲を取得するステップと、
前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内であるか否かを判断するステップと、
前記第２視野範囲を描画する表示窓が選択状態であるか否かを判断するステップと、
前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内であり、かつ前記第２視野範囲を描画する表示窓が選択状態である場合には、前記操作取消を実行し、それ以外の場合には、前記操作取消を実行しないステップとを含む、請求項２または３に記載の情報処理方法。
【請求項６】
前記操作取消を実行するステップは、
前記操作取消候補の操作を行ったユーザにより指定されている第２視野範囲を取得するステップと、
前記操作取消候補の対象となるオブジェクトの位置が当該操作取消候補の操作の実行から継続して前記第２視野範囲内であったか否かを判断するステップと、
前記操作取消候補の対象となるオブジェクトの位置が継続して前記第２視野範囲内であった場合には、前記操作取消を実行し、前記操作取消候補の対象となるオブジェクトの位置が継続しては前記第２視野範囲内になかった場合には、前記操作取消を実行しないステップとを含む、請求項２または３に記載の情報処理方法。
【請求項７】
前記操作取消を実行するステップは、
前記操作取消候補の操作を行ったユーザにより指定されている第２視野範囲を取得するステップと、
前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内に含まれるか否かを判断するステップと、
前記操作取消候補の操作を行ったユーザによって前記操作取消候補のオブジェクトが選択されているか否かを判断するステップと、
前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内であり、かつ前記操作取消候補のオブジェクトが選択されていない場合には、前記操作取消を実行し、それ以外の場合には、前記操作取消を実行しないステップとを含む、請求項２または３に記載の情報処理方法。
【請求項８】
前記情報処理装置が、ユーザによる指示を受けて、当該ユーザによってなされた操作についての操作取消の実行の委任状態を設定するステップをさらに備え、
前記操作取消を実行するステップは、
前記操作取消候補の操作を行ったユーザにより指定されている第２視野範囲を取得するステップと、
前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内であるか否かを判断するステップと、
前記操作取消候補のオブジェクトについて委任状態に設定されているか否かを判断するステップと、
前記操作取消候補の対象となるオブジェクトの位置が前記第２視野範囲内である、および前記操作取消候補のオブジェクトについて委任状態に設定されている、のいずれかの場合には、前記操作取消を実行し、それ以外の場合には、前記操作取消を実行しないステップとを含む、請求項２または３に記載の情報処理方法。
【請求項９】
前記情報処理装置が、ユーザによる操作取消の再指示を受けて、前記記憶部からその位置情報が前記第１視野範囲内に含まれる次に新しい履歴情報を操作取消の次候補として抽出するステップと、
前記情報処理装置が、前記操作取消の次候補のオブジェクトが当該前記操作取消の次候補の操作を行ったユーザによって視認されているとみなされる場合に、当該前記操作取消の次候補についての操作取消を実行するステップとをさらに備える、請求項３に記載の情報処理方法。
【請求項１０】
他の情報処理装置および記憶部とデータ通信可能に構成され、複数のユーザによる同時アクセス可能な仮想空間を提供する情報処理装置であって、
入力部と、
表示部と、
前記仮想空間のオブジェクトを前記表示部に描画するための描画部と、
前記入力部によって前記仮想空間においてユーザによってなされたオブジェクトに対する操作の履歴情報を前記記憶部に格納するための管理部とを備え、前記履歴情報は、オブジェクトに対する操作を行ったユーザの情報を含み、
ユーザによる操作取消の指示を受けて、前記記憶部の前記履歴情報に基づいて、操作取消候補となる操作および当該操作取消候補の対象となるオブジェクトを抽出するための抽出部と、
前記操作取消候補のオブジェクトが当該操作取消候補の操作を行ったユーザによって視認されているとみなされる場合に、当該操作取消候補についての操作取消を実行するための実行部とを備える、情報処理装置。
【請求項１１】
入力部および表示部を含む情報処理装置の複数と記憶部とを用いて、複数のユーザによる同時アクセス可能な仮想空間を提供するためのプログラムであって、
前記プログラムは、前記情報処理装置に、
前記仮想空間のオブジェクトを前記表示部に描画するステップと、
前記入力部によって前記仮想空間においてユーザによってなされたオブジェクトに対する操作の履歴情報を前記記憶部に格納するステップとを実行させ、前記履歴情報は、オブジェクトに対する操作を行ったユーザの情報を含み、さらに
ユーザによる操作取消の指示を受けて、前記記憶部の前記履歴情報に基づいて、操作取消候補となる操作および当該操作取消候補の対象となるオブジェクトを認識するステップと、
前記操作取消候補のオブジェクトが当該操作取消候補の操作を行ったユーザによって視認されているとみなされる場合に、当該操作取消候補についての操作取消を実行するステップとを実行させる、プログラム。
【国際調査報告】
2009154045.tif 000031
2009154045.tif 000032
2009154045.tif 000033