説明

機器、履歴情報記録方法、及びプログラム

【課題】アプリケーションが実行する処理に関するログ情報を適切に記録すること。
【解決手段】アプリケーションプログラムを実行可能な機器であって、前記アプリケーションプログラムからの処理の実行要求に応じ、該実行要求に係る識別情報を含めて前記処理に関する履歴情報を記憶装置に記録する履歴情報記録手段と、前記履歴情報を前記記憶装置に記録できる場合に、前記実行要求に基づく処理を実行する処理実行手段とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機器、履歴情報記録方法、及びプログラムに関し、特にアプリケーションが実行する処理に関する履歴情報を記録する機器、履歴情報記録方法、及びプログラムに関する。
【背景技術】
【0002】
近年では、主に複合機又は融合機と呼ばれる画像形成装置において、その出荷後に、公開されたAPI(Application Program Interface)を利用して新たなアプリケーションの開発及びインストールが可能とされているものがある(例えば、特許文献1)。斯かる画像形成装置では、当該画像形成装置のベンダによって開発されたアプリケーションのみならず、サードベンダによって開発されたアプリケーションをインストールすることが可能となり、画像形成装置の機能の拡張性を著しく向上させることができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、不特定のアプリケーションがインストールされることにより、画像形成装置のセキュリティが低下する可能性が有る。各アプリケーションが不正なアプリケーションであるか否かを事前に判断するのは困難だからである。特に、近年の画像形成装置は大規模記憶装置を備え、当該大規模記憶装置内に各種の機密情報(ユーザの個人情報、スキャンされた機密文書の画像データ等)を管理可能となっている。このような機密情報等が不特定のアプリケーションによって不正にアクセスされるのは好ましくない。
【0004】
斯かる不正なアプリケーションの存在を検知するための手段として、ログ情報の記録は有効である。但し、従来は、ログ情報の記録を実現するためにアプリケーションに何らかの実装(例えば、ログの記録関数の呼び出し等)が必要とされていた。しかし、このような仕組みの場合、アプリケーション内に適切に当該実装が行われなければ、ログ情報の記録漏れが発生する。その結果、不正なアプリケーションの存在を検知できないという問題がある。
【0005】
本発明は、上記の点に鑑みてなされたものであって、アプリケーションが実行する処理に関する履歴情報を適切に記録することのできる機器、履歴情報記録方法、及びプログラムの提供を目的とする。
【課題を解決するための手段】
【0006】
そこで上記課題を解決するため、本発明は、アプリケーションプログラムを実行可能な機器であって、前記アプリケーションプログラムからの処理の実行要求に応じ、該実行要求に係る識別情報を含めて前記処理に関する履歴情報を記憶装置に記録する履歴情報記録手段と、前記履歴情報を前記記憶装置に記録できる場合に、前記実行要求に基づく処理を実行する処理実行手段とを有することを特徴とする。
【0007】
このような機器では、アプリケーションが実行する処理に関する履歴情報を適切に記録することができる。
【発明の効果】
【0008】
本発明によれば、アプリケーションが実行する処理に関する履歴情報を適切に記録することのできる機器、履歴情報記録方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【0009】
【図1】本発明の実施の形態におけるシステム構成例を示す図である。
【図2】本発明の実施の形態における機器のハードウェア構成例を示す図である。
【図3】第一の実施の形態における機器のソフトウェア構成例を示す図である。
【図4】第一の実施の形態における機器の処理概要を説明するためのフローチャートである。
【図5】第一の実施の形態における機器の処理手順を説明するためのシーケンス図である。
【図6】第二の実施の形態における機器のソフトウェア構成例を示す図である。
【図7】第二の実施の形態における機器の処理概要を説明するためのフローチャートである。
【図8】第二の実施の形態における機器の処理手順を説明するためのシーケンス図である。
【発明を実施するための形態】
【0010】
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態におけるシステム構成例を示す図である。図1において、ログ収集サーバ10と、機器20a、機器20b及び機器20c(以下、総称する場合「機器20」という。)とは、オフィスにおけるLAN(Local Area Network)等のネットワーク15(有線又は無線の別は問わない。)を介して接続されている。
【0011】
機器20は、コピー、ファクシミリ、プリンタ、及びスキャナ等の複数の機能を一台の筐体において実現する画像形成装置(複合機)である。
【0012】
ログ収集サーバ10は、機器20において生成される各種のログ情報を収集し、一元的に管理するコンピュータである。なお、ログ収集サーバ10は複数台存在してもよい。
【0013】
図2は、本発明の実施の形態における機器のハードウェア構成例を示す図である。図2において、機器20は、コントローラ201、スキャナ202、プリンタ203、モデム204、ネットワークインタフェース205、及び操作パネル206等のハードウェアを有する。
【0014】
コントローラ201は、CPU211、RAM212、ROM213、及びHDD214等を有する。ROM213には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。RAM212は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。CPU211は、RAM212にロードされたプログラムを処理することにより、後述される機能を実現する。HDD214は、各種のデータ(例えば、スキャンされた画像データ)を保存するために利用される。
【0015】
スキャナ202は、原稿より画像データを読み取るためのハードウェアである。プリンタ203は、画像データを印刷用紙に印刷するためのハードウェアである。モデム204は、電話回線に接続するためのハードウェアであり、FAX通信による画像データの送受信を実行するために用いられる。ネットワークインタフェース205は、ネットワーク15に接続するためのハードウェアである。操作パネル206は、ユーザからの入力の受け付けや、ユーザに対する情報の通知等を行うめのボタン、液晶パネル等を備えたハードウェアである。
【0016】
図3は、第一の実施の形態における機器のソフトウェア構成例を示す図である。第一の実施の形態では、通信ログ(通信履歴)の記録について説明する。図3において、機器20は、SDKアプリ30、SDKプラットフォーム40、ログサービス51及びソケットライブラリ52等のソフトウェアを含む。これらの各ソフトウェアは、RAM212にロードされ、CPU211に処理を実行させることによりその機能を実現する。
【0017】
ログサービス51は、後述されるSDKアプリ30によって行われる通信(特に、暗号化通信)に関するログをログ記憶領域60に記録する。ログサービス51は、また、ログ記憶領域60に記録されているログのログ収集サーバ10への転送をも制御する。なお、ログ記憶領域60は、RAM212又はHDD214に設けられたログ記録用の記録領域である。ソケットライブラリ52は、いわゆるソケットライブラリであり、TCP/IP通信において利用するAPIを上位モジュールに対して提供する。
【0018】
SDKプラットフォーム40は、SDKアプリ30の実行環境を提供するソフトウェアプラットフォームである。同図では、SDK共通処理モジュール401、JVM(Java(登録商標) Virtual Machine)402、JSSE403、通信サービス404、及び通信ログサービス405等がSDKプラットフォーム40に含まれている。
【0019】
JVM402は、Java(登録商標)バイトコードをOS上で動作可能なネイティブコードに変換して実行する。なお、JVM402より上に図示されているソフトウェアは、Java(登録商標)のバイトコードによって実装されたものである。JSSE403は、Java(登録商標)標準の暗号化通信(SSL(Secure Socket Layer)等)のフレームワーク及び実装である。
【0020】
通信サービス404及び通信ログサービス405は、OSGi(Open Service Gateway initiative)フレームワーク上で動作するバンドルである。OSGiフレームワークは、OSGiアライアンスによる標準化技術であり、Java(登録商標)言語に基づいたオープンなソフトウェア部品化技術に基づいて作成されたソフトウェア部品の実行環境を提供するソフトウェアプラットフォームである。OSGiフレームワーク上において、Java(登録商標)言語のソフトウェアは「バンドル」と呼ばれるソフトウェア部品の形で実装される。一つのバンドルは、一つのJAR(Java(登録商標) ARchive)ファイルによって構成され、それぞれ独立して動的に(装置の再起動を要することなく)インストール可能である。通信サービス404は、HTTP(HyperText Transfer Protocol)、FTP(File Transfer Protocol)、SNMP(Simple Network Management Protocol)、LDAP(Lightweight Directory Access Protocol)等のいわゆるアプリケーション層の通信プロトコルに関する通信処理を制御するとともに、当該通信処理に関するインタフェースをSDKアプリ30に提供する。通信サービス404は、SDKアプリ30より暗号化通信が要求された場合は、JSSE403を利用して暗号化通信を行う。通信ログサービス405は、SDKアプリ30より通信要求が発生した際のログ(通信ログ)の記録処理を制御する。
【0021】
その他、SDKプラットフォーム40には、Java(登録商標)の標準のクラスや、機器20用に拡張されたクラスに関するクラスライブラリ等も含まれる。例えば、同図には、セキュリティマネージャ406がJVM402の一部として示されている。セキュリティマネージャ406は、Java(登録商標)標準のSecurityManagerクラスを拡張したクラスによって実装されている。したがって、セキュリティマネージャ406は、予めポリシーファイルに定義されたアクセス制御情報に基づいて、SDKアプリ30による、ファイル、ネットワークソケット、及びプリンタ等のリソースへのアクセスを制限する。すなわち、SDKプラットフォーム40は、各種リソースへのアクセスが発生する際に、セキュリティマネージャ406に対する呼び出しが発生するように構成されている。セキュリティマネージャ406は、その呼び出しに応じてリソースへのアクセスの可否を判断する。斯かる仕組みを用いて、本実施の形態では、セキュリティマネージャ406が、SDKアプリ30による暗号化通信の実行を検知する。
【0022】
SDKアプリ30は、SDKプラットフォーム40において公開されている専用のSDK(ソフトウェア開発キット)を使用して作成されたアプリケーション(以下「SDKアプリ」という。)である。SDKプラットフォーム40上には複数のSDKアプリ30をインストール可能である。
【0023】
以下、第一の実施の形態における機器20の処理手順について説明する。図4は、第一の実施の形態における機器の処理概要を説明するためのフローチャートである。
【0024】
機器20において、通信を開始するSDKアプリ30は、通信処理の実行要求をSDKプラットフォーム40に対して行う(S101)。続いて、機器20は、SDKアプリ30によって行われる通信が暗号化通信であるか否かを判定する(S102)。暗号化通信である場合(S102でYES)、機器20は、ログ情報の記録の準備を行う(S103)。具体的にはログ情報として記録する項目の値を判定する。例えば、通信に利用される通信プロトコル及び暗号化プロトコルが判定される。続いて、機器20は通信用のソケットをオープンし(S106)、ログ情報を記録する(S107)。続いて、機器20は、SDKアプリ30によって指定されたプロトコルによって通信処理を行う(S109)。
【0025】
一方、暗号化通信でない場合(S102でNO)、機器20は、機器内通信であるか否かを判定する(S104)。機器内通信とは、機器20内部におけるプログラム間の通信(例えば、プロセス間通信)をいう。機器内通信でない場合(S104でNO)、機器20は、ログ情報の記録の準備として、通信に利用される通信プロトコルを判定する(S105)。なお、暗号化通信ではないため、暗号化プロトコルの値は、「無し」とされる。続いて、ステップS106〜S109が実行される。
【0026】
また、機器内通信の場合(S104でYES)、機器20はソケットをオープンし(S108)、SDKアプリ30によって指定されたプロトコルによって通信処理を行う(S109)。したがって、機器内通信の場合ログ情報の記録は行われない。これは、機器内通信については、セキュリティ上の観点より重要度が低いからと考えられるからである(すなわち、機器20の外部との通信の方が重要度が高いと考えるからである。)。また、機器内通信の全てについてまでログ情報を記録した場合、短期間でログ記憶領域60を消費してしまうからである。なお、ログ記憶領域60の消費を更に抑制したい場合、暗号化通信についてのみログ情報を記録するようにしてもよい。通信内容を暗号化するということは、その通信自体が重要なものであると考えられる。したがって、暗号化通信についてのみログ情報を記録することで、ログ記憶領域60の消費を抑制しつつ、重要な通信に関するログ情報を記録することができる。
【0027】
続いて、図4においてその概要を説明した処理手順について更に詳細に説明する。図5は、第一の実施の形態における機器の処理手順を説明するためのシーケンス図である。
【0028】
SDKアプリ30が通信サービス404に対して所望の通信プロトコル(HTTP、FTP、SNMP、LDAP等)による暗号化通信の実行を要求すると、通信サービス404は、JSSE403に対して暗号化通信の実行を要求する(S201)。なお、図中では、便宜上通信サービス404は省略されている。SDKアプリ30からの通信サービス404に対する要求は、例えば所望の通信プロトコルに応じたクラスのメソッドの呼び出しによって実現される。すなわち、通信サービス404内には通信プロトコルごとにクラスが存在する。
【0029】
また、通信サービス404からJSSE403に対する要求は、JSSE403に含まれるクラスのうち、SDKアプリ30より要求された通信に応じたクラスのメソッドの呼び出しによって実現される。例えば、SDKアプリ30の所望の通信プロトコルや、クライアントとしての通信かサーバとしての通信か等に応じて呼び出されるクラス(JSSE403のクラス)が異なる。
【0030】
JSSE403において呼び出されたクラスは、呼び出されたこと(通信要求の発生)をセキュリティマネージャ406に通知する(S202)。続いて、セキュリティマネージャ406は、通信で使用される通信プロトコル及び暗号化プロトコルを判定する(S203)。当該判定は、スタックトレースによって行われる。すなわち、クラス間の呼び出し関係(呼び出しの階層状態)は、RAM212内に形成されるスタック(コールスタック)内に記録されている。セキュリティマネージャ406は、コールスタックを参照し、JSSE403からの呼び出しの経路を遡ることによって、JSSE403において呼び出されたクラス(クラス名)、通信サービス404において呼び出されたクラス(クラス名)を把握する。通信サービス404において呼び出されたクラス名によって使用される通信プロトコルが判定され、JSSE403において呼び出されたクラス名によって、暗号化通信が要求されていること及び暗号化通信に使用される暗号化プロトコルが判定される。なお、暗号化通信が要求されていない場合は、JSSE403のクラスに対する呼び出しは行われない。したがって、セキュリティマネージャ406は、コールスタック内に暗号化通信に関するクラス(JSSE403のクラス)が含まれていない場合は、暗号化通信でないと判定する。
【0031】
暗号化通信の場合、セキュリティマネージャ406は、判定された通信プロトコル及び暗号化プロトコルの識別情報(例えば、プロトコル名)をログ情報として通信ログサービス405に通知する(S204)。通信ログサービス405は、当該ログ情報の記録をSDK共通処理モジュール401を介してログサービス51に要求する(S205、S206)。
【0032】
続いて、ログサービス51は、ログ記憶領域60の空き容量等を確認し、ログ情報の記録(書き込み)の可否を判定する(S207)。ログ記憶領域60に十分空き容量が有る場合、ログサービス51はログ記憶領域60にログ情報を記録する(S208)。この際、ログサービス51は、通信プロトコル及び暗号化プロトコルの識別情報に加え、時刻情報、及びログID等を記録する。ログIDは、各ログ(一回の書き込み分のログ)に対して一意なIDである。続いて、ログサービス51は、ログ情報の記録に成功したことをSDK共通処理モジュール401に応答する(S209)。SDK共通処理モジュール401は、ログ情報の記録に成功したため通信処理が可能であることをセキュリティマネージャ406に通知する(S210)。セキュリティマネージャ406は、当該通知を受けて、ステップS202において通知された通信要求に係る処理を許可する旨の応答をJSSE403に対して行う(S211)。JSSE403は、セキュリティマネージャ406からの許可を受けて、SDKアプリ30によって要求された通信処理(通信の開始、データの送受信、又は通信の終了等)をソケットライブラリ52を用いて実行する(S212)。JSSE403は、ソケットライブラリ52より処理結果(処理の成否)を示す情報が返却されると(S213)、当該情報をSDKアプリ30に返却する(S214)。
【0033】
一方、ステップS207において、ログサービス51は、ログ記憶領域60がログフル又はニアフル(空き容量が所定値以下)の状態であり、ログ情報の書き込みは不可能又は適切ではないと判定した場合、ログ情報の記録に失敗したことをSDK共通処理モジュール401に応答する(S221)。SDK共通処理モジュール401は、ログ情報の記録に失敗したため通信処理が不可能であることをセキュリティマネージャ406に通知する(S222)。セキュリティマネージャ406は、当該通知を受けて、ステップS202において通知された通信要求に係る処理を許可しない旨の応答をJSSE403に対して行う(S223)。JSSE403は、セキュリティマネージャ406からの不許可の応答を受けて、要求された通信処理は実行できないことをSDK30に応答する(S224)。
【0034】
ところで、ログ記憶領域60がログフル又はニアフルの状態となった場合には、ログサービス51が、ログ記録領域60に記録されているログ情報をログ収集サーバ10に転送するようにしてもよい。この場合、転送済みのログ情報をログ記憶領域60より削除することで、ログ記憶領域60の空き容量を確保することができ、通信処理を実行させることが可能となる。但し、ログ収集サーバ10側がログフル又はニアフルの場合、ステップS221以降の処理が実行される。
【0035】
なお、ログ収集サーバ10へのログ情報の転送は、定期的に行われてもよいし、ログ情報の記録の度に逐次行われてもよい。いずれのタイミングで転送するかについては、操作パネル206を介して管理者等によって設定可能としてもよい。この場合、設定内容(転送するタイミングを示す情報)はHDD214に保存される。ログサービス51は、当該設定内容を参照して、ログ情報の転送のタイミングを判定する。
【0036】
上述したように、第一の実施の形態の機器20によれば、暗号化通信に関して、SDKアプリ30からの明示的なログ情報の記録要求が無くてもログ情報を強制的に記録することができる。したがって、ログの記録漏れを防止することができ、不正なSDKアプリ30の存在の検知の可能性を向上させることができる。
【0037】
また、暗号化通信についてログ情報を記録するため、ログ情報の蓄積量の急速な肥大化を抑制しつつ、セキュリティ上重要な通信に関するログ情報を記録することができる。また、ログ情報の記録が不可能な場合は、通信処理の実行は許可されないため、不正な処理の痕跡が残されないまま当該不正な処理が実行されてしまうといった事態の発生を防止することができる。
【0038】
次に、第二の実施の形態としてジョブログ(ジョブ履歴)の記録について説明する。第二の実施の形態では、第一の実施の形態と異なる点について説明する。したがって、特に言及しない点については第一の実施の形態と同様でよい。
【0039】
図6は、第二の実施の形態における機器のソフトウェア構成例を示す図である。図6中、図3と同一部分には同一符号を付し、その説明は省略する。
【0040】
同図のSDKプラットフォーム40には、ジョブサービス407、アプリケーションマネージャ408、ジョブ制御モジュール409、認証マネージャ410、及びジョブログマネージャ411等が含まれている。
【0041】
ジョブサービス407は、実行が要求されたジョブ(印刷、スキャン、コピー、FAX送信等)に関して、機器20のハードウェアの制御を行う。アプリケーションマネージャ408は、SDKアプリ30に関する情報(アプリケーション情報)を管理する。例えば、SDKアプリ30のインストール時には、SDKアプリ30のプロダクトIDとSDKアプリ30の識別名(アプリ名)との対応情報がアプリケーションマネージャ408に登録される。アプリケーションマネージャ408は、当該対応情報をHDD214に記録して管理する。なお、プロダクトIDとは、SDKアプリ30の製品ごとに割り当てられるIDである。
【0042】
ジョブ制御モジュール409、認証マネージャ410、及びジョブログマネージャ411は、OSGiフレームワーク上で動作するバンドルである。ジョブ制御モジュール409は、SDKアプリ30よりジョブの実行要求を受け付ける。認証マネージャ410は、機器20のユーザのログイン時の認証を行う。機器20のHDD214にはユーザ情報(例えば、ユーザ名及びパスワード)が記録されており、認証マネージャ410は操作パネル206に表示されたログイン画面に入力された情報(ユーザ名及びパスワード等)に基づいて認証を行い、認証されたユーザのユーザ名又はユーザIDをRAM212内に保持する。認証されたユーザは、ログインユーザとして機器20のSDKアプリ30を利用して機器20にジョブを実行させることができる。ジョブログマネージャ411は、SDKアプリ30よりジョブの実行要求が発生した際のログ(ジョブログ)の記録処理を制御する。
【0043】
以下、第二の実施の形態における機器20の処理手順について説明する。図7は、第二の実施の形態における機器の処理概要を説明するためのフローチャートである。
【0044】
機器20において、SDKアプリ30は、ユーザによって操作パネル206を介して実行を指示されたジョブ(印刷、スキャン、コピー、又はFAX送信等)の実行要求をSDKプラットフォーム40に対して行う(S301)。当該ジョブの実行要求に応じ、ジョブサービス407は、ジョブログに出力するジョブ情報を生成する(S311)。ジョブ情報には、例えば、ジョブの実行条件に関する情報(パラメータ)が含まれる。ジョブの実行条件に関するパラメータは、例えば、ジョブの実行指示の際にユーザによって入力される。ジョブ情報の生成に成功すると(S312でYES)、ジョブサービス407は、生成されたジョブ情報をジョブログマネージャ411に通知する(S313)。
【0045】
また、認証マネージャ410は、ジョブ実行要求時のログインユーザのユーザ情報(ユーザ名等)をRAM212より取得する(S321)。ユーザ情報の取得に成功した場合(S322でYES)、認証マネージャ410は、ユーザ情報をジョブログマネージャ411に通知する(S323)。
【0046】
また、アプリケーションマネージャ408は、ジョブ実行要求元のSDKアプリ30のアプリケーション情報(プロダクトID)を取得する(S331)。プロダクトIDの取得に成功した場合(S332でYES)、アプリケーションマネージャ408は、プロダクトIDをジョブログマネージャ411に通知する(S333)。
【0047】
ジョブログマネージャ411は、ジョブ情報、ユーザ情報、及びプロダクトIDの通知を受け付けると、受け付けた情報を含むログ情報を生成する(S341)。続いて、ログサービス51は、ログ記憶領域60の空き容量等を確認し、ログ情報の記録の可否をチェックする(S342)。ログ情報の記録が可能な場合(S343でYES)、ジョブサービス407は要求されたジョブの実行を制御する(S344)。また、ログサービス51は、ログ情報をログ記憶領域60に記録する(S345)。当該ログ情報には、ジョブ情報、ユーザ情報、及びプロダクトIDが含まれている。したがって、「誰が(ユーザ情報)何を使って(プロダクトID)何をしたか(ジョブ情報)」を示す情報がジョブログとして記録される。
【0048】
なお、ジョブ情報の生成に失敗した場合(S312でNO)、ユーザ情報の取得に失敗した場合(S322でNO)、プロダクトIDの取得に失敗した場合(S332でNO)、又はログ情報の記録が不可能な場合(S343でNO)は、ジョブの実行及びログ情報の記録は実行されない。
【0049】
続いて、図7においてその概要を説明した処理手順について更に詳細に説明する。図8は、第二の実施の形態における機器の処理手順を説明するためのシーケンス図である。
【0050】
ステップS401において、SDKアプリ30は、ユーザによって操作パネル206を介して実行を指示されたジョブ(印刷、スキャン、コピー、又はFAX送信等)の実行要求をジョブ制御モジュール409に対して出力する。当該実行要求にはジョブの実行条件(ジョブ条件)に関するパラメータが含まれている。続いて、ジョブ制御モジュール409は、ジョブ条件のパラメータをジョブサービス407に設定することにより、ジョブの実行をジョブサービス407に要求する(S402)。
【0051】
続いて、ジョブサービス407は、ジョブの実行を開始する旨の通知(ジョブ実行通知)を認証マネージャ410及びアプリケーションマネージャ408に対して行う(S403、S405)。また、ジョブサービス407は、ジョブ条件を含むジョブ情報を生成し、当該ジョブ情報をジョブログマネージャ411に通知する(S408)。
【0052】
ジョブ実行通知(S403)を受けた認証マネージャ410は、現在のログインユーザのユーザ情報(ユーザ名等)をRAM212より取得し、ジョブログマネージャ411に通知する(S404)。
【0053】
また、ジョブ実行通知(S405)を受けたアプリケーションマネージャ408は、当該ジョブ実行通知に係るスレッドの属性情報に基づいてジョブ要求元のJSDKアプリ30のプロダクトIDを取得する(S406)。本実施の形態では、スレッドの属性情報としてスレッドグループを用いる。スレッドグループ(ThreadGroup)とは、Java(登録商標)標準の仕組みであり、スレッド(Thread)やスレッドグループの集合である。一つ以上のスレッドを一つのスレッドグループに関連付けることができる。また、スレッドグループには、名前(スレッドグループ名)を付加することができる。そして、各スレッド内では、当該スレッドが属するスレッドグループを識別することができる。
【0054】
本実施の形態では、SDKアプリ30ごとにスレッド及びスレッドグループが生成される。すなわち、一つのSDKアプリ30に対して一つのスレッドグループが割り当てられ、当該スレッドグループのスレッドグループ名には、当該SDKアプリ30の識別名(アプリ名)が設定される。また、本実施の形態において、ジョブ制御モジュール409、ジョブサービス407、アプリケーションマネージャ408は、それぞれ独立したプロセス又はスレッドとして動作するプログラムではなく、SDKアプリ30と同一スレッド上で動作するプログラムモジュール(関数又はクラスの集合)である。したがって、アプリケーションマネージャ408は、自らのスレッドが属するスレッドグループのスレッドグループ名に基づいてジョブ要求元のSDKアプリ30のアプリ名を取得する。また、アプリケーションマネージャ408は、取得されたアプリ名と、SDKアプリ30のインストール時に生成されるアプリ名とプロダクトIDとの対応情報とに基づいて、ジョブ要求元のSDKアプリ30のプロダクトIDを取得する。アプリケーションマネージャ408は、取得されたプロダクトIDをジョブ要求元のSDKアプリ30の識別情報としてジョブログマネージャ411に通知する(S407)。
【0055】
ジョブログマネージャ411は、ジョブ情報、ユーザ情報、及びプロダクトIDの通知を受け付けると、受け付けた情報を含むログ情報を生成する(S409)。続いて、ジョブログマネージャ411は、生成されたログ情報の記録をSDK共通処理モジュール401を介してログサービス51に要求する(S410、S411)。続いて、ログサービス51は、ログ記憶領域60の空き容量等を確認し、ログ情報の記録(書き込み)の可否を判定する(S412)。ログ記憶領域60に十分空き容量が有る場合、ログサービス51はログ記憶領域60にログ情報を記録する(S413)。この際、ログサービス51は、ジョブ情報、ユーザ情報、及びプロダクトID等に加え、時刻情報、及びログID等を記録する。
【0056】
続いて、ログサービス51は、ログ情報の記録に成功したことをSDK共通処理モジュール401に応答する(S414)。SDK共通処理モジュール401は、ログ情報の記録に成功したため、ジョブの実行が可能であることをジョブサービス407に通知する(S415)。ジョブサービス407は、当該通知を受けて、SDKアプリ30によって要求されたジョブの実行を制御する(S416)。続いて、ジョブサービス407は、ジョブの実行状態(実行結果)を示す情報をジョブ制御モジュール409を介してSDKアプリ30に返却する(S417、S418)。
【0057】
なお、ステップS412において、ログサービス51が、ログ情報の書き込みは不可能又は適切ではないと判定した場合、第一の実施の形態と同様にログ記録領域60に記録されているログ情報をログ収集サーバ10に転送し、転送されたログ情報をログ記録領域60から削除するようにしてもよい。また、ログ情報を転送するタイミングについても第一の実施の形態と同様に選択可能としてもよい。
【0058】
上述したように第二の実施の形態の機器20によれば、ジョブの実行に関して、SDKアプリ30からの明示的なログ情報の記録要求が無くてもログ情報を強制的に記録することができる。したがって、ログの記録漏れを防止することができ、不正なSDKアプリ30の存在の検知の可能性を向上させることができる。また、ログ情報の記録が不可能な場合は、ジョブは実行されないため、不正な処理の痕跡が残されないまま当該不正な処理が実行されてしまうといった事態の発生を防止することができる。
【0059】
なお、第一の実施の形態においても、第二の実施の形態と同様の仕組みによって、暗号化通信処理時のログインユーザや、暗号化通信処理の要求元のSDKアプリ30の識別名等をログ情報に含めて記録するようにしてもよい。
【0060】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0061】
10 ログ収集サーバ
15 ネットワーク
20 機器
30 SDKアプリ
40 SDKプラットフォーム
51 ログサービス
52 ソケットライブラリ
60 ログ記憶領域
201 コントローラ
202 スキャナ
203 プリンタ
204 モデム
205 ネットワークインタフェース
206 操作パネル
211 CPU
212 RAM
213 ROM
214 HDD
401 SDK共通処理モジュール
402 JVM
403 JSSE
404 通信サービス
405 通信ログサービス
406 セキュリティマネージャ
407 ジョブサービス
408 アプリケーションマネージャ
409 ジョブ制御モジュール
410 認証マネージャ
411 ジョブログマネージャ
【先行技術文献】
【特許文献】
【0062】
【特許文献1】特開2005−269619号公報

【特許請求の範囲】
【請求項1】
アプリケーションプログラムを実行可能な機器であって、
前記アプリケーションプログラムからの処理の実行要求に応じ、該実行要求に係る識別情報を含めて前記処理に関する履歴情報を記憶装置に記録する履歴情報記録手段と、
前記履歴情報を前記記憶装置に記録できる場合に、前記実行要求に基づく処理を実行する処理実行手段と、
を有することを特徴とする機器。
【請求項2】
前記履歴情報記録手段は、前記実行要求に係るユーザの識別情報を前記履歴情報に含めることを特徴とする請求項1記載の機器。
【請求項3】
前記履歴情報記録手段は、前記実行要求に係るアプリケーションプログラムの識別情報を前記履歴情報に含めることを特徴とする請求項1又は2記載の機器。
【請求項4】
前記履歴情報記録手段は、前記処理のパラメータを前記履歴情報に含めることを特徴とする請求項1乃至3いずれか一項記載の機器。
【請求項5】
アプリケーションプログラムを実行可能な機器が実行する履歴情報記録方法であって、
前記アプリケーションプログラムからの処理の実行要求に応じ、該実行要求に係る識別情報を含めて前記処理に関する履歴情報を記憶装置に記録する履歴情報記録手順と、
前記履歴情報を前記記憶装置に記録できる場合に、前記実行要求に基づく処理を実行する処理実行手順と、
を有することを特徴とする履歴情報記録方法。
【請求項6】
アプリケーションプログラムを実行可能な機器に、
前記アプリケーションプログラムからの処理の実行要求に応じ、該実行要求に係る識別情報を含めて前記処理に関する履歴情報を記憶装置に記録する履歴情報記録手順と、
前記履歴情報を前記記憶装置に記録できる場合に、前記実行要求に基づく処理を実行する処理実行手順と、
を実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−93058(P2013−93058A)
【公開日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願番号】特願2013−22133(P2013−22133)
【出願日】平成25年2月7日(2013.2.7)
【分割の表示】特願2012−127252(P2012−127252)の分割
【原出願日】平成20年5月28日(2008.5.28)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】