(57)【特許請求の範囲】
【請求項１】
アプリケーションからの呼び出し要求に応じ、対応する機能を提供する機能提供手段と、
アプリケーションからの呼び出し要求を構成する呼び出しパターンを検出するパターン検出手段と、
提供された前記機能に関する不具合を検出するエラー検出手段と、
不具合が検出された機能の呼び出し要求に係る前記呼び出しパターンを記憶する呼び出し要求記憶手段と、
前記パターン検出手段によって検出された呼び出しパターンと、前記呼び出し要求記憶手段によって記憶された呼び出しパターンとを照合する照合手段と、
前記照合が一致した場合には、対応する機能をその呼び出し元のアプリケーションに提供しない機能提供制限手段と、
を備え、
前記呼び出し要求記憶手段は、
新規アプリケーションのインストールが発生すると、所定の期間、当該新規アプリケーションに係る前記呼び出し要求を構成するパターンデータをすべて記憶し、各パターンデータに係る処理が問題を引き起こさなかった場合に、当該パターンデータに係る記録を消去することを特徴とする電気機器。
【請求項２】
前記照合手段による照合が一致した場合には、呼び出し元のアプリケーションに対し所定のダミー信号を返信するダミー信号返信手段を備える請求項１記載の電気機器。
【請求項３】
前記機能提供手段は、
アプリケーションからの呼び出し要求に応じ、対応するアプリケーションプログラムインタフェースを介して所定の機能を提供し、
前記機能提供制限手段は、
前記照合手段における照合が一致した場合には、対応するアプリケーションプログラムインタフェースを介して所定の機能を提供しない請求項１又は２記載の電気機器。
【請求項４】
機能の誤用に起因する障害発生を防止するための障害防止方法であって、
アプリケーションからの呼び出し要求に応じ、対応する機能を提供するステップと、
アプリケーションからの呼び出し要求を構成する呼び出しパターンを検出するステップと、
提供された前記機能に関する不具合を検出するステップと、
不具合が検出された機能の呼び出し要求に係る前記呼び出しパターンを記憶するステップと、
前記パターンを検出するステップで検出された呼び出しパターンと、前記記憶された呼び出しパターンとを照合するステップと、
前記照合が一致した場合には、対応する機能をその呼び出し元のアプリケーションに提供しないステップと、を有し、
前記呼び出しパターンを記憶するステップが、
新規アプリケーションのインストールが発生すると、所定の期間、当該新規アプリケーションに係る前記呼び出し要求を構成するパターンデータをすべて記憶し、各パターンデータに係る処理が問題を引き起こさなかった場合に、当該パターンデータに係る記録を消去するステップを含むことを特徴とする障害防止方法。
【請求項５】
所定の機能を利用してアプリケーションを実行する電気機器において、前記機能の誤用に起因する障害発生を防止するための障害防止プログラムであって、
前記電気機器を構成するコンピュータを、
アプリケーションからの呼び出し要求に応じ、対応する機能を提供する機能提供手段、
アプリケーションからの呼び出し要求を構成する呼び出しパターンを検出するパターン検出手段、
提供された前記機能に関する不具合を検出するエラー検出手段、
不具合が検出された機能の呼び出し要求に係る前記呼び出しパターンを記憶する呼び出し要求記憶手段、
前記パターン検出手段によって検出された呼び出しパターンと、前記呼び出し要求記憶手段によって記憶された呼び出しパターンとを照合する照合手段、
前記照合が一致した場合には、対応する機能をその呼び出し元のアプリケーションに提供しない機能提供制限手段、として機能させるとともに、
前記呼び出し要求記憶手段を、
新規アプリケーションのインストールが発生すると、所定の期間、当該新規アプリケーションに係る前記呼び出し要求を構成するパターンデータをすべて記憶し、各パターンデータに係る処理が問題を引き起こさなかった場合に、当該パターンデータに係る記録を消去する手段として機能させるための障害防止プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置等の電気機器に関し、より詳しくは、所定の機能を利用することによって効率よくアプリケーションを実行させることが可能な電気機器に関する。
【背景技術】
【０００２】
従来、ＭＦＰ等の画像形成装置には、プリンタ、コピー、ファクシミリ、スキャナなどの各機能単位でアプリケーションプログラムが組み込まれ、これらアプリケーションプログラムを稼働させるソフトウェア的な手段が予め搭載されている。
例えば、ＯＳ（Operating  System）やプラットフォーム等は、アプリケーションプログラムが効率よく稼働するための機能としてＡＰＩ（Application  Program  Interface）と呼ばれるインタフェースを提供することが一般的に知られている。
【０００３】
ＡＰＩは、アプリケーションプログラムを記述するための言語やプラットフォームに応じた形式で用意され、その多くは、関数の形で提供される。
ここで、関数とは、関数（ＡＰＩ）を識別するための文字列やバイナリデータからなる関数シグネチャとその関数を引き渡すためのパラメータ（引数）とによって構成されるものであり、必要な場合には、関数によって処理された値を呼び出し元へ戻すための機構がさらに存在する。
これを模式的に示せば下記のように表現することができる。
処理結果＝関数シグネチャ（引数１、引数２、・・・）
このため、各アプリケーションにおいては、この様な機能を円滑に利用するため、いわゆる「機能を使う要素」（図７参照）は、予め上述のような形式で記述され、ＡＰＩとして用意された関数を適切に使用できるようになっている。
【０００４】
ここで、ＡＰＩを正しく使用するには、ＡＰＩに関するマニュアルやガイドラインを十分に調査した上でその使い方や引数等を決定しなければならないが、これらはすべて人的に行われる作業であり、間違いを起こす可能性がある。
この間違いに対しては、アプリケーション自身もしくはプラットフォーム等である程度の耐性を持ち、また、デバッグ等を可能とする環境が整っている場合には、大きな影響は受けない。
【０００５】
しかし、ＡＰＩの使用の仕方によっては重篤な影響を及ぼし、結果、アプリケーションのみならず、メモリデータやＯＳ等、システム全体をクラッシュさせてしまうこともある。
例えば、図７は、上述の様子を模式的に示したものであり、ＡＰＩの間違った使い方に起因して連鎖的に障害が発生する様子を示した模式図である。
図７に示すように、誤った方式で呼び出されたＡＰＩは、その実装部分「提供する機能」、もしくは、「提供する機能」が呼び出す「関連する機能」において致命的な問題を引き起こし、結果、システム全体が危機的な状況となってしまう。
【０００６】
このため、アプリケーションプログラム毎に利用可能なＡＰＩを制限することが可能な情報処理装置が提案されている（例えば、特許文献１参照）。
この情報処理装置によれば、アプリケーションプログラムが利用可能なＡＰＩを判断し、その判断結果に応じてＡＰＩの動作を制御するようにして、アプリケーションプログラム毎に利用可能なＡＰＩを任意に設定し制限することができるようになっている。
【０００７】
【特許文献１】特開２００５−２５８９２４号公報（第１０図）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、以上のような従来提案されている情報処理装置においては、予めアプリケーションプログラム毎に利用可能なＡＰＩを設定しておかなければならず、具体的には、アプリケーションプログラムに対して所定のライセンス情報を付しておかなければならない。
このため、利用可能か否かの判断を事前にユーザが行わなければならず、人的作業のため、誤ったＡＰＩの設定が行われる可能性がある。
また、ユーザが係る設定を予め行わなければならないため、非常に煩わしく不便である。
【０００９】
本発明は、以上のような従来の技術が有する問題を解決するために提案されたものであり、不具合を経験することで不具合発生のパターンを学習し、これにより不適切な処理の繰り返しを防ぎ、結果、ソフト・ハード又はシステムにおける障害の発生を自ら防ぐことが可能な電気機器の提供を目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明の電気機器は、アプリケーションからの呼び出し要求に応じ、対応する機能を提供する機能提供手段と、提供された前記機能に関する不具合を検出するエラー検出手段と、不具合が検出された機能の呼び出し要求を記憶する呼び出し要求記憶手段と、アプリケーションからの呼び出し要求と前記呼び出し要求記憶手段によって記憶された呼び出し要求とを照合する照合手段と、前記照合が一致した場合には、対応する機能をその呼び出し元のアプリケーションに提供しない機能提供制限手段と、を備えた構成としてある。
【００１１】
このような構成からなる本発明の電気機器によれば、アプリケーション実行の際に発生した不具合を検出し、その不具合を発生させた原因となった呼び出し要求を特定するようにしている。すなわち、不具合の発生は、誤った機能の呼び方や使い方に起因するものとみなして係る呼び出し要求を特定するものである。
そして、特定された呼び出し要求と同様の呼び出し要求が再度行われた場合には、不具合が発生する可能性が高いと判断し、求められた機能を提供しないように制御することとしている。
このため、一度不具合を経験した後は、これと同様の不具合の再発を確実に防ぐことができるようになる。
このように、本発明によれば、装置自らが不具合発生の特徴を学習する機能を備え、その学習内容に応じて自動的に不具合の発生を防ぐ仕組みを採っているため、信頼性及び利便性に優れた電気機器を実現している。
【００１２】
また、本発明の電気機器は、アプリケーションからの呼び出し要求を構成する呼び出しパターンを検出するパターン検出手段を備え、前記呼び出し要求記憶手段は、不具合が検出された機能の呼び出し要求に係る前記呼び出しパターンを記憶するとともに、前記照合手段は、前記パターン検出手段によって検出された呼び出しパターンと、前記呼び出し要求記憶手段によって格納されている呼び出しパターンとを照合するようにしてある。
【００１３】
このような構成からなる本発明の電気機器によれば、不具合発生の要因として特定されるアプリケーションからの呼び出し要求をさらに分解して特徴的な要素を抽出し、これらの要素を組み合わせたパターンデータを保持するようにしてある。このため、呼び出し要求の構成を詳細に把握することが可能となり、不具合発生の特徴を的確に反映させることができるようになる。
したがって、不具合の発生をより確実に防ぎ、信頼性が更に優れた電気機器を実現することが可能になる。
【００１４】
更に、本発明の電気機器は、前記照合手段による照合が一致した場合には、呼び出し元のアプリケーションに対し所定のダミー信号を返信するダミー信号返信手段を備えた構成としてある。
【００１５】
このような構成からなる本発明の電気機器によれば、所定の照合が一致した場合、すなわち、不具合が発生するおそれのある呼び出しが再度要求された場合、係る機能の提供を制限するだけでなく、誤った機能の呼び出しが行われている旨を呼び出し元のアプリケーションに通知するようにしている。
これにより、本来は不具合が発生する危険性が高いことをユーザに伝えることができる。
このため、不具合の発生を抑えつつも改善措置を促し、ユーザは余裕を持って必要な措置を採ることができる。
【００１６】
また、本発明の電気機器は、前記機能提供手段は、アプリケーションからの呼び出し要求に応じ、対応するアプリケーションプログラムインタフェースを介して所定の機能を提供し、前記機能提供制限手段は、前記照合手段における照合が一致した場合には、対応するアプリケーションプログラムインタフェースを介して所定の機能を提供しないようにしてある。
【００１７】
このような構成からなる本発明の電気機器によれば、アプリケーションからの不適切なインタフェース（ＡＰＩ）の呼び出しによる誤った機能の提供を防ぐことができる。
これにより、アプリケーションのみならず、ＡＰＩを実装するＯＳやこれに関連する機能その他システム全体に及ぶ重篤な障害発生を回避することができる。
【００１８】
また、本発明の障害防止方法は、機能の誤用に起因する障害発生を防止するための障害防止方法であって、アプリケーションからの呼び出し要求に応じ、対応する機能を提供するステップと、提供された前記機能に関する不具合を検出するステップと、不具合が検出された機能の呼び出し要求を記憶するステップと、アプリケーションからの呼び出し要求と、前記記憶された呼び出し要求とを照合するステップと、前記照合が一致した場合には、対応する機能をその呼び出し元のアプリケーションに提供しないステップと、を有する方法としてある。
【００１９】
このように、本発明は上述した装置発明だけでなく、方法発明としても実現化することができる。
したがって、ハードウェアの構成にとらわれることなく発明を実施することができるため、汎用性、拡張性に優れた方法として提供することが可能である。
【００２０】
また、本発明の障害防止プログラムは、所定の機能を利用してアプリケーションを実行する電気機器において、前記機能の誤用に起因する障害発生を防止するための障害防止プログラムであって、前記電気機器を構成するコンピュータを、アプリケーションからの呼び出し要求に応じ、対応する機能を提供する機能提供手段、提供された前記機能に関する不具合を検出するエラー検出手段、不具合が検出された機能の呼び出し要求を記憶する呼び出し要求記憶手段、アプリケーションからの呼び出し要求と前記呼び出し要求記憶手段によって記憶された呼び出し要求とを照合する照合手段、前記照合が一致した場合には、対応する機能をその呼び出し元のアプリケーションに提供しない機能提供制限手段、として機能させるためのプログラムとしてある。
【００２１】
このように本発明はプログラムとしても実現化することができる。
これにより、プリンタ、複写機、複合機等の画像形成装置のみならず、各種アプリケーションを搭載する情報処理装置にプログラムをインストールすることによって本発明を実現することができ、汎用性，拡張性に優れた障害防止プログラムとして提供することができる。
【発明の効果】
【００２２】
以上のように、本発明によれば、不適切な処理の再発を防ぎ、ソフト・ハード又はシステムにおける障害の発生を効果的に防ぐことが可能となる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の好ましい実施形態について図１〜図６を参照して説明する。
ここで、以下に示す本実施形態のＭＦＰ（Multifunction
Peripheral）は、プログラム（ソフトウェア）の命令によりコンピュータで実行される処理，手段，機能によって実現される。プログラムは、コンピュータの各構成要素に指令を送り、以下に示すような所定の処理・機能を行わせる。すなわち、本実施形態のＭＦＰにおける各処理・手段は、プログラムとコンピュータとが協働した具体的手段によって実現される。
なお、プログラムの全部又は一部は、例えば、磁気ディスク，光ディスク，半導体メモリ，その他任意のコンピュータで読取り可能な記録媒体により提供され、記録媒体から読み出されたプログラムがコンピュータにインストールされて実行される。また、プログラムは、記録媒体を介さず、通信回線を通じて直接にコンピュータにロードし実行することもできる。
【００２４】
図１は、本発明の一実施形態に係るＭＦＰの全体構成を示すブロック図であり、図２は、本実施形態に係るＭＦＰの主構成部であるＭＦＰサービス部１の構成を示すブロック図である。
本実施形態のＭＦＰは、コピー機能、スキャナ機能、プリント機能、ファクシミリ機能等を一筐体に備えており、本発明の電気機器を構成する。
【００２５】
図１に示すとおり、ＭＦＰは、ＭＦＰサービス部１，ＭＦＰメイン部２及びアプリケーション部３によって構成されている。
ＭＦＰサービス部１は、アプリケーション部３からのＡＰＩ呼び出しに応じて対応するＡＰＩを呼び出し、このＡＰＩを介して「提供する機能」機構１４が必要な機能を提供するとともに、所定の場合には、ＭＦＰメイン部２の「関連する機能」機構が連動して働く仕組みとなっている。
【００２６】
本実施形態に係るＭＦＰの主たる構成部はＭＦＰサービス部１であり、図２に示すとおり、ＭＦＰサービス部１は、さらに、パターン検出機構１０、パターン確認機構１１、パターン記憶機構１２、パターン記憶部１３、「提供する機能」機構１４及びエラー返答形成機構１５によって構成されている。
なお、ＭＦＰサービス部１における各機構はコントローラ１００の配下にあり、当該コントローラ１００の制御により所定の動作を行う仕組みになっている。
以下、ＭＦＰサービス部１の各機構についてそれぞれ詳細に説明する。
【００２７】
パターン検出機構１０は、アプリケーションからのＡＰＩ（機能）呼び出し要求を解析し、所定のパターンデータを検出するものであり、本発明のパターン検出手段を構成するものである。
具体的には、主に、ＡＰＩ呼び出しの引数の構成から特定のパターンを認識する。
ただし、ＡＰＩは複数の関数で構成されている場合があるので、その場合のパターンデータは関数シグネチャとの関連とともに抽出される。
例えば、ＡＰＩ呼び出しが、関数DoService（1,“情報”，true）の場合、引数としては、整数値としての１、文字列としての“情報”、BOOL値としてのtrueがパターンデータとして関数シグネチャ「DoService」とともに抽出される。
なお、関数シグネチャは、説明の都合上、文字列で示しているが、ＡＰＩの実現においては関数ポインタ（アドレス）もしくは呼び出し番号のようなものであっても良い。
なお、ここで取り上げたＡＰＩ関数「DoService」に関する記述例については、後に図５を参照しながら説明する。
【００２８】
パターン確認機構１１は、パターン検出機構１０によって抽出されたパターンデータを受け取り、パターン記憶部１３に記憶されているこれまでのパターンデータの記録と比較するものであり、本発明の照合手段を構成する。
端的に言えば、アプリケーションからのＡＰＩ呼び出しが不適切なものか否かを判定する機構であり、アプリケーションからのＡＰＩ呼び出しと一致するデータがパターン記憶部１３に存在する場合には、その呼び出しは、障害を引き起こす可能性が高いと判定される。
【００２９】
パターン記憶機構１２は、「提供する機能」機構１４においてその機能の提供又は実行に際し、不具合が検出された場合にその元の呼び出しに係るパターンデータを特定しパターン記憶部１３に記憶させるものであり、本発明の呼び出し要求記憶手段を構成する。
また、不具合の検出をトリガーとするのではなく、予め設定されるモードによって、一旦すべてのＡＰＩ呼び出しに係るパターンデータを記録し、その処理が問題を引き起こさなかった場合に記録を消去するようにしても良い（記録確実モード）。
この場合、万一、危機的な不具合が発生しても、パターンデータは確実に記録されるため有効である。
さらに、新規アプリケーションのインストールが発生すると、一定の期間に限り前述の記録確実モードとなり、当該期間は、すべてのＡＰＩ呼び出しに係るパターンデータが記録されるようにしても良い（検疫監視モード）。
本モードを設定することにより、導入段階において一定の試用期間を設けることができ、動作が安定するまで状態を監視することが可能である。
なお、パターンデータの記録は、履歴とは異なり、同じパターンデータが重複して記録されることはないため、メモリ等の節約も配慮された仕組みとなっている。
【００３０】
パターン記憶部１３は、前述の通り、不具合に係るＡＰＩ呼び出しのパターンデータを記録しておくもので、メモリ等の記憶媒体によって構成される。
これらの記録は、ユーザの操作によって消去されるようにしてもよく、また、時限的な設定によって自動的に消去されるようにしてもよい。
この場合、パターンデータが消去されても同じアプリケーションが再度同じエラーを引き起こした場合、再びそのパターンデータを記憶するようにしておくこととする。
これにより、判定の精度は多少落ちるが、記憶領域を節約することができる。
また、パターン記憶部１３に記録されたパターンデータは、外部ファイルとしてエクスポートすることが可能であり、また、他の同等システムにおいてその様なエクスポートファイルをインポートすることも可能である。
このように、あるシステムで学習した結果を他のシステムで直ちに適用することもでき、また、外部の試験環境においてＡＰＩ呼び出しの異常パターンを観測することも可能である。
【００３１】
「提供する機能」機構１４は、アプリケーションに対し、求められたＡＰＩを割り当て、所定の機能を提供するものであり、本発明の機能提供手段を構成する。具体的には、ＯＳ等のＡＰＩ実装部分がこれに相当する。
なお、本実施形態では、パターン確認機構１１において、以前に不具合が生じたところの呼び出しパターンが再度確認できた場合には、ＡＰＩを切り離し、係る機能を提供しないように制御している（本発明の機能提供制限手段）。
また、この場合、エラー返答形成機構１５では、擬似的にかつ安全な形式でのＡＰＩ呼び出しエラー情報を生成し、ダミーのＡＰＩ使用結果を返答することも可能である（本発明のダミー信号返信手段）。
例えば、ＡＰＩが戻り値を持つ関数の場合には無効値やエラーコードを返すように設定し、呼び出したアプリケーションに対し、例外を発生する形式であれば予め定義された例外をスローするようにすればよい。
【００３２】
次に、以上のような構成からなる本実施形態のＭＦＰにおける動作手順について図３及び図４を参照しつつ説明する。
図３は、本実施形態に係るＭＦＰにおけるエラー学習に関する動作手順を示したフローチャートであり、図４は、本実施形態に係るＭＦＰにおける学習結果に基づく保護動作手順を示したフローチャートである。
まず、本実施形態に係るＭＦＰにおける障害学習の手順について、図３を参照しながら説明する。
【００３３】
図３に示すとおり、まず、アプリケーション部３のアプリケーションが、ＡＰＩ（機能）呼び出し"function(a,b,c)"を行ったものとする（Ｓ１）。
これに応じてＭＦＰサービス部１では所定のＡＰＩが呼び出されるとともに、パターン検出機構１０がＡＰＩ呼び出し"function(a,b,c)"を抽出する（Ｓ２）。
次に、パターン検出機構１０は、ＡＰＩ呼び出しに基づき所定のパターンデータを抽出する（Ｓ３）。
パターンデータは、ＡＰＩ呼び出しを構成するデータの組み合わせによって形成されるパターンデータとすることが好ましい。
例えば、図３の例では、ＡＰＩ呼び出し"function(a,b,c)"から各構成要素“function”、“a”、“b”、“c”がそれぞれ抜き出されてパターンデータ（"function",a,b,c）が形成され、後に記録や照合の対象とされる。
【００３４】
ここで、本来、このパターンデータとパターン記憶部１３に履歴として記録されている不具合に係るパターンデータとの照合をパターン確認機構１１に依頼する手順となるが、図３の例は、未だ不具合が発生しておらず、係る呼び出しのパターンデータが記録されていないケースを想定しているため、実質、照合不一致とみなして、通常の処理が継続されることとなる。
なお、この照合が一致した場合の処理については、後に図４を参照しながら説明する。
【００３５】
ステップＳ３の後、パターン検出機構１０は、抽出したＡＰＩ呼び出し"function(a,b,c)"を「提供する機能」機構１４に受け渡す（Ｓ４）。
「提供する機能」機構１４では、呼び出されたＡＰＩに基づき所定の機能を提供し、実行を行うが、ここで、何らかの障害が発生したとする（Ｓ５）。
「提供する機能」機構１４は、所定のエラー検出手段によって係る障害を検出すると、例外と認識し、所定の例外通知をパターン検出機構１０に送信する（Ｓ６）。
【００３６】
次に、例外通知を受けたパターン検出機構１０は、ステップＳ３において抽出したパターンデータ（"function",a,b,c）をパターン記憶機構１２に受け渡す（Ｓ７）。
そして、パターン記憶機構１２は、受け取ったパターンデータをパターン記憶部１３に記録することとなる。
これにより、不具合を引き起こす可能性が高い不適切なＡＰＩ呼び出しが特定され、一定の学習結果を得ることとなる。
【００３７】
一方、パターン検出機構１０は、例外通知を、所定のＡＰＩを介してその呼び出し元であるアプリケーションまで伝達する（ステップＳ８、Ｓ９）。
これにより、ユーザは、障害発生を認識することができ、必要なエラー処理（例えば、システムの再起動等）を行うことができる。
【００３８】
次に、前述の学習結果に基づく保護動作の手順について図４を参照しながら説明する。
ここでは、前述の図３と同様、まず、アプリケーションが、ＡＰＩ呼び出し"function(a,b,c)"を行ったものとする（Ｓ１１）。
これに応じてＭＦＰサービス部１では所定のＡＰＩが呼び出されるとともに、パターン検出機構１０がＡＰＩ呼び出し"function(a,b,c)"を抽出する（Ｓ１２）。
次に、パターン検出機構１０は、ＡＰＩ呼び出しに基づき所定のパターンデータ（"function",a,b,c）を抽出し、パターン確認機構１１に対し、その抽出されたパターンデータの照合を依頼する（Ｓ１３）。
【００３９】
ステップＳ１３を受けて、パターン確認機構１１はパターン記憶部１３を検索し、ステップＳ１２において抽出されたパターンデータ（"function",a,b,c）とパターン記憶部１３に記録されているパターンデータとの照合を行う（Ｓ１４）。
図４の例では、ステップＳ１４における照合（検索）の結果、照合の一致が認められるため（図３のステップＳ７参照）、パターン確認機構１１は、パターン検出機構１０に対しその旨の通知（本例の場合は"true"）を行う。
なお、係る照合が一致しない場合は、図３の例と同様に、通常の処理が継続される。
【００４０】
そして、パターン検出機構１０は、エラー返答形成機構１５に対し、ダミーの返答データ（fakeデータ）を発信するように依頼を行う（Ｓ１５）。
エラー返答形成機構１５は、所定のｆａｋｅデータをパターン検出機構１０に返し（Ｓ１６）、ＡＰＩを介して要求元のアプリケーションに伝達されることとなる（Ｓ１７、Ｓ１８）。
これにより、ユーザは、ＡＰＩや機能が誤って呼び出されている事実を認識することができ、安全にしかるべき措置を採ることが可能となる。
【００４１】
次に、本実施形態に係るＭＦＰにおける実際のパターンデータのＸＭＬ記述例について図５を参照しながら説明する。
ここでは、前述のＡＰＩ「DoService」の例について、ＸＭＬ（Extensible  Markup  Language）で記述した２つのケースについて説明する。
図５（ａ）に示すとおり、ここでは、タグ<signature>によって開始されるノードの中で、エラーを起こしたパターンが<pattern>タグで記録される。
また、一つのpatternノードの中にはパラメータの実値が記録されている。
なお、<errors>タグ部分には、このパターンで実際に発生したエラー情報が記録され、ユーザが参照できるようになっている。
一方、図５（ｂ）では、関数シグネチャを関数名部分に限定するのではなく、関数の引数の数、それぞれのデータ型、戻り値の有無並びにデータ型等を総合したものを関数シグネチャとした場合のＸＭＬ記述例を示したものである。
このような場合は、<signature>タグ部分に関数シグネチャに対応する情報が記録され、パラメータ部分には単にパラメータを羅列するように記述すればよい。
【００４２】
以上説明したように、本実施形態のＭＦＰによれば、「提供する機能」機構１４において何らかの不具合を検出すると、パターン検出機構１０が対応するＡＰＩ呼び出しパターンを抽出し、パターン記憶機構１２がその呼び出しのパターンデータを記録するようにしている。
そして、アプリケーション部３からのＡＰＩ呼び出しのパターンが、予め記録されている呼び出しのパターンと一致した場合には障害を引き起こす可能性が高い呼び出しと判断して、「提供する機能」機構１４の動作を制限するようにしている。
このため、不適切なＡＰＩや機能の使用に起因する「提供する機能」機構１４の障害のみならず、隣接する「関連する機能」機構やシステム全体に及ぶ障害の発生を未然に防ぐことができるようになる。
【００４３】
具体的には、ＭＦＰにおいてジョブ処理待ち中に使用する時間つぶしアプリケーション、すなわちゲーム利用時の対応策が想定される。
ゲームのようなアプリケーションソフトでは、ＭＦＰの持つ固有のサービスを使うことはあまり無いとと考えられるが、何らかの理由や目的で、或いは、作り手のミスでＭＦＰの機能を呼び出すケースがあり得る。
特に、ＭＦＰ上でジョブ処理が行われている場合は、通常時（ｉｄｌｅ時）よりも不具合を発生する可能性が高いと考えられる。
このような場合に、ＡＰＩを直接排除するような措置を実行すると、エラーが発生し、ジョブ処理が中断しかねない。
そこで、このようなアプリケーションの使用を禁止する措置を採る一方で、本実施形態に係るＭＦＰ又は係るプログラム等を採用することによってソフトウェアメカニズムで障害の発生を最低限に抑えることが可能となる。
【００４４】
このように、本実施形態によれば、装置自身が不具合を経験することで不具合発生のパターンを学習し、これにより不適切な処理の繰り返しを防ぐことができるようになっている。
その結果、ソフト・ハード又はシステム全体に及ぶ障害の発生を未然に防ぐことができ、耐久性を備え、信頼性及び利便性に優れたＭＦＰを実現することが可能となる。
【００４５】
［他の実施形態］
次に、本発明の他の実施形態に係るＭＦＰについて図６を参照しながら説明する。
図６は、本発明の他の実施形態に係るＭＦＰの主構成部であるＭＦＰサービス部１の構成を示すブロック図である。
図６に示すとおり、本実施形態のＭＦＰは、前述の実施形態に係るＭＦＰとその構成が同様であるが、加えて、アプリ管理機構１６及びアプリ識別機構１７を備える点で異なる。
【００４６】
アプリ識別機構１６は、ＡＰＩを使用するアプリケーションに関する情報を予めプラットフォームから抽出しておくものである。
アプリ管理機構１７は、アプリ識別機構１６によって抽出されたアプリ識別情報を保持しておくものである。
具体的には、パターン確認機構１１が、ＡＰＩ呼び出しがあった際、アプリ管理機構１７で保持されたアプリ識別情報にアクセスし、係るＡＰＩ呼び出しと併せて照合の判断材料とする。
【００４７】
例えば、あるアプリケーションからの特定のＡＰＩ呼び出しについては障害を発生させる可能性があるして不適切と判断するが、他のアプリケーションから同じＡＰＩ呼び出しが行われたとしても、適切な呼び出しと判断することができる。
反対に、あるアプリケーションからの特定のＡＰＩ呼び出しについては適切と判断するが、他のアプリケーションから同じＡＰＩ呼び出しが行われたとしても、これを不適切な呼び出しと判断することができる。
このように、本実施形態によれば、アプリケーション単位でＡＰＩ呼び出しに関する判定を行うことが可能である。
【００４８】
以上説明したように、本実施形態のＭＦＰによれば、前述の実施形態と同様の効果が発揮されるだけでなく、アプリ識別機構１６が、アプリケーションに関する識別情報を抽出し、それをアプリ管理部１７が保持するようにしている。
そして、パターン確認機構１１が、アプリ管理部１７に保持してある識別情報を参照しながら各ＡＰＩ呼び出し要求を照合するようにしているため、障害を引き起こす可能性の高いＡＰＩ呼び出し要求をより正確に特定することが可能となる。
したがって、本実施形態によれば、不具合に対して更に耐久性が高く、信頼性に優れたＭＦＰを実現することができる。
【００４９】
以上、本発明の電気機器について、好ましい実施形態を示して説明したが、本発明にかかる電気機器は、上述した実施形態にのみ限定されるものではなく、本発明の範囲で種々の変更実施が可能であることは言うまでもない。
例えば、本実施形態では、ＭＦＰを典型例として説明しているが、プリンタ、コピー機等の他の画像形成装置又は情報処理装置に本発明を適用しても良く、これにより、拡張性を高めることが可能である。
【００５０】
また、本実施形態では、Java（登録商標）の仮想マシン環境等、ＭＦＰに搭載されたアプリケーション実行環境を想定しているが、いわゆるシミュレータ、エミュレータの仮装実行環境においてこの機能が実現されてもよい。
これにより、アプリケーションの評価（デバッグ）等を含めたソフトウェアの開発に応用することが可能となる。
【００５１】
さらに、長大なレコードを取り扱うデータベースアプリケーションに本実施形態を応用しても良い。
データベースシステムでは、一般に、レコード数が嵩むにつれて、データベースアクセスには時間がかかり、その分、リソースやシステムへ与えるインパクトが大きくなる。このことは、潜在的にシステム不具合の可能性を増加し、障害発生の危険度を高めることに繋がる。また、システムの状況が導入後に変化していく場合、アプリケーションは同じ動作パターンを繰り返していても、将来的に不具合を起こす可能性は残っている。
そのような場合、本発明の障害防止方法やプログラムを導入することにより、ログ機能などで改善情報を収集しつつ、システム全体への影響波及を食い止め生産性を損なわない効果をもたらすことができる。
【産業上の利用可能性】
【００５２】
本発明は、ＡＰＩを提供するＯＳが組み込まれた情報処理装置等に好適に利用することができる。
【図面の簡単な説明】
【００５３】
【図１】本発明の一実施形態に係るＭＦＰの全体構成を示すブロック図である。
【図２】本発明の一実施形態に係るＭＦＰの主構成部であるＭＦＰサービス部１の構成を示すブロック図である。
【図３】本発明の一実施形態に係るＭＦＰにおけるエラー学習に関する動作手順を示したフローチャートである。
【図４】本発明の一実施形態に係るＭＦＰにおける学習結果に基づく保護動作手順を示したフローチャートである。
【図５】本発明の一実施形態に係るＭＦＰにおける実際のプログラム上のパターンデータを示した記述例である。
【図６】本発明の他の実施形態に係るＭＦＰの主構成部であるＭＦＰサービス部１の構成を示すブロック図である。
【図７】従来のＭＦＰの問題を説明するための説明図である。
【符号の説明】
【００５４】
１  ＭＦＰサービス部
２  ＭＦＰメイン部
３  アプリケーション部
１０  パターン検出機構
１１  パターン確認機構
１２  パターン記憶機構
１３  パターン記憶部
１４  「提供する機能」機構
１５  エラー返答形成機構
１６  アプリ管理機構
１７  アプリ識別機構
【図１】
0004958734.tif 000002
【図２】
0004958734.tif 000003
【図３】
0004958734.tif 000004
【図４】
0004958734.tif 000005
【図５】
0004958734.tif 000006
【図６】
0004958734.tif 000007
【図７】
0004958734.tif 000008