JP2011242891A - 配信装置、画像処理装置、配信方法及びインストール方法 - Google Patents
配信装置、画像処理装置、配信方法及びインストール方法 Download PDFInfo
- Publication number
- JP2011242891A JP2011242891A JP2010112508A JP2010112508A JP2011242891A JP 2011242891 A JP2011242891 A JP 2011242891A JP 2010112508 A JP2010112508 A JP 2010112508A JP 2010112508 A JP2010112508 A JP 2010112508A JP 2011242891 A JP2011242891 A JP 2011242891A
- Authority
- JP
- Japan
- Prior art keywords
- program
- programs
- image processing
- distribution
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】カスタマイズされたプログラムの状態を維持しつつ、一斉配信のプログラムのインストールを適切に行うことを目的とする。
【解決手段】稼働データと、配信データと、においてプログラムのバージョンに差分がある、新しいバージョンのプログラムで、かつ、個別データに記載されていないプログラムの一覧を配信対象データとし、配信対象データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析すると共に、個別データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析し、配信対象データに含まれるプログラムと、個別データに含まれるプログラムと、において依存関係がないと判断した場合、配信対象データに含まれるプログラムを画像処理装置に配信するプログラムに決定する。
【選択図】図2
【解決手段】稼働データと、配信データと、においてプログラムのバージョンに差分がある、新しいバージョンのプログラムで、かつ、個別データに記載されていないプログラムの一覧を配信対象データとし、配信対象データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析すると共に、個別データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析し、配信対象データに含まれるプログラムと、個別データに含まれるプログラムと、において依存関係がないと判断した場合、配信対象データに含まれるプログラムを画像処理装置に配信するプログラムに決定する。
【選択図】図2
Description
本発明は、配信装置、画像処理装置、配信方法及びインストール方法に関する。
従来デジタル複合機等の情報処理装置におけるファームウェアアップデートは、サービスマンが現地に出向き、客先で作業を行うのが一般的であった。近年効率的なファームアップデートのために配信サーバを利用して、インターネットを使った自動ダウンロード、自動インストール機能が運用され始めている。
また一方でデジタル複合機は、客先のニーズに合わせてカスタマイズを行ったファームウェアを運用しているケースがあり、配信サーバによって全世界で一律なアップデートを行おうとすると、カスタマイズファームはその対象から外されることが多い。なぜならカスタマイズされたスペシャルファームが上書きされたり、カスタマイズされたライブラリとの間に不整合を起こしたりする可能性があるからである。
自動配信の機能性は特許文献1のようにバージョニングされたファームウェアを利用して、機器で運用されているファームウェアより配信サーバのもつファームウェアの方が新しければ自動的にインストールするといった構成が提案されている。
また特許文献2のようにデータのダウンロードの際に、著作権情報にしたがってファームウェアをアップデートさせないという制御を行うといった形態も提案されている。
また一方でデジタル複合機は、客先のニーズに合わせてカスタマイズを行ったファームウェアを運用しているケースがあり、配信サーバによって全世界で一律なアップデートを行おうとすると、カスタマイズファームはその対象から外されることが多い。なぜならカスタマイズされたスペシャルファームが上書きされたり、カスタマイズされたライブラリとの間に不整合を起こしたりする可能性があるからである。
自動配信の機能性は特許文献1のようにバージョニングされたファームウェアを利用して、機器で運用されているファームウェアより配信サーバのもつファームウェアの方が新しければ自動的にインストールするといった構成が提案されている。
また特許文献2のようにデータのダウンロードの際に、著作権情報にしたがってファームウェアをアップデートさせないという制御を行うといった形態も提案されている。
しかしながら、デジタル複合機のように客先でカスタマイズされたファームウェアを利用している場合は、単純にバージョンの新旧比較でアップデートを行えない。
カスタマイズされたスペシャルファームが上書きされたり、カスタマイズされたライブラリとの間に不整合を起こしたりする可能性があるためである。
また著作権情報等のファームそのものに埋められた情報では、客先の個別のデバイス上でどういった組み合わせやで運用されているのかといった状態を取得できないため、個別デバイス毎に異なったアップデートを行う運用が困難である。
カスタマイズされたスペシャルファームが上書きされたり、カスタマイズされたライブラリとの間に不整合を起こしたりする可能性があるためである。
また著作権情報等のファームそのものに埋められた情報では、客先の個別のデバイス上でどういった組み合わせやで運用されているのかといった状態を取得できないため、個別デバイス毎に異なったアップデートを行う運用が困難である。
そこで、本発明は、個別にカスタマイズされたプログラムが画像処理装置にインストールされている場合でも、カスタマイズされたプログラムの状態を維持しつつ、一斉配信のプログラムのインストールを適切に行うことを目的とする。
そこで、本発明は、ネットワークを介して通信可能な複数の画像処理装置にプログラムを配信する配信装置であって、前記画像処理装置に配信するプログラムを決定する決定手段と、前記決定手段で決定されたプログラムを前記画像処理装置に配信する配信手段と、を有し、前記決定手段は、前記画像処理装置で稼働中の、前記配信装置から配信されたプログラムの一覧である稼働データと、前記画像処理装置に配信しようとしているプログラムの一覧である配信データと、においてプログラムのバージョンに差分がある、新しいバージョンのプログラムで、かつ、前記画像処理装置に個別にインストールされたプログラムの一覧である個別データに記載されていないプログラムの一覧を配信対象データとし、前記配信対象データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析すると共に、前記個別データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析し、前記配信対象データに含まれるプログラムと、前記個別データに含まれるプログラムと、において依存関係がないと判断した前記配信対象データに含まれるプログラムを前記画像処理装置に配信するプログラムに決定する。
また、本発明は、ネットワークを介して通信可能な配信装置から配信されたプログラムをインストールする画像処理装置であって、前記配信装置から配信されたプログラムのうち、前記画像処理装置にインストールするプログラムを決定する決定手段と、前記決定手段で決定されたプログラムを前記画像処理装置にインストールするインストール手段と、を有し、前記決定手段は、前記画像処理装置で稼働中の、前記配信装置から配信されたプログラムの一覧である稼働データと、前記配信装置から配信されたプログラムの一覧である配信データと、においてプログラムのバージョンに差分がある、新しいバージョンのプログラムで、かつ、前記画像処理装置に個別にインストールされたプログラムの一覧である個別データに記載されていないプログラムの一覧をインストール候補データとして、前記インストール候補データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析すると共に、前記個別データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析し、前記インストール候補データに含まれるプログラムと、前記個別データに含まれるプログラムと、において依存関係がないと判断した前記インストール候補データに含まれるプログラムを前記画像処理装置にインストールするプログラムに決定する。
また、本発明は、ネットワークを介して通信可能な配信装置から配信されたプログラムをインストールする画像処理装置であって、前記配信装置から配信されたプログラムのうち、前記画像処理装置にインストールするプログラムを決定する決定手段と、前記決定手段で決定されたプログラムを前記画像処理装置にインストールするインストール手段と、を有し、前記決定手段は、前記画像処理装置で稼働中の、前記配信装置から配信されたプログラムの一覧である稼働データと、前記配信装置から配信されたプログラムの一覧である配信データと、においてプログラムのバージョンに差分がある、新しいバージョンのプログラムで、かつ、前記画像処理装置に個別にインストールされたプログラムの一覧である個別データに記載されていないプログラムの一覧をインストール候補データとして、前記インストール候補データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析すると共に、前記個別データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析し、前記インストール候補データに含まれるプログラムと、前記個別データに含まれるプログラムと、において依存関係がないと判断した前記インストール候補データに含まれるプログラムを前記画像処理装置にインストールするプログラムに決定する。
本発明によれば、個別にカスタマイズされたプログラムが画像処理装置にインストールされている場合でも、カスタマイズされたプログラムの状態を維持しつつ、一斉配信のプログラムのインストールを適切に行うことができる。
以下、本発明の実施形態について図面に基づいて説明する。
(第1の実施形態)
図1は、システムのシステム構成の一例を示す図である。
システムは、図1に示すように、配信サーバ153、広域ネットワーク152、及びユーザ先イントラネット環境151から構成される。ここで、広域ネットワーク152は、インターネットである。
配信サーバ153は、広域ネットワーク152を介してユーザ先イントラネット環境151の内部に配置された画像処理装置と通信を行う。つまり、配信サーバ153は、画像処理装置とネットワークを介して通信可能に接続されている。
図1は、システムのシステム構成の一例を示す図である。
システムは、図1に示すように、配信サーバ153、広域ネットワーク152、及びユーザ先イントラネット環境151から構成される。ここで、広域ネットワーク152は、インターネットである。
配信サーバ153は、広域ネットワーク152を介してユーザ先イントラネット環境151の内部に配置された画像処理装置と通信を行う。つまり、配信サーバ153は、画像処理装置とネットワークを介して通信可能に接続されている。
ユーザ先イントラネット環境151は、画像処理装置110、120、130等の複数のネットワーク機器と、ネットワーク機器群が接続されているLAN100と、から構成される。ユーザ先イントラネット環境151のLAN100は、ルータ等を介して広域ネットワーク152に接続されている。ここで、上記ルータは、所謂防火壁(firewall)の機能を有する。即ち、ルータは、外部ネットワークからの攻撃からユーザサイトを守るためにパケットフィルタリング等を行う。また、ルータにおいては、アドレス管理上の理由等のために、ネットワークアドレス変換やネットワークポート変換が行われる場合がある。
ルータのこれらの機能のために、ユーザ先イントラネット環境151と外部ネットワークとの間の通信には制限が設けられている。即ち、多くの場合、いくつかの特定のプロトコルによる通信のみが可能とされている。例えば、内部から外部に向かって確立されるHTTP接続は、一般に許可されている通信であり、これは一般的なウェブベースの技術に基づいてアプリケーションサービスの提供が有効であるとの理由の一つとなっている。
ルータのこれらの機能のために、ユーザ先イントラネット環境151と外部ネットワークとの間の通信には制限が設けられている。即ち、多くの場合、いくつかの特定のプロトコルによる通信のみが可能とされている。例えば、内部から外部に向かって確立されるHTTP接続は、一般に許可されている通信であり、これは一般的なウェブベースの技術に基づいてアプリケーションサービスの提供が有効であるとの理由の一つとなっている。
画像処理装置110は、画像の入出力と送受信及び各種の画像処理を行う複合機(MFP;Multi Function Peripheral)である。画像処理装置110は、画像入力デバイスであるスキャナ113、画像出力デバイスであるプリンタ114、コントロールユニット(Controller Unit)111、及びユーザインタフェースである操作部112を備える。スキャナ113、プリンタ114、操作部112は、それぞれ、コントロールユニット111に接続され、コントロールユニット111からの命令によって制御される。コントロールユニット111は、LAN100に接続されている。またコントロールユニット111は、着脱可能なメモリメディア115等を接続し、データの読み書きを行うことが可能である。
各画像処理装置120、130は、画像処理装置110と同様の機器構成を有し、それらは同様にLAN100に接続されている。画像処理装置120は、スキャナ123、プリンタ124、操作部122、及びスキャナ123、プリンタ124、操作部122のそれぞれを制御するコントロールユニット121を備える。また、画像処理装置130は、スキャナ133、プリンタ134、操作部132、及びスキャナ133、プリンタ134、操作部132を制御するコントロールユニット131を備える。
各画像処理装置120、130は、画像処理装置110と同様の機器構成を有し、それらは同様にLAN100に接続されている。画像処理装置120は、スキャナ123、プリンタ124、操作部122、及びスキャナ123、プリンタ124、操作部122のそれぞれを制御するコントロールユニット121を備える。また、画像処理装置130は、スキャナ133、プリンタ134、操作部132、及びスキャナ133、プリンタ134、操作部132を制御するコントロールユニット131を備える。
次に、画像処理装置110のソフトウェア構成について図2を参照しながら説明する。図2は、画像処理装置110のソフトウェア構成の一例を示す図である。ソフトウェアは、通常、ユーザが利用する際に動作する通常モードで動作するモジュール群201と、サービスマンモードやファームアップデートの際に動作するモードで動作するモジュール群202と、の構成を有する。両モードで共通に利用されるモジュールも存在する。
ソフトウェアは、互いにお互いの機能を利用しあう、モジュールという単位で構成され、モジュール間は、公開されたインタフェースを利用して通信を行う。220、230、240、250がインタフェースの概念である。詳細は後述する。
通常モードで起動された場合、システムの最下層のOSサービス251は、OSインタフェース250を通して機能を提供する。OSサービス251は、基本的なファイル操作、一般的なカーネルオブジェクトや、タスク制御、タスク間通信等のサービスを提供している。
また、システムで起きたイベントをロギングするLogモジュール241や画像処理装置に必要なコンフィギュレーションを保持、更新、通知するConfigurationモジュール242等が機能を提供する。これらはシステムサービス機能システムサービスインタフェース240を通してサービスを提供している。
ソフトウェアは、互いにお互いの機能を利用しあう、モジュールという単位で構成され、モジュール間は、公開されたインタフェースを利用して通信を行う。220、230、240、250がインタフェースの概念である。詳細は後述する。
通常モードで起動された場合、システムの最下層のOSサービス251は、OSインタフェース250を通して機能を提供する。OSサービス251は、基本的なファイル操作、一般的なカーネルオブジェクトや、タスク制御、タスク間通信等のサービスを提供している。
また、システムで起きたイベントをロギングするLogモジュール241や画像処理装置に必要なコンフィギュレーションを保持、更新、通知するConfigurationモジュール242等が機能を提供する。これらはシステムサービス機能システムサービスインタフェース240を通してサービスを提供している。
更に、画像処理装置としての機能するデバイスを制御するモジュール群231〜235が機能を提供する。Network231は、ネットワークデバイスを通してLAN100を通した通信を行う。Image232は、画像処理チップを通して画像処理を行う。Print233は、プリンタを、Scan234は、スキャナを、Tel235は、FAX通信等のための電話回線の制御をそれぞれ行う。これらデバイス制御モジュール群は、デバイス制御モジュールインタフェース230を通してその機能の提供を行う。
デバイス制御モジュール群を利用するのがJobCtrl221である。これは画像処理装置内に投入される様々なジョブを解釈し、画像処理装置の持つ様々なデバイス機能を実行するモジュールである。JobCtrl221は、前述のデバイス制御モジュールインタフェース230を通してデバイスを動作させて、スキャン、プリント、送信、受信、画像変換等の動作を行う。JobCtrl221に対してJobを投入するために用意されているのが、ジョブ制御インタフェース220である。
システムの最上位に位置するのが、アプリケーションモジュール群211〜216である。Copy211、FAX212、Scan213、Send214、Memory215、PDL216等、それぞれのアプリは、操作部112上にユーザインタフェースを持ち、提供する機能に応じて、ユーザからのジョブ投入の命令を受ける。アプリケーション211〜216は、ユーザからの命令を受けて、ジョブ制御インタフェース220を通して、ジョブの投入、中断、変更、キャンセル等を行うことができる。
デバイス制御モジュール群を利用するのがJobCtrl221である。これは画像処理装置内に投入される様々なジョブを解釈し、画像処理装置の持つ様々なデバイス機能を実行するモジュールである。JobCtrl221は、前述のデバイス制御モジュールインタフェース230を通してデバイスを動作させて、スキャン、プリント、送信、受信、画像変換等の動作を行う。JobCtrl221に対してJobを投入するために用意されているのが、ジョブ制御インタフェース220である。
システムの最上位に位置するのが、アプリケーションモジュール群211〜216である。Copy211、FAX212、Scan213、Send214、Memory215、PDL216等、それぞれのアプリは、操作部112上にユーザインタフェースを持ち、提供する機能に応じて、ユーザからのジョブ投入の命令を受ける。アプリケーション211〜216は、ユーザからの命令を受けて、ジョブ制御インタフェース220を通して、ジョブの投入、中断、変更、キャンセル等を行うことができる。
アップデートモードで起動された場合、画像処理装置110は、OSサービス251、Configurationモジュール242、Network231の機能等を、それぞれの提供するインタフェースを通し、通常モードで起動された場合と同様に提供することができる。
アップデートモードで起動された場合にのみ起動されるモジュールとしてはUpdater261と、Imigrator262と、がある。
Updater261は、Network231を利用して、配信サーバ153と通信を行って、ファームウェアのダウンロードを行い、OSサービス251を利用してのファームウェアの保存やインストールを司る。またImigrator262は、インストール前後の設定や、新旧のデータの移行等を司る。
アップデートモードで起動された場合にのみ起動されるモジュールとしてはUpdater261と、Imigrator262と、がある。
Updater261は、Network231を利用して、配信サーバ153と通信を行って、ファームウェアのダウンロードを行い、OSサービス251を利用してのファームウェアの保存やインストールを司る。またImigrator262は、インストール前後の設定や、新旧のデータの移行等を司る。
次に、画像処理装置110の構成について図3を参照しながら説明する。図3は、画像処理装置110のハードウェア構成の一例を示す図である。ここでは、各画像処理装置110、120、130の構成は、同じであるので、画像処理装置110の構成を説明するものとする。
画像処理装置110は、図3に示すように、装置全体を制御するコントロールユニット111を備える。コントロールユニット111は、画像入力デバイスであるスキャナ113や画像出力デバイスであるプリンタ114を接続し、これらを制御する一方、LANや公衆回線と接続され、これらを介して画像情報やデバイス情報の入出力を行うものである。
コントロールユニット111は、CPU301を有する。
CPU301は、システムバス307を介して、RAM302、ROM303、HDD(ハードディスク装置)304、イメージバスI/F305、操作部I/F306、ネットワークI/F308、及びモデム309と接続される。
RAM302は、CPU301の作業領域を提供するためのメモリであり、また、画像データを一時記憶するための画像メモリとしても使用される。ROM303は、ブートROMであり、ROM303には、システムのブートプログラムが格納されている。HDD304には、システムソフトウェア、画像データ等が格納される。
画像処理装置110は、図3に示すように、装置全体を制御するコントロールユニット111を備える。コントロールユニット111は、画像入力デバイスであるスキャナ113や画像出力デバイスであるプリンタ114を接続し、これらを制御する一方、LANや公衆回線と接続され、これらを介して画像情報やデバイス情報の入出力を行うものである。
コントロールユニット111は、CPU301を有する。
CPU301は、システムバス307を介して、RAM302、ROM303、HDD(ハードディスク装置)304、イメージバスI/F305、操作部I/F306、ネットワークI/F308、及びモデム309と接続される。
RAM302は、CPU301の作業領域を提供するためのメモリであり、また、画像データを一時記憶するための画像メモリとしても使用される。ROM303は、ブートROMであり、ROM303には、システムのブートプログラムが格納されている。HDD304には、システムソフトウェア、画像データ等が格納される。
操作部I/F306は、操作部112との間で入出力を行うためのインタフェースであり、操作部112に表示する画像データを操作部112に対して出力し、ユーザが操作部112を介して入力した情報を、CPU301に伝送する等の役割を果たす。
ネットワークI/F308は、LANと接続され、LANに対して情報の入出力を行う。モデム309は、公衆回線と接続され、公衆回線に対して情報の入出力を行う。
イメージバスI/F305は、システムバス307と画像データを高速で転送する画像バス310とを接続し、データ構造を変換するバスブリッジである。
画像バス310には、RIP(ラスタイメージプロセッサ)311、デバイスI/F312、スキャナ画像処理部313、プリンタ画像処理部314、画像回転部315、及び画像圧縮部316が接続されている。
RIP311は、LANから受信されたPDLコードをビットマップイメージに展開する。デバイスI/F312は、スキャナ113及びプリンタ114とコントロールユニット111とを接続し、画像データの同期系/非同期系の変換を行う。スキャナ画像処理部313は、入力画像データに対し補正、加工、編集等を行う。プリンタ画像処理部314は、プリント出力画像データに対して、プリンタの補正、解像度変換等を行う。画像回転部315は、画像データの回転を行う。画像圧縮部316は、多値画像データに対してはJPEG圧縮伸長処理を行い、2値画像データに対してはJBIG、MMR、MH等の圧縮伸長処理を行う。
外部ストレージI/F317は、メモリメディア115と接続され、メモリメディア115へ機器内のデータや画像を保存する、或いはメモリメディア115内のデータを機器内に書き込む際に利用される。
ネットワークI/F308は、LANと接続され、LANに対して情報の入出力を行う。モデム309は、公衆回線と接続され、公衆回線に対して情報の入出力を行う。
イメージバスI/F305は、システムバス307と画像データを高速で転送する画像バス310とを接続し、データ構造を変換するバスブリッジである。
画像バス310には、RIP(ラスタイメージプロセッサ)311、デバイスI/F312、スキャナ画像処理部313、プリンタ画像処理部314、画像回転部315、及び画像圧縮部316が接続されている。
RIP311は、LANから受信されたPDLコードをビットマップイメージに展開する。デバイスI/F312は、スキャナ113及びプリンタ114とコントロールユニット111とを接続し、画像データの同期系/非同期系の変換を行う。スキャナ画像処理部313は、入力画像データに対し補正、加工、編集等を行う。プリンタ画像処理部314は、プリント出力画像データに対して、プリンタの補正、解像度変換等を行う。画像回転部315は、画像データの回転を行う。画像圧縮部316は、多値画像データに対してはJPEG圧縮伸長処理を行い、2値画像データに対してはJBIG、MMR、MH等の圧縮伸長処理を行う。
外部ストレージI/F317は、メモリメディア115と接続され、メモリメディア115へ機器内のデータや画像を保存する、或いはメモリメディア115内のデータを機器内に書き込む際に利用される。
図4は、配信サーバ153のハードウェア構成の一例を示す図である。配信サーバ153のハードウェア構成は、一般的なコンピュータのハードウェア構成に相当するものとし、配信サーバ153には、一般的なコンピュータのハードウェア構成を適用できる。
CPU140は、ROM142のプログラムROMに記憶された、或いは外部メモリ149からRAM141にロードされたOSやアプリケーション等の制御プログラムを実行する。配信サーバ153の機能や後述するフローチャートの処理は、CPU140が、この制御プログラムを実行することにより実現される。RAM141は、CPU140の主メモリ、ワークエリア等として機能する。
入力デバイスコントローラ143は、キーボードやマウス等の入力デバイス147からの入力を制御する。ディスプレイコントローラ144は、ディスプレイ148の表示を制御する。ディスクコントローラ145は、各種データを記憶する外部メモリ149(ハードディスク(HD)、フレキシブルディスク(FD)等)におけるデータアクセスを制御する。NC146は、ネットワーク102に接続された他の機器との通信制御処理を実行する。
CPU140は、ROM142のプログラムROMに記憶された、或いは外部メモリ149からRAM141にロードされたOSやアプリケーション等の制御プログラムを実行する。配信サーバ153の機能や後述するフローチャートの処理は、CPU140が、この制御プログラムを実行することにより実現される。RAM141は、CPU140の主メモリ、ワークエリア等として機能する。
入力デバイスコントローラ143は、キーボードやマウス等の入力デバイス147からの入力を制御する。ディスプレイコントローラ144は、ディスプレイ148の表示を制御する。ディスクコントローラ145は、各種データを記憶する外部メモリ149(ハードディスク(HD)、フレキシブルディスク(FD)等)におけるデータアクセスを制御する。NC146は、ネットワーク102に接続された他の機器との通信制御処理を実行する。
次に、パッケージとパッケージリストとについて図5を用いて説明する。図5は、パッケージとパッケージリストとを説明するための図である。
Updater261によって画像処理装置110に対してファームウェアをアップデートする際には、パッケージという構成単位で行われる。パッケージは、ライブラリ名称とバージョンとを保持している。402は、パッケージの構成イメージであるが、内部に複数のファイルを抱えた圧縮形式ファイルで実現されるものとする。パッケージ402には、内部には少なくともプログラム実体であるライブラリ411と、ライブラリの情報を記載したパッケージ情報ファイル412と、が保持されている。このパッケージ情報ファイル412には少なくとも、パッケージの名称413と、パッケージのバージョン414と、ライブラリの配置先415と、依存関係を示す情報(依存関係情報)416と、が記載される。名称は、そのパッケージを一意に特定できる文字列である。パッケージバージョンは、複数の数値で示される。図5の例ではパッケージバージョンは、2つの数字をドットつなぎで表現されており、上位がメジャーバージョン、下位がマイナーバージョンを表わしている。もちろんこの桁数は増やすことも減らすこともできる。ライブラリの配置先には、システムにインストールする際にライブラリを配置するフォルダの絶対パスが記載される。
Updater261によって画像処理装置110に対してファームウェアをアップデートする際には、パッケージという構成単位で行われる。パッケージは、ライブラリ名称とバージョンとを保持している。402は、パッケージの構成イメージであるが、内部に複数のファイルを抱えた圧縮形式ファイルで実現されるものとする。パッケージ402には、内部には少なくともプログラム実体であるライブラリ411と、ライブラリの情報を記載したパッケージ情報ファイル412と、が保持されている。このパッケージ情報ファイル412には少なくとも、パッケージの名称413と、パッケージのバージョン414と、ライブラリの配置先415と、依存関係を示す情報(依存関係情報)416と、が記載される。名称は、そのパッケージを一意に特定できる文字列である。パッケージバージョンは、複数の数値で示される。図5の例ではパッケージバージョンは、2つの数字をドットつなぎで表現されており、上位がメジャーバージョン、下位がマイナーバージョンを表わしている。もちろんこの桁数は増やすことも減らすこともできる。ライブラリの配置先には、システムにインストールする際にライブラリを配置するフォルダの絶対パスが記載される。
依存関係情報416は、CPU140が管理する情報になる。依存関係は、直接的に別のライブラリのインタフェースを利用している場合、そのパッケージ名とパッケージバージョンとが記載される。図5の例ではA−1.0パッケージは、X―1.0パッケージが公開するインタフェースと、Z−2.0パッケージが公開するインタフェースと、を利用して動作する、ということが示されている。
またこれらのパッケージ情報をまとめて、システムで運用されるパッケージ群の管理を行っているのが、パッケージリスト401である。パッケージリスト401にはファームウェアを構成する全てのパッケージの名称とそのバージョンとが記載される。この組み合わせがシステムの安定動作を保証する組み合わせであり、稼働や配信のためのよりどころとされる。
CPU140(より具体的には後述する配信アプリケーション)は、パッケージ情報ファイルを保持する。また、画像処理装置110のコントロールユニット111(より具体的には、Updater261)は、パッケージリスト401の情報に従って、各バージョンのパッケージを機器内に配置し、パッケージ情報ファイルを保持する。
またこれらのパッケージ情報をまとめて、システムで運用されるパッケージ群の管理を行っているのが、パッケージリスト401である。パッケージリスト401にはファームウェアを構成する全てのパッケージの名称とそのバージョンとが記載される。この組み合わせがシステムの安定動作を保証する組み合わせであり、稼働や配信のためのよりどころとされる。
CPU140(より具体的には後述する配信アプリケーション)は、パッケージ情報ファイルを保持する。また、画像処理装置110のコントロールユニット111(より具体的には、Updater261)は、パッケージリスト401の情報に従って、各バージョンのパッケージを機器内に配置し、パッケージ情報ファイルを保持する。
次に配信サーバと、画像処理装置との間における配信パッケージの決定までの処理の概要について図6を用いて説明する。図6は、配信サーバと、画像処理装置との間における配信パッケージの決定までの処理の概要を説明するための図である。なお、配信パッケージは、画像処理装置に配信するプログラムの一例である。
ここで、画像処理装置110と配信サーバ153とは、広域ネットワーク152を介して接続されている状態である。
画像処理装置110のファームウェアは、510のようになっている。511等で示されるのが、画像処理装置110内内のファームウェアを構成するライブラリ群である。これらはパッケージ毎に分割されて配信され、画像処理装置110にインストールされる。またライブラリ間の依存関係は510上では矢印で示されている。パッケージ情報ファイルに記載された依存関係がこれにあたる。また、この画像処理装置110内には個別インストールライブラリ512が適用されている。これはこの画像処理装置110に特別にインストールされたユーザ向けのカスタマイズファームであることを意味している。
画像処理装置110には配信サーバ153から配信された画像処理装置110で稼働中のパッケージを管理する稼働パッケージリスト501と画像処理装置110に個別にインストールされたパッケージを管理する個別パッケージリスト502とを保持している。P―99.0は、個別インストールライブラリ512を指しており、一般的に配信されているパッケージのパッケージリストに対して、このパッケージが差分で画像処理装置110にカスタマイズインストールされていることを意味している。
ここで、画像処理装置110と配信サーバ153とは、広域ネットワーク152を介して接続されている状態である。
画像処理装置110のファームウェアは、510のようになっている。511等で示されるのが、画像処理装置110内内のファームウェアを構成するライブラリ群である。これらはパッケージ毎に分割されて配信され、画像処理装置110にインストールされる。またライブラリ間の依存関係は510上では矢印で示されている。パッケージ情報ファイルに記載された依存関係がこれにあたる。また、この画像処理装置110内には個別インストールライブラリ512が適用されている。これはこの画像処理装置110に特別にインストールされたユーザ向けのカスタマイズファームであることを意味している。
画像処理装置110には配信サーバ153から配信された画像処理装置110で稼働中のパッケージを管理する稼働パッケージリスト501と画像処理装置110に個別にインストールされたパッケージを管理する個別パッケージリスト502とを保持している。P―99.0は、個別インストールライブラリ512を指しており、一般的に配信されているパッケージのパッケージリストに対して、このパッケージが差分で画像処理装置110にカスタマイズインストールされていることを意味している。
この稼働パッケージリスト501と個別パッケージリスト502とは、配信サーバ153上にも同じものが配置可能であり、配信サーバ153と画像処理装置とで常に同期をとっていてもよい。また、アップデート時にのみ広域ネットワーク152を通して、配信サーバ153と画像処理装置とで稼働パッケージリスト501と個別パッケージリスト502とを同期することも可能である。どちらであっても本実施形態では、アップデートのためのパッケージ配信時には配信サーバ153上に稼働パッケージリスト501と個別パッケージリスト502とが存在することが必要である。
配信サーバ153には、配信パッケージを決定する配信アプリケーション521が配置される。更に配信サーバ153には、配信対象のパッケージ群が保持されているパッケージリポジトリ520や、配信しようとする新しいパッケージバージョンが記載された配信パッケージリスト503も配置される。
配信アプリケーション521は、稼働パッケージリスト501と個別パッケージリスト502と配信パッケージリスト503とを受け取ると、新規の稼働パッケージリスト504と配信対象パッケージリスト505とを生成する。ここで生成された配信対象パッケージリスト505に記載されたパッケージが、パッケージリポジトリ520から取得され、配信サーバ153によって画像処理装置に配信されることになる。配信アプリケーション521における処理の詳細については後述する。
なお、リストはデータの一覧の一例である。稼働パッケージリスト501は、稼働データの一例である。個別パッケージリスト502は、個別データの一例である。配信パッケージリスト503は、配信データの一例である。配信対象パッケージリスト505は、配信対象データの一例である。
配信サーバ153には、配信パッケージを決定する配信アプリケーション521が配置される。更に配信サーバ153には、配信対象のパッケージ群が保持されているパッケージリポジトリ520や、配信しようとする新しいパッケージバージョンが記載された配信パッケージリスト503も配置される。
配信アプリケーション521は、稼働パッケージリスト501と個別パッケージリスト502と配信パッケージリスト503とを受け取ると、新規の稼働パッケージリスト504と配信対象パッケージリスト505とを生成する。ここで生成された配信対象パッケージリスト505に記載されたパッケージが、パッケージリポジトリ520から取得され、配信サーバ153によって画像処理装置に配信されることになる。配信アプリケーション521における処理の詳細については後述する。
なお、リストはデータの一覧の一例である。稼働パッケージリスト501は、稼働データの一例である。個別パッケージリスト502は、個別データの一例である。配信パッケージリスト503は、配信データの一例である。配信対象パッケージリスト505は、配信対象データの一例である。
次にパッケージの依存関係と、依存関係の有無の判断とについて図7を用いて説明する。図7は、パッケージ間のAPI呼び出し関係に基づく依存関係の一例を示す図である。各パッケージの中に存在するライブラリは、一般的に別のパッケージのライブラリの持つAPIを利用する。図7では、その呼び出し関係を矢印で表現している。
図7において、Pkg−P601は、Pkg−A610とPkg−B611とが提供するAPIをコールするという実装を持っているという意味であり、このことはPkg−Pのパッケージ情報ファイル412に記載された、依存関係情報416に記載されている。
逆にPkg−A610とPkg−B611とについてはPkg−P601から呼びだされているが、Pkg−A610とPkg−B611とがPkg−P601に依存するという関係ではない。したがってPkg−A610やPkg−B611の依存関係情報416にはPkg−P601は記載されない。
同様に、Pkg−Q602は、Pkg−X621の提供ライブラリとPkg−Y622の提供ライブラリとを利用している。
更にPkg−B611は、Pkg−X621を利用しているため、結果としてPkg−P601は、Pkg−X621と間接的に依存関係を持っている間接呼びだしを持つ関係である。
図7では模式的にツリー構造で依存関係が表現されているが、これは、配信アプリケーション521が、各パッケージが持つパッケージ情報ファイル412に記載された依存関係情報416を順次走査していくことで導き出すことができる。依存関係情報を順次走査する処理は、依存関係情報を解析する処理の一例である。
図7において、Pkg−P601は、Pkg−A610とPkg−B611とが提供するAPIをコールするという実装を持っているという意味であり、このことはPkg−Pのパッケージ情報ファイル412に記載された、依存関係情報416に記載されている。
逆にPkg−A610とPkg−B611とについてはPkg−P601から呼びだされているが、Pkg−A610とPkg−B611とがPkg−P601に依存するという関係ではない。したがってPkg−A610やPkg−B611の依存関係情報416にはPkg−P601は記載されない。
同様に、Pkg−Q602は、Pkg−X621の提供ライブラリとPkg−Y622の提供ライブラリとを利用している。
更にPkg−B611は、Pkg−X621を利用しているため、結果としてPkg−P601は、Pkg−X621と間接的に依存関係を持っている間接呼びだしを持つ関係である。
図7では模式的にツリー構造で依存関係が表現されているが、これは、配信アプリケーション521が、各パッケージが持つパッケージ情報ファイル412に記載された依存関係情報416を順次走査していくことで導き出すことができる。依存関係情報を順次走査する処理は、依存関係情報を解析する処理の一例である。
次に配信アプリケーション521が、配信対象のパッケージを決めるために、パッケージ間の依存関係の有無を判断する処理について図8と図9とを用いて説明する。
図8は、パッケージ間の依存関係の有無を判断する処理の一例を示すフローチャートである。
S701で配信アプリケーション521は、比較する2つのパッケージを確定する。比較対象の1つは個別パッケージリスト502に記載されているパッケージである。1つは稼働パッケージリスト501と配信パッケージリスト503との間においてバージョン差分があり、新しいバージョンのパッケージで、かつ、個別パッケージリスト502に記載されていないパッケージである。もう一つは、配信候補パッケージである。
S702で配信アプリケーション521は、P(個別パッケージ)を起点にして、パッケージの参照関係を示すパッケージ情報ファイル412の依存関係情報416の情報を順次走査して、間接参照を含んだ依存パッケージを全列挙する。そしてS703おいて配信アプリケーション521は、その列挙した中にQ(配信対象パッケージ)が存在するかどうかを確認する。存在すれば配信アプリケーション521は、S707へと進み、依存関係ありと判断する。存在しなければ配信アプリケーション521は、S704に進む。
S704では配信アプリケーション521は、S702とは逆に、Qを起点にして依存関係をたどり、関連パッケージを全列挙する。列挙後、配信アプリケーション521は、S705に進み、その中にPが存在するかどうかを確認する。Pが存在すれば配信アプリケーション521は、S707へ進み、依存関係をありと判断する。Pが存在しなければ配信アプリケーション521は、S706へと進み、この2つのパッケージ間には依存関係がないと判断する。
図8は、パッケージ間の依存関係の有無を判断する処理の一例を示すフローチャートである。
S701で配信アプリケーション521は、比較する2つのパッケージを確定する。比較対象の1つは個別パッケージリスト502に記載されているパッケージである。1つは稼働パッケージリスト501と配信パッケージリスト503との間においてバージョン差分があり、新しいバージョンのパッケージで、かつ、個別パッケージリスト502に記載されていないパッケージである。もう一つは、配信候補パッケージである。
S702で配信アプリケーション521は、P(個別パッケージ)を起点にして、パッケージの参照関係を示すパッケージ情報ファイル412の依存関係情報416の情報を順次走査して、間接参照を含んだ依存パッケージを全列挙する。そしてS703おいて配信アプリケーション521は、その列挙した中にQ(配信対象パッケージ)が存在するかどうかを確認する。存在すれば配信アプリケーション521は、S707へと進み、依存関係ありと判断する。存在しなければ配信アプリケーション521は、S704に進む。
S704では配信アプリケーション521は、S702とは逆に、Qを起点にして依存関係をたどり、関連パッケージを全列挙する。列挙後、配信アプリケーション521は、S705に進み、その中にPが存在するかどうかを確認する。Pが存在すれば配信アプリケーション521は、S707へ進み、依存関係をありと判断する。Pが存在しなければ配信アプリケーション521は、S706へと進み、この2つのパッケージ間には依存関係がないと判断する。
間接参照を含んだ依存関係の全列挙の処理のより具体的な処理を図9に示す。
図9は、実施の形態1の間接参照を含んだ依存関係の全列挙の処理の一例を示すフローチャートである。
S801において配信アプリケーション521は、起点となるパッケージの依存情報を、依存関係情報416から確認する。S802において配信アプリケーション521は、そこに依存関係が記載されていなければ、列挙する処理を終了する。
依存関係が1つ以上記載されていれば、S803にて、配信アプリケーション521は、パッケージを列挙する。更にS804において、配信アプリケーション521は、列挙した全パーケージに対して繰り返し処理を行う。この繰り返し処理では配信アプリケーション521は、関連パッケージの列挙の自身のルーチンを再帰的にコールする。これにより依存関係を持たないプリミティブなAPIのみを利用した実装のみのパッケージに至るまでの全ての呼び出しの間接参照を全列挙することができる。
このフローチャートは、2つのパッケージ間の依存関係の有無についての確認を行うロジックである。配信アプリケーション521は、1つの配信予定のパッケージに対して、個別運用されている全てのパッケージについてパッケージの間で依存関係有無の判断を行う。そして、配信アプリケーション521は、全ての個別運用パッケージと依存関係なしと判断した場合、その配信パッケージを配信可能であると判断する。
配信アプリケーション521は、依存なしと判断した配信可能パッケージのみを配信対象パッケージリスト505に記載する。配信サーバ153は、配信対象パッケージリスト505を基にパッケージを配信する。そして、画像処理装置110が配信されたパッケージを受信する。そして、画像処理装置110内のUpdater261が配信されたファームウェアをアップデートする。
図9は、実施の形態1の間接参照を含んだ依存関係の全列挙の処理の一例を示すフローチャートである。
S801において配信アプリケーション521は、起点となるパッケージの依存情報を、依存関係情報416から確認する。S802において配信アプリケーション521は、そこに依存関係が記載されていなければ、列挙する処理を終了する。
依存関係が1つ以上記載されていれば、S803にて、配信アプリケーション521は、パッケージを列挙する。更にS804において、配信アプリケーション521は、列挙した全パーケージに対して繰り返し処理を行う。この繰り返し処理では配信アプリケーション521は、関連パッケージの列挙の自身のルーチンを再帰的にコールする。これにより依存関係を持たないプリミティブなAPIのみを利用した実装のみのパッケージに至るまでの全ての呼び出しの間接参照を全列挙することができる。
このフローチャートは、2つのパッケージ間の依存関係の有無についての確認を行うロジックである。配信アプリケーション521は、1つの配信予定のパッケージに対して、個別運用されている全てのパッケージについてパッケージの間で依存関係有無の判断を行う。そして、配信アプリケーション521は、全ての個別運用パッケージと依存関係なしと判断した場合、その配信パッケージを配信可能であると判断する。
配信アプリケーション521は、依存なしと判断した配信可能パッケージのみを配信対象パッケージリスト505に記載する。配信サーバ153は、配信対象パッケージリスト505を基にパッケージを配信する。そして、画像処理装置110が配信されたパッケージを受信する。そして、画像処理装置110内のUpdater261が配信されたファームウェアをアップデートする。
(第2の実施形態)
画像処理装置110のシステム内のライブラリは、図2に示すように、細かなライブラリ毎のインタフェースではなく、機能の単位ごとの大きなインタフェース(220、230、240、250)が存在していることが多い。インタフェースを切れ目としてアプリ層、システム層、OS層等、機能のレイヤを切り分けて、その上下で独立したモジュールとして画像処理装置110にモジュールを実装し、機能させることができる。
これに関して図10を用いて説明する。図10は、パッケージ間のAPI呼び出し関係に基づく依存関係で、システムインタフェースの概念を取り入れた場合の一例を示す図である。
第1の実施形態では、配信アプリケーション521は、間接参照を含めたAPIの呼び出し関係のみで、モジュール間の依存関係の有無を判断していた。したがって図10のような依存関係を持っている場合、Pkg−P901とPkg−Q902とは間接的な呼び出し関係があるため、依存関係ありと判断される。
ここで間接参照の途中に存在するPkg−S903を通した呼び出し関係になっていることに着目する。Pkg−S903が、システムとしての大きなインタフェース、例えば220、230、240、250等に該当するような位置づけのインタフェースの場合を考える。このインタフェースの呼び出しにおいて、配信アプリケーション521は、呼び出し元と呼び出し先とはアプリとシステム等、かなり関係が疎な立場であると判断することができる。
画像処理装置110のシステム内のライブラリは、図2に示すように、細かなライブラリ毎のインタフェースではなく、機能の単位ごとの大きなインタフェース(220、230、240、250)が存在していることが多い。インタフェースを切れ目としてアプリ層、システム層、OS層等、機能のレイヤを切り分けて、その上下で独立したモジュールとして画像処理装置110にモジュールを実装し、機能させることができる。
これに関して図10を用いて説明する。図10は、パッケージ間のAPI呼び出し関係に基づく依存関係で、システムインタフェースの概念を取り入れた場合の一例を示す図である。
第1の実施形態では、配信アプリケーション521は、間接参照を含めたAPIの呼び出し関係のみで、モジュール間の依存関係の有無を判断していた。したがって図10のような依存関係を持っている場合、Pkg−P901とPkg−Q902とは間接的な呼び出し関係があるため、依存関係ありと判断される。
ここで間接参照の途中に存在するPkg−S903を通した呼び出し関係になっていることに着目する。Pkg−S903が、システムとしての大きなインタフェース、例えば220、230、240、250等に該当するような位置づけのインタフェースの場合を考える。このインタフェースの呼び出しにおいて、配信アプリケーション521は、呼び出し元と呼び出し先とはアプリとシステム等、かなり関係が疎な立場であると判断することができる。
次に図11を用いて第2の実施形態における依存パッケージの全列挙の処理について説明する。図11は、実施の形態2の間接参照を含んだ依存関係の全列挙の処理の一例を示すフローチャートである。
S1001において、配信アプリケーション521は、起点となるパッケージの依存情報を、依存関係情報416から確認する。S1002において、配信アプリケーション521は、そこに依存関係が記載されていなければ、列挙する処理を終了する。
依存関係が1つ以上記載されていれば、S1003にて、配信アプリケーション521は、パッケージを列挙する。更にS1004で配信アプリケーション521は、列挙された全パーケージに対して繰り返し処理を行う。
この中のS1005において、配信アプリケーション521は、対象のパッケージがPkg−S903のような特定のインタフェースの一例であるシステムインタフェースか否かを判断する。システムインタフェースであればそれ以下の階層の列挙を行わないため、配信アプリケーション521は、その時点で図11に示す処理を終了する。システムインタフェースでなければ、配信アプリケーション521は、第1の実施形態同様にS1006で再帰的に自身のルーチンをコールする。
これにより依存関係を持たないプリミティブなAPIのみを利用した実装のみのパッケージに至るまでの全ての呼び出しの間接参照を全列挙する一方、システムインタフェースを超えた(経由した)先のパッケージは列挙されないことになる。
なお、S1005で判断の基準になるシステムインタフェースか否かの判断材料としては、例えば、予め特定のパッケージに対して設計者によって情報が付与された定義テーブルをパッケージリストと共に別ファイルとして配信サーバ153に設定する。別の方法としては、Pkg−S903のパッケージ情報ファイル412等にシステムインタフェースである旨を記載する等の方法がある。
S1001において、配信アプリケーション521は、起点となるパッケージの依存情報を、依存関係情報416から確認する。S1002において、配信アプリケーション521は、そこに依存関係が記載されていなければ、列挙する処理を終了する。
依存関係が1つ以上記載されていれば、S1003にて、配信アプリケーション521は、パッケージを列挙する。更にS1004で配信アプリケーション521は、列挙された全パーケージに対して繰り返し処理を行う。
この中のS1005において、配信アプリケーション521は、対象のパッケージがPkg−S903のような特定のインタフェースの一例であるシステムインタフェースか否かを判断する。システムインタフェースであればそれ以下の階層の列挙を行わないため、配信アプリケーション521は、その時点で図11に示す処理を終了する。システムインタフェースでなければ、配信アプリケーション521は、第1の実施形態同様にS1006で再帰的に自身のルーチンをコールする。
これにより依存関係を持たないプリミティブなAPIのみを利用した実装のみのパッケージに至るまでの全ての呼び出しの間接参照を全列挙する一方、システムインタフェースを超えた(経由した)先のパッケージは列挙されないことになる。
なお、S1005で判断の基準になるシステムインタフェースか否かの判断材料としては、例えば、予め特定のパッケージに対して設計者によって情報が付与された定義テーブルをパッケージリストと共に別ファイルとして配信サーバ153に設定する。別の方法としては、Pkg−S903のパッケージ情報ファイル412等にシステムインタフェースである旨を記載する等の方法がある。
(第3の実施形態)
本実施形態の配信アプリケーション521は、パッケージ間(プログラム間)のAPI読み出しにおける間接呼び出しも含めて順次走査し、呼び出し関係がある場合であっても、依存関係が疎であると定義されている場合は、依存関係がないと判断する。例えば、配信アプリケーション521は、開発者等が、パッケージ情報ファイル412等に設定した依存関係か疎か否かを示す情報に基づいて、依存関係が疎か否かを判断する。
本実施形態の配信アプリケーション521は、パッケージ間(プログラム間)のAPI読み出しにおける間接呼び出しも含めて順次走査し、呼び出し関係がある場合であっても、依存関係が疎であると定義されている場合は、依存関係がないと判断する。例えば、配信アプリケーション521は、開発者等が、パッケージ情報ファイル412等に設定した依存関係か疎か否かを示す情報に基づいて、依存関係が疎か否かを判断する。
(第4の実施形態)
上述した実施形態では、配信サーバ153が、図8や図9又は図11に示される処理を実行した。しかしながら、画像処理装置110が、依存パッケージの全列挙の処理等を実行するようにしてもよい。
例えば、本実施形態の配信サーバ153は、配信パッケージリスト503を画像処理装置に配信する。画像処理装置は、図6の稼働パッケージリスト501と個別パッケージリスト502とを保持している。したがって、画像処理装置は、配信サーバ153より配信パッケージリスト503を受け取ると、図8や図9又は図11に示される処理を実行し、図6の504や505に相当するリストを生成する。そして、画像処理装置は、505に相当するリストに含まれるパッケージ(又はプログラム)を自装置にインストールするようにしてもよい。なお、本実施形態の場合、505は、例えば、インストール候補リスト等の名称となる。なお、インストール候補リストは、インストール候補データの一例である。
上述した実施形態では、配信サーバ153が、図8や図9又は図11に示される処理を実行した。しかしながら、画像処理装置110が、依存パッケージの全列挙の処理等を実行するようにしてもよい。
例えば、本実施形態の配信サーバ153は、配信パッケージリスト503を画像処理装置に配信する。画像処理装置は、図6の稼働パッケージリスト501と個別パッケージリスト502とを保持している。したがって、画像処理装置は、配信サーバ153より配信パッケージリスト503を受け取ると、図8や図9又は図11に示される処理を実行し、図6の504や505に相当するリストを生成する。そして、画像処理装置は、505に相当するリストに含まれるパッケージ(又はプログラム)を自装置にインストールするようにしてもよい。なお、本実施形態の場合、505は、例えば、インストール候補リスト等の名称となる。なお、インストール候補リストは、インストール候補データの一例である。
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
以上、上述した各実施形態によれば、画像処理装置は、一括で行うアップデートのサービスを受けつつ、カスタマイズされた状態を保存し続けられる。
また画像処理装置を利用するユーザには安定したファームウェアを利用してもらえる一方で、配信側では個別対応のファームを意識してアップデートを切り分けるような処理とコストとを削減することができる。
したがって、個別にカスタマイズされたプログラムが画像処理装置にインストールされている場合でも、カスタマイズされたプログラムの状態を維持しつつ、一斉配信のプログラムのインストールを適切に行うことができる。
また画像処理装置を利用するユーザには安定したファームウェアを利用してもらえる一方で、配信側では個別対応のファームを意識してアップデートを切り分けるような処理とコストとを削減することができる。
したがって、個別にカスタマイズされたプログラムが画像処理装置にインストールされている場合でも、カスタマイズされたプログラムの状態を維持しつつ、一斉配信のプログラムのインストールを適切に行うことができる。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
Claims (9)
- ネットワークを介して通信可能な複数の画像処理装置にプログラムを配信する配信装置であって、
前記画像処理装置に配信するプログラムを決定する決定手段と、
前記決定手段で決定されたプログラムを前記画像処理装置に配信する配信手段と、
を有し、
前記決定手段は、前記画像処理装置で稼働中の、前記配信装置から配信されたプログラムの一覧である稼働データと、前記画像処理装置に配信しようとしているプログラムの一覧である配信データと、においてプログラムのバージョンに差分がある、新しいバージョンのプログラムで、かつ、前記画像処理装置に個別にインストールされたプログラムの一覧である個別データに記載されていないプログラムの一覧を配信対象データとし、前記配信対象データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析すると共に、前記個別データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析し、前記配信対象データに含まれるプログラムと、前記個別データに含まれるプログラムと、において依存関係がないと判断した前記配信対象データに含まれるプログラムを前記画像処理装置に配信するプログラムに決定する配信装置。 - 前記決定手段は、プログラム間の依存関係を示す情報に基づいて、プログラム間のAPI読み出しにおける間接呼び出しも含めて解析し、呼び出し関係がある場合は、依存関係があると判断する請求項1記載の配信装置。
- 前記決定手段は、プログラム間の依存関係を示す情報に基づいて、プログラム間のAPI読み出しにおける間接呼び出しも含めて解析し、間接呼び出し中に特定のインタフェースを経由している場合は、依存関係がないと判断する請求項1記載の配信装置。
- 前記決定手段は、プログラム間の依存関係を示す情報に基づいて、プログラム間のAPI読み出しにおける間接呼び出しも含めて解析し、呼び出し関係がある場合であっても、依存関係が疎であると定義されている場合は、依存関係がないと判断する請求項1記載の配信装置。
- ネットワークを介して通信可能な配信装置から配信されたプログラムをインストールする画像処理装置であって、
前記配信装置から配信されたプログラムのうち、前記画像処理装置にインストールするプログラムを決定する決定手段と、
前記決定手段で決定されたプログラムを前記画像処理装置にインストールするインストール手段と、
を有し、
前記決定手段は、前記画像処理装置で稼働中の、前記配信装置から配信されたプログラムの一覧である稼働データと、前記配信装置から配信されたプログラムの一覧である配信データと、においてプログラムのバージョンに差分がある、新しいバージョンのプログラムで、かつ、前記画像処理装置に個別にインストールされたプログラムの一覧である個別データに記載されていないプログラムの一覧をインストール候補データとして、前記インストール候補データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析すると共に、前記個別データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析し、前記インストール候補データに含まれるプログラムと、前記個別データに含まれるプログラムと、において依存関係がないと判断した前記インストール候補データに含まれるプログラムを前記画像処理装置にインストールするプログラムに決定する画像処理装置。 - ネットワークを介して通信可能な複数の画像処理装置にプログラムを配信する配信装置における配信方法であって、
前記画像処理装置に配信するプログラムを決定する決定ステップと、
前記決定ステップで決定されたプログラムを前記画像処理装置に配信する配信ステップと、
を含み、
前記決定ステップでは、前記画像処理装置で稼働中の、前記配信装置から配信されたプログラムの一覧である稼働データと、前記画像処理装置に配信しようとしているプログラムの一覧である配信データと、においてプログラムのバージョンに差分がある、新しいバージョンのプログラムで、かつ、前記画像処理装置に個別にインストールされたプログラムの一覧である個別データに記載されていないプログラムの一覧を配信対象データとし、前記配信対象データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析すると共に、前記個別データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析し、前記配信対象データに含まれるプログラムと、前記個別データに含まれるプログラムと、において依存関係がないと判断した前記配信対象データに含まれるプログラムを前記画像処理装置に配信するプログラムに決定する配信方法。 - ネットワークを介して通信可能な配信装置から配信されたプログラムをインストールする画像処理装置におけるインストール方法であって、
前記配信装置から配信されたプログラムのうち、前記画像処理装置にインストールするプログラムを決定する決定ステップと、
前記決定ステップで決定されたプログラムを前記画像処理装置にインストールするインストールステップと、
を含み、
前記決定ステップでは、前記画像処理装置で稼働中の、前記配信装置から配信されたプログラムの一覧である稼働データと、前記配信装置から配信されたプログラムの一覧である配信データと、においてプログラムのバージョンに差分がある、新しいバージョンのプログラムで、かつ、前記画像処理装置に個別にインストールされたプログラムの一覧である個別データに記載されていないプログラムの一覧をインストール候補データとして、前記インストール候補データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析すると共に、前記個別データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析し、前記インストール候補データに含まれるプログラムと、前記個別データに含まれるプログラムと、において依存関係がないと判断した前記インストール候補データに含まれるプログラムを前記画像処理装置にインストールするプログラムに決定するインストール方法。 - ネットワークを介して通信可能な複数の画像処理装置にプログラムを配信するコンピュータを、
前記画像処理装置に配信するプログラムを決定する決定手段と、
前記決定手段で決定されたプログラムを前記画像処理装置に配信する配信手段と、
として機能させる制御プログラムであって、
前記決定手段は、前記画像処理装置で稼働中の、前記コンピュータから配信されたプログラムの一覧である稼働データと、前記画像処理装置に配信しようとしているプログラムの一覧である配信データと、においてプログラムのバージョンに差分がある、新しいバージョンのプログラムで、かつ、前記画像処理装置に個別にインストールされたプログラムの一覧である個別データに記載されていないプログラムの一覧を配信対象データとし、前記配信対象データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析すると共に、前記個別データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析し、前記配信対象データに含まれるプログラムと、前記個別データに含まれるプログラムと、において依存関係がないと判断した前記配信対象データに含まれるプログラムを前記画像処理装置に配信するプログラムに決定する制御プログラム。 - ネットワークを介して通信可能な配信装置から配信されたプログラムをインストールするコンピュータを、
前記配信装置から配信されたプログラムのうち、前記コンピュータにインストールするプログラムを決定する決定手段と、
前記決定手段で決定されたプログラムを前記コンピュータにインストールするインストール手段と、
して機能させる制御プログラムであって、
前記決定手段は、前記コンピュータで稼働中の、前記配信装置から配信されたプログラムの一覧である稼働データと、前記配信装置から配信されたプログラムの一覧である配信データと、においてプログラムのバージョンに差分がある、新しいバージョンのプログラムで、かつ、前記コンピュータに個別にインストールされたプログラムの一覧である個別データに記載されていないプログラムの一覧をインストール候補データとして、前記インストール候補データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析すると共に、前記個別データに含まれるプログラムのプログラム間の依存関係を示す情報に基づいて、プログラム間の呼び出しを解析し、前記インストール候補データに含まれるプログラムと、前記個別データに含まれるプログラムと、において依存関係がないと判断した前記インストール候補データに含まれるプログラムを前記コンピュータにインストールするプログラムに決定する制御プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010112508A JP2011242891A (ja) | 2010-05-14 | 2010-05-14 | 配信装置、画像処理装置、配信方法及びインストール方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010112508A JP2011242891A (ja) | 2010-05-14 | 2010-05-14 | 配信装置、画像処理装置、配信方法及びインストール方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011242891A true JP2011242891A (ja) | 2011-12-01 |
Family
ID=45409494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010112508A Pending JP2011242891A (ja) | 2010-05-14 | 2010-05-14 | 配信装置、画像処理装置、配信方法及びインストール方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011242891A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017138917A (ja) * | 2016-02-05 | 2017-08-10 | 富士通株式会社 | プログラム、情報処理方法および情報処理装置 |
US9792107B2 (en) | 2014-01-10 | 2017-10-17 | Canon Kabushiki Kaisha | Image forming apparatus that performs firmware update, control method therefor, and storage medium |
JP2020086632A (ja) * | 2018-11-19 | 2020-06-04 | 株式会社リコー | 情報処理装置、プログラム更新方法、ソフトウェア更新プログラム |
WO2020202433A1 (ja) * | 2019-04-01 | 2020-10-08 | 富士通株式会社 | 情報処理装置およびapi使用履歴表示プログラム |
JP2021002249A (ja) * | 2019-06-24 | 2021-01-07 | 株式会社リコー | 情報処理装置、及び情報処理方法 |
US10983780B2 (en) | 2018-11-14 | 2021-04-20 | Ricoh Company, Ltd. | Information processing apparatus, information processing method, and recording medium |
-
2010
- 2010-05-14 JP JP2010112508A patent/JP2011242891A/ja active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9792107B2 (en) | 2014-01-10 | 2017-10-17 | Canon Kabushiki Kaisha | Image forming apparatus that performs firmware update, control method therefor, and storage medium |
JP2017138917A (ja) * | 2016-02-05 | 2017-08-10 | 富士通株式会社 | プログラム、情報処理方法および情報処理装置 |
US10983780B2 (en) | 2018-11-14 | 2021-04-20 | Ricoh Company, Ltd. | Information processing apparatus, information processing method, and recording medium |
JP2020086632A (ja) * | 2018-11-19 | 2020-06-04 | 株式会社リコー | 情報処理装置、プログラム更新方法、ソフトウェア更新プログラム |
JP7196554B2 (ja) | 2018-11-19 | 2022-12-27 | 株式会社リコー | 情報処理装置、プログラム更新方法、ソフトウェア更新プログラム |
WO2020202433A1 (ja) * | 2019-04-01 | 2020-10-08 | 富士通株式会社 | 情報処理装置およびapi使用履歴表示プログラム |
JPWO2020202433A1 (ja) * | 2019-04-01 | 2021-11-25 | 富士通株式会社 | 情報処理装置およびapi使用履歴表示プログラム |
JP7218797B2 (ja) | 2019-04-01 | 2023-02-07 | 富士通株式会社 | 情報処理装置およびapi使用履歴表示プログラム |
US11762720B2 (en) | 2019-04-01 | 2023-09-19 | Fujitsu Limited | Information processing apparatus and non-transitory computer-readable storage medium for storing API use history display program |
JP2021002249A (ja) * | 2019-06-24 | 2021-01-07 | 株式会社リコー | 情報処理装置、及び情報処理方法 |
JP7338264B2 (ja) | 2019-06-24 | 2023-09-05 | 株式会社リコー | 情報処理装置、及び情報処理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4861883B2 (ja) | 画像形成装置及びアプリケーション実行方法 | |
US7533381B2 (en) | Image forming apparatus and method for operating image forming apparatus by using remote application | |
JP4597834B2 (ja) | 画像形成装置、情報処理方法、情報処理プログラム及び記録媒体 | |
US8665466B2 (en) | Image forming apparatus, program updating method and computer-readable storage medium | |
US8094330B2 (en) | Image forming apparatus that can launch external applications selectively after shipment of the apparatus | |
US10296401B2 (en) | Apparatus and method that determine whether the apparatus can execute an application program | |
US8959120B2 (en) | Information processing apparatus, information processing method, and function expansion program | |
US20110202433A1 (en) | License management system, license management method, and computer program product | |
JP2010165128A (ja) | 画像形成装置及び制御方法及びプログラム | |
JP5487962B2 (ja) | 操作抑制システム、画像形成装置、操作抑制情報提供装置、及び操作抑制方法 | |
JP2011242891A (ja) | 配信装置、画像処理装置、配信方法及びインストール方法 | |
JP2010266953A (ja) | 情報処理装置、情報処理システム、及びプログラム | |
JP2008295027A (ja) | 画像形成装置、情報処理方法、及び情報処理プログラム | |
US20060279777A1 (en) | Grid computing system, and job allocation method in grid computing system | |
JP2004303216A (ja) | 情報処理装置,画像形成装置,プログラム起動時のエラー処理方法および記録媒体 | |
JP2008305004A (ja) | 画像形成装置、アプリケーション実行方法及びアプリケーション実行プログラム | |
CN109660688B (zh) | 信息处理装置及其控制方法 | |
JP6303667B2 (ja) | プログラム、情報処理装置および情報処理システム | |
JP2006311590A (ja) | 画像形成装置およびアプリケーションインストール方法 | |
JP2019128857A (ja) | デバイスドライバー | |
JP2006268643A (ja) | プログラム、情報処理装置および印刷システム | |
JP2005269439A (ja) | 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体 | |
JP2011197827A (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
JP2006271005A (ja) | 画像形成装置およびアプリケーションインストール方法 | |
JP2009194862A (ja) | 情報取得方法、画像形成装置、および画像形成システム |