以下、本発明の好適な実施の形態(以下「実施形態」という)について、図面を用いて詳細に説明する。
[第1の実施形態]
<ハードウェア構成>
図1は、本実施形態に係る情報処理装置100のハードウェア構成例を示す図である。
図1に示すように、情報処理装置100は、入力装置101、表示装置102、ドライブ装置103、RAM(Random Access Memory)104、ROM(Read Only Memory)105、CPU(Central Processing Unit)106、インタフェース装置107、及びHDD(Hard Disk Drive)108などを備え、それぞれがバスBで相互に接続されている。
入力装置101は、キーボードやマウスなどを含み、情報処理装置100に各操作信号を入力するのに用いられる。表示装置102は、ディスプレイなどを含み、情報処理装置100による処理結果を表示する。
インタフェース装置107は、情報処理装置100を所定のデータ伝送路に接続するインタフェースである。これにより、情報処理装置100は、インタフェース装置107を介して、他の機器(非図示)とデータ通信を行うことができる。
HDD108は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、装置全体を制御する情報処理システム(例えば「Windows(商標又は登録商標)」や「UNIX(商標又は登録商標)」などの基本ソフトウェアであるOS(Operating System))、及びシステム上において各種機能(例えば「電源管理機能」)を提供するアプリケーションなどがある。
また、HDD108は、格納しているプログラムやデータを、所定のファイルシステム及び/又はDB(Data Base)により管理している。なお、端末300からの受信データ(ジョブデータ)は、HDD108の所定の記憶領域に格納・蓄積され、DBにより管理される。
ドライブ装置103は、着脱可能な記録媒体103aとのインタフェースである。これにより、情報処理装置100は、ドライブ装置103を介して、記録媒体103aの読み取り及び/又は書き込みを行うことができる。記録媒体103aには、例えば、フロッピー(商標又は登録商標)ディスク、CD(Compact Disk)、及びDVD(Digital Versatile Disk)、ならびに、SDメモリカード(SD memory card)やUSBメモリ(Universal Serial Bus memory)などがある。
ROM105は、電源を切っても内部データを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM105には、情報処理装置100の起動時に実行されるBIOS(Basic Input/Output System)、情報処理システム設定、及びネットワーク設定などのプログラムやデータが格納されている。
RAM104は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。CPU106は、上記記憶装置(「HDD」や「ROM」など)から、プログラムやデータをRAM(メモリ)上に読み出し、処理を実行することで、装置全体の制御や搭載機能を実現する演算装置である。
<ソフトウェア構成>
図2は、本実施形態に係る情報処理装置100のソフトウェア構成例を示す図である。
図2に示すように、情報処理装置100は、アプリケーションAP及び電源管理システム10などを有している。
アプリケーションAPは、利用者に所定の機能提供を行うソフトウェアである。アプリケーションAPは、提供機能を実現するためのプログラムや各種データを含む機能実現ソフトウェアである。図2には、各提供機能に対応する複数のアプリケーション(1)AP1から(N)APnを有している例が示されている。
電源管理システム10は、デバイスDVの電源管理機能を提供するソフトウェアである。電源管理システム10は、電源管理機能を実現するためのプログラムや各種データを含む機能実現ソフトウェアである。図2には、提供機能により利用される複数のデバイス(1)DVaから(N)DVnを有している例が示されている。なお、本実施形態では、入力装置101、表示装置102、ドライブ装置103、及びインタフェース装置107などが、これらのデバイスDVにあたる。
アプリケーションAPは、OS上又は電源管理システム10上で動作するように開発・実装される。また、電源管理システム10は、OS上で動作するように開発・実装される。その開発・実装方法には、例えば、SDK(Software Development Kit)を用いる方法などがある。
これにより、アプリケーションAPは、SDKから提供されるAPI(Application Program Interface)を介して、OSが提供する情報処理機能又はシステム10が提供する電源管理機能と連携動作できる。また、電源管理システム10は、SDKから提供されるAPIを介して、OSが提供する情報処理機能と連携動作できる(ミドルウェアとして機能できる)。
具体的に本実施形態では、上記ソフトウェアが次のように連携動作し、電源管理機能が実現される。
アプリケーションAPは、利用者からデバイスDVを利用する処理要求を受け付けると、利用者の処理要求に従って、提供機能を実現するための処理を行う。このとき、アプリケーションAPは、電源管理システム10に対して、処理要求を受け付けた旨を通知する。その結果、電源管理システム10では、OSを介して、要求処理を実現するための利用デバイスDVに対して、電力供給を開始する。
これを受けて、アプリケーションAPは、OSを介して、利用デバイスDVを用いて要求処理を行い、処理が終了すると、電源管理システム10に対して、要求処理が終了した旨を通知する。その結果、電源管理システム10では、OSを介して、要求処理を実現するための利用デバイスDVに対して、電力供給を停止する。
以上のように、本実施形態に係る情報処理装置100は、上記ハードウェア構成及び上記ソフトウェア構成により、電源管理機能(電源管理サービス)を提供することができる。なお、本実施形態では、電源管理を行う電子機器の一例として情報処理装置100を例に説明を行うが、この限りでない。本実施形態は、複数のデバイスDVを備え、上記電源管理システム10が動作可能な電子機器であれば適用可能である。
<電源管理機能>
本実施形態に係る電源管理機能について説明する。
本実施形態に係る情報処理装置100では、利用者に機能提供を行うアプリケーション(機能実現ソフトウェア)と機能提供時の利用デバイスとが対応付けられた情報に基づき、デバイスに対する電力供給の開始・停止を制御する。本実施形態に係る情報処理装置100は、このような電源管理機能を有している。
従来の電源管理では、利用者から処理要求を受け付けて、電子機器が省エネモードから復帰した際に、受け付けた処理要求を実行する上で不要なデバイスにまで電力供給が開始され、不必要に電力を消費してしまう。
そこで、本実施形態に係る情報処理装置100では、利用者の要求処理を実行するために利用する利用デバイスに対して、電力供給を開始・停止する仕組みとした。
これにより、本実施形態に係る情報処理装置100は、利用者の処理要求を実行する上で不要なデバイスに電力を供給しない環境を提供する。その結果、本実施形態に係る情報処理装置100では、効率的な省電力化が実現できる。
以下に、本実施形態に係る電源管理機能の構成とその動作について説明する。
図3は、本実施形態に係る電源管理の機能構成例を示す図である。
図3に示すように、本実施形態に係る電源管理機能は、処理要求受付部11、供給判定部12、供給制御部13、及び情報管理部31などを有している。これらの機能部は、上記電源管理システム10により実現される機能である。
情報管理部31は、デバイスDVに対する電力供給の開始・停止を制御するために用いる情報(以下「制御情報」という)を管理する機能部である。情報管理部31は、制御情報保持部20にアクセスし、所定のデータ操作により、制御情報を管理する。なお、制御情報保持部20は、例えば、情報処理装置100が備える記憶装置(HDD)の所定の記憶領域にあたる。また、所定のデータ操作には、他の機能部からの要求に応じた、データ参照(取得)、データ登録(保存:書き込み)、データ更新(変更:上書き)、及びデータ削除(消去)などがある。
ここで、制御情報について説明する。
本実施形態では、制御情報保持部20に、図4及び図5に示すような制御情報を保持している。
図4は、本実施形態に係るデバイス対応情報20D1のデータ例を示す図である。
図4に示すように、デバイス対応情報20D1は、[アプリ識別]及び[利用デバイス]などの情報項目が、アプリ(提供機能)単位で対応付けられている。この情報により、アプリケーションAPと機能提供時の利用デバイスDVとの対応関係が管理される。
[アプリ識別]項目は、アプリケーションAPを識別する情報(以下「アプリ識別情報」という)が設定される項目である。項目値には、例えば、アプリケーションAPにユニークに割り当てられたID値(アプリID)や文字列値(アプリ名)などがある。[利用デバイス]項目は、アプリケーションAPが機能提供時に利用するデバイスDVを識別する情報(以下「デバイス識別情報」という)が設定される項目である。項目値には、例えば、デバイスDVにユニークに割り当てられたID値(デバイスID)や文字列値(デバイス名)などがある。
これらの項目値は、例えば、管理者が、搭載アプリケーションAPと利用デバイスDVとに基づき、予め設定しておく。よって、情報管理部31は、管理者に対し、これらの項目値を設定可能な設定機能(所定のツール)を提供し、設定機能を介して入力値を受け付けると、制御情報保持部20にアクセスし、入力値をデバイス対応情報20D1の項目値として設定する。これにより、アプリ単位でデバイス対応情報20D1が登録される。なお、情報管理部31は、アプリケーションAPのインストールに連動して、デバイス対応情報20D1を登録するようにしてもよい。この場合、インストールされたアプリケーションAPに関する情報(インストール情報)などに基づき、利用デバイスDVを特定し、デバイス対応情報20D1を登録する。
図5は、本実施形態に係るデバイス状態情報20D2のデータ例を示す図である。
図5に示すように、デバイス状態情報20D2は、[搭載デバイス]及び[利用状態]などの情報項目が、デバイス単位で対応付けられている。この情報により、デバイスDVごとの利用状態が管理される。
[搭載デバイス]項目は、情報処理装置100が備えるデバイスDVを識別する情報(以下「デバイス識別情報」という)が設定される項目である。項目値には、例えば、搭載デバイスDVにユニークに割り当てられたID値(デバイスID)や文字列値(デバイス名)などがある。[利用状態]項目は、機能提供時のアプリケーションAPによるデバイスDVの利用状態を示す情報(以下「利用状態情報」という)が設定される項目である。項目値には、例えば、デバイスDVの利用状態を示す利用状態値("利用中"/"利用停止中")などがある。
[搭載デバイス]項目の値は、例えば、管理者が、電源管理対象とするデバイスDVに基づき、予め設定しておく。なお、この項目値の設定方法は、デバイス対応情報20D1と同様である。また、[利用状態]項目の値は、[搭載デバイス]項目の設定と連動して、予め決めておいた"利用停止中"の利用状態値(デフォルト値)が設定される。これにより、デバイス単位でデバイス状態情報20D2が登録される。
以後、デバイス状態情報20D2は、アプリケーションAPからのデバイス利用に応じて、次のように更新される。情報管理部31は、制御情報保持部20にアクセスし、デバイス状態情報20D2の利用状態情報に利用デバイスDVの利用状態値("利用中"/"利用停止中")を設定する。これにより、デバイス単位でデバイス状態情報20D2が更新される。
図3の説明に戻る。処理要求受付部11は、アプリケーションAPからの処理要求通知を受け付ける機能部である。処理要求受付部11は、通知時にアプリケーションAPからアプリ識別情報を受け取ることで、処理要求を受け付ける。処理要求受付部11は、受け付けた処理要求に応じた利用デバイスDVの電力供給結果(開始・停止結果)を要求元(アプリケーション)に応答する。また、処理要求受付部11は、利用デバイスDVの要求処理を終えたアプリケーションAPからの処理終了通知も受け付ける。
供給判定部12は、利用デバイスDVに対して、電力供給を開始・停止するか否かを判定する機能部である。供給判定部12は、上記判定を制御情報に基づき行う。具体的には、次の通りである。
例えば、電力供給の開始を判定する場合、供給判定部12は、情報管理部31を介して制御情報保持部20にアクセスし、処理要求通知受付時に受け取ったアプリ識別情報に基づき、制御情報に含まれるデバイス対応情報20D1を参照する。供給判定部12は、アプリ識別情報に対応付けられたデバイス識別情報に基づき、処理要求を受け付けたアプリケーションAPの利用デバイスDVを特定する。つまり、供給判定部12は、制御情報に基づき、電源管理対象の利用デバイスDVを特定する。
次に、供給判定部12は、特定した利用デバイスDVのデバイス識別情報に基づき、制御情報に含まれるデバイス状態情報20D2を参照する。供給判定部12は、デバイス識別情報に対応付けられた利用状態情報に基づき、特定した利用デバイスDVに対して、電力供給を開始するか否かを判定する。このとき、供給判定部12は、特定した利用デバイスDVのうち、利用状態情報が示す利用状態が"利用停止中"の利用デバイスDVに対して、電力供給を開始すると判定する。
例えば、電力供給の停止を判定する場合、供給判定部12は、情報管理部31を介して制御情報保持部20にアクセスし、処理終了通知受付時に受け取ったアプリ識別情報に基づき、デバイス対応情報20D1を参照する。供給判定部12は、アプリ識別情報に対応付けられたデバイス識別情報に基づき、処理要求を受け付けたアプリケーションAPの利用デバイスDVを特定する。
次に、供給判定部12は、特定した利用デバイスDVのデバイス識別情報に基づき、デバイス状態情報20D2を参照する。供給判定部12は、デバイス識別情報に対応付けられた利用状態情報に基づき、特定した利用デバイスDVに対して、電力供給を停止するか否かを判定する。このとき、供給判定部12は、特定した利用デバイスDVのうち、利用状態情報が示す利用状態が"利用中"の利用デバイスDVに対して、電力供給を停止すると判定する。
供給制御部13は、利用デバイスDVに対する電力供給の開始・停止を制御する機能部である。供給制御部13は、上記判定結果に基づき行う。供給制御部13は、供給判定部12から受け取ったデバイス識別情報に基づき、供給開始/停止と判定された利用デバイスDVを特定する。供給制御部13は、供給開始と判定されたデバイスDVに対して、電力供給の開始を指示する。一方、供給制御部13は、供給停止と判定されたデバイスDVに対して、電力供給の停止を指示する。
以上のように、本実施形態に係る電源管理機能は、上記各機能部が連携動作することにより実現される。なお、上記各機能部は、情報処理装置100に搭載(インストール)されるプログラム(電源管理機能を実現するソフトウェア)が、演算装置(CPU)により、記憶装置(「HDD」や「ROM」)からメモリ(RAM)上に読み出され、以下の処理が実行されることで実現される。
本実施形態に係る電源管理機能の詳細な動作(機能部群の連携動作)について、処理手順を示すシーケンス図及びフローチャートを用いて説明する。
《電源管理の主な処理》
図6は、本実施形態に係る電源管理の処理手順例を示すシーケンス図である。図6に示す例は、情報処理装置100における処理手順例であり、アプリケーション(1)AP1が、機能提供時に3つのデバイス(A)DVa,(B)DVb,(C)DVcを利用する場合を想定したものである。よって、制御情報には、アプリケーション(1)AP1と利用デバイス(デバイス(A)DVa,(B)DVb,(C)DVc)との対応関係がデバイス対応情報20D1に設定されており、利用デバイスDVごとの利用状態がデバイス状態情報20D2に設定されているものとする。
図6に示すように、電源管理システム10は、処理要求受付部11が、アプリケーション(1)AP1からの処理要求通知を受け付ける(ステップS101)。このとき、処理要求受付部11は、アプリケーション(1)AP1からアプリ識別情報を受け取る。
電源管理システム10は、処理要求受付部11が供給判定部12に対し、要求処理の実行に伴う利用デバイスDVへの電力供給の開始判定を要求する(ステップS102)。このとき、供給判定部12は、処理要求受付部11からアプリ識別情報を受け取る。
電源管理システム10は、供給判定部12が、開始判定要求に応じて供給判定を行う(ステップS103)。このとき、供給判定部12は、アプリ識別情報に基づき、機能提供を行うアプリケーション(1)AP1を特定する。供給判定部12は、制御情報に基づき、特定したアプリケーション(1)AP1が利用するデバイス(A)DVa,(B)DVb,(C)DVcを特定する。供給判定部12は、特定したデバイス(A)DVa,(B)DVb,(C)DVcに対して、電力供給を開始するか否かを判定する。なお、電力供給の開始判定処理については、図7を用いて後述する。
電源管理システム10は、供給判定部12が利用デバイスDVに対して、電力供給を開始すると判定した場合、供給制御部13に対し、デバイス(A)DVa,(B)DVb,(C)DVcに対する電力供給の開始を要求する(ステップS104)。このとき、供給制御部13は、供給判定部12からデバイス(A)DVa,(B)DVb,(C)DVcのデバイス識別情報を受け取る。
電源管理システム10は、供給制御部13が、供給開始要求に従って電力供給を開始する(ステップS105)。このとき、供給制御部13は、デバイス識別情報に基づき、供給開始と判定されたデバイス(A)DVa,(B)DVb,(C)DVcを特定する。供給制御部13は、特定したデバイス(A)DVa,(B)DVb,(C)DVcに対して、電力供給を開始する。
電源管理システム10は、正常に電力供給が開始されると、供給制御部13が供給判定部12に対し、電力供給の開始結果(正常に開始された旨)を返す(ステップS106)。
これを受けて電源管理システム10は、供給判定部12が情報管理部31に対し、制御情報に含まれるデバイス状態情報20D2の利用状態情報の更新を要求する(ステップS107)。このとき、情報管理部31は、供給判定部12からデバイス(A)DVa,(B)DVb,(C)DVcのデバイス識別情報及び最新の利用状態情報を受け取る。
電源管理システム10は、情報管理部31が、制御情報保持部20にアクセスし、デバイス状態情報20D2の利用状態情報を更新する(ステップS108)。このとき、情報管理部31は、デバイス識別情報に基づき、電力供給が開始されたデバイス(A)DVa,(B)DVb,(C)DVcに対応する利用状態情報を参照する。情報管理部31は、参照した利用状態情報に最新の利用状態情報"利用中"を設定し、利用状態値(設定値)を更新する。
その後、電源管理システム10は、供給判定部12が、処理要求受付部11を介して、アプリケーション(1)AP1に対し、電力供給結果(電力供給開始OKの旨)を返す(ステップS109,S110)。
これにより、アプリケーション(1)AP1では、デバイス(A)DVa,(B)DVb,(C)DVcを利用し、要求処理が実行される(ステップS111)。
その結果、電源管理システム10は、処理要求受付部11が、アプリケーション(1)AP1からの要求処理終了通知を受け付ける(ステップS112)。このとき、処理要求受付部11は、アプリケーション(1)AP1からアプリ識別情報を受け取る。
電源管理システム10は、処理要求受付部11が供給判定部12に対し、要求処理の実行に伴う利用デバイスDVへの電力供給の停止判定を要求する(ステップS113)。このとき、供給判定部12は、処理要求受付部11からアプリ識別情報を受け取る。
電源管理システム10は、供給判定部12が、停止判定要求に応じて供給判定を行う(ステップS114)。このとき、供給判定部12は、アプリ識別情報に基づき、機能提供を行ったアプリケーション(1)AP1を特定する。供給判定部12は、制御情報に基づき、特定したアプリケーション(1)AP1が利用したデバイス(A)DVa,(B)DVb,(C)DVcを特定する。供給判定部12は、特定したデバイス(A)DVa,(B)DVb,(C)DVcに対して、電力供給を停止するか否かを判定する。なお、電力供給の停止判定処理については、図7を用いて後述する。
電源管理システム10は、供給判定部12が利用デバイスDVに対して、電力供給を停止すると判定した場合、供給制御部13に対し、デバイス(A)DVa,(B)DVb,(C)DVcに対する電力供給の停止を要求する(ステップS115)。このとき、供給制御部13は、供給判定部12からデバイス(A)DVa,(B)DVb,(C)DVcのデバイス識別情報を受け取る。
電源管理システム10は、供給制御部13が、供給停止要求に従って電力供給を停止する(ステップS116)。このとき、供給制御部13は、デバイス識別情報に基づき、供給停止と判定されたデバイス(A)DVa,(B)DVb,(C)DVcを特定する。供給制御部13は、特定したデバイス(A)DVa,(B)DVb,(C)DVcに対して、電力供給を停止する。
電源管理システム10は、正常に電力供給が停止されると、供給制御部13が供給判定部12に対し、電力供給の停止結果(正常に停止された旨)を返す(ステップS117)。
これを受けて電源管理システム10は、供給判定部12が情報管理部31に対し、制御情報に含まれるデバイス状態情報20D2の利用状態情報の更新を要求する(ステップS118)。このとき、情報管理部31は、供給判定部12からデバイス(A)DVa,(B)DVb,(C)DVcのデバイス識別情報及び最新の利用状態情報を受け取る。
電源管理システム10は、情報管理部31が、制御情報保持部20にアクセスし、デバイス状態情報20D2の利用状態情報を更新する(ステップS119)。このとき、情報管理部31は、デバイス識別情報に基づき、電力供給が停止されたデバイス(A)DVa,(B)DVb,(C)DVcに対応する利用状態情報を参照する。情報管理部31は、参照した利用状態情報に最新の利用状態情報"利用停止中"を設定し、利用状態値(設定値)を更新する。
《電力供給判定の処理》
図7は、本実施形態に係る電力供給判定の処理手順例を示すフローチャートである。図7に示す例は、供給判定部12により、上記ステップS103,S114で実行される処理手順例である。
図7に示すように、供給判定部12は、処理要求受付部11から受け取ったアプリ識別情報に基づき、特定アプリケーションAPからの処理要求を受け付けたかを判定する(ステップS201)。このとき、供給判定部12は、情報管理部31を介して、制御情報保持部20にアクセスする。供給判定部12は、アプリ識別情報に基づき、制御情報保持部20で保持するデバイス対応情報20D1を参照する。供給判定部12は、参照したデバイス対応情報20D1にアプリ識別情報が登録されているか否かを判定する。このようにして、供給判定部12は、デバイスDVを利用した機能提供が許可されたアプリか否かのアプリ認証を行う。
供給判定部12は、アプリ識別情報が登録されていない場合(ステップ201:NO)、所定のエラー処理を行う(ステップS209)。このとき行うエラー処理は、機能提供が許可されていない旨をアプリケーションAPに通知するなどである。
一方、供給判定部12は、アプリ識別情報が登録されている場合(ステップS201:YES)、アプリ識別情報に基づき、制御情報保持部20で保持するデバイス対応情報20D1を参照する(ステップS202)。
供給判定部12は、アプリ識別情報に対応付けられたデバイス識別情報に基づき、処理要求を受け付けたアプリケーションAPの利用デバイスDVを特定する(ステップS203)。
供給判定部12は、特定した利用デバイスDVのデバイス識別情報に基づき、制御情報保持部20で保持するデバイス状態情報20D2を参照する(ステップS204)。
供給判定部12は、参照したデバイス状態情報20D2に、特定した利用デバイスDVのデバイス識別情報が登録されているか否かを判定する(ステップS205)。
供給判定部12は、デバイス識別情報が登録されていない場合(ステップ205:NO)、所定のエラー処理を行う(ステップS209)。このとき行うエラー処理は、処理要求に対して、デバイス利用が許可されていない旨をアプリケーションAPに通知するなどである。
一方、供給判定部12は、デバイス識別情報が登録されている場合(ステップ205:YES)、デバイス識別情報に対応付けられた利用状態情報に基づき、利用デバイスDVの中から、利用状態に応じて電源管理対象とするデバイスDVを特定する(ステップS206)。このとき、供給判定部12は、処理要求受付部11から電力供給の開始判定要求を受け付けた場合、利用デバイスDVの中から、利用状態値が"利用停止中"のデバイスDVを電源管理対象として特定する。一方、供給判定部12は、処理要求受付部11から電力供給の停止判定要求を受け付けた場合、利用デバイスDVの中から、利用状態値が"利用中"のデバイスDVを電源管理対象として特定する。
供給判定部12は、電源管理対象とするデバイスDVが特定されたか否かを判定する(ステップS207)。
供給判定部12は、電源管理対象とするデバイスDVが特定された場合(ステップS207:YES)、供給制御部13に対し、電源管理対象とするデバイスDVに対する電力供給の開始又は停止を要求する(ステップS208)。
このように、供給判定部12は、処理要求受付部11から電力供給の開始判定要求を受け付けた場合、アプリケーションAPに対応して、デバイス状態情報20D2に登録されている利用デバイスDVのうち、利用状態値が"利用停止中"のデバイスDVに対して、電力供給を開始すると判定する。一方、処理要求受付部11から電力供給の停止判定要求を受け付けた場合には、アプリケーションAPに対応して、デバイス状態情報20D2に登録されている利用デバイスDVのうち、利用状態値が"利用中"のデバイスDVに対して、電力供給を停止すると判定する。
これにより、本実施形態では、要求処理を行うアプリケーションAPの利用デバイスDVに対して、電力供給を開始/停止するか否かが判定される。
<まとめ>
以上のように、本実施形態に係る情報処理装置100によれば、供給判定部12により、利用者に機能提供を行うアプリケーションAPと機能提供時の利用デバイスDVとが対応付けられた制御情報(デバイス対応情報及びデバイス状態情報)に基づき、利用者からの要求処理を行うアプリケーションAPの利用デバイスDVに対して、電力供給を開始又は停止するか否かを判定する。情報処理装置100は、供給制御部13により、供給判定部12の判定結果に基づき、利用デバイスDVに対する電力供給の開始・停止を制御する。
これによって、本実施形態に係る情報処理装置100では、利用者の処理要求を実行する上で不要なデバイスDVに電力を供給しない環境が提供でき、効率的な省電力化が実現できる。
[第2の実施形態]
本実施形態では、アプリケーション(要求処理)によるデバイスの利用許可判定と連携し、該デバイスに対する電力供給を制御する技術を提案する。
なお、以降では、上記実施形態と異なる事項について説明し、同じ事項については、同一参照符号を付し、その説明を省略する。
<電源管理機能>
図8は、本実施形態に係る電源管理の機能構例を示す図である。
図8に示すように、本実施形態に係る電源管理機能では、供給判定部12が、アプリケーションAPによるデバイスDVの利用を許可するか否かを判定する利用許可判定部120を有している。なお、本実施形態では、利用許可判定部120が、利用許可判定を行う複数の機能部を有している。具体的には、排他制御による利用許可判定を行う排他制御判定部121、利用権限による利用許可判定を行う利用権限判定部122、利用開始時間による利用許可判定を行う利用開始時間判定部123、及び累積利用時間による利用許可判定を行う累積利用時間判定部124などを有している。
排他制御判定部121は、複数のアプリケーションAPのデバイス利用に対する排他制御により同一デバイスDVが利用可能か否かを判定する機能部である。排他制御判定部121は、利用可否の判定結果に基づき、利用許可判定を行う。このとき、排他制御判定部121は、機能提供を行うアプリケーションAPの全ての利用デバイスDVに対して、利用可能と判定された場合、デバイス利用を許可すると判定する。
利用権限判定部122は、アプリケーションAPに対して、処理要求を行った利用者が処理要求を行う権限を有しているか否かを判定する機能部である。利用権限判定部122は、利用者の利用者情報に含まれる権限情報に基づき、権限設定の有無判定を行う。
なお、ここでいう「利用者」とは、情報処理装置100において、利用者認証に成功し、ログインした利用者(以下「ログイン利用者」という)にあたり、権限情報は、利用者認証時の照合情報にあたる利用者情報に含まれる。また、照合情報は、機器による内部認証の場合、情報処理装置100が備える記憶装置の所定の記憶領域に保持される。一方、照合情報は、機器からの外部認証の場合、情報処理装置100と所定のデータ伝送路で接続される認証サーバ(非図示)が備える記憶装置の所定の記憶領域に保持される。
よって、利用権限判定部122は、機器による内部認証の場合、情報処理装置100で保持するログイン利用者の権限情報に基づき、権限設定の有無判定を行う。一方、利用権限判定部122は、機器からの外部認証の場合、認証サーバ(非図示)から取得したログイン利用者の権限情報に基づき、権限設定の有無判定を行う。利用権限判定部122は、権限設定有無の判定結果に基づき、利用許可判定を行う。このとき、利用権限判定部122は、要求権限が設定されており、ログイン利用者が処理要求を行う権限を有していると判定された場合、デバイス利用を許可すると判定する。
利用開始時間判定部123は、アプリケーションAPによるデバイス利用開始時間(現在時間)が所定時間内か否かを判定する機能部である。利用開始時間判定部123は、利用時間の判定結果に基づき、利用許可判定を行う。このとき、利用開始時間判定部123は、デバイス利用開始時間が所定時間内と判定された場合、デバイス利用を許可すると判定する。
累積利用時間判定部124は、アプリケーションAPからの利用実績に応じたデバイス累積利用時間が所定時間内か否かを判定する機能部である。累積利用時間判定部124は、累積利用時間の判定結果に基づき、利用許可判定を行う。このとき、累積利用時間判定部124は、累積利用時間が所定時間内と判定された場合、デバイス利用を許可すると判定する。
以降には、上記機能部が利用許可判定時に用いる各情報と、該情報を用いた利用許可判定について説明する。
(1):デバイス対応・状態情報と該情報を用いた利用許可判定
図9は、本実施形態に係るデバイス対応情報20D1のデータ例を示す図である。
図9に示すデバイス対応情報20D1には、アプリケーション単位で、利用デバイスDVの[排他制御]項目RDの値が設定されている。[排他制御]項目RDは、排他制御時に用いる情報(以下「排他制御情報」という)が設定される項目である。項目値には、例えば、利用デバイスDVに対して、排他制御を行うか否かを示す排他制御値(真偽値又は数値)などがある。
[排他制御]項目RDの値は、例えば、管理者が、搭載アプリケーションAPと利用デバイスDVとに基づき、予め設定しておく。よって、情報管理部31は、管理者に対し、[アプリ識別]項目、[利用デバイス]項目、及び[排他制御]項目RDの値を設定可能な設定機能を提供し、設定機能を介して入力値を受け付けると、制御情報保持部20にアクセスし、入力値をデバイス対応情報20D1の項目値として設定する。
なお、[排他制御]項目RDの値が真偽値の場合には、次のような意味をもつ。例えば、図9に示すデバイス対応情報20D1には、アプリID値'AP0003'に対応するアプリケーションAPの利用デバイス「ディスプレイ」に対して、排他制御値'fales'が設定されている。この値は、利用デバイス「ディスプレイ」に対して、排他制御を行わないことを意味している。一方、利用デバイス「カードリーダ」に対して、排他制御値'true'が設定されている。この値は、利用デバイス「カードリーダ」に対して、排他制御を行うことを意味している。
なお、[排他制御]項目RDの値が数値の場合には、次のような意味をもつ。例えば、図9に示すデバイス対応情報20D1には、アプリID値'AP0001'に対応するアプリケーションAPの利用デバイス「ディスプレイ」に対して、排他制御値'2'が設定されている。この値は、利用デバイス「ディスプレイ」に対して、排他制御を行うことを意味し、さらに、最大2つのアプリケーションAPから利用可能であることを意味している。このように、本実施形態では、排他制御値に、アプリケーションAPによる利用デバイスDVの最大利用可能数が2以上の数値で設定できる。
図10は、本実施形態に係るデバイス状態情報20D2のデータ例を示す図である。
図10に示すデバイス状態情報20D2には、デバイスDVの利用状態情報に0以上の数値が設定されている。利用状態値が数値の場合には、次のような意味をもつ。例えば、図10に示すデバイス状態情報20D2には、デバイス「キーボード」に対して、利用状態値'0'が設定されている。この値は、デバイス「キーボード」がアプリケーションAPから利用されていないことを意味する。また、デバイス「ディスプレイ」に対して、利用状態値'1'が設定されている。この値は、デバイス「ディスプレイ」が1つのアプリケーションAPから利用されていることを意味する。また、デバイス「HDD」に対して、利用状態値'2'が設定されている。この値は、デバイス「HDD」が2つのアプリケーションAPから利用されていることを意味する。このように、本実施形態では、利用状態値に、デバイスDVがアプリケーションAPから利用されているか否か、また、利用されている場合、デバイスDVの現在の利用数が設定できる。
(1−1):排他制御による利用許可判定
排他制御判定部121は、上記デバイス対応情報20D1の排他制御情報及び/又は上記デバイス状態情報20D2の利用制御情報に基づき、次のような利用許可判定を行う。
排他制御判定部121は、デバイス対応情報20D1を参照し、供給判定部12で特定された利用デバイスDVのデバイス識別情報に対応付けられた排他制御情報に基づき、利用デバイスDVに対して、排他制御を行うか否かを判定する。
(1−1−1):排他制御値が真偽値の場合の判定
排他制御判定部121は、全ての利用デバイスDVの排他制御値が'fales'の場合、排他制御を行わないと判定し、判定結果に基づき、デバイス利用を許可すると判定する。一方、排他制御判定部121は、利用デバイスDVの排他制御値が1つでも'true'の場合、排他制御を行うと判定し、該当する利用デバイスDVの利用状態を確認する。
排他制御判定部121は、排他制御値が'true'の利用デバイスDVのデバイス識別情報に基づき、デバイス状態情報20D2を参照する。排他制御判定部121は、デバイス識別情報に対応付けられた利用状態情報に基づき、該当する全ての利用デバイスDVが利用可能か否かを判定する。排他制御判定部121は、該当する全ての利用デバイスDVの利用状態値が'0'(利用状態が"利用停止中")の場合、デバイス利用可能であると判定し、判定結果に基づき、デバイス利用を許可すると判定する。一方、排他制御判定部121は、該当する利用デバイスDVの利用状態値が1つでも1以上の数値(利用状態が"利用中")の場合、デバイス利用不可能と判定し、判定結果に基づき、デバイス利用を許可しないと判定する。
(1−1−2):排他制御値が数値の場合の判定
排他制御判定部121は、利用デバイスDVの排他制御値が1つでも1以上の数値設定の場合、排他制御を行うと判定し、該当する利用デバイスDVの利用状態を確認する。
排他制御判定部121は、数値が設定された排他制御値の利用デバイスDVのデバイス識別情報に基づき、デバイス状態情報20D2を参照する。排他制御判定部121は、デバイス識別情報に対応付けられた利用状態情報に基づき、該当する全ての利用デバイスDVが利用可能か否かを判定する。排他制御判定部121は、該当する全ての利用デバイスDVの利用状態値と対応する排他制御値とを比較し、全ての比較結果が「利用状態値が排他制御値より小さい値」の場合、デバイス利用可能であると判定し、判定結果に基づき、デバイス利用を許可すると判定する。一方、排他制御判定部121は、比較結果が1つでも「利用状態値が排他制御値以上の値」の場合、デバイス利用不可能と判定し、判定結果に基づき、デバイス利用を許可しないと判定する。
(2):利用時間情報と該情報を用いた利用許可判定
図11は、本実施形態に係る利用時間情報20D3のデータ例を示す図である。
本実施形態では、制御情報に、図11に示すような利用時間情報20D3が含まれる。利用時間情報20D3は、[搭載デバイス]及び[利用許可時間]などの情報項目が、デバイス単位で対応付けられている。この情報により、デバイスDVごとに利用許可時間の範囲が管理される。
[搭載デバイス]項目は、搭載デバイスDVのデバイス識別情報が設定される項目である。また、[利用許可時間]項目は、デバイスDVに対して、利用が許可された時間の範囲(利用期間)を示す情報(以下「利用許可時間情報」という)が設定される項目である。項目値には、例えば、デバイスDVの利用期間を示す利用許可開始時間と利用許可終了時間との組み合わせ値(S[hh:mm]−E[hh:mm])などがある。
これらの項目値は、例えば、管理者が、電源管理対象とするデバイスDVに基づき、予め設定しておく。よって、情報管理部31は、管理者に対し、これらの項目値を設定可能な設定機能を提供し、設定機能を介して入力値を受け付けると、制御情報保持部20にアクセスし、入力値を利用時間情報20D3の項目値として設定する。これにより、デバイス単位で利用時間情報20D3が登録される。
(2−1):利用開始時間による利用許可判定
利用開始時間判定部123は、上記利用時間情報20D3の利用許可時間情報に基づき、次のような利用許可判定を行う。
利用開始時間判定部123は、利用時間情報20D3を参照し、供給判定部12で特定された利用デバイスDVのデバイス識別情報に対応付けられた利用許可時間情報に基づき、全ての利用デバイスDVにおいて、アプリケーションAPからのデバイス利用開始時間が利用許可時間内か否かを判定する。
利用開始時間判定部123は、アプリケーションAPからの処理要求受付時の現在時間をデバイス利用開始時間として取得する。なお、時間取得は、例えば、情報処理装置100が備える時計回路(非図示)などから取得すればよい。利用開始時間判定部123は、取得した現在時間が、全ての利用デバイスDVの利用許可時間情報に設定された利用許可開始時間から利用許可終了時間の範囲内か否かを判定する。利用開始時間判定部123は、全ての判定結果が利用許可時間の範囲内であった場合、利用許可時間内のデバイス利用であると判定し、判定結果に基づき、デバイス利用を許可する判定する。一方、利用開始時間判定部123は、判定結果が1つでも利用許可時間の範囲内でなかった場合、利用許可時間外のデバイス利用であると判定し、判定結果に基づき、デバイス利用を許可しないと判定する。
(3):累積利用時間情報と該情報を用いた利用許可判定
図12は、本実施形態に係る累積利用時間情報20D4のデータ例を示す図である。
本実施形態では、制御情報に、図12に示すような累積利用時間情報20D4が含まれる。累積利用時間情報20D4は、[搭載デバイス]、[累積利用許可時間]、及び[累積利用時間]などの情報項目が、デバイス単位で対応付けられている。この情報により、デバイスDVごとに現在の累積利用時間と累積利用許可時間とが管理される。
[搭載デバイス]項目は、搭載デバイスDVのデバイス識別情報が設定される項目である。[累積利用許可時間]項目は、デバイスDVに対して、利用が許可された累積利用時間を示す情報(以下「累積利用許可時間情報」という)が設定される項目である。項目値には、例えば、デバイスDVの累積利用許可時間を示す値([hh:mm])などがある。[累積利用時間]項目は、デバイスDVの利用時間が累積された累積利用時間を示す情報(以下「累積利用時間情報」という)が記録される項目である。
[搭載デバイス]項目及び[累積利用許可時間]項目の値は、例えば、管理者が、電源管理対象とするデバイスDVに基づき、予め設定しておく。よって、情報管理部31は、管理者に対し、なお、この項目値の設定方法は、利用時間情報20D3と同様である。また、[累積利用時間]項目の値は、[搭載デバイス]項目及び[累積利用許可時間]項目の設定と連動して、予め決めておいた累積利用時間の初期値(デフォルト値)が設定される。これにより、デバイス単位で累積利用時間情報20D4が登録される。
以後、累積利用時間情報20D4は、アプリケーションAPからのデバイス利用に応じて、次のように更新される。情報管理部31は、制御情報保持部20にアクセスし、累積利用時間情報20D4の累積利用時間情報に、現在の設定値(記録値)に利用デバイスDVの利用時間値を加算した値(累積値)を設定する。これにより、デバイス単位で累積利用時間情報20D4が更新される。
(3−1):累積利用時間による利用許可判定
累積利用時間判定部124は、上記累積利用時間情報20D4の累積利用許可時間情報及び累積利用時間情報に基づき、次のような利用許可判定を行う。
累積利用時間判定部124は、累積利用時間情報20D4を参照し、供給判定部12で特定された利用デバイスDVのデバイス識別情報に対応付けられた累積利用許可時間情報及び累積利用時間情報に基づき、全ての利用デバイスDVにおいて、アプリケーションAPによるデバイス累積利用時間が累積利用許可時間内か否かを判定する。
累積利用時間判定部124は、各利用デバイスDVの累積利用時間情報に記録された累積利用時間が、同利用デバイスDの累積利用許可時間情報に設定された累積利用許可時間の範囲内か否かを判定する。累積利用時間判定部124は、全ての判定結果が累積利用許可時間の範囲内であった場合、デバイス利用可能であると判定し、判定結果に基づき、デバイス利用を許可する判定する。一方、累積利用時間判定部124は、判定結果が1つでも累積利用許可時間の範囲内でなかった場合(累積許可時間を超過している場合)、デバイス利用不可能であると判定し、判定結果に基づき、デバイス利用を許可しないと判定する。
図8の説明に戻る。供給判定部12は、上記機能部による利用許可の判定結果に基づき、利用デバイスDVに対する電力供給の開始を制御する。つまり、供給判定部12は、上記機能部により、アプリケーションAPに対して、デバイス利用を許可すると判定された場合に、利用デバイスDVに対して、電力供給を開始すると判定し、供給制御部13に対し、電力供給の開始を要求する。
なお、本実施形態では、利用デバイスDVに対する電力供給の停止制御を、次のように行う。供給判定部12は、デバイス状態情報20D2を参照し、利用状態情報に基づき、利用デバイスDVの利用状態値が'1'であった場合、利用デバイスDVに対して、電力供給を停止すると判定し、供給制御部13に対し、電力供給の停止を要求する。
上述したように、利用状態値'1'は、1つのアプリケーションAPがデバイスDVを利用していることを意味しており、該アプリケーションAPは、要求処理を終了したアプリケーションAPにあたる。よって、利用デバイスDVに対して、電力供給を停止してもよい。一方、利用状態値が2以上の場合には、2つ以上のアプリケーションAPがデバイスDVを利用していることを意味しており、要求処理を終了したアプリケーションAP以外のアプリケーションAPが利用中であることになる。よって、利用デバイスDVに対して、電力供給を継続しておく必要がある。
以上のように、本実施形態に係る電源管理機能は、上記各機能部が連携動作することにより実現される。
本実施形態に係る電源管理機能の詳細な動作(機能部群の連携動作)について、処理手順を示すフローチャート及びシーケンス図を用いて説明する。
《電力供給判定の処理》
図13は、本実施形態に係る電力供給判定の処理手順例を示すフローチャートである。図13には、供給判定部12により、アプリケーションAPによるデバイスDVの利用許可判定と連携し、該デバイスDVに対する電力供給の開始制御を行う際に実行される処理手順例が示されている。また、図13に示す処理は、上記各機能部による利用許可判定において利用が許可された場合に電力供給を開始する処理手順例である。なお、以下の説明では、図7と同じ処理について、その説明を簡略化する。
図13に示すように、供給判定部12は、処理要求受付部11から受け取ったアプリ識別情報に基づき、特定アプリケーションAPからの処理要求を受け付けたかを判定する(ステップS301:アプリ認証)。
供給判定部12は、アプリ識別情報が登録されていない場合(ステップ301:NO)、所定のエラー処理を行う(ステップS316)。このとき行うエラー処理は、機能提供が許可されていない旨をアプリケーションAPに通知するなどである。
一方、供給判定部12は、アプリ識別情報が登録されている場合(ステップS301:YES)、アプリ識別情報に基づき、制御情報保持部20で保持するデバイス対応情報20D1を参照する(ステップS302)。
供給判定部12は、アプリ識別情報に対応付けられたデバイス識別情報に基づき、処理要求を受け付けたアプリケーションAPの利用デバイスDVを特定する(ステップS303)。
供給判定部12は、特定した利用デバイスDVのデバイス識別情報に基づき、制御情報保持部20で保持するデバイス状態情報20D2を参照する(ステップS304)。
供給判定部12は、参照したデバイス状態情報20D2に特定した利用デバイスDVのデバイス識別情報が登録されているか否かを判定する(ステップS305)。
供給判定部12は、デバイス識別情報が登録されていない場合(ステップ305:NO)、所定のエラー処理を行う(ステップS316)。このとき行うエラー処理は、処理要求に対して、デバイス利用が許可されていない旨をアプリケーションAPに通知するなどである。
一方、供給判定部12は、デバイス識別情報が登録されている場合(ステップ305:YES)、排他制御判定部121による利用許可判定処理(ステップS306,S307:第1の利用許可判定段階)を行う。
排他制御判定部121は、制御情報保持部20で保持するデバイス対応情報20D1の排他制御情報に基づき、利用デバイスDVに対して、排他制御を行うか否かを判定する(ステップS306)。このとき、排他制御判定部121は、デバイス対応情報20D1を参照し、登録されていると判定されたデバイス識別情報に対応付けられた排他制御情報に基づき、上記判定を行う。
排他制御判定部121は、全ての利用デバイスDVの排他制御値が'fales'又は'0'の数値設定の場合、排他制御を行わないと判定し(ステップS306:NO)、利用権限判定部122による利用許可判定処理(ステップS308:第2の利用許可判定段階)に移行する。
一方、排他制御判定部121は、利用デバイスDVの排他制御値が1つでも'true'又は1以上の数値設定の場合、排他制御を行うと判定し(ステップS306:YES)、排他制御による該当利用デバイスDVの利用可否判定処理(ステップS307)を行う。
排他制御判定部121は、制御情報保持部20で保持するデバイス状態情報20D2の利用状態情報に基づき、該当利用デバイスDVが利用可能か否かを判定する(ステップS307)。このとき、排他制御判定部121は、デバイス状態情報20D2を参照し、該当利用デバイスDVのデバイス識別情報に対応付けられた利用状態情報に基づき、上記判定を行う。また、排他制御判定部121は、排他制御値が数値設定の場合、該当する全ての利用デバイスDVの利用状態値と対応する排他制御値とを比較し、全ての比較結果に基づき、デバイス利用の可否を判定する。
排他制御判定部121は、該当利用デバイスDVの利用状態値が1つでも1以上の数値(利用状態が"利用中")の場合、又は、比較結果が1つでも「利用状態値が排他制御値以上の値」の場合、デバイス利用不可能であると判定し(ステップS307:NO)、デバイス利用を許可しないと判定する。その結果、供給判定部12は、利用許可の判定結果に基づき、デバイス利用不許可の旨をアプリケーションAPに通知するエラー処理を行う(ステップS316)。
一方、排他制御判定部121は、全ての該当利用デバイスDVの利用状態値が'0'(利用状態が"利用停止中")の場合、又は、全ての比較結果が「利用状態値が排他制御値より小さい値」の場合、デバイス利用可能であると判定し(ステップS307:YES)、利用権限判定部122による利用許可判定処理(ステップS308:第2の利用許可判定段階)に移行する。
利用権限判定部122は、処理要求を行ったログイン利用者の利用者情報に含まれる権限情報に基づき、該利用者が処理要求を行う権限を有しているか否かを判定する(ステップS308)。このとき、利用権限判定部122は、内部認証時に用いた情報処理装置100で保持する利用者情報、又は、外部認証時に用いた認証サーバ(非図示)で保持する利用者情報を参照する。
利用権限判定部122は、ログイン利用者が処理要求を行う権限を有していない場合(ステップS308:NO)、デバイス利用を許可しないと判定する。その結果、供給判定部12は、利用許可の判定結果に基づき、デバイス利用不許可の旨をアプリケーションAPに通知するエラー処理を行う(ステップS316)。
一方、利用権限判定部122は、ログイン利用者が処理要求を行う権限を有している場合(ステップS308:YES)、利用開始時間判定部123による利用許可判定処理(ステップS309,S310:第3の利用許可判定段階)に移行する。
利用開始時間判定部123は、利用デバイスDVのデバイス識別情報に基づき、制御情報保持部20で保持する利用時間情報20D3を参照する(ステップS309)。
利用開始時間判定部123は、利用デバイスDVのデバイス識別情報に対応付けられた利用許可時間情報に基づき、全ての利用デバイスDVにおいて、デバイス利用開始時間が利用許可時間内か否かを判定する。(ステップS310)。このとき、利用開始時間判定部123は、処理要求受付時の時間であるデバイス利用開始時間が、全ての利用デバイスDVの利用許可時間情報に設定された利用許可開始時間から利用許可終了時間の範囲内か否かを判定する。
利用開始時間判定部123は、判定結果が1つでも利用許可時間の範囲内でなかった場合(ステップS310:NO)、デバイス利用を許可しないと判定する。その結果、供給判定部12は、利用許可の判定結果に基づき、デバイス利用不許可の旨をアプリケーションAPに通知するエラー処理を行う(ステップS316)。
一方、利用開始時間判定部123は、全ての判定結果が利用許可時間の範囲内であった場合(ステップS310:YES)、累積利用時間判定部124による利用許可判定処理(ステップS311,S312:第4の利用許可判定段階)に移行する。
累積利用時間判定部124は、利用デバイスDVのデバイス識別情報に基づき、制御情報保持部20で保持する累積利用時間情報20D4を参照する(ステップS311)。
累積利用時間判定部124は、利用デバイスDVのデバイス識別情報に対応付けられた累積利用許可時間情報及び累積利用時間情報に基づき、全ての利用デバイスDVにおいて、累積利用時間が累積利用許可時間内か否かを判定する。(ステップS312)。このとき、累積利用時間判定部124は、各利用デバイスDVの累積利用時間情報に記録された累積利用時間が、同利用デバイスDの累積利用許可時間情報に設定された累積利用許可時間の範囲内か否かを判定する。
累積利用時間判定部124は、判定結果が1つでも累積利用許可時間の範囲内でなかった場合(ステップS312:NO)、デバイス利用を許可しないと判定する。その結果、供給判定部12は、利用許可の判定結果に基づき、デバイス利用不許可の旨をアプリケーションAPに通知するエラー処理を行う(ステップS316)。
一方、累積利用時間判定部124は、全ての判定結果が累積利用許可時間の範囲内であった場合(ステップS312:YES)、デバイス利用を許可すると判定する。
その結果、供給判定部12は、デバイス識別情報に対応付けられた利用状態情報に基づき、利用デバイスDVの中から、利用状態に応じて電源管理対象とするデバイスDVを特定する(ステップS313)。このとき、供給判定部12は、処理要求受付部11から電力供給の開始判定要求を受け付けた場合、利用デバイスDVの中から、利用状態値が'0'(利用状態が"利用停止中")のデバイスDVを電源管理対象として特定する。
供給判定部12は、電源管理対象とするデバイスDVが特定されたか否かを判定する(ステップS314)。
供給判定部12は、電源管理対象とするデバイスDVが特定された場合(ステップS314:YES)、供給制御部13に対し、電源管理対象とするデバイスDVに対する電力供給の開始を要求する(ステップS315)。
このように、供給判定部12は、処理要求受付部11から電力供給の開始判定要求を受け付けた場合、アプリケーションAPに対応して、デバイス状態情報20D2に登録されている利用デバイスDVのうち、利用状態値が"利用停止中"のデバイスDVに対して、電力供給を開始すると判定する。
これにより、本実施形態では、要求処理を行うアプリケーションAPからのデバイス利用が許可された場合に、利用デバイスDVに対して、電力供給を開始するか否かが判定される。
なお、上記処理手順では、利用許可判定部120の処理が、第1の利用許可判定段階から第4の利用許可判定段階の順に実行される例について説明を行ったが、本発明は、この実行順に限定されるものではない。また、上記処理手順では、排他制御により利用許可判定(第1)、利用権限による利用許可判定(第2)、利用開始時間による利用許可判定(第3)、及び累積利用時間による利用許可判定(第4)の4つの利用許可判定処理の組み合わせについて説明を行ったが、この限りでない。少なくとも1つ利用許可判定と連携させて電力供給を制御するようにしてもよい。つまり、利用許可判定部120は、排他制御判定部121、利用権限判定部122、利用開始時間判定部123、及び累積利用時間判定部124のうち、少なくもと1つの機能部を有していればよい。
ここからは、排他制御による利用許可判定と連携した電力供給の制御例(動作とデータ遷移)について、具体的な場面を想定し、説明する。
《排他制御による利用許可判定と連携した電源管理の処理:その1》
図14は、本実施形態に係るデバイス対応情報20D1のデータ例を示す図である。
図14に示すデバイス対応情報20D1には、アプリID値'AP0001'及び'AP002'それぞれに対応する2つのアプリケーションAPの利用デバイス「デバイスA」に対して、排他制御を行うことが設定されており、さらに、利用デバイス「デバイスA」に対して、最大利用可能数'2'が設定されている。
一方、デバイス対応情報20D1には、アプリID値'AP0001'又は'AP002'いずれかに対応するアプリケーションAPの「デバイスB」又は「デバイスC」に対して、排他制御を行わないことが設定されている。
つまり、アプリID値'AP0001'のアプリケーションAPは、機能提供時に「デバイスA」及び「デバイスB」を利用し、アプリID値'AP0002'のアプリケーションAPは、機能提供時に「デバイスA」及び「デバイスC」を利用する。その中で、最大2つのアプリケーションAPからの利用が可能な「デバイスA」は排他制御される。一方、「デバイスB」及び「デバイスC」は排他制御されない。
図15は、本実施形態に係る電源管理の処理手順例(排他制御例1)を示すシーケンス図である。図15の例は、図14に示すデバイス対応情報20D1に基づき、電源管理が行われた場合の処理手順例である。また、本例は、アプリID値'AP0001'のアプリケーション(1)AP1とアプリID値'AP0002'のアプリケーション(2)AP2とが、機能提供時に3つのデバイス(A)DVa,(B)DVb,(C)DVcを利用する場合の排他制御による電源管理を想定したものである。
一方、図16は、本実施形態に係るデバイス状態情報20D2のデータ遷移例を示す図である。図16には、図15に示す処理によるデバイス状態情報20D2のデータ遷移例が示されている。
以下に、図15の処理手順について説明するが、図6と同じ処理については、その説明を簡略化する。
図15に示すように、電源管理システム10では、アプリケーション(1)AP1が、既にデバイス(A)DVa,(B)DVbを利用し、要求処理が実行されている(ステップS401)。図16(A)に示すデバイス状態情報20D2には、デバイス(A)DVa,(B)DVbの利用状態が反映されている例(利用状態更新後のデータ例)が示されている。
このとき、電源管理システム10は、処理要求受付部11が、アプリケーション(2)AP2からの処理要求通知を受け付けると(ステップS501)、供給判定部12に対し、要求処理の実行に伴う利用デバイスDVへの電力供給の開始判定を要求する(ステップS502)。
電源管理システム10は、供給判定部12が、開始判定要求に応じて、排他制御による利用許可判定と連携した供給判定を行う(ステップS503)。このとき、供給判定部12は、アプリ識別情報に基づき、機能提供を行うアプリケーション(2)AP2を特定する。供給判定部12は、制御情報に基づき、特定したアプリケーション(2)AP2が利用するデバイス(A)DVa,(C)DVcを特定する。供給判定部12は、特定したデバイス(A)DVa,(C)DVcに対して、電力供給を開始するか否かを、アプリケーション(1)AP1との排他制御による利用許可の判定結果(排他制御判定部による判定結果)に基づき、判定する。
排他制御判定部121は、制御情報に含まれるデバイス対応情報20D1を参照し、デバイス(A)DVaの排他制御値'2'に基づき、デバイス(A)DVaに対して、排他制御を行うと判定する。一方、排他制御判定部121は、デバイス(C)DVcの排他制御値'fales'に基づき、デバイス(C)DVcに対して、排他制御を行わないと判定する。排他制御判定部121は、制御情報に含まれるデバイス状態情報20D2を参照し、デバイス(A)DVaの利用状態値'1'と排他制御値'2'との比較し、利用状態値が排他制御値より小さいことから、アプリケーション(2)AP2に対して、デバイス(A)DVaの利用を許可すると判定する。これにより、排他制御判定部121では、デバイス(A)DVa,(C)DVcの利用が許可される。
その結果、供給判定部12は、デバイス(A)DVa,(C)DVcのうち、電力供給が開始されていないデバイス(C)DVcに対して、電力供給を開始すると判定する。
電源管理システム10は、供給判定部12が供給制御部13に対し、デバイス(C)DVcに対する電力供給の開始を要求する(ステップS504)。
電源管理システム10は、供給制御部13が、供給開始要求に従って電力供給を開始する(ステップS505)。このとき、供給制御部13は、デバイス識別情報に基づき、供給開始と判定されたデバイス(C)DVcを特定する。供給制御部13は、特定したデバイス(C)DVcに対して、電力供給を開始する。
電源管理システム10は、正常に電力供給が開始されると、供給制御部13が供給判定部12に対し、電力供給の開始結果(正常に開始された旨)を返す(ステップS506)。
これを受けて電源管理システム10は、供給判定部12が情報管理部31に対し、デバイス状態情報20D2の利用状態情報の更新を要求する(ステップS507)。
電源管理システム10は、情報管理部31が、制御情報保持部20にアクセスし、デバイス状態情報20D2の利用状態情報を更新する(ステップS508)。その結果、図16(B)に示すようなデバイス状態情報20D2に更新される。具体的には、デバイス(A)DVaの利用状態値'1'が'2'に更新され、デバイス(C)DVcの利用状態値'0'が'1'に更新される。
その後、電源管理システム10は、供給判定部12が、処理要求部11を介して、アプリケーション(2)AP2に対し、電力供給結果(電力供給開始OKの旨)を返す(ステップS509,S510)。
これにより、アプリケーション(2)AP2では、デバイス(A)DVa,(C)DVcを利用し、要求処理が実行される(ステップS511)。
またこのとき、電源管理システム10は、処理要求受付部11が、アプリケーション(1)AP1からの要求処理終了通知を受け付けると(ステップS402)、処理要求受付部11が供給判定部12に対し、要求処理の実行に伴う利用デバイスDVへの電力供給の停止判定を要求する(ステップS403)。
電源管理システム10は、供給判定部12が、停止判定要求に応じて供給判定を行う(ステップS404)。このとき、供給判定部12は、アプリ識別情報に基づき、アプリケーション(1)AP1を特定する。供給判定部12は、制御情報に基づき、特定したアプリケーション(1)AP1が利用したデバイス(A)DVa,(B)DVbを特定する。供給判定部12は、特定したデバイス(A)DVa,(B)DVbに対して、電力供給を停止するか否かを判定する。
供給判定部12は、制御情報に含まれるデバイス状態情報20D2を参照し、デバイス(A)DVaの利用状態値が'2'であることから(他のアプリケーションAPが利用中のため)、デバイス(A)DVaに対して、電力供給を停止しないと判定する。また、供給判定部12は、デバイス(B)DVbの利用状態値が'1'であることから(他のアプリケーションAPが利用していないため)、デバイス(B)DVbに対して、電力供給を停止すると判定する。
電源管理システム10は、供給判定部12が供給制御部13に対し、デバイス(B)DVbに対する電力供給の停止を要求する(ステップS405)。
電源管理システム10は、供給制御部13が、供給停止要求に従って電力供給を停止する(ステップS406)。このとき、供給制御部13は、デバイス識別情報に基づき、供給停止と判定されたデバイス(B)DVbを特定する。供給制御部13は、特定したデバイス(B)DVbに対して、電力供給を停止する。
電源管理システム10は、正常に電力供給が停止されると、供給制御部13が供給判定部12に対し、電力供給の停止結果(正常に停止された旨)を返す(ステップS407)。
これを受けて電源管理システム10は、供給判定部12が情報管理部31に対し、デバイス状態情報20D2の利用状態情報の更新を要求する(ステップS408)。
電源管理システム10は、情報管理部31が、制御情報保持部20にアクセスし、デバイス状態情報20D2の利用状態情報を更新する(ステップS409)。その結果、図16(C)に示すようなデバイス状態情報20D2に更新される。具体的には、デバイス(A)DVaの利用状態値'2'が'1'に更新され、デバイス(B)DVbの利用状態値'1'が'0'に更新される。
《排他制御と連携した電源管理の処理:その2》
図17は、本実施形態に係るデバイス対応情報20D1のデータ例を示す図である。
図17に示すデバイス対応情報20D1には、アプリID値'AP0001'及び'AP002'それぞれに対応する2つのアプリケーションAPの利用デバイス「デバイスA」に対して、排他制御を行うことが設定されている。
一方、デバイス対応情報20D1には、アプリID値'AP0001'又は'AP002'いずれかに対応するアプリケーションAPの「デバイスB」又は「デバイスC」に対して、排他制御を行わないことが設定されている。
つまり、アプリID値'AP0001'のアプリケーションAPは、機能提供時に「デバイスA」及び「デバイスB」を利用し、アプリID値'AP0002'のアプリケーションAPは、機能提供時に「デバイスA」及び「デバイスC」を利用する。その中で、1つのアプリケーションAPからの利用が可能な「デバイスA」は排他制御される。一方、「デバイスB」及び「デバイスC」は排他制御されない。
図18は、本実施形態に係る電源管理の処理手順例(排他制御例2)を示すシーケンス図である。図18の例は、図17に示すデバイス対応情報20D1に基づき、電源管理が行われた場合の処理手順例である。また、本例は、アプリID値'AP0001'のアプリケーション(1)AP1とアプリID値'AP0002'のアプリケーション(2)AP2とが、機能提供時に3つのデバイス(A)DVa,(B)DVb,(C)DVcを利用する場合の排他制御による電源管理を想定したものである。
一方、図19は、本実施形態に係るデバイス状態情報20D2のデータ遷移例を示す図である。図19には、図18に示す処理によるデバイス状態情報20D2のデータ遷移例が示されている。
以下に、図18の処理手順について説明するが、図16と同じ処理については、その説明を簡略化する。
図18に示すように、電源管理システム10では、アプリケーション(1)AP1が、既にデバイス(A)DVa,(B)DVbを利用し、要求処理が実行されている(ステップS601)。図19(A)に示すデバイス状態情報20D2には、デバイス(A)DVa,(B)DVbの利用状態が反映されている例(利用状態更新後のデータ例)が示されている。
このとき、電源管理システム10は、処理要求受付部11が、アプリケーション(2)AP2からの処理要求通知を受け付けると(ステップS701)、供給判定部12に対し、要求処理の実行に伴う利用デバイスDVへの電力供給の開始判定を要求する(ステップS702)。
電源管理システム10は、供給判定部12が、開始判定要求に応じて、排他制御による利用許可判定と連携した供給判定を行う(ステップS703)。このとき、供給判定部12は、アプリ識別情報に基づき、機能提供を行うアプリケーション(2)AP2を特定する。供給判定部12は、制御情報に基づき、特定したアプリケーション(2)AP2が利用するデバイス(A)DVa,(C)DVcを特定する。供給判定部12は、特定したデバイス(A)DVa,(C)DVcに対して、電力供給を開始するか否かを、アプリケーション(1)AP1との排他制御による利用許可の判定結果(排他制御判定部による判定結果)に基づき、判定する。
排他制御判定部121は、制御情報に含まれるデバイス対応情報20D1を参照し、デバイス(A)DVaの排他制御値'1'に基づき、デバイス(A)DVaに対して、排他制御を行うと判定する。一方、排他制御判定部121は、デバイス(C)DVcの排他制御値'fales'に基づき、デバイス(C)DVcに対して、排他制御を行わないと判定する。排他制御判定部121は、制御情報に含まれるデバイス状態情報20D2を参照し、デバイス(A)DVaの利用状態値'1'と排他制御値'1'との比較し、利用状態値が排他制御値と同じことから、アプリケーション(2)AP2に対して、デバイス(A)DVaの利用を許可しないと判定する。これにより、排他制御判定部121では、利用デバイスDVの中で、利用が許可されない利用デバイスDVが1つでも存在するため、デバイス(A)DVa,(C)DVcの両方の利用を許可しない。
その結果、電源管理システム10は、供給判定部12が、処理要求部11を介して、アプリケーション(2)AP2に対し、利用許可結果(デバイス利用不許可の旨)を返す(ステップS704,S705)。
このとき、電源管理システム10は、処理要求受付部11が、アプリケーション(1)AP1からの要求処理終了通知を受け付けると(ステップS602)、処理要求受付部11が供給判定部12に対し、要求処理の実行に伴う利用デバイスDVへの電力供給の停止判定を要求する(ステップS603)。
電源管理システム10は、供給判定部12が、停止判定要求に応じて供給判定を行う(ステップS604)。このとき、供給判定部12は、アプリ識別情報に基づき、アプリケーション(1)AP1を特定する。供給判定部12は、制御情報に基づき、特定したアプリケーション(1)AP1が利用したデバイス(A)DVa,(B)DVbを特定する。供給判定部12は、特定したデバイス(A)DVa,(B)DVbに対して、電力供給を停止するか否かを判定する。
供給判定部12は、制御情報に含まれるデバイス状態情報20D2を参照し、デバイス(A)DVa,(B)DVbの利用状態値が'1'であることから(他のアプリケーションAPが利用していないため)、デバイス(A)DVa,(B)DVbに対して、電力供給を停止すると判定する。
電源管理システム10は、供給判定部12が供給制御部13に対し、デバイス(A)DVa,(B)DVbに対する電力供給の停止を要求する(ステップS605)。
電源管理システム10は、供給制御部13が、供給停止要求に従って電力供給を停止する(ステップS606)。このとき、供給制御部13は、デバイス識別情報に基づき、供給停止と判定されたデバイス(A)DVa,(B)DVbを特定する。供給制御部13は、特定したデバイス(A)DVa,(B)DVbに対して、電力供給を停止する。
電源管理システム10は、正常に電力供給が停止されると、供給制御部13が供給判定部12に対し、電力供給の停止結果(正常に停止された旨)を返す(ステップS607)。
これを受けて電源管理システム10は、供給判定部12が情報管理部31に対し、デバイス状態情報20D2の利用状態情報の更新を要求する(ステップS608)。
電源管理システム10は、情報管理部31が、制御情報保持部20にアクセスし、デバイス状態情報20D2の利用状態情報を更新する(ステップS609)。その結果、図19(B)に示すようなデバイス状態情報20D2に更新される。具体的には、デバイス(A)DVaの利用状態値'1'が'0'に更新され、デバイス(B)DVbの利用状態値'1'が'0'に更新される。
またこのとき、電源管理システム10は、処理要求受付部11が、アプリケーション(2)AP2からの処理要求通知を受け付けると(ステップS706)、供給判定部12に対し、要求処理の実行に伴う利用デバイスDVへの電力供給の開始判定を要求する(ステップS707)。
電源管理システム10は、供給判定部12が、開始判定要求に応じて、排他制御による利用許可判定と連携した供給判定を行う(ステップS708)。このとき、供給判定部12は、アプリ識別情報に基づき、機能提供を行うアプリケーション(2)AP2を特定する。供給判定部12は、制御情報に基づき、特定したアプリケーション(2)AP2が利用するデバイス(A)DVa,(C)DVcを特定する。供給判定部12は、特定したデバイス(A)DVa,(C)DVcに対して、電力供給を開始するか否かを、アプリケーション(1)AP1との排他制御による利用許可の判定結果(排他制御判定部による判定結果)に基づき、判定する。
排他制御判定部121は、制御情報に含まれるデバイス対応情報20D1の排他制御情報に基づき、デバイス(A)DVaに対して、排他制御を行うと判定し、デバイス(C)DVcに対して、排他制御を行わないと判定する。排他制御判定部121は、制御情報に含まれるデバイス状態情報20D2を参照し、デバイス(A)DVaの利用状態値'0'と排他制御値'1'との比較し、利用状態値が排他制御値より小さいことから、アプリケーション(2)AP2に対して、デバイス(A)DVaの利用を許可すると判定する。これにより、排他制御判定部121では、デバイス(A)DVa,(C)DVcの利用が許可される。
その結果、供給判定部12は、電力供給が停止しているデバイス(A)DVaと電力供給が開始されていないデバイス(C)DVcとに対して、電力供給を開始すると判定する。
電源管理システム10は、供給判定部12が供給制御部13に対し、デバイス(A)DVa,(C)DVcに対する電力供給の開始を要求する(ステップS709)。
電源管理システム10は、供給制御部13が、供給開始要求に従って電力供給を開始する(ステップS710)。このとき、供給制御部13は、デバイス識別情報に基づき、供給開始と判定されたデバイス(A)DVa,(C)DVcを特定する。供給制御部13は、特定したデバイス(A)DVa,(C)DVcに対して、電力供給を開始する。
電源管理システム10は、正常に電力供給が開始されると、供給制御部13が供給判定部12に対し、電力供給の開始結果(正常に開始された旨)を返す(ステップS711)。
これを受けて電源管理システム10は、供給判定部12が情報管理部31に対し、デバイス状態情報20D2の利用状態情報の更新を要求する(ステップS712)。
電源管理システム10は、情報管理部31が、制御情報保持部20にアクセスし、デバイス状態情報20D2の利用状態情報を更新する(ステップS713)。その結果、図19(C)に示すようなデバイス状態情報20D2に更新される。具体的には、デバイス(A)DVaの利用状態値'0'が'1'に更新され、デバイス(C)DVcの利用状態値'0'が'1'に更新される。
その後、電源管理システム10は、供給判定部12が、処理要求部11を介して、アプリケーション(2)AP2に対し、電力供給結果(電力供給開始OKの旨)を返す(ステップS714,S715)。
これにより、アプリケーション(2)AP2では、デバイス(A)DVa,(C)DVcを利用し、要求処理が実行される(ステップS716)。
このように、電源管理システム10では、デバイスDVの排他制御情報に基づき、複数のアプリケーションAPからの同一デバイス利用が排他制御され、デバイス利用可能であった場合、アプリケーションAPからの利用が許可され、利用デバイスDVの電力供給が制御される。
<まとめ>
以上のように、本実施形態に係る情報処理装置100によれば、供給判定部12により、利用者に機能提供を行うアプリケーションAPと機能提供時の利用デバイスDVとが対応付けられた制御情報(デバイス対応情報及びデバイス状態情報)に基づき、利用者からの要求処理を行うアプリケーションAPの利用デバイスDVに対して、電力供給を開始又は停止するか否かを判定する。このとき、供給判定部12は、利用許可判定部120により、アプリケーションAPからデバイスDVの利用を許可するか否かを判定し、利用許可の判定結果に基づき、利用デバイスDVに対して、電力供給を開始又は停止するか否かを判定する。情報処理装置100は、供給制御部13により、供給判定部12の判定結果に基づき、利用デバイスDVに対する電力供給の開始・停止を制御する。
これによって、本実施形態に係る情報処理装置100では、第1の実施形態と同様の効果を奏するとともに、電子機器において、省電力化を実現するための各種制御設定が可能な環境が提供できる。
<変形例>
図20は、本変形例に係る電源管理の機器構成例を示す図である。
上記実施形態では、電源管理の機器構成を、情報処理装置100を例に電子機器単体とする場合の例を説明したが、この限りでない。例えば、図20に示すように、複数の機器構成により実現することもできる。
図20には、サーバSVと電子機器EDとが接続され、データ通信可能な機器構成例が示されている。
(A)に示す機器構成では、サーバSVが有する電源管理システム10が、自機が有するアプリケーションAPからの処理要求に応じて、電子機器EDが備えるデバイスDVの電力供給を制御する。具体的には、次のように行われる。
サーバSVは、電源管理システム10により、電力供給の開始判定を行い、電子機器EDに対して、アプリケーションAPの利用デバイスDVの電力供給開始を指示する制御信号を送信する。その結果、電子機器EDでは、該当デバイスDVの電力供給が開始され、サーバSVに対して、電力供給結果(正常開始)が送信される。これを受けてサーバSVは、アプリケーションAPにより、電子機器EDに対して、処理条件データや処理データを送信し、デバイスDVを利用した処理の実行を要求する。これにより、電子機器EDでは、アプリケーションAPが利用者から受け付けた要求処理が実行され、サーバSVに対して、処理結果が送信される。
サーバSVは、電源管理システム10により、電力供給の停止判定を行い、電子機器EDに対して、アプリケーションAPの利用デバイスDVの電力供給停止を指示する制御信号を送信する。その結果、電子機器EDでは、該当デバイスDVの電力供給が停止され、サーバSVに対して、電力供給結果(正常停止)が送信される。
一方、(B)に示す機器構成では、電子機器EDが有する電源管理システム10が、サーバSVが有するアプリケーションAPからの処理要求に応じて、自機が備えるデバイスDVの電力供給を制御する。具体的には、次のように行われる。
サーバSVは、アプリケーションAPにより、電子機器EDに対して、処理条件データや処理データを送信し、デバイスDVを利用した処理の実行を要求する。これを受けて電子機器EDは、電源管理システム10により、電力供給の開始判定を行い、アプリケーションAPの利用デバイスDVの電力供給を開始し、アプリケーションAPが利用者から受け付けた要求処理を実行する。その後、電子機器EDは、電源管理システム10により、電力供給の停止判定を行い、利用デバイスDVの電力供給を停止し、サーバSVに対して、処理結果を送信する。
ここで、(A)と(B)の機器構成を比較してみる。(A)に示す機器構成では、電源管理機能がサーバSVに集約されていることから、管理対象とする電子機器EDの増減などに柔軟に対応できる。一方、(B)に示す機器構成では、電源管理機能を電子機器EDが有することから、サーバSVと電子機器EDとのデータ通信を伴うことなく電力供給が制御でき、管理対象とする電子機器EDが多数存在する場合であっても、電源管理に係る通信負荷を軽減できる。
このようなことから、(A)又は(B)の機器構成により、電源管理機能を実現する場合には、管理者が運用上のメリット・デメリットを考慮し、適宜選択すればよい。
以上のように、電源管理機能は、複数の機器構成であっても実現できる。
また、上記実施形態では、情報処理装置100が、制御情報としてデバイス対応情報20D1を保持する構成について説明を行ったが、この限りでない。例えば、情報処理装置100は、自機と異なる装置に保持されるデバイス対応情報20D1を、所定のデータ伝送路(ネットワーク)を介して参照する構成であってもよい。
また、上記実施形態では、情報処理装置100を電子機器EDの一例として説明を行ったが、この限りでない。例えば、図21に示すような画像処理装置200などであってもよい。図21には、画像処理装置200の1つである複合機のハードウェア構成例が示されている。なお、画像処理装置200には、複合機の他に、プリンタ、スキャナ、プロジェクタなどがある。上記実施形態に係る電源管理機能は、電源管理対象となるデバイスDVを1又は複数備えた電子機器EDであれば適用できる。
[第3の実施形態]
本実施形態では、アプリケーション(要求処理)によるデバイス利用時の利用ドライバの起動・終了制御と連携し、利用デバイスに対する電力供給を制御する技術を提案する。
なお、以降では、上記実施形態と異なる事項について説明し、同じ事項については、同一参照符号を付し、その説明を省略する。
デバイスDVは、デバイスドライバ(以下単に「ドライバ」という)により制御される。ドライバは、アプリケーションAP(デバイスを利用するソフトウェア)に対して、デバイス利用時の入出力インタフェース機能を提供するソフトウェアである。デバイスDVの仕様や制御方法は、製品によって大きく異なるため、OSが単独で全ての製品をサポートすることは難しい。そのため、デバイスメーカは、自社製品を制御するためのドライバを提供し、利用者はそれをOSにインストールして使用する。
このように、ドライバがインストールされた情報処理装置100では、デバイスDVの接続に応じて、該デバイスDVに対応するドライバ(接続デバイス用のドライバ)が起動される。そのため、情報処理装置100では、例えば、利用者がアプリケーションAP(要求処理)の利用デバイスDVとは異なるデバイスDV(利用しないデバイス)を接続した場合に、必要のないドライバが起動されることになる。その結果、情報処理装置100では、不要なソフトウェアが起動することで、CPU106やRAM104(メモリ)への負荷が高くなり、電力消費につながる。
よって、情報処理装置100では、省電力化の観点から、利用ドライバの起動・終了と利用デバイスDVに対する電力供給とを組み合わせて制御することが、より効果的である。
<ソフトウェア構成>
図22は、本実施形態に係る情報処理装置100のソフトウェア構成例を示す図である。
図22に示すように、本実施形態に係る情報処理装置100では、電源管理システム10に加えて、ドライバ管理システム40を有している。
ドライバ管理システム40は、ドライバDDの管理機能を提供するソフトウェアである。ドライバ管理システム40は、ドライバ管理機能を実現するためのプログラムや各種データを含む機能実現ソフトウェアである。図22には、各デバイスDVに対応する複数のドライバ(1)DD1から(N)DDnを有している例が示されている。なお、本実施形態では、ドライバDDがOSにインストールされている例が示されている。
アプリケーションAPは、OS上、電源管理システム10上、又はドライバ管理システム40上で動作するように開発・実装される。また、ドライバ管理システム40は、電源管理システム10と同様に、OS上で動作するように開発・実装される。
これにより、アプリケーションAPは、OSが提供する情報処理機能又はシステム40が提供するドライバ管理機能と連携動作できる。また、ドライバ管理システム40は、OSが提供する情報処理機能又はシステム10が提供する電源管理機能と連携動作できる(ミドルウェアとして機能できる)。
具体的に本実施形態では、上記ソフトウェアが次のように連携動作し、電源管理機能が実現される。
アプリケーションAPは、利用者からデバイスDVを利用する処理要求を受け付けると、利用者の処理要求に従って、提供機能を実現するための処理を行う。このとき、アプリケーションAPは、ドライバ管理システム40に対して、処理要求を受け付けた旨を通知する。ドライバ管理システム40では、要求処理を実現するための利用デバイスDVに対応するドライバDD(利用ドライバ)を起動し、電源管理システム10に対して、利用デバイスDVに対する電力供給の開始を要求する。その結果、電源管理システム10では、OSを介して、利用デバイスDVに対して、電力供給を開始する。
これを受けて、アプリケーションAPは、OSを介して、利用デバイスDVを用いて要求処理を行い、処理が終了すると、ドライバ管理システム40に対して、要求処理が終了した旨を通知する。ドライバ管理システム40では、要求処理を実現するための利用デバイスDVに対応するドライバDD(利用ドライバ)を終了し、電源管理システム10に対して、利用デバイスDVに対する電力供給の停止を要求する。その結果、電源管理システム10では、OSを介して、利用デバイスDVに対して、電力供給を停止する。
以上のように、本実施形態に係る情報処理装置100は、上記ソフトウェア構成により、ドライバ管理機能(ドライバの起動・終了制御)と連携した電源管理機能(電源管理サービス)を提供することができる。
<電源管理機能>
図23は、本実施形態に係る電源管理の機能構成例を示す図である。
図23に示すように、本実施形態に係る電源管理機能は、電源管理システム10、ドライバ管理システム40、及びデバイス検知部71が連携動作することにより実現される。
本実施形態に係る電源管理システム10は、供給制御部13のみを有し、要求に応じて、デバイスDVに対する電力供給を制御する。
一方、本実施形態に係るドライバ管理システム40は、処理要求受付部41、利用ドライバ特定部42、起動・終了制御部43、及び情報管理部61などを有し、アプリケーションAP(処理要求)に応じて、利用ドライバDDの起動・終了を制御するとともに、利用デバイスDVに対する電力供給の制御要求を行う。なお、デバイス検知部71は、情報処理装置100へのデバイスDVの接続を検知する機能部である。
情報管理部61は、利用ドライバDDの起動・終了を制御するために用いる制御情報を管理する機能部である。情報管理部61は、制御情報保持部50にアクセスし、所定のデータ操作により、制御情報を管理する。なお、制御情報保持部50は、例えば、情報処理装置100が備える記憶装置(HDD)の所定の記憶領域にあたる。また、所定のデータ操作には、他の機能部からの要求に応じた、データ参照(取得)、データ登録(保存:書き込み)、データ更新(変更:上書き)、及びデータ削除(消去)などがある。
ここで、制御情報について説明する。
本実施形態では、制御情報保持部50に、図24及び図25に示すような制御情報を保持している。
図24は、本実施形態に係るデバイス対応情報50D1のデータ例を示す図である。
図24に示すように、デバイス対応情報50D1は、[アプリ識別]及び[利用デバイス]などの情報項目が、アプリ(提供機能)単位で対応付けられている。この情報により、アプリケーションAPと機能提供時の利用デバイスDVとの対応関係が管理される。なお、デバイス対応情報50D1は、第1の実施形態で説明を行ったデバイス対応情報20D1と同じデータであることから、ここでの説明を省略する。
図25は、本実施形態に係るドライバ対応情報50D2のデータ例を示す図である。
図25に示すように、ドライバ対応情報50D2は、[デバイス識別]及び[利用ドライバ]などの情報項目が、デバイス単位で対応付けられている。この情報により、機能提供時の利用デバイスDVと利用ドライバDDとの対応関係が管理される。
[デバイス識別]項目は、デバイス識別情報が設定される項目である。[利用ドライバ]項目は、機能提供時の利用デバイスDVに対応するドライバDD(利用ドライバ)を識別する情報(以下「ドライバ識別情報」という)が設定される項目である。項目値には、例えば、ドライバDDにユニークに割り当てられたID値(ドライバID)や文字列値(ドライバ名)などがある。
これらの項目値は、例えば、管理者が、搭載デバイスDV又は情報処理装置100に接続可能なデバイスDVと搭載ドライバDDとに基づき、予め設定しておく。よって、情報管理部61は、管理者に対し、これらの項目値を設定可能な設定機能(所定のツール)を提供し、設定機能を介して入力値を受け付けると、制御情報保持部50にアクセスし、入力値をドライバ対応情報50D2の項目値として設定する。これにより、デバイス単位でドライバ対応情報50D2が登録される。なお、情報管理部61は、ドライバDDのインストールに連動して、ドライバ対応情報50D2を登録するようにしてもよい。この場合、インストールされたドライバDDに関する情報(インストール情報)などに基づき、対応付けるデバイスDVを特定し、ドライバ対応情報50D2を登録する。なお、デバイス検知部71からのデバイス検知結果の通知に連動させて、ドライバ対応情報50D2を登録するようにしてもよい。
図23の説明に戻る。処理要求受付部41は、第1の実施形態で説明を行った処理要求受付部11と同じ機能部である。よって、ここでの説明は、異なる点のみとする。処理要求受付部41は、受け付けた処理要求に応じた利用ドライバDDの制御結果(起動・終了結果)及び利用デバイスDVの電力供給結果(開始・停止結果)を要求元(アプリケーション)に応答する。
利用ドライバ特定部42は、利用者からの要求処理を行うアプリケーションAPの利用ドライバDDを特定する機能部である。利用ドライバ特定部42は、利用ドライバDDの特定を制御情報に基づき行う。具体的には、次の通りである。
利用ドライバ特定部42は、情報管理部61を介して制御情報保持部50にアクセスし、処理要求通知受付時に受け取ったアプリ識別情報に基づき、制御情報に含まれるデバイス対応情報50D1を参照する。利用ドライバ特定部42は、アプリ識別情報に対応付けられたデバイス識別情報に基づき、処理要求を受け付けたアプリケーションAPの利用デバイスDVを特定する。つまり、利用ドライバ特定部42は、制御情報に基づき、電源管理対象の利用デバイスDVを特定する。
次に、利用ドライバ特定部42は、情報管理部61を介して制御情報保持部50にアクセスし、アプリ識別情報に対応付けられたデバイス識別情報に基づき、制御情報に含まれるドライバ対応情報50D2を参照する。利用ドライバ特定部42は、デバイス識別情報に対応付けられたドライバ識別情報に基づき、利用デバイスDVに対応するドライバDD(利用ドライバ)を特定する。つまり、利用ドライバ特定部42は、制御情報に基づき、起動・終了制御対象の利用ドライバDDを特定する。
なお、利用ドライバ特定部42は、処理要求受付部41が受け付けた要求処理に応じて、上記方法により、起動・終了制御対象の利用ドライバDDを特定する。具体的には、利用ドライバ特定部42は、受け付けた要求処理が「処理要求通知」であった場合、起動制御対象の利用ドライバDDを特定する。一方、利用ドライバ特定部42は、受け付けた要求処理が「処理終了通知」であった場合、終了制御対象の利用ドライバDDを特定する。
利用ドライバ特定部42は、上記特定結果に基づき、後述する起動・終了制御部43に対して、利用ドライバDDの起動・終了制御を要求するとともに、電源管理システム10(供給制御部)に対して、利用デバイスDVに対する電力供給の制御を要求する。
なお、利用ドライバ特定部42は、デバイス検知部71からのデバイス検知結果に基づき、上記起動・終了制御の要求及び電力供給制御の要求を行う。具体的には、次の通りである。
利用ドライバ特定部42は、デバイス検知結果に基づき、特定した利用デバイスDVが、情報処理装置100に接続されているか否かを判定する。また、利用ドライバ特定部42は、特定した利用ドライバDDが、情報処理装置100にインストールされているか否かを判定する。その結果、利用ドライバ特定部42は、利用デバイスDVが接続されており、かつ、利用ドライバDDがインストール済みの場合、上記起動・終了制御の要求及び電力供給制御の要求を行う。つまり、利用デバイスDVが接続されていない場合や利用ドライバDDがインストールされていない場合には、上記起動・終了制御の要求及び電力供給制御の要求を行わない。
これにより、不要なデバイスDVに電力供給されることも、不要なドライバDDが起動されることもない。よって、効率的な省電力化を実現できる。
なお、利用ドライバ特定部42は、利用デバイスDVが接続されている場合、後述する起動・終了制御部43に対して、特定した利用ドライバDDのドライバ識別情報を渡し、上記起動・終了制御を要求する。また、利用ドライバ特定部42は、起動・終了結果(正常起動・正常終了の旨)を受けて、電源管理システム10(供給制御部)に対して、特定した利用デバイスDVのデバイス識別情報を渡し、上記電力供給制御を要求する。
起動・終了制御部43は、利用ドライバDDの起動・終了を制御する機能部である。起動・終了制御部43は、上記特定結果に基づき行う。起動・終了制御部43は、利用ドライバ特定部42から受け取ったドライバ識別情報に基づき、起動/終了制御対象の利用ドライバDDを特定し、起動/終了する。起動・終了制御部43は、利用ドライバ特定部42から起動要求を受け付けると、起動制御対象の利用ドライバDDを起動する。一方、起動・終了制御部43は、利用ドライバ特定部42から終了要求を受け付けると、終了制御対象の利用ドライバDDを起動する。起動・終了制御部43は、起動・終了結果をドライバDDから受け取り、利用ドライバ特定部42に渡す。
これにより、アプリケーションAPは、利用ドライバDDを介して、利用デバイスDVを利用し、要求処理を実行する。
以上のように、本実施形態に係る電源管理機能は、上記各機能部が連携動作することにより実現される。
本実施形態に係る電源管理機能の詳細な動作(機能部群の連携動作)について、処理手順を示すフローチャート及びシーケンス図を用いて説明する。
《利用ドライバの起動・終了と連携した電源管理の主な処理》
図26は、本実施形態に係る電源管理の処理手順例(電力供給開始時)を示すシーケンス図である。図26に示す例は、情報処理装置100における処理手順例であり、アプリケーション(1)AP1が、機能提供時に3つのデバイス(A)DVa,(B)DVb,(C)DVcを利用する場合を想定したものである。よって、制御情報には、アプリケーション(1)AP1と利用デバイス(デバイス(A)DVa,(B)DVb,(C)DVc)との対応関係がデバイス対応情報50D1に設定されており、利用デバイスDVと利用ドライバ(ドライバ(A)DDa,(B)DDb,(C)DDc)との対応関係がドライバ対応情報50D2に設定されているものとする。
図26に示すように、まず、情報処理装置100は、デバイス(A)DVa,(B)DVb,(C)DVcの接続をデバイス検知部71により検知する(ステップS801)。その結果、デバイス検知部71からは、ドライバ管理システム40(利用ドライバ特定部)に対して、検知結果が渡される(ステップS802)。
ドライバ管理システム40は、処理要求受付部41が、アプリケーション(1)AP1からの処理要求通知を受け付ける(ステップS901)。このとき、処理要求受付部41は、アプリケーション(1)AP1からアプリ識別情報を受け取る。
ドライバ管理システム40は、処理要求受付部41が利用ドライバ特定部42に対し、要求処理の実行に伴う利用ドライバDDの特定(処理要求通知受付時の利用ドライバ特定)を要求する(ステップS902)。このとき、利用ドライバ特定部42は、処理要求受付部41からアプリ識別情報を受け取る。
ドライバ管理システム40は、利用ドライバ特定部42が、処理要求通知受付時の利用ドライバ特定(起動制御対象特定)を行う(ステップS903)。このとき、利用ドライバ特定部42は、アプリ識別情報に基づき、機能提供を行うアプリケーション(1)AP1を特定する。利用ドライバ特定部42は、制御情報(デバイス対応情報)に基づき、特定したアプリケーション(1)AP1が利用するデバイス(A)DVa,(B)DVb,(C)DVcを特定する(アプリ識別情報に対応付けられたデバイス識別情報を取得する)。利用ドライバ特定部42は、制御情報(ドライバ対応情報)に基づき、特定したデバイス(A)DVa,(B)DVb,(C)DVcに対応するドライバ(A)DDa,(B)DDb,(C)DDcを特定する(デバイス識別情報に対応付けられたドライバ識別情報を取得する)。なお、起動制御対象である利用ドライバ特定処理については、図28を用いて後述する。
ドライバ管理システム40は、利用ドライバ特定部42が起動・終了制御部43に対し、ドライバ(A)DDa,(B)DDb,(C)DDcの起動を要求する(ステップS904)。このとき、起動・終了制御部43は、利用ドライバ特定部42からドライバ(A)DDa,(B)DDb,(C)DDcのドライバ識別情報を受け取る。
ドライバ管理システム40は、起動・終了制御部43が、起動要求に従って該当ドライバDDを起動する(ステップS905)。このとき、起動・終了制御部43は、ドライバ識別情報に基づき、起動要求されたドライバ(A)DDa,(B)DDb,(C)DDcを特定する。起動・終了制御部43は、特定したデバイス(A)DDa,(B)DDb,(C)DDcを起動する。
ドライバ管理システム40は、起動・終了制御部43からの起動結果(正常起動の旨)を受けて、利用ドライバ特定部42が電源管理システム10(供給制御部)に対し、デバイス(A)DVa,(B)DVb,(C)DVc(起動した利用ドライバが対応するデバイス)に対する電力供給の開始を要求する(ステップS906)。このとき、電源管理システム10(供給制御部)は、利用ドライバ特定部42からデバイス(A)DVa,(B)DVb,(C)DVcのデバイス識別情報を受け取る。
電源管理システム10は、供給制御部13が、供給開始要求に従って電力供給を開始する(ステップS907)。このとき、供給制御部13は、デバイス識別情報に基づき、供給開始するデバイス(A)DVa,(B)DVb,(C)DVcを特定する。供給制御部13は、特定したデバイス(A)DVa,(B)DVb,(C)DVcに対して、電力供給を開始する。
電源管理システム10は、正常に電力供給が開始されると、供給制御部13がドライバ管理システム40(利用ドライバ特定部)に対し、電力供給の開始結果(正常に開始された旨)を返す(ステップS908)。
これを受けてドライバ管理システム40は、利用ドライバ特定部42が、処理要求受付部41を介して、アプリケーション(1)AP1に対し、ドライバ起動・電力供給結果(利用ドライバの起動と利用デバイスの電力供給開始OKの旨)を返す(ステップS909,S910)。
これにより、アプリケーション(1)AP1では、起動されたドライバ(A)DDa,(B)DDb,(C)DDcを介して、デバイス(A)DVa,(B)DVb,(C)DVcを利用し、要求処理が実行される(ステップS911)。
図27は、本実施形態に係る電源管理の処理手順例(電力供給停止時)を示すシーケンス図である。
その結果、ドライバ管理システム40は、処理要求受付部41が、アプリケーション(1)AP1からの処理終了通知を受け付ける(ステップS912)。このとき、処理要求受付部41は、アプリケーション(1)AP1からアプリ識別情報を受け取る。
ドライバ管理システム40は、処理要求受付部41が利用ドライバ特定部42に対し、終了した要求処理の利用ドライバDDの特定(処理終了通知受付時の利用ドライバ特定)を要求する(ステップS913)。このとき、利用ドライバ特定部42は、処理要求受付部41からアプリ識別情報を受け取る。
ドライバ管理システム40は、利用ドライバ特定部42が、処理終了通知受付時の利用ドライバ特定(終了制御対象特定)を行う(ステップS914)。このとき、利用ドライバ特定部42は、アプリ識別情報に基づき、機能提供を行ったアプリケーション(1)AP1を特定する。利用ドライバ特定部42は、制御情報(デバイス対応情報)に基づき、特定したアプリケーション(1)AP1が利用したデバイス(A)DVa,(B)DVb,(C)DVcを特定する(アプリ識別情報に対応付けられたデバイス識別情報を取得する)。利用ドライバ特定部42は、制御情報(ドライバ対応情報)に基づき、特定したデバイス(A)DVa,(B)DVb,(C)DVcに対応するドライバ(A)DDa,(B)DDb,(C)DDcを特定する(デバイス識別情報に対応付けられたドライバ識別情報を取得する)。なお、終了制御対象である利用ドライバ特定処理については、図28を用いて後述する。
ドライバ管理システム40は、利用ドライバ特定部42が起動・終了制御部43に対し、ドライバ(A)DDa,(B)DDb,(C)DDcの終了を要求する(ステップS915)。このとき、起動・終了制御部43は、利用ドライバ特定部42からドライバ(A)DDa,(B)DDb,(C)DDcのドライバ識別情報を受け取る。
ドライバ管理システム40は、起動・終了制御部43が、終了要求に従って該当ドライバDDを起動する(ステップS916)。このとき、起動・終了制御部43は、ドライバ識別情報に基づき、終了要求されたドライバ(A)DDa,(B)DDb,(C)DDcを特定する。起動・終了制御部43は、特定したデバイス(A)DDa,(B)DDb,(C)DDcを終了する。
ドライバ管理システム40は、起動・終了制御部43からの終了結果(正常終了の旨)を受けて、利用ドライバ特定部42が電源管理システム10(供給制御部)に対し、デバイス(A)DVa,(B)DVb,(C)DVc(終了した利用ドライバが対応するデバイス)に対する電力供給の停止を要求する(ステップS917)。このとき、電源管理システム10(供給制御部)は、利用ドライバ特定部42からデバイス(A)DVa,(B)DVb,(C)DVcのデバイス識別情報を受け取る。
電源管理システム10は、供給制御部13が、供給停止要求に従って電力供給を停止する(ステップS918)。このとき、供給制御部13は、デバイス識別情報に基づき、供給停止するデバイス(A)DVa,(B)DVb,(C)DVcを特定する。供給制御部13は、特定したデバイス(A)DVa,(B)DVb,(C)DVcに対して、電力供給を停止する。
電源管理システム10は、正常に電力供給が停止されると、供給制御部13がドライバ管理システム40(利用ドライバ特定部)に対し、電力供給の停止結果(正常に停止された旨)を返す(ステップS919)。
これにより、処理要求前に情報処理装置100に接続されたデバイス(A)DVa,(B)DVb,(C)DVcが切断できる。
《利用ドライバ特定の処理》
図28は、本実施形態に係る利用ドライバ特定の処理手順例を示すフローチャートである。図28に示す例は、利用ドライバ特定部42により、上記ステップS903,S914で実行される処理手順例である。
図28に示すように、利用ドライバ特定部42は、処理要求受付部41から受け取ったアプリ識別情報に基づき、特定アプリケーションAPからの処理要求を受け付けたかを判定する(ステップS1001)。このとき、利用ドライバ特定部42は、情報管理部61を介して、制御情報保持部50にアクセスする。利用ドライバ特定部42は、アプリ識別情報に基づき、制御情報保持部50で保持するデバイス対応情報50D1を参照する。利用ドライバ特定部42は、参照したデバイス対応情報50D1にアプリ識別情報が登録されているか否かを判定する。このようにして、利用ドライバ特定部42は、デバイスDVを利用した機能提供が許可されたアプリか否かのアプリ認証を行う。
利用ドライバ特定部42は、アプリ識別情報が登録されていない場合(ステップ1001:NO)、所定のエラー処理を行う(ステップS1012)。このとき行うエラー処理は、機能提供が許可されていない旨をアプリケーションAPに通知するなどである。
一方、利用ドライバ特定部42は、アプリ識別情報が登録されている場合(ステップS1001:YES)、アプリ識別情報に基づき、制御情報保持部50で保持するデバイス対応情報50D1を参照する(ステップS1002)。
利用ドライバ特定部42は、アプリ識別情報に対応付けられたデバイス識別情報に基づき、処理要求を受け付けたアプリケーションAPの利用デバイスDVを特定する(ステップS1003)。
利用ドライバ特定部42は、特定した利用デバイスDVのデバイス識別情報とデバイス検知部71からの検知結果とに基づき、特定した利用デバイスDVが接続中(接続済み)か否かを判定する(ステップS1004)。
利用ドライバ特定部42は、利用デバイスDVが接続中(接続済み)でない場合(ステップ1004:NO)、所定のエラー処理を行う(ステップS1012)。このとき行うエラー処理は、機能提供時の利用デバイスDVが接続されていない旨をアプリケーションAPに通知するなどである。
一方、利用ドライバ特定部42は、利用デバイスDVが接続中(接続済み)の場合(ステップ1004:YES)、特定した利用デバイスDVのデバイス識別情報に基づき、制御情報保持部50で保持するドライバ対応情報50D2を参照する(ステップS1005)。
利用ドライバ特定部42は、デバイス識別情報に対応付けられたドライバ識別情報に基づき、利用デバイスDVに対応するドライバDD(利用ドライバ)を特定する(ステップS1006)。
利用ドライバ特定部42は、特定した利用ドライバDDのドライバ識別情報に基づき、特定した利用ドライバDDがインストール済みか否かを判定する(ステップS1007)。
利用ドライバ特定部42は、利用ドライバDDがインストール済みでない場合(ステップ1007:NO)、所定のエラー処理を行う(ステップS1012)。このとき行うエラー処理は、機能提供時の利用ドライバDDがインストールされていない旨をアプリケーションAPに通知するなどである。
一方、利用ドライバ特定部42は、利用ドライバDDがインストール済みの場合(ステップ1007:YES)、電源管理対象とする利用デバイスDVと、該利用デバイスDVに対応するドライバDD(起動・終了制御対象とする利用ドライバ)とを特定する(ステップS1008)。つまり、利用ドライバ特定部42は、上記接続状況及び上記インストール状況に応じて、電源管理対象の利用デバイスDVと起動・終了制御対象の利用ドライバDDとを特定する。
このとき、利用ドライバ特定部42は、処理要求受付部41から処理要求通知を受け付けた場合、接続中の利用デバイスDVを電力供給の開始対象として特定し、該利用デバイスDVに対応するインストール済みのドライバDD(利用ドライバ)を起動制御対象として特定する。
一方、利用ドライバ特定部42は、処理要求受付部41から処理終了通知を受け付けた場合、接続中の利用デバイスDVを電力供給の停止対象として特定し、該利用デバイスDVに対応するインストール済みのドライバDD(利用ドライバ)を終了制御対象として特定する。なお、未接続の利用デバイスDVや該利用デバイスDVに対応するドライバDD(利用ドライバ)、又は、未インストールの利用ドライバDDや該利用ドライバDDが対応する接続中のデバイスDV(利用デバイス)などは、電源管理対象及び起動・終了制御対象としない。
利用ドライバ特定部42は、電源管理対象の利用デバイスDVと起動・終了制御対象の利用ドライバDDとが特定されたか否かを判定する(ステップS1009)。
利用ドライバ特定部42は、電源管理対象の利用デバイスDVと起動・終了制御対象の利用ドライバDDとが特定された場合(ステップS1009:YES)、起動・終了制御部43に対し、特定された利用ドライバDDの起動又は終了を要求する(ステップS1010)。
利用ドライバ特定部42は、起動・終了結果を受けて、電源管理システム10(供給制御部)に対し、起動又は終了された利用ドライバDDが対応するデバイスDV(特定された利用デバイス)に対する電力供給の開始又は停止を要求する(ステップS1011)。
このように、利用ドライバ特定部42は、処理要求受付部41から処理要求通知を受け付けた場合、接続中の利用デバイスDVに対応するインストール済みのドライバDD(利用ドライバ)の起動を要求し、利用デバイスDVに対する電力供給の開始を要求する。一方、処理要求受付部41から処理終了通知を受け付けた場合には、接続中の利用デバイスDVに対応する動作中のドライバDD(利用ドライバ)の終了を要求し、利用デバイスDVに対する電力供給の停止を要求する。
これにより、本実施形態では、不要なデバイスDVに対する電力供給や不要なドライバDDの起動が行われない効率的な省電力化を実現する環境を提供する。
《デバイス切断時の電源管理の処理》
図29は、本実施形態に係る電源管理の処理手順例(デバイス切断による電力供給停止時)を示すシーケンス図である。図27には、アプリケーションAPからの処理終了通知受付時における利用ドライバDDの終了制御や利用デバイスDVに対する電力停止制御の処理手順例を示したが、この限りでない。例えば、利用デバイスDVが情報処理装置100に挿抜接続可能なデバイスDVであった場合には、アプリケーションAPからの処理終了通知を受け付ける前に、デバイスDVの接続が切断される場面も考えられる。図29には、このような場面に対応する電源管理の処理手順例が示されている。図29に示す例は、アプリケーション(1)AP1が、機能提供時に3つのデバイス(A)DVa,(B)DVb,(C)DVcを利用中に、これらの利用デバイスDVの接続が切断された場合を想定したものである。
図29に示すように、情報処理装置100は、デバイス(A)DVa,(B)DVb,(C)DVcの切断をデバイス検知部71により検知する(ステップS1101)。その結果、デバイス検知部71からは、ドライバ管理システム40(利用ドライバ特定部)に対して、検知結果が渡される(ステップS1102)。
ドライバ管理システム40は、アプリケーション(1)AP1の処理中(処理終了通知受付前)に利用デバイスDVの切断結果を受け付けると、利用ドライバ特定部42が、利用デバイス切断時の利用ドライバ特定(終了制御対象特定)を行う(ステップS1103)。以降の処理は、図27に示したステップS915からS919の処理を同じである。
ドライバ管理システム40は、電源管理システム10(供給制御部)からの電力供給結果を受け付けると、利用ドライバ特定部42が、処理要求受付部41を介して、アプリケーション(1)AP1に対し、ドライバ終了・電力供給結果(利用ドライバの終了と利用デバイスの電力供給停止の旨)を返す(ステップS1109,S1110)。
これにより、アプリケーション(1)AP1では、処理中にデバイス(A)DVa,(B)DVb,(C)DVcが切断された旨の通知を受け付ける。
《ドライバ対応情報設定の処理》
図30は、本実施形態に係るドライバ対応情報設定の処理手順例を示すフローチャートである。ここで、情報管理部61によるドライバ対応情報50D2の設定処理について説明する。
図30に示すように、情報管理部61は、設定要求を受け付けると(ステップS1201:YES)、制御情報保持部50にアクセスし、制御情報であるドライバ対応情報50D2を参照する(ステップS1202)。
情報管理部61は、デバイス検知部71からの検知結果に基づき、接続検知されたデバイスDVからデバイス情報を取得し(ステップS1203)、OSからインストール済みドライバDDのドライバ情報を取得する(ステップS1204)。
情報管理部61は、取得した各種情報(デバイス情報及びドライバ情報)に基づき、所定のGUIを有する設定画面を生成し、表示装置102に表示する(ステップS1205)。
これにより、管理者は、設定画面上でデバイスDVを指定し、該デバイスDVに対応するドライバDDを指定することで、ドライバ設定を行う。
情報管理部61は、設定画面を介して、ドライバ設定を受け付けると(ステップS1206:YES)、受け付けた設定値(指定されたドライバ識別情報)を、ドライバ対象情報50D2の該当情報項目に項目値として記録し(ステップS1207)、登録・更新する。このとき、情報管理部61は、設定画面上で指定されたデバイスDVのデバイス識別情報に基づき、ドライバ対象情報50D2内に、一致するデバイスDVの登録情報([デバイス識別]項目)が存在するか否かを判定する。情報管理部61は、一致するデバイスDVの登録情報が存在する場合、一致した[デバイス識別]項目に対応付けられた[利用ドライバ]項目に、設定値であるドライバ識別情報を格納する([利用ドライバ]項目を更新録する)。一方、情報管理部61は、一致するデバイスDVの登録情報が存在しない場合、[デバイス識別]項目に、指定されたデバイスDVのデバイス識別情報を格納し、これに対応付けて、[利用ドライバ]項目に、設定値であるドライバ識別情報を格納する([デバイス識別]項目と[利用ドライバ]項目との情報セットを新規登録する)。
なお、情報管理部61は、設定画面の表示時に、次のような排他処理を行ってもよい。情報管理部61は、取得したドライバ情報に含まれる対応デバイスに関する情報に基づき、指定デバイスDVに対応しないドライバDDが設定画面上で指定できないように、デバイスDVが指定された際に、対応しないドライバDDの指定GUIを非表示又は半輝度表示とする。また、指定デバイスDVに対応しないドライバDDが設定画面上で指定された場合には、指定できない旨を表示(通知)するようにしてもよい。これにより、管理者による誤ったドライバ設定を未然に防ぐことができる。
また、上記ドライバ対応情報50D2の設定処理では、情報処理装置100にデバイスDVを接続し、デバイス検知部71により接続検知されたデバイスDVからデバイス情報を取得する処理が記載されているが、この限りでない。例えば、情報処理装置100は、自機と異なる装置(非図示)に保持されるデバイスDVごとのデバイス情報を、所定のデータ伝送路(ネットワーク)を介して取得する処理であってもよい。また、例えば、情報処理装置100は、自機と異なる装置に接続されるデバイスDVから、所定のデータ伝送路を介して、デバイス情報を取得する処理であってもよい。
<まとめ>
以上のように、本実施形態に係る情報処理装置100によれば、利用ドライバ特定部42により、利用者に機能提供を行うアプリケーションAP、機能提供時の利用デバイスDV、及び機能提供時の利用ドライバDDが対応付けられた制御情報(デバイス対応情報及びドライバ対応情報)に基づき、利用者からの要求処理を行うアプリケーションAPの利用デバイスDVに対応するドライバDD(利用ドライバ)を特定する。情報処理装置100は、起動・終了制御部43により、利用ドライバ特定部42で特定された利用ドライバDDの起動・終了を制御する。また、情報処理装置100は、供給制御部13により、起動・終了された利用ドライバDDが対応するデバイスDV(利用デバイス)に対する電力供給の開始・停止を制御する。
これによって、本実施形態に係る情報処理装置100では、第1の実施形態と同様の効果を奏するとともに、利用者の処理要求を実行する上で不要なドライバDDを起動しない環境が提供でき、電子機器EDにおいて、ドライバ起動によるハードウェア資源(リソース)への負荷を軽減できる。
[第4の実施形態]
本実施形態では、アプリケーション(要求処理)によるデバイス利用時の利用ドライバの利用状態に応じた起動・終了制御(起動・終了の許可判定結果に基づく制御)と連携し、利用デバイスに対する電力供給を制御する技術を提案する。
なお、以降では、上記実施形態と異なる事項について説明し、同じ事項については、同一参照符号を付し、その説明を省略する。
<電源管理機能>
図31は、本実施形態に係る電源管理の機能構成例を示す図である。
図31に示すように、本実施形態に係る電源管理機能では、利用ドライバ特定部42が、利用ドライバDDの起動・終了を許可するか否かを判定する起動・終了許可判定部420を有している。
起動・終了許可判定部420は、予め設定しておいたドライバDDごとの最大利用許可数とドライバDDの利用状態とに基づき、上記起動・終了の許可判定を行う。なお、上記最大利用許可数に関する情報(以下便宜上「最大利用許可情報」という)及び上記利用状態に関する情報(以下便宜上「ドライバ状態情報」という)は、制御情報として制御情報保持部50に保持され、情報管理部61により管理されている。
ここで、最大利用許可情報及びドライバ状態情報について説明する。
図32は、本実施形態に係る最大利用許可情報50D3のデータ例を示す図である。
図32に示すように、最大利用許可情報50D3は、[ドライバ識別]及び[最大利用許可数]などの情報項目が、ドライバ単位で対応付けられている。この情報により、ドライバDDごとの最大利用許可数が管理される。
[ドライバ識別]項目は、ドライバ識別情報が設定される項目である。[最大利用許可数]項目は、複数のアプリケーションAPからの利用を許可する最大数を示す情報(以下「最大利用許可数情報」という)が設定される項目である。項目値には、例えば、ドライバDDの仕様に応じて決定された利用許可数を示す数値(1以上の数値)などがある。
これらの項目値は、例えば、管理者が、搭載ドライバDDに基づき、予め設定しておく。よって、情報管理部61は、管理者に対し、これらの項目値を設定可能な設定機能(所定のツール)を提供し、設定機能を介して入力値を受け付けると、制御情報保持部50にアクセスし、入力値を最大利用許可情報50D3の項目値として設定する。これにより、ドライバ単位で最大利用許可情報50D3が登録される。なお、情報管理部61は、ドライバDDのインストールに連動して、最大利用許可情報50D3を登録するようにしてもよい。この場合、インストールされたドライバDDに関する情報(インストール情報)などに基づき、利用許可数を特定し、最大利用許可情報50D3を登録する。
図33は、本実施形態に係るドライバ状態情報50D4のデータ例を示す図である。
図33に示すように、ドライバ状態情報50D4は、[搭載ドライバ]及び[利用数]などの情報項目が、ドライバ単位で対応付けられている。この情報により、ドライバDDごとの利用状態が管理される。
[搭載ドライバ]項目は、デバイス識別情報が設定される項目である。[利用数]項目は、機能提供時のアプリケーションAPによるドライバDDの利用数(利用状態)を示す情報(以下便宜上「利用状態情報」という)が設定される項目である。項目値には、例えば、ドライバDDの利用数を示す数値(0以上の数値)などがある。
[搭載ドライバ]項目の値は、例えば、管理者が、起動・終了制御対象とするドライバDDに基づき、予め設定しておく。なお、この項目値の設定方法は、ドライバ対応情報50D2と同様である。また、[利用数]項目の値は、[搭載ドライバ]項目の設定と連動して、予め決めておいた利用されていない状態を示す利用数'0'(デフォルト値)が設定される。これにより、ドライバ単位でドライバ状態情報50D4が登録される。
以後、ドライバ状態情報50D4は、アプリケーションAPからのドライバ利用に応じて、次のように更新される。情報管理部61は、制御情報保持部50にアクセスし、ドライバ状態情報50D4の利用状態情報に利用ドライバDDの利用数('1'以上の数値)を設定する。これにより、ドライバ単位でドライバ状態情報50D4が更新される。
図31の説明に戻る。起動・終了許可判定部420は、上記最大利用許可情報50D3及び上記ドライバ状態情報50D4に基づき、起動・終了の許可判定を次のように行う。
起動・終了許可判定部420は、処理要求受付部41が処理要求通知を受け付け、利用ドライバ特定部42が利用デバイスDVと利用ドライバDDとを特定すると、情報管理部61を介して、制御情報保持部50にアクセスする。
起動・終了許可判定部420は、処理要求通知受付時に特定された利用ドライバDVのドライバ識別情報に基づき、制御情報である最大利用許可情報50D3を参照し、ドライバ識別情報に対応付けられた利用ドライバDDの最大利用許可数情報(最大利用許可数)を取得する。起動・終了許可判定部420は、制御情報であるドライバ状態情報50D4を参照し、ドライバ識別情報に対応付けられた利用ドライバDDの利用状態情報(アプリケーションからの現在の利用数)を取得する。
起動・終了許可判定部420は、現在の利用数をインクリメント(1加算)した場合に、算出値(インクリメントした利用数)が最大利用許可数を超えるか否かを判定する。起動・終了許可判定部420は、算出値が最大利用許可数を超えない場合に、特定された利用ドライバDDの起動を許可する。つまり、起動・終了許可判定部420は、処理要求したアプリケーションAPが利用ドライバDDを利用した場合、利用ドライバDDの利用数が、仕様で決められた最大利用許可数以内であれば、アプリケーションAPに対して、ドライバDDの利用を許可する。
また、起動・終了許可判定部420は、処理終了通知受付時に特定された利用ドライバDVのドライバ識別情報に基づき、制御情報であるドライバ状態情報50D4を参照し、アプリケーションAPからの現在の利用数を取得する。
起動・終了許可判定部420は、現在の利用数をデクリメント(1減算)した場合に、算出値(デクリメントした利用数)が'0'か否かを判定する。起動・終了許可判定部420は、算出値が'0'の場合に、特定された利用ドライバDDの終了を許可する。つまり、起動・終了許可判定部420は、処理要求したアプリケーションAPによるドライバ利用が終了した場合、算出値が'0'であれば、他のアプリケーションAPにより、ドライバDDが利用されていないと判定し、利用ドライバDDの終了を許可する。一方、起動・終了許可判定部420は、算出値が1以上であれば、他のアプリケーションAPにより、ドライバDDが利用されていると判定し、利用ドライバDDの終了を許可しない。
利用ドライバ特定部42は、上記起動・終了の許可判定結果に基づき、特定した利用ドライバDDの起動・終了制御を行うとともに、特定した利用デバイスDVに対する電力供給制御を行う。つまり、利用ドライバ特定部42は、電源管理システム10(供給制御部)に対して、起動許可された利用ドライバDDが対応するデバイスDV(利用デバイス)の電力供給の開始を要求する。一方、利用ドライバ特定部42は、電源管理システム10(供給制御部)に対して、終了許可された利用ドライバDDが対応するデバイスDV(利用デバイス)の電力供給の停止を要求する。
これにより、複数のアプリケーションAPの間では、ドライバDDの利用状態(及び仕様上の最大利用許可数)に応じて、同一デバイスDVの利用が排他制御され、利用ドライバDDを介して、利用デバイスDVを利用し、要求処理が実行される。
以上のように、本実施形態に係る電源管理機能は、上記各機能部が連携動作することにより実現される。
本実施形態に係る電源管理機能の詳細な動作(機能部群の連携動作)について、処理手順を示すフローチャート及びシーケンス図を用いて説明する。
《利用ドライバ特定と起動・終了許可判定の処理》
まず、上記利用ドライバ特定部42(起動・終了許可判定部)により実行される利用ドライバ特定と起動・終了許可判定との処理手順について説明する。なお、以下には、起動許可判定処理と終了許可判定処理との処理手順例について順に説明する。
図34は、本実施形態に係る利用ドライバ特定・起動許可判定の処理手順例(電力供給開始時)を示すフローチャートである。なお、図34の処理手順について説明するが、図28と同じ処理については、その説明を省略し、ステップS1310からの処理について説明する。
図34に示すように、利用ドライバ特定部42は、電源管理対象とするデバイスDVと起動制御対象とするドライバDDとが特定された場合(ステップS1309:YES)、起動・終了許可判定部420により、制御情報保持部50にアクセスし、最大利用許可情報50D3及びドライバ状態情報50D4を参照する(ステップS1310)。このとき、起動・終了許可判定部420は、特定された利用ドライバDVのドライバ識別情報に基づき、最大利用許可情報50D3を参照し、利用ドライバDDの最大利用許可数を取得し、ドライバ状態情報50D4を参照し、アプリケーションAPからの現在の利用数を取得する。
起動・終了許可判定部420は、特定された利用ドライバDDの起動により、利用数が最大利用許可数を超えるか否かを判定する(ステップS1311:起動許可判定処理)。このとき、起動・終了許可判定部420は、取得した現在の利用数をインクリメント(1加算)し、その算出値(起動時の利用数)が、取得した最大利用許可数を超えるか否かを判定する。
起動・終了許可判定部420は、利用ドライバDDの起動により、利用数が最大利用許可数を超える場合(ステップ1311:YES)、所定のエラー処理を行う(ステップS1314)。このとき行うエラー処理は、機能提供時にドライバDDが利用できない旨(最大利用許可数超過による利用不許可の結果)をアプリケーションAPに通知するなどである。
一方、起動・終了許可判定部420は、利用ドライバDDの起動により、利用数が最大利用許可数以内の場合(ステップ1311:NO)、特定された利用ドライバDDの起動を許可し、その旨を利用ドライバ特定部42に通知する。このとき、起動・終了許可判定部420は、利用ドライバ特定部42に対して、許可されたドライバDDの利用状態情報に基づく起動済み情報(起動済みか否かを示す情報)を渡す。
これを受けて利用ドライバ特定部42は、起動済み情報に基づき、許可されたドライバDDが、他のアプリケーションAPからの利用により起動済みか否かを判定する(ステップS1312:起動要否判定処理)。つまり、利用ドライバ特定部42は、許可されたドライバDDを起動する必要があるか否かを判定する。
利用ドライバ特定部42は、許可されたドライバDDが起動済みであった場合(ステップS1312:YES)、利用ドライバDDの起動及び利用デバイスDVに対する電力供給開始を行う必要がないと判定し、処理を終了する。
一方、利用ドライバ特定部42は、許可されたドライバDDが起動されていない場合(ステップS1312:NO)、起動・終了制御部43に対し、許可されたドライバDDの起動を要求する(ステップS1313)。
利用ドライバ特定部42は、起動結果を受けて、電源管理システム10(供給制御部)に対し、起動されたドライバDDが対応するデバイスDVに対する電力供給の開始を要求する(ステップS1314)。
このように、利用ドライバ特定部42は、処理要求受付部41から処理要求通知を受け付けると、利用ドライバDDの複数のアプリケーションAPからの利用数が、最大利用許可数以内の場合に、利用ドライバDDの起動を要求し、利用デバイスDVに対する電力供給の開始を要求する。
図35は、本実施形態に係る利用ドライバ特定・終了許可判定の処理手順例(電力供給停止時)を示すフローチャートである。なお、図35の処理手順について説明するが、図28と同じ処理については、その説明を省略し、ステップS1410からの処理について説明する。
図35に示すように、利用ドライバ特定部42は、電源管理対象とするデバイスDVと起動制御対象とするドライバDDとが特定された場合(ステップS1409:YES)、起動・終了許可判定部420により、制御情報保持部50にアクセスし、ドライバ状態情報50D4を参照する(ステップS1410)。このとき、起動・終了許可判定部420は、特定された利用ドライバDVのドライバ識別情報に基づき、ドライバ状態情報50D4を参照し、アプリケーションAPからの現在の利用数を取得する。
起動・終了許可判定部420は、特定された利用ドライバDDが、他のアプリケーションAPから利用されているか否かを判定する(ステップS1411:終了許可判定処理)。このとき、起動・終了許可判定部420は、取得した現在の利用数をデクリメント(1減算)し、その算出値(終了時の利用数)が'0'か否かを判定する。
起動・終了許可判定部420は、デクリメントした利用数が1以上で、他のアプリケーションAPから利用されている場合(ステップS1411:YES)、利用ドライバDDの終了及び利用デバイスDVに対する電力供給停止を行う必要がないと判定し、処理を終了する。
一方、起動・終了許可判定部420は、デクリメントした利用数が'0'で、他のアプリケーションAPから利用されていない場合(ステップS1411:NO)、特定された利用ドライバDDの終了を許可し、その旨を利用ドライバ特定部42に通知する。
これを受けて利用ドライバ特定部42は、起動・終了制御部43に対し、許可されたドライバDDの終了を要求する(ステップS1412)。
利用ドライバ特定部42は、終了結果を受けて、電源管理システム10(供給制御部)に対し、終了されたドライバDDが対応するデバイスDVに対する電力供給の停止を要求する(ステップS1413)。
このように、利用ドライバ特定部42は、処理要求受付部41から処理終了通知を受け付けると、接続中の利用デバイスDVに対応する動作中の利用ドライバDDが、他のアプリケーションAPから利用されていない場合に、利用ドライバDDの終了を要求し、利用デバイスDVに対する電力供給の停止を要求する。
ここからは、上記起動・終了の許可判定(利用状態に応じた利用ドライバの起動・終了制御)と連携した電力供給の制御例(動作とデータ遷移)について、具体的な場面を想定し、説明する。
《利用状態に応じた利用ドライバの起動・終了と連携した電源管理の処理》
[場面1]:アプリ(1)からの処理要求を受け付けた場合
図36は、本実施形態に係る電源管理の処理手順例(アプリ(1)のデバイス利用時)を示すシーケンス図である。また、図37は、本実施形態に係るドライバ状態情報50D3のデータ遷移例を示す図である。
図37には、図36に示す処理によるドライバ状態情報50D4のデータ遷移例が示されている。図36に示す例は、情報処理装置100における処理手順例であり、アプリケーション(1)AP1が、機能提供時に3つのデバイス(A)DVa,(B)DVb,(C)DVcを利用し、利用デバイスDVのうち、デバイス(A)DVaが接続済みとなっている場合を想定したものである。よって、図37(A)に示すドライバ状態情報50D4には、デバイス(A)DVaに対応するドライバ(A)DDaの利用状態が反映されている例(利用状態更新後のデータ例)が示されている。なお、制御情報には、図32に示す最大利用許可情報50D3が含まれている。
以下に、図36の処理手順について説明するが、図26と同じ処理については、その説明を簡略化する。
図36に示すように、まず、情報処理装置100は、デバイス(B)DVb,(C)DVcの接続をデバイス検知部71により検知する(ステップS1501)。その結果、デバイス検知部71からは、ドライバ管理システム40(利用ドライバ特定部)に対して、検知結果が渡される(ステップS1502)。
ドライバ管理システム40は、処理要求受付部41が、アプリケーション(1)AP1からの処理要求通知を受け付ける(ステップS1601)。
ドライバ管理システム40は、処理要求受付部41が利用ドライバ特定部42に対し、要求処理の実行に伴う利用ドライバDDの特定(処理要求通知受付時の利用ドライバ特定)を要求する(ステップS1602)。
ドライバ管理システム40は、利用ドライバ特定部42が、処理要求通知受付時の利用ドライバ特定(起動制御対象特定)を行う(ステップS1603)。このとき、利用ドライバ特定部42は、アプリ識別情報に基づき、機能提供を行うアプリケーション(1)AP1を特定する。利用ドライバ特定部42は、制御情報に基づき、特定したアプリケーション(1)AP1が利用するデバイス(A)DVa,(B)DVb,(C)DVcを特定する。利用ドライバ特定部42は、制御情報に基づき、特定したデバイス(A)DVa,(B)DVb,(C)DVcに対応するドライバ(A)DDa,(B)DDb,(C)DDcを特定する。
ドライバ管理システム40は、利用ドライバ特定部42が有する起動・終了許可判定部420が、特定されたドライバ(A)DDa,(B)DDb,(C)DDcの起動許可を判定する(ステップS1604)。このとき、起動・終了許可判定部420は、制御情報(最大利用許可情報)に基づき、特定されたドライバ(A)DDa,(B)DDb,(C)DDcのドライバ識別情報に対応付けられた最大利用許可数情報を取得する。起動・終了許可判定部420は、制御情報(ドライバ状態情報)に基づき、特定されたドライバ(A)DDa,(B)DDb,(C)DDcのドライバ識別情報に対応付けられた利用状態情報を取得する。
起動・終了許可判定部420は、特定された利用ドライバDDの起動により、利用数が最大利用許可数を超えるか否かを判定することで、起動許可を判定する。このとき、起動・終了許可判定部420は、利用状態情報の利用数をインクリメント[+1]し、その算出値(起動時の利用数)が、最大利用許可情報の最大利用許可数を超えるか否かを判定する。
その結果、起動・終了許可判定部420は、例えば、ドライバ(A)DDaの場合、算出値'2'(起動時の利用数)が最大利用許可数'2'以内であることから、ドライバ(A)DDaの起動を許可する。また、起動・終了許可判定部420は、例えば、ドライバ(B)DDb,(C)DDcの場合、算出値'1'(起動時の利用数)が最大利用許可数'1'以内であることから、ドライバ(B)DDb,(C)DDcの起動を許可する。
ドライバ管理システム40は、特定した利用ドライバDDの起動が許可されると、利用ドライバ特定部42が、許可された利用ドライバDDの起動要否を判定する(ステップS1605)。利用ドライバ特定部42は、例えば、ドライバ(A)DDaの場合、利用状態情報の利用数が'1'であることから、ドライバ(A)DDaが起動済みであると判定する。その結果、利用ドライバ特定部42は、ドライバ(A)DDaを起動する必要がないと判定する。一方、利用ドライバ特定部42は、例えば、ドライバ(B)DDb,(C)DDcの場合、利用状態情報の利用数が'0'であることから、ドライバ(B)DDb,(C)DDcが起動されていないと判定する。その結果、利用ドライバ特定部42は、ドライバ(B)DDb,(C)DDcを起動する必要があると判定する。
ドライバ管理システム40は、上記判定結果(起動許可判定及び起動要否判定)に基づき、利用ドライバ特定部42が起動・終了制御部43に対し、ドライバ(B)DDb,(C)DDcの起動を要求する(ステップS1606)。このとき、起動・終了制御部43は、利用ドライバ特定部42からドライバ(B)DDb,(C)DDcのドライバ識別情報を受け取る。
ドライバ管理システム40は、起動・終了制御部43が、起動要求に従って該当ドライバDDを起動する(ステップS1607)。このとき、起動・終了制御部43は、ドライバ識別情報に基づき、起動要求されたドライバ(B)DDb,(C)DDcを特定する。起動・終了制御部43は、特定したデバイス(B)DDb,(C)DDcを起動する。
ドライバ管理システム40は、利用ドライバ特定部42が情報管理部61に対し、制御情報に含まれるドライバ状態情報50D4の利用状態情報の更新を要求する(ステップS1608)。このとき、情報管理部61は、利用ドライバ特定部42からドライバ(A)DDa,(B)DDb,(C)DDcのデバイス識別情報及び最新の利用状態情報(インクリメントした利用数)を受け取る。
ドライバ管理システム40は、情報管理部61が、制御情報保持部50にアクセスし、ドライバ状態情報50D4の利用状態情報を更新する(ステップS1609)。このとき、情報管理部61は、ドライバ識別情報に基づき、ドライバ(A)DDa,(B)DDb,(C)DDcに対応する利用状態情報を参照する。情報管理部61は、参照した利用状態情報に最新の利用状態情報'2','1','1'を設定し、利用数(設定値)を更新する。その結果、図37(B)に示すようなドライバ状態情報50D4に更新される。具体的には、ドライバ(A)DDaの利用数'1'が'2'に更新され、ドライバ(B)DDb,(C)DDcの利用数'0'が'1'に更新される。
ドライバ管理システム40は、起動・終了制御部43からの起動結果(正常起動の旨)を受けて、利用ドライバ特定部42が電源管理システム10(供給制御部)に対し、デバイス(B)DVb,(C)DVc(起動した利用ドライバが対応するデバイス)に対する電力供給の開始を要求する(ステップS1610)。このとき、電源管理システム10(供給制御部)は、利用ドライバ特定部42からデバイス(B)DVb,(C)DVcのデバイス識別情報を受け取る。
電源管理システム10は、供給制御部13が、供給開始要求に従って電力供給を開始する(ステップS1611)。このとき、供給制御部13は、デバイス識別情報に基づき、供給開始するデバイス(B)DVb,(C)DVcを特定する。供給制御部13は、特定したデバイス(B)DVb,(C)DVcに対して、電力供給を開始する。
電源管理システム10は、正常に電力供給が開始されると、供給制御部13がドライバ管理システム40(利用ドライバ特定部)に対し、電力供給の開始結果(正常に開始された旨)を返す(ステップS1612)。
これを受けてドライバ管理システム40は、利用ドライバ特定部42が、処理要求受付部41を介して、アプリケーション(1)AP1に対し、ドライバ起動・電力供給結果(利用ドライバの起動と利用デバイスの電力供給開始OKの旨)を返す(ステップS1613,S1614)。
これにより、アプリケーション(1)AP1では、起動中のドライバ(A)DDa又は起動されたドライバ(B)DDb,(C)DDcを介して、デバイス(A)DVa,(B)DVb,(C)DVcを利用し、要求処理が実行される(ステップS1615)。
[場面2]:アプリ(1)のデバイス利用時にアプリ(2)から処理要求を受け付けた場合
図38は、本実施形態に係る電源管理の処理手順例(アプリ(1),(2)間の排他制御時)を示すシーケンス図である。図38に示す例は、図36に示した処理後の情報処理装置100における処理手順例であり、アプリケーション(2)AP2が、機能提供時に2つのデバイス(A)DVa,(D)DVdを利用する場合を想定したものである。なお、制御情報には、図32に示す最大利用許可情報50D3が含まれている。
以下に、図38の処理手順について説明するが、図36と同じ処理については、その説明を簡略化する。
図38に示すように、まず、情報処理装置100は、デバイス(D)DVdの接続をデバイス検知部71により検知する(ステップS1701)。その結果、デバイス検知部71からは、ドライバ管理システム40(利用ドライバ特定部)に対して、検知結果が渡される(ステップS1702)。
ドライバ管理システム40は、処理要求受付部41が、アプリケーション(2)AP2からの処理要求通知を受け付ける(ステップS1801)。
ドライバ管理システム40は、処理要求受付部41が利用ドライバ特定部42に対し、要求処理の実行に伴う利用ドライバDDの特定(処理要求通知受付時の利用ドライバ特定)を要求する(ステップS1802)。
ドライバ管理システム40は、利用ドライバ特定部42が、処理要求通知受付時の利用ドライバ特定(起動制御対象特定)を行う(ステップS1803)。このとき、利用ドライバ特定部42は、アプリ識別情報に基づき、機能提供を行うアプリケーション(2)AP2を特定する。利用ドライバ特定部42は、制御情報に基づき、特定したアプリケーション(2)AP2が利用するデバイス(A)DVa,(D)DVdを特定する。利用ドライバ特定部42は、制御情報に基づき、特定したデバイス(A)DVa,(D)DVdに対応するドライバ(A)DDa,(D)DDdを特定する。
ドライバ管理システム40は、利用ドライバ特定部42が有する起動・終了許可判定部420が、特定されたドライバ(A)DDa,(D)DDdの起動許可を判定する(ステップS1804)。このとき、起動・終了許可判定部420は、制御情報(最大利用許可情報)に基づき、特定されたドライバ(A)DDa,(D)DDdのドライバ識別情報に対応付けられた最大利用許可数情報を取得する。起動・終了許可判定部420は、制御情報(ドライバ状態情報)に基づき、特定されたドライバ(A)DDa,(D)DDdのドライバ識別情報に対応付けられた利用状態情報を取得する。
起動・終了許可判定部420は、特定された利用ドライバDDの起動により、利用数が最大利用許可数を超えるか否かを判定することで、起動許可を判定する。このとき、起動・終了許可判定部420は、利用状態情報の利用数をインクリメント[+1]し、その算出値(起動時の利用数)が、最大利用許可情報の最大利用許可数を超えるか否かを判定する。
その結果、起動・終了許可判定部420は、例えば、ドライバ(A)DDaの場合、算出値'3'(起動時の利用数)が、最大利用許可数'2'を超えていることから、ドライバ(A)DDaの起動を許可しない。これにより、起動・終了許可判定部420では、利用ドライバDDの中で、起動が許可されない利用ドライバDDが1つでも存在するため、ドライバ(A)DDa,(D)DDdの両方の起動を許可しない。
ドライバ管理システム40は、特定した利用ドライバDDの起動が許可されなければ、利用ドライバ特定部42が、処理要求受付部41を介して、アプリケーション(2)AP2に対し、起動許可判定結果(利用ドライバの起動が許可されなかった旨)を返す(ステップS1805,S1806)。
その結果、利用者には、アプリケーション(2)AP2による要求処理の実行ができない旨が通知される。
[場面3]:アプリ(1)からの処理終了通知を受け付けた場合
図39は、本実施形態に係る電源管理の処理手順例(アプリ(1)のデバイス利用終了時)を示すシーケンス図である。また、図40は、本実施形態に係るドライバ状態情報50D4のデータ遷移例を示す図である。
図40には、図39に示す処理によるドライバ状態情報50D4のデータ遷移例が示されている。図39に示す例は、図38に示した処理後の情報処理装置100における処理手順例であり、アプリケーション(1)AP1が、3つのデバイス(A)DVa,(B)DVb,(C)DVcを利用して要求処理を実行した場合を想定したものである。なお、図40(A)に示すドライバ状態情報50D4には、機能提供時のアプリケーション(1)AP1によるドライバ(A)DDa(B)DVb,(C)DVcの利用状態が反映されている例(利用状態更新後のデータ例)が示されている。また、制御情報には、図32に示す最大利用許可情報50D3が含まれている。
以下に、図39の処理手順について説明するが、図27と同じ処理については、その説明を簡略化する。
ドライバ管理システム40は、処理要求受付部41が、アプリケーション(1)AP1からの処理終了通知を受け付ける(ステップS1901)。
ドライバ管理システム40は、処理要求受付部41が利用ドライバ特定部42に対し、終了した要求処理の利用ドライバDDの特定(処理終了通知受付時の利用ドライバ特定)を要求する(ステップS1902)。
ドライバ管理システム40は、利用ドライバ特定部42が、処理終了通知受付時の利用ドライバ特定(終了制御対象特定)を行う(ステップS1903)。このとき、利用ドライバ特定部42は、アプリ識別情報に基づき、機能提供を行ったアプリケーション(1)AP1を特定する。利用ドライバ特定部42は、制御情報に基づき、特定したアプリケーション(1)AP1が利用したデバイス(A)DVa,(B)DVb,(C)DVcを特定する。利用ドライバ特定部42は、制御情報に基づき、特定したデバイス(A)DVa,(B)DVb,(C)DVcに対応するドライバ(A)DDa,(B)DDb,(C)DDcを特定する。
ドライバ管理システム40は、利用ドライバ特定部42が有する起動・終了許可判定部420が、特定されたドライバ(A)DDa,(B)DDb,(C)DDcの終了許可を判定する(ステップS1904)。このとき、起動・終了許可判定部420は、制御情報(最大利用許可情報)に基づき、特定されたドライバ(A)DDa,(B)DDb,(C)DDcのドライバ識別情報に対応付けられた最大利用許可数情報を取得する。起動・終了許可判定部420は、制御情報(ドライバ状態情報)に基づき、特定されたドライバ(A)DDa,(B)DDb,(C)DDcのドライバ識別情報に対応付けられた利用状態情報を取得する。
起動・終了許可判定部420は、特定された利用ドライバDDが、他のアプリケーションAPから利用されているか否かを判定することで、終了許可を判定する。このとき、起動・終了許可判定部420は、利用状態情報の利用数をデクリメント[−1]し、その算出値(終了時の利用数)が'0'か否かを判定する。
その結果、起動・終了許可判定部420は、例えば、ドライバ(A)DDaの場合、算出値'1'(終了時の利用数)が1以上で('0'でなく)、他のアプリケーションAPから利用されていることから、ドライバ(A)DDaの終了を許可しない。また、起動・終了許可判定部420は、例えば、ドライバ(B)DDb,(C)DDcの場合、算出値'0'(終了時の利用数)が'0'で、他のアプリケーションAPから利用されていないことから、ドライバ(B)DDb,(C)DDcの終了を許可する。
ドライバ管理システム40は、上記判定結果(終了許可判定)に基づき、利用ドライバ特定部42が起動・終了制御部43に対し、ドライバ(B)DDb,(C)DDcの終了を要求する(ステップS1905)。このとき、起動・終了制御部43は、利用ドライバ特定部42からドライバ(B)DDb,(C)DDcのドライバ識別情報を受け取る。
ドライバ管理システム40は、起動・終了制御部43が、終了要求に従って該当ドライバDDを起動する(ステップS1906)。このとき、起動・終了制御部43は、ドライバ識別情報に基づき、終了要求されたドライバ(B)DDb,(C)DDcを特定する。起動・終了制御部43は、特定したデバイス(B)DDb,(C)DDcを終了する。
ドライバ管理システム40は、利用ドライバ特定部42が情報管理部61に対し、制御情報に含まれるドライバ状態情報50D4の利用状態情報の更新を要求する(ステップS1907)。このとき、情報管理部61は、利用ドライバ特定部42からドライバ(A)DDa,(B)DDb,(C)DDcのデバイス識別情報及び最新の利用状態情報(デクリメントした利用数)を受け取る。
ドライバ管理システム40は、情報管理部61が、制御情報保持部50にアクセスし、ドライバ状態情報50D4の利用状態情報を更新する(ステップS1908)。このとき、情報管理部61は、ドライバ識別情報に基づき、ドライバ(A)DDa,(B)DDb,(C)DDcに対応する利用状態情報を参照する。情報管理部61は、参照した利用状態情報に最新の利用状態情報'1','0','0'を設定し、利用数(設定値)を更新する。その結果、図40(B)に示すようなドライバ状態情報50D4に更新される。具体的には、ドライバ(A)DDaの利用数'2'が'1'に更新され、ドライバ(B)DDb,(C)DDcの利用数'1'が'0'に更新される。
ドライバ管理システム40は、起動・終了制御部43からの終了結果(正常終了の旨)を受けて、利用ドライバ特定部42が電源管理システム10(供給制御部)に対し、デバイス(B)DVb,(C)DVc(終了した利用ドライバが対応するデバイス)に対する電力供給の停止を要求する(ステップS1909)。このとき、電源管理システム10(供給制御部)は、利用ドライバ特定部42からデバイス(B)DVb,(C)DVcのデバイス識別情報を受け取る。
電源管理システム10は、供給制御部13が、供給停止要求に従って電力供給を停止する(ステップS1910)。このとき、供給制御部13は、デバイス識別情報に基づき、供給停止するデバイス(B)DVb,(C)DVcを特定する。供給制御部13は、特定したデバイス(B)DVb,(C)DVcに対して、電力供給を停止する。
電源管理システム10は、正常に電力供給が停止されると、供給制御部13がドライバ管理システム40(利用ドライバ特定部)に対し、電力供給の停止結果(正常に停止された旨)を返す(ステップS1911)。
[場面4]:アプリ(1)からのデバイス利用終了後にアプリ(2)から処理要求を受け付けた場合
図41は、本実施形態に係る電源管理の処理手順例(アプリ(2)のデバイス利用時)を示すシーケンス図である。また、図42は、本実施形態に係るドライバ状態情報50D4のデータ遷移例を示す図である。
図42には、図41に示す処理によるドライバ状態情報50D4のデータ遷移例が示されている。図41に示す例は、図39に示した処理後の情報処理装置100における処理手順例であり、再び、アプリケーション(2)AP2が、2つのデバイス(A)DVa,(D)DVdを利用して要求処理を実行する場合を想定したものである。なお、デバイス(D)DVdは、上述した場面2において、情報処理装置100に接続されており、デバイス検知部71により検知されているものとする。また、図42(A)に示すドライバ状態情報50D4には、アプリケーション(1)AP1による要求処理終了時のドライバ(A)DDa(B)DVb,(C)DVcの利用状態が反映されている例(利用状態更新後のデータ例)が示されている。また、制御情報には、図32に示す最大利用許可情報50D3が含まれている。
以下に、図41の処理手順について説明するが、図38と同じ処理については、その説明を簡略化する。
図41に示すように、情報処理装置100は、ドライバ管理システム40が、処理要求受付部41により、アプリケーション(2)AP2からの処理要求通知を受け付ける(ステップS2001)。
ドライバ管理システム40は、処理要求受付部41が利用ドライバ特定部42に対し、要求処理の実行に伴う利用ドライバDDの特定(処理要求通知受付時の利用ドライバ特定)を要求する(ステップS2002)。
ドライバ管理システム40は、利用ドライバ特定部42が、処理要求通知受付時の利用ドライバ特定(起動制御対象特定)を行う(ステップS2003)。このとき、利用ドライバ特定部42は、アプリ識別情報に基づき、機能提供を行うアプリケーション(2)AP2を特定する。利用ドライバ特定部42は、制御情報に基づき、特定したアプリケーション(2)AP2が利用するデバイス(A)DVa,(D)DVdを特定する。利用ドライバ特定部42は、制御情報に基づき、特定したデバイス(A)DVa,(D)DVdに対応するドライバ(A)DDa,(D)DDdを特定する。
ドライバ管理システム40は、利用ドライバ特定部42が有する起動・終了許可判定部420が、特定されたドライバ(A)DDa,(D)DDdの起動許可を判定する(ステップS2004)。このとき、起動・終了許可判定部420は、制御情報に基づき、特定されたドライバ(A)DDa,(D)DDdのドライバ識別情報に対応付けられた最大利用許可数情報を取得する。起動・終了許可判定部420は、制御情報に基づき、特定されたドライバ(A)DDa,(D)DDdのドライバ識別情報に対応付けられた利用状態情報を取得する。
起動・終了許可判定部420は、特定された利用ドライバDDの起動により、利用数が最大利用許可数を超えるか否かを判定することで、起動許可を判定する。
その結果、起動・終了許可判定部420は、例えば、ドライバ(A)DDaの場合、利用状態情報の利用数をインクリメント[+1]した算出値'2'(起動時の利用数)が、最大利用許可情報の最大利用許可数'2'以内であることから、ドライバ(A)DDaの起動を許可する。また、起動・終了許可判定部420は、例えば、ドライバ(D)DDdの場合、利用状態情報の利用数をインクリメント[+1]した算出値'1'(起動時の利用数)が、最大利用許可情報の最大利用許可数'1'以内であることから、ドライバ(D)DDdの起動を許可する。
ドライバ管理システム40は、特定した利用ドライバDDの起動が許可されると、利用ドライバ特定部42が、許可された利用ドライバDDの起動要否を判定する(ステップS2005)。利用ドライバ特定部42は、例えば、ドライバ(A)DDaの場合、利用状態情報の利用数が'1'であることから、ドライバ(A)DDaが起動済みであると判定する。その結果、利用ドライバ特定部42は、ドライバ(A)DDaを起動する必要がないと判定する。一方、利用ドライバ特定部42は、例えば、ドライバ(D)DDdの場合、利用状態情報の利用数が'0'であることから、ドライバ(D)DDdが起動されていないと判定する。その結果、利用ドライバ特定部42は、ドライバ(D)DDdを起動する必要があると判定する。
ドライバ管理システム40は、上記判定結果(起動許可判定及び起動要否判定)に基づき、利用ドライバ特定部42が起動・終了制御部43に対し、ドライバ(D)DDdの起動を要求する(ステップS2006)。このとき、起動・終了制御部43は、利用ドライバ特定部42からドライバ(D)DDdのドライバ識別情報を受け取る。
ドライバ管理システム40は、起動・終了制御部43が、起動要求に従って該当ドライバDDを起動する(ステップS2007)。このとき、起動・終了制御部43は、ドライバ識別情報に基づき、起動要求されたドライバ(D)DDdを特定する。起動・終了制御部43は、特定したデバイス(D)DDdを起動する。
ドライバ管理システム40は、利用ドライバ特定部42が情報管理部61に対し、制御情報に含まれるドライバ状態情報50D4の利用状態情報の更新を要求する(ステップS2008)。このとき、情報管理部61は、利用ドライバ特定部42からドライバ(A)DDa,(D)DDdのデバイス識別情報及び最新の利用状態情報(インクリメントした利用数)を受け取る。
ドライバ管理システム40は、情報管理部61が、制御情報保持部50にアクセスし、ドライバ状態情報50D4の利用状態情報を更新する(ステップS2009)。このとき、情報管理部61は、ドライバ識別情報に基づき、ドライバ(A)DDa,(D)DDdに対応する利用状態情報を参照する。情報管理部61は、参照した利用状態情報に最新の利用状態情報'2','1'を設定し、利用数(設定値)を更新する。その結果、図42(B)に示すようなドライバ状態情報50D4に更新される。具体的には、ドライバ(A)DDaの利用数'1'が'2'に更新され、ドライバ(D)DDdの利用数'0'が'1'に更新される。
ドライバ管理システム40は、起動・終了制御部43からの起動結果(正常起動の旨)を受けて、利用ドライバ特定部42が電源管理システム10(供給制御部)に対し、デバイス(D)DVd(起動した利用ドライバが対応するデバイス)に対する電力供給の開始を要求する(ステップS2010)。このとき、電源管理システム10(供給制御部)は、利用ドライバ特定部42からデバイス(D)DVdのデバイス識別情報を受け取る。
電源管理システム10は、供給制御部13が、供給開始要求に従って電力供給を開始する(ステップS1611)。このとき、供給制御部13は、デバイス識別情報に基づき、供給開始するデバイス(B)DVb,(C)DVcを特定する。供給制御部13は、特定したデバイス(B)DVb,(C)DVcに対して、電力供給を開始する。
電源管理システム10は、正常に電力供給が開始されると、供給制御部13がドライバ管理システム40(利用ドライバ特定部)に対し、電力供給の開始結果(正常に開始された旨)を返す(ステップS2012)。
これを受けてドライバ管理システム40は、利用ドライバ特定部42が、処理要求受付部41を介して、アプリケーション(2)AP2に対し、ドライバ起動・電力供給結果(利用ドライバの起動と利用デバイスの電力供給開始OKの旨)を返す(ステップS2013,S2014)。
これにより、アプリケーション(2)AP2では、起動中のドライバ(A)DDa又は起動されたドライバ(D)DDdを介して、デバイス(A)DVa,(D)DVdを利用し、要求処理が実行される(ステップS2015)。
<まとめ>
以上のように、本実施形態に係る情報処理装置100によれば、利用ドライバ特定部42により、利用者に機能提供を行うアプリケーションAP、機能提供時の利用デバイスDV、及び機能提供時の利用ドライバDDが対応付けられた制御情報(デバイス対応情報及びドライバ対応情報)に基づき、利用者からの要求処理を行うアプリケーションAPの利用デバイスDVに対応するドライバDD(利用ドライバ)を特定する。このとき、利用ドライバ特定部42は、起動・終了許可判定部420により、アプリケーションAPからの利用を許可するか否かを判定し、利用許可の判定結果に基づき、起動・終了制御部43に対して、特定した利用ドライバDDの起動・終了を要求する。情報処理装置100は、起動・終了制御部43により、利用ドライバ特定部42で特定された利用ドライバDDの起動・終了を制御する。また、情報処理装置100は、供給制御部13により、起動・終了された利用ドライバDDが対応するデバイスDV(利用デバイス)に対する電力供給の開始・停止を制御する。
これによって、本実施形態に係る情報処理装置100では、第3の実施形態と同様の効果を奏するとともに、電子機器EDにおいて、省電力化を実現するためのドライバDDの利用制御設定が可能な環境が提供できる。
<変形例>
図43は、本発明の変形例に係るドライバ対応情報50D2のデータ例を示す図である。
上記実施形態では、ドライバ対応情報50D2を、1つのデバイス識別情報と1つのドライバ識別情報とがデバイスDVごとに対応付けられた1対1の情報セットのデータ例を説明したが、この限りでない。例えば、図43に示すように、1つのデバイス識別情報と複数のドライバ識別情報とがデバイスDVごとに対応付けられた1対複数の情報セットであってもよい。
図43に示すように、1対複数の情報セットによるドライバ対応情報50D2では、[デバイス識別]及び[利用ドライバ]に加えて、[標準ドライバ]などの情報項目が含まれる。
[標準ドライバ識別]項目は、機能提供時に利用されるデバイスDVに対応する複数のドライバDDのうち、標準利用(優先利用)するドライバDDを識別する情報(以下便宜上「標準ドライバ情報」という)が設定される項目である。図中には、例えば、デバイス(D)DVdに対して、[利用ドライバ]項目に設定された2つのドライバ(D1),(D2)のドライバ識別情報のうち、ドライバ(D2)のドライバ識別情報が、[標準ドライバ識別]項目の値に設定されている例が示されている。
[標準ドライバ]項目の値は、例えば、管理者が、搭載ドライバDDに基づき、予め設定しておく。よって、情報管理部61は、管理者に対し、これらの項目値を設定可能な設定機能(所定のツール)を提供し、設定機能を介して入力値を受け付けると、制御情報保持部50にアクセスし、入力値をドライバ対応情報50D2の項目値として設定する。なお、情報管理部61は、ドライバDDのインストールに連動して、[標準ドライバ]項目の値を設定するようにしてもよい。この場合、インストールされたドライバDDに関する情報(インストール情報)などに基づき、最新バージョンのドライバDDのドライバ識別情報を、[標準ドライバ]項目の値に設定する。
本変形例では、[標準ドライバ]項目を含む上記ドライバ対応情報50D2により、次のような利用ドライバ特定・起動許可判定処理が行える。
図44は、本変形例に係る利用ドライバ特定・起動許可判定の処理手順例(電力供給開始時)を示すフローチャートである。なお、図44の処理手順について説明するが、図38と同じ処理については、その説明を省略し、ステップS2107からの処理について説明する。
図44に示すように、利用ドライバ特定部42は、特定した利用ドライバDDのドライバ識別情報に基づき、特定した利用ドライバDDがインストール済みか否かを判定する(ステップS2107)。
利用ドライバ特定部42は、利用ドライバDDがインストール済みの場合(ステップ2107:YES)、電源管理対象とするデバイスDVと、該デバイスDVに対応するドライバDD(起動制御対象とするドライバ)とを特定する(ステップS2108)。このとき、利用ドライバ特定部42は、接続中の利用デバイスDVを電力供給の開始対象として特定し、該利用デバイスDVに対応するインストール済みの利用ドライバDDを起動制御対象として特定する。またこのとき、利用ドライバ特定部42は、電源管理対象として特定した同一デバイスDVに対して、複数のドライバDDを起動制御対象として特定した場合、ドライバ対応情報50D2の標準ドライバ情報に基づき、標準利用するドライバDDとして設定されたドライバDDを起動制御対象とする。
利用ドライバ特定部42は、電源管理対象のデバイスDVと起動制御対象のドライバDDとが特定されたか否かを判定する(ステップS2109)。
利用ドライバ特定部42は、電源管理対象のデバイスDVと起動制御対象のドライバDDとが特定された場合(ステップS2109:YES)、起動・終了許可判定部420により、制御情報保持部50にアクセスし、最大利用許可情報50D3及びドライバ状態情報50D4を参照する(ステップS2110)。このとき、起動・終了許可判定部420は、特定された利用ドライバDVのドライバ識別情報に基づき、最大利用許可情報50D3を参照し、利用ドライバDDの最大利用許可数を取得し、ドライバ状態情報50D4を参照し、アプリケーションAPからの現在の利用数を取得する。
起動・終了許可判定部420は、特定された利用ドライバDDの起動により、利用数が最大利用許可数を超えるか否かを判定する(ステップS2111:起動許可判定処理)。このとき、起動・終了許可判定部420は、取得した現在の利用数をインクリメント(1加算)し、その算出値(起動時の利用数)が、取得した最大利用許可数を超えるか否かを判定する。
起動・終了許可判定部420は、利用ドライバDDの起動により、利用数が最大利用許可数以内の場合(ステップ2111:NO)、特定された利用ドライバDDの起動を許可し、その旨を利用ドライバ特定部42に通知する。このとき、起動・終了許可判定部420は、利用ドライバ特定部42に対して、許可されたドライバDDの利用状態情報に基づく起動済み情報(起動済みか否かを示す情報)を渡す。
これを受けて利用ドライバ特定部42は、起動済み情報に基づき、許可されたドライバDDが、他のアプリケーションAPからの利用により起動済みか否かを判定する(ステップS2112:起動要否判定処理)。
利用ドライバ特定部42は、許可されたドライバDDが起動されていない場合(ステップS2112:NO)、起動・終了制御部43に対し、許可されたドライバDDの起動を要求する(ステップS2113)。
利用ドライバ特定部42は、起動結果を受けて、電源管理システム10(供給制御部)に対し、起動されたドライバDDが対応するデバイスDVに対する電力供給の開始を要求する(ステップS2114)。
また、起動・終了許可判定部420は、利用ドライバDDの起動により、利用数が最大利用許可数を超える場合(ステップ2111:YES)、起動制御対象とする他の利用ドライバDDが存在するか否か判定する(ステップS2116)。このとき、起動・終了許可判定部420は、ドライバ対応情報50D3内に、上記ステップS2108の処理で特定したドライバDDの他に、起動制御対象とするドライバDDが設定されているか否かを判定する。
起動・終了許可判定部420は、起動制御対象とする他の利用ドライバDDが存在しない場合(ステップS2116:NO)、所定のエラー処理を行う(ステップS2115)。このとき行うエラー処理は、機能提供時にドライバDDが利用できない旨(最大利用許可数超過による利用不許可の結果)をアプリケーションAPに通知するなどである。
一方、起動・終了許可判定部420は、起動制御対象とする他の利用ドライバDDが存在する場合(ステップS2116:YES)、利用数が最大利用許可数を超える利用ドライバDDを、存在が確認された他の利用ドライバDDと入れ替える(ステップS2117)。つまり、起動・終了許可判定部420は、起動制御対象とするドライバDDを入れ替える。
その後、起動・終了許可判定部420は、上記ステップS2110の処理に移行し、入れ替えられたドライバDDに対する起動許可判定処理(ステップS2111)及び起動要否判定処理(ステップS2112)を行う。
このように、本変形例に係る利用ドライバ特定部42は、処理要求受付部41から処理要求通知を受け付けると、利用ドライバDDの複数のアプリケーションAPからの利用数が、最大利用許可数を超えた場合に、起動制御対象とする利用ドライバDDを、最大利用許可数を超えない他の利用ドライバDDに切り替える。その結果、利用ドライバ特定部42は、切り替えた利用ドライバDDの起動を要求し、切り替えた利用ドライバDDが対応するデバイスDV(利用デバイス)に対する電力供給の開始を要求する。
これにより、本変形例では、アプリケーションAPから、ドライバDDの最大利用許可数を超える利用があった場合でも、代替ドライバDDを利用し、要求処理の実行を継続して行える環境を提供できる。
ここまで、上記実施形態の説明を行ってきたが、上記実施形態に係る「電源管理機能」は、図を用いて説明を行った各処理手順を、動作環境(プラットフォーム)にあったプログラミング言語でコード化したプログラムが、情報処理装置100の演算装置(CPU)により実行されることで実現される。
上記プログラムは、コンピュータが読み取り可能な記録媒体103aに格納することができる。これにより、例えば、上記プログラムは、ドライブ装置103を介して、情報処理装置100にインストールすることができる。また、情報処理装置100は、インタフェース装置107を備えていることから、電気通信回線を用いて上記プログラムをダウンロードし、インストールすることもできる。
また、上記実施形態では、情報処理装置100が、制御情報としてデバイス対応情報50D1やドライバ対応情報50D2を保持する構成について説明を行ったが、この限りでない。例えば、情報処理装置100は、自機と異なる装置に保持されるデバイス対応情報50D1やドライバ対応情報50D2を、所定のデータ伝送路(ネットワーク)を介して参照する構成であってもよい。
また、上記実施形態においても、例えば、図20に示すような、サーバSVと電子機器EDとが接続され、データ通信可能な機器構成に適用可能である。ただし、ドライバ管理システム40は、サーバSVが有し、電子機器EDが電源管理システム10を有する構成の場合には、サーバSVのドライバ管理システム40と、電子機器EDの電源管理システム10とが、所定のデータ伝送路を介して連携動作する。
最後に、上記実施形態に挙げた形状や構成に、その他の要素との組み合わせなど、ここで示した要件に、本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。