説明

情報配信装置、情報配信装置の制御方法、及びコンピュータプログラム

【課題】 画像形成装置等の情報処理装置に不要なプログラムがインストールされることを従来よりも防止できるようにする。
【解決手段】 情報配信装置は、画像形成装置から入力されたシリアル番号と、画像形成装置に接続されている装置に関する情報を取得する。情報配信装置は、シリアル番号で特定される夫々のプログラムについて、配信の可否を決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報配信装置、情報配信装置の制御方法、及びコンピュータプログラムに関し、特に、プログラムをインストールするために用いて好適なものである。
【背景技術】
【0002】
近年、画像形成装置では、様々なアプリケーションプログラム(以下、アプリケーションと略称する)を使用することができるようになり、画像形成装置を利用するエンドユーザは、それらのアプリケーションを提供する機能を利用できるようになった。このようなアプリケーションには、画像形成装置に標準で搭載されていて無償で利用できるアプリケーションや、商品を購入することによって得られるライセンスファイルを使用することで初めて利用できるようになる有償のアプリケーション等がある。
【0003】
有償のアプリケーションをインストールする際には、ユーザが購入した商品のライセンス証書に記載されているライセンス番号を使用してサービスマンがライセンス発行装置から複数のライセンスファイルを発行させる。そして、サービスマンは、画像形成装置のインストール機能を利用して、発行された複数のライセンスファイルに基づくアプリケーションのインストールを画像形成装置に実行させるようにしている。
近年の画像形成装置のアプリケーションは、お互いに依存関係を持つような複雑なものとなっており、単純にライセンスファイルを入力するだけではアプリケーションをインストール又は起動ができないという問題がある。
【0004】
そこで、特許文献1では、複数のアプリケーションをインストールする場合に、画像形成装置は、各アプリケーションの属性情報からインストールする適切な外部装置を判別し、その外部装置にアプリケーションを転送してインストールさせるようにしている。更に、特許文献1では、アプリケーションの属性情報から指定された起動順序でアプリケーションの起動を制御するようにしている。
また、特許文献2では、既にインストール済みのアプリケーションを構成するモジュールに対して追加モジュールを追加する際に、正しい順番で各モジュールが動作するように追加モジュールをインストールするようにしている。具体的に特許文献2では、追加モジュールを構成するファイルに含まれているプライオリティナンバに従った順番で動作するように追加モジュールをインストールするようにしている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−183922号公報
【特許文献2】特開2007−272763号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、前述した従来の技術では、インストールする対象のアプリケーションを全てインストールするものであり、既にインストールされているアプリケーションや入れても意味のないアプリケーションについては考慮されていない。例えば、画像形成装置にスキャナ装置がなければ、原稿を読み込んでパソコンにデータを送信するSENDのような機能を実現するアプリケーションを画像形成装置にインストールしても、画像形成装置が当該アプリケーションを利用できないというケースがある。
また、本来、画像形成装置で行う画像処理(PDLの画像処理)を、より処理性能の高い外部装置で行うことで印刷の高速化を実現するために外部コントローラ装置がある。外部コントローラ装置が画像形成装置に接続されている場合、画像形成装置は、画像形成装置内にPDLの画像処理をするアプリケーションであるPDL処理プログラムがインストールされていても、外部コントローラ装置で処理をするように動作することになる。そのため、外部コントローラ装置が接続されている画像形成装置には、PDLの画像処理をするアプリケーションをインストールしても、当該アプリケーションは使用されないためインストールをする意味がないというケースが発生する。
【0007】
以上のようなケースに当てはまる状態の画像形成装置にアプリケーションをインストールしても、そのアプリケーションは実際には無駄となり、ユーザは余分なライセンス料を払うことになってしまう。
そこで、従来は、アプリケーションをインストールする場合、サービスマンが、対象の画像形成装置に付属する装置や外部コントローラ装置を調べ、それにより不要となるアプリケーションの判別するようにしていた。しかしながら、サービスマンがこのような作業を現地でするのは時間がかかり、また人的ミスによる無駄なライセンスを発行してしまうことがあった。
ここでは、画像形成装置についての課題を例に挙げて示したが、このような課題は、プログラムをインストールして実行する情報処理装置に共通する課題であった。
本発明は、以上の問題点の少なくとも1つに鑑みてなされたものであり、画像形成装置等の情報処理装置に不要なプログラムがインストールされることを従来よりも防止できるようにすることを目的とする。
【課題を解決するための手段】
【0008】
本発明の情報配信装置は、画像形成装置と通信可能な情報配信装置であって、前記画像形成装置の代わりに所定のプログラムを実行できる外部装置が前記画像形成装置に接続されているか否かを示す情報を前記画像形成装置から取得する取得手段と、前記所定のプログラムを前記画像形成装置にインストールさせるべく前記所定のプログラムを配信する配信手段とを有し、前記取得手段により取得された情報から、前記画像形成装置の代わりに前記所定のプログラムを実行できる外部装置が前記画像形成装置に接続されていると判断された場合、前記所定のプログラムを配信しないよう前記配信手段を制御することを特徴とする。
【発明の効果】
【0009】
本発明によれば、画像形成装置等の情報処理装置に不要なプログラムがインストールされることを従来よりも防止できる。
【図面の簡単な説明】
【0010】
【図1】アプリケーションインストールシステムのシステム構成を示す図である。
【図2】画像形成装置のハードウェア構成を示す図である。
【図3】ライセンス発行装置、クライアントPCのハードウェア構成を示す図である。
【図4】画像形成装置がライセンス発行装置からアプリケーションのライセンスを受け、当該アプリケーションをインストールする際の処理を説明するフローチャートである。
【図5】図4のステップS402でライセンス発行装置が画像形成装置から商品情報問い合わせ依頼を受けたときの処理を説明するフローチャートである。
【図6】図4のステップS404でライセンス発行装置が画像形成装置からライセンス発行依頼を受けたときの処理を説明するフローチャートである。
【図7】図4ステップS402で実施する商品問い合わせ依頼処理の詳細を説明するフローチャートである。
【図8】インストール済みのアプリケーションのアプリケーションIDの一覧を示す図である。
【図9】画像形成装置に接続されている装置のハードIDの一覧を示す図である。
【図10】図7のステップS704で画像形成装置からライセンス発行装置へ送信するデータのフォーマットを示す図である。
【図11】図5のステップ502において、商品情報を取得する処理の詳細を説明するフローチャートである。
【図12】商品テーブルを示す図である。
【図13】アプリケーションテーブルを示す図である。
【図14】接続装置テーブルを示す図である。
【図15】商品情報を示す図である。
【図16】図4のステップS403において、ライセンス発行装置から商品情報を受け取った画像形成装置が、インストールアプリケーション選択画面を表示させる処理の詳細を説明するフローチャートである。
【図17】インストールアプリケーション選択画面の第1の例を示す図である。
【図18】画像形成装置に接続されている装置のハードIDの一覧を示す図である。
【図19】インストールアプリケーション選択画面の第2の例を示す図である。
【図20】インストールアプリケーション選択画面において、ユーザが、インストールするアプリケーションのチェックボックスのチェックを外した場合の画像形成装置における処理の説明するフローチャートである。
【図21】図19のインストールアプリケーション選択画面でユーザがページ記述言語1のチェックボックスのチェックを外した場合に表示されるインストールアプリケーション選択画面を示す図である。
【図22】インストールアプリケーション選択画面において、ユーザが、インストールするアプリケーションのチェックボックスをチェックした場合の画像形成装置における処理を説明するフローチャートである。
【図23】図21のインストールアプリケーション選択画面でユーザがページ記述言語1のチェックボックスをチェックした場合に表示されるインストールアプリケーション選択画面を示す図である。
【図24】図6のステップS602において、ライセンスファイルを発行する際のライセンス発行装置の処理の詳細を説明するフローチャートである。
【図25】図4のステップS403において、ライセンス発行装置から商品情報を受け取った画像形成装置が、インストールアプリケーション選択画面を表示させる処理の詳細を説明するフローチャートである。
【図26】インストールアプリケーション選択画面の第1の例を示す図である。
【図27】インストールアプリケーション選択画面において、ユーザが、インストールするアプリケーションのチェックボックスのチェックを外した場合の画像形成装置における処理を説明するフローチャートである。
【図28】インストールアプリケーション選択画面の第2の例を示す図である。
【図29】ンストールアプリケーション選択画面において、ユーザが、インストールするアプリケーションのチェックボックスをチェックした場合の画像形成装置における処理を説明するフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明を適用できる最初の実施形態を、図面を用いて説明する。
図1は、アプリケーションインストールシステムのシステム構成の一例を示す図である。
図1において、A社ローカルネットワーク108とB社ローカルネットワーク109は、夫々A社とB社の社内ネットワークである。A社ローカルネットワークAでは、クライアントPC103aと、画像形成装置102aとがLAN104を介して通信可能に相互に接続されている。また、画像形成装置102aは、PDLの画像生成処理を行う外部コントローラ107と通信可能に相互に接続されている。B社ローカルネットワーク109では、クライアントPC103bと画像形成装置102b、102cとがLAN105を介して通信可能に相互に接続されている。
尚、図1に示す例では、ローカルネットワーク内に、クライアントPCが1台、画像形成装置が1台又は2台ある場合を示しているが、これらの台数は任意である。
以下、クライアントPC103a、103bを区別する必要がない場合にはクライアントPC103と称し、画像形成装置102a、102bを区別する必要がない場合は画像形成装置102と称する。
インターネット106には、画像形成装置102からの要求によりライセンスを発行するライセンス発行装置101が接続されていて、画像形成装置102は、インターネット106を通じてライセンス発行装置101にアクセスをすることが出来る。
【0012】
図2は、画像形成装置102a、102bのハードウェア構成の一例を示す図である。
原稿給送部201は、読み込む原稿を自動的にイメージリーダ202に送る。イメージリーダ202は、スキャナであり、原稿を読み込む。画像形成部203は、読み込んだ原稿や、外部から受信したデータを印刷画像に変換・印刷する。給紙部204は、印刷用の紙を給紙するものである。排紙部205は、印刷した紙を排出し、ソートやステイプルといった処理を施す。
【0013】
NetworkI/F206は、LAN104、105及びインターネット106に接続し、外部と情報交換を行う。センサ207は、画像形成装置102の各部分の状態を検知する。CPU208は、画像形成装置102上の各処理を司る。ハードディスク209は、画像形成装置102の各処理に関わるプログラムやデータ、一時的なデータ、画像形成装置102へ送信されてきたユーザデータ等を記憶する。メモリ210は、画像形成装置102の各処理に関わる一時的なデータを電気的に且つ書き換え可能に記憶する。操作部211は、画像形成装置102へのユーザからの指示入力を受け付ける。表示部212は、画像形成装置102の動作状況及び操作部211に対する操作に関わる情報等を表示する。モデム213は、電話回線に接続する。システムバス214は、201〜214の各部分を結びつけ、データをやり取りする。
【0014】
図1に示した画像形成装置102cは、原稿を読み込むスキャナ装置を有していない。
このため、画像形成装置102cのハードウェア構成は、例えば、図2に示した画像形成装置102a、102bのハードウェア構成から、原稿給送部201及びイメージリーダ202を除いたものになる。
【0015】
図3は、ライセンス発行装置101及びクライアントPC103のハードウェア構成の一例を示す図である。
表示部301は、ウィンドウ、アイコン、メッセージ、メニュー、その他のユーザインタフェース情報等を表示する。操作部302は、キーボード、マウスを利用したエンドユーザの入力を受け付ける。CPU303は、本装置上の各処理を司る。ハードディスク304は、本装置の各処理に関わるプログラムやデータ、一時的なデータ、本装置へ送信されてきたデータ等を記憶する。メモリ305は、本装置の各処理に関わる一時的なデータを電気的に且つ書き換え可能に記憶する。NetworkI/F306は、インターネット106に接続し、外部と情報交換を行う。システムバス307は、301〜306の各部分を結びつけ、データをやり取りする。
【0016】
次に、図4のフローチャートを参照して、画像形成装置102がライセンス発行装置101からアプリケーションのライセンスを受け、当該アプリケーションをインストールする際の処理の一例について説明する。
画像形成装置102のCPU208は、操作部211でのユーザからのインストール開始指示を検知した場合にこのフローチャートによる処理を実行する。
ステップS401において、CPU208は、ライセンス番号をユーザに入力させるための画面を表示部212に表示させる。
CPU208は、ユーザが表示部212に表示されたライセンス番号入力画面を操作してライセンス番号を入力したことを検知すると、ステップS402において、入力されたライセンス番号を取得する。またそのときにCPU208は、画像形成装置102の状態情報を取得し、取得したライセンス番号と状態情報とをNetworkI/F206からインターネット106を介してライセンス発行装置101に送信して商品情報問い合わせ依頼をする。この処理についての詳細は図7のフローチャートにて説明する。
【0017】
図5のフローチャートを参照して後述するように、商品情報問い合わせ依頼を受けたライセンス発行装置101は、商品情報問い合わせ依頼に含まれるライセンス番号に基づきインストール可能なアプリケーション情報を得て画像形成装置102に情報配信を行う。画像形成装置102のCPU208は、NetworkI/F206を介して、このアプリケーション情報を受信する。そうすると、ステップS403において、CPU208は、インストールできるアプリケーションの中からインストールするアプリケーションをユーザに選択させるためのインストールアプリケーション選択画面を表示部212に表示させる。
【0018】
CPU208は、ユーザがインストールアプリケーション選択画面にてインストールするアプリケーションを選択したのを検知すると、ステップS404において、選択されたアプリケーションの一覧を取得する。そして、NetworkI/F206は、CPU208が取得したアプリケーションの一覧を、インターネット106を介してライセンス発行装置101に送信してライセンス発行依頼を行う。
図6のフローチャートを参照して後述するように、このライセンス発行依頼を受けたライセンス発行装置101は、このライセンス発行依頼に含まれるアプリケーションの一覧に基づきインストールに必要なライセンス情報を得て画像形成装置102に送信する。
そして、画像形成装置102のCPU208は、NetworkI/F206を介してライセンス情報を受信する。そうすると、ステップS405において、CPU208は、そのライセンス情報を利用してアプリケーションのインストールを行う。
【0019】
次に、図5のフローチャートを参照して、図4のステップS402でライセンス発行装置101が画像形成装置102から商品情報問い合わせ依頼を受けたときの処理の一例を説明する。
ステップS501において、ライセンス発行装置101のCPU303は、インターネット106を介してNetworkI/F306より商品問い合わせ依頼のアクセスを受けるまで待機する。そして、商品問い合わせ依頼のアクセスを受けたと判定すると、ステップS502に進む。
【0020】
ステップS502において、CPU303は、NetworkI/F306より受信した商品問い合わせ依頼に含まれる「ライセンス番号と状態情報」を取得し、そのライセンス番号と紐付いている商品の情報をハードディスク304から検索する。そして、CPU303は、状態情報に基づいて、その商品の情報に含まれる所定のアプリケーションの中からインストールが可能なアプリケーション情報を取得する。このステップS502の詳細な処理については図11のフローチャートにて説明する。
次に、ステップS503において、NetworkI/F306は、CPU303が取得した情報に基づく商品情報(後述する図15を参照)を、インターネット106を介して、ライセンス発行装置101にアクセスしてきた画像形成装置102に配信する。
【0021】
次に、図6のフローチャートを参照して、図4のステップS404でライセンス発行装置101が画像形成装置102からライセンス発行依頼を受けたときの処理の一例について説明する。
ステップS601において、ライセンス発行装置101のCPU303は、インターネット106を介してNetworkI/F306よりライセンス発行依頼のアクセスを受けるまで待機する。そして、ライセンス発行依頼のアクセスを受けたと判定すると、ステップS602に進む。
【0022】
ステップS602において、CPU303は、NetworkI/F306より受信したライセンス発行依頼に含まれる「ユーザにより選択されたアプリケーションの一覧」を取得し、そのアプリケーションのライセンスファイルを発行する。そして、CPU303は、ハードディスク304に格納されているアプリケーションの依存関係から、発行したライセンスファイルの一覧のインストール順を算出する。このステップS602の詳細な処理については図24のフローチャートにて説明する。
次に、ステップS603において、NetworkI/F306は、ライセンスファイルと、そのインストール順とを含むライセンス情報を、インターネット106を介して、ライセンス発行装置101にアクセスしてきた画像形成装置102に送信する。
【0023】
次に、図7のフローチャートを参照して、図4ステップS402で実施する商品問い合わせ依頼処理の詳細の一例を説明する。
ステップS701において、画像形成装置102のCPU208は、ライセンス番号入力画面でユーザによって入力されたライセンス番号を取得する。
次に、ステップS702において、CPU208は、ハードディスク209に格納されている「既にインストールされているアプリケーションを特定するためのアプリケーションID(識別情報)の一覧」を取得する。更にステップS703において、CPU208は、ハードディスク209に格納されている「画像形成装置102に接続されている装置(例えば外部コントローラ107)を識別するためのハードIDの一覧」を取得する。
【0024】
次に、ステップS704において、CPU208は、インストール済みのアプリケーションのアプリケーションIDの一覧と、画像形成装置102に接続されている装置のハードIDの一覧とを状態情報とする。そして、NetoworkI/F205は、インターネット106を介して、ステップS701で取得されたライセンス番号と、状態情報とを、ライセンス発行装置101に送信して商品情報問い合わせ依頼をする。
【0025】
図8は、画像形成装置102aのハードディスク209に格納されている「インストール済みのアプリケーションのアプリケーションIDの一覧」の一例を示す図である。これは、図7のステップS702で取得されるものである。
インストール済みアプリケーションテーブル801は、画像形成装置102にインストールされたアプリケーションの一覧を保持するテーブルである。インストール済みアプリケーションテーブル801は、アプリケーションIDカラム802と、アプリケーション名カラム803とを有する。
アプリケーションIDカラム802は、インストール済みのアプリケーションのアプリケーションIDを保持するカラムである。アプリケーション名カラム803は、インストール済みのアプリケーションの名前を保持するカラムである。
インストール済みアプリケーションテーブル801では、これらの情報が相互に対応付
けられて記憶されている。
図8に示す例では、インストール済みのアプリケーションとして、アプリケーションIDがA0001であるSENDと、アプリケーションIDがA0014であるVNCとが既に画像形成装置102にインストールされていることを表している。
【0026】
図9は、図7のステップS703で、画像形成装置102aのハードディスク209から取得される「画像形成装置102aに接続されている装置のハードIDの一覧」の一例を示す図である。
接続装置テーブル901は、画像形成装置102aに接続されている装置の一覧を保持するテーブルである。接続装置テーブル901は、ハードIDカラム902と、装置名カラム903とを有する。
ハードIDカラム902は、画像形成装置102に接続されている装置のハードIDを保持するカラムである。装置名カラム903は、画像形成装置102に接続されている装置の名前を保持するカラムである。
接続装置テーブル901では、これらの情報が相互に関連付けられて記憶されている。
図9に示す例では、画像形成装置102aには、ハードIDがH001であるスキャナと、ハードIDがH004であるプリンタと、ハードIDがH010であるフィニッシャと、ハードIDがH127である外部コントローラが接続されていることを表している。
【0027】
図10は、図7のステップS704で画像形成装置102からライセンス発行装置101へ送信するデータのフォーマットの一例を示す図である。商品問い合わせ依頼データ1001は、ライセンス番号1002と状態情報1003とを含む。状態情報1003は、インストール済みのアプリケーションのアプリケーションIDの一覧(インストール済みアプリケーションID一覧)1004と、画像形成装置102に接続されている装置のハードIDの一覧(接続装置ハードID一覧)1005とを含む。
図8及び図9に示すデータを持つ画像形成装置102aの場合には、インストール済みアプリケーションID一覧1004に格納されるデータは、A0001とA0014となる。また、接続装置ハードID一覧1005に格納されるデータは、H001、H004、H010、H127となる。
【0028】
次に、図11のフローチャートを参照して、図5のステップ502において、商品情報を取得する処理の詳細の一例を説明する。
ステップS1101において、ライセンス発行装置101のCPU303は、NetworkI/F306より受信した「ライセンス番号1002と状態情報1003」を取得する。
次に、ステップS1102において、CPU303は、ハードディスク304に格納されている商品テーブル1201に、ステップS1101で受信したライセンス番号1002が含まれているか否かを判定する。
【0029】
図12は、ライセンス発行装置101のハードディスク304に格納される商品テーブル1201の一例を示す図である。
図12において、商品ID1202は商品を一意に特定するためのIDである。商品名1203は、商品の商品名である。ライセンス番号1204は、この商品をインストールするための番号である。構成アプリケーションID1205は、商品を構成する1つ以上のアプリケーションのアプリケーションID(構成アプリケーションID)の一覧である。商品テーブル1201では、これらの情報が相互に関連付けられて記憶されている。
【0030】
図11の説明に戻り、ステップS1102の判定の結果、商品テーブル1201に、ステップS1101で受信したライセンス番号1002が含まれておらず、ライセンス番号1002に紐付く商品がなかった場合には、ステップS1103に進む。ステップS1103に進むと、CPU303は、ライセンス番号1002が登録されていない場合のエラー処理をする。
【0031】
一方、商品テーブル1201に、ステップS1101で受信したライセンス番号1002が含まれており、ライセンス番号1002に紐付く商品がある場合には、ステップS1104に進む。ステップS1104に進むと、CPU303は、ライセンス番号1002に紐付く商品のアプリケーションの一覧として、アプリケーションIDの一覧を、構成アプリケーションID1205から取得する。
次に、ステップS1105において、CPU303は、ステップS1104で取得したアプリケーションIDの一覧から、1つのアプリケーションIDを取得する。
次に、ステップS1106において、CPU303は、ステップS1105で取得したアプリケーションIDが、ステップS1101で取得した状態情報1003の中の「インストール済みアプリケーションID一覧1004」に含まれているか否かを判定する。
【0032】
この判定の結果、ステップS1105で取得したアプリケーションIDが、インストール済みアプリケーションID一覧1004に含まれていた場合には、このアプリケーションIDのアプリケーションをインストールしない。したがって、後述するステップS1116に進む。一方、ステップS1105で取得したアプリケーションIDが、インストール済みアプリケーションID一覧1004に含まれていなかった場合には、ステップS1107に進む。
【0033】
次に、ステップS1107において、CPU303は、ステップS1105で取得したアプリケーションIDにより特定されるアプリケーションが、ハードウェアがあれば不要となるアプリケーションであるか否かを判定する。そのためにCPU303は、ハードディスク304に格納されているアプリケーションテーブル1301から、ステップS1105で取得したアプリケーションIDを持つレコードを検索する。次に、CPU303は、検索して取得したレコードから、排他ハードID1306のカラムのデータを取得する。
【0034】
図13は、ライセンス発行装置101のハードディスク304に格納されているアプリケーションテーブル1301の一例を示す図である。
図13において、アプリケーションID1302は、アプリケーションを一意に特定するためのIDである。アプリケーション名1303は、アプリケーションの名称である。
依存アプリケーションID1304は、このアプリケーションをインストールする前にインストールする必要のあるアプリケーションのアプリケーションIDである。依存ハードID1305は、このアプリケーションをインストールする前に画像形成装置102に接続していなければならない装置(画像形成装置102に接続される装置)のハードIDである。排他ハードID1306は、画像形成装置102に接続されていれば、このアプリケーションをインストールする必要がなくなる装置(画像形成装置102に接続される装置)のハードIDである。アプリケーションテーブル1301では、これらの情報が相互に関連付けられて記憶されている。
【0035】
図14は、ライセンス発行装置101のハードディスク304に格納されている接続装置テーブル1401の一例を示す図である。
図14において、ハードID1402は、画像形成装置102に接続される装置を一意に表すためのIDである。装置名1403は、画像形成装置102に接続される装置の名称である。接続装置テーブル1401では、これらの情報が相互に関連付けられて記憶されている。
【0036】
図11の説明に戻り、ステップS1107の判定の結果、ステップS1105で取得したアプリケーションIDを持つレコードに排他ハードID1306のデータがなければ、ステップS1109に進む。すなわち、CPU303は、ステップS1105で取得したアプリケーションIDにより特定されるアプリケーションが、ハードウェアがあれば不要となるアプリケーションでないと判定してステップS1109に進む。
一方、ステップS1105で取得したアプリケーションIDを持つレコードに排他ハードID1306のデータにあれば、ステップS1108に進む。すなわち、CPU303は、ステップS1105で取得したアプリケーションIDにより特定されるアプリケーションが、ハードウェアがあれば不要となるアプリケーションであると判定してステップS1108に進む。
【0037】
ステップS1108において、CPU303は、ステップS1107で取得した排他ハードID1306のデータが、ステップS1101で取得した状態情報1003の中の接続装置ハードID一覧1005に含まれているか否かを判定する。この判定の結果、ステップS1107で取得した排他ハードID1306のデータが、ステップS1101で取得した状態情報1003の中の接続装置ハードID一覧1005に含まれている場合には、処理対象のアプリケーションをインストールしない。このため、後述するステップS1116に進む。一方、ステップS1107で取得した排他ハードID1306のデータが、ステップS1101で取得した状態情報1003の中の接続装置ハードID一覧1005に含まれていない場合には、ステップS1109に進む。
【0038】
ステップS1109において、CPU303は、ステップS1105で取得したアプリケーションIDにより特定されるアプリケーションが、そのアプリケーションをインストールするためにハードウェアを必要とするアプリケーションであるか否かを判定する。そのためにCPU303は、ステップS1105にて取得したアプリケーションIDを持つレコードから依存ハードID1305のカラムのデータを取得する。そして、ステップS1105にて取得したアプリケーションIDを持つレコードに依存ハードID1305のデータがなければ、ステップS1111に進む。すなわち、CPU303は、ステップS1105にて取得したアプリケーションIDにより特定されるアプリケーションが、そのアプリケーションをインストールするためにハードウェアを必要とするアプリケーションでないと判定してステップS1111に進む。
【0039】
一方、ステップS1105にて取得したアプリケーションIDを持つレコードに依存ハードID1305のデータがあれば、ステップS1110に進む。すなわち、ステップS1105にて取得したアプリケーションIDにより特定されるアプリケーションが、そのアプリケーションをインストールするためにハードウェアを必要とするアプリケーションであると判定してステップS1110に進む。
ステップS1110に進むと、CPU303は、ステップS1109で取得した依存ハードID1305のデータが、ステップS1101で取得した状態情報1003の中の接続装置ハードID一覧1005に含まれているか否かを判定する。この判定の結果、ステップS1109で取得した依存ハードID1305のデータが、ステップS1101で取得した状態情報1003の中の接続装置ハードID一覧1005に含まれていない場合には、処理対象のアプリケーションをインストールしない。このため、後述するステップS1116に進む。一方、ステップS1109で取得した依存ハードID1305のデータが、ステップS1101で取得した状態情報1003の中の接続装置ハードID一覧1005に含まれている場合には、ステップS1111に進む。
【0040】
ステップS1111に進むと、CPU303は、次の処理を行う。すなわち、CPU303は、ステップS1105で取得したアプリケーションIDにより特定されるアプリケーションが、そのアプリケーションをインストールするために他のアプリケーションを必要とするアプリケーションか否かを判定する。そのためにCPU303は、ステップS1105にて取得したアプリケーションIDを持つレコードから依存アプリケーションID1304のカラムのデータを取得する。そして、ステップS1105にて取得したアプリケーションIDを持つレコードから依存アプリケーションID1304のカラムのデータになければ、処理対象のアプリケーションをインストールする対象とするために、後述するステップS1115に進む。
【0041】
一方、ステップS1105にて取得したアプリケーションIDを持つレコードから依存アプリケーションID1304のカラムのデータにあれば、ステップS1112に進む。
すなわち、ステップS1105で取得したアプリケーションIDにより特定されるアプリケーションが、そのアプリケーションをインストールするために他のアプリケーションを必要とするアプリケーションであると判定して、ステップS1112に進む。
次に、ステップS1112において、CPU303は、次の処理を行う。すなわち、CPU303は、ステップS1111にて取得した依存アプリケーションID1304のデータが、ステップS1101で取得した状態情報1003の中のインストール済みアプリケーションID一覧1004に含まれているか否かを判定する。
【0042】
この判定の結果、依存アプリケーションID1304のデータが、状態情報1003の中のインストール済みアプリケーションID一覧1004に含まれている場合、処理対象のアプリケーションをインストールする対象とするためにステップS1115に進む。一方、依存アプリケーションID1304のデータが、状態情報1003の中のインストール済みアプリケーションID一覧1004に含まれていない場合には、ステップS1113に進む。
ステップS1113に進むと、CPU303は、ステップS1111にて取得した依存アプリケーションID1304のデータが、ステップS1104で取得した「アプリケーションIDの一覧」に含まれているか否かを判定する。この判定の結果、依存アプリケーションID1304のデータが、アプリケーションIDの一覧に含まれていない場合には、処理対象のアプリケーションをインストールしないためにステップS1116に進む。
【0043】
一方、依存アプリケーションID1304のデータが、アプリケーションIDの一覧に含まれている場合には、ステップS1114に進む。
ステップS1114に進むと、CPU303は、次の処理を行う。すなわち、ステップS1111にて取得した依存アプリケーションID1304を、ステップS1105で取得したアプリケーションIDで特定されるアプリケーションをインストールするのに必要な依存アプリケーションのIDとしてメモリ305に追加する。
次に、ステップS1115において、CPU303は、インストール可能なプログラム群を指定すべく、ステップS1105で取得したアプリケーションIDをインストール可能なアプリケーションIDの一覧としてメモリ305に追加する。そして、ステップS1117に進む。
【0044】
ステップS1106、S1108、S1110、S1113からステップS1116に進むと、CPU303は、次の処理を行う。すなわち、CPU303は、ステップS1105で取得したアプリケーションIDと、そのアプリケーションIDで特定されるアプリケーションをインストールできない理由とをインストール不可能なアプリケーションのIDの一覧としてメモリ305に追加する。そして、ステップS1117に進む。
ステップS1117に進むと、CPU303は、ステップS1104で取得したアプリケーションIDの一覧の全てについて、ステップS1106〜S1115の処理を行ったか否かを判定する。この判定の結果、ステップS1104で取得したアプリケーションIDの一覧の全てについて処理を行っていない場合にはステップS1105に戻る。一方、ステップS1104で取得したアプリケーションIDの一覧の全てについて処理を行っている場合にはステップS1118に進む。
ステップS1118に進むと、CPU303は、図15に示すような構造を持つ商品情報1501を作成し、メモリ305に格納する。
【0045】
図15は、ライセンス発行装置101のメモリ305に保持される商品情報1501の一例を示す図である。
図15において、商品名1502は、商品の名称を格納するためのデータ領域である。
インストール可能アプリケーション一覧1503は、商品を構成するアプリケーションの中でインストール可能なアプリケーションを1つ以上格納するためのデータ領域である。
アプリケーション名1504は、インストール可能なアプリケーションのアプリケーション名を格納するためのデータ領域である。
アプリケーションID1505は、インストール可能なアプリケーションのアプリケーションIDを格納するためのデータ領域である。
依存アプリケーションID1506は、インストール可能なアプリケーションをインストールするために事前にインストールされていることが必要なアプリケーションのアプリケーションIDを格納するためのデータ領域である。
インストール不可能アプリケーション一覧1507は、商品を構成するアプリケーションの中でインストール不可能なアプリケーションを0つ以上格納するためのデータ領域である。
アプリケーション名1508は、インストール不可能なアプリケーションのアプリケーション名を格納するためのデータ領域である。
アプリケーションID1509は、インストール不可能なアプリケーションのアプリケーションIDを格納するためのデータ領域である。
インストール不可能理由1510は、インストールが不可能である理由を格納するためのデータ領域である。
【0046】
商品名1502には、ステップS1102で取得したライセンス番号1002に対応するレコードの商品名1203が格納される。
インストール可能アプリケーション一覧1503には、ステップS1115で追加した「インストール可能なアプリケーションIDの一覧」の数だけデータ領域が用意される。
用意された夫々のデータ領域において、アプリケーション名1504には、ステップS1115で追加した「インストール可能なアプリケーションID」で特定されるアプリケーション名が格納される。また、用意された夫々のデータ領域において、アプリケーションID1505には、ステップS1115で追加した「インストール可能なアプリケーションID」が格納される。
また、依存アプリケーションID1506には、次の情報が格納される。すなわち、ステップS1115で追加した「インストール可能なアプリケーションID」で特定されるアプリケーションに対して依存アプリケーションがある場合には、ステップS1114で追加した依存アプリケーションIDが格納される。
インストール不可能アプリケーション一覧1507には、ステップS1116で追加した「インストール不可能なアプリケーションIDの一覧」の数だけデータ領域が用意される。アプリケーション名1508には、ステップS1116で追加した「インストール不可能なアプリケーションID」で特定されるアプリケーション名が格納される。アプリケーションID1509には、ステップS1116で追加した「インストール不可能なアプリケーションのアプリケーションID」が格納される。インストール不可能理由1510には、ステップS1116で追加した「インストール不可能なアプリケーションID」で特定されるアプリケーションをインストールすることが不可能な理由が格納される。
【0047】
このように図11のフローチャートを実施することで、ライセンス発行装置101のCPU303は、次のような商品情報1501を作成する。すなわち、インストール可能なアプリケーション、インストール不可能なアプリケーションの情報に加え、インストール可能なアプリケーションについては、事前にインストールが必要なアプリケーションの情報を保持した商品情報1501を作成する。
そして、商品情報1501は、図5のステップS503において、商品の問い合わせ元の画像形成装置102(ライセンス発行装置101にアクセスしてきた画像形成装置102)に応答として返される。
【0048】
次に、図16のフローチャートを参照して、図4のステップS403において、ライセンス発行装置101から商品情報を受け取った画像形成装置102が、インストールアプリケーション選択画面を表示させる処理の詳細の一例を説明する。
ステップS1601において、画像形成装置102のCPU208は、NetworkI/F206を介して商品情報1501を受信し、ハードディスク209に格納する。
次に、ステップS1602において、CPU208は、ステップS1601で受信した商品情報1501から商品名1502を取得し、商品名1502を、表示するラベルのテキストとして設定する。
【0049】
次に、ステップS1603において、CPU208は、ステップS1601で受信した商品情報1501からインストール可能アプリケーション一覧1503を取得する。
次に、ステップS1604において、CPU208は、ステップS1603で取得したインストール可能アプリケーション一覧1503から1つのインストール可能なアプリケーションの情報を取り出す。
次に、ステップS1605にて、CPU208は、アプリケーションを選択させるチェックボックスのテキストに、ステップS1604で取得したインストール可能なアプリケーションのアプリケーション名1504を設定する。
【0050】
次に、ステップS1606において、CPU208は、ステップS1605で設定したチェックボックスにチェックをする。
次に、ステップS1607において、CPU208は、全てのインストール可能アプリケーション一覧1503に対して処理をしたか否かを判定する。この判定の結果、全てのインストール可能アプリケーション一覧1503に対して処理をしていなければ、ステップS1604に戻り、処理が終わるまでステップS1604〜S1607を繰り返し行う。そして、全てのインストール可能アプリケーション一覧1503に対して処理が終わるとステップS1608に進む。
【0051】
ステップS1608に進むと、CPU208は、ステップS1601で受信した商品情報1501からインストール不可能アプリケーション一覧1507を取得する。
次に、ステップS1609において、CPU208は、ステップS1608で取得したインストール不可能アプリケーション一覧1507から1つのインストール不可能なアプリケーションの情報を取り出す。
次に、ステップS1610において、CPU208は、次の処理を行う。すなわち、CPU208は、アプリケーションを選択するチェックボックスのテキストに、ステップS1609で取得したインストール不可能なアプリケーションのアプリケーション名1508とインストール不可能理由1510とを設定する。
【0052】
次に、ステップS1611において、CPU208は、ステップS1610で設定したチェックボックスのチェックを外す。
次に、ステップS1612において、CPU208は、ステップS1610で設定したチェックボックスをユーザが編集できないように無効化する。
次に、ステップS1613において、CPU208は、全てのインストール不可能アプリケーション一覧1507に対して処理をしたか否かを判定する。この判定の結果、全てのインストール不可能アプリケーション一覧1507に対して処理をしていなければ、ステップS1609に戻り、処理が終わるまでステップS1609〜S1613を繰り返し行う。そして、全てのインストール不可能アプリケーション一覧1507に対して処理が終わるとステップS1614に進む。
ステップS1614に進むと、CPU208は、ステップS1602〜ステップS1613で作成した情報に基づいて、インストールアプリケーション選択画面を表示部212に表示させる。
【0053】
図16のフローチャートを実行することにより、画像形成装置102の表示部212に、インストールできるアプリケーションだけを選択できるチェックボックスを表示し、ユーザにそのチェックボックスを選択させることができる。
図17は、インストールアプリケーション選択画面の第1の例を示す図である。インストールアプリケーション選択画面1700aは、次の条件の下で表示されるものである。
すなわち、画像形成装置102aが、図8に示すアプリケーションをインストール済みであるとする。また、図9に示す装置が画像形成装置102aに接続された状態であるとする。また、図4のステップS401において、ユーザによって、ライセンス番号LN727が入力されたとする。
【0054】
図18は、図7のステップS703で、画像形成装置102bのハードディスク209から取得される「画像形成装置102aに接続されている装置のハードIDの一覧」の一例を示す図である。また、図19は、インストールアプリケーション選択画面の第2の例を示す図である。
図18に示す装置が画像形成装置102bに接続された状態である場合、画像形成装置102bには、ハードIDがH127である外部コントローラが接続されていないため、図19に示すようなインストールアプリケーション選択画面1700bが表示される。すなわち、インストールアプリケーション選択画面1700aでは、ページ記述言語1、ページ記述言語2、ページ記述言語3を選択できない状態である。これに対し、インストールアプリケーション選択画面1700bでは、ページ記述言語1、ページ記述言語2、ページ記述言語3を選択できる状態になる。これらの機能は、外部コントローラの存在により画像形成装置102aでは不要となるからである。
【0055】
次に、図20のフローチャートを参照して、インストールアプリケーション選択画面において、ユーザが、インストールするアプリケーションのチェックボックスのチェックを外した場合の画像形成装置102における処理の一例を説明する。
ステップS2001において、画像形成装置102のCPU208は、ユーザによって選択されたチェックボックスのチェックを外す。
次に、ステップS2002において、CPU208は、チェックを外したチェックボックスに対応するアプリケーションのアプリケーションIDが、その他のアプリケーションにおける依存アプリケーションID1506にあるか否かを判定する。すなわち、CPU208は、チェックを外したチェックボックスに対応するアプリケーションの事前のインストールが必要なアプリケーションがあるか否かを判定する。この判定の結果、チェックを外したチェックボックスに対応するアプリケーションのアプリケーションIDが、その他のアプリケーションにおける依存アプリケーションID1506にない場合には、ステップS2006に進む。そして、CPU208は、ステップS2001の処理の内容が反映されるように、インストールアプリケーション選択画面を再表示させる。
【0056】
一方、チェックを外したチェックボックスに対応するアプリケーションのアプリケーションIDが、その他のアプリケーションにおける依存アプリケーションID1506にある場合には、ステップS2003に進む。
ステップ2003に進むと、CPU208は、チェックを外したチェックボックスに対応するアプリケーションの事前のインストールが必要なアプリケーションのチェックボックスを取得し、そのチェックボックスのチェックを外す。
次に、ステップS2004において、CPU208は、次の処理を行う。すなわち、CPU208は、ステップS2003で取得したチェックボックスのテキストに、そのチェックボックスに対応するアプリケーション名と、インストールできない理由として、依存するアプリケーションが選択されていない旨の文字列とを設定する。
【0057】
次に、ステップS2005において、CPU208は、ステップS2003で取得したチェックボックスを無効化する。そして、ステップS2002に戻り、ステップS2003でチェックを外したチェックボックスに対応するアプリケーションの事前のインストールが必要なアプリケーションがあるか否かを判定する。この判定は、チェックを外したチェックボックスに対応するアプリケーションのアプリケーションIDが、その他のアプリケーションにおける依存アプリケーションID1506にあるか否かによって行うことができる。
この判定の結果、ステップS2003でチェックを外したチェックボックスに対応するアプリケーションの事前のインストールが必要なアプリケーションがある場合には、ステップS2003〜ステップS2005の処理を繰り返す。そして、ステップS2003でチェックを外したチェックボックスに対応するアプリケーションの事前のインストールが必要なアプリケーションがなくなると、ステップS2006に進む。そして、CPU208は、ステップS2001〜S2005の処理の内容が反映されるように、インストールアプリケーション選択画面を再表示させる。
【0058】
図21は、図19に示したインストールアプリケーション選択画面1700bでユーザがページ記述言語1のチェックボックスのチェックを外した場合に図20の処理を行うことにより表示されるインストールアプリケーション選択画面の一例を示す図である。
図21のインストールアプリケーション選択画面1700cにおいて、ページ記述言語1のインストールが事前に必要となるページ記述言語2のチェックは、ページ記述言語1のチェックが外されたときに外される。これにより、ページ記述言語2の選択が無効化される。さらにそれに伴い、ページ記述言語2のインストールが事前に必要となるページ記述言語3のチェックも外される。これにより、ページ記述言語3の選択も無効化される。
【0059】
次に、図22のフローチャートを参照して、インストールアプリケーション選択画面において、ユーザが、インストールするアプリケーションのチェックボックスをチェックした場合の画像形成装置102における処理の一例を説明する。
ステップS2201において、画像形成装置102のCPU208は、ユーザによって選択されたチェックボックスをチェックする。
次に、ステップS2002において、CPU208は、チェックしたチェックボックスに対応するアプリケーションのアプリケーションIDが、その他のアプリケーションにおける依存アプリケーションID1506にあるか否かを判定する。すなわち、CPU208は、チェックしたチェックボックスに対応するアプリケーションが事前にインストールされている必要があるアプリケーションがあるか否かを判定する。この判定の結果、チェックしたチェックボックスに対応するアプリケーションのアプリケーションIDが、その他のアプリケーションにおける依存アプリケーションID1506にない場合には、ステップS2005に進む。そして、CPU208は、ステップS2201の処理の内容が反映されるように、インストールアプリケーション選択画面を再表示させる。
【0060】
一方、チェックしたチェックボックスに対応するアプリケーションのアプリケーションIDが、その他のアプリケーションにおける依存アプリケーションID1506にある場合には、ステップS2203に進む。
次に、ステップ2203において、CPU208は、チェックしたチェックボックスに対応するアプリケーションに依存するアプリケーションのチェックボックスを取得し、そのチェックボックスを有効化する。
次に、ステップS2204において、CPU208は、ステップS2203で取得したチェックボックスのテキストに、そのチェックボックスに対応するアプリケーション名を設定する。
次に、ステップS2206において、CPU208は、ステップS2201〜ステップS2204の処理の内容が反映されるように、インストールアプリケーション選択画面を再表示する。
【0061】
図23は、図21に示したインストールアプリケーション選択画面でユーザがページ記述言語2のチェックボックスをチェックした場合に図22の処理を行うことにより表示されるインストールアプリケーション選択画面の一例を示す図である。
図23のインストールアプリケーション選択画面1700dでは、チェックされたページ記述言語1のインストールが事前に必要となるページ記述言語2の選択が有効化される。
【0062】
以上のように本実施形態では、画像形成装置102のアプリケーションのインストールの状況や、画像形成装置102に接続されている装置の状況から、インストールが不要なアプリケーションを判別する。更に、アプリケーションのインストール(アクティベーション)の順番に基づく依存関係と、ユーザによるアプリケーションの選択状態とに基づいて、インストールが不要なアプリケーションを判別する。このようにして判別した結果に基づいて、インストールしても意味のないアプリケーションを選択できないUIを提供し、画像形成装置102で利用できないアプリケーションのライセンスを無駄に発行させないようにする。
【0063】
インストールアプリケーション選択画面にてユーザにより選択されたアプリケーションの一覧は、図4のステップS404にて、画像形成装置102のCPU208によりライセンス発行依頼としてライセンス発行装置101に送信される。送信されたライセンス発行依頼は、ライセンス発行装置101のCPU303により、図6のステップS601で受信され、ステップS602のライセンス発行処理が実行される。
【0064】
次に、図24のフローチャートを参照して、図6のステップS602において、ライセンスファイルを発行する際のライセンス発行装置101の処理の詳細の一例を説明する。
ステップS2401において、ライセンス発行装置101のCPU303は、NetworkI/F306で受信したライセンス発行依頼に含まれる「アプリケーションの一覧」を取得する。このアプリケーションの一覧は、インストールアプリケーション選択画面にてユーザにより選択されたアプリケーションの一覧である。尚、以下の説明では、このアプリケーションの一覧を、必要に応じてインストールアプリケーション一覧と称する。
【0065】
次に、ステップS2402において、CPU303は、インストールアプリケーション一覧から、1つのアプリケーションを取得し、そのアプリケーションをライセンス発行の対象アプリケーションとする。
次に、ステップS2403において、CPU303は、対象アプリケーションをインストールするのに事前にインストールしておく必要がある依存アプリケーションがあるか否かを判定する。この判定は、図13に示したアプリケーションテーブル1301において、対象アプリケーションのアプリケーションIDのレコードに、依存アプリケーションIDが存在するか否かによって行うことができる。
【0066】
この判定の結果、対象アプリケーションをインストールするのに事前にインストールしておく必要がある依存アプリケーションがない場合には、ステップS2407のライセンス発行処理に進む。一方、対象アプリケーションをインストールするのに事前にインストールしておく必要がある依存アプリケーションがある場合には、ステップS2404に進む。
ステップS2404に進むと、CPU303は、ステップS2403で検出された依存アプリケーションが、ステップS2401で取得したインストールアプリケーション一覧にあるか否かを判定する。この判定の結果、依存アプリケーションが、インストールアプリケーション一覧にない場合には、ステップS2407のライセンス発行処理に進む。
【0067】
一方、依存アプリケーションが、ステップS2401で取得したインストールアプリケーション一覧にある場合には、ステップS2405に進む。
次に、ステップS2405において、CPU303は、依存アプリケーションのライセンスファイルが既に発行されたか否かを判定する。この判定の結果、依存アプリケーションのライセンスファイルが発行されていない場合には、ステップS2406に進む。そして、CPU303は、対象アプリケーションを依存アプリケーションに変更して、ステップS2403に戻る。
一方、依存アプリケーションのライセンスファイルが発行されている場合には、ライセンスの発行をするためにステップS2407に進む。
【0068】
ステップS2403、S2404、S2405からステップS2407に進むと、CPU303は、対象アプリケーションのライセンスファイルを発行する。
次に、ステップS2408において、CPU303は、既にインストール順が登録されているアプリケーションのうち、最後にインストールされるアプリケーションの次に対象アプリケーションをインストールすることを、インストール順の情報として追加する。
次に、ステップS2409において、CPU303は、ステップS2401で取得したインストールアプリケーション一覧の中でまだライセンスファイルを発行していないアプリケーションがあるか否かを判定する。
【0069】
この判定の結果、インストールアプリケーション一覧の中でまだライセンスファイルを発行していないアプリケーションがある場合には、ステップS2402に戻る。そして、CPU303は、ライセンスファイルを発行していないアプリケーションをインストールアプリケーション一覧の中から取得して、ステップS2403〜ステップS2408の処理を続ける。そして、全てのインストールアプリケーション一覧のライセンスファイルを発行すると、ステップS2410に進む。
次に、ステップS2410において、CPU303は、ステップS2407で発行したライセンスファイルの一覧と、インストール順とをライセンス情報としてメモリ305に格納する。
CPU303によりメモリ305に格納されたライセンス情報は、図6のステップS603にて、ライセンス発行依頼に対する応答として、画像形成装置102に返信される。
その後、図4のステップS405にてライセンス情報を受信した画像形成装置102は、ライセンス情報に含まれるインストール順に従い、ライセンス情報に含まれるライセンスファイルを取得し、アプリケーションのインストール処理を繰り返す。
【0070】
以上のように、ライセンス発行装置101は、ユーザによってインストールするものとして選択されたアプリケーションの依存関係から、アプリケーションのインストール順を自動的に算出する。そして、ライセンス発行装置101は、ライセンスファイルと共に、そのライセンスファイルに基づくアプリケーションのインストール順とを画像形成装置102に送信する。画像形成装置102は、その受信したインストール順に従いアプリケーションをインストールする。
このようにすることでユーザはアプリケーションのインストール順を意識しなくても、インストールするアプリケーションを選択するだけで正常にアプリケーションをインストールすることができる。
【0071】
以上のように本実施形態では、ライセンス発行装置101は、ライセンス番号と、画像形成装置102に接続されている装置に関する情報と、画像形成装置102にインストールされているアプリケーションに関する情報とを取得する。ライセンス発行装置101は、ライセンス番号で特定される商品のアプリケーションの夫々について、インストール可能なものか、それともインストール不可能なものかを判定する。この判定は、アプリケーションテーブル1301の内容や、画像形成装置102に接続されている装置に関する情報や、画像形成装置102にインストールされているアプリケーションに関する情報に基づいて行われる。インストール可能なアプリケーションについては、当該アプリケーションをインストールするために事前にインストールされている必要があるアプリケーションを特定する。この特定は、アプリケーションテーブル1301の内容に基づいて行われる。ライセンス発行装置101は、これらの情報を含む商品情報1501を画像形成装置102に送信する。画像形成装置102は、商品情報1501に基づいて、インストール可能なアプリケーションの選択を可能にすると共に、インストール不可能なアプリケーションの選択を不可能にするインストールアプリケーション選択画面を表示する。更にインストールアプリケーション選択画面では、事前のインストールが必要なアプリケーションが存在するアプリケーションについては、当該事前のインストールが必要なアプリケーションのインストールが指定された場合に、インストールすることを指定できる。
したがって、商品に含まれるアプリケーションのうち、インストールが出来る適切なアプリケーションだけをユーザは選択できるようになる。
【0072】
また、本実施形態では、ライセンス発行装置101は、画像形成装置102のユーザがインストールすることを指定した各アプリケーションについて、当該アプリケーションよりも早くインストールしておく必要があるアプリケーションがあるか否かを判定する。この判定は、アプリケーションテーブル1301の内容に基づいて行われる。この判定の結果に基づいて、インストールする対象となっている各アプリケーションのインストール順を決定し、当該各アプリケーションと共にインストール順の情報を画像形成装置102に送信する。
したがって、ユーザは、インストールすることを選択した複数のアプリケーションについて、インストールする順番に制約があったとしても、それを意識することなくインストールするための操作を行うことが出来る。
【0073】
尚、本実施形態では、ライセンスをインストールするためのUIを画像形成装置102の表示部212に表示した。しかしながら、クライアントPC103からの問い合わせによって画像形成装置102がUIを作成し、そのUIを応答としてクライアントPC103に返し、そのUIをクライアントPCの表示部301に表示するようにしてもよい。また、UIとしてWebブラウザを利用するようにしてもよい。
【0074】
また、本実施形態では、インストールすることができないアプリケーションに係る表示をグレー表示して、ユーザが選択できないようにする場合を例に挙げて説明した。しかしながら、必ずしもこのようにする必要はない。例えば、インストールすることができないアプリケーションに係る情報を表示しないようにしてもよい。
また、本実施形態では、アプリケーションテーブル1301を検索して、アプリケーションのインストールの可否を判断したり、アプリケーションをインストールするために事前にインストールされている必要があるアプリケーションを特定したりするようにした。しかしながら、必ずしもアプリケーションテーブル1301を用いる必要はない。例えば、インストール順が定まっている複数のプログラムについては、当該複数のプログラムをインストールする順番を示す情報を依存アプリケーションID1304の代わりに記憶するようにしてもよい。
【0075】
次に、本発明のその他の実施形態について説明する。最初の実施形態では、インストールアプリケーション選択画面にて、商品を構成するアプリケーションを同じレベルで並べて表示した(図17、図19、図21、図23を参照)。そして、ユーザが、チェックボックスのチェックをしたり、外したりすると、当該チェックボックスに対応するアプリケーションと依存関係のあるアプリケーションの選択を有効化又は無効化した。しかしながら、このようなUI(インストールアプリケーション選択画面)では、チェックの状態を変更するまで、そのチェックしたアプリケーションがどのアプリケーションと依存関係があるのかをユーザが知ることが困難であった。また、例えば、チェックしたアプリケーションと依存関係のあるアプリケーションAに対して、さらに依存関係があるアプリケーションBがある場合がある。この場合、最初の実施形態では、ユーザは、一度、アプリケーションAに対応するチェックボックスをチェックしてからアプリケーションBに対応するチェックボックスをチェックしなければならなかった。
【0076】
そこで、本実施形態では、アプリケーション同士の依存関係を、UI(インストールアプリケーション選択画面)でユーザに分かり易く報知できるようにする場合を例に挙げて説明する。このように本実施形態と前述した最初の実施形態では、アプリケーション同士の依存関係に係る処理の一部が主として異なる。したがって、本実施形態の説明において、前述した最初の実施形態と同一の部分については、図1〜図24に付した符号と同一の符号を付す等して詳細な説明を省略する。例えば、システム構成やハードウェア構成については、最初の実施形態の図1、図2、図3を用いて説明したものと同様である。また、ライセンス発行装置101側の処理についても最初の実施形態と同様となる。
【0077】
更に、画像形成装置102がライセンス発行装置101からライセンス情報を受け、アプリケーションをインストールする処理も図4のようになる。ただし、ステップS403において、画像形成装置102が商品情報1501を受信してから、インストールアプリケーション選択画面を表示するまでの処理が、次の図25のフローチャートのようになる。すなわち、図16に示したフローチャートの代わりに、図25のフローチャートの処理が実行される。
【0078】
図25のフローチャートを参照して、図4のステップS403において、ライセンス発行装置101から商品情報1501を受け取った画像形成装置102が、インストールアプリケーション選択画面を表示させる処理の詳細の一例を説明する。
ステップS2501において、画像形成装置102のCPU208は、NetworkI/F206を介して商品情報1501を受信し、ハードディスク209に格納する。
次に、ステップS2502において、CPU208は、ステップS2501で受信した商品情報1501から商品名1502を取得し、商品名1502を、表示するラベルのテキストとして設定する。
【0079】
次に、ステップS2503において、CPU208は、ステップS2501で受信した商品情報1501からインストール不可能アプリケーション一覧1507を取得する。
次に、ステップS2504において、CPU208は、ステップS2503で取得したインストール不可能アプリケーション一覧1507から1つのインストール不可能なアプリケーションを取り出す。
次に、ステップS2505において、CPU208は、チェックボックス付きのツリービューを作成するため、ルートノードに子ノードとして1つのチェックボックスを追加する。
【0080】
次に、ステップS2506において、CPU208は、次の処理を行う。すなわち、CPU208は、ステップS2505で作成したチェックボックスのテキストに、ステップS2504で取得したインストール不可能なアプリケーションのアプリケーション名1508とインストール不可能理由1510とを設定する。
次に、ステップS2507において、CPU208は、ステップS2505で作成したチェックボックスのチェックを外す。
次に、ステップS2508において、CPU208は、ステップS2505で設定したチェックボックスをユーザが編集できないように無効化する。
【0081】
次に、ステップS2509において、CPU208は、ステップS2503で取得したインストール不可能アプリケーション一覧1507に含まれる全てのアプリケーションのチェックボックスを作成したか否かを判定する。この判定の結果、インストール不可能アプリケーション一覧1507に含まれる全てのアプリケーションのチェックボックスを作成していない場合には、ステップS2504に戻る。そして、インストール不可能アプリケーション一覧1507に含まれる全てのアプリケーションのチェックボックスを作成するまで、ステップS2504〜S2509の処理を繰り返し行う。そして、インストール不可能アプリケーション一覧1507に含まれる全てのアプリケーションのチェックボックスを作成すると、ステップS2510に進む。
【0082】
ステップS2510に進むと、CPU208は、ステップS2501で受信した商品情報1501からインストール可能アプリケーション一覧1503を取得する。
次に、ステップS2511において、CPU208は、ステップS2510で取得したインストール可能アプリケーション一覧1503から1つのインストール可能アプリケーションの情報を取り出す。そして、CPU208は、当該情報に対応するアプリケーションを対象アプリケーションとして設定する。
【0083】
次に、ステップS2512において、CPU208は、対象アプリケーションをインストールする前にインストールする必要がある依存アプリケーションがあるか否かを判定する。この判定は、ステップS2501で受信した商品情報1501に含まれる依存アプリケーションID1506を参照することにより行うことができる。
この判定の結果、対象アプリケーションをインストールする前にインストールする必要がある依存アプリケーションがある場合には、後述するステップS2514に進む。一方、対象アプリケーションをインストールする前にインストールする必要がある依存アプリケーションがない場合には、ステップS2513に進む。そして、CPU208は、ルートノードの子ノードとして1つのチェックボックスを追加する。
【0084】
次に、ステップS2517において、CPU208は、ステップS2513にて追加したチェックボックスのテキストに、対象アプリケーションのアプリケーション名1504を設定する。
次に、ステップS2518において、CPU208は、ステップS2517で設定したチェックボックスにチェックをする。
次に、ステップS2519において、CPU208は、ステップS2517で設定したチェックボックスを有効化する。そして、後述するステップS2520に進む。
【0085】
前述したように、ステップS2512において、対象アプリケーションをインストールする前にインストールする必要がある依存アプリケーションがあると判定された場合には、ステップS2514に進む。そして、CPU208は、当該依存アプリケーションのチェックボックスが既に作成されているか否かを判定する。この判定の結果、当該依存アプリケーションのチェックボックスが未作成の場合には、ステップS2516に進む。そして、対象アプリケーションを依存アプリケーションに変更して、ステップS2512に戻る。
一方、当該依存アプリケーションのチェックボックスを作成済みの場合には、ステップS2515に進む。そして、CPU208は、依存アプリケーションに対応するチェックボックスの子ノードとしてチェックボックスを追加する。
次に、ステップS2517において、CPU208は、ステップS2515で追加したチェックボックスのテキストに、対象アプリケーションのアプリケーション名1504を設定する。そして、前述したように、CPU208は、ステップS2518において、当該チェックボックスをチェックし、ステップS2519において、当該チェックボックスを有効化する。そして、ステップS2520に進む。
【0086】
次に、ステップS2520において、CPU208は、ステップS2510で取得したインストール可能アプリケーション一覧1503に含まれる全てのアプリケーションのチェックボックスを作成したか否かを判定する。この判定の結果、インストール可能アプリケーション一覧1503に含まれる全てのアプリケーションのチェックボックスを作成していない場合には、ステップS2511に戻る。そして、インストール可能アプリケーション一覧1503に含まれる全てのアプリケーションのチェックボックスを作成するまで、ステップS2511〜S2520の処理を繰り返し行う。そして、インストール可能アプリケーション一覧1503に含まれる全てのアプリケーションのチェックボックスを作成すると、ステップS2521に進む。
次に、ステップS2521において、CPU208は、ステップS2501〜ステップS2520で作成した情報に基づいて、インストールアプリケーション選択画面を表示部212に表示させる。
【0087】
図25のフローチャートを実行することにより、アプリケーション選択画面にて、インストールする対象のアプリケーション同士の依存関係を、チェックリスト付きのツリービューの親子関係の形式でユーザに提示することができる。
図26は、インストールアプリケーション選択画面の第1の例を示す図である。インストールアプリケーション選択画面2600aは、次の条件の下で表示されるものとする。 すなわち、画像形成装置102bが、図8に示すアプリケーションをインストール済みであるとする。また、図18に示す装置が画像形成装置102bに接続された状態であるとする。また、図4のステップS401において、ユーザによって、ライセンス番号LN727が入力されたとする。
【0088】
図26では、まず、SENDに依存するアプリケーションが、暗号化PDFとサーチャブルPDFであることがツリービューによる階層構造で示される。また、ページ記述言語1に依存するアプリケーションがページ記述言語2であることと、そのページ記述言語2に依存するアプリケーションがページ記述言語3であることとがツリービューによる階層構造で示される。
【0089】
次に、図27のフローチャートを参照しながら、インストールアプリケーション選択画面において、ユーザが、インストールするアプリケーションのチェックボックスのチェックを外した場合の画像形成装置102における処理の一例を説明する。
ステップS2701において、画像形成装置102のCPU208は、ユーザによって選択されたチェックボックスを対象のノードとする。
次に、ステップS2702において、CPU208は、ユーザによって選択されたチェックボックスのチェックを外す。
【0090】
次に、ステップS2703において、CPU208は、対象のノードに子ノードがあるか否かを判定する。この判定の結果、対象のノードに子ノードがない場合には、ステップS2705に進む。そして、CPU208は、ステップS2702の処理の内容が反映されるように、インストールアプリケーション画面を再表示させて、図27のフローチャートによる処理を終了する。
一方、対象のノードに子ノードがある場合には、ステップS2704に進む。そして、CPU208は、当該子ノードを対象のノードとして設定してステップS2702に戻る。
【0091】
図27のフローチャートを実施することにより、チェックが外されたアプリケーションを事前にインストールしていることが必要なその他のアプリケーションがある場合、当該その他のアプリケーションのチェックも全て外すことができる。
図28は、インストールアプリケーション選択画面の第2の例を示す図である。図26に示したインストールアプリケーション選択画面2600aで、ページ記述言語1のチェックボックスが外されると、ページ記述言語2及びページ記述言語3のチェックボックスのチェックも外される。そして、図28に示すインストールアプリケーション選択画面2600bのようになる。
【0092】
次に、図29のフローチャートを参照しながら、インストールアプリケーション選択画面において、ユーザが、インストールするアプリケーションのチェックボックスをチェックした場合の画像形成装置102における処理の一例を説明する。
ステップS2901において、画像形成装置102のCPU208は、ユーザによって選択されたチェックボックスを対象のノードとする。
次に、ステップS2902において、CPU208は、ユーザによって選択されたチェックボックスをチェックする。
【0093】
次に、ステップS2903において、CPU208は、対象のノードに親ノードがあるか否かを判定する。この判定の結果、対象のノードに親ノードがない場合には、ステップS2906に進む。そして、CPU208は、ステップS2902の処理の内容が反映されるように、インストールアプリケーション画面を再表示させて、図29のフローチャートによる処理を終了する。
一方、対象のノードに親ノードがある場合には、ステップS2904に進む。そして、CPU208は、当該親ノードにおけるチェックボックスが有効化されているチェックボックスであるか否かを判定する。この判定の結果、当該親ノードにおけるチェックボックスが有効化されているチェックボックスでない場合には、ステップS2906に進む。そして、CPU208は、ステップS2902の処理の内容が反映されるように、インストールアプリケーション画面を再表示させて、図29のフローチャートによる処理を終了する。
一方、当該親ノードにおけるチェックボックスが有効化されているチェックボックスである場合には、ステップS2905に進む。そして、CPU208は、当該親ノードを対象のノードとして設定してステップS2902に戻る。
【0094】
図29のフローチャートを実施することにより、チェックされたアプリケーションをインストールする前にインストールしている必要があるその他のアプリケーションがある場合、当該その他のアプリケーションも全てチェックすることができる。
例えば、図28に示したインストールアプリケーション選択画面2600bにおいて、ページ記述言語3のチェックボックスがチェックされた場合には、ページ記述言語1及びページ記述言語2のチェックボックスもチェックされる。すなわち、図26に示したインストールアプリケーション選択画面2600aのようになる。
【0095】
以上のように本実施形態では、事前にインストールしておく必要があるアプリケーションを親ノードとし、インストールに際し、当該アプリケーションのインストールが必要なアプリケーションを当該親ノードの子ノートとするツリービュー表示を行うようにした。したがって、各アプリケーションについて、当該アプリケーションをインストールする前にインストールしておく必要があるアプリケーションをUI上で視覚的に表示することができる。したがって、本実施形態では、ユーザは、チェックボックスを操作することなく、当該チェックボックスに対応するアプリケーションをインストールする前にインストールする必要があるアプリケーションを知ることができるようになる。
【0096】
尚、本実施形態では、ツリービュー表示を行って、アプリケーションと、当該アプリケーションをインストールする前にインストールしておく必要があるアプリケーションとの関係を一画面で表示するようにした。しかしながら、これらのアプリケーションを関連付けて表示するようにしてれば、必ずしもツリービュー表示を行う必要はない。例えば、先にインストールする必要があるものから順に水平方向にアプリケーションを特定する情報を表示するようにしてもよい。
また、本実施形態でも、前述した最初の実施形態で説明した変形例の制御(処理)を適用することができる。
【0097】
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0098】
(その他の実施例)
本発明は、以下の処理を実行することによっても実現される。即ち、まず、以上の実施形態の機能を実現するソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)が当該コンピュータプログラムを読み出して実行する。

【特許請求の範囲】
【請求項1】
画像形成装置と通信可能な情報配信装置であって、
前記画像形成装置の代わりに所定のプログラムを実行できる外部装置が前記画像形成装置に接続されているか否かを示す情報を前記画像形成装置から取得する取得手段と、
前記所定のプログラムを前記画像形成装置にインストールさせるべく前記所定のプログラムを配信する配信手段とを有し、
前記取得手段により取得された情報から、前記画像形成装置の代わりに前記所定のプログラムを実行できる外部装置が前記画像形成装置に接続されていると判断された場合、前記所定のプログラムを配信しないよう前記配信手段を制御することを特徴とする情報配信装置。
【請求項2】
前記取得手段は前記画像形成装置が所定のプログラムを実行できるか否かを示す情報もさらに取得し、
前記取得手段により取得された情報から前記画像形成装置は前記所定のプログラムを実行できず、かつ前記画像形成装置の代わりに前記所定のプログラムを実行できる外部装置が前記画像形成装置に接続されていると判断された場合、前記所定のプログラムを配信しないよう前記配信手段を制御し、
前記取得手段により取得された情報から前記画像形成装置は前記所定のプログラムを実行できず、かつ前記画像形成装置の代わりに前記所定のプログラムを実行できる外部装置が前記画像形成装置に接続されていないと判断された場合、前記所定のプログラムを配信するよう前記配信手段を制御することを特徴とする請求項1に記載の情報配信装置。
【請求項3】
前記配信手段が前記所定のプログラムを配信する場合であって、かつ前記所定のプログラムが、前記画像形成装置にインストールさせる際に前記所定のプログラムとは異なるプログラムがインストールされていることがインストールの条件であるプログラムであった場合、
前記配信手段は、前記所定のプログラムと、前記所定のプログラムとは異なるプログラムと、前記画像形成装置がそれらのプログラムをインストールする順番を指定した情報を配信することを特徴とする請求項1または2に記載の情報配信装置。
【請求項4】
画像形成装置と通信可能な情報配信装置を制御する情報配信装置の制御方法であって、
前記画像形成装置の代わりに所定のプログラムを実行できる外部装置が前記画像形成装置に接続されているか否かを示す情報を前記画像形成装置から取得する取得工程と、
前記所定のプログラムを前記画像形成装置にインストールさせるべく前記所定のプログラムを配信する配信工程とを含み、
前記取得工程により取得された情報から、前記画像形成装置の代わりに前記所定のプログラムを実行できる外部装置が前記画像形成装置に接続されていると判断された場合、前記所定のプログラムを配信しないよう前記配信工程を制御することを特徴とする情報配信装置の制御方法。
【請求項5】
前記取得工程は前記画像形成装置が所定のプログラムを実行できるか否かを示す情報も取得することが可能であって、
前記取得工程により取得された情報から前記画像形成装置が所定のプログラムを実行できず、かつ前記画像形成装置の代わりに前記所定のプログラムを実行できる外部装置が前記画像形成装置に接続されていると判断された場合、前記所定のプログラムを配信しないよう前記配信工程を制御し、
前記取得工程により取得された情報から前記画像形成装置は前記所定のプログラムを実行できず、かつ前記画像形成装置の代わりに前記所定のプログラムを実行できる外部装置が前記画像形成装置に接続されていないと判断された場合、前記所定のプログラムを配信するよう前記配信工程を制御することを特徴とする請求項4に記載の情報配信装置の制御方法。
【請求項6】
前記配信工程が前記所定のプログラムを配信する場合であって、かつ前記所定のプログラムが、前記画像形成装置にインストールさせる際に前記所定のプログラムとは異なるプログラムがインストールされていることがインストールの条件であるプログラムであった場合、
前記配信工程は、前記所定のプログラムと、前記所定のプログラムとは異なるプログラムと、前記画像形成装置がそれらのプログラムをインストールする順番を指定した情報を配信することを特徴とする請求項4または5に記載の情報配信装置の制御方法。
【請求項7】
画像形成装置と通信可能な情報配信装置を制御する方法であって、
前記画像形成装置の代わりに所定のプログラムを実行できる外部装置が前記画像形成装置に接続されているか否かを示す情報を前記画像形成装置から取得する取得工程と、
前記所定のプログラムを前記画像形成装置にインストールさせるべく前記所定のプログラムを配信する配信工程とを含み、
前記取得工程により取得された情報から、前記画像形成装置の代わりに前記所定のプログラムを実行できる外部装置が前記画像形成装置に接続されていると判断された場合、前記所定のプログラムを配信しないよう前記配信工程を制御する情報配信装置の制御方法の各工程をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項8】
前記取得工程は前記画像形成装置が所定のプログラムを実行できるか否かを示す情報も取得することが可能であって、
前記取得工程により取得された情報から前記画像形成装置が所定のプログラムを実行できず、かつ前記画像形成装置の代わりに前記所定のプログラムを実行できる外部装置が前記画像形成装置に接続されていると判断された場合、前記所定のプログラムを配信しないよう前記配信工程を制御し、
前記取得工程により取得された情報から前記画像形成装置は前記所定のプログラムを実行できず、かつ前記画像形成装置の代わりに前記所定のプログラムを実行できる外部装置が前記画像形成装置に接続されていないと判断された場合、前記所定のプログラムを配信するよう前記配信工程を制御することを特徴とする請求項7に記載のコンピュータプログラム。
【請求項9】
前記配信工程が前記所定のプログラムを配信する場合であって、かつ前記所定のプログラムが、前記画像形成装置にインストールさせる際に前記所定のプログラムとは異なるプログラムがインストールされていることがインストールの条件であるプログラムであった場合、
前記配信工程は、前記所定のプログラムと、前記所定のプログラムとは異なるプログラムと、前記画像形成装置がそれらのプログラムをインストールする順番を指定した情報を配信することを特徴とする請求項7または8に記載のコンピュータプログラム。
【請求項10】
画像形成装置と通信可能な情報配信装置であって、
前記画像形成装置の状態情報を該画像形成装置から取得する取得手段と、
前記画像形成装置から配信を要求された複数のプログラムを前記画像形成装置に配信する必要があるか否かを、前記取得手段により取得された状態情報を基に判定する判定手段と、
前記複数のプログラムのうち、前記判定手段により配信する必要がないと判定されたプログラムは前記画像形成装置へ配信せず、前記判定手段により配信する必要があると判定されたプログラムは前記画像形成装置へ配信する配信手段とを有する情報配信装置。
【請求項11】
前記複数のプログラムは前記画像形成装置から送信された識別情報を基に指定されたプログラム群であることを特徴とする請求項10に記載の情報配信装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate