この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
[用語の定義]
本明細書において「ワークスペース」とは、情報処理装置上で提供され、視認可能なオブジェクトを追加したり編集したりすることができる、複数のユーザによる同時作業が可能な仮想作業空間を意味する。
本明細書において「オブジェクト」とは、ワークスペース上に生成もしくは追加され得るデータ全般を意味する。このオブジェクトの一例としては、図形、テキストドキュメント、ワークシートのセル、画像、音声、ログ、タグ、しおり、注釈、ユーザ情報などが挙げられる。
本明細書において「正規ユーザ」は、対象のワークスペースにログイン可能であり、かつ当該ワークスペース上において行なった作業の内容が恒久的に保存(反映)され得るユーザを意味する。
本明細書において「ゲストユーザ」は、対象のワークスペースにログイン可能であるが、当該ワークスペース上において行なった作業の内容が所定条件(典型的には、承認)が満たされた場合に限って、恒久的に保存(反映)され得るユーザを意味する。
本明細書において「管理ユーザ」は、上述の「ゲストユーザ」がワークスペース上で行なった作業内容を恒久的に保存(反映)するか否か、すなわち当該作業内容を承認するか否かの権限を有しているユーザを意味する。上述の「正規ユーザ」には、この「管理ユーザ」に加えて、ゲストユーザによる作業内容の承認を行なう権限を有さない「一般ユーザ」を含み得る。
[全体構成]
図1は、この発明の実施の形態に従うワークスペースを提供するための情報処理システムの概略構成図である。
図1を参照して、本実施の形態に従う情報処理システムは、ネットワークNW(典型的には、イーサネット(登録商標))を介して互いにデータ通信可能に接続された複数の情報処理装置である、複数のクライエント装置CL1〜CLN(以下、「クライエント装置CL」とも総称する。)とサーバ装置SRVとを含む。すなわち、本実施の形態においては、いわゆるサーバ・クライエント構成によって、本実施の形態に従う情報処理システムを実現する構成について例示する。なお、いわゆるピア・トゥ・ピア構成によって、本実施の形態に従う情報処理システムを実現してもよい。ピア・トゥ・ピア構成を採用した場合には、少なくとも一方の端末側には、サーバ装置SRVによって提供される機能と実質的に等しい機能が搭載される。
また、図示しないが、ネットワークNW上には、データ中継装置であるハブやルータなどが適宜配置される。さらに、ネットワークNWとしては、LAN(Local Area Network)だけでなく、インターネットなどのWAN(Wide Area Network)などを含んで構成してもよい。
サーバ装置SRVは、ワークスペースを提供するための情報(後述する「ワークスペースデータ」)を保持しており、それをクライエント装置CL1〜CLNにそれぞれ提供する。また、それぞれのクライエント装置CL1〜CLN上でユーザが何らかの操作をした内容は、サーバ装置SRVが保持するワークスペースデータに随時反映される。たとえば、いずれかのクライエント装置CL上でユーザがワークスペース上に何らかのオブジェクトを追加すると、当該追加されたオブジェクトを記述する情報が当該クライエント装置CLからサーバ装置SRVへ送信され、サーバ装置SRVは、その情報に基づいて、自装置の保持するワークスペースデータを更新するとともに、更新後のワークスペースデータに基づいて、クライエント装置CL1〜CLNにワークスペースを表示させるための情報をそれぞれ送信する。このようにして、クライエント装置CL1〜CLNのいずれにおいても、実質的に等価なワークスペースが提供され、これによって、ユーザ間での情報の共有化が図られる。
[ハードウェア構成]
図2は、この発明の実施の形態に従う情報処理装置の代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
図2を参照して、本実施の形態に従う情報処理装置であるサーバ装置SRVは、オペレーティングシステムを含む各種プログラムを実行するCPU2と、CPU2でのプログラムの実行に必要なデータを一時的に格納する記憶部としてのメモリ14と、CPU2で実行されるプログラムを不揮発的に格納するハードディスク(HDD)12とを含む。このようなプログラムは、CD−ROM(Compact Disk-Read Only Memory)ドライブ16またはフレキシブルディスク(FD:Flexible Disk)ドライブ18によって、それぞれCD−ROM16aまたはフレキシブルディスク18aなどから読取られる。
CPU2は、キーボード、マウス、タブレットなどからなる入力装置10を介してユーザによる操作要求を受取るとともに、プログラムの実行によって生成される画面出力を出力装置6へ出力する。
出力装置6は、ワークスペースの状態をユーザに表示するためのデバイスであり、典型的には、モニターやプロジェクターなどからなる。
また、CPU2は、LANカードなどからなる通信インターフェイス8を介して、クライエント装置CLとの間でデータ通信を行なう。なお、これらの部位は、内部バス4を介して互いに接続される。
また、本実施の形態に従うクライエント装置CLについても情報処理装置であり、そのハードウェア構成についても、図2に示すサーバ装置SRVのハードウェア構成と同様であるので、詳細な説明は繰返さない。
[処理概要]
本実施の形態に従う情報処理システムでは、少なくとも管理ユーザおよびゲストユーザのアカウントを作成可能である。なお、これらのユーザに加えて、一般ユーザのアカウントを作成可能にしてもよい。さらに、本実施の形態に従う情報処理システムでは、任意のタイミングで、正規ユーザとゲストユーザとのコラボレーション作業(共同作業)を実現可能になっている。
ところで、このような正規ユーザとゲストユーザとのコラボレーション作業を実現する形態として、以下のような形態も想定される。
第1の形態として、コラボレーション作業を行なうタイミングで、ゲストユーザが管理ユーザなどに対して自身の操作権限に対する制約解除を要求し、管理ユーザが当該ゲストユーザの操作権限を一時的に緩和する。しかしながら、このような形態を採用した場合には、管理ユーザは、ゲストユーザからの要求がある度に制約解除および制約再設定を行なわなければならなく、管理ユーザの作業量が増大するという問題が生じ得る。また、ゲストユーザと管理ユーザとの間の遣り取りの増大に伴って、作業効率が低下し得る。さらに、管理ユーザがゲストユーザに対する制約再設定を失念する場合もあり、この場合には、ゲストユーザが本来許可されないはずのオブジェクトなどを閲覧し、あるいは操作してしまうという問題が生じ得る。
また、第2の形態として、ワークスペース上でなされている共同作業のリーダに対して、ゲストユーザが意見や提案などを直接的に伝達する。しかしながら、このような形態を採用した場合には、当該リーダがゲストユーザからの何らかの意見や提案を取り入れようとした場合には、当該リーダ自身がワークスペース上にその内容を書込む必要があり、作業効率が低下し得る。また、ゲストユーザからリーダに対する意見や提案が電子メールやメッセンジャーなどのテキストベースのアプリケーションを用いて行なわれる場合には、ワークスペース上で図や表などのグラフィカルに表現して伝える場合に比較して、ゲストユーザの意図が伝達されにくく、リーダに誤って伝達されるおそれもある。
そこで、本実施の形態に従う情報処理システムでは、上述のような形態を採用した場合の課題を回避するために、以下のような方法を採用する。すなわち、本実施の形態に従う情報処理システムでは、正規ユーザによるワークスペース上での作業内容を反映するための共有作業領域(後述する「ワークスペースデータ」)と、ゲストユーザによるワークスペース上での作業内容を一時的に格納するためのゲスト作業領域(後述する「ゲスト作業データ」)とを区別して設ける。そして、このゲスト作業領域に保持される作業内容は、管理ユーザによって承認が与えられた場合にはじめて共有作業領域に反映される。
このような構成を採用することで、予め設定されているゲストユーザの操作権限に何らの変更を加えることなく、ワークスペース上でゲストユーザに比較的自由に作業を行なわせることができる。それにより、正規ユーザとゲストユーザとのコラボレーション作業を柔軟かつ効率的に行なうことができる。なお、以下の説明において、「ワークスペースに反映」することは、典型的には、ゲストユーザが行なった作業の内容を共有作業領域(ワークスペースデータ)に恒久的に記録することを意味する。
[制御構造]
次に、図3および図4を参照して、本実施の形態に従う情報処理システムを構成するサーバ装置SRVおよびクライエント装置CLの制御構造について説明する。図3は、この発明の実施の形態に従うサーバ装置SRVの概略の制御構造を示すブロック図である。図4は、この発明の実施の形態に従うクライエント装置CLの概略の制御構造を示すブロック図である。
図3を参照して、サーバ装置SRVは、制御構造として、ワークスペース管理部110と、クライエント管理部112と、データ送受信部114と、データ格納部120とを含む。典型的に、ワークスペース管理部110およびクライエント管理部112は、CPU2(図2)がハードディスク12(図2)などに予め格納されているプログラムをメモリ14(図2)に展開した上で実行することで提供される。また、データ格納部120は、HDD12の一部として提供される。また、データ送受信部114は、通信インターフェイス8(図2)と関連するドライバアプリケーションとの協働によって提供される。
データ格納部120は、ワークスペースデータ122と、ゲスト作業データ126と、クライエント用データ124と、ユーザ管理データ128とを保持する。これらのデータは、典型的には、ファイルとして保持される。ワークスペースデータ122は、正規ユーザによるワークスペースにおける作業結果を記述する定義データである。ゲスト作業データ126は、ゲストユーザによるワークスペースにおける作業結果を一時的に格納する定義データである。クライエント用データ124は、クライエント装置CLの出力装置6上(図2)にワークスペースを描画するための定義データである。ユーザ管理データ128は、ワークスペースにログイン可能なアカウントやパスワード、各アカウントに対応付けられた操作権限の制約設定などが記録される。
データ送受信部114は、ネットワークNW上を流れるパケットにうち、自装置を宛先とするパケットを選択的に受信する。そして、データ送受信部114は、受信したパケットから必要なデータを抽出し、サーバ装置SRVに必要な情報であるかどうかをフィルタリングする。抽出したデータが、サーバ装置SRVに必要な情報であり、かつサーバ装置SRVに関するワークスペースに対する処理命令であれば、データ送受信部114は、その抽出したデータをワークスペース管理部110へ伝送する。一方、抽出したデータが、サーバ装置SRVに必要な情報であり、かつサーバ装置SRVに対するログインなどのユーザに関する処理命令であればクライエント管理部112へ伝送する。
なお、データ送受信部114は、クライエント装置CLに関する情報(たとえば、IPアドレスとった送信先を特定するためのユニークな宛先情報やログイン中のユーザ情報など)を保持している。そして、データ送受信部114は、ワークスペース管理部110またはクライエント管理部112から何らかのデータの送信要求を受けると、それらの保持している情報に基づいて、パケットを生成して対象のクライエント装置CLに向けて送出する。
クライエント管理部112は、主として、ワークスペースに参加(ログイン)するクライエント(すなわち、ユーザ)を管理する。より具体的には、クライエント管理部112は、登録機能、削除機能、ログイン管理機能を有する。クライエント管理部112の登録機能および削除機能は、データ格納部120が保持するユーザ管理データ128に新規データの登録・既存データの削除・既存データの更新などを行なうためのものである。クライエント管理部112のログイン管理機能は、いずれかのクライエント装置CLからのログインに関する処理命令に応答して、ユーザ管理データ128を参照して、ログインの可否判断・ログイン中のユーザに対する操作権限の制約設定・ログイン中のユーザの状態通知などを行なうためのものである。
ワークスペース管理部110は、クライエント装置CLからのワークスペースに対する処理命令に応答して、データ格納部120が保持するワークスペースデータ122、クライエント用データ124、ゲスト作業データ126に対する更新などを行なう。また、ワークスペース管理部110は、クライエント装置CLに対して、それぞれの出力装置6上(図2)にワークスペースを描画するためにクライエント用データ124を送信する。より具体的には、ワークスペース管理部110は、登録機能、出力機能、削除機能、読込機能、保存機能、データ作成機能、反映機能を有する。
ワークスペース管理部110の登録機能および削除機能は、正規ユーザがログインしているクライエント装置CLからのワークスペースに対する操作を行なうための処理命令に応答して、データ格納部120が保持するワークスペースデータ122に新規データの登録・既存データの削除・既存データの更新などを行なうためのものである。ワークスペース管理部110の読込機能および保存機能は、データ格納部120に格納されるべき各種データを異なる記憶領域から読出し、あるいは当該記憶領域への書込みを行なうためのものである。ワークスペース管理部110の出力機能は、ワークスペースに参加しているそれぞれのクライエント装置CLへ向けて送信するためのクライエント用データ124を、データ格納部120が保持するワークスペースデータ122およびゲスト作業データ126に基づいて生成するためのものである。ワークスペース管理部110のデータ作成機能は、新たなワークスペース(プロジェクト)の生成が指示された場合に、データ格納部120に新たなワークスペースデータ122などを作成するためのものである。ワークスペース管理部110の反映機能は、後で詳しく説明するように、管理ユーザが承認することで、ゲスト作業データ126の内容、すなわちゲストユーザがワークスペース上で行なった作業内容がワークスペースデータ122に反映される。このようにワークスペースデータ122に作業内容が反映されることで、ゲストユーザが行なった作業が正規ユーザにより行なわれた作業と同等に扱われることになる。
図4を参照して、クライエント装置CLは、制御構造として、ワークスペース管理部140と、描画部142と、データ送受信部144と、データ格納部150とを含む。典型的に、ワークスペース管理部140および描画部142は、CPU2(図2)がハードディスク12(図2)などに予め格納されているプログラムをメモリ14(図2)に展開した上で実行することで提供される。データ格納部150は、HDD12の一部として提供される。また、データ送受信部144は、通信インターフェイス8(図2)と関連するドライバアプリケーションとの協働によって提供される。
データ送受信部144は、ネットワークNW上を流れるパケットにうち、自装置を宛先とするパケットを選択的に受信する。そして、データ送受信部144は、受信したパケットから必要なデータを抽出し、自装置に必要な情報であるかどうかをフィルタリングする。抽出したデータが、自装置に必要な情報であり、かつ自装置に関する処理命令であれば、データ送受信部144は、その抽出したデータをワークスペース管理部140へ伝送する。
なお、データ送受信部144は、サーバ装置SRVおよび他のクライエント装置CLに関する情報(たとえば、IPアドレスとった送信先を特定するためのユニークな宛先情報など)を保持する。そして、データ送受信部144は、ワークスペース管理部140から何らかのデータの送信要求を受けると、それらの保持している情報に基づいて、パケットを生成してサーバ装置SRVなどに向けて送出する。
ワークスペース管理部140は、サーバ装置SRVからクライエント用データ124を受信すると、それをデータ格納部150に一旦保存するとともに、この保存されたクライエント用データ124に基づいて、ワークスペースを表示するためのデータを描画部142へ伝送する。また、ワークスペース管理部140は、ログインしているユーザが入力装置10を操作して、ワークスペースにおいて何らかの作業を行なうと、その作業内容を示すデータをサーバ装置SRVへ送信する。より具体的には、ワークスペース管理部140は、出力機能、削除機能、読込機能、入力機能、保存機能、ユーザインターフェイス機能
を有する。
ワークスペース管理部140の入力機能は、自装置にログインしているユーザ操作に応じて、ワークスペース上の作業を示す処理命令を生成するためのものである。ワークスペース管理部140の読込機能および保存機能は、サーバ装置SRVから受信したクライエント用データ124をデータ格納部150に保存し、あるいはデータ格納部150に保存されたクライエント用データ124を読出すためのものである。ワークスペース管理部110の出力機能は、データ格納部150に保存されたクライエント用データ124に基づいて、ワークスペースを表示するためのデータを出力するためのものである。ワークスペース管理部110の削除機能は、自装置にログインしていたユーザがログアウト(ワークスペーススペースからの離脱)した後に、データ格納部150に保存されているクライエント用データ124を削除するためのものである。ワークスペース管理部140のユーザインターフェイス機能は、出力装置6に各種ダイアログなどのユーザインターフェイス表示するためのものである。より具体的には、ワークスペース管理部140のユーザインターフェイス機能としては、後述するように、自装置にログインしているユーザの種別(管理ユーザ、一般ユーザ、ゲストユーザのいずれか)に応じて提供するダイアログの内容を異ならせる。
描画部142は、ワークスペース管理部140からのデータに基づいて、出力装置6にワークスペースを表示するためにレンダリング(描画処理)を行なう。このレンダリング結果は、図示しない表示用グラフィックメモリに保存される。この描画用グラフィックメモリに保存された内容が出力装置6に反映出力される。
ワークスペース管理部140は、ユーザが入力装置10を操作した内容をデータ格納部150に一旦保存した上で、必要に応じて、描画部142へ制御指令の出力、および/または、サーバ装置SRVへのデータ送信を行なってもよい。たとえば、各クライエント装置CL上で実行されるオペレーティングシステムによって提供されるGUI(Graphical User Interface)上での操作などを示す情報は、サーバ装置SRVへ送信されることなく描画部142へ出力され、出力装置6上の画面表示が更新される。
上述のように、あるクライエント装置CL上であるユーザが行なったワークスペース上の作業内容は、データ送受信部144を通じてサーバ装置SRVへ送信される。サーバ装置SRVは、この作業内容を受信すると、自装置のデータ格納部120が保持するワークスペースデータ122を更新するとともに、クライエント用データ124についても更新する。さらに、サーバ装置SRVは、この更新後のクライエント用データ124をそれぞれクライエント装置CLへ送信する。すると、各クライエント装置CLでは、当該あるユーザが行った作業内容を反映したワークスペースが表示される。このような一連の処理によって、クライエント装置CLの間で、同期したワークスペースが提供される。
[全体処理手順]
以下、本実施の形態に従う情報処理システムにおける処理手順について説明する。より理解を容易にするために、(1)正規ユーザがワークスペースにログインして、ワークスペース上で作業を行なう場合の処理、(2)ゲストユーザがワークスペースにログインして、ワークスペース上で作業を行なう場合の処理、(3)ゲストユーザがワークスペースからログアウト(ワークスペーススペースから離脱)する場合の処理、の3つの状況についてそれぞれ説明する。
<1.正規ユーザがワークスペースにログインして、ワークスペース上で作業を行なう場合の処理>
(ログイン処理)
図5は、この発明の実施の形態に従う情報処理システムにおいて正規ユーザがログインする場合の処理を示す模式図である。なお、図5に示す例では、ゲストユーザはワークスペースにログインしていないものとする。以下の説明では、正規ユーザを「管理ユーザ」とした場合について説明する。
まず、管理ユーザがクライエント装置CL1を用いてワークスペースにログインしようとする場合を考える。この場合には、管理ユーザは、クライエント装置CL1の入力装置10を操作して、自身に割当てられたログイン名およびパスワードなどの識別情報を入力する(ステップST11)。
すると、クライエント装置CL1のワークスペース管理部140(図4)は、データ送受信部144を通じて、これらの入力された管理ユーザの識別情報とともに、ワークスペースへのログイン要求をサーバ装置SRVへ送信する(ステップST12)。
サーバ装置SRVのクライエント管理部112は、このクライエント装置CL1からのログイン要求に応答して、データ格納部120が保持するユーザ管理データ128を参照して、ログイン要求とともに送信された管理ユーザの識別情報に対する認証処理を実行する(ステップST13)。より具体的には、サーバ装置SRVのクライエント管理部112は、管理ユーザが入力したログイン名に対応するユーザ管理データ128に登録されているパスワードと、管理ユーザが入力したパスワードとが一致するか否かを判断することで、ログインの許否を決定する。なお、認証が失敗した場合には、サーバ装置SRVのクライエント管理部112は、その旨をクライエント装置CL1へ送信する。
認証が成功すると、サーバ装置SRVのワークスペース管理部110は、データ格納部120からワークスペースデータ122およびゲスト作業データ126を読出し、これらの読出したデータに基づいて、クライエント用データ124を生成する(ステップST14)。なお、図5に示す例では、ワークスペースデータ122にオブジェクトOBJ1のデータが作成済であるとする。また、図5に示す例では、ワークスペースにゲストユーザがログインしていないので、ゲスト作業データ126には何らのデータも記録されていない。そのため、生成されるクライエント用データ124は、ワークスペースデータ122と実質的に同一のものとなる。このクライエント用データ124の生成処理の詳細については後述する。
その後、サーバ装置SRVのワークスペース管理部110は、データ送受信部114を通じて、生成したクライエント用データ124をクライエント装置CL1へ送信する(ステップST15)。なお、クライエント装置CL1への送信後、クライエント用データ124を破棄してもよい。
クライエント装置CL1のワークスペース管理部140は、サーバ装置SRVからクライエント用データ124を受信すると、受信したクライエント用データ124をデータ格納部150に保存するとともに、クライエント用データ124を描画部142へ出力する。すると、クライエント装置CL1の描画部142が、出力装置6にワークスペースを表示する(ステップST16)。
このような一連の処理によって、クライエント装置CL1にログインした管理ユーザにワークスペースが提供される。
(クライエント用データの生成処理)
次に、図6および図7を参照して、クライエント用データ124の生成処理について説明する。図6は、この発明の実施の形態に従うワークスペースデータ122の一例を示す図である。図7は、この発明の実施の形態に従うクライエント用データ124の一例を示す図である。
図6および図7に示すように、本実施の形態に従うワークスペースおよびワークスペース上のオブジェクトを定義するための記述形式として、典型的に、XMLなどのマークアップ言語が用いられる。このようなマークアップ言語を用いることで、タグ(<>と</>とで囲まれる記述)を自在に設定することでシステムの拡張性を高めることができる。
図6を参照して、ワークスペースデータ122は、ワークスペースタグ211および212(<workspace>および</workspace>)で囲まれた記述220でワークスペースを定義する。この記述220は、ワークスペース上に生成されている各オブジェクトを定義するオブジェクトタグ(<object>および</object>)を含む。このオブジェクトタグは、属性(プロパティ)として、「id」および「authorid」を有する。この「id」属性は、対応のオブジェクトを特定する識別情報(情報処理システムにおいてユニークな値)である。また、「authorid」属性は、対応のオブジェクトの作成者を示す識別番号である。なお、図5に示す管理ユーザの識別番号は「1」であるとする。
また、オブジェクトタグは、さらに、名前タグ222(<name>および</name>)、ならびに位置タグ223(<position>および</position>)をさらに含む。名前タグは、対応するオブジェクトに付与された名前であり、位置タグは、対応するオブジェクトの表示位置(典型的には、定義されたワークスペース上のX,Y座標値)である。なお、この位置タグ223は、クライエント装置CLの描画部142(図4)がワークスペースを表示する際に、各オブジェクトを表示すべき位置を決定する情報として用いられる。
クライエント装置CLのワークスペース管理部110は、図6に示すようなワークスペースデータ122をデータ格納部120から読出すとともに、ゲスト作業データ126についてもデータ格納部120から読出す。そして、クライエント装置CLのワークスペース管理部110は、基本的には、読出したワークスペースデータ122に、ゲスト作業データ126の内容を組入れて(マージして)、図7に示すようなクライエント用データ124を生成する。
図7を参照して、クライエント用データ124は、図6に示すワークスペースデータ122に対して、さらに、ゲストタグ231および232(<guest>および</guest>)で囲まれた部分に、ゲスト作業用データの挿入部233を追加したものに相当する。これは、正規ユーザの作業によって生成されたワークスペースの状態と、ゲストユーザが行なった作業内容とを区別するためである。
(正規ユーザによる作業内容の反映処理)
図8は、この発明の実施の形態に従う情報処理システムにおいて正規ユーザがワークスペース上で何らかの作業を行なった場合の処理を示す模式図である。図8には、クライエント装置CL1にログインしている管理ユーザがワークスペース上でオブジェクトOBJ2を新規作成した場合について例示する。
図8を参照して、ワークスペース上でオブジェクトOBJ2を新規作成しようとする管理ユーザは、クライエント装置CL1の入力装置10を操作して、目的のオブジェクトOBJ2を作成する(ステップST21)。クライエント装置CL1のワークスペース管理部140は、管理ユーザによる作業内容を記述したデータをデータ格納部150に逐次格納する。さらに、クライエント装置CL1のワークスペース管理部140は、所定タイミング(典型的には、オブジェクトOBJ2の作成完了タイミング、もしくはオブジェクトOBJ2の作成開始から所定時間経過後)で、データ送受信部114を通じて、データ格納部150に格納している管理ユーザの作業内容をサーバ装置SRVへ送信する(ステップST22)。
サーバ装置SRVのワークスペース管理部110は、このクライエント装置CL1から作業内容を受信すると、送信元のクライエント装置CL1にログインしているユーザの種別を判断する。図8に示す場合には、クライエント装置CL1には管理ユーザがログインしているので、サーバ装置SRVのワークスペース管理部110は、この受信された作業内容をワークスペースデータ122に反映する(ステップST23)。すなわち、サーバ装置SRVのワークスペース管理部110は、受信した作業内容に基づいて、ワークスペースデータ122を更新する。
続いて、サーバ装置SRVのワークスペース管理部110は、データ格納部120から更新後のワークスペースデータ122およびゲスト作業データ126を読出し、これらの読出したデータに基づいて、クライエント用データ124を生成する(ステップST24)。なお、このクライエント用データ124の生成処理については、上述したので、詳細な説明は繰返さない。そして、サーバ装置SRVのワークスペース管理部110は、データ送受信部114を通じて、生成したクライエント用データ124をクライエント装置CL1へ送信する(ステップST25)。なお、クライエント装置CL1への送信後、クライエント用データ124を破棄してもよい。また、図示していないが、サーバ装置SRVに複数のクライエント装置CLが接続されている場合には、原則として、すべてのクライエント装置CLに対して、対応するクライエント用データ124が送信される。
クライエント装置CL1のワークスペース管理部140は、サーバ装置SRVからクライエント用データ124を受信すると、受信したクライエント用データ124をデータ格納部150に上書保存するとともに、クライエント用データ124を描画部142へ出力する。すると、クライエント装置CL1の描画部142が、出力装置6に表示されているワークスペースを最新のものに更新する(ステップST26)。
このような一連の処理によって、クライエント装置CL1にログインした管理ユーザによるワークスペースでの作業内容が反映される。
<2.ゲストユーザがワークスペースにログインして、ワークスペース上で作業を行なう場合の処理>
上述したように、本実施の形態に従うワークスペースでは、ゲストユーザによる勝手な作業を制限するために、管理ユーザが承認した場合に限って、その作業内容を反映する。以下、その手順について説明する。
(ログイン処理)
図9は、この発明の実施の形態に従う情報処理システムにおいてゲストユーザがログインする場合の処理を示す模式図である。図9に示す例では、ゲストユーザがクライエント装置CL2にログインする場合について説明する。
まず、ゲストユーザは、クライエント装置CL2の入力装置10を操作して、自身に割当てられたログイン名およびパスワードなどの識別情報を入力する(ステップST31)。
すると、クライエント装置CL2のワークスペース管理部140(図4)は、データ送受信部144を通じて、これらの入力されたゲストユーザの識別情報とともに、ワークスペースへのログイン要求をサーバ装置SRVへ送信する(ステップST32)。
サーバ装置SRVのクライエント管理部112は、このクライエント装置CL2からのログイン要求に応答して、データ格納部120が保持するユーザ管理データ128を参照して、ログイン要求とともに送信されたゲストユーザの識別情報に対する認証処理を実行する(ステップST33)。より具体的には、サーバ装置SRVのクライエント管理部112は、ゲストユーザが入力したログイン名に対応するユーザ管理データ128に登録されているパスワードと、ゲストユーザが入力したパスワードとが一致するか否かを判断することで、ログインの許否を決定する。なお、認証が失敗した場合には、サーバ装置SRVのクライエント管理部112は、その旨をクライエント装置CL2へ送信する。
認証が成功すると、サーバ装置SRVのワークスペース管理部110は、データ格納部120からワークスペースデータ122およびゲスト作業データ126を読出し、これらの読出したデータに基づいて、クライエント用データ124を生成する(ステップST34)。なお、このクライエント用データ124の生成処理については、上述したので、詳細な説明は繰返さない。
図9に示す例では、ワークスペースデータ122にオブジェクトOBJ1のデータが作成済であるとする。また、図9に示す例では、ワークスペースにゲストユーザがログイン中の状態であるが、ゲスト作業データ126には何らのデータも記録されていない。そのため、生成されるクライエント用データ124は、ワークスペースデータ122と実質的に同一のものとなる。
その後、サーバ装置SRVのワークスペース管理部110は、データ送受信部114を通じて、生成したクライエント用データ124をクライエント装置CL2へ送信する(ステップST35)。なお、クライエント装置CL2への送信後、クライエント用データ124を破棄してもよい。
クライエント装置CL2のワークスペース管理部140は、サーバ装置SRVからクライエント用データ124を受信すると、受信したクライエント用データ124をデータ格納部150に保存するとともに、クライエント用データ124を描画部142へ出力する。すると、クライエント装置CL2の描画部142が、出力装置6にワークスペースを表示する(ステップST36)。
このような一連の処理によって、クライエント装置CL2にログインしたゲストユーザにワークスペースが提供される。
(ゲストユーザによる作業内容の反映処理)
図10は、この発明の実施の形態に従う情報処理システムにおいてゲストユーザがワークスペース上で何らかの作業を行なった場合の処理を示す模式図である。図10には、管理ユーザがクライエント装置CL1にログインしている状態で、クライエント装置CL2にログインしているゲストユーザがワークスペース上でオブジェクトOBJ3を新規作成した場合について例示する。
図10を参照して、ワークスペース上でオブジェクトOBJ3を新規作成しようとするゲストユーザは、クライエント装置CL2の入力装置10を操作して、目的のオブジェクトOBJ3を作成する(ステップST41)。クライエント装置CL2のワークスペース管理部140は、ゲストユーザによる作業内容を記述したデータをデータ格納部150に逐次格納する。さらに、クライエント装置CL2のワークスペース管理部140は、所定タイミング(典型的には、オブジェクトOBJ3の作成完了タイミング、もしくはオブジェクトOBJ3の作成開始から所定時間経過後)で、データ送受信部114を通じて、データ格納部150に格納しているゲストユーザの作業内容をサーバ装置SRVへ送信する(ステップST42)。
サーバ装置SRVのワークスペース管理部110は、このクライエント装置CL2から作業内容を受信すると、送信元のクライエント装置CL2にログインしているユーザの種別を判断する。図10に示す場合には、クライエント装置CL2にはゲストユーザがログインしているので、サーバ装置SRVのワークスペース管理部110は、この受信された作業内容をゲスト作業データ126に反映する(ステップST43)。すなわち、サーバ装置SRVのワークスペース管理部110は、受信した作業内容に基づいて、ゲスト作業データ126を更新する。
続いて、サーバ装置SRVのワークスペース管理部110は、データ格納部120からワークスペースデータ122および更新後のゲスト作業データ126を読出し、これらの読出したデータに基づいて、クライエント用データ124を生成する(ステップST44)。なお、このクライエント用データ124の生成処理については、上述したので、詳細な説明は繰返さない。
そして、サーバ装置SRVのワークスペース管理部110は、データ送受信部114を通じて、生成したクライエント用データ124をクライエント装置CL1へ送信する(ステップST45)。クライエント装置CL1のワークスペース管理部140は、サーバ装置SRVからクライエント用データ124を受信すると、受信したクライエント用データ124をデータ格納部150に上書保存するとともに、クライエント用データ124を描画部142へ出力する。すると、クライエント装置CL1の描画部142が、出力装置6に表示されているワークスペースを最新のものに更新する(ステップST46)。
また、サーバ装置SRVのワークスペース管理部110は、データ送受信部114を通じて、生成したクライエント用データ124をクライエント装置CL2へも送信する(ステップST47)。クライエント装置CL2のワークスペース管理部140は、サーバ装置SRVからクライエント用データ124を受信すると、受信したクライエント用データ124をデータ格納部150に上書保存するとともに、クライエント用データ124を描画部142へ出力する。すると、クライエント装置CL2の描画部142が、出力装置6に表示されているワークスペースを最新のものに更新する(ステップST48)。
このとき、クライエント装置CL1およびCL2においては、サーバ装置SRVのデータ格納部120が保持しているゲスト作業データ126の内容を、ワークスペースデータ122が保持している内容と区別可能に表示する。より具体的には、クライエント装置CL1およびCL2の各描画部142は、サーバ装置SRVから受信したクライエント用データ124のうち、ゲストタグ231および232(<guest>および</guest>)で囲まれた部分233の記述に対して、通常のオブジェクトとは異なる表示属性を与えるものと解釈する。より具体的には、各描画部142は、ゲストユーザが作成したオブジェクトOBJ3を点滅表示、色を他のオブジェクトとは異なる色に変更して表示、オブジェクトOBJ3に近接してゲストユーザが作成したことを表わすアイコンなどを付加して表示、といった表示処理を行なう。
(管理ユーザがログイン中のクライエント装置CL上のユーザインターフェイス例)
上述したように、本実施の形態に従う情報処理システムでは、ゲストユーザによる作業内容は、管理ユーザの承認が得られた場合に、ワークスペースに反映される。このようなゲストユーザによる作業内容を管理ユーザが承認もしくは否認するためのユーザインターフェイスについて、以下説明する。
図11は、この発明の実施の形態に従う情報処理システムにおいて管理ユーザがログインしているクライエント装置CLにおいて表示されるダイアログの一例を示す図である。管理ユーザがログイン先のクライエント装置CLの出力装置6上に表示されているワークスペース上において、ゲストユーザが作成したオブジェクト(この例では、オブジェクトOBJ3)に対して所定の操作を行なうと、図11に示すようなダイアログ300が表示される。典型的には、表示されるオブジェクトOBJ3上もしくはオブジェクトOBJ3の近傍でマウスに対するクリック操作(たとえば、右クリック)を行なうことで、ダイアログ300がポップアップ表示される。このようなダイアログ300は、ワークスペース管理部140のユーザインターフェイス機能によって提供される。なお、このようなダイアログは、公知のオペレーティングシステムによって提供されるモジュールなどを利用して表示することができる。そのため、ダイアログ300を表示するための構成および処理についての詳細な説明は行なわない。
このダイアログ300には、ゲストユーザが作成した対象のオブジェクトについて、ワークスペースへの反映を「承認」するか、あるいは「否認」するかを選択するためのボタン302および304が配置される。管理ユーザがボタン302を選択すると、ゲストユーザが作成した対象のオブジェクトがワークスペースに反映、すなわち、その作業内容がワークスペースデータ122に恒久的に格納される。一方、管理ユーザがボタン304を選択すると、一時的に格納されている対応する作業内容がゲスト作業データ126から削除される。
以下、それぞれのボタンが選択された場合の処理について説明する。
(管理ユーザによるゲストユーザの作業内容の承認処理)
図12は、この発明の実施の形態に従う情報処理システムにおいて管理ユーザがゲストユーザの作成したオブジェクトを承認した場合の処理を示す模式図である。図12には、ゲストユーザが作成したオブジェクトOBJ3に対して、管理ユーザがワークスペースへの反映を承認しようとする場合について例示する。この場合には、管理ユーザは、クライエント装置CL1の入力装置10を操作して、目的のオブジェクトOBJ3に関連付けて、図11に示すようなダイアログ300を表示させるとともに、このダイアログ300上で「承認」を示すボタン302を選択する(ステップST51A)。すると、クライエント装置CL1のワークスペース管理部140(図4)は、データ送受信部144を通じて、関連付けられたオブジェクトの識別情報(典型的には、図6に示すオブジェクトタグ221内の「id」属性の値)とともに、当該オブジェクトのワークスペースへの反映要求をサーバ装置SRVへ送信する(ステップST52)。
サーバ装置SRVのクライエント管理部112は、このクライエント装置CL1からの反映要求に応答して、データ格納部120が保持するゲスト作業データ126に記録されている対象のオブジェクトについての記述をワークスペースデータ122へ移動する(ステップST53A)。すなわち、クライエント管理部112は、ゲスト作業データ126に記録されている対象のオブジェクトについての記述を削除するとともに、当該削除した内容をワークスペースデータ122に追加する。
続いて、サーバ装置SRVのワークスペース管理部110は、データ格納部120から更新後のワークスペースデータ122および更新後のゲスト作業データ126を読出し、これらの読出したデータに基づいて、クライエント用データ124を生成する(ステップST54)。この場合には、更新後のゲスト作業データ126には何らのデータも記録されていないことになるので、生成されるクライエント用データ124は、更新後のワークスペースデータ122と実質的に同一のものとなる。このクライエント用データ124の生成処理については、上述したので、詳細な説明は繰返さない。
そして、サーバ装置SRVのワークスペース管理部110は、データ送受信部114を通じて、生成したクライエント用データ124をクライエント装置CL1へ送信する(ステップST55)。クライエント装置CL1のワークスペース管理部140は、サーバ装置SRVからクライエント用データ124を受信すると、受信したクライエント用データ124をデータ格納部150に上書保存するとともに、クライエント用データ124を描画部142へ出力する。すると、クライエント装置CL1の描画部142が、出力装置6に表示されているワークスペースを最新のものに更新する(ステップST56)。
また、サーバ装置SRVのワークスペース管理部110は、データ送受信部114を通じて、生成したクライエント用データ124をクライエント装置CL2へも送信する(ステップST57)。クライエント装置CL2のワークスペース管理部140は、サーバ装置SRVからクライエント用データ124を受信すると、受信したクライエント用データ124をデータ格納部150に上書保存するとともに、クライエント用データ124を描画部142へ出力する。すると、クライエント装置CL2の描画部142が、出力装置6に表示されているワークスペースを最新のものに更新する(ステップST58)。
クライエント装置CL1およびCL2に送信される新たなクライエント用データ124では、ゲストユーザが作成したオブジェクトOBJ3は、正規ユーザが作成したオブジェクトと同等に取扱われる。そのため、当該オブジェクトOBJ3の表示属性は、他のオブジェクトOBJ1およびOBJ2と同等に変更される。
(管理ユーザによるゲストユーザの作業内容の否認処理)
図13は、この発明の実施の形態に従う情報処理システムにおいて管理ユーザがゲストユーザの作成したオブジェクトを否認した場合の処理を示す模式図である。図13には、ゲストユーザが作成したオブジェクトOBJ3に対して、管理ユーザがワークスペースへの反映を否認しようとする場合について例示する。この場合には、管理ユーザは、クライエント装置CL1の入力装置10を操作して、目的のオブジェクトOBJ3に関連付けて、図11に示すようなダイアログ300を表示させるとともに、このダイアログ300上で「否認」を示すボタン304を選択する(ステップST51B)。すると、クライエント装置CL1のワークスペース管理部140(図4)は、データ送受信部144を通じて、関連付けられたオブジェクトの識別情報(典型的には、図6に示すオブジェクトタグ221内の「id」属性の値)とともに、当該オブジェクトのワークスペースへの反映却下要求をサーバ装置SRVへ送信する(ステップST52)。
サーバ装置SRVのクライエント管理部112は、このクライエント装置CL1からの反映却下要求に応答して、データ格納部120が保持するゲスト作業データ126に記録されている対象のオブジェクトについての記述を削除する(ステップST53B)。すなわち、クライエント管理部112は、ゲスト作業データ126に記録されているゲストユーザの作業内容を消去する。以下、図12に示すステップST54〜ST58と同様の処理が実行される。
(オブジェクトに対する承認/否認を入力するためのダイアログ)
図11に示すようなゲストユーザが作成したオブジェクトに対する承認または否認を入力するためのダイアログ300は、本来的に、管理ユーザのみが必要とするものである。そのため、図11に示すようなダイアログ300は、管理ユーザがログインしているクライエント装置CLでのみ表示され、ゲストユーザもしくは一般ユーザがログインしているクライエント装置CLでは表示されないようにすることが好ましい。
このようなダイアログ300を選択的に表示する方法として、クライエント装置CLのワークスペース管理部140(図4)が自装置にログインしているユーザの種別を、ログイン処理時に予め取得しておき、この取得した種別に応じて、ダイアログ300の表示を有効にするか、あるいは無効にするかを決定してもよい。すなわち、クライエント装置CLのワークスペース管理部140におけるユーザインターフェイス機能として、ダイアログ300を表示する機能を備えておき、自装置に管理ユーザがログインしている場合に限って、ダイアログ300を表示するようにしてもよい。なお、いずれの種別のユーザが自装置にログインしているかについては、ログイン時だけでなく、任意のタイミングで、クライエント装置CLがサーバ装置SRVへ問い合わせを行なうようにしてもよい。
別の方法として、サーバ装置SRVがクライエント用データ124を生成する際に、送信先のクライエント装置CLにログイン中のユーザ種別に応じてそのデータ内容を適宜変更するようにしてもよい。たとえば、管理ユーザがログインしているクライエント装置CLに対して送信されるクライエント用データ124には、ダイアログ300を表示すべきことおよびその表示形態などを指示する記述を付加する。一方、ゲストユーザがログインしているクライエント装置CLに対して送信されるクライエント用データ124には、上述のようなダイアログ300の表示に係る記述を付加しない。このようにクライエント用データ124の異なるものとすることで、ダイアログ300を、管理ユーザがログインしているクライエント装置CLにおいてのみ表示させることができる。
あるいは別の方法として、それぞれのクライエント装置CL上において、それにログインしているユーザの種別にかかわらず、ダイアログ300を一律に表示可能にする。そして、サーバ装置SRVの側でダイアログ300のボタンを選択した際に送信される要求(反映要求または反映却下要求)を、その要求の送信元のクライエント装置CLにログインしているユーザの種別に応じて、有効なものであるか否かを判断するようにしてもよい。すなわち、管理ユーザがログインしているクライエント装置CLであっても、ゲストユーザがログインしているクライエント装置CLであっても、ダイアログ300を表示可能にする一方、ゲストユーザがログインしているクライエント装置CL上でなされた操作に対しては、サーバ装置SRVが無効な操作として受付けない。
<3.ゲストユーザがワークスペースからログアウトする場合の処理>
ワークスペースにログインしていたゲストユーザがログアウトした場合には、当該ゲストユーザが行なった作業内容は削除しておくことが好ましい。そのため、本実施の形態に従う情報処理システムにおいては、ゲストユーザのログアウトに伴って、ゲスト作業データ126に記録された当該ゲストユーザの作業内容が削除される。以下、このようなゲストユーザのログアウト時の処理について説明する。
図14は、この発明の実施の形態に従う情報処理システムにおいてゲストユーザがログアウトする場合の処理を示す模式図である。
図14を参照して、ワークスペースからログアウトしようとするゲストユーザは、クライエント装置CL2の入力装置10を用いて、所定のログアウト操作を行なう(ステップST61)。
すると、クライエント装置CL2のワークスペース管理部140(図4)は、データ送受信部144を通じて、ゲストユーザの識別情報とともに、ワークスペースからのログアウト要求をサーバ装置SRVへ送信する(ステップST62)。
サーバ装置SRVのクライエント管理部112は、このクライエント装置CL2からのログアウト要求に応答して、送信されたゲストユーザの識別情報についてのログアウト処理を実行する。サーバ装置SRVのクライエント管理部112は、このログアウト処理において、ログアウトしたユーザがゲストユーザであれば、データ格納部120が保持するゲスト作業データ126に記録されている、当該ゲストユーザに関連する作業内容についての記述を削除する(ステップST63)。
続いて、サーバ装置SRVのワークスペース管理部110は、データ格納部120からワークスペースデータ122および更新後のゲスト作業データ126を読出し、これらの読出したデータに基づいて、クライエント用データ124を生成する(ステップST64)。このクライエント用データ124の生成処理については、上述したので、詳細な説明は繰返さない。
そして、サーバ装置SRVのワークスペース管理部110は、データ送受信部114を通じて、生成したクライエント用データ124をクライエント装置CL1へ送信する(ステップST65)。クライエント装置CL1のワークスペース管理部140は、サーバ装置SRVからクライエント用データ124を受信すると、受信したクライエント用データ124をデータ格納部150に上書保存するとともに、クライエント用データ124を描画部142へ出力する。すると、クライエント装置CL1の描画部142が、出力装置6に表示されているワークスペースを最新のものに更新する(ステップST66)。
[サーバ装置における処理手順]
次に、上述したシステム全体についての処理手順を実現するためのサーバ装置SRVにおける処理手順について説明する。
図15は、この発明の実施の形態1に従うサーバ装置SRVにおける処理手順を示すフローチャートである。図15に示す各処理手順は、代表的に、サーバ装置SRVのCPU2(図2)がプログラムを実行することで提供される。
図15を参照して、サーバ装置SRVのCPU2は、いずれかのクライエント装置CLからログイン要求を受信したか否かを判断する(ステップST100)。いずれのクライエント装置CLからもログイン要求を受信していない場合(ステップST100においてNOの場合)には、処理はステップST114へ進む。
一方、いずれかのクライエント装置CLからログイン要求を受信した場合(ステップST100においてYESの場合)には、CPU2は、ユーザ管理データ128を参照して、ログイン要求とともに送信されたユーザの識別情報に対する認証処理を実行する(ステップST102)。続いて、CPU2は、認証処理が成功したか否かを判断する(ステップST104)。
認証処理が成功した場合(ステップST104においてYESの場合)には、CPU2は、ログインしたユーザの種別を特定する(ステップST106)。続いて、CPU2は、保存されているワークスペースデータ122およびゲスト作業データ126に基づいて、クライエント用データ124を生成し(ステップST108)、生成したクライエント用データ124をログイン要求の送信元のクライエント装置CLへ送信する(ステップST110)。そして、処理はステップST114へ進む。
認証処理が成功しなかった(失敗した)場合(ステップST104においてNOの場合)には、CPU2は、認証が失敗したことをログイン要求の送信元のクライエント装置CLへ通知する(ステップST112)。そして、処理はステップST114へ進む。
ステップST114において、CPU2は、いずれかのクライエント装置CLからユーザの作業内容を記述したデータを受信したか否かを判断する。いずれのクライエント装置CLからもユーザの作業内容を記述したデータを受信していない場合(ステップST114においてNOの場合)には、処理はステップST126へ進む。
いずれかのクライエント装置CLからユーザの作業内容を記述したデータを受信した場合(ステップST114においてYESの場合)には、CPU2は、ステップST106における特定結果に基づいて、当該作業内容を記述したデータの送信元のクライエント装置CLにログイン中のユーザ種別を判断する(ステップST116)。
送信元のクライエント装置CLにログイン中のユーザが正規ユーザ(管理ユーザまたは一般ユーザ)である場合(ステップST116において「正規」の場合)には、CPU2は、受信したデータをワークスペースデータ122に追記する(ステップST118)。その後、処理はステップST122へ進む。
一方、送信元のクライエント装置CLにログイン中のユーザがゲストユーザである場合(ステップST116において「ゲスト」の場合)には、CPU2は、受信したデータをゲスト作業データ126に追記する(ステップST120)。その後、処理はステップST122へ進む。
ステップST122において、CPU2は、保存されているワークスペースデータ122およびゲスト作業データ126に基づいて、クライエント用データ124を生成する。続いて、CPU2は、現在ワークスペースにログイン中のすべてのクライエント装置CLを特定し、生成したクライエント用データ124を特定したクライエント装置CLにそれぞれ送信する(ステップST124)。そして、処理はリターンする。
ステップST126において、CPU2は、管理ユーザがログイン中のクライエント装置CLから反映要求を受信したか否かを判断する。管理ユーザがログイン中のクライエント装置CLから反映要求を受信していない場合(ステップST126においてNOの場合)には、処理はステップST130へ進む。
一方、管理ユーザがログイン中のクライエント装置CLから反映要求を受信した場合(ステップST126においてYESの場合)には、CPU2は、ゲスト作業データ126に記述されている作業内容のうち、受信した反映要求に対応付けられているゲストユーザの作業内容をワークスペースデータ122へ移動する(ステップST128)。そして、処理はステップST122へ進む。
ステップST130において、CPU2は、管理ユーザがログイン中のクライエント装置CLから反映却下要求を受信したか否かを判断する。管理ユーザがログイン中のクライエント装置CLから反映却下要求を受信していない場合(ステップST130においてNOの場合)には、処理はステップST134へ進む。
一方、管理ユーザがログイン中のクライエント装置CLから反映却下要求を受信した場合(ステップST130においてYESの場合)には、CPU2は、ゲスト作業データ126に記述されている作業内容のうち、受信した反映要求に対応付けられているゲストユーザの作業内容を削除する(ステップST132)。そして、処理はステップST122へ進む。
ステップST134において、CPU2は、いずれかのクライエント装置CLからログアウト要求を受信したか否かを判断する。いずれかのクライエント装置CLからもログアウト要求を受信していない場合(ステップST134においてNOの場合)には、処理はリターンする。
一方、いずれかのクライエント装置CLからログアウト要求を受信した場合(ステップST134においてYESの場合)には、CPU2は、所定のログアウト処理を実行する(ステップST136)。続いて、CPU2は、ステップST106における特定結果に基づいて、ログアウト要求の送信元のクライエント装置CLにログイン中のユーザ種別を判断する(ステップST138)。送信元のクライエント装置CLにログイン中のユーザが正規ユーザ(管理ユーザまたは一般ユーザ)である場合(ステップST138において「正規」の場合)には、処理はリターンする。
一方、送信元のクライエント装置CLにログイン中のユーザがゲストユーザである場合(ステップST138において「ゲスト」の場合)には、CPU2は、ゲスト作業データ126に記述されている作業内容のうち、ログアウトしたゲストユーザに対応付けられている作業内容を削除する(ステップST140)。そして、処理はステップST122へ進む。
[実施の形態による作用・効果]
この発明の実施の形態によれば、ゲストユーザがなした作業内容については、管理ユーザの承認が与えられてはじめてワークスペースに反映される。そのため、ゲストユーザは、操作権限を与えられた作業可能範囲内において自由に意見や提案を行なうことができ、かつ、管理ユーザは、これらのゲストユーザからの意見や提案のうち、採用すべきと考えるものに対してのみ承認を与えることができる。
これにより、仮に悪意をもったゲストユーザがワークスペースに参加した場合であっても、そのようなゲストユーザによる、ワークスペース上の既存のオブジェクトに対する破壊や、悪意のあるオブジェクトなどの作成を防止できる。
また、この発明の実施の形態によれば、ゲストユーザがワークスペースからログアウト(離脱)すると、未だ管理ユーザによる承認を与えられていない、未反映の作業内容(オブジェクト)が削除される。そのため、管理ユーザが承認を与える意思のない作業内容に対して、いちいち否認する必要がない。そのため、実際のコラボレーション作業(共同作業)を考慮してより作業効率を高めることができる。
[変形例1]
上述の実施の形態においては、正規ユーザの作業内容をワークスペースデータとして格納し、ゲストユーザの作業内容をゲスト作業データとして格納することで、両者を区別する構成について例示したが、同一のファイル内に両者を区別するタグを付加して記録するようにしてもよい。
図16は、この発明の実施の形態の変形例1に従うワークスペースデータ122#の一例を示す図である。なお、図16に示す例は、図6に示す実施の形態に従うワークスペースデータ122に、ゲストユーザが作成したオブジェクトの記述230を追加したものに相当する。
図16に示すように、ワークスペースタグ211および212(<workspace>および</workspace>)で囲まれた範囲に、正規ユーザが作成したオブジェクトの記述220に加えて、暫定タグ261(<temp>および</temp>)で囲まれた記述230を含む。この暫定タグ261は、ゲストユーザによる作業内容が一時的に記録されていることを示すものである。なお、図16に示すようなワークスペースデータ122#を採用した場合には、ゲスト作業データ126は必要ないので、基本的にワークスペースデータ122#自体がクライエント用データ124としてクライエント装置CLへ送信される。すると、各クライエント装置CLでは、暫定タグ261(<temp>および</temp>)で囲まれた部分の記述を、暫定的なオブジェクトであるものとして解釈する。
さらに、管理ユーザがこれらのゲストユーザによる作業内容を反映する場合には、サーバ装置SRVのワークスペース管理部110がこの暫定タグ261を削除等する。
その他の構成および処理などについては、上述した実施の形態と同様であるので、詳細な説明は繰返さない。
このような構成を採用することで、ワークスペースに対して何らかの変更がなされる度にクライエント装置CLに送信されるクライエント用データ124の生成処理を簡素化できる。そのため、処理速度を速くすることができ、その結果、ユーザに対する操作性をより高めることができる。
[変形例2]
本実施の形態に従うワークスペースにおいては、管理ユーザの監視下において、ゲストユーザによる作業の自由度を高めることを目的としている。そのため、ゲストユーザを管理する管理ユーザがワークスペースからログアウトした後には、当該ゲストユーザによる作業を反映できなくなる。したがって、管理ユーザのログアウトとともに、監視下にあるゲストユーザの作業内容も消去することが好ましい場合も多い。そこで、以下、このような処理を行なう構成について例示する。
図17は、この発明の実施の形態の変形例2に従う情報処理システムにおいて管理ユーザがログアウトする場合の処理を示す模式図である。なお、ゲストユーザは、少なくとも1人の管理ユーザに関連付けられているものとする。すなわち、それぞれのゲストユーザには、その作業内容に対して承認を与える権限を付与されている管理ユーザが予め定められているものとする。このような関連付けは、ユーザ管理データ128に記録されているものとする。
図17を参照して、管理ユーザが、ワークスペースからログアウトしようとして、クライエント装置CL1の入力装置10を用いて、所定のログアウト操作を行なったとする(ステップST71)。すると、クライエント装置CL1のワークスペース管理部140(図4)は、データ送受信部144を通じて、管理ユーザの識別情報とともに、ワークスペースからのログアウト要求をサーバ装置SRVへ送信する(ステップST72)。
サーバ装置SRVのクライエント管理部112は、このクライエント装置CL1からのログアウト要求に応答して、送信された管理ユーザの識別情報についてのログアウト処理を実行する。サーバ装置SRVのクライエント管理部112は、ログアウトした管理ユーザに関連付けられているゲストユーザについての作業内容の記述をゲスト作業データ126から削除する(ステップST73)。なお、管理ユーザが1人だけであるような場合には、ゲスト作業データ126のすべての内容が削除される。
続いて、サーバ装置SRVのワークスペース管理部110は、データ格納部120からワークスペースデータ122および更新後のゲスト作業データ126を読出し、これらの読出したデータに基づいて、クライエント用データ124を生成する(ステップST74)。このクライエント用データ124の生成処理については、上述したので、詳細な説明は繰返さない。
そして、サーバ装置SRVのワークスペース管理部110は、データ送受信部114を通じて、生成したクライエント用データ124をクライエント装置CL2へ送信する(ステップST75)。クライエント装置CL2のワークスペース管理部140は、サーバ装置SRVからクライエント用データ124を受信すると、受信したクライエント用データ124をデータ格納部150に上書保存するとともに、クライエント用データ124を描画部142へ出力する。すると、クライエント装置CL2の描画部142が、出力装置6に表示されているワークスペースを最新のものに更新する(ステップST76)。
なお、上述のステップST74〜ST76の処理を必ずしも実行する必要はないが、ゲストユーザがワークスペースにログインしている限りにおいて、自身の行なった作業内容が削除されたことを通知する意味において、クライエント装置CL2の出力装置6における表示内容を更新することが好ましい。
さらに、関連付けられた管理ユーザがワークスペースにログインしていない状態では、ゲストユーザの作業内容をゲスト作業データ126への記録を禁止することが好ましい。
その他の構成および処理などについては、上述した実施の形態と同様であるので、詳細な説明は繰返さない。
このような構成を採用することで、管理ユーザの監視下においてのみ、ゲストユーザによる作業内容をワークスペースに反映するという運営ポリシーを遵守することができる。また、管理ユーザが一旦グアウトした後、再度ログインした場合に、過去にゲストユーザが行なった作業内容が残っているといった不具合の発生を防止することもできる。
[変形例3]
上述の実施の形態においては、ゲストユーザの作成したオブジェクトは、管理ユーザが所定の操作を行なった場合にはじめてワークスペースに反映される構成について例示した。一方、実際のコラボレーション作業(共同作業)においては、それぞれのクライエント装置CL上でワークスペース上の所定範囲を共通に見ながら、議論などを行なう場合も多い。このような場合には、いちいち承認を与える操作を行なうことは、作業効率を低下させることも考えられる。そこで、ゲストユーザが行なった作業を管理ユーザが監視しているとみなされる場合には、当該ゲストユーザが行なった作業を自動的にワークスペースに反映させてもよい。
図18は、この発明の実施の形態の変形例3に従う処理を示す模式図である。図18に示すように、ゲストユーザがログインしているクライエント装置CL2に表示されるワークスペースの範囲と、管理ユーザがログインしているクライエント装置CL1に表示されるワークスペースの範囲との間で重複している範囲があるものとする。このような重複範囲において、ゲストユーザが作成したオブジェクトは、自動的にワークスペースに反映される。もちろん、表示が重複しない範囲にゲストユーザが作成したオブジェクトについては、管理ユーザが明示的に承認を与えることで、ワークスペースに反映される。
その他の構成および処理などについては、上述した実施の形態と同様であるので、詳細な説明は繰返さない。
このような構成を採用することで、管理ユーザの監視下においてのみ、ゲストユーザによる作業内容をワークスペースに反映するという運営ポリシーを遵守するできるとともに、実際のコラボレーション作業(共同作業)を考慮してより作業効率を高めることができる。
[変形例4]
上述の実施の形態においては、ゲストユーザの作成したオブジェクトは、管理ユーザが所定の操作を行なった場合にはじめてワークスペースに反映される構成について例示した。一方、ゲストユーザが何らかのオブジェクトを作成すると、管理ユーザが未だ承認を与えていなくとも、他のユーザ(一般ユーザなど)は、当該ゲストユーザが作成したオブジェクトに対してアクセス(典型的には、表示や編集など)することが可能となる。すなわち、価値の高いオブジェクトに対しては、必然的にユーザアクセスが増加すると考えられるので、このように正規ユーザからのアクセス数が所定数を超えたオブジェクトについては、自動的にワークスペースに反映するようにしてもよい。
その他の構成および処理などについては、上述した実施の形態と同様であるので、詳細な説明は繰返さない。
このような構成を採用することで、実際のコラボレーション作業(共同作業)を考慮して、他の正規ユーザの利便性などに配慮して、より作業効率を高めることができる。
[変形例5]
上述の実施の形態においては、ゲストユーザの作業内容は、管理ユーザが否認するか、あるいは管理ユーザがログアウトしない限り、ゲスト作業データ126から削除されない構成について例示した。しかしながら、ゲストユーザの意見などが玉石混交の状態で多数提案されたような場合には、管理ユーザは、「よさそうな」ものだけを選択的に承認することが多いと考えられる。このような場合、管理ユーザが承認しなかったオブジェクトについての不要な記述は、ゲスト作業データ126に記録されたままとなるが、このような不要な記述が増大すると、リソースの無駄となる。一方、管理ユーザがこれらの不要なオブジェクトに対して、いちいち否認をすることも作業効率を低下させる原因となり得る。
そこで、ゲストユーザが何らからのオブジェクトを作成した後、所定期間が経過すると、当該オブジェクトの記述をゲスト作業データ126から自動的に削除するようにしてもよい。なお、この所定期間の起算点は、対象のオブジェクトに対していずかのユーザがアクセス(典型的には、表示や編集など)した時点としてもよい。すなわち、いずれかのユーザが最後にアクセスしてから所定期間が経過すると、当該オブジェクトの記述がゲスト作業データ126から自動的に削除される。これにより、いずれかのユーザがアクセス中にオブジェクトが消去されるといった不具合を回避できる。
なお、このような構成を実現するために、ゲスト作業データ126に定義されるオブジェクトに関連付けて、作成時間(たとえば、<CreateTime>といったタグもしくは属性)を示す情報を付加することが好ましい。
また、ワークスペース上のオブジェクトが突然消えると、予想しない不具合が生じ得ることもあるので、削除される時間が近付くと、その表示を徐々に薄くしたり、ある時間周期でオブジェクトを震えさせる演出をしたり、視覚的に削除されることを通知するメッセージやアイコンなどを表示させることが好ましい。
その他の構成および処理などについては、上述した実施の形態と同様であるので、詳細な説明は繰返さない。
このような構成を採用することで、実際のコラボレーション作業(共同作業)を考慮して、管理ユーザの作業効率を無駄に低下させてしまうことを抑制できる。
[変形例6]
上述の実施の形態においては、管理ユーザがゲストユーザによって作成されたあるオブジェクトに対して、承認もしくは否認をすると、当該指示に従って即座に処理が実行させる構成について例示した。しかしながら、あるオブジェクトに対する管理ユーザの承認もしくは否認が適用されるタイミングを任意に設定できるようにしてもよい。さらに、あるオブジェクトに対して行なった内容を他のオブジェクトに適用できるようにしてもよい。
このように各種操作の自由度を高めることによって、実際のコラボレーション作業(共同作業)に応じたフレキシブルなシステムを提供できる。
[変形例7]
上述の実施の形態においては、管理ユーザがゲストユーザによって作成されたあるオブジェクトに対して、承認もしくは否認をすると、対応する記載をゲスト作業データ126から削除する構成について例示した。しかしながら、記載自体は保持しつつ、当該記載を無効化するようにしてもよい。以下、このような構成について例示する。
図19は、この発明の実施の形態の変形例7に従うゲスト作業データ126Aの一例を示す図である。図19には、ゲストユーザが作成したオブジェクトに対して、管理ユーザが承認もしくは否認をした場合における、対象のオブジェクトについての削除処理の内容を示す。
図19に示すように、ゲストユーザがオブジェクトを作成した直後においては、ワークスペースタグ211および212(<workspace>および</workspace>)に囲まれて、当該オブジェクトに対応する記述230が存在する。これに対して、削除処理がなされると、記述230の前後にそれぞれ不可視タグ271および272(<invisible>および</invisible>)が付加される。この不可視タグ271および272は、それらに囲まれた内容を表示しない、すなわち無効化するものとして解釈される。その結果、記述230は、ゲスト作業データ126Aから実質的に削除されることになる。
その他の構成および処理などについては、上述した実施の形態と同様であるので、詳細な説明は繰返さない。
このような構成を採用することで、ゲストユーザが作成したオブジェクトを削除した場合であっても、後日、改めて有効と思われるものを再度検討するような場合に有効である。さらに、ゲストユーザのログイン情報を関連付けることで、ゲストユーザが一旦ログオフして、再度ログインした場合に、前回のログオフ直前の状態から作業を再開することもできる。
[変形例8]
上述の実施の形態においては、ゲストユーザの作業内容として、成果物、すなわち生成されたオブジェクトを定義する記述として記録される構成について例示したが、履歴情報として記録するようにしてもよい。すなわち、ゲストユーザが行なった操作を順次記録しておくことで、オブジェクトの単位で承認/否認を行なうだけでなく、より細かな操作単位で承認/否認を行なうことができる。以下、このような構成について例示する。
図20は、この発明の実施の形態の変形例8に従うゲスト作業データ126Bの一例を示す図である。
図20を参照して、ゲスト作業データ126Bは、ターゲットワークスペースタグ281および282(<target_workspace>および</target_workspace>)で囲まれた記述280で対象とするワークスペースを定義する。この記述280は、プロセスタグ283および284(<process>および</process>)を含んでおり、このプロセスタグ283および284には、属性(プロパティ)として、「id」および「authorid」を有する。この「id」属性は、対応のプロセスを特定する識別情報(情報処理システムにおいてユニークな値)である。また、「authorid」属性は、対応のプロセスの実行者を示す識別番号である。
また、プロセスタグは、オブジェクト識別タグ285(<object_id>)およびコマンド識別タグ286(<command_id>)を含む。このオブジェクト識別タグ285は、プロセスの実行対象のオブジェクトを特定する識別情報である。コマンド識別タグ286は、プロセスで実行したコマンドを特定する識別情報である。
すなわち、図示していないが、各オブジェクトに対して実行された処理を示す情報がコマンド識別タグ286の値として順次追記されることになる。
そのため、管理者がゲストユーザによって行なわれた特定のオブジェクトに対する操作に対して、このコマンド識別タグ286の単位で承認/否認をすることができる。
その他の構成および処理などについては、上述した実施の形態と同様であるので、詳細な説明は繰返さない。
このような構成を採用することで、ゲストユーザがワークスペース上の既存データを操作することができ、ゲストユーザの作業範囲を広げることができる。また、ゲストユーザが行なった操作は、管理ユーザにより承認されければ、元に戻されるので、ゲストユーザによる作業を他の他のユーザが見ている前で整理や削除を安全に行なうことができる。
[変形例9]
上述の実施の形態においては、ユーザ(管理ユーザおよびゲストユーザ)が対象のワークスペースにログインすると、毎回クライエント用データ124を作成する構成(図15のステップST108など)を例示した。しかしながら、いずれかのユーザが対象のワークスペースにログインした場合に、サーバ装置SRVに既にクライエント用データ124が生成されていれば、新たにクライエント用データ124を生成することなく、その生成済のクライエント用データ124をログインしたユーザに対応するクライエント装置CLに送信するようにしてもよい。
このような構成を採用することで、クライエント用データ124を不必要に生成することを避けることができるので、この結果、ログイン時の処理を高速化することができる。
[変形例10]
なお、上述の実施の形態および変形例1〜9を任意に組み合わせた情報処理システムを構成することが可能である。
[その他の実施の形態]
本実施の形態に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
また、本実施の形態に従うCPUで実行されるプログラムは、コンピュータのオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。したがって、このようなモジュールを含まないプログラムも、本発明に係るプログラムに含まれ得る。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。