(57)【要約】      （修正有）【課題】２以上の情報処理装置にインストールされる各プログラムの整合性が確保される可能性を高める。【解決手段】情報処理装置は、当該情報処理装置にインストールされている第１のプログラムを更新する際に、当該第１のプログラムに関する情報をネットワークを介して取得する取得部と、前記取得部によって取得された情報に基づいて、前記第１のプログラムが他の情報処理装置にインストールされる第２のプログラムと連携するか否かを判定する判定部２３と、前記判定部２３によって、前記第１のプログラムが前記第２のプログラムと連携すると判定された場合に、前記第２のプログラムの更新を前記他の情報処理装置に要求する要求部２４とを有する。【選択図】図４
2020021286.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
当該情報処理装置にインストールされている第１のプログラムを更新する際に、当該第１のプログラムに関する情報をネットワークを介して取得する取得部と、
前記取得部によって取得された情報に基づいて、前記第１のプログラムが他の情報処理装置にインストールされる第２のプログラムと連携するか否かを判定する判定部と、
前記判定部によって、前記第１のプログラムが前記第２のプログラムと連携すると判定された場合に、前記第２のプログラムの更新を前記他の情報処理装置に要求する要求部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記要求部は、前記取得部によって取得された第１のプログラムについて、当該情報処理装置での更新に成功した場合に、前記第２のプログラムの更新を前記他の情報処理装置に要求する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
当該情報処理装置は、機器の操作部であり、
前記他の情報処理装置は、前記機器の本体部である、
ことを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
第１の情報処理装置と第２の情報処理装置とを含む情報処理システムであって、
前記第１の情報処理装置にインストールされている第１のプログラムを更新する際に、当該第１のプログラムに関する情報をネットワークを介して取得する取得部と、
前記取得部によって取得された情報に基づいて、前記第１のプログラムが前記第２の情報処理装置にインストールされる第２のプログラムと連携するか否かを判定する判定部と、
前記判定部によって、前記第１のプログラムが前記第２のプログラムと連携すると判定された場合に、前記第２のプログラムの更新を前記第２の情報処理装置に要求する要求部と、
を有することを特徴とする情報処理システム。
【請求項５】
情報処理装置が、
当該情報処理装置にインストールされている第１のプログラムを更新する際に、当該第１のプログラムに関する情報をネットワークを介して取得する取得手順と、
前記取得手順において取得された情報に基づいて、前記第１のプログラムが他の情報処理装置にインストールされる第２のプログラムと連携するか否かを判定する判定手順と、
前記判定手順において、前記第１のプログラムが前記第２のプログラムと連携すると判定された場合に、前記第２のプログラムの更新を前記他の情報処理装置に要求する要求手順と、
を実行することを特徴とする情報処理方法。
【請求項６】
情報処理装置に、
当該情報処理装置にインストールされている第１のプログラムを更新する際に、当該第１のプログラムに関する情報をネットワークを介して取得する取得手順と、
前記取得手順において取得された情報に基づいて、前記第１のプログラムが他の情報処理装置にインストールされる第２のプログラムと連携するか否かを判定する判定手順と、
前記判定手順において、前記第１のプログラムが前記第２のプログラムと連携すると判定された場合に、前記第２のプログラムの更新を前記他の情報処理装置に要求する要求手順と、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
機器に関する或るアプリケーションの中で、機器の操作部と本体部とのそれぞれにプログラムがインストールされ、各プログラムが連携することで機能が実現されるアプリケーションが有る。例えば、本体部にインストールされる一方のプログラム（以下「プログラムＡ」という。）は、本体部の制御を行い、操作部にインストールされる他方のプログラム（以下「プログラムＢ」という。）は、プログラムＡが本体部に実行させる処理に関連する画面の表示等を操作部に実行させる。
【０００３】
このような実質的に１つのアプリケーションを構成するプログラム群のうち、いずれかのプログラムについて変更が行われると、当該変更が他のプログラムにも影響し、当該他のプログラムについても変更が行われる場合が有る。すなわち、上記の例の場合、プログラムＡ又はプログラムＢの変更に応じて、他方のプログラムの変更が行われる場合が有る。
【０００４】
この場合、操作部と本体部とに対して、ほぼ同時に当該アプリケーションに関して変更後のプログラムへの更新が行われないと、操作部側のプログラムと本体部側のプログラムとの連係に異常が発生し、当該アプリケーションが正常に機能しない可能性が有る。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
そこで、操作部及び本体部のそれぞれが、操作部又は本体部にインストールされている各プログラムの変更の有無を、サーバ等に対して同じ周期で照会することが考えられる。
【０００６】
しかしながら、同じ周期で照会が行われたとしても、ネットワークの状況によっては、必ずしも双方が、変更の有無について正しい応答をサーバから得られるとは限らない。例えば、操作部及び本体部のうちの一方の通信は失敗してしまう可能性が有る。そうすると、操作部及び本体部の一方においてのみ更新が実行されてしまう可能性が有る。
【０００７】
なお、このような事情は、ネットワークを介して接続される２以上の情報処理装置に対して分散してプログラムがインストールされるアプリケーションについても同様である。
【０００８】
本発明は、上記の点に鑑みてなされたものであって、２以上の情報処理装置にインストールされる各プログラムの整合性が確保される可能性を高めることを目的とする。
【課題を解決するための手段】
【０００９】
そこで上記課題を解決するため、情報処理装置は、当該情報処理装置にインストールされている第１のプログラムを更新する際に、当該第１のプログラムに関する情報をネットワークを介して取得する取得部と、前記取得部によって取得された情報に基づいて、前記第１のプログラムが他の情報処理装置にインストールされる第２のプログラムと連携するか否かを判定する判定部と、前記判定部によって、前記第１のプログラムが前記第２のプログラムと連携すると判定された場合に、前記第２のプログラムの更新を前記他の情報処理装置に要求する要求部と、を有する。
【発明の効果】
【００１０】
２以上の情報処理装置にインストールされる各プログラムの整合性が確保される可能性を高めることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態におけるシステム構成例を示す図である。
【図２】本発明の実施の形態における操作部２０のハードウェア構成例を示す図である。
【図３】本発明の実施の形態における本体部１０のハードウェア構成例を示す図である。
【図４】本発明の実施の形態における操作部２０の機能構成例を示す図である。
【図５】本発明の実施の形態における本体部１０の機能構成例を示す図である。
【図６】本発明の実施の形態におけるアプリ管理サーバ３０の機能構成例を示す図である。
【図７】画像形成装置１及びアプリ管理サーバ３０が実行する処理手順の一例を説明するためのシーケンス図である。
【図８】操作部２０のインストール済み一覧の構成例を示す図である。
【図９】アプリ管理情報の構成例を示す図である。
【図１０】変更アプリ一覧情報の構成例を示す図である。
【図１１】更新アプリ選択画面の表示例を示す図である。
【図１２】操作部２０の更新後のインストール済み一覧の構成例を示す図である。
【図１３】本体部１０の更新後のインストール済み一覧の構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態におけるシステム構成例を示す図である。図１において、画像形成装置１は、操作部２０及び本体部１０等を含む。操作部２０と本体部１０とは、例えば、ＵＳＢ（Universal Serial Bus）、近距離無線通信、又はＬＡＮ（有線又は無線の別は問わない）等のネットワークを介して行われる。なお、画像形成装置１は、例えば、印刷、スキャン、コピー、及びＦＡＸ送受信等のうちの２以上の機能を一台の筐体によって実現する複合機である。但し、いずれか一つの機能を有する機器が画像形成装置１として用いられてもよい。また、プロジェクタ、電子黒板、テレビ会議システム、又はデジタルカメラ等の機器が、画像形成装置１の代わりに用いられてもよい。
【００１３】
本体部１０は、画像形成装置１に特有な機能（例えば、印刷、スキャン、コピー、及びＦＡＸ送受信等）を実現するためのハードウェアを備えた情報処理装置である。
【００１４】
操作部２０は、画像形成装置１の操作パネルとして機能する情報処理装置である。例えば、スマートフォン又はタブレット端末等が操作部２０として利用されてよい。
【００１５】
図１において、操作部２０及び本体部１０のそれぞれは、ＬＡＮ又はインターネット等のネットワークを介してアプリ管理サーバ３０に接続される。アプリ管理サーバ３０は、画像形成装置１に関する各種のアプリケーションに関するプログラムを記憶する１以上のコンピュータである。本実施の形態において、画像形成装置１に関するアプリケーションの中には、操作部２０及び本体部１０のそれぞれに１以上のプログラムがインストールされ、操作部２０側のプログラム及び本体部１０側のプログラムが連携することで機能が実現されるアプリケーションが有る。以下、斯かるアプリケーションを「ハイブリッドアプリ」という。すなわち、ハイブリッドアプリは、操作部２０及び本体部１０に分散してインストールされる２以上のプログラムの組み合わせによって構成されるアプリケーションをいう。ハイブリッドアプリは、組み合わせに係る各プログラムのバージョンが整合していないと、正常に動作しない可能性が有る。ハイブリッドアプリに対し、操作部２０又は本体部１０にのみインストールされるプログラムによって構成されるアプリケーションを「シングルアプリ」という。
【００１６】
図２は、本発明の実施の形態における操作部２０のハードウェア構成例を示す図である。図２において、操作部２０は、ＣＰＵ２０１、メモリ２０２、補助記憶装置２０３、タッチパネル２０４及びネットワークインタフェース２０５等を有する。
【００１７】
補助記憶装置２０３は、操作部２０にインストールされたプログラム等を記憶する。メモリ２０２は、プログラムの起動指示があった場合に、補助記憶装置２０３からプログラムを読み出して記憶する。ＣＰＵ２０１は、メモリ２０２に記憶されたプログラムに従って操作部２０に係る機能を実現する。
【００１８】
タッチパネル２０４は、入力機能と表示機能との双方を備えた電子部品であり、情報の表示や、ユーザからの入力の受け付け等を行う。タッチパネル２０４は、表示装置２１１及び入力装置２１２等を含む。
【００１９】
表示装置２１１は、液晶ディスプレイ等であり、タッチパネル２０４の表示機能を担う。入力装置２１２は、表示装置２１１に対する接触物の接触を検出するセンサを含む電子部品である。接触物の接触の検出方式は、静電方式、抵抗膜方式、又は光学方式等、公知の方式のいずれであってもよい。なお、接触物とは、タッチパネル２０４の接触面（表面）に接触する物体をいう。斯かる物体の一例として、ユーザの指や専用又は一般のペン等が挙げられる。
【００２０】
ネットワークインタフェース２０５は、ＬＡＮ等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。
【００２１】
図３は、本発明の実施の形態における本体部１０のハードウェア構成例を示す図である。図３において、本体部１０は、コントローラ１１、スキャナ１２、プリンタ１３、モデム１４、ネットワークインタフェース１５、及びＳＤカードスロット１６等のハードウェアを有する。
【００２２】
コントローラ１１は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、ＨＤＤ１１４、及びＮＶＲＡＭ１１５等を有する。ＲＯＭ１１３には、各種のプログラムやプログラムによって利用されるデータ等が記憶されている。ＲＡＭ１１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ１１１は、ＲＡＭ１１２にロードされたプログラムを処理することにより、各種の機能を実現する。ＨＤＤ１１４には、プログラムやプログラムが利用する各種のデータ等が記憶される。ＮＶＲＡＭ１１５には、各種の設定情報等が記憶される。
【００２３】
スキャナ１２は、原稿より画像データを読み取るためのハードウェア（画像読取手段）である。プリンタ１３は、印刷データを印刷用紙に印刷するためのハードウェア（印刷手段）である。モデム１４は、電話回線に接続するためのハードウェアであり、ＦＡＸ通信による画像データの送受信を実行するために用いられる。ネットワークインタフェース１５は、ＬＡＮ等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。ＳＤカードスロット１６は、ＳＤカード８０に記憶されたプログラムを読み取るために利用される。すなわち、本体部１０では、ＲＯＭ１１３に記憶されたプログラムだけでなく、ＳＤカード８０に記憶されたプログラムもＲＡＭ１１２にロードされ、実行されうる。なお、他の記録媒体（例えば、ＣＤ−ＲＯＭ又はＵＳＢ（Universal Serial Bus）メモリ等）によってＳＤカード８０が代替されてもよい。すなわち、ＳＤカード８０の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、ＳＤカードスロット１６は、記録媒体の種類に応じたハードウェアによって代替されればよい。
【００２４】
図４は、本発明の実施の形態における操作部２０の機能構成例を示す図である。図４において、操作部２０は、ＵＩ制御部２１、インストール部２２、アプリ種別判定部２３、インストール要求部２４及び起動部２５等を有する。これら各部は、操作部２０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。操作部２０は、また、操作部プログラム記憶部２６を有する。操作部プログラム記憶部２６は、例えば、補助記憶装置２０３等を用いて実現可能である。
【００２５】
ＵＩ制御部２１は、表示装置２１１への情報の表示や、入力装置２１２に対する入力に応じた処理の制御等を行う。ＵＩ制御部２１は、また、操作部２０にインストールされているプログラムを更新する際に、当該プログラムに関する情報を、ネットワークを介してアプリ管理サーバ３０から取得する。
【００２６】
インストール部２２は、操作部２０に対するプログラムのインストール、及び操作部２０にインストールされているプログラムの更新等を行う。操作部２０にインストールされたプログラム及び当該プログラムに関する情報は、操作部プログラム記憶部２６に記憶される。
【００２７】
アプリ種別判定部２３は、操作部２０にインストールされるプログラム又は更新対象のプログラムが、ハイブリッドアプリを構成するプログラムであるか否かを判定する。
【００２８】
インストール要求部２４は、操作部２０にインストールされるプログラム又は更新対象のプログラムがハイブリッドアプリを構成するプログラムである場合に、本体部１０に対して当該ハイブリッドアプリに係るプログラムの更新を要求する。
【００２９】
起動部２５は、操作部２０にインストールされているプログラムの起動を実行する。
【００３０】
図５は、本発明の実施の形態における本体部１０の機能構成例を示す図である。図５において、本体部１０は、インストール部１２１及び起動部１２２等を有する。これら各部は、本体部１０にインストールされた１以上のプログラムが、ＣＰＵ１１１に実行させる処理により実現される。本体部１０は、また、本体部プログラム記憶部１２３を利用する。本体部プログラム記憶部１２３は、例えば、ＨＤＤ１１４等を用いて実現可能である。
【００３１】
インストール部１２１は、本体部１０に対するプログラムのインストール、及び本体部１０にインストールされているプログラムの更新等を行う。本体部１０にインストールされたプログラム及び当該プログラムに関する情報は、本体部プログラム記憶部１２３に記憶される。
【００３２】
起動部１２２は、本体部１０にインストールされているプログラムの起動を実行する。
【００３３】
図６は、本発明の実施の形態におけるアプリ管理サーバ３０の機能構成例を示す図である。図６において、アプリ管理サーバ３０は、変更アプリ特定部３１及びプログラム提供部３２等を有する。これら各部は、アプリ管理サーバ３０にインストールされた１以上のプログラムが、アプリ管理サーバ３０のＣＰＵに実行させる処理により実現される。アプリ管理サーバ３０は、また、アプリ情報記憶部３３を利用する。アプリ情報記憶部３３は、例えば、アプリ管理サーバ３０が有する補助記憶装置又はアプリ管理サーバ３０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００３４】
変更アプリ特定部３１は、操作部２０のＵＩ制御部２１からの要求に応じ、画像形成装置１（操作部２０）にプログラムがインストールされているアプリケーションのうち、当該インストール後又は最後の更新後に変更が行われたアプリケーションを特定する。変更アプリ特定部３１は、特定したアプリケーションの一覧情報を操作部２０へ送信する。
【００３５】
プログラム提供部３２は、操作部２０又は本体部１０からのプログラムの取得要求に応じ、当該プログラムを操作部２０又は本体部１０へ送信する。
【００３６】
アプリ情報記憶部３３には、画像形成装置１に関するアプリケーションに関する情報や、当該アプリケーションを構成するプログラム等が記憶されている。
【００３７】
以下、画像形成装置１及びアプリ管理サーバ３０が実行する処理手順について説明する。図７は、画像形成装置１及びアプリ管理サーバ３０が実行する処理手順の一例を説明するためのシーケンス図である。
【００３８】
例えば、ユーザによる所定の操作に応じ、又は一定時間間隔等のタイミングの到来に応じて自動的に、操作部２０のＵＩ制御部２１は、操作部２０にインストールされているプログラムの一覧情報を操作部プログラム記憶部２６から取得し、当該一覧情報（以下、「インストール済み一覧」という。）をアプリ管理サーバ３０へ送信する（Ｓ１１０）。
【００３９】
図８は、操作部２０のインストール済み一覧の構成例を示す図である。図８に示されるように、インストール済み一覧は、操作部２０にインストールされているプログラムごとに、アプリＩＤ、アプリ名及びバージョン等を含む。アプリＩＤは、当該プログラムが属するアプリケーションに対して割り当てられている識別情報である。アプリ名は、当該プログラムが属するアプリケーションの名前である。アプリ名は、表示用の文字列として用いられる。バージョンは、当該プログラムが属するアプリケーションのバージョンである。バージョンは、アプリケーションについて変更（改版）が行われた場合に、値が変更される（所定値が加算される）。
【００４０】
アプリ管理サーバ３０の変更アプリ特定部３１は、当該インストール済み一覧を受信すると、当該インストール済み一覧と、アプリ情報記憶部３３に記憶されているアプリ管理情報とを照合（又は比較）することにより、変更されているアプリケーション（以下、「変更アプリ」という。）を特定する（Ｓ１２０）。
【００４１】
図９は、アプリ管理情報の構成例を示す図である。図９に示されるように、アプリ管理情報は、アプリ管理サーバ３０によって管理されている各アプリケーションのアプリＩＤ、アプリ名、バージョン、種別、説明、アイコンＵＲＬ、変更日時及び変更説明等を含む。
【００４２】
アプリＩＤ、アプリ名及びバージョンについては上記した通りである。但し、バージョンは、当該アプリケーションの最新の（変更後の）バージョンを示す。種別は、当該アプリケーションが、ハイブリッドアプリであるのかシングルアプリであるのかを示す情報である。すなわち、「ハイブリッド」は、ハイブリッドアプリであることを示し、「シングル」は、シングルアプリであることを示す。説明は、当該アプリケーションの機能の説明である。アイコンＵＲＬは、当該アプリケーションのアイコンの保存先のＵＲＬである。変更日時は、当該アプリケーションが最後に変更された日時を示す。変更説明は、当該アプリケーションの最後の変更における変更内容の説明を示す。
【００４３】
変更アプリ特定部３１は、受信したインストール済み一覧にアプリＩＤが含まれているアプリケーションの中で、バージョンが、インストール済み一覧の値よりもアプリ管理情報の値の方が新しい（大きい）アプリケーションを、変更アプリとして特定する。
【００４４】
続いて、変更アプリ特定部３１は、アプリ管理情報から変更アプリの情報（行）を抽出し、抽出された情報の一覧（以下、「変更アプリ一覧情報」という。）を、ＵＩ制御部に送信する（Ｓ１３０）。
【００４５】
図１０は、変更アプリ一覧情報の構成例を示す図である。図１０に示される変更アプリ一覧情報は、図９のアプリ管理情報から、アプリＩＤが、ａｐｐ１、ａｐｐ２、ａｐｐ３である行が抽出された情報である。
【００４６】
ＵＩ制御部２１は、当該変更アプリ一覧情報を受信すると、当該変更アプリ一覧情報に基づいて、更新アプリ選択画面を表示装置２１１に表示する。
【００４７】
図１１は、更新アプリ選択画面の表示例を示す図である。図１１において、更新アプリ選択画面５１０には、変更アプリ一覧情報に係る変更アプリごとに、アプリ名、説明及びバージョンが表示されている。また、更新アプリ選択画面５１０は、ボタン５１１及びボタン５１２ａ〜５１２ｃ等を含む。
【００４８】
ボタン５１１は、全ての変更アプリについての更新指示を受け付けるためのボタンである。ボタン５１２ａ〜５１２ｃ（以下、それぞれを区別しない場合「ボタン５１２」という。）は、各ボタンに対応する変更アプリの更新指示を受け付けるためのボタンである。
【００４９】
ボタン５１１又はいずれかのボタン５１２がユーザによって選択されることにより、変更アプリ一覧情報に係る１以上の変更アプリについての更新指示が入力されると、インストール部２２は、更新指示に係る変更アプリ（以下、「更新対象アプリ」という。）についてのプログラムの更新処理を実行する（Ｓ１４０）。すなわち、ボタン５１１が選択された場合、変更アプリ一覧情報に係る全ての変更アプリ（図１１の例では、３つの変更アプリ）が更新対象アプリとなる。一方、いずれかのボタン５１２が選択された場合、変更アプリ一覧情報に係る変更アプリのうち、選択されたボタン５１２に係る変更アプリが更新対象アプリとなる。
【００５０】
当該更新処理において、インストール部２２は、更新対象アプリのアプリＩＤを指定して、操作部２０用のプログラムの取得要求をアプリ管理サーバ３０に送信する（Ｓ１４１）。更新対象アプリが複数である場合、それぞれの更新対象アプリのアプリＩＤが指定される。アプリ管理サーバ３０のプログラム提供部３２は、当該アプリＩＤに関連付けられてアプリ情報記憶部３３に記憶されているプログラムのうち、操作部２０用のプログラムを取得し、取得したプログラムを操作部２０へ送信する（Ｓ１４２）。すなわち、アプリ情報記憶部３３には、アプリＩＤごとに、操作部２０用のプログラムと、本体部１０用のプログラムとが区別されて記憶されている。
【００５１】
インストール部２２は、アプリ管理サーバ３０から送信されたプログラムを受信すると、当該プログラムについて、更新のためのインストール処理を実行する（Ｓ１４３）。その結果、例えば、操作部プログラム記憶部２６におけるインストール済み一覧は、図８から図１２に示されるように更新される。
【００５２】
図１２は、操作部２０の更新後のインストール済み一覧の構成例を示す図である。図１２に示されるインストール済み一覧において、アプリＩＤが、ａｐｐ１、ａｐｐ２、ａｐｐ３であるアプリケーションのバージョンの値が、図１０に示したバージョンの値に更新されている。すなわち、図１２は、ａｐｐ１、ａｐｐ２、ａｐｐ３に係る３つのアプリケーションについて、操作部２０用のプログラムが更新された例を示す。
【００５３】
続いて、アプリ種別判定部２３は、各更新対象アプリについて、変更アプリ一覧情報（図１０）における種別の値が「ハイブリッド」であるか否かを判定する（Ｓ１４４）。すなわち、各更新対象アプリについて、操作部２０にインストールされるプログラムと、本体部１０にインストールされるプログラムとが連携することで機能が実現されるアプリケーションであるか否かが判定される。
【００５４】
全ての更新対象アプリの種別の値が「シングル」である場合、ステップＳ１５０以降は実行されずに、図７の処理手順は終了する。一方、いずれか１以上の更新対象アプリの種別の値が「ハイブリッド」である場合、当該更新対象アプリ（以下、「更新対象ハイブリッドアプリ」という。）について、ステップＳ１５０以降が実行される。
【００５５】
ステップＳ１５０において、インストール要求部２４は、更新対象ハイブリッドアプリのアプリＩＤを指定して、プログラムの更新要求を本体部１０へ送信する。本体部１０のインストール部１２１は、当該更新要求を受信すると、当該更新要求に指定されているアプリＩＤを指定して、本体部１０用のプログラムの取得要求をアプリ管理サーバ３０に送信する（Ｓ１６０）。アプリ管理サーバ３０のプログラム提供部３２は、当該アプリＩＤに関連付けられてアプリ情報記憶部３３に記憶されているプログラムのうち、本体部１０用のプログラムを取得し、取得したプログラムを本体部１０へ送信する（Ｓ１７０）。
【００５６】
インストール部１２１は、アプリ管理サーバ３０から送信されたプログラムを受信すると、当該プログラムについて、更新のためのインストール処理を実行する（Ｓ１８０）。その結果、例えば、本体部プログラム記憶部１２３におけるインストール済み一覧は、図１３に示されるように更新される。
【００５７】
図１３は、本体部１０の更新後のインストール済み一覧の構成例を示す図である。図１３に示されるインストール済み一覧において、アプリＩＤが、ａｐｐ２、ａｐｐ３であるアプリケーションのバージョンの値は、図１２に示した操作部２０のインストール済み一覧と一致している。すなわち、当該アプリケーションに関して操作部２０にインストールされるプログラムと本体部１０にインストールされるプログラムとで、バージョンが整合している。
【００５８】
なお、ステップＳ１５０以降は、更新対象ハイブリッドアプリのうち、操作部２０においてプログラムの更新に成功した更新対象ハイブリッドアプリについてのみ実行されるようにするとよい。すなわち、インストール要求部２４は、更新対象ハイブリッドアプリについて、操作部２０用のプログラムの更新に成功した場合に、ステップＳ１５０を実行するようにしてもよい。
【００５９】
また、いずれかの更新対象ハイブリッドアプリについて、ステップＳ１８０が正常に実行されなかった場合（すなわち、本体部１０のプログラムの更新に失敗した場合）、インストール部１２１は、操作部２０に対して、当該更新対象ハイブリッドアプリのアプリＩＤを指定して、更新の失敗を通知するようにしてもよい。操作部２０のインストール部２２は、当該通知に応じ、当該アプリＩＤに係るアプリケーションに対応する操作部２０用のプログラムを、元のバージョンに戻すようにしてもよい。元のバージョンのプログラムは、例えば、ステップＳ１４３の実行前に退避しておけばよい。そうすることで、ハイブリッドアプリについて、操作部２０と本体部１０との間でバージョンの不整合が発生する可能性を更に低下させることができる。
【００６０】
なお、本実施の形態において、操作部２０及び本体部１０が実行する処理手順は、逆であってもよい。すなわち、本体部１０が先にプログラムの更新を行い、種別が「ハイブリッド」であるアプリケーションについて、本体部１０が操作部２０に対してプログラムの更新を要求するようにしてもよい。
【００６１】
また、本実施の形態は、或る一つの機器の操作部２０及び本体部１０ではなく、サーバとクライアント等の２以上の情報処理装置において連携するプログラムに関して適用されてもよい。
【００６２】
上述したように、本実施の形態によれば、或るアプリケーションについて、操作部２０によってプログラムの更新が行われ、操作部２０によって当該アプリケーションの種別が「ハイブリッド」であると判定された場合に、操作部２０から本体部１０に対してプログラムの更新が要求される。本体部１０は、当該要求に応じて当該アプリケーションに関するプログラムの更新を実行する。すなわち、操作部２０と本体部１０とが個別にプログラムの更新を行うのではなく、操作部２０と本体部１０との連携によってプログラムの更新が行われる。したがって、２以上の情報処理装置（操作部２０及び本体部１０）にインストールされる各プログラムの整合性が確保される可能性を高めることができる。
【００６３】
なお、上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP（digital signal processor）、FPGA（field programmable gate array）や従来の回路モジュール等のデバイスを含むものとする。
【００６４】
なお、本実施の形態において、操作部２０は、情報処理装置及び第１の情報処理装置の一例である。本体部１０は、他の情報処理装置及び第２の情報処理装置の一例である。ＵＩ制御部２１は、取得部の一例である。アプリ種別判定部２３は、判定部の一例である。インストール要求部２４は、要求部の一例である。画像形成装置１は、情報処理システムの一例である。操作部２０用のプログラムは、第１のプログラムの一例である。本体部１０用のプログラムは、第２のプログラムの一例である。
【００６５】
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６６】
１            画像形成装置
１０          本体部
１１          コントローラ
１２          スキャナ
１３          プリンタ
１４          モデム
１５          ネットワークインタフェース
１６          ＳＤカードスロット
２０          操作部
２１          ＵＩ制御部
２２          インストール部
２３          アプリ種別判定部
２４          インストール要求部
２５          起動部
２６          操作部プログラム記憶部
３０          アプリ管理サーバ
３１          変更アプリ特定部
３２          プログラム提供部
３３          アプリ情報記憶部
８０          ＳＤカード
１２１        インストール部
１２２        起動部
１２３        本体部プログラム記憶部
２０１        ＣＰＵ
２０２        メモリ
２０３        補助記憶装置
２０４        タッチパネル
２０５        ネットワークインタフェース
２１１        表示装置
２１２        入力装置
【先行技術文献】
【特許文献】
【００６７】
【特許文献１】特開２０１７−５１６４３３号公報
【図１】
2020021286.tif 000003
【図２】
2020021286.tif 000004
【図３】
2020021286.tif 000005
【図４】
2020021286.tif 000006
【図５】
2020021286.tif 000007
【図６】
2020021286.tif 000008
【図７】
2020021286.tif 000009
【図８】
2020021286.tif 000010
【図９】
2020021286.tif 000011
【図１０】
2020021286.tif 000012
【図１１】
2020021286.tif 000013
【図１２】
2020021286.tif 000014
【図１３】
2020021286.tif 000015