以下に添付図面を参照して、この発明にかかる情報処理装置の最良な実施の形態を詳細に説明する。
(第1の実施の形態)
図1は、実施の形態1にかかる情報処理装置200が接続されているソフトウェア配信システムの構成を示す概要図である。図1に示すように、ソフトウェア配信システムは、情報処理装置200と、ライセンス管理サーバ300と、ソフトウェア配信サーバ400とが、インターネットなどのネットワーク80を介して接続されている。そして、情報処理装置200とネットワーク80との間には、ファイアウォール90が設けられている。また、情報処理装置200は、複数の複合機100a、100b、100c(以下、特定しない複合機を単に複合機100と称する。)が、ネットワーク80とは異なるネットワーク、例えばLAN等で接続されている。
ファイアウォール90は、インターネットなどの外部ネットワークを通じて情報処理装置200に侵入した第三者により不正が行われないように、外部との境界を流れるデータを監視し、不正なアクセスを検出・遮断する。
複合機100a、100b、100cは、コピー、ファックス、プリンタなどの複数の機能を備えた装置であって、ローカルネットワークにより情報処理装置200に接続されている。また、本実施の形態のソフトウェア配信システムでは、3台の複合機100a、100b、100cが接続されているが、これに限定されることなく、1台、2台、または4台以上の複合機を接続した構成としてもよい。
また、複合機100には、複数の構成要素で構成されているアプリケーションがインストールされており、複合機100は、当該構成要素の構造をソフトウェア構成情報として記憶している。
ソフトウェア配信サーバ400は、複合機100にインストールされるソフトウェアを保持しており、該ソフトウェアを、情報処理装置200を介して複合機100に提供する装置である。ここで、ソフトウェア配信サーバ400が保持しているソフトウェアには、当該ソフトウェアが他の装置に配信可能な構成要素の構成一覧を記述したソフトウェア構成情報が対応付けられている。
ライセンス管理サーバ300は、ソフトウェア配信サーバ400から提供され、複合機100にインストールされるソフトウェアのライセンス(利用権)を、情報処理装置200を介して管理する装置である。
情報処理装置200は、ソフトウェア配信サーバ400およびライセンス管理サーバ300と、複合機100a、100b、100cとの間で行われる処理を仲介する装置である。具体的には、ソフトウェア配信サーバ400が提供するソフトウェアを複合機100a、100b、100cに送信したり、ライセンス管理サーバ300が管理するソフトウェアのライセンスファイルを要求したりして、複合機100a、100b、100cに送信する。ここで、ライセンスファイルとは、ソフトウェアのライセンスが記述されたデータである。
図2は、ネットワーク80を介して接続されている情報処理装置200とソフトウェア配信サーバ400の構成を示すブロック図である。
まず、情報処理装置200は、本図に示すように、入力制御部201と、構成情報取得部202と、構成解析部203と、通信部204と、表示制御部205と、HDD(Hard Disk Drive)210とを主に備え、入力装置220と表示装置230と接続されている。
構成情報取得部202は、情報処理装置200と接続されているすべての複合機100にインストールされているアプリケーションのソフトウェア構成情報を、ローカルネットワークを介して定期的に取得する。
図3は、ソフトウェア構成情報の一例を示す図である。ソフトウェア構成情報は、複数の階層で構成されている。図3では、ソフトウェア構成情報500は、最上位層であり、アプリケーションやユーザにとって価値のあるサービス機能レベルの要素501と、要素機能モジュールあるいはサービスコンポーネントが所属する502と、フレームワークやドライバなど下位層レベルの機能を吸収しアプリケーション向けに適したサービスとして提供する503とから構成される。
アプリケーション500では、3層構造で示しているが、システムの規模や各層の責務により階層数は変化する。また、各層内のボックスはまとまった機能あるいはモジュールを示しており、それぞれが下位層のボックスに依存し、逆に下位層から上位層への依存はないものとなっている。
HDD210は、構成情報取得部202により取得された、情報処理装置200とローカルネットワークで接続されている複合機100にインストールされているアプリケーションのソフトウェア構成情報を記憶する。
表示制御部205は、複合機100にインストール可能なアプリケーションの一覧等を表示装置230に表示する。
入力制御部201は、入力装置220から、ユーザによる複合機100に対するインストール対象となるアプリケーションの指定や、インストール要求の指示等の入力を受け付ける。
通信部204は、入力されたインストール対象となるアプリケーションを複合機100から受信したり、ソフトウェア配信サーバ400にソフトウェア配信要求を送信したり、ソフトウェア配信サーバ400から配信要求にかかるインストール対象となるアプリケーションのソフトウェア構成情報(以下、「配信要求にかかるアプリケーションのソフトウェア構成情報」という。)や、配信要求にかかるインストール対象となるアプリケーションのソフトウェア(以下、「配信要求にかかるソフトウェア」という。)を受信したりする。
構成解析部203は、すべての複合機100から取得したアプリケーションのソフトウェア構成情報を解析し、すべてのアプリケーションのソフトウェア構成情報に共通する構成要素である共通構成部を求める。
具体的には、複合機100から取得したアプリケーションのソフトウェア構成情報それぞれから構成要素を抽出し、抽出した構成要素のうち、取得したすべてのソフトウェア構成情報に共通する構成要素をカテゴリ化し、共通構成部とする。
図4−1から図4−3は、それぞれアプリケーションのソフトウェア構成情報を示す図である。図4−1は、複合機100aにインストールされているアプリケーションのソフトウェア構成情報を示す図であり、図4−2は、複合機100bにインストールされているアプリケーションのソフトウェア構成情報を示す図であり、図4−3は、複合機100cにインストールされているアプリケーションのソフトウェア構成情報を示す図である。
ここで、図4−1から図4−3に示すように、複合機100aと複合機100bと複合機100cすべてに共通する構成要素は、「2−1と2−2と2−3」であり、これらが共通構成部となる。
構成解析部203は、また、ソフトウェア配信サーバ400から受信したアプリケーションのソフトウェア構成情報と、上記のように求めた共通構成部とに基づいて、インストール対象となるアプリケーションの構成要素のうち、複合機100にインストールされているアプリケーションのソフトウェア構成情報それぞれに個別の構成要素である個別構成部を求める。
具体的には、まず、複合機100から受信したそれぞれのアプリケーションのソフトウェア構成情報が示す構成要素と、共通構成部の構成要素との差分の構成要素を個別構成部として抽出する。
図4−1では、複合機100aにインストールされているアプリケーションのソフトウェア構成情報が示す構成要素の「1−1と2−1と2−2と2−3」から共通構成部の構成要素である「2−1と2−2と2−3」との差分の構成要素である「1−1」を複合機100aの個別構成部として抽出する。
また、図4−2では、複合機100bにインストールされているアプリケーションのソフトウェア構成情報が示す構成要素の「1−2と2−1と2−2と2−3」から共通構成部の構成要素である「2−1と2−2と2−3」との差分の構成要素である「1−2」を複合機100bの個別構成部として抽出する。
同様に、図4−3では、複合機100cにインストールされているアプリケーションのソフトウェア構成情報が示す構成要素の「1−3と2−1と2−2と2−3」から共通構成部の構成要素である「2−1と2−2と2−3」との差分の構成要素である「1−3」を複合機100cの個別構成部として抽出する。
構成解析部203は、さらに、上記より算出した複合機100のすべての個別構成部と共通構成部とを示すコンパクト化情報を生成する。ここで、コンパクト化情報とは、ソフトウェア配信サーバ400への配信要求にかかるソフトウェア構成情報であって、複合機100すべてに対してインストール可能かつ最小のソフトウェア構成を示すものである。
図5は、コンパクト化情報の一例を示す図である。図5に示すように、コンパクト化情報600は、複合機100それぞれについての個別構成部602(「1−1」と「1−2」と「1−3」)と1つの共通構成部601(「2−1と2−2と2−3」)とから構成されている。
従来は、複合機100すべてにアプリケーションをインストールするには、個別構成部(「1−1」)と共通構成部(「2−1と2−2と2−3」)、個別構成部(「1−2」)と共通構成部(「2−1と2−2と2−3」)、個別構成部(「1−3」)と共通構成部(「2−1と2−2と2−3」)をそれぞれ個別にダウンロードする必要があった。
しかし、このように、ソフトウェア配信サーバ400への配信要求にかかるアプリケーションのソフトウェア構成情報を、共通構成部と個別構成部にコンパクト化することにより、共通構成部の重複する取得要求を排除することが可能となる。
次に、情報処理装置200とネットワーク80を介して接続されているソフトウェア配信サーバ400は、図2に示すように、送信部401と、受信部404と、ソフトウェア取得部403と、HDD410とを主に備えている。
HDD410は、各種アプリケーションを、アプリケーションを構成する構成要素を示すソフトウェア構成情報と対応付けて保存する。
構成情報取得部402は、HDD410から、情報処理装置200からの配信要求にかかるアプリケーションのソフトウェア構成情報を取得する。
ソフトウェア取得部403は、HDD410から、情報処理装置200から受信したコンパクト化情報に対応するソフトウェアを取得する。
受信部404は、情報処理装置200から、インストール対象となるアプリケーションの配信要求や、コンパクト化情報を受信する。
送信部401は、配信要求にかかるソフトウェア構成情報や、コンパクト化情報に対応するソフトウェアを情報処理装置200に送信する。
次に、本実施の形態にかかる複合機100の全体の機能的構成について説明する。図6は、実施の形態1の複合機100の構成を示すブロック図である。複合機100は、白黒レーザプリンタ(B&W LP)101と、カラーレーザプリンタ(Color LP)102と、ハードディスク装置(HDD)103と、スキャナ、ファクシミリ、メモリ、ネットワークインタフェースなどのハードウェアリソース104を有するとともに、プラットホーム120と、アプリケーション130とから構成されるソフトウェア群110とを備えている。
プラットホーム120は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ(SRM)123と、汎用OS121とを有する。
コントロールサービスは、複数のサービスモジュールから形成され、SCS(システムコントロールサービス)122と、ECS(エンジンコントロールサービス)124と、MCS(メモリコントロールサービス)125と、OCS(オペレーションパネルコントロールサービス)126と、FCS(ファックスコントロールサービス)127と、NCS(ネットワークコントロールサービス)128とから構成される。このプラットホーム120は、あらかじめ定義された関数により前記アプリケーション130から処理要求を受信可能とするアプリケーションプログラムインタフェース(API)を有する。
汎用OS121は、UNIX(登録商標)などの汎用オペレーティングシステムであり、プラットホーム120並びにアプリケーション130の各ソフトウェアをそれぞれプロセスとして並列実行する。
SRM123のプロセスは、SCS122とともにシステムの制御およびリソースの管理を行うものである。SRM123のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、HDDファイル、ホストI/O(セントロI/F、ネットワークI/F、IEEE1394 I/F、RS232C I/Fなど)のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
具体的には、このSRM123は、要求されたハードウェア資源が利用可能であるか(他の要求により利用されていないかどうか)を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、SRM123は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容(例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施している。
SCS122のプロセスは、アプリ管理、操作部制御、システム画面表示、LED表示、リソース管理、割り込みアプリ制御などを行う。
ECS124のプロセスは、白黒レーザプリンタ(B&W LP)101、カラーレーザプリンタ(Color LP)102、スキャナ、ファクシミリなどからなるハードウェアリソース104のエンジンの制御を行う。
MCS125のプロセスは、画像メモリの取得および解放、ハードディスク装置(HDD)の利用、画像データの圧縮および伸張などを行う。
FCS127のプロセスは、システムコントローラの各アプリ層からPSTN/ISDN網を利用したファクシミリ送受信、BKM(バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのAPIを提供する。
NCS128のプロセスは、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信したりする際の仲介を行う。
NRS(ニューリモートサービス)129は、ネットワークを介してデータを送受信する際のデータの変換を行うなど、ネットワークを介した遠隔管理に関する機能およびスケジューラ機能を実現するアプリケーションである。
アプリインストール制御サービス131は、情報処理装置200からインストール信号を受信すると、情報処理装置200から受信したパッケージのうち、自機に対応する構成要素をインストールする。
OCS126のプロセスは、オペレータ(ユーザ)と本体制御間の情報伝達手段となるオペレーションパネル(操作パネル)910の制御を行う。OCS126は、オペレーションパネルからキー押下(またはタッチ操作)をキーイベントとして取得し、取得したキーに対応したキーイベント関数をSCS122に送信するOCSプロセスの部分と、アプリケーション130またはコントロールサービスからの要求によりオペレーションパネルに各種画面を描画出力する描画関数やその他オペレーションパネルに対する制御を行う関数などがあらかじめ登録されたOCSライブラリの部分とから構成される。このOCSライブラリは、アプリケーション130およびコントロールサービスの各モジュールにリンクされて実装されている。なお、OCS126のすべてをプロセスとして動作させるように構成しても良く、あるいはOCS126のすべてをOCSライブラリとして構成しても良い。
アプリケーション130は、ページ記述言語(PDL)、PCLおよびポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ111と、コピー用アプリケーションであるコピーアプリ112と、ファクシミリ用アプリケーションであるファックスアプリ113と、スキャナ用アプリケーションであるスキャナアプリ114と、ネットワークファイル用アプリケーションであるネットファイルアプリ115と、工程検査用アプリケーションである工程検査アプリ116と、インターネットに接続されたPC等のクライアント端末に対してWEBサーバ(httpサーバ)として動作し、クライアント端末上で動作するWEBブラウザに各種画面を表示するWEBアプリ171とを有している。
アプリケーション130の各プロセス、コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信およびメッセージの送受信によってプロセス間通信を行いながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを実現している。
このように、実施の形態1にかかる複合機100には、複数のアプリケーション130および複数のコントロールサービスが存在し、いずれもプロセスとして動作している。そして、これらの各プロセス内部には、一または複数のスレッドが生成されて、スレッド単位の並列実行が行われる。そして、コントロールサービスがアプリケーション130に対し共通サービスを提供しており、このため、これらの多数のプロセスが並列動作、およびスレッドの並列動作を行って互いにプロセス間通信を行って協調動作をしながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを提供するようになっている。
また、複合機100には、複合機100の顧客、サードベンダなどの第三者がコントロールサービス層の上のアプリケーション層に外部アプリ172を開発して搭載することが可能となっている。この外部アプリ172は、アプリインストール制御部131によりネットワークを介してインストールされる。
なお、実施の形態1にかかる複合機100では、複数のアプリケーション130のプロセスと複数のコントロールサービスのプロセスとが動作しているが、アプリケーション130とコントロールサービスのプロセスがそれぞれ単一の構成とすることも可能である。また、各アプリケーション130は、アプリケーションごとに追加または削除することができる。すなわち、上述したように、外部アプリ172をインストール可能であり、かつアンインストールも可能となっている。
次に、ソフトウェア配信システムによるソフトウェア配信処理について説明する。図7は、ソフトウェア配信処理の手順を示すシーケンス図である。
情報処理装置200は、構成情報取得部202により、複合機100a、複合機100b、複合機100cすべてからそれぞれにインストールされているアプリケーションのソフトウェア構成情報を定期的に取得する(ステップS101)。
ここでは、図8−1から図8−3に示すソフトウェア構成情報を取得する。図8−1は、複合機100aにインストールされているアプリケーションのソフトウェア構成情報を示す図であり、図8−2は、複合機100bにインストールされているアプリケーションのソフトウェア構成情報を示す図であり、図8−3は、複合機100cにインストールされているアプリケーションのソフトウェア構成情報を示す図である。
情報処理装置200は、構成解析部203は、取得したソフトウェア構成情報から共通構成部を算出する(ステップS102)。
具体的には、図8−1から図8−3に示した複合機100aと複合機100bと複合機100cのソフトウェア構成情報の構成要素を抽出すると、すべてに共通する構成要素は、図9に示すように、「2−1と2−2と2−3」となり、これを共通構成部とする。
情報処理装置200の入力制御部201は、表示制御部205により表示装置230に表示された一覧から、インストール対象となるアプリケーションの選択を受け付ける(ステップS103)。
情報処理装置200の通信部204は、選択されたアプリケーションのインストール要求をソフトウェア配信サーバ400に送信する(ステップS104)。
ソフトウェア配信サーバ400の構成情報取得部402は、配信要求にかかるアプリケーションのソフトウェア構成情報をHDD410より取得し、送信部401は、取得した配信要求にかかるアプリケーションのソフトウェア構成情報を情報処理装置200に送信する(ステップS105)。
情報処理装置200の構成解析部203は、通信部204により、ソフトウェア配信サーバ400から配信要求にかかるアプリケーションのソフトウェア構成情報を受信すると、配信要求にかかるアプリケーションのソフトウェア構成情報をコンパクト化した情報であるコンパクト化情報を生成する(ステップS106)。
具体的には、本実施形態では、図9に示した共通構成部「2−1と2−2と2−3」と、図10−1に示す複合機100aの個別構成部「1−1」と、図10−2に示す複合機100bの個別構成部「1−2」と、図10−3に示す複合機100cの個別構成部「1−3」とを合算したものがコンパクト化情報である。
情報処理装置200の通信部204は、コンパクト化情報を、ソフトウェア配信サーバ400に送信する(ステップS107)。
ソフトウェア配信サーバ400のソフトウェア取得部403は、受信部404によりコンパクト化情報を受信すると、コンパクト化情報に対応するソフトウェアを取得し、複合機100aと複合機100bと複合機100cすべてにインストールするソフトウェアとしてパッケージを作成する(ステップS108)。
ソフトウェア配信サーバ400の送信部401は、ソフトウェア取得部403により作成されたパッケージを情報処理装置200に送信する(ステップS109)。
情報処理装置200の通信部204は、ソフトウェア配信サーバ400からパッケージを受信すると、受信したパッケージを複合機100aと複合機100bと複合機100cすべてに送信する(ステップS110)。
ここで、情報処理装置200の通信部204は、複合機100aと複合機100bと複合機100c、それぞれに対応する個別構成部だけを最初に送信し、個別構成部を送信した後に共通構成部を送信することも可能である。
情報処理装置200の通信部204は、次いで、複合機100aと複合機100bと複合機100cすべてにインストール信号を送信する(ステップS111)。
複合機100aと複合機100bと複合機100cのアプリインストール制御サービス131は、インストール信号により、受信したパッケージのうち、共通構成部と自機の個別構成部とをインストールする(ステップS112)。
具体的には、複合機100aは、図9に示した共通構成部「2−1と2−2と2−3」と図10−1に示した個別構成部「1−1」をインストールする。また、複合機100bは、図9に示した共通構成部「2−1と2−2と2−3」と図10−2に示した個別構成部「1−2」をインストールする。さらに、複合機100cは、図9に示した共通構成部「2−1と2−2と2−3」と図10−3に示した個別構成部「1−3」とインストールする。
なお、複合機100aと複合機100bと複合機100cはそれぞれ、最初に自機に対応する個別構成部をインストールし、個別構成部をインストールした後に共通構成部をインストールすることも可能である。
このように、本実施の形態によれば、複合機100の台数にかかわらず一括してインストール対象となるアプリケーションをソフトウェア配信サーバ400から受信するので、情報処理装置200とソフトウェア配信サーバ400との通信負荷を軽減することが可能となる。
(第2の実施の形態)
図11は、実施の形態2にかかる情報処理装置700の構成を示すブロック図である。本図に示すように情報処理装置700は、入力制御部201と、構成情報取得部702と、構成解析部703と、通信部204と、表示制御部205と、キャッシュメモリ706と、HDD710とを主に備えている。なお、システム構成については、実施の形態1と同様である。
実施の形態1にかかる情報処理装置200では、構成情報取得部202は、複合機100それぞれにインストールされているアプリケーションのソフトウェア構成情報すべてを定期的に取得していた。
これに対し、本実施の形態では、構成情報取得部702は、複合機1200それぞれにインストールされているアプリケーションのソフトウェア構成情報をそれぞれ個別に取得する。
また、実施の形態1にかかる情報処理装置200では、構成解析部203は、複合機100すべてにインストールされているアプリケーションのソフトウェア構成情報から共通構成部を求めた。
これに対し、本実施の形態では、構成解析部703は、取得されたソフトウェア構成情報のうち、キャッシュメモリ706に保存されている構成要素の差分を個別構成部として算出する。
まず、情報処理装置700の各部の構成および機能について説明する。なお、構成情報取得部702と、構成解析部703と、キャッシュメモリ706以外の各部の構成および機能は実施の形態1にかかる情報処理装置200と同様であるので、説明を省略する。
構成情報取得部702は、情報処理装置700と接続されている複合機1200のいずれか1つから、複合機1200にインストールされているアプリケーションのソフトウェア構成情報を、ローカルネットワークを介して取得する。
キャッシュメモリ706は、通信部204から受信したソフトウェアの構成要素を保存する。
構成解析部703は、ソフトウェア配信サーバ800から受信した配信要求にかかるアプリケーションのソフトウェア構成情報が示す構成要素と、複合機1200から取得した複合機1200にインストールされているアプリケーションのソフトウェア構成情報が示す構成要素から、ソフトウェア配信サーバ800より取得する構成要素(以下、「取得構成要素」という。)を求める。
具体的には、配信要求にかかるソフトウェア構成情報と、複合機1200から取得したソフトウェア構成情報それぞれから構成要素を抽出し、配信要求にかかるソフトウェア構成情報のうち、複合機1200から取得したソフトウェア構成情報に対応するソフトウェア構成情報(以下、「取得構成情報」という。)として生成する。
また、複合機1200から取得されたソフトウェア構成情報の構成要素のうち、キャッシュメモリ706に保存されているソフトウェアの構成要素と同じ構成要素があるか否かを比較し、同じ構成要素がある場合には、当該同じ構成要素を差し引いた構成要素を複合機1200が個別に有する構成要素を示す個別構成情報として抽出する。
次に、情報処理装置700とネットワーク80を介して接続されているソフトウェア配信サーバ800の各部の構成および機能について説明する。なお、ソフトウェア取得部803以外の構成および機能は、実施の形態1にかかるソフトウェア配信サーバ400と同様であるので、説明を省略する。
ソフトウェア取得部803は、HDD410から、情報処理装置700から受信した配信要求にかかるアプリケーションのソフトウェア構成情報に対応するソフトウェアの構成要素を取得する。
次に、本実施の形態にかかる複合機1200の全体の機能的構成について説明する。図12は、実施の形態2の複合機1200の構成を示すブロック図である。なお、アプリインストール制御サービス1231以外の各部の構成および機能は、実施の形態1の複合機100と同様であるので説明を省略する。
アプリインストール制御サービス1231は、情報処理装置700からインストール信号を受信すると、情報処理装置700から受信したソフトウェアをインストールする。
次に、ソフトウェア配信システムによるソフトウェア配信処理について説明する。図13−1から図13−3は、複合機1200へのソフトウェア配信処理の手順を説明するシーケンス図である。まず、図13−1により、複合機1200aへのインストール処理について説明する。
情報処理装置700の入力制御部201は、表示制御部205により表示装置230に表示された一覧から、インストール対象となるアプリケーションの選択を受け付ける(ステップS201)。
情報処理装置700は、構成情報取得部702により、複合機1200aにインストールされているアプリケーションのソフトウェア構成情報を取得する(ステップS202)。
ここでは、図14−1に示すソフトウェア構成情報を取得する。図14−1は、複合機1200aにインストールされているアプリケーションのソフトウェア構成情報を示す図である。図14−1に示すように、複合機1200aにインストールされているアプリケーションの構成要素は「1−1と2−1と2−2と2−3」であり、構成情報取得部702はこれらを複合機1200aにインストールされているアプリケーションのソフトウェア構成情報として取得する。
情報処理装置700の通信部204は、選択されたアプリケーションの配信要求をソフトウェア配信サーバ800に送信する(ステップS203)。
ソフトウェア配信サーバ800の構成情報取得部402は、配信要求にかかるアプリケーションのソフトウェア構成情報をHDD410から取得し、送信部401は、取得したソフトウェア構成情報を情報処理装置700に送信する(ステップS204)。
情報処理装置700の構成解析部703は、通信部204により、ソフトウェア配信サーバ800からの配信要求にかかるソフトウェア構成情報を取得すると、取得構成情報を算出する(ステップS205)。
情報処理装置700の通信部204は、算出された複合機1200aへの取得構成情報をソフトウェア配信サーバ800に送信する(ステップS206)。
ソフトウェア配信サーバ800は、受信部404により取得構成情報を受信すると、ソフトウェア取得部803により、受信した取得構成情報に対応するソフトウェアを取得する(ステップS207)。
ソフトウェア配信サーバ800の送信部401は、ソフトウェア取得部803により取得構成情報に対応するソフトウェアを情報処理装置700に送信する(ステップS208)。
情報処理装置700の通信部204は、ソフトウェア配信サーバ800から取得構成情報に対応するソフトウェアを受信すると、受信した取得構成情報に対応するソフトウェアをキャッシュメモリ706に保存するとともに(ステップS209)、取得構成情報に対応するソフトウェアを複合機1200aに送信する(ステップS210)。
情報処理装置700の通信部204は、次いで、複合機1200aにインストール信号を送信する(ステップS211)。
複合機1200aのアプリインストール制御サービス1231は、インストール信号により、受信した取得構成情報に対応するソフトウェアをインストールする(ステップS212)。
具体的には、複合機100aは、図15に示した複合機1200aにインストールされているアプリケーションに対応する構成要素「1−1と2−1と2−2と2−3」をインストールする。
次に、図13−2により、複合機1200bへのソフトウェア配信処理について説明する。
情報処理装置700の構成情報取得部702は、複合機1200bから複合機1200bにインストールされているアプリケーションのソフトウェア構成情報を取得する(ステップS221)。
ここでは、図14−2に示すソフトウェア構成情報を取得する。図14−2は、複合機1200bにインストールされているアプリケーションのソフトウェア構成情報を示す図である。図14−2に示すように、複合機1200bにインストールされているアプリケーションの構成要素は「1−2と2−1と2−2と2−3」であり、構成情報取得部702はこれらを複合機1200bにインストールされているアプリケーションのソフトウェア構成情報として取得する。
情報処理装置700の構成解析部703は、複合機1200bへのインストール対象となるアプリケーションのソフトウェア構成情報を算出する(ステップS222)。
ここで、情報処理装置700のキャッシュメモリ706には、ステップS209で、ソフトウェア配信サーバ800からすでに受信した複合機1200aの配信要求にかかるソフトウェアが保存されている。
そこで、情報処理装置700の構成解析部703は、複合機1200bから取得したソフトウェア構成情報が示す構成要素と、保存されているソフトウェアの構成要素との差分の構成要素を、ソフトウェア配信サーバ800から取得する構成要素を示す取得構成要素として求める。
具体的には、図14−2に示す複合機1200bにインストールされているアプリケーションのソフトウェア構成情報がが示す構成要素「1−2と2−1と2−2と2−3」から、情報処理装置700のキャッシュメモリ706に保存されているソフトウェアの構成要素「2−1と2−2と2−3」を差し引く。これより、複合機1200bの取得構成要素は、図16に示す「1−2」となる。
情報処理装置700の通信部204は、構成解析部703により算出された取得構成要素を示す取得構成情報をソフトウェア配信サーバ800に送信する(ステップS223)。
ソフトウェア配信サーバ800のソフトウェア取得部803は、受信部404により、情報処理装置700から取得構成情報を受信すると、取得構成情報に対応するソフトウェアをHDD410から取得する(ステップS224)。
ソフトウェア配信サーバ800の送信部401は、ソフトウェア取得部803より取得した取得構成情報に対応するソフトウェアを情報処理装置700に送信する(ステップS225)。
情報処理装置700の通信部204は、取得構成情報に対応するソフトウェアを受信すると、取得構成情報に対応するソフトウェアをキャッシュメモリ706に保存し(ステップS226)、複合機1200bに送信する(ステップS227)。
情報処理装置700の通信部204は、複合機1200bにインストール信号を送信すると(ステップS228)、複合機1200bは、受信した取得構成情報に対応するソフトウェアをインストールする(ステップS229)。
次に、図13−3により、複合機1200cへのソフトウェア配信処理について説明する。
情報処理装置700の構成情報取得部702は、複合機1200cから複合機1200cにインストールされているアプリケーションのソフトウェア構成情報を取得する(ステップS231)。
ここでは、図14−3に示すソフトウェア構成情報を取得する。図14−3は、複合機1200cにインストールされているアプリケーションのソフトウェア構成情報を示す図である。図14−3に示すように、複合機1200cにインストールされているアプリケーションの構成要素は「1−3と2−1と2−2と2−3」であり、構成情報取得部702はこれらを複合機1200cにインストールされているアプリケーションのソフトウェア構成情報として取得する。
情報処理装置700の構成解析部703は、複合機1200cへのインストール対象となるアプリケーションのソフトウェア構成情報を算出する(ステップS232)。
ここで、情報処理装置700のキャッシュメモリ706には、ソフトウェア配信サーバ800からすでに受信した複合機1200aの配信要求にかかるソフトウェアと、複合機1200bの取得構成情報に対応するソフトウェアとが保存されている。そこで、情報処理装置700の構成解析部703は、複合機1200cから取得したソフトウェア構成情報が示す構成要素と、保存されているソフトウェアの構成要素との差分の構成要素を、ソフトウェア配信サーバ800から取得する構成要素を示す取得構成要素として求める。
具体的には、図14−3に示す複合機1200cにインストールされているアプリケーションのソフトウェア構成情報が示す構成要素「1−3と2−1と2−2と2−3」から、情報処理装置700のキャッシュメモリ706に保存されているソフトウェアの構成要素「2−1と2−2と2−3」を差し引く。これより、複合機1200cの取得構成要素は、図17に示す「1−3」となる。
情報処理装置700の通信部204は、構成解析部703により算出された取得構成要素を示す取得構成情報をソフトウェア配信サーバ800に送信する(ステップS233)。
ソフトウェア配信サーバ800のソフトウェア取得部803は、受信部404により、情報処理装置700から取得構成情報を受信すると、取得構成情報に対応するソフトウェアをHDD410から取得する(ステップS234)。
ソフトウェア配信サーバ800の送信部401は、ソフトウェア取得部803より取得した取得構成情報に対応するソフトウェアを情報処理装置700に送信する(ステップS235)。
情報処理装置700の通信部204は、取得構成情報に対応するソフトウェアを受信すると、取得構成情報に対応するソフトウェアをキャッシュメモリ706に保存し(ステップS236)、複合機1200cに送信する(ステップS237)。
情報処理装置700の通信部204は、複合機1200cにインストール信号を送信すると(ステップS238)、複合機1200cのアプリインストール制御サービス1231は、受信した取得構成情報に対応するソフトウェアをインストールする(ステップS239)。
このように、本実施の形態によると、すでにソフトウェア配信サーバから受信し、情報処理装置に保存したソフトウェアについては、重複する配信要求を排除することができるため、通信の負荷を軽減することができる。
また、このように、本実施の形態によると、実施の形態1で説明した一括ダウンロード方式と異なり、定期的に複合機のソフトウェア構成情報を取得し、共通構成部を作成する処理を省くこととなり、処理手順を簡素化するとともに処理コストを削減することができる。
(第3の実施の形態)
図18は、実施の形態3にかかる情報処理装置900の構成を示すブロック図である。本図に示すように情報処理装置900は、入力制御部201と、構成情報取得部702と、構成解析部903と、通信部904と、表示制御部205と、HDD210とを主に備えている。
実施の形態2にかかる情報処理装置700では、構成解析部703は、複合機1200から取得されたソフトウェア構成情報の構成要素のうち、キャッシュメモリ706に保存されているソフトウェアの構成要素と同じ構成要素があるか否かを比較し、同じ構成要素がある場合には、当該同じ構成要素を差し引いた構成要素を複合機1200が個別に有する構成要素を示す個別構成情報として抽出していた。
これに対し、本実施の形態にかかる情報処理装置900では、構成解析部903は、複合機1900から取得されたソフトウェア構成情報の構成要素のうち、複合機1900にすでに送信したソフトウェア(以下、「送信済みソフトウェア」という。)の構成要素と同じ構成要素があるか否かを比較し、個別構成情報を抽出する。
また、実施の形態2にかかる情報処理装置700の通信部204は、ソフトウェア配信サーバ800から受信したソフトウェアをキャッシュメモリ706に保存し、複合機1200の1つに対して送信していた。
これに対し、本実施の形態にかかる情報処理装置900では、通信部904は、ソフトウェア配信サーバ800から受信したソフトウェアをキャッシュメモリに保存せず、複合機1900すべてに送信する。
情報処理装置900の各部の構成および機能について説明する。なお、構成解析部903および通信部904以外の各部の構成および機能は実施の形態1または2と同様であるので、説明を省略する。
構成解析部903は、複合機1900から取得されたソフトウェア構成情報の構成要素のうち、複合機1900にすでに送信済みのソフトウェア(以下、「送信済みソフトウェア」という。)の構成要素(以下、「送信済み構成要素」という。)と同じ構成要素があるか否かを比較し、同じ構成要素がある場合には、当該同じ構成要素を差し引いた構成要素を複合機1900が個別に有する構成要素を示す個別構成情報として抽出する。
通信部904は、ソフトウェア配信サーバ800から配信要求にかかるソフトウェアを受信すると、受信したソフトウェアを複合機1900すべてに送信する。
なお、情報処理装置900とネットワーク80を介して接続されているソフトウェア配信サーバ800については、実施の形態2のソフトウェア配信サーバ800と同様であるので、各部の構成および機能についての説明を省略する。
次に、本実施の形態にかかる複合機1900の全体の機能的構成について説明する。図19は、実施の形態3の複合機1900の構成を示すブロック図である。なお、アプリインストール制御サービス1931以外の各部の構成および機能は実施の形態1の複合機100と同様であるので説明を省略する。
アプリインストール制御サービス1931は、情報処理装置900からインストール信号を受信すると、情報処理装置900から受信したソフトウェアのうち、自機にインストールされているアプリケーションに対応する構成要素だけを保存し、保存後のアプリケーションの構成情報をアップデートする。
次に、ソフトウェア配信システムによるソフトウェア配信処理について説明する。図20−1から図20−3は、複合機1900へのソフトウェア配信処理の手順を説明するシーケンス図である。まず、図20−1により、複合機1900aへのインストール処理について説明する。
情報処理装置900の入力制御部201は、表示制御部205により表示装置230に表示された一覧から、インストール対象となるアプリケーションの選択を受け付ける(ステップS301)。
情報処理装置900は、構成情報取得部702により、複合機1900aにインストールされているアプリケーションのソフトウェア構成情報を取得する(ステップS302)。
ここでは、図21−1に示すソフトウェア構成情報を取得する。図21−1は、複合機1900aにインストールされているアプリケーションのソフトウェア構成情報を示す図である。図21−1に示すように、複合機1200aにインストールされているアプリケーションの構成要素は「1−1と2−1と2−2と2−3」であり、構成情報取得部702はこれらを複合機1900aのソフトウェア構成情報として取得する。
なお、ステップS303からステップS308の処理は、実施の形態2で説明した図13−1のシーケンス図のステップS203からステップS208と同様であるので説明を省略する。
ステップS309に移り、ソフトウェア配信サーバ800から配信要求にかかるソフトウェアを受信した情報処理装置900の通信部904は、複合機1900すべてに受信したソフトウェアを送信する(ステップS309)。
情報処理装置900の通信部904は、複合機1900すべてにインストール信号を送信し(ステップS310)、複合機1900は、情報処理装置900からソフトウェアを受信すると、自機に対応する構成情報をインストールする(ステップS311)。
ここで、複合機1900aは、受信したソフトウェアはすべて自機に対応する構成情報であるので、アプリインストール制御サービス1931は受信したソフトウェアすべてをインストールする(ステップS311)。
具体的には、複合機1900aは、図22に示した複合機1900aにインストールされているアプリケーションに対応する構成要素「1−1と2−1と2−2と2−3」をインストールする。
複合機1900aのアプリインストールサービス1931は、インストール処理を終了すると、インストール後のアプリケーションのソフトウェア構成情報をアップデートする(ステップS312)。
次に、図20−2により、複合機1900bへのソフトウェア配信処理について説明する。
情報処理装置900の構成情報取得部702は、複合機1900bから複合機1900bにインストールされているアプリケーションのソフトウェア構成情報を取得する(ステップS321)。
ここでは、図21−2に示すソフトウェア構成情報を取得する。図21−2は、複合機1900bにインストールされているアプリケーションのソフトウェア構成情報を示す図である。図21−2に示すように、複合機1900bにインストールされているアプリケーションの構成要素は「1−2と2−1と2−2と2−3」であり、構成情報取得部702はこれらを複合機1900bにインストールされているアプリケーションのソフトウェア構成情報として取得する。
情報処理装置900の構成解析部703は、複合機1900bの取得構成情報を算出する(ステップS322)。
ここで、情報処理装置900は、ソフトウェア配信サーバ800からすでに受信した複合機1900aの取得構成情報に対応するソフトウェアを、複合機1900bにも送信している。
そこで、情報処理装置900の構成解析部903は、複合機1900bから取得したソフトウェア構成情報と、送信済みソフトウェアの差分を、取得構成要素として算出する。
具体的には、図21−2に示す複合機1900bにインストールされているアプリケーションのソフトウェア構成情報が示す構成要素「1−2と2−1と2−2と2−3」から、送信済み構成要素「2−1と2−2と2−3」を差し引く。これより、複合機1900bの取得構成要素は、図23に示す「1−2」となる。
情報処理装置900の通信部904は、構成解析部903により算出された取得構成情報をソフトウェア配信サーバ800に送信する(ステップS323)。
ソフトウェア配信サーバ800のソフトウェア取得部803は、受信部404により、情報処理装置900から取得構成情報を受信すると、取得構成情報に対応するソフトウェアをHDD410から取得する(ステップS324)。
ソフトウェア配信サーバ800の送信部401は、ソフトウェア取得部803より取得した取得構成情報に対応するソフトウェアを情報処理装置900に送信する(ステップS325)。
情報処理装置900の通信部904は、取得構成情報に対応するソフトウェアを受信すると、取得構成情報に対応するソフトウェアを複合機1900すべてに送信する(ステップS326)。
情報処理装置900の通信部904は、複合機1900すべてにインストール信号を送信し(ステップS327)、複合機1900は、情報処理装置900から取得構成情報に対応するソフトウェアを受信すると、自機に対応する構成情報をインストールする(ステップS328)。
ここで、複合機1900bは、受信したソフトウェアは、自機に対応する構成情報であるので、アプリインストール制御サービス1931は受信したソフトウェアすべてをインストールする(ステップS328)。
複合機1900aのアプリインストールサービス1931は、インストール処理を終了すると、インストール後のアプリケーションのソフトウェア構成情報をアップデートする(ステップS329)。
次に、図20−3により、複合機1900cへのソフトウェア配信処理について説明する。
情報処理装置900の構成情報取得部702は、複合機1900cから複合機1900cにインストールされているアプリケーションのソフトウェア構成情報を取得する(ステップS331)。
ここでは、図21−3に示すソフトウェア構成情報を取得する。図21−3は、複合機1900cにインストールされているアプリケーションのソフトウェア構成情報を示す図である。図21−3に示すように、複合機1900cにインストールされているアプリケーションの構成要素は「1−3と2−1と2−2と2−3」であり、構成情報取得部702はこれらを複合機1900cにインストールされているアプリケーションのソフトウェア構成情報として取得する。
情報処理装置900の構成解析部903は、複合機1900cの取得構成情報を算出する(ステップS332)。
ここで、情報処理装置900は、ソフトウェア配信サーバ800からすでに受信した複合機1900aと複合機1900bの取得構成情報に対応するソフトウェアを、複合機1900cにも送信している。
そこで、情報処理装置900の構成解析部903は、複合機1900cから取得した複合機1900cにインストールされているアプリケーションのソフトウェア構成情報が示す構成要素と、送信済み構成要素との差分の構成要素を、ソフトウェア配信サーバ800から取得構成要素として求める。
具体的には、図21−3に示す複合機1900cにインストールされているアプリケーションのソフトウェア構成情報が示す構成要素「1−3と2−1と2−2と2−3」から、送信済み構成要素「2−1と2−2と2−3」を差し引く。これより、複合機1900cの取得構成要素は、図24に示す「1−3」となる。
情報処理装置900の通信部904は、構成解析部903により算出された取得構成情報をソフトウェア配信サーバ800に送信する(ステップS333)。
ソフトウェア配信サーバ800のソフトウェア取得部803は、受信部404により、情報処理装置900から取得構成情報を受信すると、取得構成情報に対応するソフトウェアをHDD410から取得する(ステップS334)。
ソフトウェア配信サーバ800の送信部401は、ソフトウェア取得部803より取得した取得構成情報に対応するソフトウェアを情報処理装置900に送信する(ステップS335)。
情報処理装置900の通信部904は、取得構成情報に対応するソフトウェアを受信すると、取得構成情報に対応するソフトウェアを複合機1900すべてに送信する(ステップS336)。
情報処理装置900の通信部904は、複合機1900すべてにインストール信号を送信し(ステップS337)、複合機1900は、情報処理装置900からソフトウェアを受信すると、自機に対応する構成情報をインストールする(ステップS338)。
ここで、複合機1900cは、受信したソフトウェアは、自機に対応する構成情報であるので、アプリインストール制御サービス1931は受信したソフトウェアすべてをインストールし、インストール処理を終了すると、インストール後のアプリケーションのソフトウェア構成情報をアップデートする(ステップS329)。
このように、本実施の形態によると、すでに複合機が受信したソフトウェアについては、重複する配信要求を排除することができるため、通信の負荷を軽減することができる。
このように、本実施の形態によると、実施の形態1で説明した一括ダウンロード方式と異なり、定期的に複合機のソフトウェア構成情報を取得し、共通構成部を作成する処理を省くこととなり、処理手順を簡素化するとともに処理コストを削減することができる。
また、本実施の形態によると、実施の形態2で説明したキャッシュ保存が不要となり、情報処理装置のRAM容量が少量であってもインストール処理を実行することが可能となる。
本実施の形態の情報処理装置200、700、900は、CPUなどの制御装置と、ROM(Read Only Memory)やRAMなどの記憶装置と、HDD、CDドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
本実施形態の情報処理装置200、700、900で実行されるソフトウェア配信プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施形態の情報処理装置200、700、900で実行されるソフトウェア配信プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の情報処理装置200、700、900で実行されるソフトウェア配信プログラムをインターネット等のネットワーク経由で提供または配信するように構成しても良い。
また、本実施形態のソフトウェア配信プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
本実施の形態の情報処理装置200、700、900で実行されるソフトウェア配信プログラムは、上述した各部(入力制御部、構成情報取得部、構成解析部、通信部、表示制御部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体からソフトウェア配信プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、入力制御部、構成情報取得部、構成解析部、通信部、表示制御部が主記憶装置上に生成されるようになっている。
図25は、第1〜3の実施の形態にかかる複合機100、1200、1900のハードウェア構成を示すブロック図である。本図に示すように、この複合機100、1200、1900は、コントローラ10とエンジン部(Engine)60とをPCI(Peripheral Component Interface)バスで接続した構成となる。コントローラ10は、複合機100、1200、1900全体の制御と描画、通信、図示しない操作部からの入力を制御するコントローラである。エンジン部60は、PCIバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、1ドラムカラープロッタ、4ドラムカラープロッタ、スキャナまたはファックスユニットなどである。なお、このエンジン部60には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部分が含まれる。
コントローラ10は、CPU11と、ノースブリッジ(NB)13と、システムメモリ(MEM−P)12と、サウスブリッジ(SB)14と、ローカルメモリ(MEM−C)17と、ASIC(Application Specific Integrated Circuit)16と、ハードディスクドライブ(HDD)18とを有し、ノースブリッジ(NB)13とASIC16との間をAGP(Accelerated Graphics Port)バス15で接続した構成となる。また、MEM−P12は、ROM(Read Only Memory)12aと、RAM(Random Access Memory)12bと、をさらに有する。
CPU11は、複合機100、1200、1900の全体制御をおこなうものであり、NB13、MEM−P12およびSB14からなるチップセットを有し、このチップセットを介して他の機器と接続される。
NB13は、CPU11とMEM−P12、SB14、AGP15とを接続するためのブリッジであり、MEM−P12に対する読み書きなどを制御するメモリコントローラと、PCIマスタおよびAGPターゲットとを有する。
MEM−P12は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ROM12aとRAM12bとからなる。ROM12aは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、RAM12bは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
SB14は、NB13とPCIデバイス、周辺デバイスとを接続するためのブリッジである。このSB14は、PCIバスを介してNB13と接続されており、このPCIバスには、ネットワークインターフェース(I/F)部なども接続される。
ASIC16は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGP15、PCIバス、HDD18およびMEM−C17をそれぞれ接続するブリッジの役割を有する。このASIC16は、PCIターゲットおよびAGPマスタと、ASIC16の中核をなすアービタ(ARB)と、MEM−C17を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のDMAC(Direct Memory Access Controller)と、エンジン部60との間でPCIバスを介したデータ転送をおこなうPCIユニットとからなる。このASIC16には、PCIバスを介してFCU(Facsimile Control Unit)30、USB(Universal Serial Bus)40、IEEE1394(the Institute of Electrical and Electronics Engineers 1394)インターフェース50が接続される。操作表示部20はASIC16に直接接続されている。
MEM−C17は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、HDD(Hard Disk Drive)18は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
AGP15は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、MEM−P12に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
なお、本実施の形態の情報処理装置200、700、900で実行されるソフトウェア配信プログラムは、ROM等に予め組み込まれて提供される。
本実施の形態の情報処理装置200、700、900で実行されるソフトウェア配信プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、本実施の形態の情報処理装置200、700、900で実行されるソフトウェア配信プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施の形態の情報処理装置200、700、900で実行されるソフトウェア配信プログラムをインターネット等のネットワーク経由で提供または配信するように構成しても良い。
本実施の形態の情報処理装置200、700、900で実行されるソフトウェア配信プログラムは、上述した各部(入力制御部、構成情報取得部、構成解析部、通信部、表示制御部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記ROMからソフトウェア配信プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、入力制御部、構成情報取得部、構成解析部、通信部、表示制御部が主記憶装置上に生成されるようになっている。
なお、上記実施の形態では、本発明の画像形成装置を、コピー機能、プリンタ機能、スキャナ機能およびファクシミリ機能のうち少なくとも2つの機能を有する複合機に適用した例を挙げて説明するが、複写機、プリンタ、スキャナ装置、ファクシミリ装置等の画像形成装置であればいずれにも適用することができる。
なお、上記実施の形態は、複合機のアプリケーションのソフトウェアのインストールについて説明したが、アプリケーション以外のソフトウェアにも適用可能である。
上記実施の形態では、ソフトウェア配信サーバ400とライセンス管理サーバ300と情報処理装置200とがインターネットに接続され、情報処理装置200と複合機とがLANに接続された構成となっているが、これに限定されるものではない。例えば、ソフトウェア配信サーバ400とライセンス管理サーバ300と情報処理装置200とがインターネットに接続され、情報処理装置200と複合機とがインターネット等の単一のネットワークに接続されている構成としてもよい。