この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
[用語の定義]
本実施の形態において「ワークスペース」とは、情報処理装置上で提供され、視認可能なオブジェクトを追加したり編集したりすることができる、複数のユーザによる同時作業が可能な仮想作業空間を意味する。
本実施の形態において「オブジェクト」とは、ワークスペース上に生成もしくは追加され得るデータ全般を意味する。このオブジェクトの一例としては、図形、テキストドキュメント、ワークシートのセル、画像、音声、ログ、タグ、しおり、注釈、ユーザ情報などが挙げられる。
本実施の形態においては、説明の便宜上、その操作権限の違いに応じて、ユーザを「上位ユーザ」および「一般ユーザ」に区別する。すなわち、「上位ユーザ」は、対象のワークスペースにログイン可能であり、かつ当該ワークスペース上において各種の操作(典型的には、オブジェクトの作成、削除、変更およびワークスペース自体の保存、読出しなど)を行なうことのできるユーザを意味する。一方、「一般ユーザ」は、対象のワークスペースにログイン可能であり、かつ当該ワークスペース上において操作自体は可能であるが、その操作可能範囲は、上位ユーザの操作可能範囲よりは制限されているユーザを意味する。
なお、ユーザ登録において、必ずしも「上位ユーザ」と「一般ユーザ」とを明確に区別する必要はない。すなわち、「上位ユーザ」および「一般ユーザ」という用語は、ユーザをその相対的な操作権限の差に応じて区別するための用語である。そのため、ある「一般ユーザ」に対していずれも「上位ユーザ」(もしくは、ある「上位ユーザ」に対していずれも「一般ユーザ」)とみなされる複数のユーザの間であっても、その操作可能範囲が異なる場合がある。
[全体構成]
図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のいずれにおいても、実質的に等価なワークスペースが提供され、これによって、ユーザ間での情報の共有化が図られる。
さらに、サーバ装置SRVは、後述する外部サービスの依頼先である外部装置との間で通信などが可能になっている。
[ハードウェア構成]
図2は、この発明の実施の形態に従う情報処理装置の代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
図2を参照して、本実施の形態に従う情報処理装置であるサーバ装置SRVは、オペレーティングシステムを含む各種プログラムを実行するCPU2と、CPU2でのプログラムの実行に必要なデータを一時的に格納する記憶部としてのメモリ14と、CPU2で実行されるプログラムを不揮発的に格納するハードディスク(HDD)12とを含む。このようなプログラムは、CD−ROM(Compact Disk-Read Only Memory)ドライブ16またはフレキシブルディスク(FDD)ドライブ18によって、それぞれCD−ROM16aまたはフレキシブルディスク18aなどから読取られる。
CPU2は、キーボード、マウス、タブレットなどからなる入力装置10を介してユーザによる操作要求を受取るとともに、プログラムの実行によって生成される画面データを出力装置6へ出力する。
出力装置6は、ワークスペースの状態をユーザに表示するためのデバイスであり、典型的には、モニターやプロジェクターなどからなる。
また、CPU2は、LANカードなどからなる通信インターフェイス8を介して、クライエント装置CLとの間でデータ通信を行なう。なお、これらの部位は、内部バス4を介して互いに接続される。
また、本実施の形態に従うクライエント装置CLについても情報処理装置であり、そのハードウェア構成についても、図2に示すサーバ装置SRVのハードウェア構成と同様であるので、詳細な説明は繰返さない。
[処理概要]
本実施の形態に従う情報処理システムでは、ワークスペースに参加(ログイン)するユーザのそれぞれの操作権限を独立に設定することができる。そして、本実施の形態に従う情報処理システムにおいては、原則として、上位ユーザが一般ユーザを管理できる状況下であれば、当該上位ユーザに与えられている操作権限と同等の操作権限が一般ユーザに与えられる。より具体的には、いずれかの上位ユーザがワークスペースに参加(ログイン)している限りにおいて、当該ログイン中の上位ユーザに与えられている操作権限の全部もしくは一部を、同じワークスペースに同時にログインしている一般ユーザに与えるものである。
典型的には、あるグループで知的創造作業を行なう場合を考えると、当該グループのリーダが「上位ユーザ」となり、他のメンバーが「一般ユーザ」となる。そして、当該リーダがワークスペースにログインしている間は、当該グループのメンバーの操作などを管理することができるので、その限りにおいて、メンバーに対して、自身に与えられている操作権限と同等もしくはその一部を一時的に与える。すなわち、上位ユーザが一般ユーザの操作内容を把握できるとみなされる限りにおいて、その操作権限を割当てる。これにより、たとえばリーダの作業の全部もしくは一部を他のメンバーが代行したり、メンバー自身がより進んだ作業を行なったりすることができる。これにより作業効率を高めることができる。
また、上位ユーザがワークスペースから離脱(ログアウト)すると、一般ユーザに与えられていた当該上位ユーザの権限が喪失する。すなわち、一般ユーザは、自身に与えられた操作権限の範囲の操作しかすることができなくなる。そのため、上位ユーザの管理外において、一般ユーザが意図しないような操作を行なうことを回避できる。
なお、上位ユーザのみが操作できる項目としては、翻訳作業、文書画像のOCR処理、企業調査などの有料の外部サービスや、印刷コストが相対的に高いカラープリントや、外部ネットワークへのアクセスなどが想定される。これらに加えて、新たなユーザの招待、機密書類の閲覧、他デバイスへの接続といった項目も想定される。
[制御構造]
次に、図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は、ユーザ管理データ121と、参加状態情報122と、操作制限情報123と、ワークスペースデータ124と、クライエント用データ125とを保持する。これらのデータは、典型的には、ファイルとして保持される。但し、参加状態情報122は、後述するように各時点におけるユーザのログイン状況を示す情報を含むので、更新が容易な形式で保持することが好ましい。
ユーザ管理データ121には、ワークスペースにログイン可能なアカウントおよび各アカウントに対応付けられた操作権限などが記録される。すなわち、ユーザ管理データ121には、ワークスペースに参加可能なユーザが、当該ユーザに与えられるワークスペースにおける操作権限と対応付けて登録される。ユーザ管理データ121には、さらに、パスワードが記録されていてもよい。
参加状態情報122には、サーバ装置SRVで管理している各ユーザのワークスペースへの参加状態(典型的には、ログイン中/ログアウト中)が記録される。
操作制限情報123には、サーバ装置SRVで管理しているワークスペースにログイン中のユーザに付与される操作権限が記録される。
ワークスペースデータ124は、ワークスペースおよびワークスペースに存在するオブジェクトを提供するための定義データである。また、ワークスペースデータ124には、ワークスペース上のユーザインターフェイスなどを表示するための情報が含まれる。すなわち、ワークスペースデータ124には、ユーザに提供可能な操作項目がその実行に必要な操作権限に対応付けて定義されている。
クライエント用データ125は、クライエント装置CLの出力装置6上(図2)にワークスペースを描画するための定義データである。なお、宛先のユーザの操作権限に応じてその提供する操作項目を異ならせることを可能とするために、ワークスペースにログインしているユーザ(クライエント装置CL)の別に複数のクライエント用データ125を生成してもよい。なお、クライエント用データ125は、一旦生成後、宛先のクライエント装置CLに送信後に消去してもよい。
データ送受信部114は、ネットワークNW上を流れるパケットのうち、自装置を宛先とするパケットを選択的に受信する。そして、データ送受信部114は、受信したパケットから必要なデータを抽出し、サーバ装置SRVに必要な情報であるかどうかをフィルタリングする。抽出したデータが、サーバ装置SRVに必要な情報であり、かつサーバ装置SRVに関するワークスペースに対する処理命令であれば、データ送受信部114は、その抽出したデータをワークスペース管理部110へ伝送する。一方、抽出したデータが、サーバ装置SRVに必要な情報であり、かつサーバ装置SRVに対するログインなどのユーザに関する処理命令であればクライエント管理部112へ伝送する。
なお、データ送受信部114は、クライエント装置CLに関する情報(たとえば、IPアドレスといった送信先を特定するためのユニークな宛先情報やログイン中のユーザ情報など)を保持している。そして、データ送受信部114は、ワークスペース管理部110またはクライエント管理部112から何らかのデータの送信要求を受けると、それらの保持している情報に基づいて、パケットを生成して対象のクライエント装置CLに向けて送出する。
クライエント管理部112は、主として、ワークスペースにログインするユーザを管理する。より具体的には、クライエント管理部112は、登録・削除部116と、参加状態管理部117と、操作制限管理部118とを含む。
登録・削除部116は、ワークスペースにログイン可能なユーザ(ユーザアカウント)を管理する。より具体的には、登録・削除部116は、ユーザの追加、変更、削除などが指示されると、データ格納部120が保持するユーザ管理データ121の内容を更新するとともに、操作制限情報123の対応する記載についても更新する。
参加状態管理部117は、いずれかのクライエント装置CLからのログインに関する処理命令に応答して、ユーザ管理データ121を参照して、ログインの許否を判断する。また、参加状態管理部117は、周期的もしくは何らかのイベント発生タイミングで、管理するワークスペースに対するユーザのログイン状態に応じて、参加状態情報122を更新する。
操作制限管理部118は、ワークスペースにログイン中のユーザに与える操作権限をユーザの参加状況に応じて変更する。より具体的には、操作制限管理部118は、ユーザ管理データ121および参加状態情報122を参照して、必要に応じて、一般ユーザの操作権限を変更する。すなわち、操作制限管理部118は、ワークスペースへの上位ユーザのログイン状況に応じて、一般ユーザの操作権限を変更するように、操作制限情報123の内容を更新する。
ワークスペース管理部110は、クライエント装置CLからのワークスペースに対する処理命令に応答して、データ格納部120が保持するワークスペースデータ124、クライエント用データ125に対する更新などを行なう。すなわち、ワークスペース管理部110は、ユーザによりなされた操作をワークスペースデータ124に反映する。また、ワークスペース管理部110は、クライエント装置CLに対して、それぞれの出力装置6上(図2)にワークスペースを描画するためにクライエント用データ125を送信する。より具体的には、ワークスペース管理部110は、登録機能、出力機能、削除機能、読込機能、保存機能、データ作成機能を有する。
ワークスペース管理部110の登録機能、出力機能および削除機能は、ログイン中のクライエント装置CL上でユーザが操作した内容に応じた処理命令に応答して、データ格納部120が保持するワークスペースデータ124に新規データの登録・既存データの削除・既存データの更新などを行なうためのものである。ワークスペース管理部110の読込機能および保存機能は、データ格納部120に格納されるべき各種データを異なる記憶領域から読出し、あるいは当該記憶領域への書込みを行なうためのものである。ワークスペース管理部110の出力機能は、ワークスペースにログインしているそれぞれのクライエント装置CLへ向けて送信するためのクライエント用データ125を、データ格納部120が保持する操作制限情報123およびワークスペースデータ124に基づいて生成するためのものである。
図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からクライエント用データ125を受信すると、それをデータ格納部150に一旦保存するとともに、この保存されたクライエント用データ125に基づいて、ワークスペースを表示するためのデータを描画部142へ伝送する。また、ワークスペース管理部140は、ログインしているユーザが入力装置10を操作して、ワークスペースにおいて何らかの操作を行なうと、その操作内容を示すデータをサーバ装置SRVへ送信する。より具体的には、ワークスペース管理部140は、ユーザインターフェイス機能、出力機能、削除機能、読込機能、入力機能、保存機能を有する。
ワークスペース管理部140のユーザインターフェイス機能は、出力装置6に各種ダイアログなどのユーザインターフェイス表示するためのものである。より具体的には、ワークスペース管理部140のユーザインターフェイス機能としては、後述するように、受信したクライエント用データ125の記述内容に基づいて、表示するダイアログの内容を異ならせる。ワークスペース管理部140の出力機能は、データ格納部150に保存されたクライエント用データ125に基づいて、ワークスペースを表示するためのデータを出力するためのものである。ワークスペース管理部140の削除機能は、自装置にログインしていたユーザがログアウト(ワークスペーススペースからの離脱)した後に、データ格納部150に保存されているクライエント用データ125を削除するためのものである。ワークスペース管理部140の読込機能および保存機能は、サーバ装置SRVから受信したクライエント用データ125をデータ格納部150に保存し、あるいはデータ格納部150に保存されたクライエント用データ125を読出すためのものである。ワークスペース管理部140の入力機能は、自装置にログインしているユーザ操作に応じて、ワークスペース上の操作を示す処理命令を生成するためのものである。
描画部142は、ワークスペース管理部140からのデータに基づいて、出力装置6にワークスペースを表示するためにレンダリング(描画処理)を行なう。このレンダリング結果は、図示しない表示用グラフィックメモリに保存される。この描画用グラフィックメモリに保存された内容が出力装置6に反映出力される。
ワークスペース管理部140は、ユーザが入力装置10を操作した内容をデータ格納部150に一旦保存した上で、必要に応じて、描画部142へ制御指令の出力、および/または、サーバ装置SRVへのデータ送信を行なってもよい。たとえば、各クライエント装置CL上で実行されるオペレーティングシステムによって提供されるGUI(Graphical User Interface)上での操作などを示す情報は、サーバ装置SRVへ送信されることなく描画部142へ出力され、出力装置6上の画面表示が更新される。
上述のように、あるクライエント装置CL上であるユーザが行なったワークスペース上の操作内容は、データ送受信部144を通じてサーバ装置SRVへ送信される。サーバ装置SRVは、この操作内容を受信すると、自装置のデータ格納部120が保持するワークスペースデータ124を更新するとともに、クライエント用データ125についても更新する。さらに、サーバ装置SRVは、この更新後のクライエント用データ125をそれぞれクライエント装置CLへ送信する。すると、各クライエント装置CLでは、当該あるユーザが行った操作内容を反映したワークスペースが表示される。このような一連の処理によって、クライエント装置CLの間で、同期したワークスペースが提供される。
[全体処理手順]
以下、本実施の形態に従う情報処理システムにおける処理手順について説明する。より理解を容易にするために、(1)上位ユーザがワークスペースにログインしていない状況で、一般ユーザがワークスペースにログインする場合の処理、(2)一般ユーザがワークスペースにログインしている状況で、上位ユーザがワークスペースにログインする場合の処理、(3)上位ユーザおよび一般ユーザがワークスペースにログインしている状況で、上位ユーザがワークスペースからログアウト(離脱)する場合の処理、の3つの状況についてそれぞれ説明する。
<1.上位ユーザがワークスペースにログインしていない状況で、一般ユーザがワークスペースにログインする場合の処理>
図5は、この発明の実施の形態に従う情報処理システムにおいて上位ユーザがワークスペースにログインしていない状況で、一般ユーザがワークスペースにログインする場合の処理を示す模式図である。なお、上位ユーザのログイン名を「user1」とし、一般ユーザのログイン名を「user2」とする。
図5を参照して、まず、一般ユーザがクライエント装置CL2を用いてワークスペースにログインしようとする場合を考える。この場合には、一般ユーザは、クライエント装置CL2の入力装置10を操作して、自身に割当てられたログイン名およびパスワードなどの識別情報を入力する(ステップST11)。
すると、クライエント装置CL2のワークスペース管理部140(図4)は、データ送受信部144を通じて、これらの入力された一般ユーザの識別情報とともに、ワークスペースへのログイン要求をサーバ装置SRVへ送信する(ステップST12)。
サーバ装置SRVのクライエント管理部112は、このクライエント装置CL2からのログイン要求に応答して、データ格納部120が保持するユーザ管理データ121を参照して、ログイン要求とともに送信された(一般ユーザが入力した)ログイン要求に対するログイン処理を実行する(ステップST13)。より具体的には、サーバ装置SRVのクライエント管理部112は、受信したログイン名がユーザ管理データ121に登録されているか否かを判断する。続いて、ユーザ管理データ121にログイン名が登録されている場合には、クライエント管理部112は、当該ログイン名に対応するパスワードをパスワード保持部(図示しない)から読出し、ログイン名とともに受信した(一般ユーザが入力した)パスワードと一致するか否かを判断する。そして、パスワードが一致すると判断されると、当該一般ユーザのログインを許可する。一方、ユーザ管理データ121にログイン名が登録されていない場合、もしくはパスワードが一致しない場合には、ログインは拒絶される。なお、この場合には、サーバ装置SRVのクライエント管理部112は、その旨をクライエント装置CL2へ送信する。
ログインが許可されると、サーバ装置SRVのクライエント管理部112は、データ格納部120が保持する参加状態情報122の内容を更新する(ステップST14)。より具体的には、クライエント管理部112は、参加状態情報122に、一般ユーザがワークスペースにログイン中であることを示す情報を記述する。参加状態情報122の詳細については後述する。
続いて、サーバ装置SRVのクライエント管理部112は、データ格納部120が保持するユーザ管理データ121および参加状態情報122を参照して、操作制限情報123の内容を更新する(ステップST15)。より具体的には、クライエント管理部112は、ワークスペースにログイン中のユーザにそれぞれ付与されている操作権限に応じて、対象のワークスペースに対して一括して付与する操作権限を決定する。すなわち、あるワークスペースにログイン中のユーザには、操作制限情報123に記載された当該ワークスペースに対応付けられた操作権限が一括して付与される。この操作制限情報123の詳細については後述する。
続いて、サーバ装置SRVのワークスペース管理部110は、データ格納部120が保持する更新後の操作制限情報123を参照して、データ格納部120が保持するワークスペースデータ124からクライエント用データ125を生成する(ステップST16)。後述するように、このワークスペースデータ124には、ワークスペース上に各種操作を受付けるコマンドメニューを表示させるためのタグ情報を含んでいる。ワークスペースデータ124に記述されるこれらのタグ情報の各々には、対応する操作を行なうために必要な操作権限が設定されている。この必要な操作権限とワークスペースに付与される操作権限とを比較して、実行可能な操作が動的に決定される。一般的には、対象のワークスペースに相対的に高い操作権限が与えられていれば、ワークスペースデータ124に記述されたタグ情報に対応する操作項目のうちより多くのものが実行可能な形態でクライエント用データ125に記述される。一方、対象のワークスペースに相対的に低い操作権限が与えられていれば、ワークスペースデータ124に記述されたタグ情報に対応する操作項目のうち、実行可能なものはより制限された形態でクライエント用データ125に記述される。
最終的に、サーバ装置SRVのワークスペース管理部110は、データ送受信部114を通じて、生成したクライエント用データ125をクライエント装置CL2へ送信する(ステップST17)。なお、クライエント装置CL2への送信後、クライエント用データ125を破棄してもよい。
クライエント装置CL2のワークスペース管理部140は、サーバ装置SRVからクライエント用データ125を受信すると、受信したクライエント用データ125をデータ格納部150に保存するとともに、クライエント用データ125を描画部142へ出力する。すると、クライエント装置CL2の描画部142が、出力装置6にワークスペースを表示する(ステップST18)。この出力装置6に表示されるワークスペースには、コマンドメニューMBTが表示される。
図5に示すコマンドメニューMBTは、一例として、オブジェクトを開くためのOpenボタン302と、オブジェクトを保存するためのSaveボタン304、新たなユーザを招待するためのInviteボタン306と、有料サービスを申し込むためのPayserviceボタン308とを含む。図5に示す例では、上述のステップST16におけるクライエント用データ125の生成処理において、一般ユーザには、読込操作のみが許可される場合を示す。そのため、コマンドメニューMBTには、Openボタン302が選択可能にアクティブ表示される一方で、残りのボタン304,306,308はいずれも選択不能にグレイアウトされている。
このような一連の処理によって、クライエント装置CL2にログインした一般ユーザにワークスペースが提供される。以下、上述の各ステップにおける処理について説明する。
(ユーザ管理データ)
図6は、この発明の実施の形態に従うユーザ管理データ121の一例を示す図である。図6に示すように、本実施の形態に従うユーザ管理データ121の内容を定義する記述形式として、典型的に、XMLなどのマークアップ言語が用いられる。このようなマークアップ言語を用いることで、タグ(<>と</>とで囲まれる記述)を自在に設定することでシステムの拡張性を高めることができる。
図6を参照して、ユーザ管理データ121は、クライエントタグ201および202(<client>および</client>)で囲まれたそれぞれの記述203で、対応するワークスペースにログイン可能なユーザを定義する。クライエントタグ201(<client>)は、属性(プロパティ)として、「id」を有する。この「id」属性は、対応のユーザを特定する識別情報(情報処理システムにおいてユニークな値)である。なお、図5に示す上位ユーザの識別情報は「1」であるとし、図5に示す一般ユーザの識別情報は「2」であるとする。
また、記述203は、名前(name)タグ204と、操作権限(authority)タグ205とを含む。名前タグ204には、対応するユーザに付与されたログイン名が格納され、操作権限タグ205には、対応するユーザに付与された権限レベルが格納される。より具体的には、操作権限タグ205に「0」が格納されると、対応するユーザに操作権限が付与されていないことを示し、操作権限タグ205に「1」が格納されると、対応するユーザに操作権限が付与されていることを示す。
なお、このユーザ管理データ121の内容は、クライエント管理部112の登録・削除部116(図4)によって更新される。
図5に示すステップST13において、サーバ装置SRVのクライエント管理部112は、ログイン要求に応答して、名前タグ204に格納されているユーザ名を取得して、ログイン処理を実行する。
(参加状態情報)
図7は、この発明の実施の形態に従う参加状態情報122の一例を示す図である。図7に示すように、本実施の形態に従う参加状態情報122の内容についても、XMLなどのマークアップ言語が用いられる。
図7を参照して、参加状態情報122は、ワークスペース参加状態タグ211および212(<workspace_login>および</workspace_login>)で囲まれたそれぞれの記述213で、対応するワークスペースへのユーザのログイン状態を定義する。ワークスペース参加状態(workspace_login)タグ211は、属性(プロパティ)として、「id」を有する。この「id」属性は、参加状態情報122を特定する識別情報(情報処理システムにおいてユニークな値)である。この識別情報は、複数の参加状態情報122が存在する場合に、それぞれを識別するために用いられる。
また、記述213は、対象ワークスペース(target_workspace)タグ214と、クライエント(client)タグ215とを含む。対象ワークスペースタグ214には、対象となるワークスペースに割当てられた識別情報(情報処理システムにおいてユニークな値)が格納される。また、クライエントタグ215には、対応するユーザを特定する識別情報(id)、および対応するユーザのログイン状態(status)が格納される。この対応するユーザを特定する識別情報(id)には、ユーザ管理データ121のクライエントタグ201(図6)の属性値に対応付けた値が格納される。また、ログイン状態(status)には、対応するユーザがログイン中を示す「1」、もしくは対応するユーザがログアウト中を示す「0」のいずれかが格納される。
図5に示すステップST14において、サーバ装置SRVのクライエント管理部112は、ログイン処理が成功したユーザ名に対応する、クライエントタグ215のログイン状態(status)の値を変更する。
(操作制限情報)
図8は、この発明の実施の形態に従う操作制限情報123の一例を示す図である。図8に示すように、本実施の形態に従う操作制限情報123の内容についても、XMLなどのマークアップ言語が用いられる。
図8を参照して、操作制限情報123は、ワークスペース操作権制限タグ221および222(<workspace_limit>および</workspace_limit>)で囲まれたそれぞれの記述223で、対象のワークスペースにログイン中のユーザに付与される操作権限を定義する。ワークスペース操作権制限(workspace_limit)タグ221は、属性(プロパティ)として、「id」を有する。この「id」属性は、操作制限情報123を特定する識別情報(情報処理システムにおいてユニークな値)である。この識別情報は、複数の操作制限情報123が存在する場合に、それぞれを識別するために用いられる。
また、記述223は、対象ワークスペース(target_workspace)タグ224と、クライエント(client)タグ225とを含む。対象ワークスペースタグ224には、対象となるワークスペースに割当てられた識別情報(情報処理システムにおいてユニークな値)が格納される。また、クライエントタグ225には、対応するユーザを特定する識別情報(id)、および対応するユーザの制限レベル(limitation)が格納される。この対応するユーザを特定する識別情報(id)には、ユーザ管理データ121のクライエントタグ201(図6)の属性値に対応付けた値が格納される。また、制限レベル(limitation)には、対応するユーザに対する操作に対する制限がないことを示す「0」、もしくは対応するユーザに対する操作に対して制限がなされていることを示す「1」のいずれかが格納される。
図5に示すステップST15において、サーバ装置SRVのクライエント管理部112は、参加状態情報122に記録されているクライエントタグ215のうち、そのログイン状態(status)が「1」(ログイン中)を示すものを抽出し、抽出したクライエントタグ215に記録されている、ユーザを特定する識別情報(id)をそれぞれ取得する。そして、クライエント管理部112は、クライエント管理部112は、ユーザ管理データ121に記録されている記述203のうち、先に取得したログイン中のユーザを特定する識別情報(id)を含むものを特定するとともに、対応する操作権限(authority)タグ205の値(権限レベル)をそれぞれ取得する。さらに、クライエント管理部112は、取得したログイン中のユーザについての権限レベルのうち、最も高い権限レベル(権限レベル最高値)を取得する。そして、この権限レベル最高値に対応する制限レベルを、当該時点でワークスペースにログインしている各ユーザに対する制限レベル(limitation)として設定する。
図5に示す状況においては、下位ユーザ(user2、id=「2」)のみがワークスペースにログインしており、権限レベル(authority)が「0」(操作権限なし)であるので、制限レベル(limitation)が「1」(操作に対する制限あり)に設定される(図8参照)。
図9には、ワークスペースにログインしているユーザの権限レベル(authority)と設定される制限レベル(limitation)の値との関係を示す。図9に示すように、各ユーザの制限レベルは、ワークスペースにログインしているユーザについての権限レベル最高値に応じて設定される。
(ワークスペースデータ)
図10は、この発明の実施の形態に従うワークスペースデータ124の一例を示す図である。図10に示すように、本実施の形態に従うワークスペースデータ124の内容についても、XMLなどのマークアップ言語が用いられる。
図10を参照して、ワークスペースデータ124は、ワークスペースタグ231および232(<workspace>および</workspace>)で囲まれた記述233で、ワークスペース上のオブジェクトを定義する。また、ワークスペース(workspace)タグ231は、コマンドメニューを表示させるためのタグ情報である記述238をさらに含む。
ワークスペースタグ(workspace)231は、属性(プロパティ)として、「id」を有する。この「id」属性は、対応するワークスペースを特定する識別情報(情報処理システムにおいてユニークな値)である。
記述233は、オブジェクトにそれぞれ対応した、オブジェクトタグ234および235(<object>および</object>)を含む。オブジェクト(object)タグ234は、属性(プロパティ)として、「id」および「authorid」を有する。この「id」属性は、対応するオブジェクトを特定する識別情報(対応するワークスペースにおいてユニークな値)である。また、「authorid」属性は、対応のオブジェクトの作成者を示す識別情報(情報処理システムにおいてユニークな値)である。
また、オブジェクト(object)タグ234は、オブジェクト名(name)タグ236と、オブジェクト位置(position)タグ237とを含む。このオブジェクト名(name)タグ236は、対応するオブジェクトに付与された名前である。オブジェクト位置(position)タグ237は、対応するオブジェクトの表示位置(典型的には、xy座標値で定義)である。
記述238の各々は、ワークスペースで提供される操作項目に対応した、コマンドタグ239および240(<command>および</command>)を含む。コマンド(command)タグ239は、属性(プロパティ)として、「id」および「permission」を有する。この「id」属性は、対応するコマンドを特定する識別情報(対応するワークスペースにおいてユニークな値)である。また、「permission」属性は、対応するコマンドの実行をどの範囲のユーザに許可するかを示す許可レベルである。なお、この許可レベルは、本実施の形態に従う情報処理システム(もしくは、ワークスペース)の管理者などが予め設定する。この許可レベル(permission)には、一例として、対応するコマンドの実行を許可しないことを示す「0」、操作制限が設定されていない場合にのみ対応するコマンドの実行を許可することを示す「1」、および対応するコマンドの実行を常に許可することを示す「2」のいずれかが格納される。
また、コマンド(command)タグ239は、コマンド名(name)タグ241を含む。このコマンド名(command)タグ241は、対応するコマンドに付与された名前である。なお、図10には、図5に示すコマンドメニューMBTに示すように、command1〜4が、Openボタン302、Saveボタン304、Inviteボタン306、Payserviceボタン308にそれぞれ対応する。
(ワークスペースデータ)
上述したように、図5に示すステップST17において、サーバ装置SRVのワークスペース管理部110は、ワークスペースデータ124からクライエント用データ125を生成する。このとき、図10に示す記述238において定義される操作項目に対応したコマンドの実行可否が、操作制限情報123の内容に基づいて決定される。
図11は、この発明の実施の形態に従うクライエント用データ125の一例を示す図である。図11に示すように、本実施の形態に従うクライエント用データ125の内容についても、XMLなどのマークアップ言語が用いられる。
図10と図11とを比較すると、図11に示すクライエント用データ125では、図10に示すコマンドタグ239がコマンドタグ239#に変更される。このコマンド(command)タグ239#は、属性(プロパティ)として、「id」および「executable」を有する。「id」属性は、対応するコマンドを特定する識別情報(対応するワークスペースにおいてユニークな値)であり、この値は図10に示すワークスペースデータ124における値と同一である。一方、「executable」属性は、対応のコマンドの実行可否レベルを示す。すなわち、「executable」属性には、対応するコマンドが実行可能であることを示す「1」、および対応するコマンドが実行不可能であることを示す「0」のいずれかが格納される。
図5に示す状況においては、下位ユーザ(user2、id=「2」)のみがワークスペースにログインしており、この状況においては、操作制限情報123において、user2に対応する制限レベル(limitation)が「1」に設定されている(図8参照)。そのため、図10に示すcommand1〜4のうち、その許可レベル(permission)が「2」(コマンドの実行を常に許可する)に設定されているcommand1については、実行が許可される。一方、その許可レベル(permission)が「1」(操作制限が設定されていない場合にのみ実行を許可する)に設定されているcommand2〜4については、実行が不許可となる。その結果、図11に示すクライエント用データ125のコマンドタグ(command)239においては、command1に対応する実行可否レベル(executable)のみが「1」(実行可)に設定されるとともに、command2〜4に対応する実行可否レベル(executable)が「0」(実行不可)に設定される。
最終的に、図5に示すステップST17において、図11に示すようなクライエント用データ125がクライエント装置CL2へ送信されることで、ワークスペースとともに、図5に示すようなコマンドメニューMBTが表示される。
このように、クライエント管理部112は、ワークスペースに参加しているユーザに対して、当該ユーザの操作権限に応じた操作を実行可能に提供する。
図12には、ワークスペースデータ124の各コマンドに付与された許可レベル(permission)および操作制限情報123の各ユーザに設定された制限レベル(limitation)と実行可否レベル(executable)の値との関係を示す。図12に示すように、許可レベル(permission)が「2」であれば、制限レベル(limitation)にかかわらず、実行可否レベル(executable)は常に「1」(実行可)に設定される。また、許可レベル(permission)が「1」であれば、制限レベル(limitation)に応じて、実行可否レベル(executable)は「1」(実行可)もしくは「0」(実行不可)に設定される。したがって、制限レベル(limitation)を動的に変更することで、許可レベル(permission)が「1」に初期設定されているコマンドについては、実行の許否を適切に切換えることができる。以下、このようなコマンドの実行可否レベル(executable)を上位ユーザのログイン状況などに応じて変更する手順について以下説明する。
<2.一般ユーザがワークスペースにログインしている状況で、上位ユーザがワークスペースにログインする場合の処理>
図13は、この発明の実施の形態に従う情報処理システムにおいて一般ユーザがワークスペースにログインしている状況で、上位ユーザがワークスペースにログインする場合の処理を示す模式図である。
図13を参照して、上位ユーザがクライエント装置CL1を用いてワークスペースにログインしようとする場合を考える。上位ユーザは、クライエント装置CL1の入力装置10を操作して、自身に割当てられたログイン名およびパスワードなどの識別情報を入力する(ステップST21)。
すると、クライエント装置CL1のワークスペース管理部140(図4)は、データ送受信部144を通じて、これらの入力された上位ユーザの識別情報とともに、ワークスペースへのログイン要求をサーバ装置SRVへ送信する(ステップST22)。
サーバ装置SRVのクライエント管理部112は、このクライエント装置CL1からのログイン要求に応答して、データ格納部120が保持するユーザ管理データ121を参照して、ログイン要求とともに送信された(上位ユーザが入力した)ログイン要求に対するログイン処理を実行する(ステップST23)。より具体的には、サーバ装置SRVのクライエント管理部112は、受信したログイン名がユーザ管理データ121に登録されているか否かを判断する。続いて、ユーザ管理データ121にログイン名が登録されている場合には、クライエント管理部112は、当該ログイン名に対応するパスワードをパスワード保持部(図示しない)から読出し、ログイン名とともに受信した(上位ユーザが入力した)パスワードと一致するか否かを判断する。そして、パスワードが一致すると判断されると、当該上位ユーザのログインを許可する。一方、ユーザ管理データ121にログイン名が登録されていない場合、もしくはパスワードが一致しない場合には、ログインは拒絶される。なお、この場合には、サーバ装置SRVのクライエント管理部112は、その旨をクライエント装置CL1へ送信する。
ログインが許可されると、サーバ装置SRVのクライエント管理部112は、データ格納部120が保持する参加状態情報122の内容を更新する(ステップST24)。より具体的には、クライエント管理部112は、参加状態情報122に、上位ユーザがワークスペースにログイン中であることを示す情報を記述する。
図14は、図13に示すステップST24において更新された後の参加状態情報122の一例を示す図である。図14を参照して、サーバ装置SRVのクライエント管理部112は、ワークスペースへのログインに成功した上位ユーザ(user1)に対応する、識別情報(id)に「1」が割当てられたクライエントタグ215を抽出する。そして、クライエント管理部112は、抽出したクライエントタグ215の属性値である、ログイン状態(status)の値を「0」(ログアウト中)から「1」(ログイン中)に変更する(図14の「変更部分」参照)。このような参加状態情報122の更新処理により、上位ユーザがワークスペースにログイン中であることが示される。
図13に戻って、サーバ装置SRVのクライエント管理部112は、データ格納部120が保持するユーザ管理データ121および参加状態情報122を参照して、操作制限情報123の内容を更新する(ステップST25)。すなわち、クライエント管理部112は、ワークスペースにログイン中の上位ユーザおよび一般ユーザにそれぞれ付与されている操作権限に応じて、対象のワークスペースに対して一括して付与する操作権限を決定する。本実施の形態に示す例においては、上述の図6のユーザ管理データ121に示すように、上位ユーザ(user1)の権限レベル(authority)は「1」(操作権限あり)である。そのため、上述の図9に示す対応関係に従うと、制限レベル(limitation)は「0」(操作に対する制限なし)に設定される。
図15は、図13に示すステップST25において更新された後の操作制限情報123の一例を示す図である。図15を参照して、サーバ装置SRVのクライエント管理部112は、ワークスペースへのログイン中の上位ユーザ(user1)および下位ユーザ(user2)にそれぞれ対応する、識別情報(id)が「1」および「2」が割当てられたクライエントタグ225をそれぞれ抽出する。クライエント管理部112は、抽出したクライエントタグ225の属性値である、制限レベル(limitation)の値を「1」(操作に対する制限あり)から「0」(操作に対する制限なし)に変更する(図15の「変更部分」参照)。
図13に戻って、サーバ装置SRVのワークスペース管理部110は、データ格納部120が保持する更新後の操作制限情報123(図15)を参照して、データ格納部120が保持するワークスペースデータ124からクライエント用データ125を生成する(ステップST26)。すなわち、ワークスペース管理部110は、操作制限情報123において各ユーザに設定されている制限レベル(limitation)と、ワークスペースデータ124に定義されている各コマンドの許可レベル(permission)とを比較して、各コマンドの実行可否レベル(executable)を決定する。言い換えれば、ワークスペース管理部110は、図12に示す対応関係に従って、操作制限情報123とワークスペースデータ124とに基づいて、クライエント用データ125の内容を決定する。
図16は、図13に示すステップST26において生成されたクライエント用データ125の一例を示す図である。本実施の形態に示す例においては、図16に示すように、サーバ装置SRVのワークスペース管理部110は、command1〜4のそれぞれに対応する実行可否レベル(executable)はいずれも「1」(実行可)に設定される(図16の「変更部分」参照)。すなわち、一般ユーザから見れば、上位ユーザが共通のワークスペースにログインすることで、command2〜4のそれぞれに対応する実行可否レベル(executable)はいずれも「0」(実行不可)から「1」(実行可)に変更される。
このように、サーバ装置SRVのワークスペース管理部110は、上位ユーザおよび一般ユーザがワークスペースにログインしている場合に、一般ユーザの操作権限では実行が許可されない操作項目であって、かつ上位ユーザの操作権限では実行が許可される操作項目を、一般ユーザに実行可能に提供する。
図13に戻って、サーバ装置SRVのワークスペース管理部110は、データ送受信部114を通じて、生成したクライエント用データ125をクライエント装置CL1へ送信する(ステップST27)。これに対して、クライエント装置CL1のワークスペース管理部140は、サーバ装置SRVからクライエント用データ125を受信すると、受信したクライエント用データ125をデータ格納部150に保存するとともに、クライエント用データ125を描画部142へ出力する。すると、クライエント装置CL1の描画部142が、対応の出力装置6にワークスペースを表示する(ステップST28)。
また、サーバ装置SRVのワークスペース管理部110は、データ送受信部114を通じて、生成したクライエント用データ125をクライエント装置CL2へも送信する(ステップST29)。これに対して、クライエント装置CL2のワークスペース管理部140は、サーバ装置SRVからクライエント用データ125を受信すると、受信したクライエント用データ125をデータ格納部150に保存するとともに、クライエント用データ125を描画部142へ出力する。すると、クライエント装置CL2の描画部142が、対応の出力装置6にワークスペースを表示する(ステップST30)。
上述したように、図16に示すクライエント用データ125において、command1〜4のそれぞれに対応する実行可否レベル(executable)はいずれも「1」(実行可)に設定されるので、クライエント装置CL1およびCL2のそれぞれの出力装置6に表示されるワークスペース上のコマンドメニューMBTでは、すべてのボタン302,304,306,308が選択可能にアクティブ表示される。
このように、一般ユーザが単独でワークスペースにログインしている場合には、一般ユーザは、ボタン304,306,308に対応するそれぞれのコマンドを実行することができなかったが、より操作可能範囲が広い(すなわち、より高い操作権限を与えられている)上位ユーザが同じワークスペースにログインすることで、これらのコマンドの実行が許可される。
すなわち、サーバ装置SRVのワークスペース管理部110は、上位ユーザと一般ユーザとがワークスペースにログインしている場合に、一般ユーザに対して、一般ユーザの操作権限より広い操作権限に応じた操作を実行可能に提供する。
<3.上位ユーザおよび一般ユーザがワークスペースにログインしている状況で、上位ユーザがワークスペースからログアウト(離脱)する場合の処理>
図17は、この発明の実施の形態に従う情報処理システムにおいて上位ユーザおよび一般ユーザがワークスペースにログインしている状況で、上位ユーザがワークスペースからログアウト(離脱)する場合の処理を示す模式図である。
図17を参照して、上位ユーザがクライエント装置CL1を用いてワークスペースからログアウトしようとする場合を考える。上位ユーザは、クライエント装置CL1の入力装置10を操作して、ログアウトの要求を入力する(ステップST31)。
すると、クライエント装置CL1のワークスペース管理部140(図4)は、データ送受信部144を通じて、上位ユーザの識別情報とともに、ワークスペースからのログアウト要求をサーバ装置SRVへ送信する(ステップST32)。
サーバ装置SRVのクライエント管理部112は、このクライエント装置CL1からのログアウト要求に応答して、ログアウト処理を実行する(ステップST33)。より具体的には、サーバ装置SRVのクライエント管理部112は、参加状態情報122から、ログアウト要求の送信元である上位ユーザ(user1)に対応するクライエントタグ215を抽出する。そして、クライエント管理部112は、抽出したクライエントタグ215の属性値である、ログイン状態(status)の値を「1」(ログイン中)から「0」(ログアウト中)に更新する。なお、この変更後の参加状態情報122の内容は、上述の図7に示すようになる。
続いて、サーバ装置SRVのクライエント管理部112は、データ格納部120が保持するユーザ管理データ121および参加状態情報122を参照して、操作制限情報123の内容を更新する(ステップST35)。すなわち、クライエント管理部112は、ワークスペースへのログインを継続している一般ユーザに付与されている操作権限に応じて、対象のワークスペースに対して一括して付与する操作権限を決定する。なお、この更新後の操作制限情報123の内容は、上述の図8に示すようになる。
続いて、サーバ装置SRVのワークスペース管理部110は、データ格納部120が保持する更新後の操作制限情報123(図8に相当)を参照して、データ格納部120が保持するワークスペースデータ124からクライエント用データ125を生成する(ステップST36)。なお、ステップST36において生成されるクライエント用データ125は、上述の図11に示すようになる。すなわち、command1に対応する実行可否レベル(executable)のみが「1」(実行可)に設定されるとともに、command2〜4に対応する実行可否レベルが「0」(実行不可)に設定される。
続いて、サーバ装置SRVのワークスペース管理部110は、データ送受信部114を通じて、ログアウト処理の完了通知をクライエント装置CL1へ送信する(ステップST37)。これに対して、クライエント装置CL1のワークスペース管理部140は、サーバ装置SRVからログアウト処理の完了通知を受信すると、対応の出力装置6に表示中のワークスペースなどを閉じる(ステップST38)。
また、サーバ装置SRVのワークスペース管理部110は、データ送受信部114を通じて、生成したクライエント用データ125をクライエント装置CL2へ送信する(ステップST39)。これに対して、クライエント装置CL2のワークスペース管理部140は、サーバ装置SRVからクライエント用データ125を受信すると、受信したクライエント用データ125をデータ格納部150に保存するとともに、クライエント用データ125を描画部142へ出力する。すると、クライエント装置CL2の描画部142が、対応の出力装置6にワークスペースを表示する(ステップST40)。
上述したように、ステップST37において送信されるクライエント用データ125においては、command1に対応する実行可否レベルのみが「1」(実行可)に設定されるとともに、command2〜4に対応する実行可否レベルが「0」(実行不可)に設定される。そのため、上位ユーザのワークスペースからのログアウト完了後には、クライエント装置CL2の出力装置6に表示されるワークスペース上のコマンドメニューMBTでは、ボタン302のみが選択可能にアクティブ表示される一方で、残りのボタン304,306,308はいずれも選択不能にグレイアウトされることになる。
このように、同じワークスペースから上位ユーザが離脱すると、一般ユーザの操作可能範囲は、当該一般ユーザに与えられている操作権限の範囲に戻る。
すなわち、サーバ装置SRVのワークスペース管理部110は、上位ユーザがワークスペースから離脱すると、一般ユーザに対して実行可能に提供する操作を一般ユーザの操作権限に応じた範囲に戻す。
なお、図17に示すように、一般ユーザが操作するクライエント装置に対して、その操作可能範囲を制限したクライエント用データ125を送信する場合において、その制限されることになるいずれかのコマンド(処理)が実行中であれば、そのコマンドの実行が完了するまで、クライエント用データ125の送信を待機するようにしてもよい。
[サーバ装置における処理手順]
次に、上述したシステム全体についての処理手順を実現するためのサーバ装置SRVにおける処理手順について説明する。
図18は、この発明の実施の形態に従うサーバ装置SRVにおける処理手順を示すフローチャートである。図18に示す各処理手順は、代表的に、サーバ装置SRVのCPU2(図2)がプログラムを実行することで提供される。
図18を参照して、サーバ装置SRVのCPU2は、いずれかのクライエント装置CLからログイン要求を受信したか否かを判断する(ステップST100)。いずれのクライエント装置CLからもログイン要求を受信していない場合(ステップST100においてNOの場合)には、処理はステップST116へ進む。
一方、いずれかのクライエント装置CLからログイン要求を受信した場合(ステップST100においてYESの場合)には、CPU2は、ユーザ管理データ121を参照して、ログイン要求とともに送信されたユーザの識別情報に対する認証処理を実行する(ステップST102)。続いて、CPU2は、認証処理が成功したか否かを判断する(ステップST104)。
認証処理が成功した場合(ステップST104においてYESの場合)には、CPU2は、保持している参加状態情報122の内容を更新する(ステップST106)。続いて、CPU2は、保持しているユーザ管理データ121および参加状態情報122を参照して、操作制限情報123の内容を更新する(ステップST108)。すなわち、CPU2は、ワークスペースに現在ログイン中のユーザに対して、付与する操作権限を決定する。
さらに、CPU2は、更新後の操作制限情報123を参照して、保持しているワークスペースデータ124からクライエント用データ125を生成し(ステップST110)、生成したクライエント用データ125を、ワークスペースに現在ログインしているクライエント装置CLへそれぞれ送信する(ステップST112)。そして、処理はステップST116へ進む。
認証処理が成功しなかった(失敗した)場合(ステップST104においてNOの場合)には、CPU2は、認証が失敗したことをログイン要求の送信元のクライエント装置CLへ通知する(ステップST114)。そして、処理はステップST116へ進む。
ステップST116において、CPU2は、いずれかのクライエント装置CLからログアウト要求を受信したか否かを判断する。いずれかのクライエント装置CLからもログアウト要求を受信していない場合(ステップST116においてNOの場合)には、処理はリターンする。
一方、いずれかのクライエント装置CLからログアウト要求を受信した場合(ステップST116においてYESの場合)には、CPU2は、所定のログアウト処理を実行する(ステップST118)。続いて、CPU2は、保持している参加状態情報122の内容を更新する(ステップST120)。続いて、CPU2は、保持しているユーザ管理データ121および参加状態情報122を参照して、操作制限情報123の内容を更新する(ステップST122)。すなわち、CPU2は、対象のユーザがログアウト後においてもログインを継続する各ユーザに与えられている操作権限に基づいて、それらのユーザに付与する操作権限を決定する。
さらに、CPU2は、更新後の操作制限情報123を参照して、保持しているワークスペースデータ124からクライエント用データ125を生成し(ステップST124)、生成したクライエント用データ125を、ワークスペースに現在ログインしているクライエント装置CLへそれぞれ送信する(ステップST126)。そして、処理はリターンする。
[実施の形態による作用・効果]
この発明の実施の形態によれば、上位ユーザのワークスペースへのログインといったイベントに応じて、同時にワークスペースにログインしている一般ユーザについての操作権限を自動的に緩和することができる。そのため、上位ユーザが一般ユーザに当該一般ユーザの操作権限を越えた範囲の操作を依頼するような場合であっても、余分な操作を必要としない。また、上位ユーザがワークスペースからログアウトすることで、一般ユーザが実行可能な操作項目が元の操作権限の範囲に戻るので、一般ユーザが上位ユーザの意図に反した操作等を行なうことを防止できる。
[変形例1]
上述の実施の形態においては、ワークスペース上で提供される各種操作(コマンド)毎に許可レベル(permission)を予め設定する構成について例示したが、ワークスペース上のオブジェクト毎に許可レベルを設定したり、ワークスペース上の領域毎に許可レベルを設定したりするようにしてもよい。すなわち、各種操作(コマンド)自体ではなく、当該操作の対象について許可レベルを設定してもよい。
図19は、この発明の実施の形態の変形例1に従うワークスペースデータ124Aの一例を示す図である。図20は、この発明の実施の形態の変形例1に従うクライエント用データ125Aの一例を示す図である。図21は、この発明の実施の形態の変形例1に従うワークスペースデータ124の各オブジェクトに付与された許可レベルとクライエント用データにおける実行可否レベルの値との関係を示す図である。
図19に示すワークスペースデータ124Aでは、オブジェクト(object)タグ234Aの属性(プロパティ)として、「id」、「authorid」および「permission」を有する。
「permission」属性は、対応のオブジェクトに対する操作をどの範囲のユーザに許可するかを示す許可レベルである。なお、この許可レベルは、本実施の形態に従う情報処理システム(もしくは、ワークスペース)の管理者などが予め設定する。図19に示す許可レベル(permission)には、一例として、対応するオブジェクトに対する何らの操作も許可しないことを示す「0」、操作制限が設定されていない場合にのみ対応するオブジェクトに対する操作を許可することを示す「1」、および対応するオブジェクトに対する任意の操作を常に許可することを示す「2」のいずれかが格納される。
なお、「id」属性および「authorid」属性については、図10において説明したので、詳細な説明は繰返さない。
上述のように、ワークスペースデータ124Aには、ワークスペースに存在するオブジェクトの定義に対応付けて、当該オブジェクトに対する操作を実行するために必要な操作権限が定義されている。
図19に示すようなワークスペースデータ124Aに対して、オブジェクト単位で実行可否レベル(executable)を設定することができる。すなわち、サーバ装置SRVのワークスペース管理部110は、各オブジェクトに付与された許可レベル(permission)、各ユーザに設定された制限レベル(limitation)、および各オブジェクトの作成者情報(authorid)などに基づいて、各ユーザに送信されるクライエント用データ125Aにおける各オブジェクトについての実行可否レベルを決定する。すなわち、サーバ装置SRVのワークスペース管理部110は、図19に示すようなワークスペースデータ124Aから、図20に示すようなクライエント用データ125Aを生成する。
図20に示すクライエント用データ125Aにおいては、オブジェクトタグ(object)234#の属性(プロパティ)として、「executable」を有する。この「executable」属性には、対応するオブジェクトに対する操作が可能であることを示す「1」、および対応するオブジェクトに対する操作が不可能であることを示す「0」のいずれかが格納される。
このような各オブジェクトに対する実行可否レベル(executable)は、図21に示すような対応関係に基づいて決定される。図21に示す対応関係においては、ユーザ自身が作成した(すなわち、authoridの値が自身のidと一致する)オブジェクトについては、そのオブジェクトに対する操作は常に実行可能とされる。一方、自身以外のユーザが作成した(すなわち、authoridの値が自身のidと一致しない)オブジェクトについては、そのオブジェクトに対する操作の実行可否レベルは、設定されている許可レベル(permission)と各ユーザに設定された制限レベル(limitation)との関係に基づいて決定される。
このように、サーバ装置SRVのワークスペース管理部110は、上位ユーザおよび一般ユーザがワークスペースにログインしている場合に、一般ユーザに対して、一般ユーザの操作権限では操作することができないオブジェクトであって、かつ上位ユーザの操作権限では操作できるオブジェクトを、操作可能に表示する。
この発明の実施の形態に従う変形例1によれば、実施の形態に従う構成に比較して、操作権限の設定をより詳細に行なうことができる。
[変形例2]
上述の実施の形態においては、上位ユーザがワークスペースからログアウトすると、ユーザの制限レベル(limitation)が即座に変更される構成について例示したが、この制限レベルを変更するタイミングをより柔軟に設定できるようにしてもよい。
たとえば、上位ユーザのログアウトに伴って制限レベルが変更されることとなった場合に、予め一般ユーザにその旨を通知した上で、制限レベルが変更するようにしてもよい。
この場合には、一般ユーザに制限レベルの変更を通知してから、所定時間経過後に、制限レベルの変更を反映するようにしてもよい。このように制限レベルの変更を所定時間経過後に実行する構成としては、上述の実施の形態に従う構成に対してタイマー機能を付加すればよい。具体的には、上位ユーザがワークスペースからログアウトしたことをイベントとして、参加状態情報122の内容は更新するが、操作制限情報123の制限レベルについては更新しない。すなわち、操作制限情報123の制限レベルの更新に代えて、タイマー機能のカウントを開始する。そして、タイマー機能がカウントアップ(カウント値の設定値までの到達)すると、はじめて操作制限情報123の制限レベルが更新される。なお、このタイマー機能の設定値は、自在に設定できるようにすることが好ましい。なお、このタイマー機能による設定値までの残りカウント値を一般ユーザに提示することが好ましい。
この発明の実施の形態に従う変形例2によれば、実施の形態に従う構成に比較して、一般ユーザが行なう操作が途中で中断されるといった不具合を回避することができる。
[変形例3]
上述の実施の形態においては、上位ユーザと一般ユーザとを単に区別して説明したが、実際に知的創造作業を行なう場合などにおいては、グループ単位で行なわれる場合も多いため、上述のような操作権限をグループ単位で変更するような構成が望ましい場合もある。そこで、本実施の形態に従う変形例3においては、複数のユーザを同一のグループに属するものとして管理する構成について例示する。
典型的な例として、同一のワークスペースにログインしている複数のユーザを同一のグループとして管理する構成について例示する。
図22は、この発明の実施の形態の変形例3に従うユーザ管理データ121Aの一例を示す図である。図23は、図22に示すユーザ管理データ121Aの登録設定状況における制限レベルの影響範囲を示す図である。
図22に示すユーザ管理データ121Aにおいては、ログイン名が「user1」,「user2」,「user3」,「user4」,「user5」である5名のユーザが、同一のグループに属するとして登録されている。これらのユーザに対応して、ユーザ管理データ121Aは、クライエントタグ201および202(<client>および</client>)で囲まれた5つの記述203を含む。
さらに、ユーザ管理データ121Aは、グループを定義するための、グループタグ206および207(<group>および</group>)で囲まれた記述208を含む。この記述208は、クライエント(client)タグ209を含む。各クライエント(client)タグ209は、属性(プロパティ)として、「id」を有する。この「id」属性は、対応のグループに属するユーザを特定する識別情報(情報処理システムにおいてユニークな値)である。このように、ワークスペースに参加可能な1または複数のユーザからなるグループが登録される。
図22に示すように、user1の権限レベル(authority)のみが「1」となっており、user2〜user5の権限レベル(authority)は「0」となっている。すなわち、user1が上位ユーザであり、user2〜user5が一般ユーザである。
上述のような登録設定状況においては、上位ユーザであるuser1がワークスペースにログインまたはワークスペースからログアウトすることで、同一のグループに属する他のすべての一般ユーザ(user2〜user5)の制限レベル(limitation)が変更される。一方、いずれかの一般ユーザがワークスペースにログインまたはワークスペースからログアウトしたとしても、同一のグループに属する他のユーザの制限レベルは影響を受けない。すなわち、一般ユーザ(user2〜user5)の制限レベルへの影響は、図23に示すような関係となる。
さらに、同一のワークスペースにログイン可能なユーザに対して、複数のグループを設定することも可能である。
図24は、この発明の実施の形態の変形例3に従うユーザ管理データ121Bの一例を示す図である。図25は、図24に示すユーザ管理データ121Bの登録設定状況における制限レベルの影響範囲を示す図である。
図24に示すユーザ管理データ121Aにおいては、ログイン名が「user1」,「user2」,「user3」であるユーザが第1グループに属し、ログイン名が「user4」,「user5」,「user6」であるユーザが第2グループに属するとして登録されている。より具体的には、ユーザ管理データ121Aに記述されるグループタグ(group)206Aは、属性(プロパティ)として、「id」を有する。この「id」属性は、対応のグループを特定する識別情報(情報処理システムにおいてユニークな値)である。そして、その識別番号(group id)として「1」が付与された第1グループには、ログイン名が「user1」,「user2」,「user3」であるユーザにそれぞれ対応する識別番号(client id)として「1」,「2」,「3」が付与されたクライエントタグ209が定義される。また、その識別番号(group id)として「2」が付与された第2グループには、ログイン名が「user4」,「user5」,「user6」であるユーザにそれぞれ対応する識別番号(client id)として「4」,「5」,「6」が付与されたクライエントタグ209が定義される。
図24に示すように、user1およびuser6の権限レベル(authority)は「1」であり、user2〜user5の権限レベル(authority)は「0」となっている。すなわち、user1およびuser6が上位ユーザであり、user2〜user5が一般ユーザである。
ここで、user1がワークスペースにログインまたはワークスペースからログアウトすると、user1と同一のグループに属する他のユーザ(user2およびuser3)についてのみ、制限レベル(limitation)が変更され、別のグループに属するユーザ(user4〜user6)の制限レベルは影響を受けない。
同様に、user6がワークスペースにログインまたはワークスペースからログアウトすると、user6と同一のグループに属する他のユーザ(user4およびuser5)についてのみ、制限レベルが変更され、別のグループに属するユーザ(user1〜user3)の制限レベルは影響を受けない。すなわち、上位ユーザであるuser1およびuser6のログイン/ログアウトによる一般ユーザ(user2〜user5)の制限レベルへの影響は、図25に示すような関係となる。
すなわち、上位ユーザおよび一般ユーザが同一のグループに属している場合に限って、一般ユーザに対して、一般ユーザの操作権限より広い操作権限に応じた操作が実行可能に提供される。
この発明の実施の形態の変形例3によれば、同一のワークスペースにおいて複数のグループがそれぞれ別の作業を行なうような場合において、操作制限の管理をより好適に行なうことができる。
なお、上述の例では、ユーザ管理データにグループを設定するための情報を含める構成について例示したが、ワークスペースデータに含まれるようにしてもよい。あるいは、グループを設定するための情報だけを独立して保持するようにしてもよい。
また、上述のようなグループの設定については、(1)予め設定する、(2)所定のタイミングにおいて、あるワークスペースにログイン中のすべてのユーザを同一のグループに属するとして設定する、(3)任意のタイミングで同一のグループに属するユーザを特定することで設定する、といった方法を採用することができる。
また、グループを設定するための情報は、グループを設定したユーザがワークスペースにログイン中においてのみ保持しておき、当該ユーザがワークスペースからログアウトすると、当該グループを設定するための情報を破棄するようにしてもよい。代替の方法として、次回以降にワークスペースにログインした場合にも使用できるように不揮発的に保存しておいてもよい。
[変形例4]
上述の実施の形態においては、上位ユーザがワークスペースにログインすると、一般ユーザの制限レベル(limitation)が自動的に更新される構成について例示したが、このような制限レベルの更新については、上位ユーザの許諾を得るようにしてもよい。
すなわち、図13に示すステップST25において、一般ユーザについての制限レベル(limitation)が緩和される方向に変更されるべきとの判断がなされると、サーバ装置SRVのクライエント管理部112は、データ送受信部114を通じて、一般ユーザについての制限レベルを上位ユーザと同じに変更されることを通知するとともに、その許諾を受付けるためのメッセージを、クライエント装置CL1へ送信する。そして、クライエント管理部112は、クライエント装置CL1から、制限レベルの更新についての許諾が返答されることを条件に、操作制限情報123の内容を更新する。すなわち、制限レベルの更新についての許諾を拒否する旨が返答されると、クライエント管理部112は、一般ユーザについての制限レベルを緩和しない。
その他の処理については、上述した実施の形態と同様であるので、詳細な説明は繰返さない
この発明の実施の変形例4によれば、一般ユーザによるワークスペースへのログインに上位ユーザが気付かない場合に、上位ユーザのあずかり知らないところで、一般ユーザの操作権限が勝手に拡大されてしまうといった不具合を回避することができる。
[変形例5]
なお、上述の実施の形態および変形例1〜4を任意に組み合わせた情報処理システムを構成することが可能である。
[その他の変形例]
(1)上述の実施の形態においては、ワークスペースへのユーザのログイン状況に応じて、操作制限情報123の内容を更新した上で、ワークスペースデータ124からクライエント用データ125を生成する構成について例示した。しかしながら、操作制限情報123を作成することなく、所定イベントの発生毎に、ワークスペースに現在ログイン中のユーザの状況を取得し、この取得したログイン状況に基づいて、ワークスペースデータ124からクライエント用データ125を生成するようにしてもよい。
(2)上述の実施の形態においては、操作権限(authorityの値)および制限レベル(limitationの値)については、いずれも2段階に設定可能な構成について例示したが、より多くの段階を設けるようにしてもよい。
(3)上述の実施の形態においては、上位ユーザのログイン/ログアウトといったイベントの発生に応じて、自動的に一般ユーザの制限レベル(limitation)が変更される構成について例示したが、任意のタイミングで上位ユーザが一般ユーザの制限レベルをさらに変更できるようにしてもよい。
(4)上述の実施においては、ユーザの識別番号に基づいて、ログイン管理や操作権限を管理する構成について例示したが、クライエント装置の単位でこれらを管理してもよい。
[その他の実施の形態]
本実施の形態に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
また、本実施の形態に従うCPUで実行されるプログラムは、コンピュータのオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。したがって、このようなモジュールを含まないプログラムも、本発明に係るプログラムに含まれ得る。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。