(57)【要約】      （修正有）【課題】アプリケーションに従った動作中に不具合が生じた場合に、不具合が生じたアプリケーションを修正可能とするアプリケーション修正システム及び情報処理装置を提供する。【解決手段】アプリケーション修正システム１０は、画像形成装置１及び不具合解析装置２を備える。不具合解析装置２の解析サーバー２１は、画像形成装置１から送信されてきた不具合情報が示す不具合内容を解析し、解析した不具合内容を示す解析データを提供サーバー２２に送信する。提供サーバー２２は、不具合を解決可能な不具合解決データを検出し、検出した不具合解決データを画像形成装置１に対して送信する。画像形成装置１は、提供サーバー２２から不具合解決データを受信すると、不具合解決データを用いて不具合が生じているアプリケーションを修正する。【選択図】図１
2020052449.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置及び不具合解析装置を備えるアプリケーション修正システムであって、
前記情報処理装置は、
アプリケーションを記憶するアプリケーション記憶部と、
前記アプリケーション記憶部に記憶された前記アプリケーションに従って動作する制御部と、
前記制御部が前記アプリケーションに従って動作しているときに生じる不具合を検知する不具合検知部と、
前記不具合解析装置との間でデータを送受信し、前記不具合検知部によって検知された不具合を示す不具合情報を前記不具合解析装置に送信する通信部と、
前記送信した前記不具合情報に対応する不具合解決データを前記通信部が前記不具合解析装置から受信したときに、前記不具合解決データを用いて、前記アプリケーション記憶部に記憶された前記アプリケーションを修正するアプリケーション修正部とを備え、
前記不具合解析装置は、
前記情報処理装置で生じた前記不具合の内容毎に、それぞれの不具合解決データを記憶する不具合解決データ記憶部と、
前記情報処理装置から前記不具合情報を受信する解析側通信部と、
前記解析側通信部によって受信された前記不具合情報が示す不具合内容を解析する解析部と、
前記解析部によって解析された不具合内容に対応する不具合解決データを前記不具合解決データ記憶部から検出する検出部とを備え、
前記解析側通信部は、前記検出部によって検出された不具合解決データを、前記情報処理装置に対して送信するアプリケーション修正システム。
【請求項２】
前記不具合解析装置の前記検出部は、前記不具合情報が示す不具合内容に対応する不具合解決データを前記不具合解決データ記憶部から検出できなかった場合には、前記不具合情報を、対応する不具合解決データが存在しないことを示す不具備情報を対応付けて、前記不具合解決データ記憶部に記憶させる請求項１に記載のアプリケーション修正プログラム。
【請求項３】
前記不具合解析装置では、
前記解析側通信部が、外部接続された端末装置からの要求に応じて、前記情報処理装置から受信した前記不具合情報を当該端末装置に対して送信し、
前記解析側通信部が前記端末装置に送信した前記不具合情報が示す不具合を解決するための不具合解決データを、前記端末装置から前記解析側通信部が受信したときに、当該受信した不具合解決データを、前記送信した不具合情報に対応付けて前記記憶部に記憶させる解析側制御部を更に備える請求項１又は請求項２に記載のアプリケーション修正システム。
【請求項４】
前記不具合解析装置の前記解析側制御部は、前記解析側通信部が前記端末装置から、前記不具合解決データと共に、前記不具合解決データの使用を承認する承認情報を受信したときに、当該受信した承認情報を、前記不具合解決データに対応付けて前記不具合解決データ記憶部に記憶させ、
前記検出部は、前記不具合解決データ記憶部に前記承認情報が対応付けて記憶されている前記不具合解決データのみについて、前記解析側通信部による前記情報処理装置への送信を許可する請求項３に記載のアプリケーション修正システム。
【請求項５】
前記不具合解析装置の前記不具合解決データ記憶部に記憶されている不具合解決データは、前記不具合情報が示す不具合を解消するためのソースコードを含み、
前記情報処理装置の前記アプリケーション修正部は、前記不具合解析装置から受信した前記不具合解決データに含まれる前記ソースコードに従って、前記記憶部に記憶された、前記不具合情報が示す不具合を有する前記アプリケーションを修正する請求項１乃至請求項４のいずれかに記載のアプリケーション修正システム。
【請求項６】
前記情報処理装置の前記アプリケーション修正部は、前記ソースコードを暗号化した上で、前記アプリケーションの一部として前記アプリケーション記憶部に記憶させる請求項５に記載のアプリケーション修正システム。
【請求項７】
データ送受信可能に接続された不具合解析装置と通信する情報処理装置であって、
アプリケーションを記憶するアプリケーション記憶部と、
前記アプリケーション記憶部に記憶された前記アプリケーションに従って動作する制御部と、
前記制御部が前記アプリケーションに従って動作しているときに生じる不具合を検知する不具合検知部と、
前記不具合解析装置との間でデータを送受信し、前記不具合検知部によって検知された不具合を示す不具合情報を前記不具合解析装置に送信する通信部と、
前記送信した前記不具合情報に対応する不具合解決データを前記通信部が前記不具合解析装置から受信したときに、前記不具合解決データを用いて、前記アプリケーション記憶部に記憶された前記アプリケーションを修正するアプリケーション修正部とを備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション修正システム及び情報処理装置に関し、特に、アプリケーションに生じた不具合を修正する技術に関する。
【背景技術】
【０００２】
ＣＰＵ等の制御部を備える電子機器では、当該制御部が、インストールされたアプリケーションに従って動作することで、目的とする処理を実行するようになっている。ここで、当該制御部がアプリケーションに従った動作をしているときに、当該動作に不具合が生じた場合には、当該不具合を解消するために当該アプリケーションを修正する必要が生じる。このため、例えば、特許文献１に示されるように、プログラムに不具合が生じたとき、プログラムの実行履歴情報と、ユーザーから提供される解決策とに基づいて、新たなプログラムソースを自動生成する、プログラムの不具合解析技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２４９８２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に示される技術では、プログラムの実行履歴情報と、ユーザーから提供される解決策とに基づいて、新たなプログラムソースをどのように自動生成しているのかが具体的に示されていないため、アプリケーションに従った制御部による動作に不具合が生じた場合に、当該不具合を解消可能に当該アプリケーションを修正することは困難である。
【０００５】
本発明は、上記の事情に鑑みなされたものであり、装置の制御部によるアプリケーションに従った動作中に不具合が生じた場合に、当該不具合を解消可能に当該アプリケーションを修正可能にすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一局面に係るアプリケーション修正システムは、情報処理装置及び不具合解析装置を備えるアプリケーション修正システムであって、前記情報処理装置は、アプリケーションを記憶するアプリケーション記憶部と、前記アプリケーション記憶部に記憶された前記アプリケーションに従って動作する制御部と、前記制御部が前記アプリケーションに従って動作しているときに生じる不具合を検知する不具合検知部と、前記不具合解析装置との間でデータを送受信し、前記不具合検知部によって検知された不具合を示す不具合情報を前記不具合解析装置に送信する通信部と、前記送信した前記不具合情報に対応する不具合解決データを前記通信部が前記不具合解析装置から受信したときに、前記不具合解決データを用いて、前記アプリケーション記憶部に記憶された前記アプリケーションを修正するアプリケーション修正部とを備え、前記不具合解析装置は、前記情報処理装置で生じた前記不具合の内容毎に、それぞれの不具合解決データを記憶する不具合解決データ記憶部と、前記情報処理装置から前記不具合情報を受信する解析側通信部と、前記解析側通信部によって受信された前記不具合情報が示す不具合内容を解析する解析部と、前記解析部によって解析された不具合内容に対応する不具合解決データを前記不具合解決データ記憶部から検出する検出部とを備え、前記解析側通信部は、前記検出部によって検出された不具合解決データを、前記情報処理装置に対して送信するものである。
【０００７】
本発明の一局面に係る情報処理装置は、アプリケーションを記憶するアプリケーション記憶部と、前記アプリケーション記憶部に記憶された前記アプリケーションに従って動作する制御部と、前記制御部が前記アプリケーションに従って動作しているときに生じる不具合を検知する不具合検知部と、前記不具合解析装置との間でデータを送受信し、前記不具合検知部によって検知された不具合を示す不具合情報を前記不具合解析装置に送信する通信部と、前記送信した前記不具合情報に対応する不具合解決データを前記通信部が前記不具合解析装置から受信したときに、前記不具合解決データを用いて、前記アプリケーション記憶部に記憶された前記アプリケーションを修正するアプリケーション修正部とを備えるものである。
【発明の効果】
【０００８】
本発明によれば、装置の制御部によるアプリケーションに従った動作中に不具合が生じた場合に、当該不具合を解消可能に当該アプリケーションを修正することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係るアプリケーション修正システムの概略構成を示す図である。
【図２】画像形成装置の構成を示すブロック図である。
【図３】不具合解析装置の構成を示すブロック図である。
【図４】端末装置の構成を示すブロック図である。
【図５】アプリケーション修正処理を示すフローチャートである。
【図６】アプリケーション修正処理の実行時におけるデータ送受信を概念的に示す図である。
【図７】アプリケーション修正処理を行う際におけるプログラム構成を示す図である。
【図８】アプリケーション修正処理を行う際におけるプログラム構成を示す図である。
【図９】提供サーバーにおける不具合解決データの収集処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の一実施形態に係るアプリケーション修正システム及び情報処理装置について図面を参照して説明する。
【００１１】
図１は本発明の一実施形態に係るアプリケーション修正システムの概略構成を示す図である。図１を参照してアプリケーション修正システムの概略を説明する。本発明の一実施形態に係るアプリケーション修正システム１０は、画像形成装置１及び不具合解析装置２を備える。画像形成装置１及び不具合解析装置２は、ＬＡＮ又はインターネットにより互いにデータ通信が可能にネットワーク接続されている。
【００１２】
画像形成装置１は、例えば複合機である。画像形成装置１には、アプリケーション（コンピュータープログラム）がインストールされている。画像形成装置１に備えられている制御部１００（図２）は、当該アプリケーションに従った動作を行う。なお、画像形成装置１は、特許請求の範囲における情報処理装置の一例である。画像形成装置１は、制御部１００によるアプリケーションに従った動作時に発生した不具合の内容を示す不具合情報を不具合解析装置２に送信する。
【００１３】
不具合解析装置２は、例えば、解析サーバー２１と、提供サーバー２２とを備える。解析サーバー２１は、画像形成装置１から送信されてきた不具合情報が示す不具合内容を解析し、解析した不具合内容を示す解析データを、提供サーバー２２に送信する。但し、不具合解析装置２は、解析サーバー２１及び提供サーバー２２を１つのサーバーにより構成することも可能である。
【００１４】
また、提供サーバー２２は、ＬＡＮ又はインターネットにより互いにデータ通信が可能に、端末装置３と接続されている。端末装置３は、提供サーバー２２にアクセス可能な例えばコンピューターである。端末装置３は、当該提供サーバー２２に記憶されている上記解析データを参照し、端末装置３が備える表示部に表示させ、当該解析データが示す不具合内容を解決可能な不具合解決データの入力をユーザーから受け付け、当該受け付けた不具合解決データを、提供サーバー２２に対して送信する。
【００１５】
提供サーバー２２は、上記のようにして端末装置３から送信されてきた不具合解決データを記憶しておく。提供サーバー２２は、記憶している不具合解決データの中から、解析サーバー２１から受信した解析データが示す不具合内容に対応する不具合解決データを検出し、当該検出した不具合解決データを、画像形成装置１に対して送信する。
【００１６】
画像形成装置１は、提供サーバー２２から上記不具合解決データを受信すると、当該不具合解決データを用いて、上記アプリケーションを修正する。
【００１７】
次に、画像形成装置１の構成を説明する。図２は画像形成装置１の構成を示すブロック図である。画像形成装置１は、画像読取部１１と、画像形成部１２と、表示部２７と、操作部２９と、ＮＷ通信部２４と、記憶部２８と、制御部１００とを備えている。これらの構成要素は、互いにバスを通じてデータ又は信号の送受信が可能とされている。
【００１８】
表示部２７は、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）や有機ＥＬ（ＯＬＥＤ：Organic Light-Emitting Diode）ディスプレイなどから構成される。操作部２９は、テンキー、決定キー、スタートキーなどのハードキーを備え、ユーザーによる操作で各種の指示が入力される。
【００１９】
ＮＷ通信部２４は、ＬＡＮチップなどの通信モジュールを備える通信インターフェイスである。このＮＷ通信部２４は、ネットワークを通じて、パーソナルコンピューター（ＰＣ）やサーバーなどに接続され、ＰＣやサーバーなどとの間でデータ通信を行う。なお、ＮＷ通信部２４は、インターネット接続が可能な通信モジュールを備えていてもよい。
【００２０】
記憶部２８は、ＳＳＤ（Solid State Drive）、又はＨＤＤ（Hard Disk Drive）などの大容量の記憶装置であって、制御部１００により実行される各種のアプリケーション、アプリケーション修正プログラム、及び種々のデータを記憶している。なお、記憶部２８は、特許請求の範囲におけるアプリケーション記憶部の一例である。
【００２１】
制御部１００は、プロセッサー、ＲＡＭ(Random Access Memory）、及びＲＯＭ（Read Only Memory）などから構成される。プロセッサーは、例えばＣＰＵ（Central Processing Unit）、ＡＳＩＣ（Application Specific Integrated Circuit）、又はＭＰＵ（Micro Processing Unit）等である。制御部１００は、上記記憶部２８に記憶されたアプリケーション修正プログラムが上記のプロセッサーで実行されることにより、動作制御部１０１、不具合検知部１０２、及びアプリケーション修正部１０３として機能する。すなわち、制御部１００は、上記アプリケーションに従った動作、及びアプリケーション修正プログラムに従った動作の両方をそれぞれ別個に行う。
【００２２】
動作制御部１０１は、画像形成装置１を統括的に制御する。制御部１００は、表示部２７、操作部２９、記憶部２８、画像読取部１１、及び画像形成部１２などと接続されている。動作制御部１０１は、これらの構成要素の動作制御や、該各構成要素との間での信号またはデータの送受信を行う。
【００２３】
動作制御部１０１は、画像形成装置１による画像形成に必要な各種の処理などを実行する処理部としての役割を果たす。また、動作制御部１０１は、表示部２７の表示動作を制御する。動作制御部１０１は、ＮＷ通信部２４の通信動作を制御する。
【００２４】
不具合検知部１０２は、制御部１００がアプリケーションに従って動作しているときに生じる不具合を検知する。例えば、動作制御部１０１は、制御部１００が実行しているアプリケーションに発生している現象や動作記録をイベントログとして、制御部１００に内蔵される不揮発性のメモリーに記憶させる。不具合検知部１０２は、当該イベントログから、不具合（エラー）に関する情報を抽出することにより不具合を検知する。動作制御部１０１は、ＮＷ通信部２４により、不具合検知部１０２によって検知された不具合を示す不具合情報を、解析サーバー２１に対して送信させる。
【００２５】
アプリケーション修正部１０３は、ＮＷ通信部２４から送信した上記不具合情報に対応する不具合解決データを、ＮＷ通信部２４が提供サーバー２２から受信したときに、当該受信された不具合解決データを用いて、記憶部２８に記憶されているアプリケーション（上記送信した不具合情報が示す不具合を発生させたアプリケーション）を修正する。
【００２６】
例えば、アプリケーション修正部１０３は、当該受信された不具合解決データに含まれるソースコードを抽出し、当該ソースコードをオブジェクトコードに変換する（すなわち、コンパイルする）。そして、アプリケーション修正部１０３は、当該変換した各データを結合（リンク）させて、制御部１００により実行可能なプログラム（アプリケーションの一部）を作成する。
【００２７】
本実施形態では、アプリケーションは、実行ファイル（例えば、拡張子.exe）と、ライブラリー（例えば、拡張子.dll）とにより構成されるものとする。アプリケーション修正部１０３は、当該ライブラリーとして上記プログラムを作成する。すなわち、アプリケーション修正部１０３は、上記ソースコードに基づいてアプリケーションを修正するとき、上記ソースコードに基づいて新たなライブラリーを作成し、それまでのライブラリーを当該新たなライブラリーに書き換えることで、アプリケーションを修正する。
【００２８】
次に、不具合解析装置２の構成を説明する。図３は不具合解析装置２の構成を示すブロック図である。上述したように、不具合解析装置２は、解析サーバー２１と提供サーバー２２とを備える。
【００２９】
解析サーバー２１は、画像形成装置１及び提供サーバー２２との間でデータ通信が可能に接続されている。解析サーバー２１は、第１制御部２１１と、第１通信部２１２と、解析部２１３とを備えている。第１制御部２１１は、解析サーバー２１の全体的な動作制御を司る。第１通信部２１２は、ＬＡＮ又はインターネットによる通信を可能にする通信モジュールを備え、画像形成装置１及び提供サーバー２２との間でデータ通信を行う。解析部２１３は、画像形成装置１から送信されてきて第１通信部２１２が受信した不具合情報が示す不具合内容を解析し、解析した不具合内容を示す解析データを、第１通信部２１２により提供サーバー２２に送信させる。
【００３０】
解析サーバー２１は、第１制御ユニット２１０を備えている。第１制御ユニット２１０は、プロセッサー、ＲＡＭ、及びＲＯＭなどから構成される。プロセッサーは、例えばＣＰＵ、ＡＳＩＣ、又はＭＰＵ等である。第１制御ユニット２１０は、解析サーバー２１に内蔵の記憶部に記憶された第１動作制御プログラムが上記のプロセッサーで実行されることにより、第１制御部２１１と、第１通信部２１２と、解析部２１３として機能する。
【００３１】
提供サーバー２２は、画像形成装置１及び端末装置３とデータ通信が可能に接続されている。提供サーバー２２は、第２制御部２２１と、第２通信部２２２と、検出部２２３と、不具合解決データ記憶部２２４とを備えている。第２制御部２２１は、提供サーバー２２の全体的な動作制御を司る。第２通信部２２２は、ＬＡＮ又はインターネットによる通信を可能にする通信モジュールを備え、画像形成装置１及び端末装置３との間でデータ通信を行う。不具合解決データ記憶部２２４は、ＨＤＤ又は不揮発性メモリー等を備え、端末装置３から送信されてきて第２通信部２２２が受信した不具合解決データを記憶する。検出部２２３は、不具合解決データ記憶部２２４に記憶されている不具合解決データの中から、解析サーバー２１から第２通信部２２２が受信した解析データ(解析データ)が示す不具合内容に対応する不具合解決データを検出し、当該検出した不具合解決データを、第２通信部２２２により画像形成装置１に対して送信させる。
【００３２】
提供サーバー２２は、第２制御ユニット２２０を備えている。第２制御ユニット２２０は、プロセッサー、ＲＡＭ、及びＲＯＭなどから構成される。プロセッサーは、例えばＣＰＵ、ＡＳＩＣ、又はＭＰＵ等である。第２制御ユニット２２０は、提供サーバー２２に内蔵の記憶部に記憶された第２動作制御プログラムが上記のプロセッサーで実行されることにより、第２制御部２２１と、第２通信部２２２と、検出部２２３として機能する。なお、第１制御部２１１及び第２制御部２２１は、特許請求の範囲における解析側制御部の一例となる。また、なお、第１通信部２１２及び第２通信部２２２は、特許請求の範囲における解析側通信部の一例である。
【００３３】
次に、端末装置３の構成を説明する。図４は端末装置３の構成を示すブロック図である。
【００３４】
端末装置３は、提供サーバー２２とデータ通信が可能に接続されている。端末装置３は、第３制御部３１と、第３通信部３２と、データ記憶部３３と、表示部３４と、操作部３５とを備えている。第３制御部３１は、端末装置３の全体的な動作制御を司る。第３通信部３２は、ＬＡＮ又はインターネットによる通信を可能にする通信モジュールを備え、提供サーバー２２との間でデータ通信を行う。データ記憶部３３は、ＨＤＤ又は不揮発性メモリー等を備え、各種のデータを記憶する。表示部３４は、液晶ディスプレイ又は有機ＥＬディスプレイなどから構成される。操作部３５は、キーボード又はマウス等を備え、ユーザーによる操作で各種の指示が入力される。
【００３５】
端末装置３は、第３制御ユニット３０を備えている。第３制御ユニット３０は、プロセッサー、ＲＡＭ、及びＲＯＭなどから構成される。プロセッサーは、例えばＣＰＵ、ＡＳＩＣ、又はＭＰＵ等である。第３制御ユニット３０は、データ記憶部３３に記憶された第３動作制御プログラムが上記のプロセッサーで実行されることにより、第３制御部３１及び第３通信部３２として機能する。
【００３６】
次に、アプリケーション修正システム１０によるアプリケーション修正処理を説明する。図５はアプリケーション修正処理を示すフローチャートである。図６はアプリケーション修正処理の実行時におけるデータ送受信を概念的に示す図である。図７及び図８はアプリケーション修正処理を行う際におけるプログラム構成を示す図である。
【００３７】
画像形成装置１において、制御部１００が、記憶部２８に記憶されたアプリケーションを実行しているものとする（Ｓ１）。このとき、不具合検知部１０２は、例えば、当該アプリケーションに基づく動作が終了(アプリケーション終了)したときに（Ｓ２でＹＥＳ，Ｐ１）、実行時に発生していた現象や動作記録をイベントログとして、制御部１００に内蔵される不揮発性のメモリーに記憶させる（Ｓ３）。
【００３８】
続いて、不具合検知部１０２は、上記イベントログに含まれる情報の中に、不具合に関する情報を検知した場合に不具合情報を作成し、当該不具合情報を、ＮＷ通信部２４により解析サーバー２１に向けて送信させる（Ｓ４，Ｐ２）。この不具合情報は、上記イベントログに含まれる、例えば、クラッシュログ、画像形成装置１で使用されているＯＳ（Operation System）のバージョン情報、メモリーダンプ、スタックトレース、及びアプリケーションに関する情報（バージョン情報等）を含んで構成される。
【００３９】
解析サーバー２１では、第１通信部２１２が上記不具合情報を受信すると、解析部２１３は、当該不具合情報が示す不具合内容を解析し、解析した不具合内容を示す解析データを作成する（Ｓ５）。
【００４０】
例えば、第１制御部２１１が、画像形成装置１から受信した不具合情報の全てを、解析サーバー２１が内蔵するＨＤＤ又は不揮発性メモリー等からなる上記記憶部に保存して蓄積しておく。そして、解析部２１３は、このように蓄積されている各不具合情報が示す内容に基づいて、例えば、アプリケーション毎に（又は同一のアプリケーションであってもバージョン別に）、発生した各クラッシュをクラッシュ情報としてまとめ、当該アプリケーションで発生した現象の履歴等を示すヒストリカルデータを作成する。そして、解析部２１３は、例えば、アプリケーションの識別情報、上記クラッシュ情報、及び上記ヒストリカルデータを含む解析データを作成する。
【００４１】
解析部２１３は、第１通信部２１２により、上記作成した解析データを提供サーバー２２に向けて送信させる（Ｓ６，Ｐ３）。
【００４２】
ここで、提供サーバー２２における不具合解決データの収集処理を説明する。図９は提供サーバー２２における不具合解決データの収集処理を示すフローチャートである。提供サーバー２２による不具合解決データの収集処理は、提供サーバー２２と端末装置３との間のデータ送受信に基づいて行われる。
【００４３】
提供サーバー２２では、第２通信部２２２が、解析サーバー２１で作成された上記解析データを受信したとき、第２制御部２２１は上記解析データを、後述する不具備情報と共に、当該不具合解決データ記憶部２２４に記憶させておく（Ｓ２１）。すなわち、提供サーバー２２の不具合解決データ記憶部２２４には、複数の解析データが蓄積されている。
【００４４】
ここで、ユーザーが端末装置３において、操作部３５を操作して、当該端末装置３から提供サーバー２２にアクセスする指示を入力すると、第３制御部３１は、当該指示に従って、第３通信部３２により、提供サーバー２２に対して、不具合解決データ記憶部２２４に記憶されている解析データ(不具備情報を有するもの)の閲覧を要求する閲覧要求を送信させる。
【００４５】
提供サーバー２２では、第２通信部２２２が上記閲覧要求指示を受信すると（Ｓ２２）、第２制御部２２１は、不具合解決データ記憶部２２４に記憶されている各解析データ(不具備情報を有するもの)について端末装置３による閲覧を許可し、第２通信部２２２により、当該各解析データを端末装置３に向けて送信させる（Ｓ２３）。
【００４６】
端末装置３は、第３通信部３２が提供サーバー２２から上記各解析データを受信すると、第３制御部３１が表示部３４に、当該各解析データ全てを表示させる。ユーザーは、表示部３４に表示される各解析データが示す不具合を視認することにより、画像形成装置１で用いられている各アプリケーションについて、どのような不具合が生じているかを把握することが可能になる。ユーザーが、各解析データが示す不具合を解決した（不具合が生じない）ソースコードを作成した場合、操作部３５を操作して、当該ソースコードを端末装置３に入力する。第３制御部３１は、当該ソースコードをデータ記憶部３３に記憶させる。
【００４７】
ここで、ユーザーが端末装置３の操作部３５を操作して、上記表示されている解析データのいずれかと、当該解析データが示す不具合を解決するために作成したソースコードと、当該ソースコードを適用する解析データを示す適用情報と、当該ソースコードの提供サーバー２２への送信指示とを端末装置３に入力すると、第３制御部３１は、第３通信部３２により、当該ソースコード及び適用情報を、提供サーバー２２に送信させる。
【００４８】
提供サーバー２２では、第２通信部２２２が上記ソースコード及び適用情報を端末装置３から受信すると（Ｓ２４）、第２制御部２２１は、上記ソースコード及び適用情報を、不具合解決データとして、不具合解決データ記憶部２２４に記憶させる（Ｓ２５）。提供サーバー２２では、検出部２２３が、不具合解決データ記憶部２２４に記憶された不具合解決データを上記検出の対象とする。
【００４９】
このように、不具合解決データ記憶部２２４に記憶された不具合解決データは、検出部２２３による上記検出の対象となるが、更に、検出部２２３は、以下に示す条件が満たされた場合にのみ、不具合解決データ記憶部２２４に記憶された不具合解決データを上記検出の対象とするようにしてもよい。
【００５０】
上記のようにして不具合解決データ記憶部２２４に複数の不具合解決データが記憶されているものとする。ユーザーが端末装置３の操作部３５を操作して、上記不具合解決データの閲覧要求を入力すると、第３制御部３１は、当該閲覧要求に従って、第３通信部３２により、提供サーバー２２に対して、不具合解決データの閲覧要求を送信させる。
【００５１】
提供サーバー２２では、第２通信部２２２が上記閲覧要求を受信すると、第２制御部２２１は、不具合解決データ記憶部２２４に記憶されている不具合解決データについて端末装置３による閲覧を許可し、第２通信部２２２により、不具合解決データ記憶部２２４に記憶されている各不具合解決データを端末装置３に向けて送信させる。
【００５２】
端末装置３は、第３通信部３２が提供サーバー２２から上記各不具合解決データを受信すると、第３制御部３１が表示部３４に、当該各不具合解決データ全てを表示させる。ユーザーは、表示部３４に表示される各不具合解決データが示す不具合を視認することにより、画像形成装置１で用いられている各アプリケーションについて、どのような不具合解決データが用意されているかを把握することが可能になる。
【００５３】
ここで、ユーザーは、端末装置３の操作部３５を操作して、上記の各不具合解決データのそれぞれに対して、不具合解決データを、対応するアプリケーションについて適用することについて承認又は不承認を示す情報を入力する。第３制御部３１は、承認又は不承認を示す情報が入力されると、当該承認又は不承認を示す情報を、第３通信部３２により、提供サーバー２２に送信させる。当該承認又は不承認の情報の入力は、複数の異なる端末装置３において異なるユーザーにより行われ、承認又は不承認の情報が入力された各端末装置３は、それぞれに、当該入力された承認又は不承認の情報を提供サーバー２２に送信する。
【００５４】
提供サーバー２２では、第２通信部２２２が上記承認又は不承認を示す情報を端末装置３から受信すると(Ｓ２６)、第２制御部２２１は、上記承認又は不承認を示す情報を、対応する不具合解決データに対応付けて、不具合解決データ記憶部２２４に記憶させる(Ｓ２７)。例えば、１つの不具合解決データに、複数の承認又は不承認を示す情報を受信した場合には、全ての承認又は不承認を示す情報を、当該不具合解決データに対応付けて、不具合解決データ記憶部２２４に記憶させる。
【００５５】
そして、検出部２２３は、不具合解決データ記憶部２２４に記憶された不具合解決データのうち、(1)承認を示す情報が予め定められた数(１以上の任意の数)だけ対応付けられているもの、(2)不承認を示す情報が対応付けられていないもの、或いは、(3)承認を示す情報が予め定められた数だけ対応付けられ、かつ不承認を示す情報が対応付けられていないもの、という(1)(2)(3)のいずれかの条件を満たす不具合解決データのみを上記検出の対象とする(Ｓ２８)。すなわち、検出部２２３は、不具合解決データ記憶部２２４に上記承認を示す情報が対応付けて記憶されている不具合解決データのみについて、第２通信部２２２による画像形成装置１への送信を許可する。
【００５６】
なお、他の実施形態として、上記承認又は不承認を示す情報の端末装置３から受信を行わず、検出部２２３は、不具合解決データ記憶部２２４に記憶されている全ての不具合解決データを上記検出の対象とし、当該全ての不具合解決データについて、第２通信部２２２による画像形成装置１への送信を許可するようにしてもよい。
【００５７】
図５乃至図７を用いたアプリケーション修正処理の説明に戻る。提供サーバー２２では、第２通信部２２２が、解析サーバー２１から上記解析データを受信すると、検出部２２３は、不具合解決データ記憶部２２４に記憶されている不具合解決データの中から、当該解析データに対応する不具合解決データを検索する(Ｓ７)。
【００５８】
ここで、検出部２２３が、不具合解決データ記憶部２２４に記憶されている不具合解決データの中から、当該解析データに対応する不具合解決データを特定できず検出できなかった場合は(Ｓ７でＮＯ)、第２制御部２２１が、当該解析データには対応する不具合解決データがないことを示す不具備情報を、当該解析データに対応付けた上で、当該解析データを、不具合解決データ記憶部２２４に記憶させる(Ｓ１３)。
【００５９】
また、検出部２２３は、不具合解決データ記憶部２２４に記憶されている不具合解決データの中から、上記適用情報に基づいて、当該解析データに対応する不具合解決データを特定して検出した場合(Ｓ７でＹＥＳ)、第２通信部２２２に、当該検出した不具合解決データを画像形成装置１に向けて送信させる(Ｓ９，Ｐ４)。
【００６０】
画像形成装置１では、ＮＷ通信部２４が上記不具合解決データを受信すると、アプリケーション修正部１０３が、当該不具合解決データに含まれるソースコードを抽出する(Ｓ１０，Ｐ５)。更に、アプリケーション修正部１０３は、当該ソースコードをオブジェクトコードに変換し、当該変換したオブジェクトコードを結合させてライブラリーを作成する(Ｓ１１，Ｐ６，Ｐ７)。続いて、アプリケーション修正部１０３は、それまでのライブラリーを、当該作成した新たなライブラリーに書き換えることで、アプリケーションを修正する(Ｓ１２，Ｐ８)。
【００６１】
なお、アプリケーション修正部１０３は、当該書換後に、上記抽出したソースコードを暗号化した上で、記憶部２８に保存しておくようにしてもよい。当該暗号化したソースコードの復号化は、アプリケーション修正部１０３のみが可能となるようにする。
【００６２】
これにより、図７に示す修正前のアプリケーション構成が、図８に示すアプリケーション構成に修正される。図８では、一例として、ソースコードのバージョンがMyfunction1.0.1に更新され、これに伴い、ライブラリーが書き換えられた状態を示している。
【００６３】
このように、上記実施形態によれば、画像形成装置１の制御部１００がアプリケーションに従った動作をしているときに、当該動作に不具合が生じた場合には、不具合解析装置２から、当該不具合を解決するための不具合解決データが画像形成装置１に送信され、画像形成装置１では、当該不具合解決データを用いて上記アプリケーションを修正することができる。
【００６４】
なお、本発明は上記実施の形態の構成に限られず種々の変形が可能である。例えば、上記実施形態では、本発明に係る情報処理装置の一実施形態として、画像形成装置１を用いて説明しているが、これは一例に過ぎず、他の電子機器、例えば、コンピューター、医療機器等の他の情報処理装置でもよい。
【００６５】
また、上記実施形態では、図１乃至図９を用いて上記実施形態により示した構成及び処理は、本発明の一実施形態に過ぎず、本発明を当該構成及び処理に限定する趣旨ではない。
【符号の説明】
【００６６】
１０      アプリケーション修正システム
１        画像形成装置
１００    制御部
１０１    動作制御部
１０２    不具合検知部
１０３    アプリケーション修正部
２４      ＮＷ通信部
２８      記憶部
１２      画像形成部
２        不具合解析装置
２１      解析サーバー
２１０    第１制御ユニット
２１１    第１制御部
２１２    第１通信部
２１３    解析部
２２      提供サーバー
２２０    第２制御ユニット
２２１    第２制御部
２２２    第２通信部
２２３    検出部
２２４    不具合解決データ記憶部
３        端末装置
３０      第３制御ユニット
３１      第３制御部
３２      第３通信部
３３      データ記憶部
３４      表示部
３５      操作部
【図１】
2020052449.tif 000003
【図２】
2020052449.tif 000004
【図３】
2020052449.tif 000005
【図４】
2020052449.tif 000006
【図５】
2020052449.tif 000007
【図６】
2020052449.tif 000008
【図７】
2020052449.tif 000009
【図８】
2020052449.tif 000010
【図９】
2020052449.tif 000011