(57)【要約】【課題】マルチユーザＯＳ環境下において、複数のユーザによって同時に実行された場合に、書き込みアドレスが競合する可能性のあるアプリケーションのアドレス競合を回避し、ユーザごとに異なる情報を書き込むことができるようにすること。【解決手段】  制御システムであって、マルチユーザＯＳ環境下において、複数のユーザによって同時に実行されたときにデータの書き込みアドレスが競合するアプリケーション５１、５２、５３の書き込みアドレスを、アプリケーション５１、５２、５３に固有の変更前アドレスからアプリケーション５１、５２、５３を実行するユーザに固有のユーザプロファイル６１、６２の下位ディレクトリに選ばれた変更後アドレスへと変更する制御部１０を備える。【選択図】図１
2008242633.tif 000002
【特許請求の範囲】
【請求項１】
マルチユーザオペレーティングシステムにおいて複数のユーザによって同時に実行されたときにデータの書き込みアドレスが競合するアプリケーションの書き込みアドレスを前記アプリケーションに固有の変更前アドレスから前記アプリケーションを実行するユーザに固有の変更後アドレスへと変更する制御部を備えたことを特徴とする制御システム。
【請求項２】
前記アプリケーションを特定するアプリケーション識別子を記録したアプリケーションテーブルを備え、
前記制御部が、前記アプリケーションテーブルを参照するように構成されたことを特徴とする、請求項１に記載の制御システム。
【請求項３】
前記変更後アドレスが、前記ユーザのユーザプロファイルの下位ディレクトリに置かれたファイルであることを特徴とする、請求項１または２に記載の制御システム。
【請求項４】
前記ユーザを特定するユーザ識別子ならびに前記変更前および変更後アドレスからなるレコードを記録したアドレス変更テーブルを備え、
前記制御部が、前記アドレス変更テーブルを参照し、ユーザ識別子および変更前アドレスが一致するレコードがある場合、そのレコードの変更後アドレスへ前記書き込みアドレスを変更し、一致するレコードがない場合、新たに定義した変更後アドレスへ前記書き込みアドレスを変更するとともにその変更後アドレスを前記ユーザ識別子および前記変更前アドレスとともに前記アドレス変更テーブルへ追加するように構成されたことを特徴とする、請求項１ないし３のいずれか一に記載の制御システム。
【請求項５】
前記制御部が、前記アドレス変更テーブルを参照し、ユーザ識別子および変更前アドレスが一致するレコードがある場合、そのレコードの変更後アドレスへ前記アプリケーションの読み出しアドレスを変更するように構成されたことを特徴とする、請求項４に記載の制御システム。
【請求項６】
マルチユーザオペレーティングシステムにおいて複数のユーザによって同時に実行されたときにデータの書き込みアドレスが競合するアプリケーションの書き込みアドレスを前記アプリケーションに固有の変更前アドレスから前記アプリケーションを実行するユーザに固有の変更後アドレスへと変更する工程を含むことを特徴とする制御方法。
【請求項７】
前記変更工程において、前記アプリケーションを特定するアプリケーション識別子を記録したアプリケーションテーブルを参照する工程を含むことを特徴とする、請求項６に記載の制御方法。
【請求項８】
前記変更後アドレスが、前記ユーザのユーザプロファイルの下位ディレクトリに置かれたファイルであることを特徴とする、請求項６または７に記載の制御方法。
【請求項９】
前記変更工程において、前記ユーザを特定するユーザ識別子ならびに前記変更前および変更後アドレスからなるレコードを記録したアドレス変更テーブルを参照する工程と、
ユーザ識別子および変更前アドレスが一致するレコードがある場合、そのレコードの変更後アドレスへ前記書き込みアドレスを変更する工程と、
一致するレコードがない場合、新たに定義した変更後アドレスへ前記書き込みアドレスを変更するとともにその変更後アドレスを前記ユーザ識別子および前記変更前アドレスとともに前記アドレス変更テーブルに追加する工程と、を含むことを特徴とする、請求項６ないし８のいずれか一に記載の制御方法。
【請求項１０】
前記アドレス変更テーブルを参照し、ユーザ識別子および変更前アドレスが一致するレコードがある場合、そのレコードの変更後アドレスへ前記アプリケーションの読み出しアドレスを変更する工程を含むことを特徴とする、請求項９に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチユーザオペレーティングシステム環境下おける複数のシングルユーザアプリケーションを制御するためのシステムおよび方法に関する。
【背景技術】
【０００２】
マルチユーザオペレーティングシステム（以下「マルチユーザＯＳ」とする。）は、１台のコンピュータを複数のユーザが同時に利用することを可能とする。
【０００３】
マルチユーザアプリケーションは、マルチユーザＯＳ下におけるユーザごとの設定情報を管理する仕組みとして、ユーザごとに登録されたユーザプロファイルを利用する。したがって、マルチユーザアプリケーションは、現在そのアプリケーションを実行中のユーザのユーザプロファイルに対してデータを書き込んだり、読み出したりすることができる。
【０００４】
しかし、複数のユーザによって同時に実行されることを想定していないシングルユーザアプリケーションは、ユーザごとに割り当てられたユーザプロファイルを認識することなく、１つのプロファイルに対してデータを書き込んだり、読み出したりする。
【０００５】
したがって、マルチユーザＯＳが稼動しているコンピュータにおいて、複数のユーザが、同時にシングルユーザアプリケーションを実行した場合、アプリケーションの複数のインスタンスが、同じアドレスに格納された同一のファイルにデータを書き込んだり、同一のファイルからデータを読み出そうとしたりする。
【０００６】
マルチユーザＯＳ環境下において、複数のユーザがシングルユーザアプリケーションを実行するための環境として、例えば、Ｗｉｎｄｏｗｓ（登録商標）  ＯＳにおけるCITRIX社の「Citrix Presentation Serverアプリケーション分離環境」が知られている（特許文献１）。この従来技術においては、ユーザプロファイルの下位ディレクトリにアプリケーションの実行ファイルをコピーして実行する方式が採用されている。
【０００７】
また、アプリケーションを実行するユーザに対して固有の識別子を割り当てるとともに、アプリケーションがオブジェクトを作成する際に、このユーザに固有の識別子を付して保存することで、シングルユーザアプリケーションをマルチユーザＯＳ環境下において同時に実行した場合であってもアドレスの競合を回避する技術が、特許文献２において開示されている。
【０００８】
【特許文献１】特表２０００−５０５５７５号公報
【特許文献２】特表平１１−５１３８２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
特許文献２に開示された技術では、複数のユーザに実行された場合にアドレス競合を引き起こすアプリケーションとそれ以外のアプリケーションとが区別されない。
【００１０】
すなわち、本来、ユーザを識別する必要のないアプリケーションであっても、ユーザに固有のディレクトリに対してデータの書き込みや読み出しが行われるという問題がある。
【００１１】
したがって、マルチユーザＯＳ環境下において、複数のユーザによって同時に実行された場合に、アドレス競合を引き起こす可能性のあるアプリケーションについてのみ、アドレス競合を回避させ、ユーザ毎に異なる情報の書き込みができるようにすることが課題となる。
【課題を解決するための手段】
【００１２】
本発明の第１の視点に係る制御システムは、マルチユーザオペレーティングシステムにおいて複数のユーザによって同時に実行されたときにデータの書き込みアドレスが競合するアプリケーションの書き込みアドレスを前記アプリケーションに固有の変更前アドレスから前記アプリケーションを実行するユーザに固有の変更後アドレスへと変更する制御部を備えたことを特徴とする。
【００１３】
第１の展開形態の制御システムは、前記アプリケーションを特定するアプリケーション識別子を記録したアプリケーションテーブルを備え、前記制御部が、前記アプリケーションテーブルを参照するように構成されたことを特徴とする。
【００１４】
第２の展開形態の制御システムは、前記変更後アドレスが、前記ユーザのユーザプロファイルの下位ディレクトリに置かれたファイルであることを特徴とする。
【００１５】
第３の展開形態の制御システムは、前記ユーザを特定するユーザ識別子ならびに前記変更前および変更後アドレスからなるレコードを記録したアドレス変更テーブルを備え、前記制御部が、前記アドレス変更テーブルを参照し、ユーザ識別子および変更前アドレスが一致するレコードがある場合、そのレコードの変更後アドレスへ前記書き込みアドレスを変更し、一致するレコードがない場合、新たに定義した変更後アドレスへ前記書き込みアドレスを変更するとともにその変更後アドレスを前記ユーザ識別子および前記変更前アドレスとともに前記アドレス変更テーブルへ追加するように構成されたことを特徴とする。
【００１６】
第４の展開形態の制御システムは、前記制御部が、前記アドレス変更テーブルを参照し、ユーザ識別子および変更前アドレスが一致するレコードがある場合、そのレコードの変更後アドレスへ前記アプリケーションの読み出しアドレスを変更するように構成されたことを特徴とする。
【００１７】
本発明の第２の視点に係る制御方法は、マルチユーザオペレーティングシステムにおいて複数のユーザによって同時に実行されたときにデータの書き込みアドレスが競合するアプリケーションの書き込みアドレスを前記アプリケーションに固有の変更前アドレスから前記アプリケーションを実行するユーザに固有の変更後アドレスへと変更する工程を含むことを特徴とする。
【００１８】
第５の展開形態の制御方法は、前記変更工程において、前記アプリケーションを特定するアプリケーション識別子を記録したアプリケーションテーブルを参照する工程を含むことを特徴とする。
【００１９】
第６の展開形態の制御方法は、前記変更後アドレスが、前記ユーザのユーザプロファイルの下位ディレクトリに置かれたファイルであることを特徴とする。
【００２０】
第７の展開形態の制御方法は、前記変更工程において、前記ユーザを特定するユーザ識別子ならびに前記変更前および変更後アドレスからなるレコードを記録したアドレス変更テーブルを参照する工程と、ユーザ識別子および変更前アドレスが一致するレコードがある場合、そのレコードの変更後アドレスへ前記書き込みアドレスを変更する工程と、一致するレコードがない場合、新たに定義した変更後アドレスへ前記書き込みアドレスを変更するとともにその変更後アドレスを前記ユーザ識別子および前記変更前アドレスとともに前記アドレス変更テーブルに追加する工程と、を含むことを特徴とする。
【００２１】
第８の展開形態の制御方法は、前記アドレス変更テーブルを参照し、ユーザ識別子および変更前アドレスが一致するレコードがある場合、そのレコードの変更後アドレスへ前記アプリケーションの読み出しアドレスを変更する工程を含むことを特徴とする。
【発明の効果】
【００２２】
本発明の制御システムおよび方法によって、マルチユーザＯＳ環境下において、複数のユーザによって同時に実行された場合にアドレス競合を引き起こす可能性のあるアプリケーションに限って、アドレス競合を回避させ、ユーザごとに異なる情報の書き込みができるようになる。
【００２３】
また、本発明の制御システムおよび方法によって、ユーザ毎に書き込まれた情報をユーザ毎に読み出すこともできるようになる。
【発明を実施するための最良の形態】
【００２４】
図１を参照して本発明の実施の形態に係る制御システムの構成について説明する。
【００２５】
制御システムは、制御部１０、アプリケーションテーブル２０、アプリケーション登録部３０、アドレス変更テーブル４０、ユーザが実行中のアプリケーション群５０、ユーザごとのユーザプロファイル群６０から構成される。
【００２６】
制御部１０はユーザが実行中のアプリケーション群５０から発行されるアプリケーションインターフェースを監視し、データの書き込みおよび読み出しを制御する。
【００２７】
制御部１０はアプリケーション監視部１１、書き込み制御部１２、読み出し制御部１３を備える。アプリケーション監視部１１はユーザが実行中のアプリケーション群５０から発行されるアプリケーションインターフェースの監視を行い、書き込み制御部１２はデータ書き込み時の制御を行い、読み出し制御部１３はデータ読み出し時の制御を行う。
【００２８】
アプリケーションテーブル２０には、制御部１０が監視対象とするアプリケーションの一覧が記録される。アプリケーションの一覧はアプリケーション登録部３０によって記録される。
【００２９】
アドレス変更テーブル４０には、ユーザ識別子、変更前アドレスおよび変更後アドレスが記録される。
【００３０】
アプリケーションテーブル２０に登録されたアプリケーションによるデータの書き込みが発生した場合、書き込み制御部１２は、アプリケーションを実行しているユーザのユーザ識別子、変更前アドレス、変更後アドレスからなるレコードをアドレス変更テーブル４０へ登録する。
【００３１】
変更後アドレスは、ユーザプロファイル群６０に任意のディレクトリを作成し、変更前アドレスを追加することによって、作成する。
【００３２】
例えば、変更前アドレスが「C:\temp\data\setting.ini」であった場合、「C$\temp\data\setting.ini」をユーザプロファイルの下位の任意のディレクトリに追加する。
【００３３】
また、アプリケーションテーブル２０に登録されたアプリケーションがデータの読み出しを実行するとき、読み出し制御部１３はアドレス変更テーブル４０を参照し、変更後アドレスからデータを読み出すように制御する。
【００３４】
次に、図１の構成図ならびに図２および図３のフローチャートを参照して本発明の実施形態に係る制御システムの動作について説明する。
【００３５】
まず、図１および図２を参照して、データの書き込み動作について説明する。
【００３６】
アプリケーション監視部１１は、データの書き込み発生を検出する(ステップＳ２１)と、書き込みを行うアプリケーション識別子がアプリケーションテーブル２０に登録されているか否かを判定する（ステップＳ２２）。
【００３７】
登録されていないと判定された（ステップＳ２２）場合、書き込み制御部１２は、データの書き込みアドレスを変更することなく、データ書き込みを実行する（ステップＳ２５）。
【００３８】
一方、登録されていると判定された（ステップＳ２２）場合、書き込み制御部１２は、ユーザ識別子および変更前アドレスが、それぞれ、アプリケーションを実行しているユーザの識別子およびアプリケーションで指示された書き込みアドレスと一致するレコードがアドレス変更テーブル４０に存在するか否かを判定する（ステップＳ２３）。
【００３９】
一致するレコードが存在しないと判定された（ステップＳ２３）場合、ＯＳからアプリケーションを実行しているユーザのユーザプロファイルを取得して、アプリケーションのデータ書き込みアドレスがユーザプロファイルの下位ディレクトリであるか否かを判定する（ステップＳ２６）。
【００４０】
データ書き込みアドレスがユーザプロファイルの下位ディレクトリであると判定された（ステップＳ２６）場合、データ書き込みアドレスを変更することなく、データ書き込みを実行する(ステップＳ２５)。
【００４１】
データ書き込みアドレスがユーザプロファイルの下位ディレクトリでないと判定された場合（ステップＳ２６）、ユーザプロファイルの任意のディレクトリに変更前アドレスを追加して変更後アドレスを作成する（ステップＳ２７）。
【００４２】
例えば、変更前アドレスを「C:\temp\data\setting.ini」、ユーザプロファイルを「C:\Document and Settings\ユーザ1」、任意のディレクトリを「Appfolder」とした場合、「C:\Document and Settings\ユーザ1\Appfolder\C$\temp\data\setting.ini」を変更後アドレスとする。
【００４３】
また、ユーザ識別子、変更前アドレスおよび変更後アドレスをアドレス変更テーブル４０に追加する(ステップＳ２８)。
【００４４】
次に、データ書き込みアドレスをステップＳ２７において作成したアドレスに変更し（ステップＳ２９）、データ書き込みを実行する（ステップＳ２５）。
【００４５】
ステップＳ２３において一致するレコードが存在すると判定された場合、書き込みアドレスをアドレス変更テーブル４０の該当レコードの変更後アドレスへ変更し（ステップＳ２４）、データの書き込みを実行する（ステップＳ２５）。
【００４６】
次に、図１および３を参照して、データの読み出し動作について説明する。
【００４７】
アプリケーション監視部１１がデータ読み出しの発生を検出する(ステップＳ３１)と、読み出し制御部１３は、読み出しを行うアプリケーション識別子がアプリケーションテーブル２０に登録されているか否かを判定する（ステップＳ３２）。
【００４８】
登録されていないと判定された（ステップＳ３２）場合、読み出し制御部１３は、データ読み出しアドレスを変更することなく、データの読み出しを実行する（ステップＳ３５）。
【００４９】
一方、登録されていると判定された（ステップＳ３２）場合、読み出し制御部１３は、ユーザ識別子がアプリケーションを実行しているユーザと一致し、かつ、変更前アドレスがアプリケーションの読み出しアドレスと一致するレコードがアドレス変更テーブル４０に存在するか否かを判定する（ステップＳ３３）。
【００５０】
一致するレコードが存在しないと判定された場合（ステップＳ３３）、データ読み出しアドレスを変更せず、データの読み出しを実行する（ステップＳ３５）。
【００５１】
一致するレコードが存在すると判定された場合（ステップＳ３３）、データ読み出しアドレスをアドレス変更テーブル４０の該当するレコードの変更後アドレスへ変更し（ステップＳ３４）、データの読み出しを実行する（ステップＳ３５）。
【００５２】
次に、図１、４および５を参照して、複数のユーザが同じアプリケーションを利用した場合に、個別の情報を保存する実施例について説明する。
【００５３】
例えば、図５に示したアプリケーションテーブル２０に登録され、ユーザ１が実行中のアプリケーションＡ５１によって
「C:\temp\data\setting.ini」
へデータの書き込みが発生したとすると、書き込み制御部１２によりユーザ１のユーザプロファイル６１の下位ディレクトリ、例えば、
「C:\Document and Settings\ユーザ1\Appfolder\C$\temp\data\setting.ini」
にデータ書き込みを行い、アドレス変更テーブル４０に追加する。
【００５４】
ユーザ２が実行中のアプリケーションＡ５２からも
「C:\temp\data\setting.ini」
へデータの書き込みが発生したとすると、書き込み制御部１２によりデータはユーザ２のユーザプロファイル６２の下位ディレクトリ、例えば、
「C:\Document and Settings\ユーザ2\Appfolder\C$\temp\data\setting.ini」
に書き込まれることとなり、ユーザ１とユーザ２はそれぞれのユーザに個別の情報を保存することができる。
【００５５】
次に、図１を参照して複数のアプリケーション間で、データを共有する実施例について説明する。
【００５６】
アプリケーションテーブル２０に登録され、ユーザ１が実行中のアプリケーションＡ５１から
「C:\temp\data\setting.ini」
へデータの書き込みが発生したとすると、書き込み制御部１２によりユーザ1のユーザプロファイル６１の下位ディレクトリ、例えば、
「C:\Document and Settings\ユーザ1\Appfolder\C$\temp\data\setting.ini」
へデータ書き込みが行われる。
【００５７】
同じくアプリケーションテーブル２０に登録され、ユーザ1が実行中のアプリケーションＢ５３から
「C:\temp\data\setting.ini」
からのデータの読み出しが発生したとすると、読み出し制御部１３はアドレス変更テーブル４０にユーザ識別子が「ユーザ1」、かつ、変更前アドレスが「C:\temp\data\setting.ini」のレコードが存在するか否かを確認する。
【００５８】
すると、図４のように一致するレコードが発見されるため、変更後アドレス、例えば、
「C:\Document and Settings\ユーザ1\Appfolder\C$\temp\data\setting.ini」
からデータ読み出しを行う。
【００５９】
これにより、ユーザ１が実行中のアプリケーションＡ５１によって書き込まれた情報を、ユーザ１が実行中のアプリケーションＢ５３から読み出すことが出来る。したがって、アプリケーションＡ、Ｂ間の連携が可能となる。
【産業上の利用可能性】
【００６０】
本発明は、マルチユーザＯＳを実装しているサーバコンピュータに複数のユーザがネットワークで接続された端末からアプリケーションを実行するサーバ集中型システムにおいて利用可能である。
【図面の簡単な説明】
【００６１】
【図１】本発明の実施形態に係るシングルユーザアプリケーション制御システムの構成図である。
【図２】本発明の実施形態に係るシングルユーザアプリケーション制御システムにおける書き込み動作を説明するための図である。
【図３】本発明の実施形態に係るシングルユーザアプリケーション制御システムにおける読み出し動作を説明するための図である。
【図４】図１のアドレス変更テーブル４０の一例を示した図である。
【図５】図１のアプリケーションテーブル２０の一例を示した図である。
【符号の説明】
【００６２】
１０  制御部
１１  アプリケーション監視部
１２  書き込み制御部
１３  読み出し制御部
２０  アプリケーションテーブル
３０  アプリケーション登録部
４０  アドレス変更テーブル
５０  アプリケーション群
５１  ユーザ１が実行中のアプリケーションＡ
５２  ユーザ２が実行中のアプリケーションＡ
５３  ユーザ１が実行中のアプリケーションＢ
６０  ユーザプロファイル群
６１  ユーザ１のユーザプロファイル
６２  ユーザ２のユーザプロファイル
【図１】
2008242633.tif 000003
【図２】
2008242633.tif 000004
【図３】
2008242633.tif 000005
【図４】
2008242633.tif 000006
【図５】
2008242633.tif 000007