(57)【要約】【課題】スタンドアロン環境下にある画像処理装置の動作保証性を高めて、ソフトウェアの更新を行う。【解決手段】ハードウェアを動作させることにより所定の機能を提供する情報処理装置であって、前記ハードウェアを動作させて所定の機能を実現するソフトウェアのプログラムを記憶するプログラム記憶部と、ソフトウェアの更新プログラムを取得する更新プログラム取得部と、更新プログラムに含まれる情報であって、複数のソフトウェア間における情報のやりとりを行うＡＰＩを利用して情報を取得可能なソフトウェアの組み合わせの情報に基づいて、ソフトウェアを更新するか否かを判定する更新実行判定部と、更新プログラムによって更新されるソフトウェアが、ＡＰＩを利用して情報を取得可能であると判定された場合に、プログラム記憶部に記憶されているプログラムを更新プログラムによって更新する更新実行部と、を備える。【選択図】図３
2020086632.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアを動作させることにより所定の機能を提供する情報処理装置であって、
前記ハードウェアを動作させて前記所定の機能を実現するソフトウェアのプログラムを記憶するプログラム記憶部と、
前記ソフトウェアの更新プログラムを取得する更新プログラム取得部と、
前記更新プログラムに基づいた情報であって、複数の前記ソフトウェア間における情報のやりとりを行うＡＰＩを利用して前記情報を取得可能な前記ソフトウェアの組み合わせを示す組み合わせ情報に基づいて、前記ソフトウェアを更新するか否かを判定する更新実行判定部と、
前記ソフトウェアを更新すると判定された場合に、前記プログラム記憶部に記憶されている前記プログラムを前記更新プログラムによって更新する更新実行部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記更新実行判定部は、
前記更新プログラムによって更新される前記ソフトウェアが、前記ＡＰＩを利用して前記情報を取得可能である場合に、前記ソフトウェアを更新すると判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記更新実行判定部は、
前記更新プログラムによって更新される前記ソフトウェアのバージョンが、前記ＡＰＩを利用して前記情報を取得可能な前記ソフトウェアのバージョンと同じバージョンまたはそれ以上のバージョンである場合に、前記ソフトウェアを更新すると判定することを特徴とする請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記情報処理装置に実装されている全ての前記ソフトウェアについて、前記ＡＰＩを利用して前記情報を取得可能であるか否かを示す利用可能ＡＰＩ情報を生成する利用可能情報生成部を備え、
前記更新実行判定部は、
前記更新プログラムによって更新された後の前記情報処理装置に実装されることとなる全ての前記ソフトウェアについて前記ＡＰＩを利用して前記情報を取得可能である場合に、前記ソフトウェアを更新すると判定することを特徴とする請求項１から請求項３のいずれか一項に記載の情報処理装置。
【請求項５】
前記更新実行判定部は、
前記更新プログラムによって更新された後の前記情報処理装置に実装される全ての前記ソフトウェアの組み合わせが、前記組み合わせ情報に含まれる前記ソフトウェアの組み合わせである場合に、前記ソフトウェアを更新すると判定することを特徴とする請求項１から請求項３のいずれか一項に記載の情報処理装置。
【請求項６】
前記ＡＰＩを利用して前記情報を取得可能な前記ソフトウェアに係る情報を表示する操作表示部を備えることを特徴とする請求項１から請求項５のいずれか一項に記載の情報処理装置。
【請求項７】
ハードウェアを動作させることにより所定の機能を提供する情報処理装置におけるソフトウェアのプログラム更新方法であって、
前記ハードウェアを動作させて前記所定の機能を実現するソフトウェアの更新プログラムを取得し、
前記更新プログラムに基づいた情報であって、複数の前記ソフトウェア間における情報のやりとりを行うＡＰＩを利用して前記情報を取得可能な前記ソフトウェアの組み合わせを示す組み合わせ情報に基づいて、前記ソフトウェアを更新するか否かを判定し、
前記ソフトウェアを更新すると判定された場合に、前記情報処理装置に記憶されている前記ソフトウェアのプログラムを前記更新プログラムによって更新することを特徴とするプログラム更新方法。
【請求項８】
ハードウェアを動作させることにより所定の機能を提供する情報処理装置のソフトウェア更新プログラムであって、
前記ハードウェアを動作させて前記所定の機能を実現するソフトウェアの更新プログラムを取得するステップと、
前記更新プログラムに基づいた情報であって、複数の前記ソフトウェア間における情報のやりとりを行うＡＰＩを利用して前記情報を取得可能な前記ソフトウェアの組み合わせを示す組み合わせ情報に基づいて、前記ソフトウェアを更新するか否かを判定するステップと、
前記ソフトウェアを更新すると判定された場合に、前記情報処理装置において記憶されている前記ソフトウェアのプログラムを前記更新プログラムによって更新するステップと、
を情報処理装置に実行させることを特徴とするソフトウェア更新プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラム更新方法、ソフトウェア更新プログラムに関する。
【背景技術】
【０００２】
近年、情報の電子化が推進される傾向にあり、電子化された情報の出力に用いられるプリンタやファクシミリおよび書類の電子化に用いるスキャナなどの画像処理装置は欠かせない機器となっている。このような画像処理装置は、プリンタ、ファクシミリ、スキャナ、複写機としての機能を実現するためのソフトウェア（例えば、ファームウェアやアプリケーションなど）が実装された複合機（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ、ＭＦＰ）として構成されることが多い。
【０００３】
このようなソフトウェアを利用するための仕組みとして、ソフトウェア間のやりとりをＨＴＴＰ／ＨＴＴＰＳ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ／Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  Ｓｅｃｕｒｅ）ベースで実現するＷｅｂ  ＡＰＩ（Ｗｅｂ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）が知られている。
【０００４】
また、ソフトウェアを開発するためのツールとして、ＳＤＫ（Ｓｏｆｔｗａｒｅ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｋｉｔ）が知られている。ＳＤＫは、プログラムに連結して使用できるサンプルコードや、Ｗｅｂ  ＡＰＩなどのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）の仕様を記述したファイルが含まれている。
【０００５】
ＳＤＫを用いて開発したソフトウェアでは、ＳＤＫのバージョンごとにＡＰＩの仕様や使用可能なＡＰＩが異なるために、ＡＰＩが取り扱うことのできる情報の種類が異なる状況が生じうる。
【０００６】
例えば、同じソフトウェアであっても、作成元となったＳＤＫのバージョン違いによって、ＡＰＩの仕様またはＡＰＩを実行するためのアクセス権限が変わった場合には、画像処理装置において実現される機能を実行するために必要な情報を他のソフトウェアから取得することができないことがある。したがって、ＡＰＩを用いてソフトウェア間のやりとりができるか否かは、ＳＤＫのバージョンに依存することとなる。
【０００７】
ゆえに、従来の画像処理装置においては、プリンタ、ファクシミリ、スキャナ、複写機としての機能を実現するためのソフトウェアをパッケージ化し、ＳＤＫのバージョンに関する情報をこのパッケージに含めてソフトウェアの更新を行っている。このようにすることによって、画像処理装置に実装されている全てのソフトウェアにおいて同じバージョンのＳＤＫに含まれているＡＰＩを使用することができる。
【０００８】
一方で、機能改善を目的として、画像処理装置に実装されているソフトウェアのうち、特定のソフトウェアについて個別にアップロードを行うことがある。このような技術として、画像処理装置に実装されているソフトウェアを個別に更新するために、サーバに格納されているマスタファイルに記述されているソフトウェアの整合性に基づいて、画像処理装置に搭載されているソフトウェアのアップデートを行うことが開示されている（例えば、特許文献１参照）。
【０００９】
特許文献１では、マスタファイルに基づいて画像処理装置を動作させるために適切なソフトウェアのバージョンの組み合わせを選択してソフトウェアを更新することにより、ソフトウェアの更新による画像処理装置の動作不良を防ぐことができる。ここで、特許文献１における「ソフトウェアの整合性」とは、画像処理装置を動作させるために必要なソフトウェアのバージョンの組み合わせなどを指す。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、特許文献１に開示されている技術は、画像処理装置に実装されたソフトウェアの更新を行う管理装置、サーバおよび画像処理装置が通信可能であることを前提にしたものである。したがって、画像処理装置単体では、ソフトウェアのバージョンの組み合わせを選択してソフトウェアを更新することができない。
【００１１】
また、ＳＤＫのバージョンに関する情報を取得することができないため、インストールされたソフトウェアの組み合わせによっては、ソフトウェア間での情報のやりとりができないＡＰＩの組み合わせとなり、画像処理装置が動作しなくなってしまう。
【００１２】
本発明は、上記実情を考慮してなされたものであり、スタンドアロン環境下にある画像処理装置の動作保証性を高めて、ソフトウェアの更新を行うことを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明の一態様は、ハードウェアを動作させることにより所定の機能を提供する情報処理装置であって、前記ハードウェアを動作させて前記所定の機能を実現するソフトウェアのプログラムを記憶するプログラム記憶部と、前記ソフトウェアの更新プログラムを取得する更新プログラム取得部と、前記更新プログラムに基づいた情報であって、複数の前記ソフトウェア間における情報のやりとりを行うＡＰＩを利用して前記情報を取得可能な前記ソフトウェアの組み合わせを示す組み合わせ情報に基づいて、前記ソフトウェアを更新するか否かを判定する更新実行判定部と、前記ソフトウェアを更新すると判定された場合に、前記プログラム記憶部に記憶されている前記プログラムを前記更新プログラムによって更新する更新実行部と、を備えることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、スタンドアロン環境下にある画像処理装置の動作保証性を高めて、ソフトウェアの更新を行うことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係る画像処理装置のハードウェア構成を示すブロック図。
【図２】本発明の実施形態に係る操作表示部のハードウェア構成を示すブロック図。
【図３】本発明の実施形態に係る画像処理装置のソフトウェア構成を示すブロック図。
【図４】本発明の実施形態に係る画像処理装置において実現される機能を示す機能ブロック図。
【図５】従来の画像処理装置のソフトウェアの更新プログラムパッケージの情報構成を示す図。
【図６】従来の画像処理装置においてソフトウェアを更新する処理の流れを示すフローチャート。
【図７】従来の画像処理装置において表示されるＧＵＩを例示した図。
【図８】従来の画像処理装置のソフトウェアの更新プログラムの情報構成を例示した図。
【図９】本発明の実施形態に係る画像処理装置のソフトウェアの更新プログラムの情報構成を示す図。
【図１０】本発明の実施形態に係るバージョン情報リストの情報構成を示す図。
【図１１】本発明の実施形態に係る画像処理装置においてソフトウェアを更新する処理の流れを示すフローチャート。
【図１２】本発明の実施形態に係る画像処理装置において表示されるＧＵＩを例示した図。
【図１３】本発明の実施形態に係る画像処理装置においてバージョン情報リストを更新する処理の流れを示すフローチャート。
【図１４】本発明の実施形態に係る画像処理装置のソフトウェアの更新プログラムの情報構成を示す図。
【図１５】本発明の実施形態に係るＡＰＩ利用条件リストの情報構成を示す図。
【図１６】本発明の実施形態に係る画像処理装置において実現される機能の他の例を示す機能ブロック図。
【図１７】本発明の実施形態に係る画像処理装置においてソフトウェアを更新する処理の流れを示すフローチャート。
【図１８】本発明の実施形態に係る利用可能ＡＰＩ情報を生成する処理の流れを示すフローチャート。
【図１９】本発明の実施形態に係る利用可能ＡＰＩ情報の情報構成を示す図。
【発明を実施するための形態】
【００１６】
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、情報処理装置として、ユーザが操作を行うためのＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）としてタッチパネルなどの操作表示部３４を備えた画像処理装置１について説明する。
【００１７】
なお、本実施形態における画像処理装置１は、コピー機能、プリント機能、スキャン機能、ＦＡＸ機能などを実現するためのソフトウェアが実装されているＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ：複合機）を例として説明する。
【００１８】
図３は本実施形態に係る画像処理装置１のハードウェア構成を示すブロック図である。画像処理装置１は、コントローラ１００とエンジン部３３とをＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｆａｃｅ）バス１１で接続した構成となる。
【００１９】
コントローラ１００は、画像処理装置１全体の制御と描画、通信、操作表示部３４からの入力を制御する。エンジン部３３は、ＰＣＩバス１１に接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、１ドラムカラープロッタ、４ドラムカラープロッタ、スキャナまたはファックスユニットなどである。
【００２０】
なお、このエンジン部３３には、プロッタなどのいわゆる画像形成出力を行うエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理を行う画像処理部分が含まれる。
【００２１】
コントローラ１００は、ＣＰＵ２１、ノースブリッジ（ＮＢ）２３、システムメモリ（ＭＥＭ−Ｐ）２２、サウスブリッジ（ＳＢ）２４、ローカルメモリ（ＭＥＭ−Ｃ）２７、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）２６、ハードディスクドライブ（ＨＤＤ）３５を含む。
【００２２】
また、ノースブリッジ（ＮＢ）２３とＡＳＩＣ２６とが、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）バス２５によって接続される。さらに、ＭＥＭ−Ｐ２２は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２ａ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２２ｂを含む。
【００２３】
ＣＰＵ２１は、画像処理装置１を制御し、ＮＢ２３、ＭＥＭ−Ｐ２２、ＳＢ２４を含むチップセットを含む構成であり、このチップセットを介して他の機器と接続される。ＮＢ２３は、ＣＰＵ２１とＭＥＭ−Ｐ２２、ＳＢ２４、ＡＧＰバス２５とを接続するためのブリッジであり、ＭＥＭ−Ｐ２２に対する読み書きなどを制御するメモリコントローラと、ＰＣＩマスタおよびＡＧＰターゲットとを含む構成である。
【００２４】
ＭＥＭ−Ｐ２２は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ＲＯＭ２２ａとＲＡＭ２２ｂとを含む。
【００２５】
ＲＯＭ２２ａは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ２２ｂは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
【００２６】
ＳＢ２４は、ＮＢ２３とＰＣＩデバイス、周辺デバイスとを接続するためのブリッジである。このＳＢ２４は、ＰＣＩバスを介してＮＢ２３と接続されており、このＰＣＩバスには、ネットワークインタフェース（Ｉ／Ｆ）部が接続される構成であってもよい。
【００２７】
ＡＳＩＣ２６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、ＡＧＰバス２５、ＰＣＩバス、ＨＤＤ３５およびＭＥＭ−Ｃ２７をそれぞれ接続するブリッジの機能を実現する。
【００２８】
ＡＳＩＣ２６は、ＰＣＩターゲットおよびＡＧＰマスタと、ＡＳＩＣ２６の中核をなすアービタ（ＡＲＢ）と、ＭＥＭ−Ｃ２７を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）と、エンジン部３３との間でＰＣＩバス１１を介したデータ転送をおこなうＰＣＩユニットとを含む。
【００２９】
ＡＳＩＣ２６には、ＰＣＩバスを介してＦＣＵ（Ｆａｃｓｉｍｉｌｅ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）２８、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）２９、ＩＥＥＥ１３９４（ｔｈｅ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ  １３９４）インタフェース３１、ＮＦＣ（Ｎｅａｒ  ｆｉｅｌｄ  ｒａｄｉｏ  ｃｏｍｍｕｎｉｃａｔｉｏｎ）インタフェース３２が接続される。
【００３０】
ＡＳＩＣ２６は、入出力インタフェースなどの汎用機能を実現する構成が組み込まれているため、操作表示部３４は、バス３０を介してＡＳＩＣ２６に直接接続されている。また、ＭＥＭ−Ｃ２７は、ＡＳＩＣ２６がコピー用画像バッファ、符号バッファとして用いるローカルメモリである。
【００３１】
ＦＣＵ２８は、画像処理装置１におけるファクシミリの送受信を制御する。ＵＳＢ２９は、画像処理装置１と、画像処理装置１にＵＳＢ接続されている外部の端末との間でデータの送受信を行う。ＩＥＥＥ１３９４インタフェース３１は、画像処理装置１と、画像処理装置１にＩＥＥＥ１３９４端子を介して接続されている外部の端末との間でデータの送受信を行う。ＮＦＣインタフェース３２は、非接触型の近距離無線通信を行う。
【００３２】
ＨＤＤ３５は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージであり、画像処理装置１において実行されるアプリケーションのプログラムファイルが保存されている。ＡＧＰバス２５は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、ＭＥＭ−Ｐ２２に高スループットで直接アクセスすることにより、グラフィックスアクセラレータカードを高速にするものである。
【００３３】
なお、画像処理装置１において実行されるアプリケーションのプログラムファイルは、コントローラ１００において、ＣＰＵ２１によってＲＡＭ２２ｂに展開される。そして、ＲＡＭ２２ｂに展開されたプログラムに従ってＣＰＵ２１が演算処理を行うことによってアプリケーションが実行される。
【００３４】
次に、本実施形態に係る操作表示部３４のハードウェア構成について図２を参照して説明する。図２に示すように、操作表示部３４は、ＣＰＵ３４１、ＲＡＭ３４２、ＲＯＭ３４３、ＨＤＤ３４４、内部Ｉ／Ｆ３４５、外部Ｉ／Ｆ３４６、操作パネル３４７がバス３４９を介して互いに接続されて構成される。
【００３５】
本実施形態においては、画像処理装置１の本体１０（図３参照）に取り外し可能なディスプレイパネルとして構成されるものを操作表示部３４として説明を行う。なお、本体１０と通信可能な端末、例えば、タブレット型情報処理端末などを操作表示部３４として用いる構成であってもよい。
【００３６】
ＣＰＵ３４１は演算手段であり、操作表示部３４の全体の動作を制御する。ＲＡＭ３４２は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ３４１が情報を処理する際の作業領域として用いられる。ＲＯＭ３４３は、読み出し専用の不揮発性記憶媒体であり、ファームウェアなどのプログラムが格納されている。
【００３７】
ＨＤＤ３４４は、情報の読み書きが可能な不揮発性の記憶媒体であり、操作表示部３４のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーションのプログラムファイルなどが格納されている。なお、ＨＤＤ３４４の代わりに、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などの不揮発性の記憶媒体を用いる構成であってもよい。
【００３８】
内部Ｉ／Ｆ３４５は、ＡＳＩＣ２６の内部Ｉ／Ｆ２６５と接続され、ユーザによる操作パネル３４７の操作信号をコントローラ１００に対して出力する。外部Ｉ／Ｆ３４６は、バス９０と各種のハードウェアやネットワークなどを接続し制御する。
【００３９】
操作パネル３４７は、ユーザが操作表示部３４の状態を確認するためのディスプレイなどの表示装置およびユーザが操作表示部３４において、情報を入力するための入力部が一体的に形成されている。本実施形態において操作パネル３４７は、タッチパネルやハードキーなどによって構成される。
【００４０】
このようなハードウェア構成において、ＲＯＭ３４３やＨＤＤ３４４もしくは光学ディスクなどの記録媒体に格納されたプログラムがＲＡＭ３４２に読み出され、ＣＰＵ３４１がそれらのプログラムに従って演算を行うことにより、操作表示部３４におけるソフトウェア制御部がそれぞれ構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、操作表示部３４の機能を実現する機能ブロックがそれぞれ構成される。
【００４１】
図３は、画像処理装置１のソフトウェア構成の一例を示す模式図である。図３に示すように、本体１０は、アプリ層１０１と、サービス層１０２と、ＯＳ層１０３とを有する。アプリ層１０１、サービス層１０２、および、ＯＳ層１０３の実体は、ＲＯＭ２２ａやＨＤＤ３５等に格納されている各種ソフトウェアである。ＣＰＵ２１が、これらのソフトウェアを実行することにより、各種の機能が提供される。
【００４２】
アプリ層１０１のソフトウェアは、画像処理装置１を構成するハードウェア資源を動作させて所定の機能を提供するためのアプリケーションである。例えばアプリケーションとしては、コピー機能を提供するためのコピーＡｐｐ１０１ａ、プリンタ機能を提供するためのプリントＡｐｐ１０１ｂ、スキャナ機能を提供するためのスキャンＡｐｐ１０１ｃ、ファクス機能を提供するためのＦＡＸＡｐｐ１０１ｄ、ネットワーク機能を提供するためのＮＷＡｐｐ１０１ｅなどが挙げられる。さらに、アプリ層１０１のアプリケーションとしては、ウェブブラウザやアプリケーションを利用するのに必要なソフトウェアなどがある。
【００４３】
サービス層１０２のソフトウェアは、アプリ層１０１とＯＳ層１０３との間に介在し、アプリケーションに対し、本体１０が備えるハードウェア資源を利用するためのインタフェースを提供するためのソフトウェアである。具体的には、ハードウェア資源に対する動作要求の受付、動作要求の制御を行う機能を提供するためのソフトウェアである。サービス層１０２が受け付ける動作要求としては、エンジン部３３によるスキャン動作や印刷要求が考えられる。
【００４４】
なお、サービス層１０２によるインタフェースの機能は、本体１０のアプリ層１０１だけではなく、操作表示部３４のアプリ層３０１に対しても提供される。すなわち、操作表示部３４のアプリ層３０１（アプリケーション）も、サービス層１０２のインタフェース機能を介して、本体１０のハードウェア資源（例えばエンジン部１７）を利用した機能を実現することができる。例えばサービス層１０２のインタフェース機能は、ＷｅｂＡＰＩで提供される。
【００４５】
これらのＷｅｂＡＰＩとして、本体１０には、コピーＡｐｐ１０１ａに対応するＡＰＩであるコピーＡｐｐ  ＡＰＩ１２０ａ、プリントＡｐｐ１０１ｂに対応するＡＰＩであるプリントＡｐｐ  ＡＰＩ１２０ｂ、スキャンＡｐｐ１０１ｃに対応するＡＰＩであるスキャンＡｐｐ  ＡＰＩ１２０ｃ、ＦＡＸＡｐｐ１０１ｄに対応するＡＰＩであるＦＡＸＡｐｐ  ＡＰＩ１２０ｄ、ＮＷＡｐｐ１０１ｅに対応するＡＰＩであるＮＷＡｐｐ  ＡＰＩ１２０ｅなどが提供されている。
【００４６】
ＯＳ層１０３のソフトウェアは、本体１０が備えるハードウェアを制御する機能を提供するための基本ソフトウェア（オペレーティングシステム（ＯＳ））である。サービス層１０２のソフトウェアは、各アプリケーションから出力されたハードウェア資源の利用要求を、ＯＳ層１０３が解釈可能なコマンドに変換し、ＯＳ層１０３に転送する。そして、ＯＳ層１０３のソフトウェアによりコマンドが実行されることで、ハードウェア資源はアプリケーションの要求に従った動作を行う。
【００４７】
一方、操作表示部３４も本体１０と同様に、アプリ層３０１、サービス層３０２、ＯＳ層３０３を備える。操作表示部３４が備えるアプリ層３０１、サービス層３０２、および、ＯＳ層３０３も階層構造については本体１０側と同様である。ただし、アプリ層３０１のアプリケーションにより提供される機能や、サービス層３０２が受け付け可能な動作要求の種類は、本体１０側とは異なる。
【００４８】
アプリ層３０１のアプリケーションは、操作表示部３４が備えるハードウェア資源を動作させて所定の機能を提供するためのソフトウェアであってもよい。このようなソフトウェアとしては、例えば、操作表示部３４は、本体１０が備える機能（コピー機能、スキャナ機能、ファクス機能、プリンタ機能）に関する操作や表示を行うためのＧＵＩ（グラフィカルユーザインタフェース）の機能を提供するためのソフトウェアを備える。また、アプリ層３０１には、ネイティブアプリケーション、ブラウザアプリケーションなどが存在し、サービス層３０２には、インストーラなどが存在する。
【００４９】
なお、本実施の形態では、機能の独立性を保つために、本体１０側のＯＳ層１０３のソフトウェアと操作表示部３４側のＯＳ層３０３のソフトウェアが互いに異なる。つまり、本体１０と操作表示部３４は、別々のオペレーティングシステムで互いに独立して動作する。
【００５０】
以上のように、本実施の形態の画像処理装置１において、本体１０と操作表示部３４は別々のオペレーティングシステムで動作するため、本体１０と操作表示部３４との間の通信は、共通化された画像処理装置１内部のプロセス間通信ではなく、異なる装置間の通信として行われる。
【００５１】
操作表示部３４が受け付けた情報（ユーザが操作表示部３４を操作して入力した内容）を本体１０へ転送する動作（コマンド通信）や、本体１０が操作表示部３４へイベントを通知する動作などが異なる装置間の通信に該当する。
【００５２】
そして、操作表示部３４が本体１０へコマンド通信を行うことにより、本体１０の機能を使用することができる。また、本体１０から操作表示部３４に通知するイベントには本体１０における動作の実行状況、および、本体１０側で設定された内容（例えば、印刷ジョブの設定内容の情報）などが挙げられる。
【００５３】
また、本実施形態に係る画像処理装置１では、操作表示部３４に対する電力供給が本体１０からバス３０を経由して行われる。ゆえに、操作表示部３４の電源制御を本体１０の電源制御とは別に（独立して）行うことができる。
【００５４】
次に、本実施形態に係る画像処理装置１において実現される機能について図４を参照して説明する。なお、図４に示す機能は、コントローラ１００を実現する各ハードウェアによって実行されるソフトウェア・プログラムによって実現され、図３において説明したアプリ層１０１、サービス層１０２、ＯＳ層１０３のうち、いずれにおいて実現される構成であってもよい。
【００５５】
例えば、図４に示す構成によって実現される機能の全てをＯＳ層１０３のソフトウェア・モジュールとして実装してもよい。また、図４に示す機能によって実現される機能を、アプリ層１０１のアプリケーション・ソフトウェアとして実装してもよい。
【００５６】
図４に示すように、画像処理装置１は、通信制御部２０１、インストール制御部２０２、更新判定情報取得部２０３、更新実行判定部２０４、バージョン情報記憶部２０５、本体側更新実行部２０６、外部端末更新制御部２０７、ソフトウェア記憶部２０８を含む。
【００５７】
通信制御部２０１は、コントローラ１００に入出力される情報を制御する。通信制御部２０１は、例えば、画像処理装置１にダウンロードされた更新プログラムをインストール制御部２０２に送信する。
【００５８】
インストール制御部２０２は、画像処理装置１にダウンロードされた更新プログラムを更新判定情報取得部２０３および更新実行判定部２０４に送信する。このとき、インストール制御部２０２は、必要があれば、ダウンロードされた更新プログラムの解凍もしくは更新プログラムの暗号化を解除（復号化）して、ＲＡＭ２２ｂもしくはＨＤＤ３５に展開し、更新判定情報取得部２０３に送信する。
【００５９】
更新判定情報取得部２０３は、インストール制御部２０２から更新プログラムを取得する更新プログラム取得部として機能し、更新プログラムに含まれる情報からヘッダ部の情報やバージョン情報リスト、ＡＰＩ利用可能情報を取得する。これらの情報についての詳細は、後述する。
【００６０】
更新実行判定部２０４は、インストール制御部２０２から取得した更新プログラムに含まれる情報に基づいて、その更新プログラムが更新可能なプログラムであるか否かを判定する。また、更新実行判定部２０４は、更新判定情報取得部２０３からバージョン情報リストを取得して、インストール制御部２０２から取得した更新プログラムが更新可能なプログラムであるか否かを判定する構成であってもよい。
【００６１】
バージョン情報記憶部２０５は、更新判定情報取得部２０３が取得したバージョン情報を記憶する記憶領域であり、ＲＡＭ２２ｂやＨＤＤ３５によって実現される。本体側更新実行部２０６は、更新実行判定部２０４により、インストール制御部２０２から取得した更新プログラムが、本体１０において更新可能なプログラムであると判定された場合に、ソフトウェア記憶部２０８に記憶されているプログラムを、インストールされた更新プログラムを用いて書き換えることにより更新する。
【００６２】
外部端末更新制御部２０７は、更新実行判定部２０４により、インストール制御部２０２から取得した更新プログラムが、操作表示部３４において更新可能なプログラムであると判定された場合に、ＲＯＭ３４３に記憶されているプログラムを、インストールされた更新プログラムに書き換えることにより更新する。
【００６３】
ソフトウェア記憶部２０８は、本体１０に実装されるプログラムを記憶する記憶領域であり、ＲＡＭ２２ｂやＨＤＤ３５によって実現されるプログラム記憶部である。本実施形態に係る画像処理装置１は、このような構成により、画像処理装置１に搭載されている機能を実現するためのソフトウェアのプログラムを更新する。
【００６４】
ところで、図３で説明したように、ソフトウェア間の情報のやりとりは、ソフトウェアに実装されているＡＰＩを利用して実現されている。また、ソフトウェアの開発キットであるＳＤＫのバージョンによって、ＳＤＫを用いて作成されるソフトウェアにおいて利用可能なＡＰＩの種類が異なる。
【００６５】
例えば、バージョンが１．００のＳＤＫにおいては、ＡＰＩ−α、ＡＰＩ−βが利用可能であるが、バージョンが１．０２のＳＤＫにおいては、ＡＰＩ−βの利用が抹消され、ＡＰＩ−α、ＡＰＩ−γが利用可能なＡＰＩとなることがある。
【００６６】
従来の画像処理装置においては、図５に示すように、プリンタ、ファクシミリ、スキャナ、複写機としての機能を実現するプログラムを更新するために更新プログラムパッケージを用いられている。
【００６７】
例えば、画像処理装置に搭載されている各機能を実現するソフトウェア（本体ＯＳ、コピーＡｐｐ、プリントＡｐｐ、・・・）の更新プログラムをひとつにまとめ、さらに、これらの更新プログラムを作成したＳＤＫのバージョンに関する情報（例えば、パッケージ情報に含まれるＳＤＫバージョン情報）を含めてパッケージ化してソフトウェアの更新を行っている。
【００６８】
このようにすることによって、従来の画像処理装置においては、全て同じバージョンのＳＤＫを用いて作成されたプログラムに更新されるため、更新されたプログラムには、そのバージョンで利用可能なＡＰＩの実装およびＡＰＩを実行するためのアクセス権限が与えられることとなる。したがって、更新プログラムパッケージを用いた場合には、ＡＰＩの組み合わせを考慮することなくソフトウェア間の情報をやり取りすることができる。
【００６９】
図６は、従来の画像処理装置においてソフトウェアを更新する処理の流れを示すフローチャートである。更新プログラムパッケージが記憶された外部記憶媒体から、更新プログラムパッケージを画像処理装置にダウンロードすることにより、本処理が開始される。
【００７０】
画像処理装置においては、更新プログラムパッケージがダウンロードされると、更新プログラムパッケージのデータファイルを解凍し、解凍された更新プログラムパッケージはＲＡＭに展開される（Ｓ６０１）。
【００７１】
画像処理装置は、更新プログラムパッケージに含まれるパッケージ情報（図５参照）に基づいて、更新プログラムパッケージがどのバージョンのものであるかを示すパッケージバージョン情報を取得する（Ｓ６０２）。
【００７２】
次に、画像処理装置においては、更新プログラムパッケージによって画像処理装置に実装されているプログラムの更新を行うことができるか否かが判定される（Ｓ６０３）。更新プログラムパッケージには、例えば、図８にしめすように、画像処理装置に実装されている機能を実現するためのプログラムが含まれている。図８は、従来の画像処理装置に実装されている機能のうち、コピー機能を実現するためのプログラムの情報構成を例示した図である。
【００７３】
図８に示すコピー機能更新プログラムは、ヘッダ部にベンダ情報、機種情報および機能バージョン情報、ボディに更新プログラムのソースコードであるプログラム情報を有して構成される。Ｓ６０３の処理において、画像処理装置では、ヘッダ部に記述されているベンダ情報または機能バージョン情報を参照して、プログラムの更新を行うことができるか否かが判定される。
【００７４】
このとき、画像処理装置においては、ベンダ情報を用いる例として、画像処理装置のベンダと更新プログラムのベンダが異なる場合に、プログラムの更新が実行できないと判定され（Ｓ６０３／ＮＯ）、画像処理装置のベンダと更新プログラムのベンダが同じである場合に、プログラムの更新を行うことが可能であると判定される（Ｓ６０３／ＹＥＳ）。
【００７５】
また、画像処理装置においては、機種情報を用いる例として、更新プログラムの機種情報が画像処理装置の機種と一致しない場合に、プログラムの更新が実行できないと判定され（Ｓ６０３／ＮＯ）、新プログラムの機種情報が画像処理装置の機種と一致する場合に、プログラムの更新を行うことが可能であると判定される（Ｓ６０３／ＹＥＳ）。
【００７６】
更新プログラムに含まれる機種情報は、例えば、予め画像処理装置の機種ごとにわりあてられている機種ＩＤなどの識別子を用いてもよい。
【００７７】
なお、Ｓ６０３において、パッケージバージョン情報や更新プログラムパッケージに含まれるＳＤＫのバージョン情報を画像処理装置の操作表示部に表示させ、操作表示部に対するユーザの操作に基づいてプログラムの更新を行うことができるか否かが判定される構成であってもよい。
【００７８】
Ｓ６０３でプログラムの更新が可能であると判定されると、操作表示部には図７に示すような、プログラム更新の実行をユーザが確認するために操作されるＧＵＩとして更新実行確認画面が表示される（Ｓ６０４）。
【００７９】
図７の更新実行確認画面では、例えば、画像処理装置１の本体１０のＯＳが、バージョン１．０Ｘから１．０３に、コピー機能を実現するソフトウェアが１．０Ｘから１．０３に更新されることが示されている。
【００８０】
操作表示部に表示された更新実行確認画面において、「はい」のボタンが操作されると、プログラムの更新を開始する信号が出力され（Ｓ６０５）、「いいえ」のボタンが操作されると、本処理は終了される。
【００８１】
Ｓ６０４の更新実行確認画面において「はい」が操作されたと仮定して、以後の処理ステップについて説明する。画像処理装置は、Ｓ６０２で取得したパッケージバージョン情報をＲＡＭなどの不揮発性記憶媒体に記憶させる（Ｓ６０６）。
【００８２】
そして、画像処理装置は、ＲＯＭに記憶されている各ソフトウェアのプログラムを、Ｓ６０１で展開した更新プログラムパッケージに含まれる各ソフトウェアの更新プログラムに書き換えることにより、ソフトウェアの更新を行う（Ｓ６０７）。画像処理装置は、更新プログラムパッケージに含まれる全てのソフトウェアの更新を終えると（Ｓ６０８／ＹＥＳ）、本処理を終了させる。
【００８３】
以上説明したように、従来の画像処理装置においては、更新プログラムを作成したＳＤＫのバージョンに関する情報を含めてパッケージ化してソフトウェアの更新が行われている。しかし、画像処理装置の性能や作業効率向上を目的として、特定のソフトウェアについて個別にプログラムの更新を行うことがある。このような場合、更新後の画像処理装置において、ソフトウェア間での情報のやりとりができるか否かを考慮する必要がある。
【００８４】
そこで、本実施形態に係る画像処理装置１においては、画像処理装置１に実装された機能を実現するためのソフトウェアを更新するための更新プログラムに、ＳＤＫのバージョンを識別可能な情報であるバージョン情報リストを含めるように構成する。
【００８５】
図９は、本実施形態に係る画像処理装置１に実装された機能を実現するためのソフトウェアを更新するための更新プログラムの情報構成を示す図である。図９に示す、画像処理装置１に実装されている機能ＸＸのソフトウェアを更新するための更新プログラムは、ヘッダ部にベンダ情報、機種情報および機能バージョン情報、ボディに、ＳＤＫのバージョンを識別可能な情報であるバージョン情報リストおよび更新プログラムのソースコードであるプログラム情報を有して構成される。
【００８６】
図１０は、本実施形態に係るバージョン情報リストの情報構成を示す図である。ここでは、図９に示した機能ＸＸのソフトウェアを更新するための更新プログラムに、図１０で示すバージョン情報リスト１．００が記述されていると仮定して説明を行う。
【００８７】
バージョン情報リスト１．００には、画像処理装置１に実装されているソフトウェアのバージョンを示すソフトウェアバージョン情報と、ＳＤＫのバージョンを示すＳＤＫバージョン情報とが含まれている。
【００８８】
上述したように、ＳＤＫでは、バージョンごとに利用可能なＡＰＩの種類が異なる。また、バージョンが異なるＳＤＫでは、ＡＰＩを実行するためのアクセス権限も異なることがある。そこで、本実施形態では、画像処理装置１に実装されているソフトウェアごとに、それぞれのソフトウェア間での情報のやり取りが可能なＡＰＩが実装されているソフトウェアのバージョンの組み合わせを示す組み合わせ情報であるバージョン情報と、ＳＤＫバージョン情報とを含むデータリストを作成する。
【００８９】
例えば、データリスト００１では、ソフトウェアバージョン情報として、画像処理装置１の本体１０のＯＳのバージョンが１．００、コピー機能を実現するソフトウェアのバージョンが１．００、プリント機能を実現するソフトウェアのバージョンが１．００、ネットワーク機能を実現するソフトウェアのバージョンが１．００、・・・、であることを示す情報が、ＳＤＫバージョン情報として、ＳＤＫのバージョンが１．００であることを示す情報が含まれる。
【００９０】
また、データリスト００２では、ソフトウェアバージョン情報として、画像処理装置１の本体１０のＯＳのバージョンが１．００、コピー機能を実現するソフトウェアのバージョンが１．０１、プリント機能を実現するソフトウェアのバージョンが１．００、ネットワーク機能を実現するソフトウェアのバージョンが１．０１、・・・、であることを示す情報が、ＳＤＫバージョン情報として、ＳＤＫのバージョンが１．０１であることを示す情報が含まれる。
【００９１】
さらに、データリスト００３では、ソフトウェアバージョン情報として、画像処理装置１の本体１０のＯＳのバージョンが１．０１、コピー機能を実現するソフトウェアのバージョンが１．０１、プリント機能を実現するソフトウェアのバージョンが１．０１、ネットワーク機能を実現するソフトウェアのバージョンが１．０２、・・・、であることを示す情報が、ＳＤＫバージョン情報として、ＳＤＫのバージョンが１．０２であることを示す情報が含まれる。
【００９２】
そして、データリストを複数組み合わせたもの、すなわち、データリスト００１からデータリスト００３をバージョン情報リスト１．００として管理する。図９に示す画像処理装置１に実装されている機能ＸＸのソフトウェアを更新するための更新プログラムにおいては、バージョン情報リスト１．００が記述されていると仮定しているが、例えば、他のバージョンのバージョン情報リストを含む構成であってもよい。
【００９３】
また、バージョン情報リストは、画像処理装置１に実装されているソフトウェアの更新プログラムを作成する際に、それぞれの更新プログラムにふくまれる情報であり、バージョンリストに含まれるデータリストの組み合わせが異なるものとなると、バージョン情報リストのバージョンも変化する。
【００９４】
例えば、バージョン情報リスト１．００は、データリスト００１、データリスト００２、データリスト００３によって構成される一方で、バージョン情報リスト１．０１は、データリスト００２、データリスト００３によって構成される情報であるとしてもよい。なお、画像処理装置１において、バージョン情報リストは、バージョン情報記憶部２０５に記憶される。
【００９５】
次に、本実施形態に係る画像処理装置１に実装されているソフトウェアを更新する処理の流れについて図１１を参照して説明する。図１１は、本実施形態に係る画像処理装置１においてソフトウェアを更新する処理の流れを示すフローチャートである。更新プログラムパッケージが記憶された外部記憶媒体から、更新プログラムパッケージを画像処理装置１にダウンロードすることにより、本処理が開始される。
【００９６】
通信制御部２０１を介して、画像処理装置１に更新プログラムがダウンロードされると、インストール制御部２０２は、更新プログラムのデータファイルを解凍し、解凍した更新プログラムをＲＡＭ２２ｂに展開する（Ｓ１１０１）。更新判定情報取得部２０３は、更新プログラムに含まれる情報から、ヘッダ部の情報、および、バージョン情報リストを取得する（Ｓ１１０２）。
【００９７】
次に、更新実行判定部２０４は、更新判定情報取得部２０３が取得した情報から、更新プログラムによって画像処理装置１に実装されている機能ＸＸのプログラムの更新を行うことができるか否かを判定する（Ｓ１１０３）。
【００９８】
図９に示す画像処理装置１の機能ＸＸについての更新プログラムは、ヘッダ部にベンダ情報、機種情報および機能バージョン情報、ボディに、バージョン情報リスト、および、更新プログラムのソースコードであるプログラム情報を有して構成される。Ｓ１１０３の処理において、更新実行判定部２０４は、ヘッダ部に記述されているベンダ情報、機種情報、および、機能バージョン情報を参照して、プログラムの更新を行うことができるか否かを判定する。
【００９９】
このとき、更新実行判定部２０４は、ベンダ情報を用いる例として、画像処理装置１のベンダと更新プログラムのベンダが異なる場合に、プログラムの更新が実行できないと判定する（Ｓ１１０３／ＮＯ）。一方で、更新実行判定部２０４は、画像処理装置１のベンダと更新プログラムのベンダが同じである場合に、プログラムの更新を行うことが可能であると判定する（Ｓ１１０３／ＹＥＳ）。
【０１００】
また、更新実行判定部２０４は、機種情報を用いる例として、更新プログラムの機種情報が画像処理装置１の機種と一致しない場合に、プログラムの更新が実行できないと判定する（Ｓ１１０３／ＮＯ）。一方で、更新実行判定部２０４は、更新プログラムの機種情報が画像処理装置１の機種と一致する場合に、プログラムの更新を行うことが可能であると判定する（Ｓ１１０３／ＹＥＳ）。
【０１０１】
更新プログラムに含まれる機種情報は、例えば、予め画像処理装置１の機種ごとにわりあてられている機種ＩＤなどの識別子を用いてもよい。
【０１０２】
Ｓ１１０３でプログラムの更新が可能であると判定されると、操作表示部３４には図１２に示すような、プログラム更新の実行をユーザが確認するために操作されるＧＵＩとして更新実行確認画面が表示される（Ｓ１１０４）。
【０１０３】
図１２の更新実行確認画面では、例えば、画像処理装置１の本体１０のＯＳが、バージョン１．０Ｘから１．０３に、コピー機能を実現するソフトウェアが１．０Ｘから１．０３に、ＳＤＫのバージョンが１．０Ｘから１．０３に更新されることが示されている。
【０１０４】
操作表示部３４に表示された更新実行確認画面において、「はい」のボタンが操作されると、更新実行判定部２０４は、プログラムの更新を開始する信号が出力し（Ｓ１１０５）、「いいえ」のボタンが操作されると、本処理を終了する。
【０１０５】
Ｓ１１０４の更新実行確認画面において「はい」が操作されたと仮定して、以後の処理ステップについて説明する。更新判定情報取得部２０３は、Ｓ１１０２で取得したバージョン情報リストをバージョン情報記憶部２０５に記憶させる（Ｓ１１０６）。
【０１０６】
次に、更新実行判定部２０４は、バージョン情報記憶部２０５に記憶されているバージョン情報リストを参照して、そのバージョン情報リストに含まれるデータリストに示されるソフトウェアの組み合わせと、Ｓ１１０１で展開された更新プログラムを用いてソフトウェアを更新した後の画像処理装置１に実装されることとなるソフトウェアとの組み合わせを比較する（Ｓ１１０７）。
【０１０７】
そして、更新実行判定部２０４は、Ｓ１１０１で展開された更新プログラムを用いてソフトウェアを更新した後の画像処理装置１に実装されることとなるソフトウェアの組み合わせが、Ｓ１１０６で記憶されたバージョン情報リストのデータリストに示されるソフトウェアの組み合わせに含まれない組み合わせである場合には（Ｓ１１０８／ＮＯ）、Ｓ１１０１で展開された更新プログラムを用いてソフトウェアを更新することなく、本処理を終了する。
【０１０８】
一方で、Ｓ１１０１で展開された更新プログラムを用いてソフトウェアを更新した後の画像処理装置１に実装されることとなるソフトウェアの組み合わせが、Ｓ１１０６で記憶されたバージョン情報リストのデータリストに示されるソフトウェアの組み合わせに含まれる組み合わせである場合には（Ｓ１１０８／ＹＥＳ）、更新実行判定部２０４は、本体側更新実行部２０６に、ソフトウェア記憶部２０８に記憶されているソフトウェアのプログラムを、Ｓ１１０１で展開したソフトウェアの更新プログラムに書き換えさせて、ソフトウェアの更新を行い（Ｓ１１０９）、本処理を終了する。
【０１０９】
なお、Ｓ１１０１で展開された更新プログラムが操作表示部３４に実装されているソフトウェアの更新プログラムである場合、Ｓ１１０９の処理において、更新実行判定部２０４は、展開した更新プログラムを外部端末更新制御部２０７に転送し、外部端末更新制御部２０７に外部端末（ここでは、操作表示部３４）に実装されているソフトウェアの更新を実行させ、本処理を終了する。
【０１１０】
なお、Ｓ１３０６の処理において、更新プログラムに含まれているバージョン情報リストが、画像処理装置１に記憶されているバージョン情報リストよりも新しい場合にのみ、そのバージョン情報リストを不揮発性記憶媒体に記憶させる構成であってもよい。
【０１１１】
また、Ｓ１１０９でソフトウェアの更新を行う際に、更新可能なソフトウェアと判定されたソフトウェアおよびそのバージョンに関する情報を操作表示部３４に表示させる構成であってもよい。
【０１１２】
図１３は、本実施形態に係るバージョン情報記憶部２０５におけるバージョン情報リストを更新する処理の流れである。Ｓ１１０５の処理において、更新実行確認画面において、「はい」のボタンが操作されると、プログラムの更新を開始する信号が出力されると、更新実行判定部２０４は、更新プログラムに含まれているバージョン情報リストのバージョンと、バージョン情報記憶部２０５に記憶されているバージョン情報リストのバージョンとを比較する（Ｓ１３０１）。
【０１１３】
更新実行判定部２０４は、バージョン情報記憶部２０５に記憶されているバージョン情報リストのバージョンよりも更新プログラムに含まれているバージョン情報リストのバージョンが新しいものであると判定した場合（Ｓ１３０２／ＹＥＳ）、更新プログラムに含まれるバージョン情報リストをバージョン情報記憶部２０５に送信する。
【０１１４】
更新実行判定部２０４からバージョン情報記憶部更新プログラムに含まれているバージョン情報リストを受信すると、バージョン情報記憶部２０５は受信したバージョン情報リストを記憶し（Ｓ１３０３）、本処理を終了する。
【０１１５】
一方で、更新実行判定部２０４は、バージョン情報記憶部２０５に記憶されているバージョン情報リストのバージョンよりも更新プログラムに含まれているバージョン情報リストのバージョンが新しいものではないと判定した場合（Ｓ１３０２／ＮＯ）、更新プログラムに含まれるバージョン情報リストをバージョン情報記憶部２０５に送信することなく本処理を終了する。
【０１１６】
このように、本実施形態においては、画像処理装置１には、常に最新のバージョン情報リストが記憶され、記憶されたバージョン情報リストに基づいて画像処理装置１のソフトウェアが更新されることとなる。
【０１１７】
したがって、ＳＤＫのバージョンアップによりＡＰＩの仕様やＡＰＩのアクセス権限に変更が生じた場合に、画像処理装置１がネットワークに接続されていない環境下であっても、適切なバージョンのソフトウェアを画像処理装置１にインストールすることができる。
【０１１８】
ゆえに、ＡＰＩが違うために画像処理装置１に実装されているソフトウェア間の情報のやりとりができないといった事態が生じることなく、画像処理装置１の動作保証性を高めてソフトウェアの更新を行うことができる。
【０１１９】
また、図９のバージョン情報リストの代わりに、図１４に示すようなＡＰＩ利用可能リストを更新プログラムのデータファイルに含める構成であってもよい。また、ＡＰＩ利用可能リストは、図１５に示すような情報によって構成される。
【０１２０】
図１５は、本実施形態に係るＡＰＩ利用可能リストの情報構成を示す図である。図１５に示すように、画像処理装置１に実装されている機能ＸＸのソフトウェアの更新プログラムに含まれるＡＰＩ利用可能リストには、ＡＰＩ−α、ＡＰＩ−β、ＡＰＩ−γ、・・・、について、それぞれのＡＰＩが利用可能なソフトウェアのバージョンが記述された情報が含まれる。
【０１２１】
なお、本実施形態における「利用可能」とは、それぞれのソフトウェアがＡＰＩの仕様を解釈することができ、ＡＰＩのアクセス権限を有している状態であることを示す。
【０１２２】
図１５に示すＡＰＩ利用可能リストでは、組み合わせ情報として、ＡＰＩ−αを利用可能なソフトウェアのバージョンが「本体ＯＳ：１．００」、「コピー機能：１．００」、「ネットワーク機能：１．００」、・・・、ＡＰＩ−βを利用可能なソフトウェアのバージョンが「本体ＯＳ：１．００」、「プリント機能：１．００」、「ネットワーク機能：１．０１」、・・・、ＡＰＩ−γを利用可能なソフトウェアのバージョンが「コピー機能：１．００」、「プリント機能：１．００」、・・・、であることが記述されている。
【０１２３】
そして、図１６に示すように、画像処理装置１において、ＡＰＩ利用可能リストを記憶する利用条件情報記憶部２１０をバージョン情報記憶部２０５の代わりに設けることにより、ＡＰＩ利用可能リストに記述されている情報に基づいて画像処理装置１に実装された機能を実現するためのソフトウェアの更新を行う。
【０１２４】
図１７は、ＡＰＩ利用可能リストを使用した場合における画像処理装置１のソフトウェアを更新する処理の流れを示すフローチャートである。なお、図１１に示すフローチャートと同様の処理を行う処理ステップには同じ符号を付し、重複する説明を省略する。なお、図１７のフローチャートにおいては、バージョン情報リストの代わりにＡＰＩ利用可能リストが含まれるものとする。
【０１２５】
更新判定情報取得部２０３は、Ｓ１１０２で取得したＡＰＩ利用可能リストを利用条件情報記憶部２０９に記憶させる（Ｓ１７０１）。
【０１２６】
次に、更新実行判定部２０４は、利用条件情報記憶部２０９に記憶されているＡＰＩ利用可能リストを参照して、Ｓ１７０１の時点において画像処理装置１に実装されているソフトウェアの構成を示す情報を取得する（Ｓ１８０１）。
【０１２７】
次に更新実行判定部２０４は、ＡＰＩ利用可能リストに含まれるそれぞれのＡＰＩを利用可能なソフトウェアのバージョンに基づいて、Ｓ１７０１の時点において画像処理装置１に実装されているソフトウェアがそれぞれのＡＰＩを利用可能であるかを判定する（Ｓ１８０２）。
【０１２８】
図１９は、本実施形態に係る利用可能ＡＰＩ情報の情報構成を示す図である。例えば、コピー機能については、画像処理装置１に実装されているコピーＡｐｐ１０１ａのバージョンが１．０１であったとする。
【０１２９】
更新実行判定部２０４は、Ｓ１７０１の時点において画像処理装置１に実装されているソフトウェアのバージョンが、ＡＰＩ利用可能リストに含まれるそれぞれのＡＰＩを利用可能なソフトウェアのバージョンと同じ、もしくは、新しいバージョンであれば、Ｓ１７０１の時点において画像処理装置１に実装されているソフトウェアがそのＡＰＩを利用可能であると判定し、ＴＲＵＥをセットする。
【０１３０】
一方で、更新実行判定部２０４は、Ｓ１７０１の時点において画像処理装置１に実装されているソフトウェアのバージョンが、ＡＰＩ利用可能リストに含まれるそれぞれのＡＰＩを利用可能なソフトウェアのバージョンよりも古い場合、および、そのＡＰＩを使用できない場合には、Ｓ１７０１の時点において画像処理装置１に実装されているソフトウェアがそのＡＰＩを利用可能ではないと判定し、ＦＡＬＳＥをセットする。
【０１３１】
このような場合、更新実行判定部２０４は、ＡＰＩ−α、ＡＰＩ−γについては、ＴＲＵＥをセットする。一方で、コピーＡｐｐ１０１ａでは、ＡＰＩ−βを利用できないため、更新実行判定部２０４は、ＡＰＩ−βについては、ＦＡＬＳＥをセットする。
【０１３２】
更新実行判定部２０４は、Ｓ１８０２の判定処理を、Ｓ１７０１の時点において画像処理装置１に実装されている全てのソフトウェアについて実行する（Ｓ１８０３／ＹＥＳ）と、判定結果を利用可能ＡＰＩ情報として生成し（Ｓ１８０４）、生成した利用可能ＡＰＩ情報を利用条件情報記憶部２０９に転送する。したがって、更新実行判定部２０４は、利用可能ＡＰＩ情報を生成する利用可能情報生成部として機能する。
【０１３３】
このように、利用可能ＡＰＩ情報には、複数のソフトウェア間における情報のやりとりを行うＡＰＩと、このＡＰＩを利用して情報を取得可能なソフトウェアとの組み合わせが記述される。
【０１３４】
利用条件情報記憶部２０９は、更新実行判定部２０４から利用可能ＡＰＩ情報を受信して記憶する（Ｓ１８０５）。図１７に戻って説明を続ける。
【０１３５】
次に、更新実行判定部２０４は、利用条件情報記憶部２０９に記憶されている利用可能ＡＰＩ情報を参照して、その利用可能ＡＰＩ情報に含まれるＡＰＩを利用可能なソフトウェアの組み合わせと、Ｓ１１０１で展開された更新プログラムを用いてソフトウェアを更新した後の画像処理装置１に実装されることとなるソフトウェアとの組み合わせを比較する（Ｓ１７０３）。
【０１３６】
そして、更新実行判定部２０４は、Ｓ１１０１で展開された更新プログラムを用いてソフトウェアを更新した後の画像処理装置１に実装されることとなるソフトウェアの組み合わせが、その利用可能ＡＰＩ情報に含まれるＡＰＩを利用可能なソフトウェアの組み合わせに含まれない組み合わせである場合には（Ｓ１７０４／ＮＯ）、Ｓ１１０１で展開された更新プログラムを用いてソフトウェアを更新することなく、本処理を終了する。
【０１３７】
一方で、Ｓ１１０１で展開された更新プログラムを用いてソフトウェアを更新した後の画像処理装置１に実装されることとなるソフトウェアの組み合わせがその利用可能ＡＰＩ情報に含まれるＡＰＩを利用可能なソフトウェアの組み合わせに含まれる組み合わせである場合には（Ｓ１７０４／ＹＥＳ）、更新実行判定部２０４は、本体側更新実行部２０６に、ソフトウェア記憶部２０８に記憶されているソフトウェアのプログラムを、Ｓ１１０１で展開したソフトウェアの更新プログラムに書き換えさせて、ソフトウェアの更新を行い（Ｓ１７０５）、本処理を終了する。
【０１３８】
なお、Ｓ１１０１で展開された更新プログラムが操作表示部３４に実装されているソフトウェアの更新プログラムである場合、Ｓ１７０５の処理において、更新実行判定部２０４は、展開した更新プログラムを外部端末更新制御部２０７に転送し、外部端末更新制御部２０７に外部端末（ここでは、操作表示部３４）に実装されているソフトウェアの更新を実行させ、本処理を終了する。
【０１３９】
このように、本実施形態においては、画像処理装置１には、記憶された利用可能ＡＰＩ情報に基づいて、画像処理装置１のソフトウェアが更新されることとなる。ゆえに、ＡＰＩの仕様やＡＰＩのアクセス権限に変更が生じた場合に、画像処理装置１がネットワークに接続されていない環境下であっても、適切なバージョンのソフトウェアを画像処理装置１にインストールすることができる。
【０１４０】
本発明は、説明した実施形態に限定されるものではなく、その他の実施形態、追加、修正、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用や効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【０１４１】
１              ：画像処理装置
１０            ：本体
１１            ：ＰＣＩバス
１７            ：エンジン部
２１            ：ＣＰＵ
２２ａ          ：ＲＯＭ
２２ｂ          ：ＲＡＭ
２５            ：ＡＧＰバス
２６            ：ＡＳＩＣ
３０            ：バス
３１            ：ＩＥＥＥ１３９４インタフェース
３２            ：ＮＦＣインタフェース
３３            ：エンジン部
３４            ：操作表示部
３５            ：ＨＤＤ
９０            ：バス
１００          ：コントローラ
２０１          ：通信制御部
２０２          ：インストール制御部
２０３          ：更新判定情報取得部
２０４          ：更新実行判定部
２０５          ：バージョン情報記憶部
２０６          ：本体側更新実行部
２０７          ：外部端末更新制御部
２０８          ：ソフトウェア記憶部
２０９          ：利用条件情報記憶部
２１０          ：利用条件情報記憶部
２６５          ：内部Ｉ／Ｆ
３０１          ：アプリ層
３０２          ：サービス層
３０３          ：ＯＳ層
３４１          ：ＣＰＵ
３４２          ：ＲＡＭ
３４３          ：ＲＯＭ
３４４          ：ＨＤＤ
３４５          ：内部Ｉ／Ｆ
３４６          ：外部Ｉ／Ｆ
３４７          ：操作パネル
３４９          ：バス
【先行技術文献】
【特許文献】
【０１４２】
【特許文献１】特開２００９−８０５５０号公報
【図１】
2020086632.tif 000003
【図２】
2020086632.tif 000004
【図３】
2020086632.tif 000005
【図４】
2020086632.tif 000006
【図５】
2020086632.tif 000007
【図６】
2020086632.tif 000008
【図７】
2020086632.tif 000009
【図８】
2020086632.tif 000010
【図９】
2020086632.tif 000011
【図１０】
2020086632.tif 000012
【図１１】
2020086632.tif 000013
【図１２】
2020086632.tif 000014
【図１３】
2020086632.tif 000015
【図１４】
2020086632.tif 000016
【図１５】
2020086632.tif 000017
【図１６】
2020086632.tif 000018
【図１７】
2020086632.tif 000019
【図１８】
2020086632.tif 000020
【図１９】
2020086632.tif 000021