以下、本発明による情報処理装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。
(実施の形態1)
本発明の実施の形態1による情報処理装置について、図面を参照しながら説明する。本実施の形態による情報処理装置は、ソフトウェアの実行の許否を判断し、その判断結果に応じてソフトウェアを実行したり、実行しなかったりするものである。
図1は、本実施の形態による情報処理装置1の構成を示すブロック図である。図1において、本実施の形態による情報処理装置1は、ソフトウェア記憶部11と、実行部12と、カテゴリ対応情報記憶部13と、ロックパターン情報記憶部14と、同時実行対応情報記憶部15と、ソフトウェア実行情報記憶部16と、更新部17と、実行許否判断部18とを備える。
ソフトウェア記憶部11では、2以上のソフトウェアが記憶される。このソフトウェアは、どのようなものであってもよい。例えば、全体ソフトウェアや、部分ソフトウェアが含まれていてもよい。全体ソフトウェアとは、例えば、アプリケーションや、統合アプリケーション等のソフトウェアである。全体ソフトウェアは、例えば、ワードプロセッサの単品のソフトウェアであってもよく、ワードプロセッサ、スプレッドシート、プレゼンテーションの各ソフトウェアを統合した統合ソフトウェアであってもよい。統合ソフトウェアは、人事に関する処理や、給与に関する処理を行う統合ERPパッケージであってもよい。統合ERPパッケージでは、例えば、販売支援、配達支援、請求支援、製造管理支援、在庫管理支援、会計管理支援、給与管理支援、就業管理支援、及び人事管理支援などの処理を行う。部分ソフトウェアとは、全体ソフトウェアを構成するソフトウェアである。また、部分ソフトウェアは、それ自体で実行単位となるソフトウェアである。その実行単位は、例えば、アプリケーションの実行単位であってもよく、OS(オペレーティングシステム)の実行単位であってもよい。部分ソフトウェアは、例えば、全体ソフトウェアを構成するタスクであってもよく、全体ソフトウェアのメニュー一覧(例えば、統合ソフトウェアにおいて各ソフトウェアを選択するためのメニュー一覧)で表示される一のメニュー(メニュー項目と呼ばれることもある)に対応するソフトウェア(メニューが選択された際に実行されるソフトウェア)であってもよく、全体ソフトウェアを構成するプロセスであってもよく、全体ソフトウェアを構成するスレッドや、サブメニュー項目などであってもよい。サブメニュー項目は、OSで管理されずに、アプリケーションが独自に管理してもよい。また、ソフトウェアは、データベースを用いた処理(例えば、データベースのデータを参照する処理や、データベースにデータを登録する処理や、データベースのメンテナンス(属性の付加・削除等)の処理など)を行うものであってもよく、そうでなくてもよい。
ソフトウェア記憶部11に2以上のソフトウェアが記憶される過程は問わない。例えば、記録媒体を介して2以上のソフトウェアがソフトウェア記憶部11で記憶されるようになってもよく、通信回線等を介して送信された2以上のソフトウェアがソフトウェア記憶部11で記憶されるようになってもよい。ソフトウェア記憶部11での記憶は、外部のストレージデバイス等から読み出した複数のソフトウェアのRAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。ソフトウェア記憶部11は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
実行部12は、ソフトウェア記憶部11で記憶されているソフトウェアを適宜読み出して実行する。なお、実行部12は、後述する実行許否判断部18によって実行の許可されたソフトウェアを実行し、実行許否判断部18によって実行の許可されなかったソフトウェアを実行しない。実行部12は、例えば、ソフトウェアを読み出して実行するマイクロプロセッサ等によって実現されうる。
カテゴリ対応情報記憶部13では、カテゴリ対応情報が記憶される。カテゴリ対応情報は、ソフトウェア記憶部11で記憶されているソフトウェアを識別する情報であるソフトウェア識別情報と、そのソフトウェア識別情報で識別されるソフトウェアのカテゴリとを対応付けて有する情報である。ソフトウェア識別情報は、例えば、ソフトウェアの名称や、ソフトウェアの製品番号、ソフトウェアを識別する文字列・記号等であってもよい。カテゴリとは、ソフトウェアのグループや、種類を示すものであり、例えば、ソフトウェアの処理内容や、ソフトウェアの処理が実行された際の影響等を考慮して設定されるものである。例えば、データベースを参照するだけのソフトウェアであるのか、データベースに情報を登録する処理も行うソフトウェアなのか、他のソフトウェアとは完全に排他的に動作するソフトウェア(例えば、メンテナンスのためのソフトウェア等)なのかに応じて設定されてもよい。このカテゴリ対応情報は、例えば、システムの設計者によって適宜、定められるものである。このカテゴリ対応情報を用いることによって、あるソフトウェアのソフトウェア識別情報が分かった場合に、そのソフトウェアのカテゴリを知ることができるようになる。また、「カテゴリ」は、厳密にはカテゴリを示す情報であるが、ここでは、単にカテゴリと呼ぶことにする。
カテゴリ対応情報記憶部13にカテゴリ対応情報が記憶される過程は問わない。例えば、記録媒体を介してカテゴリ対応情報がカテゴリ対応情報記憶部13で記憶されるようになってもよく、通信回線等を介して送信されたカテゴリ対応情報がカテゴリ対応情報記憶部13で記憶されるようになってもよく、あるいは、入力デバイスを介して入力されたカテゴリ対応情報がカテゴリ対応情報記憶部13で記憶されるようになってもよい。カテゴリ対応情報記憶部13での記憶は、外部のストレージデバイス等から読み出したカテゴリ対応情報のRAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。カテゴリ対応情報記憶部13は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
ロックパターン情報記憶部14では、ロックパターン情報が2以上記憶される。ロックパターン情報は、同時実行情報と、その同時実行情報を識別する情報である同時実行識別情報とを対応付けて有する情報である。同時実行情報は、あるソフトウェアと、他のソフトウェアとを同時実行できるかどうかを、他のソフトウェアのカテゴリごとに有する情報である。すなわち、他のソフトウェアのカテゴリが分かっている場合には、同時実行情報を用いることによって、あるソフトウェアと、他のソフトウェアを同時実行できるかどうかが示されることになる。
ロックパターン情報記憶部14に2以上のロックパターン情報が記憶される過程は問わない。例えば、記録媒体を介して2以上のロックパターン情報がロックパターン情報記憶部14で記憶されるようになってもよく、通信回線等を介して送信された2以上のロックパターン情報がロックパターン情報記憶部14で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された2以上のロックパターン情報がロックパターン情報記憶部14で記憶されるようになってもよい。ロックパターン情報記憶部14での記憶は、外部のストレージデバイス等から読み出した2以上のロックパターン情報のRAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。ロックパターン情報記憶部14は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
同時実行対応情報記憶部15では、同時実行対応情報が記憶される。同時実行対応情報は、ソフトウェア記憶部11で記憶されているソフトウェアを識別する情報であるソフトウェア識別情報と、そのソフトウェア識別情報で識別されるソフトウェアの同時実行情報を識別する同時実行識別情報とを対応付けて有する情報である。この同時実行対応情報を用いることによって、あるソフトウェアのソフトウェア識別情報が分かった場合に、そのソフトウェアの同時実行識別情報を知ることができるようになる。この同時実行対応情報は、例えば、システムの設計者によって適宜、定められるものである。この同時実行対応情報を用いることによって、あるソフトウェアのソフトウェア識別情報が分かった場合に、そのソフトウェアに対応する同時実行情報を知ることができるようになる。
同時実行対応情報記憶部15に同時実行対応情報が記憶される過程は問わない。例えば、記録媒体を介して同時実行対応情報が同時実行対応情報記憶部15で記憶されるようになってもよく、通信回線等を介して送信された同時実行対応情報が同時実行対応情報記憶部15で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された同時実行対応情報が同時実行対応情報記憶部15で記憶されるようになってもよい。同時実行対応情報記憶部15での記憶は、外部のストレージデバイス等から読み出した同時実行対応情報のRAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。同時実行対応情報記憶部15は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
ソフトウェア実行情報記憶部16では、ソフトウェア実行情報が記憶される。ソフトウェア実行情報とは、実行部12が実行中のソフトウェアを識別するソフトウェア識別情報を少なくとも有する情報である。ソフトウェア識別情報に、ソフトウェア識別情報以外の情報が含まれていてもよい。例えば、ソフトウェア実行情報において、ソフトウェアの実行開始時刻や、ソフトウェアを起動したユーザを識別する情報であるユーザ識別情報等が、ソフトウェア識別情報に対応付けられていてもよい。ソフトウェア実行情報は、後述する更新部17によって更新されるものである。この更新には、新規の登録や、削除も含まれるものとする。ソフトウェア実行情報記憶部16での記憶は、一時的な記憶でもよく、あるいは、長期的な記憶でもよい。ソフトウェア実行情報記憶部16は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
更新部17は、ソフトウェア実行情報記憶部16で記憶されているソフトウェア実行情報を、実行部12によるソフトウェアの実行状況に応じて更新する。ソフトウェアの実行状況とは、実行部12によるソフトウェアの実行の開始や、実行の終了の状況である。例えば、実行部12が新たなソフトウェアの実行を開始した場合には、更新部17は、そのソフトウェアに関するソフトウェア実行情報のレコード(例えば、そのソフトウェアを識別するソフトウェア識別情報を含むレコード)を作成してソフトウェア実行情報記憶部16に蓄積する。また、例えば、実行部12がソフトウェアの実行を終了した場合には、更新部17は、そのソフトウェアに関するソフトウェア実行情報のレコードをソフトウェア実行情報記憶部16から削除する。なお、この更新部17の処理は、OSによってなされることもあり、その場合には、ソフトウェア実行情報はOSによって管理されることになる。
実行許否判断部18は、ソフトウェアの同時実行の許否の判断を行う。実行許否判断部18が行う判断は、判断結果を得る処理であれば、その方法を問わない。この同時実行の許否の判断方法としては、いくつかの方法があるが、ここでは、そのうちの3つの方法について説明する。
[実行中のソフトウェアの同時実行情報を用いた判断]
実行許否判断部18は、判断時に実行中のソフトウェアを識別するソフトウェア識別情報に、同時実行対応情報及びロックパターン情報によって対応付けられる同時実行情報を特定する。実行中のソフトウェアを識別するソフトウェア識別情報は、ソフトウェア実行情報記憶部16に記憶されているため、そこから読み出すことによって取得することができる。また、そのソフトウェア識別情報に、同時実行対応情報及びロックパターン情報によって対応付けられる同時実行情報の特定は、例えば、そのソフトウェア識別情報に、同時実行対応情報によって対応付けられている同時実行識別情報を特定し、その特定した同時実行識別情報に、ロックパターン情報によって対応付けられている同時実行情報を特定することによって行うことができる。
より具体的には、実行許否判断部18は、例えば、ソフトウェア実行情報記憶部16からソフトウェア識別情報を読み出し、その読み出したソフトウェア識別情報を検索キーとして同時実行対応情報を検索することにより、そのソフトウェア識別情報に対応付けられている同時実行識別情報を取得してもよい。次に、実行許否判断部18は、その取得した同時実行識別情報を検索キーとして2以上のロックパターン情報を検索することにより、その同時実行識別情報に対応付けられている同時実行情報を取得してもよい。
また、実行許否判断部18は、判断対象となるソフトウェアを識別するソフトウェア識別情報に、カテゴリ対応情報によって対応付けられるカテゴリを特定する。実行許否判断部18は、例えば、判断対象となるソフトウェアを識別するソフトウェア識別情報、すなわち、実行部12が実行する、あるいは実行しているソフトウェアを識別するソフトウェア識別情報を、実行部12から受け取ってもよい。そして、実行許否判断部18は、そのソフトウェア識別情報を検索キーとして、カテゴリ対応情報を検索することにより、そのソフトウェア識別情報に対応付けられているカテゴリを特定してもよい。
また、実行許否判断部18は、その特定したカテゴリが、特定した同時実行情報によって同時実行が許可されているものである場合に、判断対象となっているソフトウェアの実行を許可し、その特定したカテゴリが、特定した同時実行情報によって同時実行が許可されていないものである場合に、判断対象となっているソフトウェアの実行を許可しない。このようにして、実行許否判断部18によるソフトウェアの実行の許否が、実行中のソフトウェアに対応する同時実行情報を用いて判断される。
なお、実行中のソフトウェアが複数存在する場合には、実行許否判断部18は、例えば、実行中のすべてのソフトウェアに関して、判断対象となっているソフトウェアの実行が許可される場合に、最終的に、その判断対象のソフトウェアの実行を許可し、実行中のいずれかのソフトウェアに関して、判断対象となっているソフトウェアの実行が許可されない場合に、最終的に、その判断対象のソフトウェアの実行を許可しない。すなわち、一番厳しい条件で実行の許否が判断されることになる。なお、複数のソフトウェアが実行中である場合に、実行許否判断部18は、各実行中のソフトウェアに対応する同時実行情報を取得して、それらを統合することにより、ソフトウェアの実行に関する最も厳しい条件(ソフトウェアの実行が困難に判断される可能性の高い条件)の同時実行情報を作成し、その統合後の同時実行情報を用いて、判断対象となっているソフトウェアの実行の許否を判断してもよい。
[判断対象のソフトウェアの同時実行情報を用いた判断]
実行許否判断部18は、判断対象となるソフトウェアを識別するソフトウェア識別情報に、同時実行対応情報及びロックパターン情報によって対応付けられる同時実行情報を特定する。実行許否判断部18は、例えば、判断対象となるソフトウェアを識別するソフトウェア識別情報、すなわち、実行部12が実行する、あるいは実行しているソフトウェアを識別するソフトウェア識別情報を、実行部12から受け取ってもよい。また、そのソフトウェア識別情報に、同時実行対応情報及びロックパターン情報によって対応付けられる同時実行情報の特定は、例えば、そのソフトウェア識別情報に、同時実行対応情報によって対応付けられている同時実行識別情報を特定し、その特定した同時実行識別情報に、ロックパターン情報によって対応付けられている同時実行情報を特定することによって行うことができる。
また、実行許否判断部18は、判断時に実行中のソフトウェアを識別するソフトウェア識別情報に、カテゴリ対応情報によって対応付けられるカテゴリを特定する。実行中のソフトウェアを識別するソフトウェア識別情報は、ソフトウェア実行情報記憶部16に記憶されているため、そこから読み出すことによって取得することができる。そして、実行許否判断部18は、そのソフトウェア識別情報を検索キーとして、カテゴリ対応情報を検索することにより、そのソフトウェア識別情報に対応付けられているカテゴリを特定してもよい。
また、実行許否判断部18は、その特定したカテゴリが、特定した同時実行情報によって同時実行が許可されているものである場合に、判断対象となっているソフトウェアの実行を許可し、その特定したカテゴリが、特定した同時実行情報によって同時実行が許可されていないものである場合に、判断対象となっているソフトウェアの実行を許可しない。このようにして、実行許否判断部18によるソフトウェアの実行の許否が、判断対象となるソフトウェアに対応する同時実行情報を用いて判断される。
なお、実行中のソフトウェアが複数存在する場合には、実行許否判断部18は、例えば、実行中のすべてのソフトウェアに関して、判断対象となっているソフトウェアの実行が許可される場合に、最終的に、その判断対象のソフトウェアの実行を許可し、実行中のいずれかのソフトウェアに関して、判断対象となっているソフトウェアの実行が許可されない場合に、最終的に、その判断対象のソフトウェアの実行を許可しない。すなわち、一番厳しい条件で実行の許否が判断されることになる。ここで、実行中のソフトウェアに対応するカテゴリに重複が存在する場合(例えば、実行中のソフトウェアのカテゴリが、カテゴリA、カテゴリB、カテゴリC、カテゴリA、カテゴリBであるような場合)には、実行許否判断部18は、重複しない異なるカテゴリ(前述の例の場合には、カテゴリA、カテゴリB、カテゴリC)についてのみ判断を行うようにしてもよい。また、各カテゴリに関して、実行の許否に包含関係がある場合(例えば、カテゴリAについて許可されない場合には、カテゴリB,Cについても当然に許可されない、と同時実行情報によって設定されている場合など)には、ソフトウェアの実行に関して最も厳しく判断されるカテゴリについてのみ判断を行うようにしてもよい。前述の判断結果と同じになるからである。
[実行中のソフトウェアの同時実行情報と、判断対象のソフトウェアの同時実行情報とを用いた判断]
実行許否判断部18は、前述の「実行中のソフトウェアの同時実行情報を用いた判断」と、「判断対象のソフトウェアの同時実行情報を用いた判断」とを組み合わせて判断を行ってもよい。この場合にも、実行中のソフトウェアの同時実行情報を用いた判断で、判断対象となっているソフトウェアの実行が許可され、かつ、判断対象のソフトウェアの同時実行情報を用いた判断で、判断対象となっているソフトウェアの実行が許可される場合にのみ、実行許否判断部18は、判断対象となるソフトウェアの実行を許可することになる。すなわち、ソフトウェアの実行に関する最も厳しい条件で判断されることになる。
具体的には、実行許否判断部18は、判断対象となるソフトウェアを識別するソフトウェア識別情報にカテゴリ対応情報によって対応付けられるカテゴリが、その判断時に実行中のソフトウェアを識別するソフトウェア識別情報に、同時実行対応情報及びロックパターン情報によって対応付けられる同時実行情報によって同時実行が許可されていないものである場合、あるいは、判断時に実行中のソフトウェアを識別するソフトウェア識別情報にカテゴリ対応情報によって対応付けられるカテゴリが、判断対象となるソフトウェアを識別するソフトウェア識別情報に同時実行対応情報及びロックパターン情報によって対応付けられる同時実行情報によって同時実行が許可されていないものである場合に、その判断対象のソフトウェアの実行を許可せず、そうでない場合に、その判断対象のソフトウェアの実行を許可する。なお、実行中のソフトウェアの同時実行情報を用いた判断と、判断対象のソフトウェアの同時実行情報を用いた判断との処理の順序は問わない。
なお、実行許否判断部18は、判断対象となるソフトウェアの起動時に、そのソフトウェアの実行の許否の判断を行ってもよく、あるいは、その他のタイミングでソフトウェアの実行の許否の判断を行ってもよい。後者の場合には、例えば、ソフトウェアが実行された後の所定のタイミングで、そのソフトウェアの実行の許否が判断されてもよい。所定のタイミングとは、例えば、データベースにアクセスするタイミングや、データベースにデータを登録するタイミング等であってもよい。当然ながら、判断対象となるソフトウェアの起動時に、そのソフトウェアの実行の許否の判断を行うことが一般的である。
なお、ソフトウェア記憶部11と、カテゴリ対応情報記憶部13と、ロックパターン情報記憶部14と、同時実行対応情報記憶部15と、ソフトウェア実行情報記憶部16とのうち、任意の2以上の記憶部は、同一の記録媒体によって実現されてもよく、あるいは、別々の記録媒体によって実現されてもよい。前者の場合には、例えば、2以上のソフトウェアを記憶している領域がソフトウェア記憶部11となり、カテゴリ対応情報を記憶している領域がカテゴリ対応情報記憶部13となる。
また、情報処理装置1は、実行部12や他の構成要素が、装置外部と情報のやりとりを行うための、図示しない受付部や、出力部を備えていてもよい。その図示しない受付部によって、装置外部から入力された情報を受け付けてもよく、その図示しない出力部によって、装置外部に情報を出力してもよい。
次に、本実施の形態による情報処理装置1の動作について、図2のフローチャートを用いて説明する。この図2のフローチャートでは、ソフトウェアの起動時に実行の許否の判断を行う場合について説明する。
(ステップS101)実行部12は、ソフトウェアを実行するかどうか判断する。そして、実行する場合には、ステップS102に進み、そうでない場合には、ステップS105に進む。なお、実行部12は、例えば、ユーザからソフトウェアを実行する旨の指示を受け付けた場合に、ソフトウェアを実行すると判断してもよく、あるいは、ソフトウェアの実行中における他のソフトウェアを読み出す旨のプログラムに応じて、該当するソフトウェアを実行すると判断してもよい。
(ステップS102)実行許否判断部18は、実行部12が実行しようとするソフトウェアについて、実行の許否の判断を行う。この処理の詳細については、図3のフローチャート、及び図4のフローチャートを用いて後述する。
(ステップS103)実行部12は、実行許否判断部18によって、ソフトウェアの実行が許可されたかどうか判断する。そして、許可された場合には、ステップS104に進み、許可されなかった場合には、ステップS101に戻る。なお、ソフトウェアの実行が許可されなかった場合に、実行部12は、ソフトウェアの実行が許可されなかった旨を出力してもよい。その出力によって、例えば、ユーザは、実行を指示したソフトウェアの実行が許可されず、実行されなかった旨を知ることができる。
(ステップS104)実行部12は、ステップS101において、実行すると判断したソフトウェアを実行する。そして、ステップS101に戻る。
(ステップS105)更新部17は、ソフトウェア実行情報を更新するかどうか判断する。そして、更新する場合には、ステップS106に進み、そうでない場合には、ステップS101に戻る。ここで、更新部17は、例えば、実行部12によって新たなソフトウェアが実行された場合や、実行部12によるソフトウェアの実行が終了された場合に、ソフトウェア実行情報を更新するタイミングであると判断してもよい。
(ステップS106)更新部17は、ソフトウェア実行情報記憶部16で記憶されているソフトウェア実行情報を更新する。そして、ステップS101に戻る。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
図3は、図2のフローチャートにおける実行の許否判断の処理(ステップS102の処理)の詳細を示すフローチャートである。図3のフローチャートは、実行中のソフトウェアの同時実行情報を用いた判断について示すものである。
(ステップS201)実行許否判断部18は、実行中のソフトウェアが存在するかどうか判断する。そして、存在する場合には、ステップS202に進み、そうでない場合には、ステップS211に進む。ここで、実行許否判断部18は、例えば、ソフトウェア実行情報記憶部16で記憶されているソフトウェア実行情報に、実行中のソフトウェアを識別するソフトウェア識別情報が1個でも含まれる場合には、実行中のソフトウェアが存在すると判断し、そうでない場合には、実行中のソフトウェアが存在しないと判断してもよい。
(ステップS202)実行許否判断部18は、カウンタiを1に設定する。
(ステップS203)実行許否判断部18は、実行中のソフトウェアのうち、i番目の実行中のソフトウェアに、同時実行対応情報によって対応付けられている同時実行識別情報を特定する。例えば、実行許否判断部18は、i番目の実行中のソフトウェアを識別するソフトウェア識別情報をソフトウェア実行情報記憶部16から読み出し、そのソフトウェア識別情報を検索キーとして同時実行対応情報を検索することによって、そのソフトウェア識別情報に対応する同時実行識別情報を特定してもよい。同時実行識別情報を特定するとは、同時実行識別情報を図示しない記録媒体に蓄積することであってもよく、あるいは、所定の記録媒体で記憶されている同時実行識別情報にフラグを設定することであってもよい。
(ステップS204)実行許否判断部18は、ステップS203で特定した同時実行識別情報に、ロックパターン情報によって対応付けられている同時実行情報を取得する。例えば、実行許否判断部18は、ステップS203で特定した同時実行識別情報を検索キーとして、ロックパターン情報記憶部14で記憶されている複数のロックパターン情報を検索することによって、その同時実行識別情報に対応する同時実行情報を取得してもよい。同時実行情報の取得は、同時実行情報をロックパターン情報記憶部14から読み出すことによって行うことができる。
(ステップS205)実行許否判断部18は、ステップS204で取得した同時実行情報を、図示しない記録媒体において一時的に記憶する。
(ステップS206)実行許否判断部18は、カウンタiを1だけインクリメントする。
(ステップS207)実行許否判断部18は、i番目の実行中のソフトウェアが存在するかどうか判断する。そして、存在する場合には、ステップS203に戻り、存在しない場合には、ステップS208に進む。ここで、実行許否判断部18は、例えば、ソフトウェア実行情報記憶部16で記憶されているソフトウェア実行情報にi番目のソフトウェア識別情報が存在するかどうかによって、この判断を行ってもよい。i番目のソフトウェア識別情報が存在する場合には、i番目の実行中のソフトウェアが存在すると判断してもよい。
(ステップS208)実行許否判断部18は、ステップS205で一時的に記憶した1以上の同時実行情報を読み出して、統合する。この統合は、前述のように、ソフトウェアの実行に関する最も厳しい条件(ソフトウェアの実行が困難に判断される可能性の高い条件)となるように統合するものとする。より具体的には、あるカテゴリについて、一の同時実行情報では、同時実行が許可され、他の同時実行情報では、同時実行が許可されない場合には、実行許否判断部18は、そのカテゴリについては、同時実行が許可されなくなるように同時実行情報を統合する。その統合後の同時実行情報も、一時的に記憶されるものとする。
(ステップS209)実行許否判断部18は、判断対象となるソフトウェアのカテゴリを特定する。例えば、実行許否判断部18は、判断対象となるソフトウェアを識別するソフトウェア識別情報を実行部12から受け取り、そのソフトウェア識別情報に、カテゴリ対応情報によって対応付けられているカテゴリを特定する。より具体的には、実行許否判断部18は、実行部12から受け取ったソフトウェア識別情報を検索キーとして、カテゴリ対応情報を検索することによって、そのソフトウェア識別情報に対応するカテゴリを特定してもよい。カテゴリを特定するとは、カテゴリを図示しない記録媒体に蓄積することであってもよく、あるいは、所定の記録媒体で記憶されているカテゴリにフラグを設定することであってもよい。
(ステップS210)実行許否判断部18は、ステップS208で統合した同時実行情報と、ステップS209で特定したカテゴリとを用いて、判断対象となるソフトウェアの実行が許可されるかどうか判断する。より具体的には、実行許否判断部18は、ステップS209で特定したカテゴリに、統合した同時実行情報で対応付けられる同時実行の許否を示す情報が、許可である場合には、判断対象となるソフトウェアを実行可能であると判断し、許可でない場合には、判断対象となるソフトウェアを実行可能でないと判断する。そして、実行可能である場合には、ステップS211に進み、そうでない場合には、ステップS212に進む。
(ステップS211)実行許否判断部18は、判断対象となるソフトウェアの実行が許可される旨を実行部12に渡す。そして、図2のフローチャートに戻る。
(ステップS212)実行許否判断部18は、判断対象となるソフトウェアの実行が許可されない旨を実行部12に渡す。そして、図2のフローチャートに戻る。
なお、図3のフローチャートにおいて、ステップS209の処理は、ステップS210よりも以前に実行されるのであれば、その処理の実行のタイミングを問わない。例えば、ステップS201の次に実行されてもよい。このように、図3のフローチャートの処理の順序については、ある程度の任意性がある。
また、図3のフローチャートにおいて、ステップS210の判断で用いるのは、同時実行情報のうち、判断対象のソフトウェアのカテゴリに対応する情報のみである。したがって、ステップS209の処理を、ステップS204よりも以前に行って、ステップS203では、その特定されたカテゴリに対応する同時実行情報の情報のみを取得するようにしてもよい。
図4は、図2のフローチャートにおける実行の許否判断の処理(ステップS102の処理)の詳細を示すフローチャートである。図4のフローチャートは、判断対象のソフトウェアの同時実行情報を用いた判断について示すものである。
(ステップS301)実行許否判断部18は、実行中のソフトウェアが存在するかどうか判断する。そして、存在する場合には、ステップS302に進み、そうでない場合には、ステップS310に進む。ここで、実行許否判断部18は、例えば、ソフトウェア実行情報記憶部16で記憶されているソフトウェア実行情報に、実行中のソフトウェアを識別するソフトウェア識別情報が1個でも含まれる場合には、実行中のソフトウェアが存在すると判断し、そうでない場合には、実行中のソフトウェアが存在しないと判断してもよい。
(ステップS302)実行許否判断部18は、判断対象となるソフトウェアに、同時実行対応情報によって対応付けられている同時実行識別情報を特定する。例えば、実行許否判断部18は、判断対象となるソフトウェアを識別するソフトウェア識別情報を実行部12から受け取り、そのソフトウェア識別情報を検索キーとして同時実行対応情報を検索することによって、そのソフトウェア識別情報に対応する同時実行識別情報を特定してもよい。同時実行識別情報を特定するとは、同時実行識別情報を図示しない記録媒体に蓄積することであってもよく、あるいは、所定の記録媒体で記憶されている同時実行識別情報にフラグを設定することであってもよい。
(ステップS303)実行許否判断部18は、ステップS302で特定した同時実行識別情報に、ロックパターン情報によって対応付けられている同時実行情報を取得する。例えば、実行許否判断部18は、ステップS302で特定した同時実行識別情報を検索キーとして、ロックパターン情報記憶部14で記憶されている複数のロックパターン情報を検索することによって、その同時実行識別情報に対応する同時実行情報を取得してもよい。同時実行情報の取得は、同時実行情報をロックパターン情報記憶部14から読み出すことによって行うことができる。
(ステップS304)実行許否判断部18は、ステップS304で取得した同時実行情報を、図示しない記録媒体において一時的に記憶する。
(ステップS305)実行許否判断部18は、カウンタiを1に設定する。
(ステップS306)実行許否判断部18は、実行中のソフトウェアのうち、i番目の実行中のソフトウェアのカテゴリを特定する。例えば、実行許否判断部18は、i番目の実行中のソフトウェアを識別するソフトウェア識別情報をソフトウェア実行情報記憶部16から読み出し、そのソフトウェア識別情報に、カテゴリ対応情報によって対応付けられているカテゴリを特定する。より具体的には、実行許否判断部18は、ソフトウェア実行情報記憶部16から読み出したソフトウェア識別情報を検索キーとして、カテゴリ対応情報を検索することによって、そのソフトウェア識別情報に対応するカテゴリを特定してもよい。カテゴリを特定するとは、カテゴリを図示しない記録媒体に蓄積することであってもよく、あるいは、所定の記録媒体で記憶されているカテゴリにフラグを設定することであってもよい。
(ステップS307)実行許否判断部18は、ステップS304で一時的に記憶した同時実行情報と、ステップS306で特定したカテゴリとを用いて、判断対象となるソフトウェアの実行が許可されるかどうか判断する。より具体的には、実行許否判断部18は、ステップS306で特定したカテゴリに、ステップS304で一時的に記憶した同時実行情報で対応付けられる同時実行の許否を示す情報が、許可である場合には、判断対象となるソフトウェアを実行可能であると判断し、許可でない場合には、判断対象となるソフトウェアを実行可能でないと判断する。そして、実行可能である場合には、ステップS308に進み、そうでない場合には、ステップS311に進む。
(ステップS308)実行許否判断部18は、カウンタiを1だけインクリメントする。
(ステップS309)実行許否判断部18は、i番目の実行中のソフトウェアが存在するかどうか判断する。そして、存在する場合には、ステップS306に戻り、存在しない場合には、ステップS310に進む。ここで、実行許否判断部18は、例えば、ソフトウェア実行情報記憶部16で記憶されているソフトウェア実行情報にi番目のソフトウェア識別情報が存在するかどうかによって、この判断を行ってもよい。i番目のソフトウェア識別情報が存在する場合には、i番目の実行中のソフトウェアが存在すると判断してもよい。
(ステップS310)実行許否判断部18は、判断対象となるソフトウェアの実行が許可される旨を実行部12に渡す。そして、図2のフローチャートに戻る。
(ステップS311)実行許否判断部18は、判断対象となるソフトウェアの実行が許可されない旨を実行部12に渡す。そして、図2のフローチャートに戻る。
ここで、実行中のソフトウェアの同時実行情報と、判断対象のソフトウェアの同時実行情報とを用いた判断の処理について、簡単に説明する。簡単に言えば、この場合には、図3のフローチャートと、図4のフローチャートとを組み合わせればよいことになる。すなわち、まず図3のフローチャートの処理を実行し、ステップS210の判断結果が「Yes」であれば、図4のフローチャートのステップS301に進み、ステップS210の判断結果が「No」であれば、図4のフローチャートのステップS311に進んでもよい。そして、図4のフローチャートの許否の判断結果が、最終的な判断結果となる。なお、その場合に、図3のステップS201において「No」と判断された際には、図4のフローチャートのステップS310に進み、図4のフローチャートにおいて、ステップS301の処理を行わなくてもよい(ステップS210で「Yes」なら、ステップS302に進むことになる)。
また、図4のフローチャートの各処理を最初に実行し、その後に図3のフローチャートの各処理を実行するようにしてもよいことは言うまでもない。その場合にも、ステップS309で「No」と判断された際には、図3のフローチャートのステップS201に進み、ステップS307で「No」と判断された場合には、図3のフローチャートのステップS212に進んでもよい。なお、その場合に、図4のステップS301において「No」と判断された際には、図3のフローチャートのステップS211に進み、図3のフローチャートにおいて、ステップS201の処理を行わなくてもよい(ステップS309で「No」なら、ステップS202に進むことになる)。
次に、本実施の形態による情報処理装置1の動作について、具体例を用いて説明する。この具体例では、情報処理装置1がスタンドアロンの装置として動作する場合について説明する。
また、この具体例において、ソフトウェア記憶部11では、図5で示されるように、ソフトウェア識別情報と、ソフトウェアとが対応付けられて記憶されているものとする。図5において、例えば、ソフトウェア識別情報「売上集計表」と、そのソフトウェア識別情報によって識別されるソフトウェア「売上集計表.exe」が対応付けられている。
また、この具体例において、カテゴリ対応情報記憶部13では、図6で示されるカテゴリ対応情報が記憶されているものとする。図6において、例えば、ソフトウェア識別情報「売上集計表」と、そのソフトウェア識別情報で識別されるソフトウェアのカテゴリ「Reference」が対応付けられている。
また、この具体例において、ロックパターン情報記憶部14では、図7で示される2以上のロックパターン情報が記憶されているものとする。図7において、一番左の列以外の各列が、一のロックパターン情報である。各ロックパターン情報の一行目の情報が同時実行識別情報であり、それ以外の情報が同時実行情報である。また、その同時実行情報の各行は、各カテゴリに対応した同時実行の可否を示すものである。例えば、同時実行識別情報が「3」であるロックパターン情報では、カテゴリ「DBLock」「MasterLock」「InputLock」に属するソフトウェアとは同時実行できない(同時実行できないことが「1」で示されている)が、カテゴリ「Reference」「None」に属するソフトウェアとは同時実行できる(同時実行できることが「0」で示されている)ことが分かる。
また、この具体例において、同時実行対応情報記憶部15では、図8で示される同時実行対応情報が記憶されているものとする。図8において、例えば、ソフトウェア識別情報「売上集計表」と、そのソフトウェア識別情報で識別されるソフトウェアに対応する同時実行識別情報「1」が対応付けられている。
[実行中のソフトウェアの同時実行情報を用いた判断の具体例]
まず、実行中のソフトウェアの同時実行情報を用いた判断の具体例について説明する。ユーザがマウスやキーボード等を操作して、実行するソフトウェアを選択するためのメインメニューをディスプレイに表示させる指示を入力したとする。すると、その指示が図示しない受付部によって受け付けられ、実行部12は、メインメニューの表示処理を実行すると判断して、メインメニューを構成し、図示しないディスプレイに表示する。その結果、図9で示される表示がなされたとする。図9の表示において、ユーザが「売上伝票」ボタンをクリックすることにより、売上伝票を選択したとする。すると、売上伝票が選択された旨が図示しない受付部によって受け付けられ、実行部12は、「売上伝票」で識別されるソフトウェアを実行するタイミングであると判断する(ステップS101)。そして、実行部12は、ソフトウェア識別情報「売上伝票」に関する実行の許否判断を行う旨の指示を実行許否判断部18に渡す。その指示に応じて、実行許否判断部18は、そのソフトウェア識別情報で識別されるソフトウェアの実行の許否判断を行う(ステップS102)。
具体的には、実行許否判断部18は、まず、ソフトウェア実行情報記憶部16で記憶されているソフトウェア実行情報に、ソフトウェア識別情報が含まれるかどうか判断する(ステップS201)。この時点では、ソフトウェアが何も実行されておらず、ソフトウェア実行情報にソフトウェア識別情報が何も含まれていなかったとする。すると、実行許否判断部18は、そのソフトウェアの実行が許可されると判断し、その判断結果を実行部に渡す(ステップS211)。すると、実行部12は、ソフトウェアを実行可能であると判断し(ステップS103)、ソフトウェア識別情報「売上伝票」に対応するソフトウェア「売上伝票.exe」をソフトウェア記憶部11から読み出して実行する(ステップS104)。
なお、更新部17は、実行部12によるソフトウェアの起動を検知すると、ソフトウェア実行情報を更新するタイミングであると判断し(ステップS105)、ソフトウェア実行情報記憶部16で記憶されているソフトウェア実行情報に、実行部12が実行を開始したソフトウェアを識別するソフトウェア識別情報「売上伝票」を蓄積する(ステップS106)。図10は、その更新後のソフトウェア実行情報を示す図である。
次に、メインメニューを表示させるユーザからの指示に応じて、再度、図9で示されるメインメニューの表示がなされたとする。そして、ユーザは、この図9の表示において、「売上集計表」を選択したとする。すると、売上集計表が選択された旨が図示しない受付部によって受け付けられ、実行部12は、「売上集計表」で識別されるソフトウェアを実行するタイミングであると判断する(ステップS101)。そして、実行部12は、ソフトウェア識別情報「売上集計表」に関する実行の許否判断を行う旨の指示を実行許否判断部18に渡す。その指示に応じて、実行許否判断部18は、そのソフトウェア識別情報で識別されるソフトウェアの実行の許否判断を行う(ステップS102)。
具体的には、実行許否判断部18は、図10で示されるソフトウェア実行情報を参照し、実行中のソフトウェアが存在すると判断する(ステップS201)。したがって、実行許否判断部18は、そのソフトウェア実行情報における1番目のソフトウェア識別情報「売上伝票」を読み出す。そして、実行許否判断部18は、図8で示される同時実行対応情報において、その読み出したソフトウェア識別情報「売上伝票」を検索キーとして検索を行う。この場合には、2番目のレコードがヒットするため、実行許否判断部18は、そのヒットしたレコードから同時実行識別情報「2」を読み出す(ステップS202,S203)。
また、実行許否判断部18は、図7で示される複数のロックパターン情報において、その読み出した同時実行識別情報「2」を検索キーとして検索を行う。この場合には、右から3番目の列がヒットするため、実行許否判断部18は、そのヒットした列から、同時実行情報を読み出して、図示しない記録媒体において一時的に記憶する(ステップS204,S205)。この場合には、ソフトウェア実行情報に1個しかソフトウェア識別情報が含まれていないため、同時実行情報を取得する処理はこれで終了となり、同時実行情報の統合結果も、取得した同時実行情報と変わらないことになる(ステップS206〜S208)。
次に、実行許否判断部18は、判断対象となるソフトウェアを識別するソフトウェア識別情報、すなわち、実行部12から受け取ったソフトウェア識別情報「売上集計表」を検索キーとして、図6のカテゴリ対応情報を検索する。この場合には、1番目のレコードがヒットするため、実行許否判断部18は、そのヒットしたレコードからカテゴリ「Reference」を読み出す(ステップS209)。そして、図示しない記録媒体で一時的に記憶されている同時実行情報を参照して、カテゴリ「Reference」に対応する同時実行の可否を示す情報が「1」であるのか、「0」であるのか判断する。この場合には、「0」であるため、実行許否判断部18は、同時実行が許可されていると判断し(ステップS210)、ソフトウェアの実行が許可される旨を実行部12に渡す(ステップS211)。
すると、実行部12は、ソフトウェアを実行可能であると判断し(ステップS103)、ソフトウェア識別情報「売上集計表」に対応するソフトウェア「売上集計表.exe」をソフトウェア記憶部11から読み出して実行する(ステップS104)。また、更新部17は、実行部12によるソフトウェアの起動を検知すると、ソフトウェア実行情報を更新するタイミングであると判断し(ステップS105)、ソフトウェア実行情報記憶部16で記憶されているソフトウェア実行情報に、実行部12が実行を開始したソフトウェアを識別するソフトウェア識別情報「売上集計表」を蓄積する(ステップS106)。図11は、その更新後のソフトウェア実行情報を示す図である。
次に、メインメニューを表示させるユーザからの指示に応じて、再度、図9で示されるメインメニューの表示がなされたとする。そして、ユーザは、この図9の表示において、「翌年度更新処理」を選択したとする。すると、翌年度更新処理が選択された旨が図示しない受付部によって受け付けられ、実行部12は、「翌年度更新処理」で識別されるソフトウェアを実行するタイミングであると判断する(ステップS101)。そして、実行部12は、ソフトウェア識別情報「翌年度更新処理」に関する実行の許否判断を行う旨の指示を実行許否判断部18に渡す。その指示に応じて、実行許否判断部18は、そのソフトウェア識別情報で識別されるソフトウェアの実行の許否判断を行う(ステップS102)。
具体的には、実行許否判断部18は、図11で示されるソフトウェア実行情報を参照し、実行中のソフトウェアが存在すると判断する(ステップS201)。したがって、実行許否判断部18は、そのソフトウェア実行情報における1番目のソフトウェア識別情報「売上集計表」を読み出す。そして、実行許否判断部18は、図8で示される同時実行対応情報において、その読み出したソフトウェア識別情報「売上集計表」を検索キーとして検索を行う。この場合には、1番目のレコードがヒットするため、実行許否判断部18は、そのヒットしたレコードから同時実行識別情報「1」を読み出す(ステップS202,S203)。
また、実行許否判断部18は、図7で示される複数のロックパターン情報において、その読み出した同時実行識別情報「1」を検索キーとして検索を行う。この場合には、右から2番目の列がヒットするため、実行許否判断部18は、そのヒットした列から、同時実行情報を読み出して、図示しない記録媒体において一時的に記憶する(ステップS204,S205)。
次に、実行許否判断部18は、図11のソフトウェア実行情報における2番目のソフトウェア識別情報「売上伝票」を読み出す。そして、実行許否判断部18は、その読み出したソフトウェア識別情報「売上伝票」に、図8で示される同時実行対応情報において対応付けられている同時実行識別情報「2」を読み出す(ステップS206,S207,S203)。
また、実行許否判断部18は、図7で示される複数のロックパターン情報において、その読み出した同時実行識別情報「2」を検索キーとして検索を行う。この場合には、右から3番目の列がヒットするため、実行許否判断部18は、そのヒットした列から、同時実行情報を読み出して、図示しない記録媒体において一時的に記憶する(ステップS204,S205)。
ソフトウェア実行情報に含まれるソフトウェア識別情報は、2個であるため、同時実行情報を取得する処理はこれで終了となり(ステップS206,S207)、実行許否判断部18は、一時的に記憶されている2個の同時実行情報を統合する(ステップS208)。具体的には、実行許否判断部18は、各同時実行情報のカテゴリごとの値について、論理和(OR)をとることによって、2個の同時実行情報を統合する。その統合結果は、図7の右から3番目の同時実行情報(同時実行識別情報[3]で識別される同時実行情報)と同じになる。
次に、実行許否判断部18は、判断対象となるソフトウェアを識別するソフトウェア識別情報、すなわち、実行部12から受け取ったソフトウェア識別情報「翌年度更新処理」を検索キーとして、図6のカテゴリ対応情報を検索し、カテゴリ「DBLock」を読み出す(ステップS209)。そして、図示しない記録媒体で一時的に記憶されている統合後の同時実行情報を参照して、カテゴリ「DBLock」に対応する同時実行の可否を示す情報が「1」であるのか、「0」であるのか判断する。この場合には、「1」であるため、実行許否判断部18は、同時実行が許可されていないと判断し(ステップS210)、ソフトウェアの実行が許可されていない旨を実行部12に渡す(ステップS212)。
その結果、実行部12は、ソフトウェアを実行可能でないと判断し(ステップS103)、ソフトウェア識別情報「翌年度更新処理」に対応するソフトウェア「翌年度更新処理.exe」を実行しない。なお、実行部12は、図12で示されるエラーである旨を示す情報を構成し、その情報をディスプレイに表示する。その結果、ユーザは、実行を要求したソフトウェア「翌年度更新処理.exe」が実行されなかったことと、その理由とを知ることができる。
[判断対象のソフトウェアの同時実行情報を用いた判断の具体例]
次に、判断対象のソフトウェアの同時実行情報を用いた判断の具体例について説明する。この具体例では、ソフトウェア識別情報「売上集計表」「売上伝票」で識別される2個のソフトウェアがすでに実行されている状況から説明を開始する。すなわち、図11で示されるソフトウェア実行情報が、ソフトウェア実行情報記憶部16で記憶されているものとする。
メインメニューを表示させるユーザからの指示に応じて、図9で示されるメインメニューの表示がなされたとする。そして、ユーザは、この図9の表示において、「翌年度更新処理」を選択したとする。すると、翌年度更新処理が選択された旨が図示しない受付部によって受け付けられ、実行部12は、「翌年度更新処理」で識別されるソフトウェアを実行するタイミングであると判断する(ステップS101)。そして、実行部12は、ソフトウェア識別情報「翌年度更新処理」に関する実行の許否判断を行う旨の指示を実行許否判断部18に渡す。その指示に応じて、実行許否判断部18は、そのソフトウェア識別情報で識別されるソフトウェアの実行の許否判断を行う(ステップS102)。
具体的には、実行許否判断部18は、図11で示されるソフトウェア実行情報を参照し、実行中のソフトウェアが存在すると判断する(ステップS301)。したがって、実行許否判断部18は、判断対象となるソフトウェアを識別するソフトウェア識別情報、すなわち、実行部12から受け取ったソフトウェア識別情報「翌年度更新処理」を検索キーとして、図8の同時実行対応情報を検索し、同時実行識別情報「4」を読み出す(ステップS302)。
また、実行許否判断部18は、図7で示される複数のロックパターン情報において、その読み出した同時実行識別情報「4」を検索キーとして検索を行う。この場合には、右から5番目の列がヒットするため、実行許否判断部18は、そのヒットした列から、同時実行情報を読み出して、図示しない記録媒体において一時的に記憶する(ステップS303,S304)。
次に、実行許否判断部18は、図11で示されるソフトウェア実行情報を参照し、そのソフトウェア実行情報における1番目のソフトウェア識別情報「売上集計表」を読み出す。そして、実行許否判断部18は、図6で示されるカテゴリ対応情報において、その読み出したソフトウェア識別情報「売上集計表」に対応するカテゴリ「Reference」を読み出す(ステップS305,S306)。
そして、実行許否判断部18は、図示しない記録媒体で一時的に記憶されている同時実行情報を参照して、カテゴリ「Reference」に対応する同時実行の可否を示す情報が「1」であるのか、「0」であるのか判断する。この場合には、「1」であるため、実行許否判断部18は、同時実行が許可されていないと判断し(ステップS307)、ソフトウェアの実行が許可されていない旨を実行部12に渡す(ステップS311)。
その結果、実行部12は、ソフトウェアを実行可能でないと判断し(ステップS103)、ソフトウェア識別情報「翌年度更新処理」に対応するソフトウェア「翌年度更新処理.exe」を実行しない。なお、この場合に、前述の説明と同様に、図12と同様の画面表示を情報処理装置1のディスプレイにおいて行ってもよい。
なお、これらの具体例から、実行中のソフトウェアの同時実行情報と、判断対象のソフトウェアの同時実行情報とを用いた判断を行う場合の具体的な処理も明らかであり、その詳細な説明を省略する。
また、この具体例では、カテゴリ対応情報と、同時実行対応情報とがまったく別の情報である場合について説明したが、それらの情報は、一体として構成されていてもよい。例えば、図13で示されるように、ソフトウェア識別情報と、カテゴリと、同時実行識別情報とが対応付けられていることによって、カテゴリ対応情報と、同時実行対応情報とが構成されていてもよい。
また、この具体例では、情報処理装置1がスタンドアロンである場合について説明したが、情報処理装置1は、スタンドアロンの装置であってもよく、図14で示されるように、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、情報処理装置1は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。また、後者の場合において、サーバとクライアントとによって、どのように処理を分担するかは問わない。
以上のように、本実施の形態による情報処理装置1によれば、ソフトウェアごとに、どのソフトウェアと同時実行できるかどうかを設定することなく、ソフトウェアの実行に関する同時実行の制御を行うことができる。したがって、新たなソフトウェアを追加する場合にも、その追加するソフトウェアに、カテゴリと、同時実行識別情報とを対応付けるのみで、適切な同時実行制御を行うことができるようになり、ソフトウェアごとに同時実行の許否の設定をする手間を省くことができうる。
なお、本実施の形態において、情報処理装置1は、状況取得部21をさらに備え、その状況取得部21が取得する状況情報を用いて、ソフトウェアの実行の許否判断を行うようにしてもよい。図15は、状況取得部21をさらに備えた情報処理装置3の構成を示すブロック図である。図15において、状況取得部21以外の構成及び動作は、カテゴリ対応情報や、同時実行対応情報が異なりうる以外、実施の形態1と同様であり、その詳細な説明を省略する。
状況取得部21は、情報処理装置3の状況を示す情報である状況情報を取得する。状況情報は、例えば、情報処理装置3の処理負荷を示すものであってもよい。状況取得部21は、例えば、実行部12の負荷(マイクロプロセッサの使用率等)や、メモリの使用量、実行部12が実行しているタスクやプロセスの数、情報処理装置3にログインしているユーザ数等を用いて状況情報を取得してもよい。その場合に、状況情報は、実行部12の負荷や、メモリの使用量、実行されているタスク等の数、ログイン中のユーザ数等が多くなるほど、負荷が高くなるように状況情報を取得するものとする。例えば、実行部12の負荷や、メモリの使用量、実行されているタスク等の数、ログイン中のユーザ数と、負荷とを対応付ける情報が図示しない記録媒体において保持されており、状況取得部21は、その保持されている情報を参照することによって、状況情報を取得してもよい。なお、状況取得部21は、実行部12の負荷や、メモリの使用量、実行されているタスク等の数、ログイン中のユーザ数は、それらを管理している管理部等から受け取るものとする。
ここでは、状況情報が実行部12の負荷を示すものであり、その負荷を「高」「低」によって示すものであるとする。また、同時実行対応情報記憶部15では、図16で示される同時実行対応情報が記憶されているとする。図16の同時実行対応情報では、図8の同時実行対応情報に対して、状況情報がさらに付加されている。そして、状況情報(負荷)の高低に応じて、それぞれ同時実行識別情報が設定されている。実行許否判断部18は、図16で示される同時実行対応情報を用いて、例えば、状況情報の示す負荷が「低」である場合には、状況情報「低」に対応付けられている同時実行識別情報を特定し、状況情報の示す負荷が「高」である場合には、状況情報「高」に対応付けられている同時実行識別情報を特定する。
図7で示されるロックパターン情報を参照すれば明らかなように、図16において、情報処理装置3の負荷が高ければ、より厳しい同時実行情報となり、負荷が低ければ、より緩い同時実行情報となるようになっている。したがって、負荷の高いときには、同時に実行されるソフトウェア数が抑制されることとなり、負荷の低いときには、同時に実行されるソフトウェア数が緩和されることになる。このようにして、情報処理装置3の状況を改善するように、同時実行の制御が行われるようになる。
なお、図8で示される同時実行対応情報を、図16で示されるものに替える代わりに、図6で示されるカテゴリを、図17で示されるカテゴリに変更してもよい。図17のカテゴリ対応情報では、図16の同時実行対応情報と同様に、状況情報がさらに付加されている。そして、状況情報(負荷)の高低に応じて、それぞれカテゴリが設定されている。実行許否判断部18は、図17で示されるカテゴリ対応情報を用いて、例えば、状況情報の示す負荷が「低」である場合には、状況情報「低」に対応付けられているカテゴリを特定し、状況情報の示す負荷が「高」である場合には、状況情報「高」に対応付けられているカテゴリを特定する。
図7で示されるロックパターン情報を参照すれば明らかなように、図17においても、情報処理装置3の負荷が高ければ、より厳しい同時実行の許否判断となり、負荷が低ければ、より緩い同時実行の許否判断となるようになっている。したがって、負荷の高いときには、同時に実行されるソフトウェア数が抑制されることとなり、負荷の低いときには、同時に実行されるソフトウェア数が緩和されることになる。このようにして、情報処理装置3の状況を改善するように、同時実行の制御が行われるようになる。
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
また、上記実施の形態において、情報処理装置に含まれる2以上の構成要素が通信デバイスや入力デバイス等を有する場合に、2以上の構成要素が物理的に単一のデバイスを有してもよく、あるいは、別々のデバイスを有してもよい。
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、上記実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、ソフトウェア記憶部で記憶される、2以上のソフトウェアの同時実行の許否の判断を行うものであり、判断対象となるソフトウェアを識別するソフトウェア識別情報に、カテゴリ対応情報記憶部で記憶される、前記ソフトウェア記憶部で記憶されているソフトウェアを識別する情報であるソフトウェア識別情報と、当該ソフトウェア識別情報で識別されるソフトウェアのカテゴリとを対応付けて有する情報であるカテゴリ対応情報によって対応付けられるカテゴリが、その判断時に実行中のソフトウェアを識別するソフトウェア識別情報に、同時実行対応情報記憶部で記憶される、前記ソフトウェア記憶部で記憶されているソフトウェアを識別する情報であるソフトウェア識別情報と、当該ソフトウェア識別情報で識別されるソフトウェアの同時実行情報を識別する同時実行識別情報とを対応付けて有する情報である同時実行対応情報、及び、ロックパターン情報記憶部で2以上記憶される、あるソフトウェアと、他のソフトウェアとを同時実行できるかどうかを、他のソフトウェアのカテゴリごとに有する情報である同時実行情報と、当該同時実行情報を識別する情報である同時実行識別情報とを対応付けて有する情報であるロックパターン情報によって対応付けられる同時実行情報によって同時実行が許可されていないものである場合に、当該判断対象のソフトウェアの実行を許可せず、同時実行が許可されているものである場合に、当該判断対象のソフトウェアの実行を許可する実行許否判断部と、前記実行許否判断部によって実行の許可されたソフトウェアを実行する実行部として機能させるためのものである。
なお、上記プログラムにおいて、ハードウェアでしか行われない処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理は少なくとも含まれない。
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、CD−ROMなどの光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図18は、上記プログラムを実行して、上記実施の形態による情報処理装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現される。
図18において、コンピュータシステム100は、CD−ROM(Compact Disk Read Only Memory)ドライブ105、FD(Flexible Disk)ドライブ106を含むコンピュータ101と、キーボード102と、マウス103と、モニタ104とを備える。
図19は、コンピュータシステムを示す図である。図19において、コンピュータ101は、CD−ROMドライブ105、FDドライブ106に加えて、CPU(Central Processing Unit)111と、ブートアッププログラム等のプログラムを記憶するためのROM(Read Only Memory)112と、CPU111に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)113と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク114と、CPU111、ROM112等を相互に接続するバス115とを備える。なお、コンピュータ101は、LANへの接続を提供する図示しないネットワークカードを含んでいてもよい。
コンピュータシステム100に、上記実施の形態による情報処理装置の機能を実行させるプログラムは、CD−ROM121、またはFD122に記憶されて、CD−ROMドライブ105、またはFDドライブ106に挿入され、ハードディスク114に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ101に送信され、ハードディスク114に記憶されてもよい。プログラムは実行の際にRAM113にロードされる。なお、プログラムは、CD−ROM121やFD122、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ101に、上記実施の形態による情報処理装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム100がどのように動作するのかについては周知であり、詳細な説明は省略する。
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。