この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
[実施の形態1]
(ワークスペースの全体構成)
図1は、この発明の実施の形態1に従うワークスペースを提供するためのシステムの概略構成図である。
図1を参照して、本実施の形態に従うシステムは、ネットワークNWを介して互いにデータ通信可能に接続されたデバイスである複数の情報処理装置PC1〜PC3(以下、「情報処理装置PC」あるいは「ノード」とも総称する。)を含む。さらに、本実施の形態に従うシステムでは、後述するユーザ認証を行なうために、情報処理装置の別形態であるサーバ装置SRVが同一のネットワークNWにデータ通信可能に接続されている。なお、これらの機能がいずれかの情報処理装置PCで提供される場合には、このサーバ装置SRVを省略することもできる。
これらの情報処理装置PC1〜PC3は、後述するワークスペースデータを共有することで、複数のユーザによる同時アクセス可能な仮想空間を提供する。すなわち、いずれかの情報処理装置PC上でユーザ操作によってワークスペースデータが更新されると、当該更新後のワークスペースデータが他の情報処理装置PCにも送信される。このような同期処理が随時行われることで、すべての情報処理装置PC間で実質的に同一のワークスペースデータが共有されることになる。なお、複数の情報処理装置PCがワークスペースデータを個々に保持する構成に代えて、特定の1台の情報処理装置PC(マスター)のみがワークスペースデータを保持し、他の情報処理装置PC(スレーブ)が当該マスターの情報処理装置PCに対してデータアクセスをするような構成を採用することもできる。
なお、それぞれの情報処理装置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が表示される。
すなわち、ユーザは、キーボードやマウスなどからなる入力装置209を用いて、View位置指定ウィンドウ302を選択および操作することで、View範囲VAの位置を適宜指定する。また、ユーザは、キーボードやマウスなどからなる入力装置209を用いて、ツールボックス304に含まれる各種操作ボタンを選択したり、表示されるオブジェクトを選択してドラッグしたりすることで、各オブジェクトの新規作成・変更・削除といった操作が可能である。
図4は、この発明の実施の形態1に従うワークスペースを提供するためのデータ構造を示す模式図である。
図4を参照して、データ構造には、ワークスペース名、オブジェクトデータのファイル名などを記述したワークスペースデータ262aが含まれる。なお、ワークスペースデータ262aには、ワークスペースのサイズに関する情報を含めてもよい。このワークスペースデータ262aに対応付けて、各オブジェクトを記述するオブジェクトデータ262bが設けられる。このオブジェクトデータ262bは、ユーザがワークスペース上で新たなオブジェクトを追加した場合に新規作成される。さらに、各オブジェクトデータ262bに対応付けて、履歴情報が設けられる。この履歴情報は、ユーザによってなされたオブジェクトに対する操作の内容を順次記憶したものである。そのため、履歴情報は、オブジェクトに対して何らかの操作がなされれば、新規作成もしくはその内容が更新される。なお、後述するように、本実施の形態に従う履歴情報は、「通常」タイプと「派生」タイプとに区別される。また、これらの各データの詳細な内容については、後述する。
(Undo機能の概要)
本実施の形態に従うUndo機能では、あるユーザの操作により作成されたオブジェクトに対して別のユーザがUndo処理を指示すると、当該オブジェクトを作成したユーザの確認(承諾)が得られた場合に限って、当該指示されたUndo処理を実行する。なお、上述したように、各オブジェクトについて、経歴情報として過去になされた操作が時系列的に記憶されているので、このUndo処理では、この過去になされた各操作が最新のものから順に元に戻される、すなわち取り消されることになる。以下の説明では、Undo処理対象の一操作(履歴情報の各々)を「Undo処理対象履歴」とも称し、またUndo処理対象に係るオブジェクト自体を「Undo処理対象オブジェクト」とも称す。
さらに、本実施の形態に従うUndo機能では、Undo処理対象を作成したユーザの確認(承諾)が得られるまでの間、Undo処理を指示したユーザが操作を継続できるように、Undo処理に引き続く操作を暫定的に実行可能にする。
図5は、この発明の実施の形態1に従うワークスペースで提供されるUndo機能を説明するための図である。
図5(a)を参照して、一例として、ワークスペースWS上にオブジェクトOBJ_A,OBJ_B,OBJ_Cが既に作成されているとする。オブジェクトOBJ_Cは、「赤色」の矢印であり、情報処理装置PC1のユーザとは別のユーザの操作により作成されたものとする。
ここで、情報処理装置PC1のユーザがオブジェクトOBJ_Cの矢印の向きおよび色を変更することを希望する場合について説明する。
まず、情報処理装置PC1のユーザは、図5(b)に示すように、入力装置209を操作して、View範囲VA(図3)をオブジェクトOBJ_Cが表示される位置にセットした上で、ツールボックス304のUndo処理の実行を指示するボタン(以下、「Undoボタン」とも称す。)を選択する。すると、オブジェクトOBJ_Cに対してUndo処理の実行状態になる。すなわち、オブジェクトOBJ_CがUndo処理対象オブジェクトとなる。このとき、オブジェクトOBJ_Cは、情報処理装置PC1のユーザとは別のユーザの操作により作成されたものであるので、オブジェクトOBJ_Cを作成したユーザに対して、承諾の可否を要求する通知(以下、「確認通知」とも称す。)を発行する。後述するように、オブジェクトOBJ_Cを作成したユーザは、この確認通知に対して承諾/非承諾の情報を含む返答情報を応答する。
しかしながら、オブジェクトOBJ_Cを作成したユーザが必ずしも同一のワークスペースWS上で作業しているとは限らないので、返答情報を即座に応答できない場合もある。そこで、本実施の形態に従うUndo機能では、他のユーザからの承諾が得られるまでの間、Undo処理の実行を指示したユーザがUndo処理に引き続く操作を暫定的に実行可能にする。
具体的には、図5(c)に示すように、Undo処理を指示したユーザは、オブジェクトOBJ_Cの代わりに配置することを希望する任意のオブジェクトOBJ_D(オブジェクトOBJ_Cと配置位置および矢印の向きが異なる)を新たに作成することが可能である。さらに、図5(d)に示すように、情報処理装置PC1のユーザは、オブジェクトの色属性の変更を指示するボタンを選択して、オブジェクトOBJ_Dの色を変更することも可能である。
なお、Undo処理対象のオブジェクトOBJ_Cは、未確定のUndo処理対象であることを示すように、別の表示態様(たとえば、より薄い色)で表示される。
さらに、このオブジェクトOBJ_Dが暫定的に作成されたものであることを示す「派」のマークIDCがオブジェクトOBJ_Dに近接して表示される。このマークIDCは、このオブジェクトOBJ_Dが未確定のUndo処理対象オブジェクトから派生したものであることを示す。この派生の技術的意味については、後述する。
さらに、オブジェクトOBJ_Cを作成したユーザからUndo処理に対して「OK」(承諾)との返答情報が送信されると、図5(e)に示すように、Undo処理対象のオブジェクトOBJ_Cの操作が取り消され(すなわち、Undo処理が実行され)、オブジェクトOBJ_CがワークスペースWS上から破棄される。そして、オブジェクトOBJ_Cが暫定的に作成されたオブジェクトOBJ_Dに置換される。
一方、オブジェクトOBJ_Cを作成したユーザからUndo処理に対して「NG」(非承諾)との返答情報が送信されると、図5(f)に示すように、Undo処理対象のオブジェクトOBJ_Cはそのまま存続するとともに、暫定的に作成されたオブジェクトOBJ_Dは、オブジェクトOBJ_Cとは独立したオブジェクトとしてワークスペースWS上に存在する。あるいは、ユーザ選択によって、暫定的に作成されたオブジェクトOBJ_Dを破棄するようにしてもよい。
(情報処理装置の制御構造)
図6は、この発明の実施の形態1に従う各情報処理装置PCの制御構造を示すブロック図である。
図6を参照して、各情報処理装置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とを含む。
データ操作部252は、ユーザによる入力装置209の操作に従って、対象のオブジェクトについてのオブジェクトデータ262bおよび履歴情報262cの新規作成・変更・削除を行なう。このとき、データ操作部252は、後述するユーザ認証部270からのユーザ情報に基づいて、各操作について、いずれのユーザによってなされた操作であるかを履歴情報262cに記述する。すなわち、履歴情報262cには、各オブジェクトに対する操作を行なったユーザの情報が記述される。また、データ操作部252は、後述するUndo処理部258からの指令に従って、対象のオブジェクトデータ262bの内容を更新する。これにより、対象のオブジェクトに対する操作が取り消される。
View作成部254は、データ格納部262に記憶されているワークスペースデータ262a、オブジェクトデータ262b、履歴情報262cを参照して、ユーザにより指定されたView範囲に含まれるオブジェクトなどの情報を描画部256へ出力する。
描画部256は、View作成部254から出力されるView範囲に含まれるオブジェクトなどの情報に基づいて、描画処理(レンダリング処理)を行なう。すなわち、描画部256は、ワークスペースのうちView範囲内のオブジェクトを可視化したView表示ウィンドウ300(図3(b)参照)を生成する。より具体的には、描画部256は、オブジェクトなどの情報に基づいて、モニター205(図2)に表示すべき画像を示すデータを図示しないビデオメモリに周期的に出力する。このビデオメモリに格納されるデータに応じて、モニター205には画像が表示される。
Undo処理部258は、本実施の形態に従うUndo機能の主たる部分を提供する。具体的には、Undo処理部258は、後述するオブジェクト抽出部260により抽出された履歴情報のうち、自装置を使用中のユーザ自身の操作により生成されたものに対しては、無条件に操作を取り消すための指令をデータ操作部252へ与える。一方、自装置を使用中の(ログインしている)ユーザとは別のユーザが操作した履歴情報に対しては、当該ユーザからUndo処理についての承諾を得た上で、Undo処理対象オブジェクトに対する操作を取り消すための指令をデータ操作部252へ与える。Undo処理部258の詳細な制御構造については、後述する。
オブジェクト抽出部260は、ユーザ操作によってUndo処理が指示されると、View作成部254からの情報に基づいて、自装置におけるView範囲の位置を取得するとともに、データ格納部262内のオブジェクトデータ262bおよび履歴情報262cを参照してUndo処理対象履歴(または、Undo処理オブジェクト)を抽出する。このとき、当該View範囲に存在するオブジェクトに関する履歴情報262cがUndo処理対象履歴となる。
同期処理部264は、ワークスペースを提供するワークスペースデータ262a、オブジェクトデータ262b、履歴情報262cを他の情報処理装置PCとの間で同期する。すなわち、同期処理部264は、自装置においてワークスペースデータ262a、オブジェクトデータ262b、履歴情報262cのいずれかが追加または更新されると、追加または更新後の各データの全部または差分を、ワークスペースデータを共有している他の情報処理装置PCへそれぞれ送信する。また、同期処理部264は、他の情報処理装置PCから追加または更新後のデータの全部または差分を受信すると、それに応じて、自装置のデータ格納部262に記憶されているデータを更新する。
送受信部266は、他の情報処理装置PCおよびサーバ装置SRVとの間のデータ通信を制御する。具体的には、送受信部266は、Undo処理部258および同期処理部264からの要求に応じて必要なメッセージを送信したり、他の情報処理装置PCまたはサーバ装置SRVから受信したデータをUndo処理部258または同期処理部264へ与えたりする。
ユーザ認証部270は、各情報処理装置PCを使用するユーザに対するユーザ認証処理を実行する。具体的には、ユーザ認証部270は、いずれかのユーザが各情報処理装置PCの使用開始時に、IDおよびパスワードの入力を促す。そして、ユーザからIDおよびパスワードの入力があると、サーバ装置SRV(図1)に問合せを行ってユーザ認証を行なう。ユーザ認証が成功すると、ユーザによる当該情報処理装置PCの使用を許可するとともに、現在使用中(ログイン中)のユーザ名を保持する。なお、各情報処理装置PCを使用するユーザを識別できればよいので、パスワードを必ずしも要求しなくてもよい。
(Undo処理部)
図7は、図6に示すUndo処理部258のより詳細な制御構造を示すブロック図である。
図7を参照して、Undo処理部258は、派生操作表示部2581と、確認通知処理部2582と、返答処理部2583とを含む。
派生操作表示部2581は、後述する派生操作に係るオブジェクトおよび派生操作を示すマークなどを表示するための表示データを生成する。
確認通知処理部2582は、Undo処理対象履歴が指示されたオブジェクトが自装置を使用中のユーザ自身によって生成されたものか否かを判断し、自装置を使用中のユーザとは別のユーザが操作して作成されたUndo処理対象履歴に対してUndo処理が指示された場合には、当該Undo処理対象履歴の操作を行ったユーザに対して、当該Undo処理に対する承諾を得るための確認通知を送信し、さらに当該別のユーザからの返答情報を受信する。さらに、この返答情報の内容に応じて、派生操作として暫定的に生成されたオブジェクトの状態を確定する。より具体的には、確認通知処理部2582は、派生履歴情報生成部258aと、確認通知生成部258bと、確認通知送信部258cと、返答情報受信部258dと、Undo処理実行部258eとを含む。
派生履歴情報生成部258aは、他のユーザに対する確認通知を送信した後、当該他のユーザからの返答情報が送信されるまでの間、Undo処理を指示したユーザが、当該指示したUndo処理に引き続いて操作を行なうと、その操作に係る履歴情報(派生履歴情報)を生成し、データ格納部262に記憶する。なお、派生履歴情報は、基本的には各オブジェクトの履歴情報と同様のデータ構造を有しており、内部データとして、「派生」タイプであることを示す情報(タグ)が付加されている点が異なっている。
確認通知生成部258bは、データ格納部262に記憶されているUndo処理対象履歴を参照して、その操作者を特定する。そして、この特定した操作者が使用する(ログインしている)情報処理装置PCに対して、Undo処理の確認(承諾)をとるためのデータ(代表的に、ポップアップウィンドウを表示するための表示データ)を生成する。
確認通知送信部258cは、確認通知生成部258bが生成したデータを確認通知(たとえば、XML(Extensible Markup Language)などのマークアップ言語のフォーマット)として、Undo処理対象履歴の操作者が使用する情報処理装置PCへ送信する。
さらに、確認通知送信部258cは、後述するように、Undo処理対象履歴の操作者からの要求に応じて、Undo処理前とUndo処理後のワークスペースWS上におけるオブジェクトの状態を示す比較画面を生成し、Undo処理対象履歴の操作者が使用する情報処理装置PCへ送信する。
返答情報受信部258dは、後述するように、確認通知を受信したUndo処理対象履歴の操作者が、確認通知の画面上で「OK」(承諾)または「NG」(非承諾)を選択することで送信される返答情報を受信し、その返答情報の内容をUndo処理実行部258eへ出力する。
Undo処理実行部258eは、返答情報受信部258dが「OK」(承諾)との返答情報を受信すると、Undo処理対象履歴を無効化し(操作自体を取り消し)、派生操作によって生成されたオブジェクトが存在すれば、この派生操作によって生成されたオブジェクトをUndo処理対象オブジェクトに代えて、ワークスペースWS上で有効化する。一方、返答情報受信部258dが「NG」(非承諾)との返答情報を受信すると、Undo処理をキャンセルし、派生操作によって生成されたオブジェクトが存在すれば、この派生操作によって生成されたオブジェクトを独立したオブジェクトとしてワークスペースWS上で有効化する、あるいは派生操作によって生成されたオブジェクトを破棄する。
また、Undo処理実行部258eは、Undo処理対象履歴が自装置を使用中のユーザ自身の操作により生成されたものであれば、無条件に、Undo処理対象履歴を無効化する(操作自体を取り消す)。
返答処理部2583は、他の情報処理装置PCから確認通知を受信すると、自装置を使用中のユーザ(Undo処理対象履歴の操作者)に対して、当該確認通知を表示するとともに、当該確認通知に対して自装置を使用中のユーザが入力する「OK」(承諾)または「NG」(非承諾)を受付け、当該選択入力に応じた返答情報を確認通知の送信元の情報処理装置PCへ送信する。より具体的には、返答処理部2583は、確認通知表示部258fと返答情報送信部258gとを含む。
確認通知表示部258fは、他の情報処理装置PCから受信した確認通知に基づいて、特定のオブジェクトについての履歴情報がUndo処理対象であること、および当該Undo処理対象に対する「OK」(承諾)または「NG」(非承諾)の入力が促す画面を表示する。なお、このような画面は、情報処理装置PCを使用中のユーザに対して一方的に情報表示することが可能なポップアップウィンドウなどを用いることが好ましい。また、確認通知表示部258fは、他の情報処理装置PCから受信した比較画面を表示する。
返答情報送信部258gは、確認通知表示部258fが表示する画面上に対して、自装置を使用中のユーザ(Undo処理対象履歴の操作者)が入力する「OK」(承諾)または「NG」(非承諾)に応じて、対応する返答情報(たとえば、XMLフォーマット)を確認通知の送信元の情報処理装置PCへ送信する。
(データ構造)
各情報処理装置PCのデータ格納部262に記憶される各データの構造について、図8〜図10を参照して説明する。各データは、代表的に、XMLなどのマークアップ言語で記述される。これは、タグ(<>と</>とで囲まれる文字に与える属性)を自在に設定することでシステムの拡張性を高めるためである。
(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とを含む。この履歴情報番号407は、後述する履歴情報の識別番号と対応付けられた番号である。なお、履歴情報の識別番号は任意に設定することができるが、本実施の形態では、時系列に識別番号が増加、すなわち新しいものほど大きな識別番号であるとする。
(1−3)履歴情報
図10は、この発明の実施の形態1に従う履歴情報262cの内容の一例を示す図である。図10を参照して、履歴情報262cは、図9に示すオブジェクトデータ262bに記述された履歴情報番号407と対応付けて生成される。すなわち、オブジェクトデータ262bの履歴情報番号407(図9)と対応付けられた識別番号(ID)409を含む。さらに、各履歴情報262cは、当該履歴情報の名称である履歴名410と、通常の履歴情報であるか派生履歴情報であるかを示す履歴タイプ情報411と、当該履歴の操作された内容を示す動作タイプ情報412と、当該履歴の操作がなされた時刻を示す動作時刻情報413と、当該履歴の操作がなされた位置情報(各座標)を示す動作場所情報414と、当該履歴の操作を行ったユーザ(操作者)を示す動作操作者情報415と、派生履歴情報がいずれの(通常の)履歴情報に引き続くのかを示す派生履歴情報416と、対応のオブジェクトの詳細な情報を示すオブジェクト詳細情報417とを含む。
履歴タイプ情報411には、対応する履歴情報が「通常」タイプの履歴情報であれば「通常」の値が記述され、対応する履歴情報が「派生」タイプの履歴情報(派生履歴情報)であれば「派生」の値が記述される。このように、派生履歴情報は、通常の履歴情報と基本的なデータ構造は共通である。また、派生履歴情報が独立したオブジェクトとして有効化される場合には、この履歴タイプ情報411に記述された値が「派生」から「通常」に変更される。
動作タイプ情報412には、対応のオブジェクトについてなされた操作の内容、たとえば「(新規)作成」、「移動」、「サイズ変更」、「削除」などの値が記述される。
動作時刻情報413には、ユーザが各オブジェクトに対して操作を行った時刻が記述される。なお、履歴情報262cは、ユーザが各オブジェクトに対して1回の操作(たとえば、1回の移動動作)を行なう毎に新規作成される。
動作場所情報414には、ユーザが各オブジェクトに対して操作を行った位置情報(開始位置または終点位置)の値が記述される。
動作操作者情報415には、各オブジェクトに対して操作をおこなったユーザを特定するための値が記述される。このユーザを特定するための値としては、ユーザ認証部270(図6)が保持するユーザ認証されたユーザ名などが用いられる。
派生履歴情報416には、履歴情報がUndo処理対象とされた場合に、当該Undo処理対象の履歴情報に引き続く派生履歴情報との時系列上の関係を特定するための識別情報が記述される。
オブジェクト詳細情報417には、各オブジェクトを規定する情報が記述される。たとえば、対応のオブジェクトが線オブジェクト(オブジェクトタイプが「線」)であれば、そのアウトラインを示すベクトルデータ(始点、終点、アンカーポイント、曲率)などが記述される。また、対応のオブジェクトが画像オブジェクト(オブジェクトタイプが「・・・.jpg」)であれば、その画像データを特定するためのファイル名などが記述される。
なお、上述の例では、各オブジェクトデータと対応する履歴情報とは、互いにリンク付けした別のファイル(データ)として取扱う構成について説明したが、各オブジェクトデータに履歴情報を含ませた同一のファイル(データ)としてもよい。
あるいは、各オブジェクトが履歴情報を有している必要はなく、履歴情報はリスト的に保持されており、オブジェクトはその履歴情報に対するリンク情報をもつようにしてもよい。
(Undo処理の処理手順)
図11および図12は、この発明の実施の形態1に従うUndo処理の全体処理手順を示すフローチャートである。なお、図11は、Undo処理対象の履歴情報の操作者がUndo処理に対して「OK」(承諾)を選択する場合の処理を示し、図12は、Undo処理対象の履歴情報の操作者がUndo処理に対して「NG」(非承諾)を選択する場合の処理を示す。なお、図11と図12との間では、ステップS2〜S42の処理を共通とするので、以下では主として図11を参照して説明する。
なお、ユーザAが情報処理装置PC1を使用しており、ユーザBが情報処理装置PC2を使用しているものとして説明を行なう。すなわち、ユーザAおよびBがそれぞれユーザ認証手続きを経て、情報処理装置PC1およびPC2に正規にログインしているものとする。
また、図11および図12に示す各処理手順は、代表的に、情報処理装置PC1およびPC2のCPU201(図2)の各々がプログラムを実行することで提供される。
さらに、情報処理装置PC1およびPC2の各々では、ワークスペースのうち各ユーザにより指定されたView範囲内のオブジェクトがモニター205(図2)に逐次描画される。また、情報処理装置PC1およびPC2の各々では、ワークスペースWS上で各ユーザがいずれかのオブジェクトに対する操作を行なうと、それについての履歴情報262cが順次記憶される。
(1.ユーザによるUndoボタンの押下)
まず、ワークスペースWS上のいずれかのオブジェクトに対するUndo処理を希望するユーザAは、使用中の情報処理装置PC1の入力装置209を操作して、View範囲VAを対象とするオブジェクトが表示(描画)される位置にセットする(図3参照)。その上で、ユーザは、ツールボックス304(図3や図5参照)のUndoボタンを押下する(ステップS2)。
(2.履歴情報の抽出・ソート)
Undoボタンの押下に応答して、情報処理装置PC1は、データ格納部262に記憶されている履歴情報262c(図6)を参照し、その動作場所情報414(図10)の値が自装置のView範囲に含まれる履歴情報262cを抽出する。さらに、情報処理装置PC1は、抽出した履歴情報262cのそれぞれを対応する動作時刻情報413(図10)に基づいて動作時刻順に並び替える(ソートする)(ステップS4)。すなわち、情報処理装置PC1は、View範囲内に存在する(あるいは、存在した)オブジェクトの履歴情報をUndo処理対象履歴の候補として抽出する。
図13は、この発明の実施の形態1に従う履歴情報の一例を示す図である。図14は、図13に示す履歴情報から抽出・ソートされた結果の一例を示す図である。
一例として、ワークスペース上に、「オブジェクトA」(ID=1)、「オブジェクトB」(ID=2)、「オブジェクトC」(ID=3)の3つのオブジェクトが配置されているものとする。そして、図13は、これらのオブジェクトの履歴情報262cに記述された内容を簡潔に表形式で示したものである。なお、図13において、各履歴情報についての左側の枠には、上から順に「動作タイプ情報412」、「動作時刻情報413」、「動作操作者情報415」の値が示されているものとする。また、各履歴情報についての右側の枠には、上から順に「動作場所情報414」の「X座標値」および「Y座標値」が示されているものとする。
なお、図13に示す表は説明の便宜上のものであり、図13と同じデータ構造のデータを生成する必要はない。
このような各オブジェクトについての履歴情報に対して、情報処理装置PC1は、自装置のView範囲内にあるものを抽出する。たとえば、自装置におけるView位置情報の各頂点の座標が(421,385),(610,385),(421,518),(610,518)である場合には、動作場所情報414のX座標値が421〜610の範囲であり、かつY座標値が385〜518の範囲であるものが抽出される。
なお、図13に示す例では、すべての履歴情報が自装置のView範囲内にあるものとして抽出される。
さらに、情報処理装置PC1は、抽出した履歴情報を、対応する動作時刻情報413の値に基づいて新しい順に並び替える。図14には、上述のような抽出およびソート後の履歴情報の一例が示される。これらの履歴情報に係る各操作がUndo処理対象履歴の候補となる。
図15は、図11および図12に示すステップS4におけるより詳細な処理手順を示すフローチャートである。図15に示す各処理手順は、代表的に、情報処理装置PC1およびPC2のCPU201(図2)の各々がプログラムを実行することで提供される。
図15を参照して、情報処理装置PC1は、自装置において、ユーザがUndoボタンを押下したか否かを判断する(ステップS401)。Undoボタンが押下されていなければ(ステップS401においてNO)、ステップS401の処理が繰返される。一方、Undoボタンが押下された場合(ステップS401においてYESの場合)には、処理はステップS402に進む。
ステップS402では、情報処理装置PC1は、自装置におけるView範囲の情報(各頂点の座標)を取得する。続いて、情報処理装置PC1は、データ格納部262に記憶されている履歴情報262c(図6)を抽出し(ステップS403)、その動作場所情報414(図10)の値が取得したView範囲内であるか否かを判断する(ステップS404)。その動作場所情報414(図10)の値が取得したView範囲内でない場合(ステップS404においてNOの場合)には、処理はステップS406へ進む。
その動作場所情報414(図10)の値が取得したView範囲内である場合(ステップS404においてYESの場合)には、当該抽出した履歴情報262cをリストに追加する(ステップS405)。そして、処理はステップS406へ進む。
ステップS406では、データ格納部262に記憶されているすべての履歴情報262cが抽出されたか否かを判断する。すべての履歴情報262cが抽出されていない場合(ステップS406においてNOの場合)には、データ格納部262に記憶されている次の履歴情報262cが抽出され(ステップS407)、ステップS404以下の処理が繰返される。
すべての履歴情報262cが抽出された場合(ステップS406においてYESの場合)には、リストに挙げられた履歴情報262cのそれぞれについて、各動作時刻情報413の値に基づいて動作時刻順にソートする(ステップS408)。そして、処理は終了する。
(3.Undo処理対象履歴の操作者についての判断)
再度、図11を参照して、ソートされた履歴情報262cのうち最上位のもの(すなわち、その動作時刻情報の値が最新のもの)がUndo処理対象履歴に設定される。たとえば、図14に示す例では、最も新しいオブジェクトC(3)に係る履歴情報が最初のUndo処理対象履歴に設定される。
続いて、Undo処理対象履歴の動作操作者情報415(図10)の値を参照して、Undo処理対象履歴情報の操作者が特定される。さらに、情報処理装置PC1は、この操作者が自装置を使用するユーザ(この場合には、ユーザA)と一致するか否かを判断する(ステップS6)。すなわち、情報処理装置PC1は、Undo処理対象履歴がUndo処理を指示したユーザの操作によって作成されたものであるか否かを判断する。
そして、Undo処理対象履歴の操作者がユーザAである場合(ステップS6においてYESの場合)には、当該Undo処理対象履歴に対するUndo処理(取消操作)が無条件に実行される(ステップS8)。さらに、ユーザによってUndoボタンが再度押下されると(ステップS10)、ステップS6以下の処理が繰返し実行される。
これに対して、Undo処理対象履歴の操作者がユーザAでない場合(ステップS6においてNOの場合)には、後述する確認通知処理(ステップS12〜S30)が実行される。
たとえば、図14に示す例では、最も新しいオブジェクトC(3)に係る履歴情報の操作者はユーザAであるため、情報処理装置PC1のユーザAがUndoボタンを1回押下すると、この履歴情報に対するUndo処理は無条件に実行される。さらに、情報処理装置PC1のユーザAがUndoボタンを再度押下すると、2番目に新しいオブジェクトC(3)に係る履歴情報の操作者はユーザBであるため、ユーザBが使用している情報処理装置PC2へ確認通知が送信される。
(4.派生操作処理)
Undo処理対象履歴の操作者がUndo処理を指示したユーザとは異なる場合には、当該Undo処理対象履歴の操作者の承諾が得られた後に、Undo処理が実行されるが、このUndo処理対象履歴の操作者の承諾が得られるまでの間に、Undo処理を指示したユーザは、当該Undo処理に引き続く編集などの派生操作を暫定的に実行可能である。
後述するように確認通知がUndo処理対象履歴の操作者に送信されると、Undo処理対象履歴に係るオブジェクトは、Undo処理対象であることを示すように、異なった表示態様(たとえば、より薄い色)で表示される。本実施の形態に従うUndo機能では、この状態においてユーザAによる操作(派生操作)が可能である。
再度、図11を参照して、確認通知送信(ステップS14)の後、ユーザAが派生操作を行なう(ステップS40)と、派生履歴情報が生成される(ステップS42)。ここでは、Undo処理対象履歴に対するUndo処理が実行されたものとみなして、その状態からの履歴情報が派生履歴情報として時系列に記憶される。すなわち、派生操作は、Undo処理対象履歴の1操作前の(1操作分だけ古い)状態と関連付けて記憶される。
たとえば、図14に示す例において、2番目に新しいオブジェクトC(3)がUndo処理対象履歴に設定されており、このUndo処理対象履歴に対するユーザBの確認待ち状態であるとすると、この状態で、ユーザAが何らかの操作(たとえば、新たなオブジェクトの作成など)を行なうと、3番目に新しいオブジェクトB(2)に係る履歴情報と関連付けて、この新たに作成されたオブジェクトに係る履歴情報が派生履歴情報として記憶される。
図16は、図14に示す履歴情報においてユーザAのUndo処理の指示に伴って生成される派生履歴情報の一例を示す模式図である。図17は、図16に示す履歴情報および派生履歴情報の内容の一例を示す図である。
図16(a)を参照して、最も新しいオブジェクトC(3)に係る履歴情報に対するUndo処理が実行済であり、かつ2番目に新しいオブジェクトC(3)がUndo処理の確認中であるとする。ここで、ユーザAが新たなオブジェクトD(4)を作成し(たとえば、図5(d)参照)、さらにこの作成したオブジェクトD(4)に対して変更を加える(たとえば、図5(e)参照)操作を行った場合には、図16(b)に示すように、3番目に新しいオブジェクトB(2)に係る履歴情報と関連付けて、オブジェクトD(4)に係る派生履歴情報が時系列に生成される。
より具体的には、図17(a)に示すように、派生履歴情報262dとしては、履歴タイプ情報411の値として「派生」が記述された履歴情報が生成される。当然のことながら、動作操作者情報415の値としては、このオブジェクトDの作成する操作を行った「ユーザA」が記述される。図17(b)に示すように、関連する履歴情報262cとしては、この派生履歴情報262dとの対応関係を規定するために、派生履歴情報416として、派生履歴情報262dの識別番号409の値である「125」が記述される。
また、Undo処理を指示したユーザがUndo処理対象履歴の操作者の確認がとれるまでの間にさらに別の操作を行った場合には、それらの操作に応じた派生履歴情報が順次生成される。
(5.確認通知処理)
(i)確認通知生成・送信
再度、図11を参照して、Undo処理対象履歴の操作者がユーザAでない場合(ステップS6においてNOの場合)には、情報処理装置PC1は、ユーザBによるUndo処理の実行に対する確認を求めるための確認通知を生成する(ステップS12)。そして、情報処理装置PC1は、作成した確認通知を情報処理装置PC2へ送信する(ステップS14)。なお、情報処理装置PC1は、Undo処理対象履歴の操作者がユーザBであることを特定した上で、ユーザ認証を行なうサーバ装置SRVなどに問い合わせて、ユーザBが使用している情報処理装置PC2を特定する。
この確認通知を受信した情報処理装置PC2は、この確認通知に基づいて、ユーザBが操作者である履歴情報がUndo処理対象であることを提示し、かつ当該Undo処理対象に対する「OK」(承諾)または「NG」(非承諾)の選択を促す画面(ポップアップウィンドウ)を表示する(ステップS16)。
図18は、この発明の実施の形態1に従う承諾の可否の入力を促す画面の一例を示す図である。
図18を参照して、ポップアップウィンドウ500には、いずれのユーザからUndo処理の確認要求が到着したかを示すメッセージ部502と、Undo処理の実行を承諾する「OK」ボタン504と、Undo処理の実行を承諾しない「NG」ボタン506とが配置される。
さらに、ポップアップウィンドウ500には、対象のUndo処理前とUndo処理後のワークスペースWS上におけるオブジェクトの状態を示す比較画面を表示するための参照リンク情報508が配置される。
図19は、図18に示すポップアップウィンドウ500を表示するためのソースコードの一例を示す図である。
図19を参照して、ポップアップウィンドウ500を表示するためのソースコード510は、当該ソースコードを特定するための識別番号(ID)511と、Undo処理確認の要求元のユーザ名を示すFrom情報512と、Undo処理確認の要求先のユーザ名を示すTo情報513と、Undo処理の承諾の可否についての選択項目514と、参照リンク情報508を表示するための参照情報515とを含む。なお、参照情報515としては、確認処理の送信元の情報処理装置PC1についてのアドレスであってもよいし、サーバ装置SRVについてのアドレスであってもよい。
(ii)確認通知表示・比較画面表示
再度、図11を参照して、ユーザBが情報処理装置PC2の入力装置209を操作して、ポップアップウィンドウ500(図18)の参照リンク情報508を押下すると(ステップS18)、情報処理装置PC2から情報処理装置PC1へ参照リンク要求が送信される(ステップS20)。この参照リンク要求を受けて、情報処理装置PC1は、Undo処理前とUndo処理後のワークスペースWS上におけるオブジェクトの状態を示す比較画面を生成し(ステップS22)、この生成した比較画面を表示するための比較画面データを情報処理装置PC2へ送信する(ステップS24)。情報処理装置PC2は、この比較画面データに基づいて比較画面をユーザBに表示する(ステップS26)。
図20は、この発明の実施の形態1に従う比較画面の一例および比較画面の生成処理を説明するための図である。
図20(a)に示すように、比較画面520には、Undo処理の実行前におけるワークスペースWSの状態をレンダリングした処理前イメージ522とUndo処理の実行後におけるワークスペースWSの状態をレンダリングした処理後イメージ524とが表示される。また、Undo処理の実行を承諾する「OK」ボタン504と、Undo処理の実行を承諾しない「NG」ボタン506とが同一画面内に配置される。
この処理前イメージ522は、図14に示すような履歴情報(図20(b)参照)に基づいて生成され、処理後イメージ524は、図14に示す履歴情報のUndo処理対象履歴が派生履歴情報に置換された後の履歴情報(図20(c)参照)に基づいて生成される。
なお、このような比較画面520は、確認通知の送信元の情報処理装置によって必ずしも生成される必要はなく、確認通知の受信元の情報処理装置(この場合には、情報処理装置PC2)が生成してもよく、あるいはサーバ装置SRVが生成してもよい。なお、これらの場合には、参照リンク情報508(図18)のリンク先がそれぞれ情報処理装置PC2およびサーバ装置SRVとなる。
(iii)返答情報生成・送信
再度、図11を参照して、情報処理装置PC2において表示されるポップアップウィンドウ500または比較画面520上で、ユーザが「OK」ボタン504、または「NG」ボタン506を押下すると(ステップS28)、確認通知に対する返答情報が情報処理装置PC2から確認通知の要求元である情報処理装置PC1へ送信される(ステップS30)。
この返答情報には、ユーザ選択によって入力された「OK」(承諾)または「NG」(非承諾)の情報が付加される。
図21は、「OK」が選択された場合に送信される返答情報の内容を示す図である。
図21を参照して、返答情報530は、当該返答情報を特定するための識別番号(ID)531と、返答情報の送信元のユーザ名を示すFrom情報532と、返答情報の送信先のユーザ名を示すTo情報533と、Undo処理に対するユーザ選択の内容を示すUndo処理確認情報534とを含む。このUndo処理確認情報534には、Undo処理対象履歴の操作者が選択した内容を示す値(「OK」または「NG」)が記述される。
なお、上述の確認通知処理は、上述の派生履歴情報と並行かつ独立して実行される。
(6.Undo処理実行)
図11および図12を参照して、Undo処理対象履歴の操作者であるユーザから返答情報が送信されると(ステップS30)、その返答情報の内容に応じて、Undo処理が実行される。より具体的には、Undo処理に対して「OK」(承諾)である旨の返答情報が送信されると、図11に示すように、対象のUndo処理を実行するとともに、派生履歴操作に係るオブジェクトとして有効化される(ステップS44)。すなわち、Undo処理対象履歴が取り消される(無効化される)とともに、派生操作がなされていれば、Undo処理対象履歴に係るオブジェクトに代えて、その派生操作のすべてを反映したオブジェクトが生成される。このとき、図22(a)に示すように、Undo処理についての承諾が得られたのでUndo処理を実行する旨を、Undo処理を指示したユーザに通知してもよい。このポップアップウィンドウ540には、Undo処理についての確認がとれたことを示すメッセージ部542と、当該メッセージを確認したことを示す「OK」ボタン544とが配置される。なお、このユーザへの通知(ポップアップウィンドウ540の表示)は必ずしも必要ではない。
一方、Undo処理に対して「NG」(非承諾)である旨の返答情報が送信されると、図12に示すように、Undo処理が対象の操作者によって承諾されなかったことをUndo処理の指示をしたユーザに通知するとともに、派生操作をどのように取り扱うかを当該ユーザに問い合わせる(ステップS50)。ここで、派生操作を新規操作として取り扱うことが選択されると、Undo処理自体がキャンセルされるとともに、その派生操作に対応する新規オブジェクトとして有効化される(ステップS52)。一方、派生操作を破棄することが選択されると、Undo処理自体がキャンセルされるとともに、その派生操作も破棄される(ステップS54)。
図12のステップS50に示す派生操作の取り扱いについての問い合わせは、図22(b)に示すようなポップアップウィンドウ550により提供される。このポップアップウィンドウ550には、Undo処理が承諾されなかったことを示すメッセージ部552と、派生操作を新規操作として取り扱うことを選択するための「新規操作」ボタン554と、派生操作を破棄することを選択するための「破棄」ボタン556とが配置される。
最後に、図11のステップS44、ならびに図12のステップS52およびS54における履歴情報および派生履歴情報の取り扱いについて図23〜図25を参照して説明する。
図23は、Undo処理の実行が承諾された場合の処理内容を説明するための図である。図24は、Undo処理の実行が承諾されず、かつ派生操作が新規操作として選択された場合の処理内容を説明するための図である。図25は、Undo処理の実行が承諾されず、かつ派生操作の破棄が選択された場合の処理内容を説明するための図である。なお、図23〜図25は、図14に示す履歴情報および図16に示す派生履歴情報に基づく処理例を示す。
図23(a)を参照して、オブジェクトOBJ_CがUndo処理対象であり、このオブジェクトOBJ_Cに対するUndo処理の確認中にオブジェクトOBJ_Dが派生操作により作成されたとする。その後、オブジェクトOBJ_Cに対するUndo処理が承諾されると、オブジェクトOBJ_Cに対するUndo処理が実行される。この結果、オブジェクトOBJ_Cに対する操作が取り消され、これに代えて、派生操作によって生成されたオブジェクトOBJ_Dが有効化される。また、Undo処理が実行されることで、「派」の表示も消える。図23(b)を参照して、図23(a)のようなUndo処理の実行に伴って、オブジェクトOBJ_C(オブジェクトC(3))に関する履歴情報がオブジェクトOBJ_Dに関する派生履歴情報に置換される。
図24(a)を参照して、オブジェクトOBJ_CがUndo処理対象であり、このオブジェクトOBJ_Cに対するUndo処理の確認中にオブジェクトOBJ_Dが作成されたとする。その後、オブジェクトOBJ_Cに対するUndo処理が承諾されず、Undo処理を指示したユーザが派生操作を新規操作として取り扱うことを選択すると、オブジェクトOBJ_Cはそのまま存続するとともに、オブジェクトOBJ_Dが新規オブジェクトとして有効化される。また、Undo処理が実行されることで、「派」の表示も消える。図24(b)を参照して、図24(a)のようなUndo処理の実行に伴って、オブジェクトOBJ_C(オブジェクトC(3))に関する履歴情報はそのまま存続するとともに、オブジェクトOBJ_Dに関する派生履歴情報が履歴情報として追加される。
図25(a)を参照して、オブジェクトOBJ_CがUndo処理対象であり、このオブジェクトOBJ_Cに対するUndo処理の確認中にオブジェクトOBJ_Dが作成されたとする。その後、オブジェクトOBJ_Cに対するUndo処理が承諾されず、Undo処理を指示したユーザが派生操作を破棄することを選択すると、オブジェクトOBJ_Cはそのまま存続するとともに、オブジェクトOBJ_Dは破棄される。また、Undo処理が実行されることで、「派」の表示も消える。図25(b)を参照して、図25(a)のようなUndo処理の実行に伴って、オブジェクトOBJ_C(オブジェクトC(3))に関する履歴情報はそのまま存続するとともに、オブジェクトOBJ_Dに関する派生履歴情報が破棄される。
(本実施の形態における効果)
本実施の形態によれば、複数のユーザによる同時アクセス可能なワークスペースにおいて、いずれかのオブジェクトに対するUndo処理が指示された場合に、当該Undo処理対象の操作がUndo処理を指示したユーザとは別のユーザが実行したものである場合には、当該操作を行なったユーザの承諾したことを条件に、当該Undo処理が実行される。そのため、Undo処理対象となった操作を行なったユーザがあずかり知らないところで、Undo処理が実行されているといった事態を防止することができる。
この結果、Undo処理対象の操作を行なった操作者に迷惑を掛けることなく、複数のユーザ間で効率的な共同作業を行なうができる。
また、本実施の形態によれば、Undo処理の確認を行なっている間に、Undo処理を指示したユーザによる暫定的な操作(派生操作)を行なうことが可能であり、かつUndo処理に対する承諾/非承諾が選択されると、当該派生操作に係るオブジェクトが有効化される。そのため、共同作業する各ユーザの作業を止めることなく、スムーズな共同作業を行なうことができる。さらに、派生操作に係るオブジェクトについては、ワークスペース上で未確定(暫定的)であることを示すマークが表示されるため、ユーザが確定されたものと勘違いすることを防止できる。
[実施の形態2]
上述した実施の形態1では、Undo処理対象履歴の操作者がいずれかの情報処理装置PCにログインしていることを前提とする構成について例示したが、対象の操作者がいずれかの情報処理装置PCにログインしているとは限らない。そこで、確認通知の送信手段として、たとえば、電子メールを用いてもよい。以下、本実施の形態では、電子メールを用いて確認通知を送信する形態について例示する。
本実施の形態に従うシステムの概略構成および各情報処理装置PCの概略構成については、それぞれ上述した図1および図2と同様であるので、詳細な説明は繰返さない。
図26は、この発明の実施の形態2に従うシステムにおいて送信される確認通知の内容の一例を示す図である。
図26を参照して、この確認通知(メール)には、Undo処理の実行を承諾する(「OK」)ためのスクリプトへのリンク情報、およびUndo処理の実行を承諾しない(「NG」)ためのスクリプトへのリンク情報が記述されている。これらのリンク情報が選択されると、図18に示すポップアップウィンドウ500上に表示される「OK」ボタン504、または「NG」ボタン506が選択された場合と同様の処理が実行される。
また、この確認通知(メール)には、対象のUndo処理前とUndo処理後のワークスペースWS上におけるオブジェクトの状態を示す比較画面を表示するためのリンク情報も記述される。このリンク情報が選択されると、図20(a)に示すような比較画面520が表示される。なお、確認通知の送信元の情報処理装置PCが比較画面を生成する場合には、この比較画面データをHTTP(Hypertext Transfer Protocol)プロトコルなどに従って送信することで、Undo処理対象履歴の操作者がメールの閲覧に使用する端末装置にインストールされているブラウザアプリケーション上に比較画面を表示させることができる。あるいは、Undo処理対象履歴の操作者が使用する端末装置上で実行させるスクリプト(プログラム)を確認通知(メール)に添付して送付してもよい。
なお、確認通知(メール)は、Undo処理対象履歴の操作者のメールアカウントが登録されているメールサーバ装置に送信される。
さらに、メールによる確認通知の送信だけを実行する構成に代えて、上述の実施の形態1に示すようなポップアップウィンドウ500として表示可能なデータ形式と同時送信してもよい。
本実施の形態によれば、Undo処理の承諾を求めるユーザが情報処理装置などにログインしていない場合であっても、Undo処理に対する承諾の可否を応答することができる。そのため、共同作業を行なう一部のユーザが不在であっても、効率的な共同作業を行なうことができる。
[実施の形態3]
上述した実施の形態1では、Undo処理対象履歴の操作者に対する確認通知の送信後、承諾が得られるまでの間、Undo処理を指示したユーザが派生操作を実行可能な構成について例示した。しかし、Undo処理を指示したユーザと、Undo処理対象履歴の操作者とが共通のワークスペースWS上で作業を行っている場合には、確認に要する時間はごく短時間になると考えられる。このような場合には、派生操作を行なわないようにしてもよい。
図27は、この発明の実施の形態3に従うUndo処理の全体処理手順を示すフローチャートである。図27に示す全体処理手順は、図11および図12に示す実施の形態1に従うUndo処理の全体処理手順において、ステップS40およびS42の処理に代えてステップS60を実行するようにし、さらにステップS62およびS64の処理を実行するようにしたものである。なお、図27のフローチャートに示すステップのうち、図11および図12のフローチャートに示すステップと同様の処理を行なうものについては、同一のステップ番号を付している。
図27を参照して、確認通知送信(ステップS14)の後、ユーザAによる操作は不可能な状態になる。具体的には、情報処理装置PC1には、Undo処理の確認中であることが表示され(ステップS60)、情報処理装置PC1上での操作が不可能な状態となる。
図28は、この発明の実施の形態3に従うUndo処理の確認中を表示するポップアップウィンドウの一例を示す図である。
図28を参照して、このポップアップウィンドウ560には、Undo処理の確認中であることを示すメッセージ部561と、Undo処理をキャンセルするための「キャンセル」ボタン562とが配置される。この「キャンセル」ボタン562が押下されると、確認中のUndo処理がキャンセルされる。
なお、Undo処理に確認を求めたユーザが一時的に離席しているような状態も考えられるので、確認通知送信の後、所定期間内に返答情報が送信されない場合には、対象のUndo処理をキャンセルしてもよい。この具体的な処理として、図27に示すように、確認通知送信(ステップS14)の後、所定期間が経過したか否か(ステップS62)が判断され、所定期間が経過した場合(ステップS62においてYESの場合)には、対象のUndo処理がキャンセルされる(ステップS64)。一方、所定期間が経過する前(ステップS62においてNOの場合)に、「OK」(承諾)または「NG」(非承諾)を示す返答情報が受信されると、その内容に応じて、図11のステップS44または図12のS50〜S54と同様の処理が実行される。
その他の処理については、図11または図12と同様であるので、詳細な説明は繰返さない。
本実施の形態によれば、派生操作に係る処理を省略できるので、装置構成を簡素化できるとともに、派生操作による作業の混乱を回避できる。
[実施の形態4]
上述の実施の形態2では、Undo処理対象履歴の操作者が他の情報処理装置PCにログインしていないことを想定して確認通知を電子メールで送信する構成について例示し、上述の実施の形態3では、Undo処理対象履歴の操作者が共通のワークスペースWS上で作業を行っていることを前提とした構成について例示した。本実施の形態では、Undo処理対象履歴の操作者が情報処理装置PCにログインしているか否かに応じて、実施の形態2または実施の形態3に示す処理のいずれかを選択的に実行する構成について例示する。
図29は、この発明の実施の形態4に従うUndo処理の全体処理手順を示すフローチャートである。なお、図29のフローチャートに示すステップのうち、図11、図12、図27のフローチャートに示すステップと同様の処理を行なうものについては、同一のステップ番号を付している。
図29を参照して、ワークスペースWS上の何らかのオブジェクトに対するUndo処理を希望するユーザAがUndoボタンを押下すると、図11および図12のステップS2〜S12と同様の処理が実行される。そして、他のユーザBにUndo処理の確認を要求する必要がある場合には、まず、Undo処理対象履歴の操作者がいずれかの情報処理装置PCにログイン中であるか否かが判断される(ステップS70)。なお、このログイン中であるか否かの判断は、ユーザ認証を行なうサーバ装置SRVなどに問い合わせることで実現される。
Undo処理対象履歴の操作者がいずれの情報処理装置PCにもログインしていない場合(ステップS70においてNOの場合)には、確認通知が当該操作者(ユーザB)のメールアドレスに向けてメール送信される(ステップS14A)。この確認通知のメールによる送信(ステップS14A)の後、ユーザAが派生操作を行なう(ステップS40)と、派生履歴情報が生成される(ステップS42)。そして、「OK」(承諾)または「NG」(非承諾)を示す返答情報が受信されると、その内容に応じて、図11のステップS44または図12のS50〜S54と同様の処理が実行される。
一方、Undo処理対象履歴の操作者がいずれかの情報処理装置PCにログインしている場合(ステップS70においてYESの場合)には、確認通知が当該操作者のログインしている情報処理装置PC2に送信される(ステップS14)。この確認通知送信(ステップS14)の後、情報処理装置PC1には、Undo処理の確認中であることが表示され(ステップS60)、ユーザAによる操作は不可能な状態になる。
以下、上述した実施の形態3における処理と同様に、確認通知送信の後、所定期間が経過したか否か(ステップS62)が判断され、所定期間が経過した場合(ステップS62においてYESの場合)には、対象のUndo処理がキャンセルされる(ステップS64)。一方、所定期間が経過する前(ステップS62においてNOの場合)に、「OK」(承諾)または「NG」(非承諾)を示す返答情報が受信されると、その内容に応じて、図11のステップS44または図12のS50〜S54と同様の処理が実行される。
本実施の形態によれば、Undo処理の確認対象のユーザのログイン状態に応じて、適切な方法で確認通知を送信することができる。これにより、より効率的にUndo処理に対する承諾/非承諾を確認することができる。
[実施の形態5]
上述の実施の形態1では、派生操作に係るオブジェクトに近接して派生操作を示すマークを付加表示する構成について例示したが、いずれのオブジェクトが派生操作に係るものであるかといった情報は、Undo処理を指示したユーザと、当該Undo処理についての確認を要求されるユーザと以外のユーザにとってみれば、ことさら重要でない場合も多い。
そこで、Undo処理を指示したユーザおよび当該Undo処理についての確認を要求されたユーザ以外のユーザに対して、このような派生操作を示すマークを明示的に表示するか、あるいは非表示にするかを選択するための設定が可能に構成してもよい。
本実施の形態によれば、指示されたUndo処理に関わるユーザ以外のユーザにとってみれば、必要のない情報が表示されないので、ことさらに混乱を生じることを回避できる。
[実施の形態6]
上述の実施の形態1では、Undo処理が指示される毎に確認通知を送信する構成について例示した。一方、Undo操作は連続的に実行される場合も多い。このような場合には、Undo処理毎に確認を行なうことは、Undo処理を指示するユーザにとってみても、Undo処理の承諾または非承諾を入力するユーザにとってみても操作が煩雑となる可能性がある。そこで、本実施の形態では、同一のユーザに対する連続する確認通知をまとめて送信する構成について例示する。
図30は、この発明の実施の形態6に従うUndo処理の全体処理手順を示すフローチャートである。図30に示す全体処理手順は、図11および図12に示す実施の形態1に従うUndo処理の全体処理手順において、ステップS12に代えて、ステップS12A,S13A,S13Bを実行するようにしたものである。なお、図30のフローチャートに示すステップのうち、図11および図12のフローチャートに示すステップと同様の処理を行なうものについては、同一のステップ番号を付している。
図30を参照して、Undo処理対象履歴の操作者がユーザAでない場合(ステップS6においてNOの場合)には、情報処理装置PC1は、ユーザBによるUndo処理の実行に対する確認を求めるための確認通知を生成または追加する(ステップS12A)。そして、Undo処理の実行に対する確認を求めるユーザが、前回のUndo処理の実行に対する確認を要求したユーザと異なるか否かが判断される(ステップS13A)。なお、最初の確認通知が生成された直後は、前回のUndo処理が存在しないので、ユーザが異ならないとして、処理はステップS13Bに進む。
ステップS13Bでは、引き続くUndo処理の指示があるか否かが判断される。この引き続くUndo処理の指示があるか否かの判断は、Undo処理が連続的に指示され得る状態であるか否かを判断するものであり、たとえば、(1)Undo処理を指示したユーザが別の操作を行なった場合、(2)連続して指示されたUndo処理の回数が規定の上限値に到達した場合、(3)ユーザが明示的にUndo処理の指示の終了を入力した場合には、引き続くUndo処理の指示がないと判断される。
引き続くUndo処理の指示があると判断された場合(ステップS13BにおいてYESの場合)には、さらに、ユーザによってUndoボタンが再度押下されると(ステップS10)、ステップS6以下の処理が繰返し実行される。この処理の繰返しによって、同一の操作者(ユーザ)に対して複数のUndo処理の実行について確認を求める場合には、当該確認の内容を1つの確認通知として送信することができる。
一方、引き続くUndo処理の指示がないと判断された場合(ステップS13BにおいてNOの場合)には、作成した確認通知が情報処理装置PC2へ送信される(ステップS14)。
その他の処理については、図11または図12と同様であるので、詳細な説明は繰返さない。
また、本実施の形態では、Undo実行についての確認通知を表示する際には、確認対象のUndo処理の一覧が表示される。あるいは、プルダウンメニューなどを用いて、各Undo処理についての比較画面(図20)を選択的に表示できるようにしてもよい。
本実施の形態によれば、複数のUndo処理が指示された場合であっても、効率的に承諾/非承諾を選択することができる。
[実施の形態7]
上述の実施の形態1では、「通常」タイプの履歴情報と「派生」タイプの履歴情報(派生履歴情報)とを専用の属性値(履歴タイプ情報411)を用いて識別するようにした。これは、派生履歴情報に係るオブジェクトをワークスペースWS上にレンダリングする際に、派生操作に係るマークなどをより高速処理するためである。
ところで、履歴情報が「派生」したものであるか、あるいは「通常」のものであるかの判断は、派生元の履歴情報に含まれる派生履歴情報416の値に基づいて判断することも可能である。しかしながら、派生履歴情報に含まれる情報自体だけでは、当該履歴情報が派生したものであるとの判断を行なうことはできない。したがって、各履歴情報の「派生」あるいは「通常」のいずれであるかを明示的に示す情報を含むことが好ましい。
このような「派生」あるいは「通常」のいずれであるかを明示的に示す情報を各履歴情報に含ませる構成として、専用の属性値(履歴タイプ情報411)を用いなくとも、たとえば、各履歴情報の識別番号(ID)401の値を用いて識別するようにしてもよい。
図31は、この発明の実施の形態7に従う派生履歴情報262d#および履歴情報262c#の内容の一例を示す図である。
図31(a)を参照して、派生履歴情報262d#では、その識別番号(ID)409として、派生操作を行なったユーザ名を接頭文字として付加した3桁の数値(たとえば、「ユーザA_」)が記述される。一方、図31(b)を参照して、履歴情報262c#では、その識別番号(ID)409として、接頭文字が付加されない3桁の数値が記述される。したがって、各履歴情報に含まれる識別番号(ID)409の値の形、すなわち接頭文字「ユーザA_」が付加されているか否かに基づいて、対象の履歴情報が「派生」であるか「通常」であるかを判断できる。
なお、両者を明確に識別できるものであれば、どのような形状の識別番号を用いてもよい。
また、Undo処理が承諾されて、派生操作に係るオブジェクトが有効化される場合には、派生履歴情報の識別番号が変更されることで、通常の履歴情報として扱われるようになる。
図32は、この発明の実施の形態7に従う派生履歴情報が通常の履歴情報に変更される処理を説明するための図である。
図32(a)に示すように、派生履歴情報として扱われる場合には、その識別番号(ID)409として接頭文字が付加された「ユーザA_001」が記述される。この履歴情報に係るオブジェクトが有効化されると、図32(b)に示すように、通常の履歴情報と同様に、その識別番号(ID)409として3桁の「125」が記述される。
なお、図31および図32に示すように、各派生履歴情報の識別番号に、対応する派生操作を行なったユーザ名を付加した値を用いることで、たとえば、他のユーザが行なった派生操作に係るオブジェクトをレンダリングしないという設定にした場合に、レンダリングすべき(すなわち、自身の行なった)派生履歴情報であるか、あるいはレンダリング不要の(すなわち、他ユーザの行なった)派生履歴情報であるかを即座に判断できる。
本実施の形態によれば、より少ない情報量で「通常」タイプの履歴情報であるか、「派生」タイプの履歴情報であるかを識別することができる。
[実施の形態8]
上述の実施の形態1〜7では、複数の情報処理装置PCとサーバ装置SRVとで構成されるシステムについて例示したが、情報処理装置PC同士がいわゆるピア・トゥ・ピア接続により、同様のシステムを構成してもよい。
このような構成を採用することで、より簡素化された構成によってワークスペースを実現することができる。
[実施の形態1〜8の組み合わせ]
上述した実施の形態1〜8に従うそれぞれの構成を任意に組み合わせることも当然に実施可能である。
[その他の実施の形態]
上述の実施の形態1〜8では、本発明を各種オブジェクトを任意に配置できるワークスペースに適用した場合の構成について例示したが、共同作業可能な表計算アプリケーションや文書作成アプリケーションであっても同様に適用可能である。すなわち、行列状にセルが配置された表計算アプリケーションでは、各セルを上述した1つのオブジェクトに相当するものと見なすことで、上記と同様の処理が可能である。また、文書作成アプリケーションでは、単語、文、段落、節などの各構成単位を上述した1つのオブジェクトに相当するものと見なすことで、上記と同様の処理が可能である。
また、本発明に係るプログラムは、コンピュータのオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明に係るプログラムに含まれ得る。
さらに、本発明に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明に係るプログラムに含まれ得る。
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記憶媒体とを含む。
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
201 CPU、203 内部バス、205 モニター、207 通信インターフェイス、209 入力装置、211 ハードディスク部、213 メモリ部、215 CD−ROMドライブ、217 フレキシブルディスク(FD)ドライブ、215a CD−ROM、217a フレキシブルディスク、252 データ操作部、254 View作成部、256 描画部、258 Undo処理部、258a 派生履歴情報生成部、258b 確認通知生成部、258c 確認通知送信部、258d 返答情報受信部、258e 処理実行部、258f 確認通知表示部、258g 返答情報送信部、260 オブジェクト抽出部、262 データ格納部、262a ワークスペースデータ、262b オブジェクトデータ、262c 履歴情報、262d 派生履歴情報、264 同期処理部、266 送受信部、270 ユーザ認証部、2581 派生操作表示部、2582 確認通知処理部、2583 返答処理部、NW ネットワーク、PC,PC1〜PC3 情報処理装置、SRV サーバ装置。