この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
[実施の形態1]
(ワークスペースの全体構成)
図1は、この発明の実施の形態1に従うワークスペースを提供するためのシステムの概略構成図である。
図1を参照して、本実施の形態に従うシステムは、ネットワークNWを介して互いにデータ通信可能に接続されたデバイスである複数の情報処理装置PC1〜PC3(以下、「情報処理装置PC」とも総称する。)を含む。さらに、本実施の形態に従うシステムでは、後述するユーザ認証などを行なうために、情報処理装置の別形態であるサーバ装置SRVが同一のネットワークNWにデータ通信可能に接続されている。なお、これらの機能がいずれかの情報処理装置PCで提供される場合には、このサーバ装置SRVを省略することができる。
これらの情報処理装置PC1〜PC3は、後述するワークスペースデータを共有することで、複数のユーザによる同時アクセス可能な仮想空間を提供する。すなわち、いずれかの情報処理装置PC上でユーザ操作によってワークスペースが更新されると、当該更新後のワークスペースの内容が他の情報処理装置PCにも送信される。このような同期処理が随時行われることで、すべての情報処理装置PC間で実質的に同一のワークスペースの内容が共有されることになる。なお、複数の情報処理装置PCがワークスペースデータを個々に保持する構成に代えて、特定の1台の情報処理装置PC(マスター)のみがワークスペースデータを保持し、他の情報処理装置PC(スレーブ)が当該マスターの情報処理装置PCに対してデータアクセスをするような構成を採用することもできる。
さらに、サーバ装置SRVがワークスペースデータを一元的に保持するようにしてもよい。このような場合には、サーバ装置SRVが複数の表示部であるモニター205を複数提供することで、全体としては、1台の情報処理装置でワークスペースを提供することも可能となる。
なお、それぞれの情報処理装置PCは、論理的に相互にデータ通信可能であれば、必ずしも同一階層のネットワークに接続されている必要はない。
(ハードウェア構成)
図2は、この発明の実施の形態1に従う情報処理装置PCの代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
図2を参照して、本実施の形態1に従う情報処理装置PCは、オペレーティングシステムを含む各種プログラムを実行するCPU201と、CPU201でのプログラムの実行に必要なデータを一時的に記憶する記憶部としてのメモリ部213と、CPU201で実行されるプログラムを不揮発的に記憶するハードディスク部(HDD)211とを含む。このようなプログラムは、CD−ROM(Compact Disk-Read Only Memory)ドライブ215またはフレキシブルディスク(FD:Flexible Disk)ドライブ217によって、それぞれCD−ROM215aまたはフレキシブルディスク217aなどから読取られる。
CPU201は、キーボードやマウスなどからなる入力装置209を介してユーザによる操作要求を受取るとともに、プログラムの実行によって生成される画面出力を表示部であるモニター205へ出力する。また、CPU201は、LANカードなどからなる通信インターフェイス207を介して、他の情報処理装置PCやサーバ装置SRVとの間でデータ通信を行なう。なお、これらの部位は、内部バス203を介して互いに接続される。
また、サーバ装置SRVのハードウェア構成についても、図2と同様であるので、詳細な説明は繰返さない。
(ワークスペース)
本明細書において「ワークスペース」とは、複数のユーザによる同時アクセス可能な仮想空間を意味し、ワークスペースは、ワークスペースデータおよび当該ワークスペースデータに含まれる任意数のオブジェクトデータなどによって提供される。なお、本明細書中では、ワークスペースデータおよびオブジェクトデータなどをレンダリング(可視化)したものを「ワークスペース」という場合もある。
図3は、この発明の実施の形態1に従うワークスペースの一例を模式的に示した図である。
図3(a)には、可視化されたワークスペースWSの全体像を示す。このワークスペースWSには、一例として、3つのオブジェクトOBJが含まれているとする。なお、オブジェクトOBJは、ユーザによる各操作の対象となる対象物の単位であり、具体的には、文字を示すテキストオブジェクト、描画を示す線オブジェクト、イメージを示す画像オブジェクトといった任意の電子的に取扱可能な情報を用いることができる。
ワークスペースWSのサイズは自在に設定することができ、一般的に、情報処理装置PCのモニター205の表示サイズに比較して大きくなるように設定される。そのため、情報処理装置PCのモニター205には、図2(a)および図2(b)に示すようにワークスペースWSの一部の領域だけがレンダリング(可視化)される。以下では、情報処理装置PCのモニター205に表示される領域をView範囲(視野範囲)VAと称する。
図2(b)を参照して、情報処理装置PCのモニター205には、ワークスペースWSのうち、ユーザにより指定されたView範囲内のオブジェクトを描画したView表示ウィンドウ300が表示される。このView表示ウィンドウ300上には、View範囲VAをワークスペースWSのいずれの位置に配置するかを指定するためのView位置指定ダイアログ302、およびワークスペースWSにおける各種操作を行なうためのツールボックス304などが表示される。
すなわち、各情報処理装置PCを使用するユーザは、キーボードやマウスなどからなる入力装置209を用いて、View位置指定ダイアログ302を選択および操作することで、View範囲VAの位置を適宜指定する。また、ユーザは、キーボードやマウスなどからなる入力装置209を用いて、ツールボックス304に含まれる各種操作ボタンを選択したり、表示されるオブジェクトを選択してドラッグしたりすることで、各オブジェクトの新規作成・変更・削除といった操作が可能である。
図4は、この発明の実施の形態1に従うワークスペースを提供するためのデータ構造を示す模式図である。
図4を参照して、データ構造には、ワークスペースのサイズ、ワークスペース名、オブジェクトデータのファイル名などを記述したワークスペースデータ262aが含まれる。このワークスペースデータ262aに対応付けて、各オブジェクトを記述するオブジェクトデータ262bが設けられる。このオブジェクトデータ262bは、ユーザがワークスペース上で新たなオブジェクトを追加した場合に新規作成される。さらに、各オブジェクトデータ262bに対応付けて、履歴情報が設けられる。この履歴情報は、ユーザによってなされたオブジェクトに対する操作の内容を順次格納したものである。そのため、履歴情報は、オブジェクトに対して何らかの操作がなされれば、新規作成もしくはその内容が更新される。
これらの各データの詳細な内容については、後述する。
(Undo機能の概要)
次に、図5および図6を参照して、本実施の形態に従うワークスペースで提供されるUndo機能について説明する。
図5は、この発明の実施の形態1に従うワークスペースの使用状態の一例を示す図である。図6は、図5に示す使用状態におけるUndo処理の実行例を示す図である。
図5を参照して、ワークスペースWSにおいて、4つのオブジェクトOBJ1〜OBJ4が既に作成されているものとする。また、情報処理装置PC1のユーザは、オブジェクトOBJ3を除く範囲をView範囲VA1と設定しているものとする。ここで、情報処理装置PC1のユーザが、入力装置209を操作して、情報処理装置PCのモニター205に表示されるツールボックス304に含まれるUndo処理の実行を指示するボタン(以下、「Undoボタン」とも称す。)を選択すると、ワークスペースWS上に存在するオブジェクトに対してUndo処理が実行される。すなわち、ツールボックス304に含まれるUndoボタンは、ユーザからの操作取消の指示を受付ける。
特に、本実施の形態に従うワークスペースでは、Undo処理を実行しようとするユーザ(この例では、情報処理装置PC1のユーザ)が視認する範囲内に含まれるオブジェクトに係る操作がUndo処理の候補となる操作(以下、「Undo候補操作」とも称す。)として抽出される。すなわち、ワークスペースWS上に存在するすべてのオブジェクトではなく、Undo処理を実行しようとするユーザ(この例では、情報処理装置PC1のユーザ)が視認する範囲内に含まれるオブジェクトに係る操作のみをUndo候補操作とする。そして、Undo候補操作として抽出された操作に対して、所定の順序(典型的には、操作がなされた時系列)に従って、Undo処理が順次実行される。
以下に示す本実施の形態では、Undo処理を実行しようとするユーザが視認する範囲を、当該ユーザによって指定されているView範囲と同じ範囲とみなされる。すなわち、Undo処理を実行しようとするユーザが指定しているView範囲に含まれるオブジェクトに係る操作がUndo候補操作として抽出される。
より具体的な処理としては、図5に示す状態において、Undoボタンが選択されると、すなわちUndo処理が指示されると、図6に示すように、View範囲VA1に含まれるオブジェクトOBJ1,OBJ2,OBJ4に係る操作のみがUndo候補操作として抽出され、View範囲VA1の外に位置するオブジェクトOBJ3に係る操作については、Undo候補操作とはならない。
さらに、オブジェクトOBJ1,OBJ2,OBJ4に係る操作のうち、オブジェクトOBJ2に係る操作(この例では、移動操作)が最も新しいものであるとすると、当該操作が取り消されて、すなわちオブジェクトOBJ2に対してUndo処理が実行されて、オブジェクトOBJ2は移動前の位置に戻る。
このように、本実施の形態に従うワークスペースにおいては、Undo処理を実行しようとするユーザが視認する範囲内に含まれるオブジェクトに係る操作に絞って、Undo候補操作が抽出されるので、同一のワークスペース上に多くのオブジェクトが存在する場合であっても、Undo処理の対象を効率的に特定できる。また、他のユーザが変更などを行なったオブジェクトに対して誤ってUndo処理を行なってしまうといったミスも防ぐことができる。
(情報処理装置の制御構造)
図7は、この発明の実施の形態1に従う情報処理装置PCの制御構造を示すブロック図である。
図7を参照して、情報処理装置PCの各々は、その制御構造として、データ操作部252と、View管理部254と、描画部256と、Undo処理用インターフェイス258と、オブジェクト抽出部260と、データ格納部262と、同期処理部264と、送受信部266と、ユーザ認証部270とを含む。データ格納部262は、ハードディスク部211(図2)の任意の領域として提供され、送受信部266は、通信インターフェイス207(図2)および関連するドライバソフトの共同によって提供され、その他の各部は、代表的に、CPU201(図2)がプログラムをメモリ部213(図2)に展開し、各コマンドを実行することで提供される。なお、これらの機能の全部もしくは一部をハードウェアによって実現してもよい。
また、データ格納部262は、互いに関連付けられた、ワークスペースデータ262aと、オブジェクトデータ262bと、履歴情報262cとを含む。さらに、データ格納部262は、View情報262dを含む。
データ操作部252は、ユーザによる入力装置209の操作に従って、対象のオブジェクトについてのオブジェクトデータ262bおよび履歴情報262cの新規作成・変更・削除などを行なう。このとき、データ操作部252は、後述するユーザ認証部270からのユーザ情報に基づいて、各操作について、いずれのユーザによってなされた操作であるのかを履歴情報262cに記述してもよい。また、データ操作部252は、後述するUndo処理用インターフェイス258からのUndo処理を指示する指令に従って、対象のオブジェクトデータ262bの内容を更新する。これにより、対象のオブジェクトに対する操作が取り消される。
View管理部254は、データ格納部262に格納されているワークスペースデータ262a、オブジェクトデータ262b、履歴情報262cを参照して、ユーザにより指定されたView範囲に含まれるオブジェクトなどの情報を描画部256へ出力する。また、View管理部254は、現在のView範囲の位置情報をView情報262dに出力する。このView情報262dは、View範囲の変更に伴って、随時更新される。
描画部256は、データ格納部262に格納されるView情報262dを参照して、現在のView範囲に含まれるオブジェクトを特定し、当該オブジェクトに基づいて、描画処理を行なう。すなわち、描画部256は、ワークスペースのうちView範囲内のオブジェクトを可視化したView表示ウィンドウ300(図3(b)参照)を生成する。
Undo処理用インターフェイス258は、本実施の形態に従うUndo処理を全体的に制御する。具体的には、Undo処理用インターフェイス258は、後述するオブジェクト抽出部260により抽出(認識)されたUndo候補操作を、それぞれの操作が行われた時刻順に並べ替える。続いて、Undo処理用インターフェイス258は、ユーザ操作に従って、並び替えられたUndo候補操作を取り消すための指令をデータ操作部252へ順次与える。
オブジェクト抽出部260は、ユーザ操作によってUndo処理が指示されると、データ格納部262に格納されるView情報262dを参照してView範囲の位置情報を取得し、データ格納部262内のオブジェクトデータ262bおよび履歴情報262cを参照して、当該View範囲内に含まれるUndo候補操作を抽出する。このとき、当該View範囲に存在するまたは存在していたオブジェクトの履歴情報262cがUndo候補操作となる。
同期処理部264は、ワークスペースを提供するワークスペースデータ262a、オブジェクトデータ262b、履歴情報262cを他の情報処理装置PCとの間で同期する。すなわち、同期処理部264は、自装置においてワークスペースデータ262a、オブジェクトデータ262b、履歴情報262cのいずれかが追加または更新されると、追加または更新後の各データの全部または差分を、ワークスペースデータを共有している他の情報処理装置PCへそれぞれ送信する。また、同期処理部264は、他の情報処理装置PCから追加または更新後のデータの全部または差分を受信すると、それに応じて、自装置のデータ格納部262に格納されているデータを更新する。
送受信部266は、他の情報処理装置PCおよびサーバ装置SRVとの間のデータ通信を制御する。具体的には、送受信部266は、同期処理部264からの要求に応じて必要なメッセージを送信したり、他の情報処理装置PCまたはサーバ装置SRVから受信したデータを同期処理部264へ与えたりする。
ユーザ認証部270は、本実施の形態に従うワークスペースのアプリケーションを使用するユーザ認証を行なう。具体的には、当該ワークスペースのアプリケーションが実行されると、ユーザ認証部270は、ユーザにIDおよびパスワードの入力を促す。そして、ユーザからIDおよびパスワードの入力があると、サーバ装置SRV(図1)に問合せを行なってユーザ認証を行なう。ユーザ認証が成功すると、ユーザによる当該ワークスペースのアプリケーションの使用を許可するとともに、現在使用中(ログイン中)のユーザ名を保持する。なお、本実施の形態においては、ユーザ認証部270により認証されたユーザのIDに基づいて、履歴情報262cにそれぞれの操作を行なったユーザ名が記述される。なお、履歴情報262cには、必ずしもユーザ名を記述する必要はない。
(データ構造)
情報処理装置PCのデータ格納部262に格納される各データの構造について、図8〜図11を参照して説明する。各データは、代表的に、XML(Extensible Markup Language)などのマークアップ言語で記述される。これは、タグ(<>と</>とで囲まれる文字に与える属性)を自在に設定することでシステムの拡張性を高めるためである。
(1−1)ワークスペースデータ
図8は、この発明の実施の形態1に従うワークスペースデータ262aの内容の一例を示す図である。図8を参照して、ワークスペースデータ262aは、当該ワークスペースを特定するための識別番号(ID)401と、当該ワークスペースの名称であるワークスペース名402と、当該ワークスペースに含まれるオブジェクトを特定するためのオブジェクトデータ番号403とを含む。
オブジェクトデータ番号403は、ユーザ操作によってワークスペース上に追加されたオブジェクトに応じて順次追記される。なお、ワークスペースに一旦オブジェクトが追加されると、たとえその後、当該オブジェクトが削除されたとしても、特段の処理がなされない限り、オブジェクトデータ番号403の記述自体は残存する。これは、後述するように、Undo機能を提供するためには、各オブジェクトの履歴情報を残しておく必要があるからである。
(1−2)オブジェクトデータ
図9は、この発明の実施の形態1に従うオブジェクトデータ262bの内容の一例を示す図である。図9を参照して、オブジェクトデータ262bは、図8に示すワークスペースデータ262aに記述されるオブジェクトデータ番号403に対応付けて生成される。すなわち、各オブジェクトデータ262bは、ワークスペースデータ262aのオブジェクトデータ番号403(図8)と対応付けられた識別番号(ID)405を含む。さらに、各オブジェクトデータ262bは、当該オブジェクトの名称であるオブジェクト名406と、当該オブジェクトについての所有者(オーナー)を特定するためのオーナー情報407と、当該オブジェクトについての履歴情報を特定するための履歴情報番号408とを含む。
オーナー情報407は、対応のオブジェクトを新規作成もしくは変更したユーザを特定するための情報である。オーナー情報407に記述されたユーザは、典型的には、対象のオブジェクトの変更などに対する権限を有するユーザとして扱われる。すなわち、オーナー情報407は、各オブジェクトについてのオーナーを特定するための属性である。
また、履歴情報番号408は、後述する履歴情報の識別番号と対応付けられた番号である。なお、履歴情報の識別番号は任意に設定することができるが、本実施の形態では、時系列に識別番号が増加、すなわち新しいものほど大きな識別番号であるとする。
(1−3)履歴情報
図10は、この発明の実施の形態1に従う履歴情報262cの内容の一例を示す図である。図10を参照して、履歴情報262cは、図9に示すオブジェクトデータ262bに記述された履歴情報番号408と対応付けて生成される。すなわち、オブジェクトデータ262bの履歴情報番号408(図11)と対応付けられた識別番号(ID)409を含む。さらに、各履歴情報262cは、当該履歴情報の名称である履歴名410と、当該履歴の操作された内容を示す動作タイプ情報411と、当該履歴の操作がなされた時刻を示す動作時刻情報412と、当該履歴の操作がなされた位置情報(各座標)を示す動作場所情報413と、当該履歴の操作を行なったユーザを示す動作操作者情報414と、対応のオブジェクトの詳細な情報を示すオブジェクト詳細情報415とを含む。
動作タイプ情報411には、対応のオブジェクトについてなされた操作の内容、たとえば「(新規)作成」、「移動」、「サイズ変更」、「削除」などの値が記述される。動作時刻情報412には、ユーザが各オブジェクトに対して操作を行なった時刻が記述される。なお、履歴情報262cは、ユーザが各オブジェクトに対して1回の操作(たとえば、1回の移動操作)を行なう毎に新規作成される。
動作場所情報413には、ユーザが各オブジェクトに対して操作を行なったワークスペース上の位置情報(開始位置または終点位置)の値が記述される。
動作操作者情報414には、各オブジェクトに対して操作を行なったユーザを特定するための値が記述される。このユーザを特定するための値としては、ユーザ認証部270(図7)が保持する認証されたユーザ名などが用いられる。
オブジェクト詳細情報415には、各オブジェクトを規定する情報が記述される。たとえば、対応のオブジェクトが線オブジェクト(オブジェクトタイプが「線」)であれば、そのアウトラインを示すベクトルデータ(始点、終点、アンカーポイント、曲率)などが記述される。また、対応のオブジェクトが画像オブジェクト(オブジェクトタイプが「・・・.jpg」)であれば、その画像データを特定するためのファイル名などが記述される。
なお、上述の例では、各オブジェクトデータと対応する履歴情報とは、互いにリンク付けした別のファイル(データ)として取扱う構成について説明したが、各オブジェクトデータに履歴情報を含ませた同一のファイル(データ)としてもよい。
(1−4)View情報リスト
図11は、この発明の実施の形態1に従うView情報262dの内容の一例を示す図である。図11を参照して、View情報262dは、当該View情報を特定するための識別番号(ID)421と、情報処理装置PCを使用しているユーザを特定するためのユーザ名422と、情報処理装置PCにおけるView範囲の各頂点の座標を示すView位置情報423とを含む。
(Undo処理の処理手順)
図12は、この発明の実施の形態1に従うUndo処理の処理手順を示すフローチャートである。なお、図12に示す処理手順は、代表的に、情報処理装置PCのCPU201がプログラムを実行することで提供される。ここで、情報処理装置PCでは、ワークスペースのうち各ユーザにより指定されたView範囲内のオブジェクトがモニター205に逐次描画されているものとする。また、情報処理装置PCでは、ワークスペースにおいて各ユーザによってなされた何らかのオブジェクトに対する操作がなされると、その内容がデータ格納部262の履歴情報262cに順次格納される。
図12を参照して、まず、情報処理装置PCのCPU201は、ユーザがツールボックス304(図5および図6参照)のUndoボタンを選択したか否かを判断する(ステップS100)。Undoボタンが選択されていなければ(ステップS100においてNO)、ステップS100の処理が繰返される。一方、Undoボタンが選択された場合(ステップS100においてYESの場合)には、処理はステップS102に進む。
すなわち、何らかの操作を取り消そうとするユーザは、使用している情報処理装置PCを操作して、対象の操作がなされたオブジェクトの存在している位置、あるいは存在していた位置を含むように、View範囲を設定した上で、View表示ウィンドウ300(図5および図6参照)に表示されるツールボックス304のUndoボタンをマウスなどによって選択する。
ステップS102では、情報処理装置PCのCPU201は、データ格納部262(ハードディスク部211)に格納されるView情報262dを参照して、現在のView範囲の情報(各頂点の座標)を取得する。続いて、情報処理装置PCのCPU201は、データ格納部262に格納されているすべての履歴情報262c(ハードディスク部211)を参照し、それぞれの履歴情報262cに含まれる動作場所情報413(図10)の値に基づいて、View範囲に含まれるUndo候補操作を抽出する(ステップS104)。すなわち、情報処理装置PCのCPU201は、その位置情報である動作場所情報413の値がステップS102において取得したView範囲に含まれる履歴情報262cをUndo候補操作として抽出する。
さらに、情報処理装置PCのCPU201は、抽出したUndo候補操作を、それぞれの動作時刻情報412(図12)の値に基づいて実行された時刻の新しい順に並び替える(ステップS106)。すなわち、情報処理装置PCのCPU201は、抽出したUndo候補操作について、動作時刻情報412の値をキーにして降順にソートする。
以下、ステップS104およびS106における処理について、図13および図14を参照して説明する。
図13は、この発明の実施の形態1に従う履歴情報の一例を示す図である。図14は、図13に示す履歴情報から抽出されたUndo候補操作およびそれらの並び替え後の一例を示す図である。
一例として、ワークスペース上に、「オブジェクトA」(ID=1)、「オブジェクトB」(ID=2)、「オブジェクトC」(ID=3)、「オブジェクトD」(ID=4)の4つのオブジェクトが配置されているものとする。そして、図13は、これらのオブジェクトの履歴情報262cに記述された内容を簡潔に表形式で示したものである。なお、図13において、各履歴情報についての左側の枠には、上から順に「動作タイプ情報411」、「動作時刻情報412」、「動作操作者情報414」の値が示されているものとする。また、各履歴情報についての右側の枠には、上から順に「動作場所情報413」の「X座標値」および「Y座標値」が示されているものとする。
なお、図13に示す表は説明の便宜上のものであり、図13と同じデータ構造のデータを必ずしも生成する必要はない。
このような各オブジェクトについての履歴情報に対して、情報処理装置PCのCPU201は、現在のView範囲内にあるものを抽出する。たとえば、現在のView範囲の各頂点の座標が(421,385),(610,385),(421,518),(610,518)である場合には、履歴情報のうち、その動作場所情報413のX座標値が421〜610の範囲であり、かつY座標値が385〜518の範囲であるものが、Undo候補操作として抽出される。
図13に示す例では、オブジェクトCの履歴情報(1)がこの例におけるView範囲外に存在することになるので、それを除いた残りの履歴情報がUndo候補操作として抽出される。
さらに、情報処理装置PCのCPU201は、抽出したUndo候補操作を、それぞれの動作時刻情報412の値に基づいて新しい順に並び替える。図14には、上述のような抽出および並び替え後のUndo候補操作の一例が示される。これらのUndo候補操作の内容がUndo処理の対象となる。その後、処理はステップS108(図12)に進む。
再度、図12を参照して、ステップS108では、情報処理装置PCのCPU201は、ステップS106において並び替えたUndo候補操作のうち、最新のものを対象のUndo候補操作とする。続く、ステップS110では、情報処理装置PCのCPU201は、対象のUndo候補操作に対するUndo処理を実行する。より具体的には、情報処理装置PCのCPU201は、データ格納部262に格納されているオブジェクトデータ262b(図9)に記述された履歴情報番号408のうち対応するもの(履歴情報番号の値が最も大きいもの)を削除する。この操作によって、対象としたオブジェクトには、1つ少ない履歴情報番号をもつ履歴情報がその属性として対応付けられ、最も新しい操作が取り消されたことになる。そして、処理はステップS112に進む。
ステップS112では、情報処理装置PCのCPU201は、ステップS106において並び替えたUndo候補操作のうち、次に新しいものが存在するか否かを判断する。次に新しいものが存在しない場合(ステップS112においてNOの場合)には、Undo処理は終了する。
一方、次に新しいUndo候補操作が存在する場合(ステップS112においてYESの場合)には、情報処理装置PCのCPU201は、当該次に新しいUndo候補操作を対象のUndo候補操作とする(ステップS114)。さらに、情報処理装置PCのCPU201は、ユーザがツールボックス304のUndoボタンを再度選択したか否かを判断する(ステップS116)。Undoボタンが再度選択された場合(ステップS116においてYESの場合)には、処理はステップS110に移る。
一方、Undoボタンが再度選択されていなければ(ステップS116においてNO)、情報処理装置PCのCPU201は、ユーザがUndoボタン以外の他の操作を指示したか否かを判断する(ステップS118)。ユーザが何らの操作もしていない場合には(ステップS118においてNOの場合)、処理はステップS116に戻る。
これに対して、ユーザがUndoボタン以外の他の操作を指示した場合(ステップS118においてYESの場合)には、Undo処理は終了し、指定された操作に対応する処理を実行する。
(実施の形態1における作用・効果)
本実施の形態によれば、複数のユーザによる同時アクセス可能な仮想空間であるワークスペースにおいて、複数のオブジェクトが存在する場合であっても、操作取消を実行しようとするユーザは、自身の視認する範囲に含まれるオブジェクトに係る操作のみが、その候補として抽出される。このように、Undo候補操作が各ユーザの視認する範囲に絞り込まれるので、Undo処理の対象とすべきオブジェクトを効率的に特定することができる。
したがって、各ユーザは、簡単な操作によって、Undo処理の対象とするオブジェクトを効率的に特定して、処理を実行できることになり、共同作業全体としての効率を高めることができる。同時に、各ユーザが視認する範囲外に存在するオブジェクトに係る操作に対して、当該ユーザが関知しないところでUndo処理が実行されてしまうといった事態を回避できる。
[実施の形態2]
上述した実施の形態1では、情報処理装置PCのユーザが設定したView範囲内に存在するオブジェクトに係る操作をすべてUndo候補操作とする構成について例示した。一方、状況によっては、特定のユーザが所有者となっているオブジェクトに係る操作のみをUndo候補操作としたい場合もある。たとえば、同一の共同作業を行なうチームのメンバー間でのみ、Undo処理を許可したいような場合も想定される。このような場合には、以下に説明する実施の形態2に従う構成がより適切である。
なお、この発明の実施の形態2に従うワークスペースを提供するためのシステムおよび情報処理装置PCの構成などについては、上述した実施の形態1と同様であるので、詳細な説明は繰返さない。
図15は、この発明の実施の形態2に従うViewフィルタリング設定を行なうためのダイアログの一例を示す図である。図16は、この発明の実施の形態2に従うワークスペースの使用状態におけるUndo処理の実行例を示す図である。
本実施の形態に従う情報処理装置PCのモニター205には、ユーザ操作に応じて、もしくはワークスペースの描画開始とともに、図15に示すViewフィルタリング設定を行なうためのダイアログが表示される。すなわち、このダイアログは、Undo候補操作とすべきオブジェクトのオーナーの設定を受付ける。より具体的には、このダイアログ上で設定(チェックボックスが選択)されたユーザがオーナーであるオブジェクトに係る操作のみが、Undo候補操作として抽出され得る。図15に示す一例においては、「表示するオブジェクトのオーナー」として、「ユーザA」、「ユーザB」、「ユーザC」が選択されている。
なお、図15に示すダイアログでは、ワークスペースに既に存在するオブジェクトのオーナーを抽出して、その選択候補(ユーザA,ユーザB,・・・)が表示される。あるいは、サーバ装置SRV(図1)へ問い合わせを行なって、認証可能なユーザの一覧を取得することで、その選択候補(ユーザA,ユーザB,・・・)が表示されてもよい。
図16を参照して、本実施の形態に従うワークスペースWSにおいて、図5と同様に、4つのオブジェクトOBJ1〜OBJ4が既に作成されているものとする。また、情報処理装置PC1のユーザは、オブジェクトOBJ3を除く範囲をView範囲VA1と設定しているものとする。さらに、オブジェクトOBJ1およびOBJ2のオーナーは「ユーザA」であり、オブジェクトOBJ3のオーナーは「ユーザC」であり、オブジェクトOBJ4のオーナーは「ユーザD」であるものとする。
ここで、情報処理装置PC1のユーザが、入力装置209を操作して、情報処理装置PCのモニター205に表示されるツールボックス304に含まれるUndoボタンを選択すると、上述の実施の形態1と同様に、ワークスペースWS上に存在するオブジェクトに対してUndo処理が実行される。特に、本実施の形態に従うワークスペースでは、図15に示すようなViewフィルタリング設定に適合するオブジェクトに係る操作のみがUndo候補操作として抽出される。すなわち、それぞれの履歴情報のうち、その対象であるオブジェクトに付加されているオーナーの属性が、図15に示すViewフィルタリング設定には含まれないものは、Undo候補操作から除外される。
図16に示す例では、Undo処理を実行しようとするユーザが視認する範囲内(View範囲VA1内)に存在するオブジェクトのうち、「ユーザA」がオーナーであるオブジェクトOBJ1およびOBJ2に係る操作のみがUndo候補操作として抽出される。ここで、Undo候補操作から除外された履歴情報に対応するオブジェクトOBJ4については、少なくとも一連のUndo処理の実行中にわたって、ワークスペースWS上で非表示に維持(あるいは、透明化)される。以下、上述の実施の形態1と同様に、これらのUndo候補操作として抽出された履歴情報に対して、所定の順序(典型的には、操作がなされた時系列)に従って、Undo処理が順次実行される。
このように、Undo候補操作として抽出されなかったオブジェクトOBJ4については非表示とされることで、Undo処理を実行しようとするユーザが混乱することを抑制できる。
この発明の実施の形態2に従う情報処理装置PCの制御構造については、データ格納部262に保持されるView情報の内容を除いて、上述の図7に示す制御構造と同様であるので詳細な説明は繰返さない。
図17は、この発明の実施の形態2に従うView情報262d#1の内容の一例を示す図である。図17を参照して、View情報262d#1は、図11に示すView情報262dに含まれるデータに加えて、フィルタリング情報424をさらに含む。このフィルタリング情報424は、図15に示すダイアログでの設定、すなわちUndo候補操作の対象とすべきオブジェクトのオーナー設定を記述するものである。具体的には、図15に示すダイアログ上で設定(チェックボックスが選択)されたユーザが、<表示>タグのエレメントとして記述される。後述するように、このフィルタリング情報424の内容に基づいて、Undo候補操作が抽出される。
(Undo処理の処理手順)
図18は、この発明の実施の形態2に従うUndo処理の処理手順を示すフローチャートである。図18に示す処理手順は、図12に示す実施の形態1に従うUndo処理の処理手順を示すフローチャートにおいて、ステップS103を追加するとともに、ステップS104に代えてステップS104Aを実行するようにしたものである。
また、図18に示す処理手順は、代表的に、情報処理装置PCのCPU201がプログラムを実行することで提供される。ここで、情報処理装置PCでは、ワークスペースのうち各ユーザにより指定されたView範囲内のオブジェクトがモニター205に逐次描画されているものとする。また、情報処理装置PCでは、ワークスペースにおいて各ユーザによってなされた何らかのオブジェクトに対する操作がなされると、その内容がデータ格納部262の履歴情報262cに順次格納される。
図18を参照して、情報処理装置PCのCPU201は、データ格納部262(ハードディスク部211)に格納されるView情報262dを参照して、現在のView範囲の情報(各頂点の座標)を取得する(ステップS102)とともに、フィルタリング情報を取得する(ステップS103)。続くステップS104Aにおいて、情報処理装置PCのCPU201は、データ格納部262に格納されているすべての履歴情報262c(ハードディスク部211)を参照し、それぞれの履歴情報262cに含まれる動作場所情報413(図10)の値、および関連付けられているオブジェクトデータ262bに含まれるオーナー情報407に基づいて、Undo候補操作を抽出する(ステップS104A)。すなわち、情報処理装置PCのCPU201は、その位置情報である動作場所情報413の値がステップS102において取得したView範囲に含まれ、かつ対応するオブジェクトのオーナーがステップS103において取得したフィルタリング情報に合致する履歴情報262cをUndo候補操作として抽出する。
これらの処理により、Undo処理を実行しようとするユーザが視認する範囲内に存在し、かつ所定のフィルタリング情報に合致するオブジェクトに係る操作がUndo処理の候補として抽出される。
その他の処理については、図12に示すフローチャートと同様であるので、詳細な説明は繰返さない。
なお、図15に示すフィルタリングの設定において、抽出されるUndo候補操作の一例を示すと、図19のようになる。図19は、この発明の実施の形態2において、図13に示す履歴情報から抽出されるUndo候補操作およびそれらの並び替え後の一例を示す図である。図14に示す実施の形態1に従う履歴情報から抽出されたUndo候補操作およびそれらの並び替え後の一例と比較すると分かるように、図19では、オーナーが「ユーザD」であるオブジェクトOBJ4に係る操作については、Undo候補操作から除外される。
(実施の形態2における作用・効果)
本実施の形態によれば、上述の実施の形態1における作用・効果に加えて、Undo候補操作として抽出する対象をより絞り込むことができる。すなわち、本実施の形態によれば、予め設定した同一の共同作業を行なうチームのメンバーが行なった操作のみを、Undo候補操作として抽出できるので、Undo処理の対象とすべきオブジェクトをより効率的に特定することができる。
したがって、各ユーザは、簡単な操作によって、Undo処理の対象とするオブジェクトを効率的に特定して、処理を実行できることになり、共同作業全体としての効率をより高めることができる。
[実施の形態3]
上述した実施の形態1では、情報処理装置PCのユーザが視認する範囲内に存在するオブジェクトに係る操作をすべてUndo候補操作とする構成について例示した。一方、状況によっては、Undo候補操作を、同一の共同作業を行なうすべてのメンバーが視認している範囲内に存在するオブジェクトに係る操作に限ることが好ましい場合もある。このような場合には、以下に説明する実施の形態3に従う構成がより適切である。
なお、この発明の実施の形態3に従うワークスペースを提供するためのシステムおよび情報処理装置PCの構成などについては、後述する内部の制御構造を除いて、上述した実施の形態1と同様であるので、詳細な説明は繰返さない。
図20は、この発明の実施の形態3に従う共同ユーザ設定を行なうためのダイアログの一例を示す図である。図21は、この発明の実施の形態3に従うワークスペースの使用状態におけるUndo処理の実行例を示す図である。図22は、図20に示す共同ユーザ設定を行なうためのダイアログに対する設定が有効化されている場合の情報処理装置PCのモニターでの表示例を示す図である。
本実施の形態に従う情報処理装置PCのモニター205には、ユーザ操作に応じて、もしくはワークスペースの描画開始とともに、図20に示す共同ユーザ設定を行なうためのダイアログが表示される。このダイアログは、ワークスペース上で共同作業を行なうユーザのグループの設定を受付ける。より具体的には、このダイアログ上で設定(チェックボックスが選択)された(複数の)ユーザが共通に視認する範囲に含まれるオブジェクトに係る操作がUndo候補操作として抽出される。
このように、図20に示すダイアログは、Undo候補操作を抽出するためのさらなる絞込条件を受付ける。図20に示す一例においては、「共同作業ユーザ」として、「ユーザA」および「ユーザB」が選択されている。すなわち、「ユーザA」および「ユーザB」が、ワークスペース上で共同作業を行なうユーザのグループとして設定されている。
なお、図20に示すダイアログでは、サーバ装置SRV(図1)へ問い合わせを行なって、認証可能なユーザの一覧を取得することで、その選択候補(ユーザA,ユーザB,・・・)を表示される。
図21を参照して、本実施の形態に従うワークスペースWSにおいて、図5と同様に、4つのオブジェクトOBJ1〜OBJ4が既に作成されているものとする。また、ユーザAが情報処理装置PC1を使用しており、ユーザBが情報処理装置PC2を使用しているものとする。さらに、ユーザAは、情報処理装置PC1を操作して、オブジェクトOBJ1,OBJ2,OBJ4を含む範囲をView範囲VA1と設定しており、ユーザBは、情報処理装置PC2を操作して、OBJ2を含む範囲をView範囲VA2と設定しているものとする。
ここで、情報処理装置PC1のユーザが、入力装置209を操作して、情報処理装置PCのモニター205に表示されるツールボックス304に含まれるUndoボタンを選択すると、上述の実施の形態1と同様に、ワークスペースWS上に存在するオブジェクトに対してUndo処理が実行される。
特に、本実施の形態に従うワークスペースでは、図20において設定されるグループに含まれるそれぞれのユーザが共通に視認する範囲に含まれるオブジェクトに係る操作のみがUndo候補操作として抽出される。典型的に、図21に示す例では、ユーザAが視認する範囲(典型的には、View範囲VA1)と、ユーザBが視認する範囲(典型的には、View範囲VA2)との重複View範囲VAC内に存在するオブジェクトOBJ2に係る操作のみがUndo候補操作として抽出される。その後、上述の実施の形態1と同様に、これらのUndo処理の候補として抽出された操作に対して、所定の順序(典型的には、操作がなされた時系列)に従って、Undo処理が順次実行される。
なお、図20に示す共同ユーザ設定を行なうためのダイアログに対する設定が有効化されている場合には、情報処理装置PCのモニター205には、図22に示すような設定中のグループに含まれるユーザを示すダイアログ306が表示されてもよい。
また、上述の説明では、2人のユーザが視認している範囲の間での重複範囲を特定する構成について例示したが、3人以上のユーザが視認している範囲の間での重複範囲を特定するようにしてもよい。
あるいは、上述の説明では、それぞれのユーザが視認している範囲の間での重複範囲に含まれるオブジェクトに係る操作をUndo候補操作として抽出する構成について例示したが、共同作業を行なういずれかのユーザが視認しているオブジェクトに係る操作をUndo対象とすることもできる。このような場合には、それぞれのユーザが視認している範囲を合計した範囲から、Undo候補操作を抽出するようにしてもよい。
このように、共同作業を行なっているすべてのユーザ(設定されたグループに属するユーザ)が共通に視認している範囲内のオブジェクトに係る操作のみがUndo候補操作として抽出されるので、共同作業を行なっているユーザのうち一部のユーザが関知しないところで、Undo処理が実行されるといった事態を回避できる。
(情報処理装置の制御構造)
図23は、この発明の実施の形態3に従う情報処理装置PCの制御構造を示すブロック図である。
図23に示す情報処理装置PCの制御構造は、図7に示す情報処理装置PCの制御構造において、View情報交換部268を追加したものに実質的に等しい。
View情報交換部268は、後述するようにサーバ装置SRVとの間で、現在のView範囲の位置情報および重複View範囲の位置情報を交換する。より具体的には、View情報交換部268は、データ格納部262に格納されているView情報262dをサーバ装置SRVへ送信するとともに、サーバ装置SRVから重複View範囲の位置情報を取得する。View情報交換部268は、View範囲の設定が変更されるたびに、サーバ装置SRVへその変更後の値を随時送信する。
なお、本実施の形態においては、重複View範囲は、それぞれの情報処理装置PCからサーバ装置SRVへ送信されるView範囲の位置情報に基づいて、サーバ装置SRVが算出する。このような構成に代えて、View情報交換部268が他の情報処理装置PCなどからそれぞれのユーザについてのView範囲の位置情報を取得して、各情報処理装置PCにおいて重複View範囲を特定してもよい。
また、View情報交換部268は、送受信部266を介して、図20に示すダイアログにおいて設定される共同ユーザ設定についてもサーバ装置SRVへ送信する。
その他の部位については、図7に示す情報処理装置PCの制御構造の対応する部位と同様であるので、詳細な説明は繰返さない。
(サーバ装置の制御構造)
図24は、この発明の実施の形態3に従うサーバ装置SRVの制御構造を示すブロック図である。
図24に示すサーバ装置SRVの制御構造は、その制御構造として、送受信部290と、データ格納部292と、共同ユーザ管理部294と、重複View情報生成部296と、View情報更新部298とを含む。データ格納部292は、ハードディスク部211(図2)の任意の領域として提供され、送受信部290は、通信インターフェイス207(図2)および関連するドライバソフトの共同によって提供され、その他の各部は、代表的に、CPU201(図2)がプログラムをメモリ部213(図2)に展開し、各コマンドを実行することで提供される。なお、これらの機能の全部もしくは一部をハードウェアによって実現してもよい。
データ格納部292は、それぞれの情報処理装置PCから取得した複数のView情報262dと、共同ユーザ情報262fとを含む。
共同ユーザ管理部294は、いずれかの情報処理装置PCから送信される共同ユーザ設定に従って、データ格納部292に格納される共同ユーザ情報262fの内容を更新する。この共同ユーザ情報262fには、後述するように、共同ユーザとして設定された各ユーザ名が記述されている。すなわち、共同ユーザ情報262fは、ワークスペース上で共同作業を行なうユーザのグループの設定を保持する。
View情報更新部298は、それぞれの情報処理装置PCから送信されるView範囲の位置情報に従って、データ格納部292に格納されるそれぞれの情報処理装置PCに対応付けたView情報262dの内容を更新する。このView情報262dの内容は、対応する情報処理装置PCのデータ格納部262に格納されるView情報262dの内容と実質的に同一である。
重複View情報生成部296は、データ格納部292に格納されている、それぞれの情報処理装置PCのView情報262dおよび共同ユーザ情報262fに基づいて、重複View範囲の位置情報を特定する。そして、重複View情報生成部296は、この算出した重複View範囲の位置情報を、すべての、あるいは送信要求のあった情報処理装置PCへ送信する。
送受信部266は、情報処理装置PCとの間のデータ通信を制御する。具体的には、送受信部266は、重複View情報生成部296からの要求に応じて必要なメッセージを送信したり、いずれかの情報処理装置PCから受信したデータを共同ユーザ管理部294やView情報更新部298へ与えたりする。
なお、サーバ装置SRVは、図示しないユーザ認証を行なうための公知の制御構造をも含む。
(データ構造)
図25は、この発明の実施の形態3に従う共同ユーザ情報262fの内容の一例を示す図である。図25を参照して、共同ユーザ情報262fは、共同作業を行なうユーザとしての設定、すなわち共同ユーザ設定の内容を特定する共同ユーザ情報431を含む。この共同ユーザ情報431の内容は、いずれかの情報処理装置PCにおいて、ユーザが図20に示すダイアログ上で設定を変更するたびに、共同ユーザ管理部294によってその値が更新される。
(重複View範囲の位置情報)
図26は、この発明の実施の形態3に従う重複View範囲の位置情報を特定する処理を説明するための図である。なお、図26には、説明を簡素化するために、図21に示すように、ユーザAおよびユーザBが共同作業を行なうユーザとして設定されている場合について例示する。また、この重複View範囲の位置情報は、重複View情報生成部296(図24)によって生成される。
図26を参照して、重複View情報生成部296は、データ格納部292に格納される情報処理装置PC1(ユーザA)および情報処理装置PC2(ユーザB)についてのView情報262dの内容を取得する。図26に示す例では、ユーザAが設定しているView範囲の各頂点の座標が(125,230),(925,230),(125,830),(925,830)であり、ユーザBが設定しているView範囲の各頂点の座標が(520,26),(1335,26),(520,528),(1335,528)であるとする。
重複View情報生成部296は、それぞれのView範囲の共通部分(AND)を算出して、重複View範囲の各頂点の座標を算出する。図26に示す例においては、重複View範囲の各頂点の座標は、(520,230),(925,230),(520,528),(925,528)として算出される。この算出された座標(位置情報)が、重複View情報262gとして出力される。さらに、この重複View情報262gは、サーバ装置SRVからそれぞれの情報処理装置PCへ送信される。
(シーケンス)
図27に示すシーケンス図を参照して、上述のような重複View情報を算出するために、各情報処理装置PCとサーバ装置SRVとの間で実行される処理について説明する。
図27を参照して、情報処理装置PC1を使用中のユーザAがView範囲の位置を変更する操作をすると(シーケンスSQ12)、情報処理装置PC1は、変更後のView範囲の位置情報をサーバ装置SRVへ送信する(シーケンスSQ14)。この送信されたView情報に応答して、サーバ装置SRVは、自装置のデータ格納部292に保持されている、情報処理装置PC1に対応付けられたView情報262dの内容を更新する(シーケンスSQ16)。
同様に、情報処理装置PC2を使用中のユーザBがView範囲の位置を変更する操作をすると(シーケンスSQ22)、情報処理装置PC2は、変更後のView範囲の位置情報をサーバ装置SRVへ送信する(シーケンスSQ24)。この送信されたView情報に応答して、サーバ装置SRVは、自装置のデータ格納部292に保持されている、情報処理装置PC2に対応付けられたView情報262dの内容を更新する(シーケンスSQ26)。
このような処理によって、View情報262dの内容は随時更新される。
たとえば、情報処理装置PC1を使用中のユーザAが、共同ユーザ設定を行なうためのダイアログ(図20)において、共同ユーザ設定操作を行なうと(シーケンスSQ32)、情報処理装置PC1は、当該設定された共同ユーザ情報をサーバ装置SRVへ送信する(シーケンスSQ34)。この送信された共同ユーザ情報に応答して、サーバ装置SRVは、自装置のデータ格納部292に保持されている、共同ユーザ情報262fの内容を更新する(シーケンスSQ36)。図示していないが、情報処理装置PC2を使用中のユーザBが、共同ユーザ設定操作を行なった場合にも、同様の処理が実行される。
さらに、情報処理装置PC1を使用中のユーザAが、ツールボックス304のUndoボタンを選択して、Undo操作を行なうと(シーケンスSQ42)、情報処理装置PC1は、重複View情報要求をサーバ装置SRVへ送信する(シーケンスSQ44)。この送信された重複View情報要求に応答して、サーバ装置SRVは、データ格納部292に格納されている共同ユーザ情報262fの内容を参照して、ユーザAが属する共同ユーザ情報を特定する。そして、サーバ装置SRVは、特定した共同ユーザ情報に含まれるすべてのユーザについてのView範囲の位置情報を、View情報262dを参照して取得する。さらに、サーバ装置SRVは、取得したView範囲の共通部分を算出して、重複View範囲の位置情報を生成する(シーケンスSQ36)。その後、サーバ装置SRVは、この生成した重複View範囲の位置情報を要求元の情報処理装置PC1へ送信する(シーケンスSQ48)。
情報処理装置PC1は、この重複View範囲の位置情報に基づいて、Undo処理を実行する(シーケンスSQ50)。
また、図示していないが、情報処理装置PC2を使用中のユーザBが、Undo操作を行なった場合にも、同様の処理が実行される。
(Undo処理の処理手順)
図28は、この発明の実施の形態3に従うUndo処理の処理手順を示すフローチャートである。図28に示す処理手順は、図12に示す実施の形態1に従うUndo処理の処理手順を示すフローチャートにおいて、ステップS102に代えてステップS102AおよびS102Bを実行するようにしたものである。
また、図28に示す処理手順は、代表的に、情報処理装置PCのCPU201がプログラムを実行することで提供される。ここで、情報処理装置PCでは、ワークスペースのうち各ユーザにより指定されたView範囲内のオブジェクトがモニター205に逐次描画されているものとする。また、情報処理装置PCでは、ワークスペースにおいて各ユーザによってなされた何らかのオブジェクトに対する操作がなされると、その内容がデータ格納部262の履歴情報262cに順次格納される。
図28を参照して、Undoボタンが選択された場合(ステップS100においてYESの場合)には、情報処理装置PCのCPU201は、サーバ装置SRVに対して、重複View情報要求を送信する(ステップS102A)。その後、情報処理装置PCのCPU201は、サーバ装置SRVから重複View情報を受信したか否かを判断する(ステップS102B)。サーバ装置SRVから重複View情報が受信されなければ(ステップS102BにおいてNO)、受信されるまで待機する。
サーバ装置SRVから重複View情報が受信されると(ステップS102BにおいてYES)、情報処理装置PCのCPU201は、データ格納部262に格納されているすべての履歴情報262c(ハードディスク部211)を参照し、それぞれの履歴情報262cに含まれる動作場所情報413(図10)の値に基づいて、受信した重複View範囲に含まれるUndo候補操作を抽出する(ステップS104)。すなわち、情報処理装置PCのCPU201は、その位置情報である動作場所情報413の値がステップS102Bにおいて取得した重複View範囲に含まれる履歴情報262cをUndo候補操作として抽出する。
その他の処理については、図12に示すフローチャートと同様であるので、詳細な説明は繰返さない。
なお、上述の説明では、一種類の共同作業を行なうユーザが設定される構成について例示したが、複数の共同作業の別に参加するユーザを定めるようにしてもよい。すなわち、ワークスペース上で共同作業を行なうユーザのグループの設定を複数受付けるようにしてもよい。この場合には、図20に示す共同ユーザ設定を行なうためのダイアログにおいて、それぞれのグループを特定するための識別情報を設定するようにしてもよく、さらに、これらの識別情報とともに、共同ユーザ情報を格納してもよい。
(実施の形態3における作用・効果)
本実施の形態によれば、上述の実施の形態1における作用・効果に加えて、Undo候補操作として抽出する対象をより絞り込むことができる。すなわち、本実施の形態によれば、共同作業を行なっているそれぞれのメンバーが共通に視認している範囲に含まれるオブジェクトに係る操作を、Undo候補操作として抽出できるので、Undo処理の対象とすべきオブジェクトをより効率的に特定することができる。
したがって、各ユーザは、簡単な操作によって、Undo処理の対象とするオブジェクトを効率的に特定して、処理を実行できることになり、共同作業全体としての効率をより高めることができる。同時に、共同作業を行なっているユーザのうち一部のユーザが関知しないところで、Undo処理が実行されるといった事態も回避できる。
[実施の形態3の第1変形例]
上述の実施の形態3では、共同作業を行なうユーザ間が共通に視認している範囲内に存在するオブジェクトに係る操作をUndo候補操作とする構成について例示したが、組織的に共同作業を行なうような場合には、権限を有するユーザ(あるいは、「議長」)が視認していることを条件にUndo処理を実行することが好ましい場合もある。すなわち、Undo処理を実行しようとするユーザが視認する範囲内に存在し、かつ権限を有するユーザが視認する範囲内に存在するオブジェクトに係る操作のみがUndo処理の候補として抽出されることが好ましい場合もある。このような場合には、以下に説明する実施の形態3の第1変形例に従う構成がより適切である。
なお、この発明の実施の形態3の第1変形例に従うワークスペースを提供するためのシステムおよび情報処理装置PCの構成などについては、上述した実施の形態1と同様であるので、詳細な説明は繰返さない。また、情報処理装置PCおよびサーバ装置SRVの制御構造については、上述したそれぞれ図23および24と同様であるので、詳細な説明は繰返さない。
図29は、この発明の実施の形態3の第1変形例に従うワークスペースデータ262a#1の内容の一例を示す図である。本変形例では、ワークスペースデータ262a#1に、Undo処理の実行を監視する権限を有するユーザが記述される。
図29に示すワークスペースデータ262a#1は、図8に示すワークスペースデータ262aにおいて、Undo処理の実行を監視する権限を有するユーザを示すUndo処理権限ユーザ情報433をさらに含む。このUndo処理権限ユーザ情報433は、所定のダイアログ画面やデフォルト設定などに応じて、ワークスペースが新規に作成されたタイミングで付加される。
いずれかのユーザがUndo操作を行なうと、対象のワークスペースWSを定義するワークスペースデータ262a#1に含まれるUndo処理権限ユーザ情報433の値が参照され、上述の図26および図27と同様の手順に従って、当該権限を有するユーザが視認するView範囲の位置情報が取得される。そして、Undo処理を実行しようとするユーザのView範囲と権限を有するユーザのView範囲との重複範囲内に存在する、もしくは存在したオブジェクトに係る操作がUndo候補操作として抽出される。このような操作手順は、上述の実施の形態3と同様であるので、これ以上の詳細な説明は繰返さない。
(Undo処理の処理手順)
図30は、この発明の実施の形態3の第1変形例に従うUndo処理の処理手順を示すフローチャートである。図30に示す処理手順は、図12に示す実施の形態1に従うUndo処理の処理手順を示すフローチャートにおいて、ステップS103A〜S103Cをさらに実行するようにし、かつステップS104に代えてステップS104Bを実行するようにしたものである。
また、図30に示す処理手順は、代表的に、情報処理装置PCのCPU201がプログラムを実行することで提供される。ここで、情報処理装置PCでは、ワークスペースのうち各ユーザにより指定されたView範囲内のオブジェクトがモニター205に逐次描画されているものとする。また、情報処理装置PCでは、ワークスペースにおいて各ユーザによってなされた何らかのオブジェクトに対する操作がなされると、その内容がデータ格納部262の履歴情報262cに順次格納される。
図30を参照して、Undoボタンが選択された場合(ステップS100においてYESの場合)には、情報処理装置PCのCPU201は、データ格納部262(ハードディスク部211)に格納されるView情報262dを参照して、現在のView範囲の情報(各頂点の座標)を取得する(ステップS102)。続いて、情報処理装置PCのCPU201は、データ格納部262(ハードディスク部211)に格納されるワークスペースデータ262a#1を参照して、Undo処理権限ユーザ情報に格納されている値を取得する(ステップS103A)。さらに、情報処理装置PCのCPU201は、サーバ装置SRVに対して、ステップS103Aにおいて取得したユーザを指定して、View情報の要求を送信する(ステップS103B)。その後、情報処理装置PCのCPU201は、サーバ装置SRVから指定されたユーザのView情報を受信したか否かを判断する(ステップS103C)。サーバ装置SRVから指定されたユーザのView情報が受信されなければ(ステップS103CにおいてNO)、受信されるまで待機する。
サーバ装置SRVから指定されたユーザのView情報が受信されると(ステップS103CにおいてYES)、処理はステップS104Bへ進む。
ステップS104Bにおいて、情報処理装置PCのCPU201は、データ格納部262に格納されているすべての履歴情報262c(ハードディスク部211)を参照し、それぞれの履歴情報262cに含まれる動作場所情報413(図10)の値に基づいて、Undo候補操作を抽出する(ステップS104B)。すなわち、情報処理装置PCのCPU201は、その位置情報である動作場所情報413の値がステップS102において取得したView範囲に含まれ、かつステップS103Cにおいて受信した権限を有するユーザのView範囲に含まれる履歴情報262cをUndo候補操作として抽出する。
その他の処理については、図12に示すフローチャートと同様であるので、詳細な説明は繰返さない。
(実施の形態3の第1変形例における作用・効果)
本変形例によれば、上述の実施の形態1における作用・効果に加えて、Undo候補操作として抽出する対象をより絞り込むことができる。すなわち、本実施の形態によれば、Undo候補操作として抽出される範囲を、共同作業についての権限を有するユーザが視認している範囲に限定することができるので、Undo処理の対象とすべきオブジェクトをより効率的に特定することができる。
したがって、各ユーザは、簡単な操作によって、Undo処理の対象とするオブジェクトを効率的に特定して、処理を実行できることになり、共同作業全体としての効率をより高めることができる。同時に、共同作業の権限を有するユーザが関知しないところで、Undo処理が実行されるといった事態も回避できる。
[実施の形態3の第2変形例]
上述の実施の形態3および同第1変形例では、複数の情報処理装置PCとサーバ装置SRVとで構成されるシステムについて例示したが、情報処理装置PC同士がいわゆるピア・トゥ・ピア接続により、同様のシステムを構成してもよい。
図31は、この発明の実施の形態3の第2変形例に従うワークスペースを実現するための情報処理装置PC1およびPC2の制御構造を示すブロック図である。
図31を参照して、例えば、情報処理装置PC1に、実施の形態3に従う情報処理装置PCの制御構造(図23)に含まれる各機能に加えて、実施の形態3に従うサーバ装置SRV(図24)の主要な機能を実装するとともに、情報処理装置PC2に、実施の形態3に従う情報処理装置PCの制御構造(図23)に含まれる機能のうちデータ格納部262などを除く機能を実装することで、サーバ装置SRVを必要としないでワークスペースを提供することができる。なお、各部の構成および動作については、上述したので、詳細な説明は繰返さない。
さらに、サーバ装置SRVがデータ格納部262に相当する機能を、それぞれの情報処理装置PCに対して共通的に提供するようにしてもよい。
(実施の形態3の第2変形例における作用・効果)
本変形例によれば、上述の実施の形態1および3における作用・効果に加えて、ワークスペースをより簡素化された構成を用いて実現することができる。
[実施の形態4]
上述した実施の形態1では、情報処理装置PCのユーザが設定したView範囲内に存在するオブジェクトに係る操作をすべてUndo候補操作とする構成について例示した。一方、状況によっては、ワークスペースの特定の範囲に存在するオブジェクトに係る操作のみをUndo候補操作としたい場合もある。たとえば、ワークスペース上に存在する特定のオブジェクトのみが変更対象であったりする場合には、それ以外のオブジェクトに対するUndo処理がなされないように保護する必要がある場合も想定される。このような場合には、以下に説明する実施の形態4に従う構成がより適切である。
なお、この発明の実施の形態4に従うワークスペースを提供するためのシステムおよび情報処理装置PCの構成などについては、上述した実施の形態1と同様であるので、詳細な説明は繰返さない。
図32は、この発明の実施の形態4に従うUndo処理可能範囲を設定する画面の一例を示す図である。本実施の形態に従うワークスペースでは、Undo処理が許可される範囲(以下、「Undo処理可能範囲」とも称す。)が設定可能である。なお、このUndo処理可能範囲は、ワークスペースに参加するすべてのユーザに対して共通に設定されることが好ましい。なぜならば、このUndo処理可能範囲は、ワークスペース上に存在するオブジェクトを保護することを主目的とするからである。
本実施の形態に従う情報処理装置PCのモニター205には、ユーザ操作に応じて、もしくはワークスペースの描画開始とともに、図32に示すUndo処理可能範囲を設定するためのダイアログが表示される。このダイアログには、ワークスペースの全体が描画されるとともに、Undo処理可能範囲を設定するための設定枠322がオーバーレイ表示される。ユーザは、キーボードやマウスなどからなる入力装置209を操作して、この設定枠322を任意の範囲に調整することで、Undo処理可能範囲が設定される。そして、このUndo処理可能範囲は、後述するように、ワークスペースデータに格納される。
このようなUndo処理可能範囲が設定された状態において、いずれかのユーザがUndo操作を行なうと、Undo処理を実行しようとするユーザのView範囲とUndo処理可能範囲との重複範囲内に存在する、もしくは存在したオブジェクトに係る操作がUndo候補操作として抽出される。そして、上述の実施の形態1と同様に、これらのUndo処理の候補として抽出された操作に対して、所定の順序(典型的には、操作がなされた時系列)に従って、Undo処理が順次実行される。
このように、Undo処理可能範囲外のオブジェクトについては、たとえUndo処理を実行しようとするユーザが視認する範囲内に存在したとしても、Undo処理の候補として抽出されない。これにより、何らの変更もすべきではないオブジェクトに対する意図しないUndo処理などを回避できる。
この発明の実施の形態4に従う情報処理装置PCの制御構造についても、データ格納部262に保持されるワークスペースデータの内容を除いて、上述の図7に示す制御構造と同様であるので詳細な説明は繰返さない。
図33は、この発明の実施の形態4に従うワークスペースデータ262a#2の内容の一例を示す図である。本実施の形態では、ワークスペースデータ262a#2に、Undo処理可能範囲の情報が記述される。
図33に示すワークスペースデータ262a#2は、図8に示すワークスペースデータ262aにおいて、Undo処理可能範囲を記述するUndo処理可能範囲情報432をさらに含む。このUndo処理可能範囲情報432は、上述の図32に示すようなダイアログ画面上での設定やデフォルト設定などに応じて、ワークスペースが新規に作成されたタイミングで付加される。
いずれかのユーザがUndo操作を行なうと、対象のワークスペースWSを定義するワークスペースデータ262a#2に含まれるUndo処理可能範囲情報432の値が参照される。そして、Undo処理を実行しようとするユーザのView範囲とこのUndo処理可能範囲との重複範囲内に存在する、もしくは存在したオブジェクトに係る操作がUndo候補操作として抽出される。
(Undo処理の処理手順)
図34は、この発明の実施の形態4に従うUndo処理の処理手順を示すフローチャートである。図34に示す処理手順は、図12に示す実施の形態1に従うUndo処理の処理手順を示すフローチャートにおいて、ステップS103Dをさらに実行するようにし、かつステップS104に代えてステップS104Cを実行するようにしたものである。
また、図34に示す処理手順は、代表的に、情報処理装置PCのCPU201がプログラムを実行することで提供される。ここで、情報処理装置PCでは、ワークスペースのうち各ユーザにより指定されたView範囲内のオブジェクトがモニター205に逐次描画されているものとする。また、情報処理装置PCでは、ワークスペースにおいて各ユーザによってなされた何らかのオブジェクトに対する操作がなされると、その内容がデータ格納部262の履歴情報262cに順次格納される。
図34を参照して、Undoボタンが選択された場合(ステップS100においてYESの場合)には、情報処理装置PCのCPU201は、データ格納部262(ハードディスク部211)に格納されるView情報262dを参照して、現在のView範囲の情報(各頂点の座標)を取得する(ステップS102)。続いて、情報処理装置PCのCPU201は、データ格納部262(ハードディスク部211)に格納されるワークスペースデータ262a#1を参照して、Undo処理可能範囲情報に格納されている値を取得する(ステップS103D)。そして、処理はステップS104Cに進む。
ステップS104Cにおいて、情報処理装置PCのCPU201は、データ格納部262に格納されているすべての履歴情報262c(ハードディスク部211)を参照し、それぞれの履歴情報262cに含まれる動作場所情報413(図10)の値に基づいて、Undo候補操作を抽出する(ステップS104C)。すなわち、情報処理装置PCのCPU201は、その位置情報である動作場所情報413の値がステップS102において取得したView範囲に含まれ、かつステップS103Dにおいて取得したUndo処理可能範囲に含まれる履歴情報262cをUndo候補操作として抽出する。
その他の処理については、図12に示すフローチャートと同様であるので、詳細な説明は繰返さない。
(実施の形態4における作用・効果)
本実施の形態によれば、上述の実施の形態1における作用・効果に加えて、Undo候補操作として抽出する対象をより絞り込むことができる。すなわち、本実施の形態によれば、予め設定したUndo処理が許可される範囲に含まれるオブジェクトに係る操作のみを、Undo候補操作として抽出できるので、Undo処理の対象とすべきオブジェクトをより効率的に特定することができる。
したがって、各ユーザは、簡単な操作によって、Undo処理の対象とするオブジェクトを効率的に特定して、処理を実行できることになり、共同作業全体としての効率をより高めることができる。同時に、予め共同作業を行なうメンバー間で合意のとれた範囲に存在するオブジェクトに係る操作に対してのみUndo処理が実行されるので、ワークスペース上の関係のないオブジェクトに対して、誤ってUndo処理が実行されるような事態を回避できる。
[実施の形態5]
上述した実施の形態1〜4では、各ユーザが異なる情報処理装置PCを使用して、ワークスペース上で共同作業する形態について例示した。これに対して、この発明の実施の形態5では、共通の画面(スクリーン)を複数のユーザで共有する構成について例示する。すなわち、実施の形態1〜4では、各ユーザが視認する範囲をそれぞれの情報処理装置PC上のView範囲とみなすことも可能であるが、共通の画面を複数のユーザが視認する場合には、それぞれのユーザがいずれの部分に視認しているかを別の方法で特定する必要がある。以下、このような形態に適した構成について例示する。
図35は、この発明の実施の形態5に従うワークスペースの提供形態の示す外観図である。
図35を参照して、本実施の形態に従うワークスペースは、典型的には、比較的大きな画面(スクリーン)SCN上に表示もしくは投影される。このような画面表示されるワークスペースに対して、各ユーザが、典型的には携帯端末やワイヤレスの入力装置などを用いて、共同作業を行なう。
このような形態では、各ユーザの視点に基づいて、視認している範囲を特定することができる。より具体的には、各ユーザに、赤外線照射装置が備えられたメガネやサングラスを装着してもらい、この赤外線照射装置からスクリーンSCNに投影される赤外線のポインタなどの位置を、各ユーザの視点の位置として検出することができる。あるいは、特開平2003−115043号に開示されるような、各ユーザの眼球の動きを検出し、この検出結果に基づいて、各ユーザの視点の位置を検出してもよい。
図36は、ユーザの視点に基づいて、ユーザの視認する範囲を検出する処理の一例を示す図である。
図36(a)に示すように、壁掛けタイプのスクリーンSCNにワークスペースが表示されている場合には、上記のような処理によって検出された各ユーザの視点を中心とした所定範囲をユーザが視認する範囲として決定することができる。より具体的には、図36(b)に示すように、検出されたユーザの視点を中心とした距離Xの範囲の円領域AREA1を当該ユーザが視認する範囲として決定する。そして、この円領域AREA1に含まれるオブジェクトに係る操作がUndo候補操作として抽出される。なお、Undo候補操作の抽出処理については、上述した処理と同様であるので、詳細な説明は繰返さない。
図37は、スクリーンとユーザとの相対位置に基づいて、ユーザの視認する範囲を検出する処理の一例を示す図である。
図37(a)に示すように、壁掛けタイプのスクリーンSCNにワークスペースが表示されている場合には、当該スクリーンと各ユーザとの相対位置に基づいて、各ユーザが視認する範囲として決定することができる。より具体的には、図37(b)に示すように、ユーザの目線の高さなどに基づいて決定された中心点を中心とした距離Yの範囲の円領域AREA2を当該ユーザが視認する範囲として決定する。この距離Yは、スクリーンSCNとユーザとの間の距離に依存して動的に変化する。そして、この円領域AREA2に含まれるオブジェクトに係る操作がUndo候補操作として抽出される。なお、Undo候補操作の抽出処理については、上述した処理と同様であるので、詳細な説明は繰返さない。
なお、ユーザのスクリーンSCNに対する相対位置については、床面に設置した圧力センサなどによって検出することができる。あるいは、各ユーザに、レーザ装置が備えられたメガネやサングラスを装着してもらい、このレーザ装置によってスクリーンSCNまでの距離を測定するようにしてもよい。
図38は、床面に配置されたスクリーンに表示されるワークスペースにおいて、ユーザが視認する範囲を決定する処理の一例を示す図である。
図38(a)に示すように、床面配置のスクリーンSCNにワークスペースが表示されている場合には、ユーザの立ち位置およびその向きに基づいて、各ユーザが視認する範囲を決定することができる。より具体的には、図38(b)に示すように、ユーザの立ち位置からその向き(すなわち、ユーザの目が向いている向き)に沿って所定距離だけ離れた点を中心とする所定範囲の円領域AREA3を当該ユーザが視認する範囲として決定する。これは、ユーザの目線が斜め上から床面配置のスクリーンSCNに向かうと考えられるからである。そして、この円領域AREA3に含まれるオブジェクトに係る操作がUndo候補操作として抽出される。なお、Undo候補操作の抽出処理については、上述した処理と同様であるので、詳細な説明は繰返さない。
なお、ユーザの立ち位置およびその向きについては、各ユーザの靴などに装着したセンサなどを用いて検出することができる。
(実施の形態5における作用・効果)
本実施の形態によれば、上述の実施の形態1における作用・効果に加えて、実際のユーザが視認している範囲を視認している範囲として特定することができるので、よりユーザフレンドリなワークスペースを提供できる。
[実施の形態1〜5の組み合わせ]
上述した実施の形態1〜5に従うそれぞれの構成を任意に組み合わせることも当然に実施可能である。
[その他の実施の形態]
上述の実施の形態1〜5では、本発明を各種オブジェクトを任意に配置できるワークスペースに適用した場合の構成について例示したが、共同作業可能な表計算アプリケーションや文書作成アプリケーションであっても同様に適用可能である。すなわち、行列状にセルが配置された表計算アプリケーションでは、各セルを上述した1つのオブジェクトに相当するものと見なすことで、上記と同様の処理が可能である。また、文書作成アプリケーションでは、単語、文、段落、節などの各構成単位を上述した1つのオブジェクトに相当するものと見なすことで、上記と同様の処理が可能である。
また、本発明に係るプログラムは、コンピュータのオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明に係るプログラムに含まれ得る。
さらに、本発明に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明に係るプログラムに含まれ得る。
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記憶媒体とを含む。
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
201 CPU、203 内部バス、205 モニター、207 通信インターフェイス、209 入力装置、211 ハードディスク部(HDD)、213 メモリ部、215 CD−ROMドライブ、215a CD−ROM、217 FDDドライブ、217a フレキシブルディスク、252 データ操作部、254 View管理部、256 描画部、258 Undo処理用インターフェイス、260 オブジェクト抽出部、262,296 データ格納部、264 同期処理部、266,290 送受信部、268 View情報交換部、270 ユーザ認証部、294 共同ユーザ管理部、296 重複View情報生成部、298 View情報更新部、NW ネットワーク、PC,PC1〜PC3 情報処理装置、SCN スクリーン、SRV サーバ装置。