(57)【要約】【課題】  それぞれ個別にオペレーティングシステムを備える複数のモジュールを情報処理システムにおいて、機能の追加又は更新のためのプログラムのインストールを容易に行えるようにする。【解決手段】  画像処理システム１において、操作部２０と本体１０とを、それぞれ個別にＯＳ２９，１９を備え、かつ相互に通信可能なモジュールとする。そして、画像処理システム１が備える機能を追加又は更新する場合、操作部２０が、上記追加又は更新のためのデータとして、本体１にインストールする第１のプログラムと、操作部２０にインストールする第２のプログラムと、その第１及び第２のプログラムのインストール条件を示す条件情報とを含むデータを受信する。【選択図】        図３
2014146098.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ個別にオペレーティングシステムを備え、相互に通信可能な第１及び第２のモジュールを備える情報処理システムであって、
当該情報処理システムの機能を追加又は更新する場合、前記第１及び第２のモジュールの一方が、前記第１のモジュールにインストールする第１のプログラムと、前記第２のモジュールにインストールする第２のプログラムと、該第１及び第２のプログラムのインストール条件を示す条件情報とが含まれる、前記追加又は更新のためのデータを受信し、
前記追加又は更新のためのデータを受信したモジュールが、前記条件情報に基づき、前記第１のモジュールに前記第１のプログラムをインストールし、前記第２のモジュールに前記第２のプログラムをインストールすることを特徴とする情報処理システム。
【請求項２】
請求項１に記載の情報処理システムであって、
当該情報処理システムの機能を追加又は更新する場合、前記第１及び第２のモジュールの一方が、該第１及び第２のモジュールの機能構成を示す構成情報を取得して所定の配信装置に送信し、前記追加又は更新のためのデータとして、該送信した構成情報の組み合わせに係る機能構成で利用可能なデータを受信することを特徴とする情報処理システム。
【請求項３】
請求項１又は２に記載の情報処理システムであって、
前記追加又は更新のためのデータを受信したモジュールが、該データ中に含まれる各プログラムにつき、自モジュールにインストールすべきプログラムか、他モジュールにインストールすべきプログラムかを判定し、自モジュールにインストールすべきプログラムであれば該プログラムを自モジュールにインストールし、他モジュールにインストールすべきプログラムであれば該プログラムを該他モジュールに送信してインストールさせることを特徴とする情報処理システム。
【請求項４】
請求項３に記載の情報処理システムであって、
前記条件情報には、前記追加又は更新のためのデータに含まれる各プログラムの依存関係を示す情報が含まれ、
前記追加又は更新のためのデータを受信したモジュールは、受信したデータに含まれる条件情報を参照して、インストールすべきプログラム間に依存関係がある場合に、依存されるプログラムのインストールを該プログラムに依存するプログラムのインストールよりも先に実行することを特徴とする情報処理システム。
【請求項５】
請求項３又は４に記載の情報処理システムであって、
前記条件情報には、前記追加又は更新のためのデータに含まれる各プログラムのインストール先モジュール及び該モジュールに要求する機能の条件を示す情報が含まれ、
前記追加又は更新のためのデータを受信したモジュールは、受信したデータに含まれる条件情報及びインストール先モジュールの構成情報を参照して、該条件情報により要求される条件が満たされない場合、その旨をユーザに通知することを特徴とする情報処理システム。
【請求項６】
それぞれ個別にオペレーティングシステムを備え、相互に通信可能な第１及び第２のモジュールを備える情報処理システムにおける情報処理方法であって、
当該情報処理システムの機能を追加又は更新する場合、前記第１及び第２のモジュールの一方が、前記第１のモジュールにインストールする第１のプログラムと、前記第２のモジュールにインストールする第２のプログラムと、該第１及び第２のプログラムのインストール条件を示す条件情報とが含まれる、前記追加又は更新のためのデータを受信し、
前記追加又は更新のためのデータを受信したモジュールが、前記条件情報に基づき、前記第１のモジュールに前記第１のプログラムをインストールし、前記第２のモジュールに前記第２のプログラムをインストールすることを特徴とする情報処理方法。
【請求項７】
コンピュータを、それぞれ個別にオペレーティングシステムを備え、相互に通信可能な第１及び第２のモジュールを備える情報処理システムにおける前記第１及び第２のモジュールの一方として機能させるためのプログラムであって、
前記コンピュータに、
当該情報処理システムの機能を追加又は更新する場合、前記第１のモジュールにインストールする第１のプログラムと、前記第２のモジュールにインストールする第２のプログラムと、該第１及び第２のプログラムのインストール条件を示す条件情報とが含まれる、前記追加又は更新のためのデータを受信する機能と
前記条件情報に基づき、前記第１のモジュールに前記第１のプログラムをインストールし、前記第２のモジュールに前記第２のプログラムをインストールする機能とを実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のモジュールを備えた情報処理システム、このような情報処理システムにおける情報処理方法、及びコンピュータに操作部を制御させるためのプログラムに関する。
【背景技術】
【０００２】
従来から、情報処理システムでは、複数のモジュールを設け、その各モジュールの動作をオペレーティングシステム（以下単に「ＯＳ」という）によって制御することが行われている。例えば、複合機（ＭＦＰ）のような画像処理システムでは、操作部と動作部（本体）とを設け、ＯＳの制御により、操作部で受け付けたユーザの操作に応じて動作部が各種処理を行ったり、動作部の状態を操作部上に表示させたりすることが行われている。
【０００３】
また、このような情報処理システムでは、外部サーバと通信する機能を設け、外部サーバからプログラムをダウンロードしてインストールすることにより、機能を追加又は更新することも知られている。この機能の追加又は更新には、プログラムを新規にインストールすることにより行うものと、既存のプログラムを更新することにより行うものがある。
このような機能の追加や更新に関連する技術としては、例えば特許文献１に記載のものが知られている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、情報処理システムの構成として、システム全体を１つのＯＳにより制御する構成の他、システムをいくつかのモジュールに分け、それらを個別のＯＳにより制御する構成も考えられる。例えば、情報処理システムの操作部と動作部をそれぞれモジュールと捉え、それらを個別のＯＳにより制御する等である。そして、このような構成を採る場合、各モジュールはそれぞれ独立した情報処理装置として動作しつつ、相互に通信を行い、必要な情報を交換して、連携した動作を行えるようにする。このような構成を採れば、システム内の一部のモジュールを他のモジュールに入れ替えることを容易に行うことができ、システム構成を柔軟に変更可能である点でメリットがある。
【０００５】
ところで、このように複数のモジュールが個別にＯＳを有する構成の情報処理システムにおいて、複数のモジュールを協働させるためのプログラムのインストールを行う場合、各モジュールに対してそれぞれそのモジュールが実行するプログラムをインストールすることになる。各モジュールのプログラムの管理は、そのモジュールを制御するＯＳが行うためである。
【０００６】
しかし、このようなモジュール毎のインストールを行う場合、各モジュールにプログラムを単にインストールするだけでは、正常に動作しない場合がある。各モジュールにおいてプログラムを動作させるに当たり、他のモジュールに対応するプログラムがインストールされていることが要求されたり、所定のハードウェアを備えていることが要求されたりする場合があるためである。
このような要求を満たさないプログラムを新規にインストールしても正常に動作しないことはもちろんであるが、今まで動作していたプログラムを、要求を満たさないプログラムにアップデートしてしまうと、今まで使えていた機能が使えなくなってしまう。
【０００７】
このような事態を避けるためには、各モジュールにプログラムをインストールする際に、情報処理システムの構成がそれらのプログラムの動作条件を満たすかを、インストールを行うユーザやサービススタッフ等が判断することも考えられる。また、各モジュールにどんな順序でインストールすればよいかを判断すべき場合もある。しかし、このような判断を人手で行うと、作業効率の低下につながる。
【０００８】
この発明は、上記の点に鑑みてなされたものであり、それぞれ個別にオペレーティングシステムを備える複数のモジュールを備える情報処理システムにおいて、機能の追加又は更新のためのプログラムのインストールを容易に行えるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
この発明は、それぞれ個別にオペレーティングシステムを備え、相互に通信可能な第１及び第２のモジュールを備える情報処理システムにおいて、その情報処理システムの機能を追加又は更新する場合、上記第１及び第２のモジュールの一方が、上記第１のモジュールにインストールする第１のプログラムと、上記第２のモジュールにインストールする第２のプログラムと、その第１及び第２のプログラムのインストール条件を示す条件情報とが含まれる、上記追加又は更新のためのデータを受信し、上記追加又は更新のためのデータを受信したモジュールが、上記条件情報に基づき、上記第１のモジュールに上記第１のプログラムをインストールし、上記第２のモジュールに上記第２のプログラムをインストールするようにしたものである。
【発明の効果】
【００１０】
上記構成によれば、それぞれ個別にオペレーティングシステムを備える複数のモジュールを備える情報処理システムにおいて、機能の追加又は更新のためのプログラムのインストールを容易に行えるようにすることができる。
【図面の簡単な説明】
【００１１】
【図１】この発明の情報処理システムの一実施形態である画像処理システムの利用環境を示す図である。
【図２】図１の画像処理システムのハードウェア構成例を示すブロック図である。
【図３】図２に示した本体１０及び操作部２０の機能構成を示す図である。
【図４】図１に示した画像処理システム１における機能の追加または更新を行うためのパッケージファイルの一例を示す説明図である。
【図５】図１に示した画像処理システムにおいて機能の追加又は更新を行う際の動作シーケンスの一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、この発明を実施するための形態について、図１〜図５を参照して具体的に説明する。
図１は、この発明の情報処理システムの一実施形態である画像処理システムの利用環境を示す図である。
【００１３】
画像処理システム１は、通信機能を有するＭＦＰ（複合機：Multifunction Peripheral）であり、例えばプリンタ機能，スキャナ機能，コピー機能，ＦＡＸ（ファクシミリ）通信機能を備えている。これらの機能に関わる処理は、ユーザが画像形成装置１を直接操作することによって実行することができる。また、図示しないクライアントＰＣ（パーソナルコンピュータ）等の外部装置から受信した指示に従って実行することもできる。
【００１４】
また、画像処理システム１は、画像処理システム１の機能を追加又は更新するためのデータを配信する所定の配信装置である配信サーバ２と、ネットワーク３を介して通信可能である。なお、配信サーバ２が配信するデータには、新規プログラム、アップデート用プログラム、マニュアル等の閲覧用データ等がある。プログラムも、ＯＳ（オペレーティングシステム）、ファームウェア、アプリケーションなど、種々のものが考えられる。
【００１５】
図２は、図１の画像処理システム１のハードウェア構成例を示すブロック図である。
この画像処理システム１は、図２に示すように、ユーザから指示の入力を受け付けるモジュールである操作部２０と、操作部２０が受け付けた指示に基づき動作する動作部のモジュールである本体１０とを備え、それらを通信路３０により相互に通信可能に接続した構成である。
【００１６】
なお、本体１０は、操作部２０が受け付けた指示に応じた動作だけでなく、上述のように外部装置から受信した指示に応じた動作も行うことができる。また、通信路３０は、例えばＵＳＢ（Universal Serial Bus）規格のものを用いることができる。しかし、有線、無線を問わず任意の規格のものでよい。１対１通信であっても、ネットワーク通信であってもよい。例えば、ＵＳＢの他、シリアル、有線または無線ＬＡＮ（ローカルエリアネットワーク）、ブルートゥース（Bluetooth：登録商標）、ＩｒＤＡ（Infrared Data Association）等を用いることが考えられる。
【００１７】
本体１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＨＤＤ１４（ハードディスクドライブ）、通信Ｉ／Ｆ（インタフェース）１５、接続Ｉ／Ｆ１６、及びエンジン部１７を備え、それらをシステムバス１８により接続した構成としている。そして、ＣＰＵ１１が、ＲＡＭ１３をワークエリアとしてＲＯＭ１２又はＨＤＤ１４に記憶されたプログラムを実行することにより、本体１０全体を制御し、後述する操作部２０との通信制御や機能の追加及び更新に関する制御をはじめとする各種機能を実現する。
【００１８】
ＨＤＤ１４は、不揮発性記憶媒体（記憶手段）であり、ＣＰＵ１１が実行する各種プログラムや、本体１０が備えるハードウェア及びソフトウェアの構成（機能構成）を示す本体構成情報（動作部構成情報）を含む各種データを格納（記憶）している。
通信Ｉ／Ｆ１５は、ネットワーク３を介して図示しないクライアントＰＣ等の外部装置と通信するためのインタフェースである。
【００１９】
接続Ｉ／Ｆ１６は、通信路３０を介して操作部２０と通信するためのインタフェースである。ここではＵＳＢ規格のインタフェースとしている。
なお、通信Ｉ／Ｆ１５及び接続Ｉ／Ｆ１６は、有線、無線を問わず任意の規格のものを採用可能であり、一つのＩ／Ｆに通信Ｉ／Ｆ１５と接続Ｉ／Ｆ１６を兼ねさせるようにしてもよい。逆に、本体１０が通信に用いるＩ／Ｆを３以上備えてもよい。
【００２０】
エンジン部１７は、プリンタ機能、スキャナ機能、コピー機能、ＦＡＸ機能を実現させるための、汎用的な情報処理及び通信以外の処理を行うハードウェアである。例えば、原稿の画像をスキャンして読み取るスキャナ（画像読取部）、用紙等のシート材への印刷を行うプロッタ（画像形成部）、ファクシミリ通信を行う通信部などを備えている。更に、印刷済みシート材を仕分けるフィニッシャや、原稿を自動給送するＡＤＦ（自動原稿給送装置）のような特定のオプションを備えることもできる。
【００２１】
操作部２０は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、フラッシュメモリ２４、通信Ｉ／Ｆ２５、接続Ｉ／Ｆ２６、及び操作パネル２７を備え、それらをシステムバス２８により接続した構成としている。そして、ＣＰＵ２１が、ＲＡＭ２３をワークエリアとしてＲＯＭ２２又はフラッシュメモリ２４に記憶されたプログラムを実行することにより、操作部２０全体を制御し、本体１０との通信や機能の追加及び更新に関する制御をはじめとする各種機能を実現する。
【００２２】
フラッシュメモリ２４は、不揮発性記憶媒体（記憶手段）であり、ＣＰＵ２１が実行する各種プログラムや、操作部２０が備えるハードウェア及びソフトウェアの構成を示す本体構成情報を含む各種データを格納（記憶）している。
通信Ｉ／Ｆ２５は、ネットワーク３を介して配信サーバ２等の外部装置と通信するためのインタフェースである。
【００２３】
接続Ｉ／Ｆ２６は、通信路３０を介して本体１０と通信するためのインタフェースである。ここではＵＳＢ規格のインタフェースとしている。
なお、通信Ｉ／Ｆ２５及び接続Ｉ／Ｆ２６は、有線、無線を問わず任意の規格のものを採用可能であり、一つのＩ／Ｆに通信Ｉ／Ｆ２５と接続Ｉ／Ｆ２６を兼ねさせるようにしてもよい。逆に、操作部２０が通信に用いるＩ／Ｆを３以上備えてもよい。
【００２４】
操作パネル２７は、ユーザからの各種動作の実行や設定等の指示操作を受け付ける操作部と、画像処理システム１の動作状況や設定状態を表示する表示部とを備える操作表示手段である。この操作パネルは、例えばタッチパネルを積層した液晶表示装置（ＬＣＤ）により構成することができる。さらに、これに加えて又はこれに代えて、ハードウェアキー等の操作部やランプ等の表示部を設けることもできる。
【００２５】
以上の画像処理システム１において、本体１０及び操作部２０は、それぞれ個別にＯＳを搭載し、独立して動作することができる。そして、本体１０と操作部２０との間の通信は、１装置内のプロセス間通信ではなく、異なる装置間の通信として行う。
操作部２０が受け付けたユーザからの指示内容を本体１０へ伝達する動作や、操作部２０に表示させる情報を本体１０から操作部２０へ伝達する動作がこれに該当する。操作部２０に表示させる情報には、例えば本体１０における動作の実行状況、本体１０においてなされている設定の内容などが挙げられる。
【００２６】
また、配信サーバ２は、ハードウェアとしては、ＣＰＵ、ＲＯＭ、ＲＡＭ、通信Ｉ／Ｆ等を備えた公知のコンピュータでよい。
この実施形態の一つの特徴は、画像処理システム１が、本体１０と操作部２０の双方にプログラムの追加や変更が必要な、機能の追加または更新を行う際の動作である。以下、この点について説明する。
【００２７】
まず、機能の追加または更新に関連する画像処理システム１の機能の構成について説明する。
図３は、図２に示した本体１０及び操作部２０の機能構成を示す図である。なお、図３において、機能の追加または更新に関連しない部分の図示は省略するか簡単にしている。
【００２８】
図３に示すように、本体１０は、接続Ｉ／Ｆ１６、スキャナ１７ａ、プロッタ１７ｂ、ＯＳ１９、通信制御部１０１、印刷制御部１０２、送信制御部１０３、アップデート処理部１０４、及び構成情報管理部１０５を備える。
このうち接続Ｉ／Ｆ１６は、図２において説明した通りであり、操作部２０との間でデータを送受信する機能を備える。
【００２９】
スキャナ１７ａ及びプロッタ１７ｂは、図２に示したエンジン部１７の構成をより具体的に示したものである。
ＯＳ１９は、本体１０の制御に用いる基本ソフトウェアである。公知の適当なＯＳを採用すればよい。また、操作部２０側のＯＳ２９とは、相互に通信可能であれば、同じＯＳである必要はない。
【００３０】
通信制御部１０１は、接続Ｉ／Ｆ１６及び、図３では図示を省略した通信Ｉ／Ｆ１５を介するデータ通信を制御する機能を備える。そして、これらのＩ／Ｆを介して受信したデータを、指定された宛先あるいはコマンドの種類等に応じて、印刷制御部１０２、送信制御部１０３、アップデート処理部１０４、構成情報管理部１０５といった各種処理部のうち、該当のデータを処理する処理部に渡す。また、これらの処理部から外部へ送信すべきデータを、その送信に用いるＩ／Ｆに渡す。さらに、処理部間でのデータの受け渡しも担う。
【００３１】
印刷制御部１０２は、スキャナ１７ａ及びプロッタ１７ｂ等のエンジン部１７を制御し、印刷ジョブなど、エンジン部１７に実行させるジョブの管理を行う。
送信制御部１０３は、ＦＡＸ送信、電子メール送信、フォルダ送信（ＬＡＮ内の外部装置へのデータ転送）等の送信ジョブの管理を行う。
アップデート処理部１０４は、本体１０の機能の追加または更新を行うため、ＲＯＭ１２あるいはＨＤＤ１４に記憶されているプログラム等のデータの追加または更新を行う。また後述のように、この追加または更新は、操作部２０から送信されるデータを用いて行う。
【００３２】
構成情報管理部１０５は、本体１０が備えるハードウェア及びソフトウェアの構成を示す本体構成情報の管理を行う機能を備える。この構成情報管理部１０５は、起動時に本体１０が備えるハードウェア及びソフトウェアの状態を調査（チェック）し、その結果に応じて本体構成情報を更新する。また、ソフトウェアを追加又は更新した場合、その追加又は更新に応じて本体構成情報を更新する。本体１０が備える機能の追加または更新に関連するソフトウェア以外のデータが追加又は更新された場合も、同様である。そして、以上の本体構成情報は、操作部２０からの要求に応じて操作部２０へ提供可能である。
【００３３】
一方、操作部２０は、通信Ｉ／Ｆ２５、接続Ｉ／Ｆ２６、操作パネル２７、ＯＳ２９、通信制御部２０１、アップデート処理部２０２、アップデート先切り替え処理部２０３、及び構成情報管理部２０４を備える。
このうち通信Ｉ／Ｆ２５は、図２において説明した通りであり、ネットワーク３を介して配信サーバ２等の外部装置との間でデータを送受信する機能を備える。
接続Ｉ／Ｆ２６も、図２において説明した通りであり、操作部２０との間でデータを送受信する機能を備える。
【００３４】
操作パネル２７も、図２において説明した通りであり、ユーザからの各種指示操作を受け付け、またユーザに各種情報を提示する機能を備える。
ＯＳ２９は、操作部２０の制御に用いる基本ソフトウェアである。公知の適当なＯＳを採用すればよい。また、本体１０側のＯＳ１９とは、相互に通信可能であれば、同じＯＳである必要はない。
【００３５】
通信制御部２０１は、通信Ｉ／Ｆ２５及び接続Ｉ／Ｆ２６を介するデータ通信を制御する機能を備える。そして、これらのＩ／Ｆを介して受信したデータを、指定された宛先あるいはコマンドの種類等に応じて、アップデート処理部２０２、アップデート先切り替え処理部２０３、構成情報管理部２０４といった各種処理部のうち、該当のデータを処理する処理部に渡す。また、これらの処理部から外部へ送信すべきデータを、その送信に用いるＩ／Ｆに渡す。さらに、処理部間でのデータの受け渡しも担う。
【００３６】
アップデート処理部２０２は、画像処理システム１における機能の追加または更新を行うためのデータであるパッケージファイルを、予めアクセス先として設定された配信サーバ２へアクセスしてその配信サーバ２からダウンロードする機能を備える。この追加又は更新には、操作部２０側の機能に関するものだけでなく、本体１０側の機能に関するものも含む。また、このダウンロードに先立って、配信サーバ２から利用可能な追加または更新のための機能のリストを取得する機能も備える。
【００３７】
アップデート先切り替え処理部２０３は、配信サーバ２からダウンロードした機能の追加または更新のためのパッケージファイル中に含まれる各データにつき、操作部２０で利用する（設定する）ものか本体１０で利用するものかを判定する機能を備える。また、操作部２０で利用するデータであった場合にそのデータを操作部２０で利用可能なように設定し、本体１０で利用するデータであった場合にそのデータを本体１０に送信して本体１０で利用可能なように設定させる機能も備える。
【００３８】
ここでいう設定とは、例えばデータがプログラムである場合には実行可能なようにインストールすることであり、データが文書ファイルや設定データである場合には必要に応じて参照可能なように保存することである。以下、データの設定を主にプログラムのインストールとする。
これらのアップデート処理部２０２及びアップデート先切り替え処理部２０３の機能については、本体１０側のアップデート処理部１０４の機能と合わせて、後に詳述する。
構成情報管理部２０４は、操作部２０が備えるハードウェア及びソフトウェアの構成を示す操作部構成情報の管理を行う機能を備える。管理の手法は、本体１０側の構成情報管理部１０５と同様である。
【００３９】
図４は、画像処理システム１における機能の追加または更新を行うためのパッケージファイルの一例を示す説明図である。
この例のパッケージファイル５００は、操作部用プログラムオブジェクトファイル５０１と、本体用プログラムオブジェクトファイル５０２と、インストール条件定義ファイル５０３とを含む。
【００４０】
操作部用プログラムオブジェクトファイル（以下単に「操作部用プログラム」という）５０１は、操作部２０にインストールすべきプログラム（第１のプログラム）である。
本体用プログラムオブジェクトファイル（以下単に「本体用プログラム」という）５０２は、本体１０にインストールすべきプログラム（第２のプログラム）である。
そして、操作部２０のＣＰＵ２１が操作部用プログラム５０１を実行し、本体１０のＣＰＵ１１が本体用プログラム５０２を実行することにより、操作部２０と本体１０とが協働して所定の機能を実現する。なお、操作部用プログラム５０１及び本体用プログラム５０２のそれぞれが、複数のプログラムモジュールを備えていてもよい。
【００４１】
インストール条件定義ファイル５０３は、操作部用プログラム５０１及び本体用プログラム５０２のインストール条件（設定条件）を示す条件情報に相当する。そのインストール条件とは、その各プログラム５０１，５０２をインストールする際に満たすべき条件のことである。
インストール条件定義ファイル５０３には、操作部用プログラム５０１と本体用プログラム５０２の依存関係を示す情報と、その各プログラム５０１，５０２のインストール先モジュールを示す情報と、プログラムの実行に必要な環境を示す情報とが含まれている。これらの情報がインストール条件を示す条件情報である。また、記載すべき情報がない項目については、記載を省略してもよい。
【００４２】
また、上記依存関係とは、ある（依存される）プログラムが所定のインストール先にインストールされていないと他の（依存する）プログラムが実行できないという関係を指す。よって、依存関係を示す情報には、依存関係の有無と、依存関係がある場合にどのプログラムがどのプログラムに依存するかを記載する。
上記プログラムの実行に必要な環境とは、インストール先モジュールが特定のハードウェアあるいはソフトウェアを備えていること、あるいは、インストール先モジュールが特定のハードウェアあるいはソフトウェアにアクセス可能であること、等である。すなわち、プログラムを実行するためにインストール先のモジュールが満たすべき条件を示す。
【００４３】
以上の画像処理システム１においては、当該システムが備える機能を追加又は更新する場合、操作部２０が、自己及び本体１０の機能構成を示す構成情報を取得して配信サーバ２に送信する。そして、上記追加又は更新のためのデータとして、その送信した構成情報の組み合わせに係る機能構成で利用可能なプログラムを含むパッケージファイルをダウンロード（受信）する。
次に、この追加又は更新の際の各部の動作について説明する。
【００４４】
図５は、図１に示した画像処理システム１において機能の追加又は更新を行う際の動作シーケンスの一例を示す図である。なお、図５に示すのは、ユーザの指示に応じて機能の追加または更新を行う場合の動作シーケンスである。
この動作において、ユーザ７００は、画像処理システム１が備える機能を追加又は更新したい場合、操作部２０の操作パネル２７を操作して、機能の追加又は更新の指示を行う（Ｓ１）。すると、この指示は不図示の制御手段により、アップデート処理部２０２に渡される。
【００４５】
アップデート処理部２０２は、この指示を受けると、まず構成情報管理部２０４から操作部構成情報を取得する（Ｓ２）。その具体例については後述する。
また、アップデート処理部２０２は、接続Ｉ／Ｆ２６，１６を介して本体１０側のアップデート処理部１０４に対し本体構成情報の送信を要求する。そして、これに応じてアップデート処理部１０４が構成情報管理部１０５から取得して送信してくる本体構成情報を取得する（Ｓ３）。この具体例についても後述する。
【００４６】
次に、アップデート処理部２０２は、ステップＳ２及びＳ３で取得した操作部構成情報及び本体構成情報を配信サーバ２に送信して、操作部２０及び本体１０で利用可能な機能の追加又は更新のリストを要求する（Ｓ４）。この要求に応じて、配信サーバ２から操作部２０及び本体１０で利用可能な機能の追加又は更新のリストが送信されるため、アップデート処理部２０２はそのリストを取得する（Ｓ５）。
【００４７】
各構成情報の具体例については後述するが、ステップＳ４の要求を受けた配信サーバ２は、受信した操作部構成情報及び本体構成情報に基づき、配信サーバ２から配信可能な機能の追加又は更新用プログラムから、操作部２０及び本体１０の機能構成の組み合わせで利用可能なものを検索する。
【００４８】
例えば、本体構成情報に基づき本体１０にまだインストールされていないことがわかるプログラムのうち、本体構成情報に基づき本体１０が実行に必要なハードウェア及びＯＳ等を備えているプログラムに係る機能は、本体１０に追加可能な候補であることがわかる。また、本体構成情報に基づき本体１０にインストール済みであることがわかるプログラムのうち、新しいバージョンを提供可能なプログラムに係る機能は、本体１０において更新可能な候補であることがわかる。もちろん、本体１０が新しいバージョンのプログラムの実行に必要なハードウェア及びＯＳ等を備えていることが条件である。
【００４９】
これらの判断は、操作部２０についても操作部構成情報を参照して同様に行うことができる。なお、プログラムではなく、追加又は更新に係るデータがマニュアル等の文書ファイルであっても同様に行うことができる。この場合、操作部２０や本体１０が文書ファイルの内容を参照するためのアプリケーションを備えているか否かも考慮する。
そして、予め用意されている（ＨＤＤ等に記憶されている）各パッケージファイル５００に関するインストール条件を参照し、利用可能（追加又は更新可能）な機能の候補のうち、操作部構成情報及び本体構成情報の組み合わせがインストール条件を満たすものを抽出する。そして、それらのパッケージファイル５００のリストを利用可能な機能の追加又は更新のリストとして操作部２０のアップデート処理部２０２へ返す。ファイルそのもののリストに代えて又はこれに加えて、機能やバージョンの説明を含めてもよい。
【００５０】
図５に戻り、アップデート処理部２０２は、ステップＳ５で利用可能な機能の追加又は更新のリストを取得すると、操作パネル２７にそのリストを一覧表示させ、ユーザに提示する（Ｓ６）。
そして、ユーザはその中から実際に追加又は更新を行う機能を選択し、その追加又は更新の指示を行う（Ｓ７）。すると、この指示は不図示の制御手段により、アップデート処理部２０２に渡される。
【００５１】
アップデート処理部２０２は、その指示を受けると、配信サーバ２に対し、選択された機能と対応する追加又は更新用のパッケージファイル５００（対象パッケージ）の送信を要求し、配信サーバ２からそのパッケージファイルをダウンロードして取得する（Ｓ８，Ｓ９）。なお、その取得の時点では、ダウンロードしたパッケージファイル内の各プログラムを利用するのが本体１０であるのか操作部２０であるのかも気にする必要はない。また、選択された機能が複数の場合には、対応する複数のパッケージファイルをダウンロードして取得する。
【００５２】
ステップＳ８，Ｓ９の後、アップデート処理部２０２は、ダウンロードしたパッケージファイルをアップデート先切り替え処理部２０３に渡して、このパッケージファイル内の各データの設定を実行させる（Ｓ１０）。
アップデート先切り替え処理部２０３は、アップデート処理部２０２から渡されたパッケージファイルをＲＡＭ２３上に展開して、各プログラムとインストール条件定義ファイル５０３中の条件情報を抽出する（Ｓ１１）。
【００５３】
そして、抽出した条件情報をチェックし、インストール条件の判定を行う（Ｓ１２）。つまり、その条件情報により要求される条件が満たされているか否かを判定する。
まず、抽出した各プログラムにつき、そのプログラムが操作部２０にインストールすべきプログラムか本体１０にインストールすべきプログラムかを判定する。更に、その各プログラム間に依存関係があるか否かを判定する。
また、条件情報には、プログラムの実行に必要な環境に関する情報も含まれるが、これは配信サーバ２で確認済みであるため、要求される条件は満たしていると考えられる。しかし、ステップＳ１２でも再確認するとよい。
【００５４】
そして、アップデート先切り替え処理部２０３は、ステップＳ１２の判定結果に基づき、抽出したプログラムが操作部２０にインストールするべきものであれば、そのプログラムを操作部２０で利用可能なようにインストールする（Ｓ１３）。
また、抽出したプログラムが本体１０にインストールすべきプログラムであれば、そのプログラムを接続Ｉ／Ｆ２６，１６を介して本体１０側のアップデート処理部１０４に送信し、アップデート処理部１０４に対し、これを本体１０にインストールするよう要求する（Ｓ１４）。そして、この要求を受けたアップデート処理部１０４が、そのプログラムを本体１０で利用可能なようにインストールする（Ｓ１５）。
以上Ｓ１３又はＳ１４及びＳ１５の動作を、ステップＳ１１の展開で抽出した全てのプログラムについてそれぞれ実行する。
【００５５】
なお、抽出した各プログラム間に依存関係がない場合には、インストールは任意の順序で行ってよい。しかし、抽出した各プログラム間に依存関係がある場合には、まず依存されるプログラムのインストールを行った後で、そのプログラムに依存するプログラムのインストールを行う。この場合において、操作部２０と本体１０のどちらに先にプログラムをインストールするかは、依存関係に従って決まる。
【００５６】
また、ステップＳ１１で抽出したデータにプログラム以外のデータがあった場合、インストール先のモジュールがそのデータを利用可能なように適宜保存すればよい。例えば、そのデータが文書ファイルや設定データである場合には、必要に応じて参照可能なように保存すればよい。
以上のステップＳ１１乃至Ｓ１５を、ステップＳ９でダウンロードした各パッケージファイルについてそれぞれ実行完了すると、図５の動作は終了する。
【００５７】
なお、図５では図示を省略したが、抽出した各プログラムのインストール先モジュールに要求される機能の条件が満たされない場合、アップデート先切り替え処理部２０３は、その旨を示すエラー情報をアップデート処理部２０２へ通知する。また、プログラムのインストールを中止する。エラー情報の通知を受けたアップデート処理部２０２は、そのエラー情報を操作パネル２７に表示させ、ユーザに提示する。但し、この処理の実行は、データの受信中、つまり利用可能な機能の追加又は更新のリストを取得してからパッケージファイルをインストール開始するまでに機能構成が変化するようなケースに対する対応するものである。
【００５８】
また、アップデート処理部２０２は、利用可能な機能の追加又は更新のリストの自動送信の設定がなされていた場合、定期的に自動でステップＳ２からの動作を開始することもできる。また、その動作を追加又は更新すべき機能が予め選択されていた場合にも開始することができる。その場合、ステップＳ４で配信サーバ２に対して、選択された機能と対応する追加又は更新用パッケージ（対象パッケージ）の送信を要求する動作も行う。それによって、配信サーバ２にそのパッケージファイルがあった場合、そのパッケージファイルが送信されるため、それをアップデート処理部２０２がダウンロードすることができる（Ｓ９）。
【００５９】
画像処理システム１においては、以上の動作を実行することにより、機能を追加又は更新する場合、操作部２０が、自己及び本体１０の機能構成を示す構成情報を取得して配信サーバ２に送信する。そして、上記追加又は更新のためのデータとして、その送信した構成情報の組み合わせに係る機能構成で利用可能なパッケージファイルをダウンロードする。
そのため、配信サーバ２が、直接アクセスする操作部２０だけでなく、操作部２０と協働するモジュールである本体１０の機能構成も参照して、画像処理システム１において利用可能なパッケージファイルを選択することができる。従って、ダウンロードした後で、操作部２０及び本体１０がインストール条件を満たさないためインストールできないといった事態が起こることがない。
【００６０】
また、パッケージファイルには各プログラムにインストール条件を示す条件情報が含まれているため、インストールの実行前に、インストール条件を満たすか否かを再度確認することができる。
これらから、サービスマンが画像処理システム１全体の構成を考慮してインストール可能なプログラムを選択する必要がなくなり、その分だけ作業負担が減る。このため、機能の追加又は更新のためのプログラムのインストールの作業効率を向上させることができる。
【００６１】
また、情報処理システム１においては、上記パッケージファイルをダウンロードした操作部２０が、そのパッケージファイル中に含まれる各プログラムにつき、自身にインストールすべきプログラムか、本体１０にインストールすべきプログラムかを判定する。そして、自身にインストールすべきプログラムであればそれを自身に設定し、本体１０にインストールすべきプログラムであればそれを本体１０に送信してインストールさせる。こうすれば、操作部２０が本体１０側で利用するプログラムのダウンロードを担当し、自身で利用するプログラムと本体１０で利用するプログラムが混在する状態でダウンロードしても、これらを選別して適切なモジュールにインストールすることができる。
【００６２】
また、上記パッケージファイルをダウンロードした操作部２０が、そのパッケージファイルに含まれる条件情報（各データの依存関係を示す情報を含む）を参照すれば、次の動作を行える。つまり、設定すべきプログラム間に依存関係がある場合に、依存されるプログラムのインストールをそのプログラムに依存するデータのインストールよりも先に実行する。そうすれば、上記パッケージファイルに含まれる各プログラム間に依存関係があっても、その各プログラムの設定を確実に行うことができる。
【００６３】
また、操作部２０が、上記パッケージファイルに含まれる条件情報（各プログラムのインストール先モジュール及びそのモジュールに要求する機能を示す情報を含む）及びインストール先モジュールの構成情報を参照すれば、その条件情報により要求される条件が満たされない場合、その旨をユーザに通知することができる。そうすれば、上記要求される条件が満たされず、プログラムのインストールが中止になった場合、ユーザはその理由を知ることができる。
【００６４】
ここで、表１に、操作部２０側の構成情報管理部２０４が管理する操作部構成情報の一例を示す。
この操作部構成情報には、操作部２０のモデル名（パネルの種別）、バージョン（ファームウェアバージョン）、及び搭載ハードウェア（操作部２０が持つハードウェアの一覧）、搭載機能（操作部２０が持つ機能の一覧）の各情報が含まれている。更に、解像度（操作パネル２７の解像度）及び搭載プログラム（操作部２０が持つプログラムの一覧）の各情報も含まれている。
【００６５】
【表１】
2014146098.tif 000003
【００６６】
表２には、本体１０側の構成情報管理部１０５が管理する本体構成情報の一例を示す。
この本体構成情報には、本体１０のモデル名（画像形成装置の種別）及びバージョン（ファームウェアバージョン）の各情報が含まれている。更に、画像形成機能（本体１０に搭載されている画像形成機能）、搭載ＲＡＭ（本体１０に搭載されているＲＡＭ１３の容量）、及び搭載プログラム（本体１０が持つプログラムの一覧）が含まれている。
【００６７】
【表２】
2014146098.tif 000004
【００６８】
次に、図４のインストール条件定義ファイル５０３の例を２つ示す。
インストール条件定義ファイル５０３には、パッケージファイル５００に含まれる追加又は更新のためのプログラム毎にインストール先モジュールとインストール条件が記述される。インストール先モジュールは、操作部２０もしくは本体１０のいずれかである。
インストール条件としては、「○○が△△のハードウェアを備えていること」「○○に△△のソフトウェアがインストールされていること」といったものが挙げられる。これらのうち後者については、プログラム同士の依存関係を示す情報である。
【００６９】
この場合において、△△が同じパッケージファイル５００内のプログラムであれば、同じパッケージファイルに含まれるプログラム間に依存関係があることになる。表３の例では、「本体にOCR_scan.moduleがインストールされていること」がこれに該当する。しかし、△△は、別のパッケージファイルに含まれるプログラムでもよいし、配信サーバ２が配信するものでないプログラムであってもよい。
【００７０】
【表３】
2014146098.tif 000005
【００７１】
表３のインストール条件定義ファイル５０３は、１つめの例であり、タッチ操作で編集可能なスキャンアプリに関するインストール条件を示している。
このファイルには、操作部２０がインストール先モジュールであるプログラム「pre_edit_scan.app」のインストール条件としては、次の条件が記述されている。つまり、操作部２０がマルチタッチジェスチャー操作可能であること、及び操作部２０の解像度がＷＶＧＡ（幅８００×高さ４８０ピクセルの解像度）以上であることが記述されている。
【００７２】
依存関係としては、プログラム「pre_edit_scan.app」は、本体１０がインストール先モジュールであるプログラム「OCR_scan.module」に依存していることが記述されている。
プログラム「OCR_scan.module」のインストール条件としては、本体１０にスキャナがあること、本体１０の搭載ＲＡＭが１ＧＢ以上であることが記述されている。
【００７３】
表４は、２つ目の例であり、ＱＲコード（登録商標）マーキングコピーアプリに関するインストール条件を示している。この表の記載事項に関する個別の説明は省略する。
【００７４】
【表４】
2014146098.tif 000006
【００７５】
配信サーバ２は、操作部２０から送信される表１及び表２に示したような各構成情報に基づき、自身が提供可能な追加又は更新用プログラムから、操作部２０及び本体１０の機能構成の組み合わせで利用可能な各プログラムを抽出することができる。
配信サーバ２には、例えばスキャナアプリ等の機能を実現させための各モジュール（例えば操作部２０及び本体１０）の機能構成の組み合わせで利用可能な各プログラムについて付加情報及びインストール条件情報を登録しておく。
【００７６】
付加情報としては、該当プログラムの利用を想定している機種のモデル名、該当プログラムを利用するために必要なファームウェアやプラットフォームのバージョン、該当プログラムの利用に必要なハードウェアやソフトウェア等の各情報がある。
インストール条件情報は、表３及び表４に示したような、スキャナアプリ等の機能を実現させる各モジュールに該当の各プログラムをインストールするためのインストール条件を示す情報である。
【００７７】
よって、配信サーバ２は、登録されている付加情報及びインストール条件情報と送信された操作部構成情報及び本体構成情報とを対比すればよい。このことにより、操作部２０及び本体１０の機能構成の組み合わせがどのプログラムについてインストール条件を満たしているか否か、判断できる。
【００７８】
一部のプログラムについては、カメラ、Bluetooth、ＧＰＳのような特定のハードウェアが動作に必要な場合もある。このようなハードウェアについては、しばしばオプションで搭載されるものであり、モデル名での識別が難しいため、ハードウェアの構成情報を参照することが望ましい。
また、ウェブブラウザやＰＤＦ印刷機能など、特定のソフトウェアが利用可能であることが動作に必要な場合もある。ソフトウェアについては、任意にインストールやアンインストールされるものであるから、ダウンロード要求時点の構成を把握するために構成情報の参照が有効である。
【００７９】
なお、この実施形態では、操作部２０が中心となって機能を追加又は更新する動作について説明したが、操作部２０ではなく本体１０が中心となって同じ動作を実現することも可能である。
【００８０】
〔この実施形態におけるプログラム〕
この発明の実施形態であるプログラムは、操作部２０を制御するＣＰＵ２１（コンピュータ）又は本体１０を制御するＣＰＵ１１（コンピュータ）に上述した機能を実現させるためのプログラムである。そして、このようなプログラムをコンピュータに実行させることにより、上述したような効果を得ることができる。
【００８１】
このようなプログラムは、はじめからコンピュータに備えるＨＤＤ（ハードディスク装置）、あるいはＲＯＭや他の不揮発性記憶媒体（フラッシュメモリ，ＥＥＰＲＯＭ等）などに格納しておいてもよい。しかし、記録媒体であるＣＤ−ＲＯＭ、あるいはメモリカード，フレキシブルディスク，ＭＯ，ＣＤ−Ｒ，ＣＤ−ＲＷ，ＤＶＤ＋Ｒ，ＤＶＤ＋ＲＷ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，又はＤＶＤ−ＲＡＭ等の不揮発性記録媒体に記録して提供することもできる。それらの記録媒体に記録されたプログラムをコンピュータにインストールして実行させることにより、上述した各手順を実行させることができる。
さらに、ネットワークに接続され、プログラムを記録した記録媒体を備える外部装置あるいはプログラムを記憶手段に記憶した外部装置からダウンロードし、コンピュータにインストールして実行させることも可能である。
【００８２】
〔変形例〕
以上で実施形態の説明を終了するが、この発明において、各部の具体的な構成や処理の内容、通信の手順等は、実施形態で説明したものに限るものではない。
例えば、上述した実施形態では、配信サーバ２が、構成情報に基づき画像処理システム１にインストール可能なパッケージファイル５００を選択するようにしていたが、操作部２０（又は本体１０）がこの選択を行うようにしてもよい。
【００８３】
すなわち、操作部２０（又は本体１０）が、図５のステップＳ５で、配信サーバ２が提供している全パッケージファイルのリスト、あるいはそれを適当な条件でフィルタしたものを入手するようにしてもよい。そして、操作部２０（又は本体１０）が、操作部２０及び本体１０の構成情報に基づき、インストール可能なものをリストから提示してユーザに提示するようにしてもよい。この場合には、配信サーバ２へ構成情報を送信することは不要である。
【００８４】
さらに、操作部２０（又は本体１０）もインストール可能なものの選択を行わず、パッケージファイルのうちいずれをインストールするかの選択をユーザに任せるようにしてもよい。このようにしても、インストール条件に照らして適切なパッケージファイルが選択されれば、パッケージファイルに含まれるインストール条件定義ファイルに基づき、図５のステップＳ１０以下と同様なインストールが可能である。また、適切でないパッケージファイルが選択された場合、インストールの手順においてインストール条件が満たせなくなり、図５でレアケースとして説明したエラー情報の通知を行うことになる。
【００８５】
また、上述した実施形態では画像処理システム１を、本体１０と操作部２０とを固定的に組み合わせて構成した例について説明したが、これには限られない。
操作部と本体（動作部）とを、ハードウェアコンポーネントとして全く別の装置としてもよい。例えば、スマートフォン等のモバイル端末を操作部とし、ＭＦＰ等の画像処理装置を動作部として画像処理システムあるいは情報処理システムを構成してもよい。特に、操作部と動作部を無線で接続する場合には、これらは全く独立した装置として構成可能である。
【００８６】
また、操作部と動作部とは、１対１でなくてもよい。例えば、本体に有線接続された操作部がある画像処理装置を、モバイル端末からも操作できるようにすることが考えられる。あるいは、１台の画像処理装置を複数のモバイル端末から操作できるようにすることも考えられる。あるいはまた、１台のモバイル端末から操作対象を切り替えつつ複数の画像処理装置を操作できるようにすることも考えられる。
【００８７】
また、モジュール１つが１台の装置で構成される必要はない。複数台の装置が協働して１つのモジュールの機能を実現する構成であってもよい。逆に、複数のモジュールが１つの筐体に収まっていてもよい。
また、システムが３以上のモジュールを備える場合についても、本発明は適用可能である。すなわち、いずれか１つのモジュールが、全てのモジュールについて構成情報を取得して所定の配信装置に送信し、その配信装置から、各モジュールにインストールするプログラム及びそのインストール条件を示す条件情報を受信するようにすることにより、上述の実施形態と同様な効果を得ることができる。
【００８８】
また、情報処理システムを構成する１のモジュールが、スキャナやプロッタのような画像処理エンジンを備えていることも必須ではない。各モジュールは、任意の情報処理装置でよい。もちろん、情報処理以外の物理的な入力や出力を合わせて行う装置でもよい。
さらに、この発明は上述した実施形態に限定されるものではなく、特許請求の範囲に記載された技術思想に含まれる技術的事項の全てが対象となることは言うまでもない。
さらにまた、以上説明してきた実施形態、動作例及び変形例の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることは勿論である。
【符号の説明】
【００８９】
１：画像処理システム、２：配信サーバ、３：ネットワーク、１０：本体、１１，２１：ＣＰＵ、１２，２２：ＲＯＭ、１３，２３：ＲＡＭ、１４：ＨＤＤ、１５，２５：通信Ｉ／Ｆ、１６，２６：接続Ｉ／Ｆ、１７：エンジン部、１８，２８：システムバス、１９，２９：ＯＳ、２０：操作部、２７：操作パネル、３０：通信路、１０１，２０１：通信制御部、１０２：印刷制御部、１０３：送信制御部、１０４，２０２：アップデート処理部、１０５，２０４：構成情報管理部、２０３：アップデート先切り替え処理部
【先行技術文献】
【特許文献】
【００９０】
【特許文献１】特開２００３−３０８２２２号公報
【図１】
2014146098.tif 000007
【図２】
2014146098.tif 000008
【図３】
2014146098.tif 000009
【図４】
2014146098.tif 000010
【図５】
2014146098.tif 000011