(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-28
(45)【発行日】2023-09-05
(54)【発明の名称】アプリケーション修正システム及び情報処理装置
(51)【国際特許分類】
G06F 11/07 20060101AFI20230829BHJP
【FI】
G06F11/07 193
G06F11/07 140P
(21)【出願番号】P 2018177882
(22)【出願日】2018-09-21
【審査請求日】2021-08-31
(73)【特許権者】
【識別番号】000006150
【氏名又は名称】京セラドキュメントソリューションズ株式会社
(74)【代理人】
【識別番号】110003443
【氏名又は名称】弁理士法人TNKアジア国際特許事務所
(74)【代理人】
【識別番号】100129997
【氏名又は名称】田中 米藏
(72)【発明者】
【氏名】マヌエル・バリクアトロ ジュニア
【審査官】渡辺 順哉
(56)【参考文献】
【文献】特開2002-366388(JP,A)
【文献】特開2006-092192(JP,A)
【文献】特開2009-169724(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
G06F 3/12
G06F 8/60
(57)【特許請求の範囲】
【請求項1】
情報処理装置及び不具合解析装置を備えるアプリケーション修正システムであって、
前記情報処理装置は、
アプリケーションを記憶するアプリケーション記憶部と、
前記アプリケーション記憶部に記憶された前記アプリケーションに従って動作する制御部と、
前記制御部が前記アプリケーションに従って動作しているときに生じる不具合を検知する不具合検知部と、
前記不具合解析装置との間でデータを送受信し、前記不具合検知部によって検知された不具合を示す不具合情報を前記不具合解析装置に送信する通信部と、
前記送信した前記不具合情報に対応する不具合解決データを前記通信部が前記不具合解析装置から受信したときに、前記不具合解決データを用いて、前記アプリケーション記憶部に記憶された前記アプリケーションを修正するアプリケーション修正部とを備え、
前記不具合解析装置は、
前記情報処理装置で生じた前記不具合の内容毎に、それぞれの不具合解決データを記憶する不具合解決データ記憶部と、
前記情報処理装置から前記不具合情報を受信する解析側通信部と、
前記解析側通信部によって受信された前記不具合情報が示す不具合内容を解析する解析部と、
前記解析部によって解析された不具合内容に対応する不具合解決データを前記不具合解決データ記憶部から検出する検出部とを備え、
前記解析側通信部は、前記検出部によって検出された不具合解決データを、前記情報処理装置に対して送信し、
前記解析側通信部は、外部接続された複数の端末装置からの要求に応じて、前記情報処理装置から受信した前記不具合情報を当該複数の端末装置に対して送信し、
前記不具合解析装置は、前記解析側通信部が前記複数の端末装置に送信した前記不具合情報が示す不具合を解決するための不具合解決データを、前記複数の端末装置から前記解析側通信部が受信したときに、当該受信した不具合解決データを、前記送信した不具合情報に対応付けて前記
不具合解決データ記憶部に記憶させる解析側制御部を更に備え、
前記解析側制御部は、前記解析側通信部が前記複数の端末装置から、前記不具合解決データの使用を承認する承認情報又は前記不具合解決データの使用を承認しない不承認情報を受信したときに、当該受信した承認情報又は不承認情報を、前記不具合解決データに対応付けて前記不具合解決データ記憶部に記憶させ、
前記検出部は、前記不具合解決データ記憶部に記憶された前記不具合解決データのうち、前記承認情報が予め定められた数だけ対応付けられ、かつ前記不承認情報が対応付けられていない前記不具合解決データのみについて、前記解析側通信部による前記情報処理装置への送信を許可するアプリケーション修正システム。
【請求項2】
前記不具合解析装置の前記検出部は、前記不具合情報が示す不具合内容に対応する不具合解決データを前記不具合解決データ記憶部から検出できなかった場合には、前記不具合情報を、対応する不具合解決データが存在しないことを示す不具備情報を対応付けて、前記不具合解決データ記憶部に記憶させる請求項1に記載のアプリケーション修正システム。
【請求項3】
前記不具合解析装置の前記不具合解決データ記憶部に記憶されている不具合解決データは、前記不具合情報が示す不具合を解消するためのソースコードを含み、
前記情報処理装置の前記アプリケーション修正部は、前記不具合解析装置から受信した前記不具合解決データに含まれる前記ソースコードに従って、前記アプリケーション記憶部に記憶された、前記不具合情報が示す不具合を有する前記アプリケーションを修正する請求項1又は請求項2に記載のアプリケーション修正システム。
【請求項4】
前記情報処理装置の前記アプリケーション修正部は、前記ソースコードを暗号化した上で、前記アプリケーションの一部として前記アプリケーション記憶部に記憶させる請求項3に記載のアプリケーション修正システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーション修正システム及び情報処理装置に関し、特に、アプリケーションに生じた不具合を修正する技術に関する。
【背景技術】
【0002】
CPU等の制御部を備える電子機器では、当該制御部が、インストールされたアプリケーションに従って動作することで、目的とする処理を実行するようになっている。ここで、当該制御部がアプリケーションに従った動作をしているときに、当該動作に不具合が生じた場合には、当該不具合を解消するために当該アプリケーションを修正する必要が生じる。このため、例えば、特許文献1に示されるように、プログラムに不具合が生じたとき、プログラムの実行履歴情報と、ユーザーから提供される解決策とに基づいて、新たなプログラムソースを自動生成する、プログラムの不具合解析技術が提案されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1に示される技術では、プログラムの実行履歴情報と、ユーザーから提供される解決策とに基づいて、新たなプログラムソースをどのように自動生成しているのかが具体的に示されていないため、アプリケーションに従った制御部による動作に不具合が生じた場合に、当該不具合を解消可能に当該アプリケーションを修正することは困難である。
【0005】
本発明は、上記の事情に鑑みなされたものであり、装置の制御部によるアプリケーションに従った動作中に不具合が生じた場合に、当該不具合を解消可能に当該アプリケーションを修正可能にすることを目的とする。
【課題を解決するための手段】
【0006】
本発明の一局面に係るアプリケーション修正システムは、情報処理装置及び不具合解析装置を備えるアプリケーション修正システムであって、前記情報処理装置は、アプリケーションを記憶するアプリケーション記憶部と、前記アプリケーション記憶部に記憶された前記アプリケーションに従って動作する制御部と、前記制御部が前記アプリケーションに従って動作しているときに生じる不具合を検知する不具合検知部と、前記不具合解析装置との間でデータを送受信し、前記不具合検知部によって検知された不具合を示す不具合情報を前記不具合解析装置に送信する通信部と、前記送信した前記不具合情報に対応する不具合解決データを前記通信部が前記不具合解析装置から受信したときに、前記不具合解決データを用いて、前記アプリケーション記憶部に記憶された前記アプリケーションを修正するアプリケーション修正部とを備え、前記不具合解析装置は、前記情報処理装置で生じた前記不具合の内容毎に、それぞれの不具合解決データを記憶する不具合解決データ記憶部と、前記情報処理装置から前記不具合情報を受信する解析側通信部と、前記解析側通信部によって受信された前記不具合情報が示す不具合内容を解析する解析部と、前記解析部によって解析された不具合内容に対応する不具合解決データを前記不具合解決データ記憶部から検出する検出部とを備え、前記解析側通信部は、前記検出部によって検出された不具合解決データを、前記情報処理装置に対して送信するものである。
【0007】
本発明の一局面に係る上記アプリケーション修正システムにおいて、前記解析側通信部は、外部接続された複数の端末装置からの要求に応じて、前記情報処理装置から受信した前記不具合情報を当該複数の端末装置に対して送信する。前記不具合解析装置は、前記解析側通信部が前記複数の端末装置に送信した前記不具合情報が示す不具合を解決するための不具合解決データを、前記複数の端末装置から前記解析側通信部が受信したときに、当該受信した不具合解決データを、前記送信した不具合情報に対応付けて前記不具合解決データ記憶部に記憶させる解析側制御部を更に備える。前記解析側制御部は、前記解析側通信部が前記複数の端末装置から、前記不具合解決データの使用を承認する承認情報又は前記不具合解決データの使用を承認しない不承認情報を受信したときに、当該受信した承認情報又は不承認情報を、前記不具合解決データに対応付けて前記不具合解決データ記憶部に記憶させる。前記検出部は、前記不具合解決データ記憶部に記憶された前記不具合解決データのうち、前記承認情報が予め定められた数だけ対応付けられ、かつ前記不承認情報が対応付けられていない前記不具合解決データのみについて、前記解析側通信部による前記情報処理装置への送信を許可する。
【発明の効果】
【0008】
本発明によれば、装置の制御部によるアプリケーションに従った動作中に不具合が生じた場合に、当該不具合を解消可能に当該アプリケーションを修正することが可能になる。
【図面の簡単な説明】
【0009】
【
図1】本発明の一実施形態に係るアプリケーション修正システムの概略構成を示す図である。
【
図2】画像形成装置の構成を示すブロック図である。
【
図3】不具合解析装置の構成を示すブロック図である。
【
図5】アプリケーション修正処理を示すフローチャートである。
【
図6】アプリケーション修正処理の実行時におけるデータ送受信を概念的に示す図である。
【
図7】アプリケーション修正処理を行う際におけるプログラム構成を示す図である。
【
図8】アプリケーション修正処理を行う際におけるプログラム構成を示す図である。
【
図9】提供サーバーにおける不具合解決データの収集処理を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の一実施形態に係るアプリケーション修正システム及び情報処理装置について図面を参照して説明する。
【0011】
図1は本発明の一実施形態に係るアプリケーション修正システムの概略構成を示す図である。
図1を参照してアプリケーション修正システムの概略を説明する。本発明の一実施形態に係るアプリケーション修正システム10は、画像形成装置1及び不具合解析装置2を備える。画像形成装置1及び不具合解析装置2は、LAN又はインターネットにより互いにデータ通信が可能にネットワーク接続されている。
【0012】
画像形成装置1は、例えば複合機である。画像形成装置1には、アプリケーション(コンピュータープログラム)がインストールされている。画像形成装置1に備えられている制御部100(
図2)は、当該アプリケーションに従った動作を行う。なお、画像形成装置1は、特許請求の範囲における情報処理装置の一例である。画像形成装置1は、制御部100によるアプリケーションに従った動作時に発生した不具合の内容を示す不具合情報を不具合解析装置2に送信する。
【0013】
不具合解析装置2は、例えば、解析サーバー21と、提供サーバー22とを備える。解析サーバー21は、画像形成装置1から送信されてきた不具合情報が示す不具合内容を解析し、解析した不具合内容を示す解析データを、提供サーバー22に送信する。但し、不具合解析装置2は、解析サーバー21及び提供サーバー22を1つのサーバーにより構成することも可能である。
【0014】
また、提供サーバー22は、LAN又はインターネットにより互いにデータ通信が可能に、端末装置3と接続されている。端末装置3は、提供サーバー22にアクセス可能な例えばコンピューターである。端末装置3は、当該提供サーバー22に記憶されている上記解析データを参照し、端末装置3が備える表示部に表示させ、当該解析データが示す不具合内容を解決可能な不具合解決データの入力をユーザーから受け付け、当該受け付けた不具合解決データを、提供サーバー22に対して送信する。
【0015】
提供サーバー22は、上記のようにして端末装置3から送信されてきた不具合解決データを記憶しておく。提供サーバー22は、記憶している不具合解決データの中から、解析サーバー21から受信した解析データが示す不具合内容に対応する不具合解決データを検出し、当該検出した不具合解決データを、画像形成装置1に対して送信する。
【0016】
画像形成装置1は、提供サーバー22から上記不具合解決データを受信すると、当該不具合解決データを用いて、上記アプリケーションを修正する。
【0017】
次に、画像形成装置1の構成を説明する。
図2は画像形成装置1の構成を示すブロック図である。画像形成装置1は、画像読取部11と、画像形成部12と、表示部27と、操作部29と、NW通信部24と、記憶部28と、制御部100とを備えている。これらの構成要素は、互いにバスを通じてデータ又は信号の送受信が可能とされている。
【0018】
表示部27は、液晶ディスプレイ(LCD:Liquid Crystal Display)や有機EL(OLED:Organic Light-Emitting Diode)ディスプレイなどから構成される。操作部29は、テンキー、決定キー、スタートキーなどのハードキーを備え、ユーザーによる操作で各種の指示が入力される。
【0019】
NW通信部24は、LANチップなどの通信モジュールを備える通信インターフェイスである。このNW通信部24は、ネットワークを通じて、パーソナルコンピューター(PC)やサーバーなどに接続され、PCやサーバーなどとの間でデータ通信を行う。なお、NW通信部24は、インターネット接続が可能な通信モジュールを備えていてもよい。
【0020】
記憶部28は、SSD(Solid State Drive)、又はHDD(Hard Disk Drive)などの大容量の記憶装置であって、制御部100により実行される各種のアプリケーション、アプリケーション修正プログラム、及び種々のデータを記憶している。なお、記憶部28は、特許請求の範囲におけるアプリケーション記憶部の一例である。
【0021】
制御部100は、プロセッサー、RAM(Random Access Memory)、及びROM(Read Only Memory)などから構成される。プロセッサーは、例えばCPU(Central Processing Unit)、ASIC(Application Specific Integrated Circuit)、又はMPU(Micro Processing Unit)等である。制御部100は、上記記憶部28に記憶されたアプリケーション修正プログラムが上記のプロセッサーで実行されることにより、動作制御部101、不具合検知部102、及びアプリケーション修正部103として機能する。すなわち、制御部100は、上記アプリケーションに従った動作、及びアプリケーション修正プログラムに従った動作の両方をそれぞれ別個に行う。
【0022】
動作制御部101は、画像形成装置1を統括的に制御する。制御部100は、表示部27、操作部29、記憶部28、画像読取部11、及び画像形成部12などと接続されている。動作制御部101は、これらの構成要素の動作制御や、該各構成要素との間での信号
またはデータの送受信を行う。
【0023】
動作制御部101は、画像形成装置1による画像形成に必要な各種の処理などを実行する処理部としての役割を果たす。また、動作制御部101は、表示部27の表示動作を制御する。動作制御部101は、NW通信部24の通信動作を制御する。
【0024】
不具合検知部102は、制御部100がアプリケーションに従って動作しているときに生じる不具合を検知する。例えば、動作制御部101は、制御部100が実行しているアプリケーションに発生している現象や動作記録をイベントログとして、制御部100に内蔵される不揮発性のメモリーに記憶させる。不具合検知部102は、当該イベントログから、不具合(エラー)に関する情報を抽出することにより不具合を検知する。動作制御部101は、NW通信部24により、不具合検知部102によって検知された不具合を示す不具合情報を、解析サーバー21に対して送信させる。
【0025】
アプリケーション修正部103は、NW通信部24から送信した上記不具合情報に対応する不具合解決データを、NW通信部24が提供サーバー22から受信したときに、当該受信された不具合解決データを用いて、記憶部28に記憶されているアプリケーション(上記送信した不具合情報が示す不具合を発生させたアプリケーション)を修正する。
【0026】
例えば、アプリケーション修正部103は、当該受信された不具合解決データに含まれるソースコードを抽出し、当該ソースコードをオブジェクトコードに変換する(すなわち、コンパイルする)。そして、アプリケーション修正部103は、当該変換した各データを結合(リンク)させて、制御部100により実行可能なプログラム(アプリケーションの一部)を作成する。
【0027】
本実施形態では、アプリケーションは、実行ファイル(例えば、拡張子.exe)と、ライブラリー(例えば、拡張子.dll)とにより構成されるものとする。アプリケーション修正部103は、当該ライブラリーとして上記プログラムを作成する。すなわち、アプリケーション修正部103は、上記ソースコードに基づいてアプリケーションを修正するとき、上記ソースコードに基づいて新たなライブラリーを作成し、それまでのライブラリーを当該新たなライブラリーに書き換えることで、アプリケーションを修正する。
【0028】
次に、不具合解析装置2の構成を説明する。
図3は不具合解析装置2の構成を示すブロック図である。上述したように、不具合解析装置2は、解析サーバー21と提供サーバー22とを備える。
【0029】
解析サーバー21は、画像形成装置1及び提供サーバー22との間でデータ通信が可能に接続されている。解析サーバー21は、第1制御部211と、第1通信部212と、解析部213とを備えている。第1制御部211は、解析サーバー21の全体的な動作制御を司る。第1通信部212は、LAN又はインターネットによる通信を可能にする通信モジュールを備え、画像形成装置1及び提供サーバー22との間でデータ通信を行う。解析部213は、画像形成装置1から送信されてきて第1通信部212が受信した不具合情報が示す不具合内容を解析し、解析した不具合内容を示す解析データを、第1通信部212により提供サーバー22に送信させる。
【0030】
解析サーバー21は、第1制御ユニット210を備えている。第1制御ユニット210は、プロセッサー、RAM、及びROMなどから構成される。プロセッサーは、例えばCPU、ASIC、又はMPU等である。第1制御ユニット210は、解析サーバー21に内蔵の記憶部に記憶された第1動作制御プログラムが上記のプロセッサーで実行されることにより、第1制御部211と、第1通信部212と、解析部213として機能する。
【0031】
提供サーバー22は、画像形成装置1及び端末装置3とデータ通信が可能に接続されている。提供サーバー22は、第2制御部221と、第2通信部222と、検出部223と、不具合解決データ記憶部224とを備えている。第2制御部221は、提供サーバー22の全体的な動作制御を司る。第2通信部222は、LAN又はインターネットによる通信を可能にする通信モジュールを備え、画像形成装置1及び端末装置3との間でデータ通信を行う。不具合解決データ記憶部224は、HDD又は不揮発性メモリー等を備え、端末装置3から送信されてきて第2通信部222が受信した不具合解決データを記憶する。検出部223は、不具合解決データ記憶部224に記憶されている不具合解決データの中から、解析サーバー21から第2通信部222が受信した解析データ(解析データ)が示す不具合内容に対応する不具合解決データを検出し、当該検出した不具合解決データを、第2通信部222により画像形成装置1に対して送信させる。
【0032】
提供サーバー22は、第2制御ユニット220を備えている。第2制御ユニット220は、プロセッサー、RAM、及びROMなどから構成される。プロセッサーは、例えばCPU、ASIC、又はMPU等である。第2制御ユニット220は、提供サーバー22に内蔵の記憶部に記憶された第2動作制御プログラムが上記のプロセッサーで実行されることにより、第2制御部221と、第2通信部222と、検出部223として機能する。なお、第1制御部211及び第2制御部221は、特許請求の範囲における解析側制御部の一例となる。また、なお、第1通信部212及び第2通信部222は、特許請求の範囲における解析側通信部の一例である。
【0033】
次に、端末装置3の構成を説明する。
図4は端末装置3の構成を示すブロック図である。
【0034】
端末装置3は、提供サーバー22とデータ通信が可能に接続されている。端末装置3は、第3制御部31と、第3通信部32と、データ記憶部33と、表示部34と、操作部35とを備えている。第3制御部31は、端末装置3の全体的な動作制御を司る。第3通信部32は、LAN又はインターネットによる通信を可能にする通信モジュールを備え、提供サーバー22との間でデータ通信を行う。データ記憶部33は、HDD又は不揮発性メモリー等を備え、各種のデータを記憶する。表示部34は、液晶ディスプレイ又は有機ELディスプレイなどから構成される。操作部35は、キーボード又はマウス等を備え、ユーザーによる操作で各種の指示が入力される。
【0035】
端末装置3は、第3制御ユニット30を備えている。第3制御ユニット30は、プロセッサー、RAM、及びROMなどから構成される。プロセッサーは、例えばCPU、ASIC、又はMPU等である。第3制御ユニット30は、データ記憶部33に記憶された第3動作制御プログラムが上記のプロセッサーで実行されることにより、第3制御部31及び第3通信部32として機能する。
【0036】
次に、アプリケーション修正システム10によるアプリケーション修正処理を説明する。
図5はアプリケーション修正処理を示すフローチャートである。
図6はアプリケーション修正処理の実行時におけるデータ送受信を概念的に示す図である。
図7及び
図8はアプリケーション修正処理を行う際におけるプログラム構成を示す図である。
【0037】
画像形成装置1において、制御部100が、記憶部28に記憶されたアプリケーションを実行しているものとする(S1)。このとき、不具合検知部102は、例えば、当該アプリケーションに基づく動作が終了(アプリケーション終了)したときに(S2でYES,P1)、実行時に発生していた現象や動作記録をイベントログとして、制御部100に内蔵される不揮発性のメモリーに記憶させる(S3)。
【0038】
続いて、不具合検知部102は、上記イベントログに含まれる情報の中に、不具合に関する情報を検知した場合に不具合情報を作成し、当該不具合情報を、NW通信部24により解析サーバー21に向けて送信させる(S4,P2)。この不具合情報は、上記イベントログに含まれる、例えば、クラッシュログ、画像形成装置1で使用されているOS(Operation System)のバージョン情報、メモリーダンプ、スタックトレース、及びアプリケーションに関する情報(バージョン情報等)を含んで構成される。
【0039】
解析サーバー21では、第1通信部212が上記不具合情報を受信すると、解析部213は、当該不具合情報が示す不具合内容を解析し、解析した不具合内容を示す解析データを作成する(S5)。
【0040】
例えば、第1制御部211が、画像形成装置1から受信した不具合情報の全てを、解析サーバー21が内蔵するHDD又は不揮発性メモリー等からなる上記記憶部に保存して蓄積しておく。そして、解析部213は、このように蓄積されている各不具合情報が示す内容に基づいて、例えば、アプリケーション毎に(又は同一のアプリケーションであってもバージョン別に)、発生した各クラッシュをクラッシュ情報としてまとめ、当該アプリケーションで発生した現象の履歴等を示すヒストリカルデータを作成する。そして、解析部213は、例えば、アプリケーションの識別情報、上記クラッシュ情報、及び上記ヒストリカルデータを含む解析データを作成する。
【0041】
解析部213は、第1通信部212により、上記作成した解析データを提供サーバー22に向けて送信させる(S6,P3)。
【0042】
ここで、提供サーバー22における不具合解決データの収集処理を説明する。
図9は提供サーバー22における不具合解決データの収集処理を示すフローチャートである。提供サーバー22による不具合解決データの収集処理は、提供サーバー22と端末装置3との間のデータ送受信に基づいて行われる。
【0043】
提供サーバー22では、第2通信部222が、解析サーバー21で作成された上記解析データを受信したとき、第2制御部221は上記解析データを、後述する不具備情報と共に、当該不具合解決データ記憶部224に記憶させておく(S21)。すなわち、提供サーバー22の不具合解決データ記憶部224には、複数の解析データが蓄積されている。
【0044】
ここで、ユーザーが端末装置3において、操作部35を操作して、当該端末装置3から提供サーバー22にアクセスする指示を入力すると、第3制御部31は、当該指示に従って、第3通信部32により、提供サーバー22に対して、不具合解決データ記憶部224に記憶されている解析データ(不具備情報を有するもの)の閲覧を要求する閲覧要求を送信させる。
【0045】
提供サーバー22では、第2通信部222が上記閲覧要求指示を受信すると(S22)、第2制御部221は、不具合解決データ記憶部224に記憶されている各解析データ(不具備情報を有するもの)について端末装置3による閲覧を許可し、第2通信部222により、当該各解析データを端末装置3に向けて送信させる(S23)。
【0046】
端末装置3は、第3通信部32が提供サーバー22から上記各解析データを受信すると、第3制御部31が表示部34に、当該各解析データ全てを表示させる。ユーザーは、表示部34に表示される各解析データが示す不具合を視認することにより、画像形成装置1で用いられている各アプリケーションについて、どのような不具合が生じているかを把握することが可能になる。ユーザーが、各解析データが示す不具合を解決した(不具合が生じない)ソースコードを作成した場合、操作部35を操作して、当該ソースコードを端末装置3に入力する。第3制御部31は、当該ソースコードをデータ記憶部33に記憶させる。
【0047】
ここで、ユーザーが端末装置3の操作部35を操作して、上記表示されている解析データのいずれかと、当該解析データが示す不具合を解決するために作成したソースコードと、当該ソースコードを適用する解析データを示す適用情報と、当該ソースコードの提供サーバー22への送信指示とを端末装置3に入力すると、第3制御部31は、第3通信部32により、当該ソースコード及び適用情報を、提供サーバー22に送信させる。
【0048】
提供サーバー22では、第2通信部222が上記ソースコード及び適用情報を端末装置3から受信すると(S24)、第2制御部221は、上記ソースコード及び適用情報を、不具合解決データとして、不具合解決データ記憶部224に記憶させる(S25)。提供サーバー22では、検出部223が、不具合解決データ記憶部224に記憶された不具合解決データを上記検出の対象とする。
【0049】
このように、不具合解決データ記憶部224に記憶された不具合解決データは、検出部223による上記検出の対象となるが、更に、検出部223は、以下に示す条件が満たされた場合にのみ、不具合解決データ記憶部224に記憶された不具合解決データを上記検出の対象とするようにしてもよい。
【0050】
上記のようにして不具合解決データ記憶部224に複数の不具合解決データが記憶されているものとする。ユーザーが端末装置3の操作部35を操作して、上記不具合解決データの閲覧要求を入力すると、第3制御部31は、当該閲覧要求に従って、第3通信部32により、提供サーバー22に対して、不具合解決データの閲覧要求を送信させる。
【0051】
提供サーバー22では、第2通信部222が上記閲覧要求を受信すると、第2制御部221は、不具合解決データ記憶部224に記憶されている不具合解決データについて端末装置3による閲覧を許可し、第2通信部222により、不具合解決データ記憶部224に記憶されている各不具合解決データを端末装置3に向けて送信させる。
【0052】
端末装置3は、第3通信部32が提供サーバー22から上記各不具合解決データを受信すると、第3制御部31が表示部34に、当該各不具合解決データ全てを表示させる。ユーザーは、表示部34に表示される各不具合解決データが示す不具合を視認することにより、画像形成装置1で用いられている各アプリケーションについて、どのような不具合解決データが用意されているかを把握することが可能になる。
【0053】
ここで、ユーザーは、端末装置3の操作部35を操作して、上記の各不具合解決データのそれぞれに対して、不具合解決データを、対応するアプリケーションについて適用することについて承認又は不承認を示す情報を入力する。第3制御部31は、承認又は不承認を示す情報が入力されると、当該承認又は不承認を示す情報を、第3通信部32により、提供サーバー22に送信させる。当該承認又は不承認の情報の入力は、複数の異なる端末装置3において異なるユーザーにより行われ、承認又は不承認の情報が入力された各端末装置3は、それぞれに、当該入力された承認又は不承認の情報を提供サーバー22に送信する。
【0054】
提供サーバー22では、第2通信部222が上記承認又は不承認を示す情報を端末装置3から受信すると(S26)、第2制御部221は、上記承認又は不承認を示す情報を、対応する不具合解決データに対応付けて、不具合解決データ記憶部224に記憶させる(S27)。例えば、1つの不具合解決データに、複数の承認又は不承認を示す情報を受信した場合には、全ての承認又は不承認を示す情報を、当該不具合解決データに対応付けて、不具合解決データ記憶部224に記憶させる。
【0055】
そして、検出部223は、不具合解決データ記憶部224に記憶された不具合解決データのうち、(1)承認を示す情報が予め定められた数(1以上の任意の数)だけ対応付けられているもの、(2)不承認を示す情報が対応付けられていないもの、或いは、(3)承認を示す情報が予め定められた数だけ対応付けられ、かつ不承認を示す情報が対応付けられていないもの、という(1)(2)(3)のいずれかの条件を満たす不具合解決データのみを上記検出の対象とする(S28)。すなわち、検出部223は、不具合解決データ記憶部224に上記承認を示す情報が対応付けて記憶されている不具合解決データのみについて、第2通信部222による画像形成装置1への送信を許可する。
【0056】
なお、他の実施形態として、上記承認又は不承認を示す情報の端末装置3から受信を行わず、検出部223は、不具合解決データ記憶部224に記憶されている全ての不具合解決データを上記検出の対象とし、当該全ての不具合解決データについて、第2通信部222による画像形成装置1への送信を許可するようにしてもよい。
【0057】
図5乃至
図7を用いたアプリケーション修正処理の説明に戻る。提供サーバー22では、第2通信部222が、解析サーバー21から上記解析データを受信すると、検出部223は、不具合解決データ記憶部224に記憶されている不具合解決データの中から、当該解析データに対応する不具合解決データを検索する(S7)。
【0058】
ここで、検出部223が、不具合解決データ記憶部224に記憶されている不具合解決データの中から、当該解析データに対応する不具合解決データを特定できず検出できなかった場合は(S7でNO)、第2制御部221が、当該解析データには対応する不具合解決データがないことを示す不具備情報を、当該解析データに対応付けた上で、当該解析データを、不具合解決データ記憶部224に記憶させる(S13)。
【0059】
また、検出部223は、不具合解決データ記憶部224に記憶されている不具合解決データの中から、上記適用情報に基づいて、当該解析データに対応する不具合解決データを特定して検出した場合(S7でYES)、第2通信部222に、当該検出した不具合解決データを画像形成装置1に向けて送信させる(S9,P4)。
【0060】
画像形成装置1では、NW通信部24が上記不具合解決データを受信すると、アプリケーション修正部103が、当該不具合解決データに含まれるソースコードを抽出する(S10,P5)。更に、アプリケーション修正部103は、当該ソースコードをオブジェクトコードに変換し、当該変換したオブジェクトコードを結合させてライブラリーを作成する(S11,P6,P7)。続いて、アプリケーション修正部103は、それまでのライブラリーを、当該作成した新たなライブラリーに書き換えることで、アプリケーションを修正する(S12,P8)。
【0061】
なお、アプリケーション修正部103は、当該書換後に、上記抽出したソースコードを暗号化した上で、記憶部28に保存しておくようにしてもよい。当該暗号化したソースコードの復号化は、アプリケーション修正部103のみが可能となるようにする。
【0062】
これにより、
図7に示す修正前のアプリケーション構成が、
図8に示すアプリケーション構成に修正される。
図8では、一例として、ソースコードのバージョンがMyfunction1.0.1に更新され、これに伴い、ライブラリーが書き換えられた状態を示している。
【0063】
このように、上記実施形態によれば、画像形成装置1の制御部100がアプリケーションに従った動作をしているときに、当該動作に不具合が生じた場合には、不具合解析装置2から、当該不具合を解決するための不具合解決データが画像形成装置1に送信され、画像形成装置1では、当該不具合解決データを用いて上記アプリケーションを修正することができる。
【0064】
なお、本発明は上記実施の形態の構成に限られず種々の変形が可能である。例えば、上記実施形態では、本発明に係る情報処理装置の一実施形態として、画像形成装置1を用いて説明しているが、これは一例に過ぎず、他の電子機器、例えば、コンピューター、医療機器等の他の情報処理装置でもよい。
【0065】
また、上記実施形態では、
図1乃至
図9を用いて上記実施形態により示した構成及び処理は、本発明の一実施形態に過ぎず、本発明を当該構成及び処理に限定する趣旨ではない。
【符号の説明】
【0066】
10 アプリケーション修正システム
1 画像形成装置
100 制御部
101 動作制御部
102 不具合検知部
103 アプリケーション修正部
24 NW通信部
28 記憶部
12 画像形成部
2 不具合解析装置
21 解析サーバー
210 第1制御ユニット
211 第1制御部
212 第1通信部
213 解析部
22 提供サーバー
220 第2制御ユニット
221 第2制御部
222 第2通信部
223 検出部
224 不具合解決データ記憶部
3 端末装置
30 第3制御ユニット
31 第3制御部
32 第3通信部
33 データ記憶部
34 表示部
35 操作部