以下、添付図面を参照しながら、本発明にかかる情報処理システム、機器、機能利用制限方法及びプログラムの実施形態を詳細に説明する。
(第1実施形態)
図1は、第1実施形態の情報処理システム100の構成の一例を示すブロック図である。図1に示すように、情報処理システム100は、情報処理装置300と、機器400と、を備える。
情報処理装置300及び機器400は、ネットワーク101を介して接続されている。第1実施形態では、ネットワーク101がインターネットである場合を例に取り説明するが、これに限定されず、例えば、LAN(Local Area Network)であってもよい。
また第1実施形態では、情報処理システム100がクラウドコンピューティング型の運用形態である場合を例に取り説明するが、これに限定されず、例えば、オンプレミス型の運用形態であってもよい。
情報処理装置300は、機器400の実行対象の機能など各種機能の利用が制限されているか否かを管理するものであり、例えば、1台以上のコンピュータにより実現できる。第1実施形態では、情報処理装置300がクラウド化されている場合を例に取り説明するが、これに限定されるものではない。
また第1実施形態では、情報処理装置300が、1台のコンピュータで実現されている場合(つまり、装置として実現されている場合)を例に取り説明するが、これに限定されず、情報処理装置300を2台以上のコンピュータで実現し(つまり、システムとして実現し)、後述する情報処理装置300の機能を2台以上のコンピュータで分散して実現するようにしてもよい。
図2は、第1実施形態の情報処理装置300のハードウェア構成の一例を示すブロック図である。図2に示すように、情報処理装置300は、CPU(Central Processing Unit)301と、RAM(Random Access Memory)303と、ROM(Read Only Memory)305と、HDD(Hard Disk Drive)307と、入出力I/F(インタフェース)309と、通信I/F(インタフェース)311と、を備える。
CPU301は、情報処理装置300の動作を統括的に制御する。CPU301は、RAM303をワークエリアとしてROM305又はHDD307などに格納されたプログラムを実行することで、情報処理装置300全体の動作を制御する。
入出力I/F309は、操作者の操作に応じた各種の入力を行うとともに、各種画面を表示する。なお、入出力I/F309は、タッチパネルディスプレイなどのように、入力機能と表示機能との双方を一体的に備えた構成であってもよいし、入力機能を有する入力装置と表示機能を有する表示装置とを別体として備えた構成であってもよい。
通信I/F311は、ネットワーク101を介して、外部の装置と通信するためのインタフェースである。
機器400は、ネットワーク101に接続可能な電子機器である。第1実施形態では、機器400として、例えば、印刷装置、複写機、複合機(MFP:Multifunction Peripheral)、スキャナ装置、及びファクシミリ装置等の画像形成装置を例に取り説明する。なお、複合機は、複写機能、印刷機能、スキャナ機能、及びファクシミリ機能のうち少なくとも2つの機能を有するものである。
但し、機器400は、画像形成装置に限定されるものではなく、例えば、プロジェクタ、カメラ、エアコン、冷蔵庫、蛍光灯、自販機、及びハンドヘルド型端末等の各種電子機器であってもよい。また図1に示す例では、機器400の台数が1台となっているが、機器400の台数は何台であってもよい。
図3は、第1実施形態の機器400のハードウェア構成の一例を示すブロック図である。図3に示すように、機器400は、CPU401と、ROM404及びRAM405を有するシステムメモリ403と、ASIC(Application Specific Integrated Circuit)407と、通信I/F409と、外部I/F(インタフェース)410と、HDD411と、操作パネル413(表示部の一例)と、エンジン415と、スキャナ417と、を備える。
CPU401は、機器400の動作を統括的に制御する。CPU401は、システムメモリ403のRAM405をワークエリアとしてROM404などに格納されたプログラムを実行することで、機器400全体の動作を制御する。
ASIC407は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、CPU401と各部を各々接続するブリッジとしての機能を有する。
通信I/F409は、ネットワーク101を介して、外部の装置と通信するためのインタフェースである。
外部I/F410は、機器400に周辺機器などを接続するためのインタフェースであり、例えば、USB(Universal Serial Bus)インタフェースやメモリーカードを機器400に接続するためのメモリカードスロットなどが挙げられるが、これらに限定されるものではない。
HDD411は、通信I/F409、外部I/F410、又はスキャナ417などから入力される画像データなどを記憶する。
操作パネル413は、操作者の操作に応じた各種の入力を行うとともに、各種画面を表示する。なお、操作パネル413は、タッチパネルディスプレイなどのように、入力機能と表示機能との双方を一体的に備えた構成であってもよいし、入力機能を有する入力装置と表示機能を有する表示装置とを別体として備えた構成であってもよい。
エンジン415は、プリンタエンジンなどであり、例えば、白黒プロッタ、1ドラムカラープロッタ、4ドラムカラープロッタ、及びファックスユニットなどが挙げられるが、これらに限定されるものではない。なお、エンジン415には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部分が含まれる。
スキャナ417は、原稿をスキャンすることで得られる原稿の濃淡情報からデジタルの画像データを生成するものであり、例えば、CCD(Charge Coupled Device)光電変換素子からなるラインセンサ、A/Dコンバータ、及びこれらの駆動回路などを具備した機構などが挙げられるが、これに限定されるものではない。
図4は、第1実施形態の情報処理装置300及び機器400の機能構成の一例を示すブロック図である。図4に示すように、情報処理装置300は、利用制限機能確認要求受信部351と、利用制限情報記憶部353と、取得部355と、利用制限機能確認応答送信部357と、を有する。
利用制限機能確認要求受信部351及び利用制限機能確認応答送信部357は、例えば、CPU301、RAM303、及び通信I/F311などにより実現できる。利用制限情報記憶部353は、例えば、HDD307などにより実現できる。取得部355は、例えば、CPU301及びRAM303などにより実現できる。
また図4に示すように、機器400は、アプリ451と、プラットフォーム461と、を有する。プラットフォーム461は、機器400を統括的に制御するためのソフトウェア(例えば、ミドルウェア)であり、CPU401がRAM405をワークエリアとしてROM404などに格納されたプログラムを実行することにより実現される。第1実施形態では、アプリ451は、プラットフォーム461上で動作するネイティブアプリケーションであり、CPU401がRAM405をワークエリアとしてROM404などに格納されたプログラムを実行することにより実現される場合を例に取り説明するが、これに限定されるものではない。
プラットフォーム461は、API(Application Programming Interface)471と、利用制限機能確認要求送信部473と、利用制限機能確認応答受信部475と、機能対応情報記憶部477と、機能実行態様情報記憶部479と、実行禁止制御部481と、表示制御部483と、電源オフ態様情報記憶部485と、電源制御部487と、を備える。
API471、実行禁止制御部481、表示制御部483、及び電源制御部487は、例えば、CPU401及びRAM405などにより実現できる。利用制限機能確認要求送信部473及び利用制限機能確認応答受信部475は、例えば、CPU401、RAM405、及び通信I/F409などにより実現できる。機能対応情報記憶部477、機能実行態様情報記憶部479、及び電源オフ態様情報記憶部485は、例えば、HDD411などにより実現できる。
API471は、機器400が有する機能をアプリ451に実行させるためのインタフェースである。第1実施形態では、API471は、複数のAPIにより構成されており、各APIは、実行対象の機能に対応付けられているものとする。つまり、アプリ451は、API471のうちの実行対象の機能に対応付けられたAPIを呼び出すことで、当該実行対象の機能を実行する。
アプリ451は、ユーザなど機器400の操作者による操作パネル413からの操作入力に基づいて起動する。例えば、図5に示す例では、アプリA〜アプリCのアイコンを並べたアプリ一覧画面が操作パネル413に表示されており、機器400の操作者による操作パネル413からの操作入力501によりアプリBが選択されたため、当該アプリBが起動する。
アプリ451は、起動すると、API471を介して、機器400において利用が制限される機能の確認を要求する利用制限機能確認要求を、プラットフォーム461に対して行う。
具体的には、アプリ451は、API471のうちの利用が制限される機能の確認を実行するためのAPIを、機器400及び当該機器400の種別の少なくともいずれかを識別する機器識別情報を付与して(引数として)、呼び出すことにより、利用制限機能確認要求をプラットフォーム461に対して行う。このため利用制限機能確認要求は、機器識別情報を含む。
なお、機器識別情報は、例えば、ROM404又はHDD411に予め記憶されているため、アプリ451は、利用が制限される機能の確認を実行するためのAPIの呼び出しに先立ち、ROM404又はHDD411から機器識別情報を取得しておけばよい。
第1実施形態では、機器識別情報が、機器400を識別する情報である場合を例に取り説明するが、これに限定されず、前述のように、機器400の種別を識別する情報であってもよい。なお第1実施形態では、機器400の機種を識別する機種識別情報(例えば、機器400のモデルを識別するモデル名)と、機器400の機番を示す機番情報と、の組み合わせで、機器400を固有に識別でき、機器識別情報が、機種識別情報と機番情報との組み合わせである場合を例に取り説明するが、これに限定されるものではない。
アプリ451から利用制限機能確認要求が通知されると、実行禁止制御部481が当該利用制限機能確認要求を受け付け、利用制限機能確認要求送信部473は、実行禁止制御部481により受け付けられた利用制限機能確認要求を情報処理装置300に送信する。
利用制限機能確認要求受信部351は、機器400から利用制限機能確認要求を受信する。
利用制限情報記憶部353は、機器識別情報と、機器において利用が制限される機能を示す利用制限機能識別情報と、電源オフの要否を示す電源オフ要否情報と、機能の利用制限の解消方法を示す解消方法情報と、を対応付けて記憶する。但し、利用制限情報記憶部353は、電源オフ要否情報や解消方法情報の記憶を必須とするものではない。
図6は、第1実施形態の利用制限情報記憶部353に記憶されている情報の一例を示す図である。図6に示す例では、利用制限情報記憶部353は、機種識別情報と、機番情報と、利用制限機能識別情報と、電源オフ要否情報と、解消方法情報と、を対応付けて記憶している。
前述したように、第1実施形態では、機器識別情報が、機種識別情報と機番情報との組み合わせであるが、利用制限情報記憶部353に記憶されている機種識別情報は、機番情報が省略されていてもよい。例えば、図6に示すカラム506では、機種識別情報が「MFP−A」、機番情報が空となっているが、これは、機種識別情報が「MFP−A」である全ての機器を示している。
図6に示す利用制限機能識別情報では、「/print/*」は、プリントに関する全ての機能の利用が制限されることを示し、「/scan/*」は、スキャンに関する全ての機能の利用が制限されることを示し、「*」は、全ての機能の利用が制限されることを示している。
また図6に示す電源オフ要否情報では、「No」は、電源オフが不要であることを示し、「Yes」は、電源オフが必要であることを示す。また図6に示す解消方法情報は、方法1、方法2、及び方法3などを示しているが、実際には、例えば、機能の利用制限の解消方法の説明文などを示す。
取得部355は、利用制限機能確認要求受信部351により受信された利用制限機能確認要求に基づいて、機器400において利用が制限される機能を示す利用制限機能識別情報を取得する。
具体的には、取得部355は、利用制限情報記憶部353から、利用制限機能確認要求受信部351により受信された利用制限機能確認要求に含まれる機器識別情報が示す機器400を示す機器識別情報に対応付けられた利用制限機能識別情報、電源オフ要否情報、及び解消方法情報を取得する。但し、利用制限情報記憶部353に電源オフ要否情報や解消方法情報が記憶されていない場合、取得部355は、これらの情報を取得しない。
例えば、利用制限機能確認要求受信部351により受信された利用制限機能確認要求に含まれる機器400の機器識別情報が機種識別情報「MFP−A」及び機番情報「123456」であり、利用制限情報記憶部353に図6に示す情報が記憶されているとする。この場合、取得部355は、利用制限情報記憶部353から、カラム505の利用制限機能識別情報「/print/*」、電源オフ要否情報「No」、及び解消方法情報「方法1」を取得するとともに、カラム506の利用制限機能識別情報「/scan/*」、電源オフ要否情報「No」、及び解消方法情報「方法2」を取得する。
これは、カラム505の機器識別情報は、機種識別情報が「MFP−A」、機番情報が「123456」であり、機器400を示すためである。また、カラム506の機器識別情報は、機種識別情報が「MFP−A」、機番情報が空であるため、機種識別情報が「MFP−A」である全ての機器を示し、機器400も示すためである。
利用制限機能確認応答送信部357は、取得部355により取得された利用制限機能識別情報を含む利用制限機能確認応答を機器400に送信する。具体的には、利用制限機能確認応答送信部357は、取得部355により取得された利用制限機能識別情報、電源オフ要否情報、及び解消方法情報を含む利用制限機能確認応答を機器400に送信する。但し、取得部355により電源オフ要否情報や解消方法情報が取得されない場合、利用制限機能確認応答は、これらの情報を含まない。
利用制限機能確認応答受信部475は、情報処理装置300から、利用制限機能確認応答を受信する。
機能対応情報記憶部477は、機能を識別する機能識別情報と、当該機能を実行するためのAPIを識別するAPI識別情報と、を対応付けて記憶する。機能識別情報は、例えば、機能を識別するためのIDなどが挙げられる。なお第1実施形態では、機能識別情報の値(例えば、IDの特定の桁の値)から、当該機能識別情報が示す機能がプリントに関する機能かスキャンに関する機能であるかを判別できるものとする。API識別情報は、例えば、APIを識別するためのIDなどが挙げられる。
実行禁止制御部481は、利用制限機能確認応答受信部475により受信された利用制限機能確認応答に含まれる利用制限機能識別情報が示す機能の実行をアプリ451に禁止させるための制御を行う。
具体的には、実行禁止制御部481は、機能対応情報記憶部477を参照し、利用制限機能識別情報が示す機能を示す機能識別情報に対応付けられたAPI識別情報が示すAPIの一覧を表す実行禁止API一覧情報を生成し、API471を介して、アプリ451に発行する。なお、実行禁止制御部481は、利用制限機能確認応答受信部475により受信された利用制限機能確認応答に解消方法情報が含まれている場合、実行禁止API一覧情報において、APIの一覧に解消方法情報を対応付けてもよい。
また実行禁止制御部481は、アプリ451に発行した実行禁止API一覧情報を特定するための特定情報も、API471を介して、アプリ451に発行する。特定情報は、実行禁止API一覧情報を特定できればどのような情報であってもよく、例えば、トークンやIDなどが挙げられるが、これらに限定されるものではない。
例えば、利用制限機能確認応答受信部475により受信された利用制限機能確認応答が、図6に示すカラム505の利用制限機能識別情報「/print/*」、電源オフ要否情報「No」、及び解消方法情報「方法1」を含むとともに、カラム506の利用制限機能識別情報「/scan/*」、電源オフ要否情報「No」、及び解消方法情報「方法2」を含むとする。
この場合、実行禁止制御部481は、機能対応情報記憶部477において、プリントに関する機能を示す全ての機能識別情報に対応付けられたAPI識別情報を取得するとともに、スキャンに関する機能を示す全ての機能識別情報に対応付けられたAPI識別情報を取得し、取得したAPI識別情報を並べる。この並べられたAPI識別情報が、実行が禁止されるAPIの一覧を表す。そして実行禁止制御部481は、並べたAPI識別情報のうち、機能対応情報記憶部477において、プリントに関する機能を示す機能識別情報に対応付けられたAPI識別情報には、解消方法情報「方法1」を対応付け、機能対応情報記憶部477において、スキャンに関する機能を示す機能識別情報に対応付けられたAPI識別情報には、解消方法情報「方法2」を対応付けることで、実行禁止API一覧情報を生成する。
また実行禁止制御部481は、生成した実行禁止API一覧情報の特定情報を生成する。そして実行禁止制御部481は、アプリ451により呼び出されたAPI(利用が制限される機能の確認を実行するためのAPI)の戻り値として、実行禁止API一覧情報及び特定情報をアプリ451に返す。
なお実行禁止制御部481は、実行禁止API一覧情報及び特定情報をアプリ451に発行した後も、当該実行禁止API一覧情報及び当該特定情報を対応付けて保持しているものとする。
この後、アプリ451は、API471を介して機能を実行する場合、実行禁止API一覧情報及び特定情報に基づいて機能の実行を制御する。具体的には、アプリ451は、機能を実行する前に、API471のうちの実行対象の機能を実行するためのAPIが実行禁止API一覧情報に定義されているか否かを確認し、定義されている場合、当該APIを介した実行対象の機能の実行(当該APIの呼び出し)を中止(禁止)する。
なおアプリ451は、実行禁止API一覧情報において、実行を中止した実行対象の機能を実行するためのAPI(呼び出しを中止したAPI)を示すAPI識別情報に解消方法情報が対応付けられている場合、API471のうちの画面表示機能を実行するためのAPIを、当該解消方法情報を付与して(引数として)、呼び出すことにより、解消方法情報の画面表示要求をプラットフォーム461に対して行う。このため、解消方法情報の画面表示要求は、解消方法情報を含む。
アプリ451から解消方法情報の画面表示要求が通知されると、実行禁止制御部481が当該画面表示要求を受け付け、表示制御部483は、実行禁止制御部481により受け付けられた画面表示要求に含まれる解消方法情報に基づいて、実行対象の機能の利用制限の解消方法を表す利用制限解消画面を操作パネル413に表示させる。
利用制限解消画面としては、例えば、実行対象の機能の利用制限を解消させるため、図7に示すように、アプリ451を最新版に更新(アップデート)させることを促すような画面や、図8に示すように、機器400のファームウェアのアップデートを促すような画面などが挙げられるが、これらに限定されるものではない。なお、利用制限解消画面の内容は、画面表示要求に含まれる解消方法情報によって定まる。
一方、アプリ451は、実行対象の機能を実行するためのAPIが実行禁止API一覧情報に定義されていない場合、当該APIを、特定情報を付与して(引数として)、呼び出すことにより、実行対象の機能の機能実行要求をプラットフォーム461に対して行う。このため機能実行要求は、特定情報を含む。
実行禁止制御部481は、アプリ451から、実行対象の機能を実行するためのAPIに基づく機能実行要求を受け付けると、受け付けた機能実行要求に含まれる特定情報(引数として渡された特定情報)から、アプリ451に発行した実行禁止API一覧情報を特定する。そして実行禁止制御部481は、特定した実行禁止API一覧情報を参照し、受け付けた機能実行要求に用いられたAPIが、当該実行禁止API一覧情報で定義されているAPIであるか否かを確認する。
そして実行禁止制御部481は、受け付けた機能実行要求に用いられたAPIが、実行禁止API一覧情報で定義されていなければ、当該機能実行要求で要求された実行対象の機能を実行し、アプリ451により呼び出されたAPI(実行対象の機能を実行するためのAPI)の戻り値として実行結果をアプリ451に返す。
一方、実行禁止制御部481は、受け付けた機能実行要求に用いられたAPIが、実行禁止API一覧情報で定義されていれば、当該機能実行要求で要求された実行対象の機能の実行を中止し、アプリ451により呼び出されたAPI(実行対象の機能を実行するためのAPI)の戻り値としてエラーをアプリ451に返す。
なお、実行禁止制御部481が、受け付けた機能実行要求に用いられたAPIが実行禁止API一覧情報で定義されているために、実行対象の機能の実行を中止した場合、表示制御部483は、前述したのと同様に、実行対象の機能の利用制限の解消方法を表す利用制限解消画面を操作パネル413に表示させてもよい。
このように第1実施形態では、アプリ451は、実行対象の機能を実行するためのAPIが実行禁止API一覧情報に定義されている場合、当該APIを介した実行対象の機能の実行を中止するので、当該APIが使用されて実行対象の機能を実行した結果、機器が予測不能な動作を行ってしまうことを防止できる。
また第1実施形態では、実行禁止制御部481も、アプリ451からの機能実行要求に用いられたAPIが、実行禁止API一覧情報に定義されている場合、当該APIを介した実行対象の機能の実行を中止する。このため、実行禁止API一覧情報に定義されているにも関わらず、エラー等により、アプリ451が実行対象の機能を実行するためのAPIを介した実行対象の機能の機能実行要求を行ってしまった場合であっても、当該APIを介した実行対象の機能の実行を中止でき、当該APIが使用されて実行対象の機能を実行した結果、機器が予測不能な動作を行ってしまうことを防止できる。
機能実行態様情報記憶部479は、通信不能時の機能の実行態様を示す機能実行態様情報を記憶する。機能実行態様情報は、例えば、ネットワーク101を介した通信が不能であり、利用制限機能確認要求の送信や利用制限機能確認応答の受信に失敗する場合、即ち、実行禁止制御部481が実行禁止API一覧情報をアプリ451に発行できない場合の機能の実行態様を示す。
機能実行態様情報が示す機能の実行態様としては、実行禁止API一覧情報を用いた機能の利用制限を行わずに機能を実行する態様、即ち、機能実行要求で要求された機能を無条件に実行する態様や、機能実行要求で要求された機能を全てエラー処理し、機能(API)の実行を無条件に中止する態様などが挙げられるが、これらに限定されるものではない。
なお第1実施形態では、例えば、操作パネル413に表示された図9に示すような設定画面上で、ユーザなど機器400の操作者が操作パネル413から操作入力を行うことで、機能実行態様情報記憶部479に記憶されている機能実行態様情報が示す機能の実行態様を設定する。
例えば、図9に示す設定画面上で、機器400の操作者により、ラジオボタン511が選択された状態で設定ボタン512が選択されると、機能実行態様情報が示す機能の実行態様が、実行禁止API一覧情報を用いた機能の利用制限を行わずに機能を実行する態様に設定される。また、機器400の操作者により、ラジオボタン513が選択された状態で設定ボタン512が選択されると、機能実行態様情報が示す機能の実行態様が、機能実行要求で要求された機能を全てエラー処理し、機能(API)の実行を無条件に中止する態様に設定される。
実行禁止制御部481は、利用制限機能確認要求送信部473による利用制限機能確認要求の送信に失敗する場合、及び利用制限機能確認応答受信部475による利用制限機能確認応答の受信に失敗する場合の少なくともいずれかの場合、機能実行態様情報記憶部479に記憶されている機能実行態様情報が示す態様でアプリ451による機能の実行を制御する。
つまり、実行禁止制御部481は、利用制限機能確認要求送信部473による利用制限機能確認要求の送信、及び利用制限機能確認応答受信部475による利用制限機能確認応答の受信の少なくともいずれかに失敗し、実行禁止API一覧情報をアプリ451に発行できなかった場合、機能実行態様情報が示す態様でアプリ451による機能の実行を制御する。
例えば、実行禁止制御部481は、機能実行態様情報が実行禁止API一覧情報を用いた機能の利用制限を行わずに機能を実行する態様を示す場合、アプリ451からの機能実行要求で要求された実行対象の機能を無条件で実行する。また例えば、実行禁止制御部481は、機能実行態様情報が機能実行要求で要求された機能を全てエラー処理し、機能(API)の実行を無条件に中止する態様を示す場合、アプリ451からの機能実行要求で要求された実行対象の機能の実行を無条件で中止する。
電源オフ態様情報記憶部485は、電源をオフする動作の態様を示す電源オフ態様情報を記憶する。電源オフ態様情報は、例えば、利用制限機能確認応答受信部475により受信された利用制限機能確認応答に含まれる電源オフ要否情報が「Yes」であり、機器400の電源オフが指示された場合の電源をオフする動作の態様を示す。
電源オフ態様情報が示す電源をオフする動作の態様としては、強制的に電源をオフする態様や、ユーザなど機器400の操作者の確認後に電源をオフする態様などが挙げられるが、これらに限定されるものではない。
なお第1実施形態では、例えば、操作パネル413に表示された図10に示すような設定画面上で、機器400の操作者が操作パネル413から操作入力を行うことで、電源オフ態様情報記憶部485に記憶されている電源オフ態様情報が示す電源をオフする動作の態様を設定する。
例えば、図10に示す設定画面上で、機器400の操作者により、ラジオボタン521が選択された状態で設定ボタン522が選択されると、電源オフ態様情報が示す電源をオフする動作の態様が、強制的に電源をオフする態様に設定される。また、機器400の操作者により、ラジオボタン523が選択された状態で設定ボタン522が選択されると、電源オフ態様情報が示す電源をオフする動作の態様が、ユーザなど機器400の操作者の確認後に電源をオフする態様に設定される。
実行禁止制御部481は、利用制限機能確認応答受信部475により受信された利用制限機能確認応答に、電源オフが必要であることを示す電源オフ要否情報(電源オフ要否情報「Yes」)が含まれている場合、電源制御部487に電源オフを指示する。なお実行禁止制御部481は、電源オフが必要であることを示す電源オフ要否情報が利用制限機能確認応答に含まれていない場合に、前述の実行禁止API一覧情報及び特定情報のアプリ451への発行を行う。
電源制御部487は、利用制限機能確認応答受信部475により受信された利用制限機能確認応答に、電源オフが必要であることを示す電源オフ要否情報(電源オフ要否情報「Yes」)が含まれており、実行禁止制御部481から電源オフが指示された場合、機器400の電源をオフする。具体的には、電源制御部487は、電源オフ態様情報記憶部485に記憶されている電源オフ態様情報が示す態様で機器400の電源をオフする。
例えば、電源制御部487は、電源オフ態様情報が強制的に電源をオフする態様を示す場合、表示制御部483に電源オフ報知画面の表示を依頼し、表示制御部483が図11に示すような電源オフ(シャットダウン)報知画面を操作パネル413に表示させた後に、強制的に機器400の電源をオフする。また例えば、電源制御部487は、電源オフ態様情報がユーザなど機器400の操作者の確認後に電源をオフする態様を示す場合、例えば、表示制御部483に電源オフ確認画面の表示を依頼し、表示制御部483が当該電源オフ確認画面を操作パネル413に表示させ、操作者による操作パネル413からの電源オフを指示する操作入力に基づいて機器400の電源をオフする。
図12は、第1実施形態の機器400で実行される処理の一例を示すフローチャートである。
まず、アプリ451は、起動すると、API471のうちの利用が制限される機能の確認を実行するためのAPIを、機器400の機器識別情報を付与して(引数として)、呼び出す(コール)ことにより、利用制限機能確認要求をプラットフォーム461に対して行う(ステップS101)。
続いて、実行禁止制御部481は、アプリ451から利用制限機能確認要求が通知されると、利用制限機能確認要求送信部473にネットワーク101が接続され、情報処理装置300との通信が可能であるか否かを確認させる(ステップS103)。
ネットワーク101が接続され、情報処理装置300との通信が可能であれば(ステップS103でYes)、利用制限機能確認要求送信部473は、実行禁止制御部481により受け付けられた利用制限機能確認要求を情報処理装置300に送信する(ステップS105)。なお、ネットワーク101が接続されておらず、情報処理装置300との通信が不可能であれば(ステップS103でNo)、以降の処理は行われない。
続いて、利用制限機能確認応答受信部475は、情報処理装置300から、利用制限機能確認応答を受信する(ステップS107)。
なお、利用制限機能確認要求を情報処理装置300に送信してから利用制限機能確認応答を受信までの間に行われる情報処理装置300の処理については、後述する。
続いて、電源制御部487は、利用制限機能確認応答受信部475により受信された利用制限機能確認応答に、電源オフが必要であることを示す電源オフ要否情報が含まれているか否かを確認する(ステップS109)。
利用制限機能確認応答に電源オフが必要であることを示す電源オフ要否情報が含まれており、電源オフが必要な場合(ステップS109でYes)、実行禁止制御部481は、電源制御部487に電源オフを指示し、電源制御部487は、電源オフ態様情報記憶部485に記憶されている電源オフ態様情報が示す態様で機器400の電源をオフする(ステップS111)。
一方、利用制限機能確認応答に電源オフが必要であることを示す電源オフ要否情報が含まれておらず、電源オフが不要な場合(ステップS109でNo)、実行禁止制御部481は、機能対応情報記憶部477を参照し、利用制限機能識別情報が示す機能を示す機能識別情報に対応付けられたAPI識別情報が示すAPIの一覧を表す実行禁止API一覧情報及び当該実行禁止API一覧情報を特定するための特定情報を生成し、アプリ451により呼び出されたAPI(利用が制限される機能の確認を実行するためのAPI)の戻り値として、実行禁止API一覧情報及び特定情報をアプリ451に返す(ステップS113)。
図13は、図12のフローチャートで説明した処理後に行われる機能の実行制御処理の一例を示すフローチャートである。
まず、アプリ451は、機能を実行する前に、API471のうちの実行対象の機能を実行するためのAPI(コールするAPI)が実行禁止API一覧情報に記載されているか否かを確認する(ステップS201)。
コールするAPIが実行禁止API一覧情報に記載されていない場合(ステップS201でNo)、アプリ451は、当該APIを、特定情報を付与して(引数として)、呼び出す(コールする)ことにより、実行対象の機能の機能実行要求をプラットフォーム461に対して行う(ステップS203)。
続いて、実行禁止制御部481は、アプリ451から、実行対象の機能を実行するためのAPIに基づく機能実行要求を受け付けると、受け付けた機能実行要求に含まれる特定情報(引数として渡された特定情報)から、アプリ451に発行した実行禁止API一覧情報を特定し、受け付けた機能実行要求に用いられたAPI(コールされたAPI)が、当該実行禁止API一覧情報に記載されているか否かを確認する(ステップS205)。
コールされたAPIが実行禁止API一覧情報に記載されていない場合(ステップS205でNo)、実行禁止制御部481は、コールされたAPIを実行することで、機能実行要求で要求された実行対象の機能を実行し、アプリ451により呼び出されたAPI(実行対象の機能を実行するためのAPI)の戻り値として実行結果をアプリ451に返す(ステップS207)。
一方、コールされたAPIが実行禁止API一覧情報に記載されている場合(ステップS205でYes)、実行禁止制御部481は、コールされたAPIの実行を中止することで、機能実行要求で要求された実行対象の機能の実行を中止し、アプリ451により呼び出されたAPI(実行対象の機能を実行するためのAPI)の戻り値としてエラーをアプリ451に返す(ステップS209)。
なお、実行禁止API一覧情報において、実行を中止した実行対象の機能を実行するためのAPI(呼び出しを中止したAPI)を示すAPI識別情報に解消方法情報が対応付けられている場合、ステップS201でYesの後やステップS209の後に、表示制御部483は、当該解消方法情報に基づいて、実行対象の機能の利用制限の解消方法を表す利用制限解消画面を操作パネル413に表示させてもよい。
また、図12のフローチャートのステップS103でNoであり、実行禁止API一覧情報及び特定情報がアプリ451に発行されていない場合、アプリ451は、実行対象の機能を実行するためのAPIを無条件でコールし、実行禁止制御部481は、機能実行態様情報記憶部479に記憶されている機能実行態様情報が示す機能の実行態様に従って、コールされたAPIの実行の有無を制御し、実行対象の機能の実行を制御すればよい。
図14は、第1実施形態の情報処理装置300で実行される処理の一例を示すフローチャートであり、図12のフローチャートにおいて、利用制限機能確認要求を情報処理装置300に送信してから利用制限機能確認応答を受信までの間(ステップS105〜S107の間)に行われる情報処理装置300の処理を示す。
まず、利用制限機能確認要求受信部351は、機器400から利用制限機能確認要求を受信する(ステップS301)。
続いて、取得部355は、利用制限情報記憶部353を参照し、利用制限機能確認要求受信部351により受信された利用制限機能確認要求に含まれる機種識別情報と一致する機種識別情報、及び利用制限機能確認要求に含まれる機種識別情報と機番情報との組み合わせに一致する機種識別情報と機番情報との組み合わせの少なくともいずれかがあるか否かを確認する(ステップS305)。なお、ステップS305でNoの場合、以降の処理は行われない。
ステップS305でYesであり、利用制限機能確認要求に含まれる機種識別情報と一致する機種識別情報がある場合、取得部355は、利用制限情報記憶部353から、当該機種識別情報に対応付けられた利用制限機能識別情報、電源オフ要否情報、及び解消方法情報を取得する。また、利用制限機能確認要求に含まれる機種識別情報と機番情報との組み合わせに一致する機種識別情報と機番情報との組み合わせがある場合、取得部355は、利用制限情報記憶部353から、当該組み合わせに対応付けられた利用制限機能識別情報、電源オフ要否情報、及び解消方法情報を取得する(ステップS307)。
続いて、利用制限機能確認応答送信部357は、取得部355により取得された利用制限機能識別情報、電源オフ要否情報、及び解消方法情報を含む利用制限機能確認応答を機器400に送信する(ステップS309)。
以上のように第1実施形態では、利用が制限される機能を情報処理装置300側で管理し、機器400は、機器400において利用が制限される機能を示す利用制限機能識別情報を情報処理装置300から取得し、取得した利用制限機能識別情報が示す機能の実行をアプリに禁止させるための制御を行う。
このように第1実施形態によれば、利用が制限される機能の実行が禁止されるので、当該機能を実行してしまい、機器が予測不能な動作を行ってしまうという事態の発生を防止できる。
特に第1実施形態では、利用が制限される機能を専門に管理する情報処理装置300側で管理するため、セキュリティ脆弱性が見つかった場合などのように外部要因により機能の利用を制限する必要が生じた場合であっても、当該機能を情報処理装置300側で即管理することができる(を前提としている)。
このため第1実施形態によれば、機器400が情報処理装置300から取得する利用制限機能識別情報は、最新の利用が制限される機能を示すことになり、外部要因により機能の利用を制限する必要が生じた場合であっても、当該機能の実行を迅速に禁止させることが可能となる。また第1実施形態によれば、外部要因により機能の利用を制限する必要が生じた場合であっても、サービスマンなどの対応無しに機能の利用を制限できるため、人的コストなどの運用コストの削減も期待できる。また、第1実施形態によれば、機器400側で利用が制限される機能を管理する必要がないため、このような管理機能を機器400に組み込む必要がなく、開発コストが抑えられることも期待できる。
また第1実施形態によれば、機能の実行を中止する場合、当該機能の利用制限の解消方法を表す利用制限解消画面が表示されるため、機器400の管理者などは、機器400を、迅速に当該機能を利用できる状態に保守することができる。
また第1実施形態によれば、機器400では、機器400の利用制限機能識別情報を情報処理装置300から取得できなかった場合の機能の実行態様を予め定めておくことができるため、機器400の管理者自身が、機器400の利用に伴う利便性と安全性とのバランスを図ることができる。
また第1実施形態では、機器400は、機器400の利用制限機能識別情報を情報処理装置300から取得する際に、電源オフの要否を示す電源オフ要否情報も取得し、電源オフが必要な場合、機器400の電源をオフする。
このため、情報処理装置300側で、重大なセキュリティ脆弱性が見つかった場合には、機能の利用を制限するだけでなく、電源オフ要否情報が、電源オフが必要であることを示すように設定しておけば、機器400側で機器400の電源がオフされ、機器400の安全性を高めることができる。
(第2実施形態)
第2実施形態では、テナント毎に定められている許容度に応じて機能の利用制限を行う例について説明する。以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
図15は、第2実施形態の情報処理システム1100の情報処理装置1300及び機器1400の機能構成の一例を示すブロック図である。図15に示すように、第2実施形態では、アプリ1451、利用制限情報記憶部1353、取得部1355、及び許容情報記憶部1359が、第1実施形態と相違する。
第2実施形態では、アプリ1451は、API471のうちの利用が制限される機能の確認を実行するためのAPIを、機器1400の機器識別情報及び機器1400が属するテナントを識別するテナント識別情報を付与して(引数として)、呼び出すことにより、利用制限機能確認要求をプラットフォーム461に対して行う。このため利用制限機能確認要求は、機器識別情報及びテナント識別情報を含む。
なお、テナント識別情報は、例えば、ROM404又はHDD411に予め記憶されているため、アプリ1451は、利用が制限される機能の確認を実行するためのAPIの呼び出しに先立ち、ROM404又はHDD411からテナント識別情報を取得しておけばよい。
ここで第2実施形態では、機器1400が情報処理装置1300(クラウド)を利用する上で、機器1400の所有者と情報処理装置1300の運営者との間で、情報処理装置1300の利用条件などを定めた契約が結ばれており、情報処理装置1300の運営者と契約を結ぶ契約先がテナントとなる。このため第2実施形態では、機器1400の所有者がテナントとなり、機器1400は、このテナントに属する。なお、情報処理装置1300の運営者との契約は、人、グループ、又は組織単位で結ぶことができるため、テナントは、人の場合もあれば、グループの場合もあれば、組織の場合もある。テナント識別情報、例えば、テナントを識別するためのIDなどが挙げられる。
利用制限情報記憶部1353は、機器識別情報と、機器において利用が制限される機能を示す利用制限機能識別情報と、電源オフの要否を示す電源オフ要否情報と、脆弱性の危険度を示す危険度情報と、機能の利用制限の解消方法を示す解消方法情報と、を対応付けて記憶する。
図16は、第2実施形態の利用制限情報記憶部1353に記憶されている情報の一例を示す図である。図16に示す例では、利用制限情報記憶部1353は、機種識別情報と、機番情報と、利用制限機能識別情報と、電源オフ要否情報と、危険度情報と、解消方法情報と、を対応付けて記憶している。
危険度情報は、利用制限機能識別情報が示す利用が制限される機能に内在するセキュリティ脆弱性の危険度を示し、第2実施形態では、値が大きいほど危険度が高いものとするが、これに限定されるものではない。
許容情報記憶部1359は、テナント識別情報と、当該テナント識別情報が示すテナントにおける脆弱性の許容度を示す許容度情報と、を対応付けて記憶する。
図17は、第2実施形態の許容情報記憶部1359に記憶されている情報の一例を示す図である。図17に示す例では、許容情報記憶部1359は、テナント識別情報と、許容度情報と、を対応付けて記憶している。許容度情報は、セキュリティ脆弱性の危険度に対する許容度を示し、第2実施形態では、値が小さいほど許容できるセキュリティ脆弱性が少なくなるものとするが、これに限定されるものではない。なお、許容度は、情報処理装置1300の運営者と結ぶ契約などで定められる。
取得部1355は、許容情報記憶部1359から、利用制限機能確認要求受信部351により受信された利用制限機能確認要求に含まれるテナント識別情報に対応付けられた許容度情報を取得する。そして取得部1355は、利用制限情報記憶部1353から、利用制限機能確認要求受信部351により受信された利用制限機能確認要求に含まれる機器識別情報が示す機器1400を示す機器識別情報に対応付けられ、かつ取得した許容度情報が示す許容度が、当該機器識別情報に対応付けられた危険度情報が示す危険度を満足しない場合、当該機器識別情報に対応付けられた利用制限機能識別情報、電源オフ要否情報、及び解消方法情報を取得する。
例えば、利用制限機能確認要求受信部351により受信された利用制限機能確認要求に含まれる機器1400の機器識別情報が機種識別情報「MFP−A」及び機番情報「123456」、テナント識別情報が「111111」であり、利用制限情報記憶部1353に図16に示す情報、許容情報記憶部1359に図17に示す情報が記憶されているとする。この場合、取得部1355は、許容情報記憶部1359から、テナント識別情報が「111111」に対応付けられた許容度情報「90」を取得し、利用制限情報記憶部1353から、カラム1505の利用制限機能識別情報「/print/*」、電源オフ要否情報「No」、及び解消方法情報「方法1」を取得する。
これは、カラム1505では、機器識別情報は、機種識別情報が「MFP−A」、機番情報が「123456」であって機器1400を示すとともに、危険度情報が「100」であり、危険度情報「100」>許容度情報「90」となり、許容度情報が示す許容度が、危険度情報が示す危険度を満足しないためである。
なお、カラム1506では、機器識別情報は、機種識別情報が「MFP−A」、機番情報が空であって機器1400も示すが、危険度情報が「80」であり、危険度情報「80」≦許容度情報「90」となり、許容度情報が示す許容度が、危険度情報が示す危険度を満足するため、カラム1506の利用制限機能識別情報等は取得されない。
図18は、第2実施形態の情報処理装置1300で実行される処理の一例を示すフローチャートであり、図12のフローチャートにおいて、利用制限機能確認要求を情報処理装置300に送信してから利用制限機能確認応答を受信までの間(ステップS105〜S107の間)に行われる処理を示す。
まず、ステップS401〜ステップS405までの処理は、図14に示すフローチャートのステップS301〜ステップS305までの処理と同様である。
ステップS405でYesであり、利用制限機能確認要求に含まれる機種識別情報と一致する機種識別情報がある場合、取得部1355は、利用制限情報記憶部1353から、当該機種識別情報に対応付けられた利用制限機能識別情報、電源オフ要否情報、危険度情報、及び解消方法情報を取得する。また、利用制限機能確認要求に含まれる機種識別情報と機番情報との組み合わせに一致する機種識別情報と機番情報との組み合わせがある場合、取得部1355は、利用制限情報記憶部1353から、当該組み合わせに対応付けられた利用制限機能識別情報、電源オフ要否情報、危険度情報、及び解消方法情報を取得する(ステップS407)。
続いて、取得部1355は、許容情報記憶部1359から、利用制限機能確認要求受信部351により受信された利用制限機能確認要求に含まれるテナント識別情報に対応付けられた許容度情報を取得し、取得した許容度情報が示す許容度がステップS407で取得した危険度情報が示す危険度を満足するか否か確認する(ステップS411)。なお、ステップS411でNoの場合、ステップS415へ進む。
一方、ステップS411でYesの場合、取得部1355は、ステップS407で取得した利用制限機能識別情報、電源オフ要否情報、危険度情報、及び解消方法情報の中から、許容度が危険度を満足する危険度情報、及び当該危険度情報に対応付けられた利用制限機能識別情報、電源オフ要否情報、及び解消方法情報を削除する(ステップS413)。
続いて、利用制限機能確認応答送信部357は、削除されなかった利用制限機能識別情報、電源オフ要否情報、危険度情報、及び解消方法情報、即ち、許容度が危険度を満足しない危険度情報、及び当該危険度情報に対応付けられた利用制限機能識別情報、電源オフ要否情報、及び解消方法情報を含む利用制限機能確認応答を機器1400に送信する(ステップS415)。
以上のように第2実施形態によれば、契約で定められた許容度では満足されない(許容できない)危険度のセキュリティ脆弱性が内在する機能のみ利用が制限されるため、テナントの要望を満足するように、利用が制限される機能を設定することができる。
(変形例1)
上記第1、2実施形態では、アプリ451やアプリ1451が、プラットフォーム461上で動作するネイティブアプリケーションである場合を例に取り説明したが、これに限定されず、ブラウザ上で動作するWebアプリケーションであってもよい。
図19は、変形例1の情報処理システム2100の情報処理装置300及び機器2400の機能構成の一例を示すブロック図である。図19に示すように、変形例1では、アプリ2451、及びブラウザ2453が、第1実施形態と相違する。
アプリ2451は、Webアプリケーションであり、Webブラウザであるブラウザ2453上で動作する。なおアプリ2451は、API471を構成するAPIを呼び出す場合、ブラウザ2453を介して(例えば、ブラウザ2453に組み込まれているJavaScript(登録商標)を用いて)呼び出す。
(変形例2)
情報処理装置300は、上記第1実施形態で説明したネイティブアプリケーションによる機能制限及び上記変形例1で説明したWebアプリケーションによる機能制限の双方に対応できるようにしてもよい。
この場合、アプリ451やアプリ2451は、API471のうちの利用が制限される機能の確認を実行するためのAPIを、機器識別情報及びアプリの区分(例えば、ネイティブアプリかWebアプリか)を示すアプリ区分情報を付与して(引数として)、呼び出すことにより、利用制限機能確認要求をプラットフォーム461に対して行えばよい。このため利用制限機能確認要求は、機器識別情報及びアプリ区分情報を含む。
なお、アプリ区分情報は、例えば、ROM404又はHDD411に予め記憶されているため、アプリ451やアプリ2451は、利用が制限される機能の確認を実行するためのAPIの呼び出しに先立ち、ROM404又はHDD411からテナント識別情報を取得しておけばよい。
また、利用制限情報記憶部353は、図20に示すように、機種識別情報と、機番情報と、利用制限機能識別情報と、アプリ区分情報と、電源オフ要否情報と、解消方法情報と、を対応付けて記憶しておけばよい。
アプリ区分情報は、例えば、ブラウザにセキュリティ脆弱性が見つかり、Webアプリのみ機能の利用を制限する必要がある場合のように、ネイティブアプリ又はWebアプリのいずれかのみ機能の利用を制限する必要がある場合に対応できるよう、追加されている。なお、アプリ区分情報が空の場合、ネイティブアプリ及びWebアプリの双方を示す。
また、取得部355は、利用制限情報記憶部353から、利用制限機能確認要求受信部351により受信された利用制限機能確認要求に含まれる機器識別情報が示す機器を示す機器識別情報に対応付けられ、かつ当該利用制限機能確認要求に含まれるアプリ区分情報が示すアプリの区分を示すアプリ区分情報に対応付けられた前記利用制限機能識別情報を取得すればよい。
例えば、利用制限機能確認要求受信部351により受信された利用制限機能確認要求に含まれる機器400の機器識別情報が機種識別情報「MFP−A」及び機番情報「123456」、アプリ区分情報が「ネイティブ」であり、利用制限情報記憶部353に図20に示す情報が記憶されているとする。この場合、取得部355は、利用制限情報記憶部353から、カラム2505の利用制限機能識別情報「/print/*」、電源オフ要否情報「No」、及び解消方法情報「方法1」を取得する。
これは、カラム2505では、機器識別情報は、機種識別情報が「MFP−A」、機番情報が「123456」であって機器400を示すとともに、アプリ区分情報が空であるため、全ての区分を示し、「ネイティブ」も示すためである。
なお、カラム2506では、機器識別情報は、機種識別情報が「MFP−A」、機番情報が空であって機器400も示すが、アプリ区分情報が「Web」であるため、カラム2506の利用制限機能識別情報等は取得されない。
なお説明は省略するが、情報処理装置1300においても上述の変形を加えることで、上記第2実施形態で説明したネイティブアプリケーションによる機能制限及び上記変形例1で説明したWebアプリケーションによる機能制限の双方に対応できるようにすることもできる。
(プログラム)
上記各実施形態及び各変形例の情報処理装置及び機器(以下、「上記各実施形態及び各変形例の各装置」と称する)で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、CD−R、メモリカード、DVD(Digital Versatile Disk)、フレキシブルディスク(FD)等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
また、上記各実施形態及び各変形例の各装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記各実施形態及び各変形例の各装置で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上記各実施形態及び各変形例の各装置で実行されるプログラムを、ROM等に予め組み込んで提供するようにしてもよい。
上記各実施形態及び各変形例の各装置で実行されるプログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、例えば、CPUがROMからプログラムをRAM上に読み出して実行することにより、上記各機能部がコンピュータ上で実現されるようになっている。
なお、上記各実施形態及び各変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。上記新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施の形態は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。