以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における機器管理システムのシステム構成例を示す図である。同図の機器管理システム1において、ユーザ環境E1は、画像形成装置20のユーザ(顧客)のシステム環境である。例えば、ユーザ環境E1は、画像形成装置20のユーザの企業又はオフィス等に相当する。ユーザ環境E1において、一台以上の画像形成装置20及び機器管理装置10等は、LAN(Local Area Network)等のネットワーク30(有線又は無線の別は問わない。)を介して接続されている。画像形成装置20は、印刷、スキャン、コピー、及びファクス送受信等の複数の機能を一台の筐体において実現する複合機であり、電子機器の一例である。但し、画像形成装置10は、必ずしも複合機でなくてもよい。プリンタやスキャナ等、単一の機能を実現する機器であってもよい。画像形成装置20は、プログラムコンポーネント(以下、単に「コンポーネント」という。)を追加又は更新することにより随時機能拡張等を図ることができる。
機器管理装置10は、ユーザ環境E1における画像形成装置20において動作するコンポーネントや当該コンポーネントのライセンス(利用権限)の取得及び導入等を一括して行うPC(Personal Computer)等のコンピュータであり、ライセンス導入支援装置の一例である。なお、ユーザ環境E1は、ユーザ数(企業又はオフィス単位のユーザ数)に応じて複数存在しうる。
一方、メーカー環境E2は、画像形成装置20に追加されるコンポーネントの販売者側のシステム環境である。例えば、メーカー環境E2は、画像形成装置20のメーカーによって運営される。メーカー環境E2は、ライセンス管理サーバ50及びパッケージ管理サーバ60等を有する。
ライセンス管理サーバ50は、ユーザによって購入されたコンポーネントのライセンスを管理するコンピュータである。パッケージ管理サーバ60は、コンポーネントの実体を管理するコンピュータである。
なお、ユーザ環境E1とメーカー環境E2とはインターネット等のネットワーク70を介して接続されている。
本実施の形態におけるコンポーネントは、販売パッケージと呼ばれる単位で流通する。また、複数の販売パッケージの集合がセットとして流通単位となる場合もある。複数の販売パッケージの集合を、本実施の形態では「グループ」という。
図2は、販売パッケージの構成例を示す図である。同図に示されるように、一つの販売パッケージは、一つの販売パッケージ情報ファイルと、一つ以上の機能パッケージを含む書庫ファイルとして構成される。
販売パッケージ情報ファイルは、販売パッケージの属性情報(販売パッケージ情報)が記録されたファイルである。
図3は、販売パッケージ情報の構成例を示す図である。同図において、販売パッケージ情報は、プロダクトID、バージョン、名称、説明、及びベンダ名等を含む。
プロダクトIDは、各販売パッケージ及び各機能パッケージに一意に割り当てられた識別子(製品識別子)である。バージョンは、販売パッケージのバージョン番号である。名称は、販売パッケージの名前である。説明は、販売パッケージに関する説明である。ベンダ名は、販売パッケージのベンダ(開発者)の名前である。
図2に戻る。機能パッケージは、機能単位でパッケージ化されたソフトウェアパッケージである。一つの機能パッケージは、一つの機能パッケージ情報ファイルと一つのコンポーネントの実体とを含む書庫ファイル(例えば、JAR(Java(登録商標) Archive)ファイル)として構成される。
機能パッケージ情報ファイルは、機能パッケージの属性情報(機能パッケージ情報)が記録されたファイルである。
図4は、機能パッケージ情報の構成例を示す図である。同図において、機能パッケージ情報は、プロダクトID、バージョン、名称、説明、ベンダ名、及びパッケージ依存情報等を含む。
プロダクトIDは、機能パッケージに対するプロダクトIDである。バージョンは、機能パッケージのバージョン番号である。名称は、機能パッケージの名前である。説明は、機能パッケージに関する説明である。ベンダ名は、機能パッケージのベンダ(開発者)の名前である。
なお、同図では、三つの販売パッケージによって1つのグループが構成されている。グループに属する販売パッケージであっても単独で流通しうる。
図5は、本発明の実施の形態における機器管理システムの機能構成例を示す図である。
同図において、画像形成装置20は、要求処理部21、ライセンスチェック部22、及びインストール情報管理テーブル23等を有する。要求処理部21は、機器管理装置10からの要求に応じ、機器情報の送信、販売パッケージのインストール、ライセンスファイル90の導入、販売パッケージのアンインストール、及びライセンスファイル90の削除等を行う。
ライセンスファイル90とは、販売パッケージに対するライセンスを証明するデータ(販売パッケージの利用を許可するためのデータ)が記録されたファイルである。すなわち、本実施の形態における販売パッケージ(コンポーネント)は、その実体を入手するだけでは画像形成装置20において利用することはできない。販売パッケージは、ライセンスファイル90が画像形成装置20に導入されることにより利用可能となる。
ライセンスチェック部22は、販売パッケージが利用される際に、ライセンスファイル90に基づいて利用の許否を判定する。インストール情報管理テーブル23は、画像形成装置20にインストールされている販売パッケージ等の情報を管理するテーブルであり、画像形成装置20の記憶装置に記憶されている。
ライセンス管理サーバ50は、ライセンス管理部51及びライセンス管理テーブル52等を有する。ライセンス管理部51は、販売パッケージに関するライセンスの発行、ライセンスの解放等、ライセンス管理テーブル52を用いてライセンスの管理を行う。ライセンス管理テーブル52は、販売パッケージのライセンスの状態等が記録されるテーブルであり、ライセンス管理サーバ50の記憶装置に記憶されている。
パッケージ管理サーバ60は、妥当性検証部61、パッケージ管理部62、依存関係管理テーブル63、パッケージ管理テーブル64、及びパッケージ記憶部65等を有する。
妥当性検証部61は、インストール対象とされている販売パッケージに含まれている機能パッケージの依存関係が、インストール先の画像形成装置20に既にインストールされている機能パッケージ等によって解決されるか否かを依存関係管理テーブル63を参照して判定する。具体的には、妥当性検証部61は、インストール対象とされている販売パッケージに含まれている機能パッケージの依存先の機能パッケージ等が、既に画像形成装置20にインストールされているか否か等を判定する。
パッケージ管理部62は、パッケージ記憶部65に記録されている販売パッケージの管理を行う。例えば、パッケージ管理部62は、販売パッケージのダウンロード要求の受信に応じ、当該販売パッケージをパッケージ記憶部65より取得し、要求元に返信する。
依存関係管理テーブル63は、機能パッケージ間及び機能パッケージとファームウェア間の依存関係を示す情報が記録されたテーブルであり、パッケージ管理サーバ60の記憶装置に記憶されている。パッケージ管理テーブル64は、販売パッケージと機能パッケージとの関連付け情報を管理するテーブルであり、パッケージ管理サーバ60の記憶装置に記憶されている。パッケージ記憶部65は、パッケージ管理サーバ60の記憶装置において、販売パッケージやファームウェア等のコンポーネントの実体をそれぞれのプロダクトIDと関連付けて記憶する記憶領域である。
機器管理装置10は、UI制御部111、パッケージ情報取得部112、機器情報取得部113、インストール先受付部114、妥当性確認部115、パッケージ取得部116、ライセンス取得部117、インストール制御部118、アクティベート部119、アンインストール先判定部120、ディアクティベート部121、アンインストール制御部122、再実行制御部123、及び処理状態記憶部124等を有する。これら各部は、機器管理装置10にインストールされたプログラムが機器管理装置10のCPUに実行させる処理によって実現される。
UI制御部111は、ユーザによる指示(販売パッケージのインストール又はアンインストール等の指示等)を受け付ける。パッケージ情報取得部112は、インストール又はアンインストール対象とされた販売パッケージに関する情報をライセンス管理サーバ50より取得する。機器情報取得部113は、画像形成装置20より機器情報を取得する。機器情報には、画像形成装置20にインストールされている販売パッケージ及びファームウェアに関する情報が含まれる。インストール先受付部114は、販売パッケージのインストール先とする画像形成装置20の指定をユーザより受け付ける。妥当性確認部115は、インストール対象とされた販売パッケージについて、インストール先とされた画像形成装置20へのインストールの妥当性の検証をパッケージ管理サーバ60の妥当性検証部61に実行させる。
パッケージ取得部116は、インストール対象の販売パッケージをパッケージ管理サーバ60よりダウンロード(取得)する。ライセンス取得部117は、インストール対象の販売パッケージに関するライセンスファイル90をライセンス管理サーバ50より取得する。インストール制御部118は、販売パッケージを画像形成装置20に送信することにより、画像形成装置20に販売パッケージのインストール処理を実行させる。アクティベート部119は、ライセンスファイル90を画像形成装置20に送信することにより、画像形成装置20にライセンスの導入処理を実行させる。
アンインストール先判定部120は、アンインストール対象とされた販売パッケージがインストールされている画像形成装置20を判定する。ディアクティベート部121は、画像形成装置20に対してライセンスファイル90の削除要求を送信し、ライセンス管理サーバ50に対して当該ライセンスファイル90に係るライセンスの解放を要求する。アンインストール制御部122は、販売パッケージのアンインストールを画像形成装置20に要求する。
再実行制御部123は、処理状態記憶部124に記録された情報に基づいて、販売パッケージのインストール処理及びライセンスの導入処理、又はライセンスの解放処理及び販売パッケージのアンインストール処理等に関する一連の処理の成否を判定する。再実行制御部123は、該一連の処理の途中においてエラーが発生し、処理が中断されている場合は、中断された箇所から処理を再開させる。処理状態記憶部124は、補助記憶装置102において、販売パッケージのインストール等又は販売パッケージのアンインストール等に関する一連の処理の進行に応じて、そのときの処理状態が逐次記録される記憶手段である。処理状態記憶部124は、例えば、一つのファイル(例えば、書庫ファイル)であってもよいし、フォルダ等であってもよい。
図6は、本発明の実施の形態における機器管理装置のハードウェア構成例を示す図である。図6の機器管理装置10は、それぞれバスBで相互に接続されているドライブ装置100と、補助記憶装置102と、メモリ装置103と、CPU104と、インタフェース装置105と、表示装置106と、入力装置107とを有する。
機器管理装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って機器管理装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
以下、機器管理システム1の処理手順について説明する。図7は、販売パッケージのインストール及びアクティベーションの処理手順を説明するためのシーケンス図である。同図において、画像形成装置20のユーザは、販売パッケージに係るいずれかの商品を購入し、当該商品のプロダクトキーを入手済みであるとする。
本実施の形態において、商品は、販売パッケージ又はグループと、そのライセンスの内容とによって構成される概念である。したがって、同一の販売パッケージであってもライセンスの内容(ライセンス形態、ライセンス有効期間、ライセンスボリューム数等)が異なれば、異なる商品として扱われる。ライセンス形態とは、商品に属する販売パッケージに関するライセンスについて売り切り型、時限ライセンス、及びトライアルライセンス等の別を示す情報である。売り切り型は、購入後無期限に使用可能なライセンスである。時限ライセンスは、所定期間に限り有効な(使用可能な)ライセンスである。トライアルライセンスは、お試し用としての使用に対するライセンスである。ライセンス有効期間は、ライセンス形態が時限ライセンス又はトライアルライセンスの場合に有効な属性であり、ライセンスが有効な期間を示す。ボリューム数は、ライセンスのボリューム数である。ボリューム数が2以上の商品を購入した場合、ボリュームライセンスが与えられ、当該ボリューム数の範囲内で同一の販売パッケージの同時使用が許可される。
したがって、商品の購入という行為には、販売パッケージの選択の他に、ライセンスの内容の選択という意思決定も含まれる。
また、プロダクトキーとは、商品が購入されるごとに一意に発行される(又は割り当てられる)識別子であり、商品に含まれる販売パッケージに対するライセンス(利用権限)を識別する情報(ライセンス識別子)として、また、商品の正当な購入者であることを証明するための情報として用いられる。なお、本実施の形態において、プロダクトIDとプロダクトキーとは明確に区別される。すなわち、プロダクトIDは、製品としての販売パッケージの異同を区別するものであるのに対し、プロダクトキーは、商品の購入という行為を区別するためのものである。したがって、同一のプロダクトIDに係る販売パッケージに対し、商品の購入のたびに異なるプロダクトキーが発行される。
なお、商品の購入の形態は所定のものに限定されない。店頭における取引によって購入されてもよいし、電子的な取引によって(例えば、Webサイトを利用して)購入されてもよい。前者の場合、プロダクトキーは、販売パッケージが記録されたCD−ROM等に貼付されているのが一般的であろう。後者の場合、商品を購入したWebサイトにおいて、購入確定時にWebページ上にプロダクトキーが表示されてもよいし、電子メールによってプロダクトキーが通知されてもよい。図7では、ユーザが、購入した商品に係る販売パッケージに関するインストール及びアクティベーション(ライセンスの取得)を機器管理装置10を利用して各画像形成装置20に対して行う場面を想定する。
機器管理装置10のUI制御部111は、表示装置106に表示させている初期画面を介して販売パッケージのインストールの開始指示の入力を受け付けると、プロダクトキー入力画面を表示装置106に表示させる(S101)。インストール対象の販売パッケージ(以下、「カレント販売パッケージ」という。)のプロダクトキーがプロダクトキー入力画面を介してユーザによって入力されると(S102)、パッケージ情報取得部112は、入力されたプロダクトキーを指定して当該プロダクトキーに係るパッケージ情報の取得要求をライセンス管理サーバ50に送信する(S103)。
図8は、プロダクトキーの構成例を示す図である。同図に示されるように、プロダクトキーは、ユニークID、商品ID、ライセンス形態、及びグループライセンスフラグ等を含むデータである。
ユニークIDは、プロダクトキーの生成に伴って生成される一意なIDである。すなわち、ユニークIDによってプロダクトキーの一意性が確保される。商品IDは、購入された商品の販売パッケージのプロダクトID又はグループIDである。ライセンス形態は、購入した商品のライセンス形態である。グループライセンスフラグは、当該プロダクトキー内の商品IDが、グループIDであるか(true)否か(false)を示すパラメータである。
ライセンス管理サーバ50のライセンス管理部51は、パッケージ情報の取得要求の受信に応じ、当該取得要求において指定されているプロダクトキーの有効性をライセンス管理テーブル52を参照して判定する。
図9は、ライセンス管理テーブルの構成例を示す図である。同図においてライセンス管理テーブル52は、販売パッケージに関して発行されるライセンスごとに管理番号、プロダクトキー、プロダクトID、機体番号、ステータス、ライセンス形態、ライセンス有効期間、ライセンス有効期限、及びライセンス発行日等の項目を有する。
これらの項目のうち、管理番号、プロダクトキー、プロダクトID、ステータス、ライセンス形態、及びライセンス有効期間は、商品が購入された際にライセンス管理テーブル52にその値が記録される。
一方、機体番号、ライセンス有効期限、及びライセンス発行日は、ライセンスの発行(すなわち、ライセンスファイル90の発行)に応じてその値が記録される。また、ライセンスの発行に応じて、ステータスの値も更新される。
管理番号は、ライセンス管理テーブル52に対するレコードの生成に伴って、各レコードに一意に割り当てられる識別子(番号)である。プロダクトキー、プロダクトID、ライセンス形態、及びライセンス有効期間は、上述した通りである。
機体番号には、ライセンスファイル90が発行される際に、販売パッケージを利用する機器として指定された画像形成装置20の機体番号が登録される。機体番号とは、各画像形成装置20を一意に識別するための識別情報(機器識別子)である。ステータスは、ライセンスの状態を示す情報である。本実施の形態において、ライセンスは、「ライセンス無し」、「チェックアウト」、及び「チェックイン」の状態を有する。「ライセンス無し」は、ライセンスが発行されていない状態である。チェックアウトは、ライセンスが使用されている状態である。チェックインは、ライセンスが解放されている(使用可能な)状態である。ライセンス有効期限は、ライセンスファイル90が発行される際に、ライセンス有効期間に基づいて算出されるライセンス(ライセンスファイル90)の有効期限である。ライセンス発行日は、ライセンスファイル90が発行される際に登録される、ライセンス(ライセンスファイル90)の発行日である。
なお、同図において、管理番号1〜3のレコードのプロダクトキー及びプロダクトIDは共通する。これは、プロダクトキー「KEY001」に係る商品が、ライセンス数が3のボリュームライセンスに係る商品であることを示す。また、管理番号4及び5のレコードについては、プロダクトキーは共通し、プロダクトIDは異なる。これは、プロダクトキー「KEY002」に係る商品は、二種類の販売パッケージを含むグループライセンスに係る商品であることを示す。なお、グループライセンスとは、グループに対するライセンスをいう。
以上のようなライセンス管理テーブル52を用いて、ライセンス管理部51は、例えば、受信されたプロダクトキーを含むレコードがライセンス管理テーブル52に登録されており、当該プロダクトキーを含むレコードのステータスが「チェックアウト」でなく、かつ、当該プロダクトキーを含むレコードのライセンス有効期限が現時点を超えていない場合(ライセンス有効期限の値が登録されていない場合も含む。)、当該プロダクトキーは有効であると判定し、それ以外の場合は、当該プロダクトキーは無効であると判定する。
当該プロダクトキーは無効であると判定された場合、ライセンス管理部51は、プロダクトキーが無効であることを示すエラー情報をパッケージ情報取得部112に返信する。この場合、パッケージ情報取得部112は、当該エラー情報を表示装置106に表示させ、インストール作業を中止させる。
当該プロダクトキーが有効であると判定された場合、ライセンス管理部51は、受信されたプロダクトキーに係るレコード(ライセンス管理テーブル52のレコード)に記録されている情報(パッケージ情報)をパッケージ情報取得部112に返信する(S104)。したがって、パッケージ情報には、少なくとも当該プロダクトキーに関連付けられているプロダクトID(すなわち、カレント販売パッケージのプロダクトID)が含まれている。また、当該プロダクトキーがグループライセンス又はボリュームライセンスに係るものである場合、複数のプロダクトID(複数のレコード)に係る情報がパッケージ情報に含まれる。
パッケージ情報取得部112は、パッケージ情報を受信すると、今回の処理に対する処理状態記憶部124を補助記憶装置102に生成し、現在の処理状態を保存する(S105)。具体的には、パッケージ情報取得部112は、プロダクトキーと、当該パッケージ情報とを処理状態記憶部124に記録する。その結果、処理状態記憶部124の記憶内容は、図10に示されるようになる。
図10は、パッケージ情報取得後の処理状態記憶部の記憶内容の例を示す図である。同図に示されるように、ステップS104の完了後において、処理状態記憶部124には、プロダクトキー及びパッケージ情報が記録されている。
続いて、機器管理装置10のUI制御部111は、受信されたパッケージ情報を含む画面(確認画面)を表示装置106に表示させ、カレント販売パッケージの内容及びそのライセンスの内容をユーザに確認させる(S106)。
ユーザによって、インストール作業の継続指示が入力されると(例えば、確認画面においてOKボタンが押下されると)、インストール先受付部114は、画像形成装置20の一覧を含む機器選択画面を表示装置106に表示させ、カレント販売パッケージをインストールする画像形成装置20をユーザに選択させる(S107)。機器選択画面においては、複数の画像形成装置20を選択することも可能である。なお、機器選択画面では、予めそのIPアドレス及びホスト名等が補助記憶装置102に記憶されている画像形成装置20が表示対象とされる。または、機器情報取得部113が、ブロードキャスト等をネットワーク30上に発行することにより、ネットワーク30に接続されている画像形成装置20を動的に検索し、検索された画像形成装置20のホスト名等を機器選択画面に表示させてもよい。
続いて、機器情報取得部113は、機器選択画面において選択された各画像形成装置20に対して機器情報の取得要求を送信する(S108)。機器情報の取得要求を受信した各画像形成装置20の要求処理部21は、インストール情報管理テーブル23に記録されている情報を取得し、取得された情報と当該画像形成装置20の機体番号とを含む情報を機器情報として機器情報取得部113に返信する(S109)。
図11は、インストール情報管理テーブルの構成例を示す図である。同図において、インストール情報管理テーブル23には、当該画像形成装置20にインストールされている販売パッケージ又はファームウェアごとに、プロダクトID、バージョン、機能パッケージのプロダクトID、アクティベーションフラグ、及び有効期限等が登録されている。
機能パッケージのプロダクトIDは、販売パッケージに属する機能パッケージのプロダクトIDの一覧である。アクティベーションフラグは、販売パッケージについてアクティベーションされているか否か(アクティベーション済みか否か)を示す。ライセンス有効期限は、販売パッケージに対して発行されたライセンスの有効期限(ライセンスファイル90の有効期限)である。各機能パッケージのアクティベーションフラグ及びライセンス有効期限は、当該機能パッケージが属する販売パッケージのアクティベーションフラグ及びライセンス有効期限に従う。また、インストール情報管理テーブル23の内容は、後述される販売パッケージのインストール時に登録される。なお、ステップS109において返信される機器情報には、インストール情報管理テーブル23に登録されている全ての情報が含められる。また、ファームウェアとは、機能パッケージより下層に位置するプログラムコンポーネントである。すなわち、ファームウェアは、機能パッケージに比較して基本的な機能を機能パッケージに提供する。ファームウェアは、画像形成装置20の予め組み込まれているものであり、ファームウェアを利用するためにライセンスの取得の必要はない。したがって、インストール情報管理テーブル23において、ファームウェアに関するレコードについては、機能パッケージ、アクティベーションフラグ、及びライセンス有効期限の項目は無効である。同図では、便宜上、ファームウェアの情報と販売パッケージの情報とを同じテーブルで管理する例を示しているが、それぞれを別のテーブルで管理してもよい。
続いて、機器情報取得部113は、処理状態記憶部124を更新することにより、現在の処理状態を保存する(S110)。具体的には、機器情報取得部113は、取得された機体番号及び機器情報を画像形成装置20ごとに含む機器管理テーブルを処理状態記憶部124に記録(生成)する。その結果、処理状態記憶部124の記憶内容は、図12に示されるようになる。
図12は、機器情報取得後の処理状態記憶部の記憶内容の例を示す図である。同図に示されるように、処理状態記憶部124には、機器管理テーブルが追加される。
処理状態記憶部124に記録される機器管理テーブルは、例えば、図13に示されるような構成を有する。
図13は、機器管理テーブルの構成例を示す図である。同図に示されるように、機器管理テーブルは、IPアドレス、機体番号、機器情報、妥当性検証結果、及び作業ステータス等が画像形成装置20ごとに記録可能なように構成されている。機器情報の取得後においては、IPアドレス、当該IPアドレスに基づいて取得された機体番号及び機器情報が機器管理テーブルに記録される。妥当性検証結果は、後述される妥当性の検証処理の結果を画像形成装置20ごとに記録するための項目である。作業ステータスは、処理状態を画像形成装置20ごとに記録するための項目である。したがって、ここでは、機器情報の取得が完了したことを示す値(「機器情報取得完了」)が作業ステータスに記録される。但し、機器情報の取得に失敗した画像形成装置20が有った場合は、当該画像形成装置20に対する作業ステータスには、何も記録されない。又は、機器情報の取得に失敗したことを示す値(「機器情報取得失敗」)が記録されてもよい。この場合、当該画像形成装置20の機体番号及び機器情報は、機器管理テーブルに登録されない。したがって、機器管理テーブルの作業ステータスの値を参照することにより、画像形成装置20ごとに機器情報の取得の成否を判定することができる。
続くステップS111は、機器情報の取得に成功した画像形成装置20ごとに実行されるループ処理である。ループ処理において処理対象とされる画像形成装置20を以下、「カレント機器」という。なお、機器情報の取得に失敗した画像形成装置20については、以降の処理は実行されない。
ステップS111−1において、妥当性確認部115は、カレント機器の機器情報と、パッケージ情報取得部112によって取得されたパッケージ情報とを含む妥当性検証要求をパッケージ管理サーバ60に送信する。ここでいう「妥当性」とは、カレント販売パッケージに含まれる機能パッケージをカレント機器にインストールすることの妥当性である。パッケージ管理サーバ60の妥当性検証部61は、妥当性検証要求の受信に応じ、依存関係管理テーブル63を参照して妥当性を検証する。
図14は、依存関係管理テーブルの構成例を示す図である。同図において、依存関係管理テーブル63は、機能パッケージごとに当該機能パッケージのプロダクトID、及び当該機能パッケージが依存する(当該機能パッケージの依存先の)機能パッケージ又はファームウェアのプロダクトIDが登録されている。依存する機能パッケージ又はファームウェアのプロダクトIDは、複数登録されていてもよい。なお、同図において、「0」は、依存する機能パッケージ等が無いことを示す。
妥当性検証部61は、妥当性の検証において、カレント販売パッケージに属する機能パッケージのプロダクトIDの一覧をパッケージ管理テーブル64より取得する。
図15は、パッケージ管理テーブルの構成例を示す図である。同図に示されるように、パッケージ管理テーブル64には、販売パッケージごとに、プロダクトID、バージョン、及び機能パッケージのプロダクトID等が登録されている。機能パッケージのプロダクトIDは、販売パッケージに属する機能パッケージのプロダクトIDの一覧である。
続いて、妥当性検証部61は、取得された各機能パッケージのプロダクトIDと依存関係管理テーブル63とに基づいて、当該機能パッケージが依存する機能パッケージ又はファームウェア(以下、「依存先パッケージ」という。)を特定する。依存先パッケージが有る場合、当該依存先パッケージのプロダクトIDが機器情報に含まれているか否かを判定する。全ての依存先パッケージのプロダクトIDが機器情報に含まれている場合、妥当性検証部61は、妥当性は有ると判定する。機器情報に含まれていない依存先パッケージ(以下、「未解決パッケージ」という。)が少なくとも一つ存在する場合、妥当性検証部61は、妥当性は無いと判定する。なお、一つの機能パッケージに対して依存先パッケージは複数存在しうる。また、依存関係の探索は、再帰的に行われる。
続いて、妥当性検証部61は、妥当性の検証結果を妥当性確認部115に返信する(S111−2)。妥当性が無いと判定された場合、検証結果には、未解決パッケージのプロダクトIDが含まれる。
続いて、妥当性確認部115は、処理状態記憶部124を更新することにより、現在の処理状態を保存する(S111−3)。具体的には、妥当性確認部115は、機器管理テーブルにおいて、カレント機器に対応するレコードの妥当性検証結果の値として妥当性の検証結果を記録する。したがって、妥当性が無いと判定された場合、未解決パッケージのプロダクトIDが、当該レコードの妥当性検証結果に記録される。また、妥当性確認部115は、妥当性の検証に成功した場合は、当該レコードの作業ステータスの値を、妥当性の検証が完了したことを示す値(「妥当性検証完了」)に更新する。妥当性の検証の成功とは、妥当性の有無に拘わらず、妥当性の判定自体が正常に行われ、その判定結果を受信できたことをいう。妥当性の検証に失敗した場合、当該レコードの妥当性検証結果には何も記録されず、当該レコードの作業ステータスの値も更新されない。また、妥当性の検証に失敗した場合、カレント機器については以降の処理は実行されず、次の画像形成装置20についてステップS111−1以降が実行される。
続いて、パッケージ取得部116は、カレント販売パッケージのプロダクトIDを指定してダウンロード要求をパッケージ管理サーバ60に送信する(S111−4)。パッケージ管理サーバ60のパッケージ管理部62は、指定されたプロダクトIDに対応する販売パッケージをパッケージ記憶部65より取得し、取得された販売パッケージをパッケージ取得部116に返信する(S111−5)。カレント販売パッケージが複数の場合、ダウンロード(S111−4、S111−5)は複数回繰り返される。また、ステップS111−2において妥当性が無い旨の検証結果が受信された場合、未解決パッケージに関してもダウンロードが実行される。なお、カレント販売パッケージが複数である場合とは、例えば、ステップS101において入力されたプロダクトキーがグループライセンスに係るものである場合や、複数のプロダクトキーが入力された場合等である。
続いて、パッケージ取得部116は、処理状態記憶部124を更新することにより、現在の処理状態を保存する。具体的には、パッケージ取得部116は、取得された販売パッケージ又は未解決パッケージをカレント機器に関連付けて処理状態記憶部124に記録する(S111−6)。販売パッケージ又は未解決パッケージとカレント機器との関連付けの方法は、所定のものに限定されない。本実施の形態では、取得(ダウンロード)された販売パッケージ又は未解決パッケージを一つの書庫ファイル(以下、「パッケージ書庫ファイル」という。)内に格納し、パッケージ書庫ファイルのファイル名にカレント機器の機体番号を含めることにより、当該関連付けを実現する。他の方法として、例えば、カレント機器の機体番号をフォルダ名とするフォルダを作成し、ダウンロードされた販売パッケージ又は未解決パッケージを当該フォルダ内に保存するようにしてもよい。その結果、処理状態記憶部124の記憶内容は、図16に示されるようになる。
図16は、販売パッケージダウンロード後の処理状態記憶部の記憶内容の例を示す図である。同図に示されるように、処理状態記憶部124には、パッケージ書庫ファイルが追加される。
パッケージ取得部116は、また、ダウンロード対象とされている全ての販売パッケージ又は未解決パッケージのダウンロードに成功した場合は、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値を、販売パッケージのダウンロード(取得)が完了したことを示す値(「パッケージ取得完了」)に更新する。
なお、いずれかの販売パッケージ又は未解決パッケージの取得に失敗した場合、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値は更新されず、カレント機器については以降の処理は実行されない。したがって、次の画像形成装置20についてステップS111−1以降が実行される。
続いて、ライセンス取得部117は、ステップS101において入力されたプロダクトキーと、カレント販売パッケージのプロダクトIDと、カレント機器の機体番号とを指定して、ライセンスの使用要求(ライセンスファイル90の発行要求)をライセンス管理サーバ50に送信する(S111−7)。
ライセンス管理サーバ50のライセンス管理部51は、ライセンスの使用要求に含まれている情報及びライセンス管理テーブル52に基づいてライセンスファイル90を生成し、生成されたラインセンスファイル50をライセンス取得部117に返信する(S111−8)。
図17は、ライセンスファイルの構成例を示す図である。同図において、ライセンスファイル90は、プロダクトID、機体番号、及び有効期限を含む。プロダクトIDは、当該ライセンスファイル90によってライセンスが付与される(利用が許可される)販売パッケージのプロダクトIDである。機体番号は、当該ライセンスファイル90によってプロダクトIDに係る販売パッケージの利用が許可される画像形成装置20の機体番号である。有効期限は、当該ライセンスファイル90の有効期限、すなわち、当該ライセンスファイル90によって付与されるライセンスの有効期限である。
ライセンスファイル90のプロダクトIDには、ライセンスの使用要求に含まれているプロダクトキーに係るプロダクトIDが登録される。ここで、当該プロダクトキーがグループライセンスに係るものである場合、すなわち、プロダクトキーに対して複数の異なるプロダクトIDがライセンス管理テーブル52に登録されている場合、ライセンス管理部51は、販売パッケージごとにライセンスファイル90を生成する。したがって、グループライセンスの場合であっても、ライセンスファイル90のプロダクトIDには、グループIDではなく販売パッケージのプロダクトIDが登録される。
ライセンスファイル90の機体番号には、ライセンスの使用要求に含まれている機体番号が登録される。ライセンスファイル90の有効期限には、ライセンスの使用要求に含まれているプロダクトキー及びプロダクトIDに対してライセンス管理テーブル52に登録されている有効期間を現時点に加算することに得られる時期(例えば、年月日)が登録される。
続いて、ライセンス取得部117は、処理状態記憶部124を更新することにより、現在の処理状態を保存する(S111−9)。具体的には、ライセンス取得部117は、取得されたライセンスファイル90をカレント機器に関連付けて処理状態記憶部124に記録する。本実施の形態では、取得されたライセンスファイル90を一つの書庫ファイル(以下、「ライセンス書庫ファイル」という。)内に格納し、ライセンス書庫ファイルのファイル名にカレント機器の機体番号を含めることにより、当該関連付けを実現する。但し、販売パッケージとカレント機器との関連付けと同様、他の方法によってライセンスファイル90とカレント機器との関連付けが行われてもよい。その結果、処理状態記憶部124の記憶内容は、図18に示されるようになる。
図18は、ライセンスファイル取得後の処理状態記憶部の記憶内容の例を示す図である。同図に示されるように、処理状態記憶部124には、ライセンス書庫ファイルが追加される。
ライセンス取得部117は、また、ライセンスファイル90のダウンロードに成功した場合は、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値を、販売ライセンスの取得が完了したことを示す値(「ライセンス取得完了」)に更新する。
なお、ライセンスファイル90の取得に失敗した場合、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値は更新されず、カレント機器については以降の処理は実行されない。したがって、次の画像形成装置20についてステップS111−1以降が実行される。
続いて、インストール制御部118は、ステップS111−5において未解決パッケージが取得されている場合、パッケージ書庫ファイルに格納されている当該未解決パッケージをカレント機器に送信し、当該未解決パッケージのインストールをカレント機器に要求する(S111−10)。カレント機器の要求処理部21は、未解決パッケージをインストールし、当該未解決パッケージの情報(プロダクトID等)をインストール情報管理テーブル23に記録する。
続いて、インストール制御部118は、未解決パッケージのインストール結果をカレント機器に問い合わせる(S111−11)。当該問い合わせ(ポーリング)は、カレント機器においてインストールが完了し、インストール結果が返信されるまで繰り返される。
続いて、インストール制御部118は、処理状態記憶部124を更新することにより、現在の処理状態を保存する(S111−12)。具体的には、未解決パッケージのインストールに成功した場合、インストール制御部118は、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値を、未解決パッケージのインストールが完了したことを示す値(「未解決パッケージインストール完了」)に更新する。一方、未解決パッケージのインストールに失敗した場合、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値は更新されず、カレント機器については以降の処理は実行されない。したがって、次の画像形成装置20についてステップS111−1以降が実行される。
先に未解決パッケージをインストールさせるのは、依存先のコンポーネントがインストールされていないことによる、販売パッケージのインストールの失敗を回避するためである。
続いて、インストール制御部118は、ステップS111−5において取得されている販売パッケージ(パッケージ書庫ファイルの格納されている販売パッケージ)をカレント機器に送信し、当該販売パッケージのインストールをカレント機器に要求する(S111−13)。カレント機器の要求処理部21は、当該販売パッケージをインストールし、当該販売パッケージの情報(プロダクトID等)をインストール情報管理テーブル23に記録する。
続いて、インストール制御部118は、販売パッケージのインストール結果をカレント機器に問い合わせる(S111−14)。当該問い合わせ(ポーリング)は、カレント機器においてインストールが完了し、インストール結果が返信されるまで繰り返される。
続いて、インストール制御部118は、処理状態記憶部124を更新することにより、現在の処理状態を保存する(S111−15)。具体的には、販売パッケージのインストールに成功した場合、インストール制御部118は、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値を、販売パッケージのインストールが完了したことを示す値(「販売パッケージインストール完了」)に更新する。この場合、カレント機器に関連付けられているパッケージ書庫ファイルは削除されてもよい。
一方、販売パッケージのインストールに失敗した場合、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値は更新されない。また、カレント機器に関連付けられているパッケージ書庫ファイルは削除されない。更に、カレント機器については以降の処理は実行されない。したがって、次の画像形成装置20についてステップS111−1以降が実行される。
続いて、アクティベート部119は、ステップS111−6において取得されているライセンスファイル90(ライセンス書庫ファイルに格納されているライセンスファイル90)をカレント機器に送信し、ライセンスファイルの導入(設定)をカレント機器に要求する(S111−16)。カレント機器の要求処理部21は、ライセンスファイル90について所定の記憶領域への記録等を行い、ライセンスファイル90を利用可能な状態とする。
続いて、アクティベート部119は、販売パッケージのライセンス導入結果をカレント機器に問い合わせる(S111−17)。当該問い合わせ(ポーリング)は、カレント機器においてライセンスファイル90の所定の記憶領域への記録等が完了し、ライセンス導入結果が返信されるまで繰り返される。
続いて、アクティベート部119は、処理状態記憶部124を更新することにより、現在の処理状態を保存する(S111−18)。具体的には、ライセンス導入に成功した場合、アクティベート部119は、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値を、ライセンス導入が完了したことを示す値(「アクティベーション完了」)に更新する。この場合、カレント機器に関連付けられているライセンス書庫ファイルは削除されてもよい。
一方、ライセンス導入に失敗した場合、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値は更新されない。また、カレント機器に関連付けられているライセンス書庫ファイルは削除されない。
ステップS107において選択された全ての画像形成装置20についてステップS111の実行が完了すると、再実行制御部123は、処理状態記憶部124に基づいて再実行処理を実行する(S111−19)。
続いて、ステップS111−19における、再実行制御部123による再実行処理の詳細について説明する。図19は、再実行処理の処理手順を説明するためのフローチャートである。
再実行制御部123は、処理状態記憶部124を参照し(S301)、機器管理テーブルに基づいて確認画面を表示装置106に表示させる(S302)。確認画面には機器管理テーブルの内容が表示される。したがって、ユーザは、作業ステータスを参照することにより、ライセンス導入が完了していない画像形成装置20を確認することができる。ライセンス導入が完了していないとは、作業ステータスの値が「ライセンス導入完了」以外である場合(すなわち、途中でエラーが発生した場合)をいう。なお、ライセンス導入が完了していない画像形成装置20のレコードの視認性を高めるため、確認画面においてエラーが発生したことを示す列を追加したり、当該レコードを赤等の目立つ色によって表示させてもよい。又は、数百台のように多数の画像形成装置20が一度にインストール先として指定される場合を考慮して、作業ステータスの値が「ライセンス導入完了」以外である画像形成装置20に関するレコードのみを表示させてもよい。又は、一部又は全部の画像形成装置20について途中でエラーが発生したことを示すメッセージだけを表示させてもよい。いずれの場合であっても、作業ステータスの値が「ライセンス導入完了」以外である画像形成装置20が有るときは、再実行の指示入力を受け付けるための表示部品(例えば、ボタン)が確認画面に表示される。
ユーザは、各画像形成装置20の作業ステータスを確認画面において確認し、エラーが発生した原因を調査することができる。例えば、ネットワークの状態や、画像形成装置20の状態等を確認することができる。エラーの原因が特定され、その原因が除かれた後、ユーザは、確認画面を介して再実行指示を入力する。但し、エラーの原因が特定できない場合であっても、再実行指示は入力されてもよい。
確認画面を介して再実行指示が入力された場合(S303でYes)、再実行制御部123は、作業ステータスが「ライセンス導入完了」以外の各画像形成装置20について、順次処理対象(カレント機器)とし、カレント機器の作業ステータスに応じた再実行処理を制御する(S304)。具体的には、カレント機器の作業ステータスが「機器情報取得完了」である場合、再実行制御部123は、妥当性確認部115に対し、カレント機器に関する処理の再実行を要求する。その結果、カレント機器についてステップS111−1以降が実行される。また、カレント機器の作業ステータスが「妥当性検証完了」である場合、再実行制御部123は、パッケージ取得部116に対し、カレント機器に関する処理の再実行を要求する。その結果、カレント機器についてステップS111−4以降が実行される。また、カレント機器の作業ステータスが「パッケージ取得完了」である場合、再実行制御部123は、ライセンス取得部117に対し、カレント機器に関する処理の再実行を要求する。その結果、カレント機器についてステップS111−7以降が実行される。また、カレント機器の作業ステータスが「ライセンス取得完了」である場合、再実行制御部123は、インストール制御部に対し、カレント機器に関する処理の再実行を要求する。その結果、カレント機器についてステップS111−10又はS111−13以降が実行される。また、カレント機器の作業ステータスが「未解決パッケージインストール完了」である場合、再実行制御部123は、インストール制御部に対し、カレント機器に関する処理の再実行を要求する。その結果、カレント機器についてステップS111−13以降が実行される。また、カレント機器の作業ステータスが「販売パッケージインストール完了」である場合、再実行制御部123は、アクティベート部119に対し、カレント機器に関する処理の再実行を要求する。その結果、カレント機器についてステップS111−16以降が実行される。
再実行制御部123より処理の再実行を要求された各部は、カレント機器に関連付けられて処理状態記憶部124に記録されているデータに基づいて処理を実行することができる。作業ステータスに応じた再実行処理に必要なデータは処理状態記憶部124に記録されているからである。したがって、一回目の実行の際に途中でエラーになってしまった画像形成装置20についても、ライセンスの導入まで完了できる可能性を高めることができる。その結果、ライセンス管理サーバ50のライセンス管理テーブル52の状態と、画像形成装置20に対するライセンスの導入状態との不整合が解消される可能性が高まる。すなわち、ライセンス管理テーブル52においては「チェックアウト」とされているライセンスについて、画像形成装置20にライセンスファイル90が導入されていないという事態が発生する可能性を低減させることができる。
なお、作業ステータスが「ライセンス導入完了」以外の全ての画像形成装置20について自動的に再実行が行われなくてもよい。例えば、確認画面において再実行の対象とする画像形成装置20をユーザに選択させてもよい。
また、再実行制御部123による処理(図19の処理)は、図7の処理の一部として実行されなくてもよい。図7の処理の完了後、他の機会において改めて実行されてもよい。その場合、処理対象とする処理状態記憶部124をユーザに選択又は指定させる必要がある。したがって、いつ実行されたインストール処理であるか等が容易に判別可能な識別情報(例えば、ファイル名)を処理状態記憶部124(例えば、書庫ファイル)に付与しておくとよい。
続いて、図7のステップS111−7のライセンスの使用要求に応じて、ライセンス管理サーバ50のライセンス管理部51によって実行される処理の詳細について説明する。
図20は、ライセンス管理部によるライセンスファイル生成処理の処理手順を説明するためのフローチャートである。なお、図20では、一つのプロダクトキーを処理対象として説明する。したがって、複数のプロダクトキーが受信された場合、ステップS192以降はプロダクトキーごとに実行される。
ステップS191(図7のステップS111−7)において、ライセンス管理部51は、プロダクトキー、プロダクトID、及び機体番号を含むライセンスの使用要求をライセンス取得部117より受信する。続いて、ライセンス管理部51は、当該プロダクトキーに係るライセンスの使用の可否を判定する。具体的には、ライセンス管理部51は、受信されたプロダクトキーがライセンス管理テーブル52に登録されているか否かを確認する(S192)。プロダクトキーが登録されている場合(S192でYes)、ライセンス管理部51は、受信された機体番号と同じ機体番号が当該プロダクトキーに対してライセンス管理テーブル52に登録されているか否かを確認する(S193)。同じ機体番号が登録されていない場合(S193でNo)、ライセンス管理部51は、当該プロダクトキー及び受信されたプロダクトIDに係るレコードの中で、ステータスが「チェックイン」のレコードがライセンス管理テーブル52に有るか否かを確認する(S194)。該当するレコードが有る場合(S194でYes)、ライセンス管理部51は、当該レコードに対して受信された機体番号を記録し、当該レコードのステータスを「チェックアウト」とする(S196)。すなわち、当該プロダクトキーに対応するライセンスは使用されていることが記録される。また、ライセンス管理部51は、当該レコードに「ライセンス有効期間」が記録されている場合(すなわち、当該レコードが時限ライセンスに対応するレコードである場合)、現在日時にライセンス有効期間を加算して得られる日時をライセンス期限として当該レコードに記録する。
続いて、ライセンス管理部51は、当該レコードにおける、プロダクトID、機体番号、及び有効期限を含むライセンスファイル90(図17参照)を生成する(S197)。なお、ライセンスファイル90は、ライセンス管理テーブル52のレコードごと、すなわち、販売パッケージに対するライセンスごとに生成される。続いて、ライセンス管理部51は、生成されたライセンスファイル90を機器管理装置10のライセンス取得部117に返信する(S198)。
一方、当該プロダクトキーに対して受信された機体番号と同じ機体番号が登録されているレコードが有る場合(S193でYes)、ライセンス管理部51は、当該レコードのステータスが「チェックイン」であるか否かを確認する(S195)。ステータスが「チェックイン」である場合(S195でYes)、ステップS196以降の処理が実行される。
また、当該プロダクトキーに係るレコードがライセンス管理テーブル52に無い場合(S192でNo)、当該プロダクトキー及び受信されたプロダクトIDに係るレコードの中で、ステータスが「チェックイン」のレコードがライセンス管理テーブル52に無い場合(S194でNo)、又は、当該プロダクトキーに対して受信された機体番号と同じ機体番号が登録されているレコードのステータスが「チェックイン」でない場合(S195でNo)、ライセンス管理部51は、エラーを検出したとし、ライセンスファイル90の生成、すなわち、ライセンスの発行は行わない。
画像形成装置20において、ライセンスファイル90は、インストールされた販売パッケージに含まれる機能パッケージの起動の際に実行される、ライセンスチェック部22によるライセンスチェックに利用される。すなわち、ライセンスチェック部22は、起動対象とされた機能パッケージが属する販売パッケージに対応するライセンスファイル90が存在すること、当該ライセンスファイル90の機体番号と機能パッケージが起動されようとしている画像形成装置20の機体番号とが一致すること、及び当該ライセンスファイル90の有効期限が切れてないことが満たされている場合、当該機能パッケージの起動を許可する。それ以外の場合は、当該機能パッケージの起動は許可されない。
続いて、販売パッケージのアンインストール及びディアクティベーション(ライセンスの解放)に関する処理について説明する。
図21は、販売パッケージのアンインストール及びディアクティベーションの処理手順を説明するためのシーケンス図である。
ステップS201において、機器管理装置10のUI制御部111は、表示装置106に表示させているアンインストール画面を介してアンインストール対象のプロダクトキーの入力をユーザより受け付ける。続いて、パッケージ情報取得部112は、入力されたプロダクトキーを指定して当該プロダクトキーに係るパッケージ情報の取得要求をライセンス管理サーバ50に送信する(S202)。
続いて、ライセンス管理サーバ50のライセンス管理部51は、受信されたプロダクトキーに係るレコード(ライセンス管理テーブル52のレコード)に記録されている情報(パッケージ情報)をパッケージ情報取得部112に返信する(S203)。当該プロダクトキーがグループライセンスに係るものである場合、複数の販売パッケージに関するパッケージ情報が返信される。
パッケージ情報取得部112は、パッケージ情報を受信すると、今回の処理に対する処理状態記憶部124を補助記憶装置102に生成し、現在の処理状態を保存する(S204)。具体的には、パッケージ情報取得部112は、プロダクトキーと、当該パッケージ情報とを処理状態記憶部124に記録する。その結果、処理状態記憶部124の記憶内容は、図10に示されるようになる。
当該プロダクトキーがグループライセンスに係るものである場合、すなわち、複数の販売パッケージに関するパッケージ情報が受信された場合、UI制御部111は、当該販売パッケージの一覧情報を含む販売パッケージ選択画面を表示装置106に表示させ、アンインストール対象とする販売パッケージをユーザに選択させる(S205)。以下、選択された販売パッケージを「カレント販売パッケージ」という。
続いて、機器情報取得部113は、各画像形成装置20に対して機器情報の取得要求を送信する(S206)。各画像形成装置20の要求処理部21は、機器情報の取得要求に応じ、インストール情報管理テーブル23に記録されている情報を取得し、取得された情報と当該画像形成装置20の機体番号とを含む情報を機器情報として機器情報取得部113に返信する(S207)。
なお、ここで機器情報の取得対象とされる画像形成装置20は、予めそのIPアドレス及びホスト名等が補助記憶装置102に記憶されているものである。または、機器情報取得部113が、ブロードキャスト等をネットワーク30上に発行することにより、ネットワーク30に接続されている画像形成装置20を動的に検索し、検索された画像形成装置20を機器情報の取得対象としてもよい。
続いて、アンインストール先判定部120は、ステップS203において取得されたパッケージ情報を、ステップS207で各画像形成装置20より取得された機器情報と照合し、当該パッケージ情報に係る販売パッケージがインストールされている画像形成装置20を判定する(S208)。具体的には、当該パッケージ情報に含まれているプロダクトID(販売パッケージのプロダクトID)を含む機器情報に係る画像形成装置20が、当該販売パッケージのインストールされている画像形成装置20(すなわち、販売パッケージのアンインストール先の画像形成装置20)であると判定される。
続いて、アンインストール先判定部120は、処理状態記憶部124を更新することにより、現在の処理状態を保存する(S209)。具体的には、アンインストール先判定部120は、機体番号及び機器情報を販売パッケージのアンインストール先の画像形成装置20ごとに含む機器管理テーブルを処理状態記憶部124に記録(生成)する。その結果、処理状態記憶部124の記憶内容は、図12に示されるようになる。
続くステップS210は、販売パッケージのアンインストール先の画像形成装置20ごとに実行されるループ処理である。ループ処理において処理対象とされる画像形成装置20を以下、「カレント機器」という。
ステップS210−1において、ディアクティベート部121は、カレント販売パッケージのプロダクトIDを指定して、ディアクティベート要求(ライセンスファイル90の削除要求)をカレント機器に送信する。カレント機器の要求処理部21は、当該要求に応じ、指定されたプロダクトIDに係るライセンスファイル90を削除する。
続いて、ディアクティベート部121は、ライセンスファイル90の削除処理の結果をカレント機器に問い合わせる(S210−2)。当該問い合わせ(ポーリング)は、カレント機器においてライセンスファイル90の削除処理が完了し、当該削除処理の処理結果が返信されるまで繰り返される。
続いて、ディアクティベート部121は、処理状態記憶部124を更新することにより、現在の処理状態を保存する(S210−3)。具体的には、ライセンスファイル90の削除に成功した場合、ディアクティベート部121は、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値を、ライセンスファイル90の削除が完了したことを示す値(「ライセンス削除完了」)に更新する。一方、ライセンスファイル90の削除に失敗した場合、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値は更新されず、カレント機器については以降の処理は実行されない。したがって、次の画像形成装置20についてステップS210−1以降が実行される。
続いて、アンインストール制御部122は、カレント販売パッケージのプロダクトIDを指定して、アンインストール要求(販売パッケージの削除要求)をカレント機器に送信する(S210−4)。カレント機器の要求処理部21は、当該要求に応じ、指定されたプロダクトIDに係る販売パッケージをアンインストール(削除)する。
続いて、アンインストール制御部122は、カレント販売パッケージのアンインストール結果をカレント機器に問い合わせる(S210−5)。当該問い合わせ(ポーリング)は、カレント機器においてアンインストールが完了し、アンインストール結果が返信されるまで繰り返される。
続いて、アンインストール制御部122は、処理状態記憶部124を更新することにより、現在の処理状態を保存する(S211)。具体的には、カレント販売パッケージのアンインストールに成功した場合、アンインストール制御部122は、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値を、カレント販売パッケージのアンインストールが完了したことを示す値(「アンインストール完了」)に更新する。一方、カレント販売パッケージのアンインストールに失敗した場合、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値は更新されず、カレント機器については以降の処理は実行されない。したがって、次の画像形成装置20についてステップS210−1以降が実行される。
ステップS210が、販売パッケージのアンインストールの対象とされた全ての画像形成装置20について実行された後、ディアクティベート部121は、カレント販売パッケージのプロダクトIDと、当該全ての画像形成装置20の機体番号とを指定してディアクティベート要求(ライセンスの解放要求)をライセンス管理サーバのライセンス管理部51に送信する(S212)。ライセンス管理部51は、ライセンス管理テーブル52において、指定されたプロダクトID及び機体番号に係るレコードのステータスを「チェックアウト」から「チェックイン」に変更する。すなわち、当該ライセンスは使用されていないことを示す情報がライセンス管理テーブル52に記録される。なお、ディアクティベーションは、ステータスが「チェックアウト」のライセンスに関して実行可能である。したがって、対象となるレコードのステータスが「チェックアウト」でない場合、ライセンス管理部51は、ディアクティベーションは失敗したと判断する。
続いて、ライセンス管理部51は、ディアクティベーションの処理結果(処理の成否)を画像形成装置20のディアクティベート部121に返信する(S213)。
続いて、ディアクティベート部121は、処理状態記憶部124を更新することにより、現在の処理状態を保存する(S214)。具体的には、ディアクティベーションに成功した場合、ディアクティベート部121は、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値を、ディアクティベーションが完了したことを示す値(「ディアクティベーション完了」)に更新する。一方、ディアクティベーションに失敗した場合、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値は更新されない。
アンインストール先の全ての画像形成装置20についてステップS210の実行が完了すると、再実行制御部123は、処理状態記憶部124に基づいて再実行処理を実行する(S215)。再実行処理については、図19において説明した通りである。アンインストールに関する再実行処理の具体的処理内容は、インストール処理に関する再実行処理の説明より自明であるため、ここでの説明は省略する。
再実行処理の結果、一回目の実行の際に途中でエラーになってしまった画像形成装置20についても、ディアクティベーションまで完了できる可能性を高めることができる。その結果、ライセンス管理サーバ50のライセンス管理テーブル52の状態と、画像形成装置20に対するライセンスの導入状態との不整合が解消される可能性が高まる。すなわち、ライセンス管理テーブル52においては「チェックイン」とされているライセンスについて、画像形成装置20のライセンスファイル90が削除されていないという事態が発生する可能性を低減させることができる。
図21の処理の実行により、アンインストール先とされた画像形成装置20では当該販売パッケージに含まれる機能パッケージの利用ができなくなる。一方、当該販売パッケージのライセンスは解放されたため、当該ライセンスの有効期限内であれば必要に応じて他の画像形成装置20において当該ライセンスを利用することができる。すなわち、ディアクティベーション処理は、或る画像形成装置20における販売パッケージのライセンスを当該画像形成装置20のリース期間切れ等の理由により他の画像形成装置20に移動させたい場合に特に有用である。
なお、本実施の形態における機器管理システム1によれば、プロダクトキーの入力に応じ、画像形成装置20に対する当該プロダクトキーに係る販売パッケージのインストール及びライセンスファイル90の導入等を自動的に行うことができる。したがって、ユーザに対する作業負担を著しく軽減することができる。その結果、画像形成装置20のカスタマーエンジニアだけでなく、エンドユーザによる販売パッケージ(プログラムコンポーネント)の実行環境の構築も可能となる。
また、本実施の形態の機器管理装置10によれば、複数の画像形成装置20に対して一括してインストール及びアクティベーション(ライセンスの使用開始)等を行うことができる。斯かる点においてもユーザの作業負担の軽減を期待することができる。
なお、本実施の形態においては画像形成装置20を電子機器の一例として説明したが、本発明の適用範囲は画像形成装置20に限定されない。プログラムを追加(インストール)可能な電子機器であれば、本発明は有効に適用されうる。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
本発明は、上記の点に鑑みてなされたものであって、プログラムのライセンスの導入に関する処理が途中で失敗した場合であっても適切に修復することのできるライセンス導入支援システム、ライセンス導入支援方法、及びライセンス導入支援プログラムの提供を目的とする。