以下、図面に基づいて本発明の実施の形態を説明する。図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において、仲介装置40、ライセンス管理サーバ50、及びパッケージ管理サーバ60等は、LAN(Local Area Network)又はインターネット等のネットワーク70を介して接続されている。
ライセンス管理サーバ50は、ユーザによって購入されたコンポーネントのライセンスを管理するコンピュータである。パッケージ管理サーバ60は、コンポーネントの実体を管理するコンピュータである。仲介装置40は、機器管理装置10とライセンス管理サーバ50又はパッケージ管理サーバ60との情報交換を仲介するコンピュータである。すなわち、本実施の形態において、ユーザ環境E1とメーカー環境E2との間は、ネットワーク接続されていない。具体的には、ユーザ環境E1が、インターネット等の外部ネットワークに接続されていないオフライン環境である場合を想定するとよい。したがって、機器管理装置10は、ライセンス管理サーバ50及びパッケージ管理サーバ60等と直接的に情報交換を行うことはできない。そこで、仲介装置40は、当該情報交換を外部記憶媒体90を用いて間接的に実現する。具体的には、機器管理装置10からライセンス管理サーバ50又はパッケージ管理サーバ60へ伝達すべき情報は、機器管理装置10によって外部記憶媒体90に記録される。仲介装置40は、外部記憶媒体90より当該情報を読み出し、ネットワーク70を介してライセンス管理サーバ50又はパッケージ管理サーバ60へ転送する。また、ライセンス管理サーバ50又はパッケージ管理サーバ60から機器管理装置10へ伝達すべき情報は、ネットワークを介して仲介装置40に転送される。仲介装置40は、転送された情報を外部記憶媒体90に記録する。機器管理装置10は、外部記憶媒体90に記録された情報を読み出すことにより、ライセンス管理サーバ50又はパッケージ管理サーバ60からの情報を擬似的に受信する。このようにして、機器管理サーバ50と、ライセンス管理サーバ50又はパッケージ管理サーバ60との情報交換は行われる。
なお、外部記憶媒体90は、例えば、USBメモリ、SDカード、CD−RW等、読み書き可能であり、かつ、携帯可能な記憶媒体である。
本実施の形態におけるコンポーネントは、販売パッケージと呼ばれる単位で流通する。また、複数の販売パッケージの集合がセットとして流通単位となる場合もある。複数の販売パッケージの集合を、本実施の形態では「グループ」という。
図2は、販売パッケージの構成例を示す図である。同図に示されるように、一つの販売パッケージは、一つの販売パッケージ情報ファイルと、一つ以上の機能パッケージを含む書庫ファイルとして構成される。
販売パッケージ情報ファイルは、販売パッケージの属性情報(販売パッケージ情報)が記録されたファイルである。
図3は、販売パッケージ情報の構成例を示す図である。同図において、販売パッケージ情報は、プロダクトID、バージョン、名称、説明、及びベンダ名等を含む。
プロダクトIDは、各販売パッケージ及び各機能パッケージに一意に割り当てられた識別子(製品識別子)である。バージョンは、販売パッケージのバージョン番号である。名称は、販売パッケージの名前である。説明は、販売パッケージに関する説明である。ベンダ名は、販売パッケージのベンダ(開発者)の名前である。
図2に戻る。機能パッケージは、機能単位でパッケージ化されたソフトウェアパッケージである。一つの機能パッケージは、一つの機能パッケージ情報ファイルと一つのコンポーネントの実体とを含む書庫ファイル(例えば、JAR(Java(登録商標) Archive)ファイル)として構成される。
機能パッケージ情報ファイルは、機能パッケージの属性情報(機能パッケージ情報)が記録されたファイルである。
図4は、機能パッケージ情報の構成例を示す図である。同図において、機能パッケージ情報は、プロダクトID、バージョン、名称、説明、ベンダ名、及びパッケージ依存情報等を含む。
プロダクトIDは、機能パッケージに対するプロダクトIDである。バージョンは、機能パッケージのバージョン番号である。名称は、機能パッケージの名前である。説明は、機能パッケージに関する説明である。ベンダ名は、機能パッケージのベンダ(開発者)の名前である。
なお、同図では、三つの販売パッケージによって1つのグループが構成されている。グループに属する販売パッケージであっても単独で流通しうる。
図5は、本発明の実施の形態における機器管理装置のハードウェア構成例を示す図である。図5の機器管理装置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はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
なお、仲介装置40、ライセンス管理サーバ50、及びパッケージ管理サーバ60についても、図5に示されるハードウェア構成を有していればよい。但し、ライセンス管理サーバ50及びパッケージ管理サーバ60は、表示装置106及び入力装置107は備えていなくてもよい。
図6は、本発明の実施の形態のユーザ環境における各装置の機能構成例を示す図である。同図において、画像形成装置20は、認証部201、機器情報発行部202、インストール部203、ライセンス導入部204、アンインストール部205、ライセンス削除部206、アプリ起動部207、アプリ起動判定部208、及びインストール情報管理テーブル209等を有する。これら各部は、画像形成装置20にインストールされたプログラムが、画像形成装置20のCPUに実行させる処理により実現される。
認証部201は、機器管理装置10との通信の開始に際し、機器管理装置10がアクセス要求元として正しいか否かの認証を行う。認証にはBASIC認証、WSSE認証等を利用すればよい。機器管理装置10が認証されない場合、認証部201は、機器管理装置10との通信を遮断する。
機器情報発行部202は、機器管理装置10の要求に応じ、機器情報を返信する。機器情報には、画像形成装置20にインストールされている販売パッケージ及びファームウェアに関する情報が含まれる。
インストール部203は、機器管理装置10の要求に応じ、販売パッケージ等のインストールを実行する。ライセンス導入部204は、機器管理装置10の要求の要求に応じ、ライセンスファイルの導入処理を実行する。
ライセンスファイルとは、販売パッケージに対するライセンスを証明するデータ(販売パッケージの利用を許可するためのデータ)が記録されたファイルである。すなわち、本実施の形態における販売パッケージ(コンポーネント)は、その実体を入手するだけでは画像形成装置20において利用することはできない。販売パッケージは、ライセンスファイルが画像形成装置20に導入されることにより利用可能となる。
なお、コンポーネントの中には、ライセンスファイルを必要としないものものある。ライセンスが必要ないコンポーネントは、インストールが完了すれば利用することができる。
アンインストール部205は、機器管理装置10の要求に応じ、販売パッケージ等のアンインストール(削除)を実行する。ライセンス削除部206は、機器管理装置10の要求に応じ、導入済みのライセンスファイルを削除する。ライセンスファイルが削除された販売パッケージに含まれる機能パッケージは利用できなくなる。
アプリ起動部207は、機能パッケージ(アプリケーションプログラム)の起動処理を実行する。アプリ起動判定部208は、起動対象とされた機能パッケージについて、ライセンスファイルに基づいて起動の可否(許否)を判定する。インストール情報管理テーブル209は、画像形成装置20にインストールされている販売パッケージ等の情報を管理するテーブルであり、画像形成装置20の記憶装置に記憶されている。
機器管理装置10は、UI制御部111、機器情報取得部112、インストール先受付部113、インストール制御部114、ライセンス導入制御部115、アンインストール先判定部116、アンインストール制御部117、ライセンス削除制御部118、読込部119、及び書込部120等を有する。これら各部は、機器管理装置10にインストールされたプログラムが、機器管理装置10のCPU104に実行させる処理により実現される。
UI制御部111は、ユーザによる指示入力を受け付ける。機器情報取得部112は、画像形成装置20より機器情報を取得する。インストール先受付部113は、販売パッケージのインストール先とする画像形成装置20の指定をユーザより受け付ける。インストール制御部114は、販売パッケージ等を画像形成装置20に送信することにより、画像形成装置20に販売パッケージ等のインストール処理を実行させる。ライセンス導入制御部115は、ライセンスファイルを画像形成装置20に送信することにより、画像形成装置20にライセンスの導入処理を実行させる。アンインストール先判定部116は、アンインストール対象とされた販売パッケージがインストールされている画像形成装置20を判定する。アンインストール制御部117は、販売パッケージのアンインストールを画像形成装置20に実行させる。ライセンス削除制御部118は、ライセンスファイルの削除処理を画像形成装置20に実行させる。読込部119は、外部記憶媒体90に記録された情報を読み込む(取得する)。書込部120は、外部記憶媒体90への情報の書き込み(記録)を行う。
図7は、本発明の実施の形態のメーカー環境における各装置の機能構成例を示す図である。同図において、ライセンス管理サーバ50は、認証部51、ライセンス管理部52、及びライセンス管理テーブル53等を有する。これら各部は、ライセンス管理サーバ50にインストールされたプログラムがライセンス管理サーバ50のCPUに実行させる処理により実現される。
認証部61は、仲介装置40がアクセス要求元として正しいか否かの認証を行う。認証方法は、認証部201によるものと同様でよい。仲介装置40が認証されない場合、認証部51は、仲介装置40との接続を遮断する。ライセンス管理部52は、販売パッケージに関するライセンスの発行、ライセンスの解放等、ライセンス管理テーブル53を用いてライセンスの管理を行う。ライセンス管理テーブル53は、販売パッケージのライセンスの状態等が記録されるテーブルであり、ライセンス管理サーバ50の記憶装置に記憶されている。
パッケージ管理サーバ60は、認証部61、妥当性検証部62、パッケージ管理部63、依存関係管理テーブル64、パッケージ管理テーブル65、及びパッケージ記憶部66等を有する。これら各部は、パッケージ管理サーバ60にインストールされたプログラムがパッケージ管理サーバ60のCPUに実行させる処理により実現される。
認証部51は、仲介装置40がアクセス要求元として正しいか否かの認証を行う。認証方法は、認証部51によるものと同様でよい。仲介装置40が認証されない場合、認証部61は、仲介装置40との接続を遮断する。
妥当性検証部62は、インストール対象とされている販売パッケージに含まれている機能パッケージの依存関係が、インストール先の画像形成装置20に既にインストールされている機能パッケージ等によって解決されるか否かを依存関係管理テーブル64を参照して判定する。具体的には、妥当性検証部62は、インストール対象とされている販売パッケージに含まれている機能パッケージの依存先の機能パッケージ等が、既に画像形成装置20にインストールされているか否か等を判定する。
パッケージ管理部63は、パッケージ記憶部66に記録されている販売パッケージの管理を行う。例えば、パッケージ管理部63は、販売パッケージのダウンロード要求の受信に応じ、当該販売パッケージをパッケージ記憶部66より取得し、要求元に返信する。
依存関係管理テーブル64は、機能パッケージ間及び機能パッケージとファームウェア間の依存関係を示す情報が記録されたテーブルであり、パッケージ管理サーバ60の記憶装置に記憶されている。パッケージ管理テーブル65は、販売パッケージと機能パッケージとの関連付け情報を管理するテーブルであり、パッケージ管理サーバ60の記憶装置に記憶されている。パッケージ記憶部66は、パッケージ管理サーバ60の記憶装置において、販売パッケージやファームウェア等のコンポーネントの実体をそれぞれのプロダクトIDと関連付けて記憶する記憶領域である。
仲介装置40は、UI制御部41、パッケージ情報取得部42、妥当性確認部43、ライセンス取得部44、ライセンス更新部45、ライセンス解放部46、パッケージ取得部47、読込部48、及び書込部49等を有する。これら各部は、仲介装置40にインストールされたプログラムが、仲介装置40のCPUに実行させる処理により実現される。
UI制御部41は、ユーザによる指示入力を受け付ける。パッケージ情報取得部42は、インストール又はアンインストール対象等とされた販売パッケージに関する情報をライセンス管理サーバ50より取得する。妥当性確認部43は、インストール対象とされた販売パッケージについて、インストール先とされた画像形成装置20へのインストールの妥当性の検証をパッケージ管理サーバ60の妥当性検証部62に実行させる。ライセンス取得部44は、インストール対象の販売パッケージに関するライセンスファイルをライセンス管理サーバ50より取得する。ライセンス更新部45は、有効期限が更新(延長)されたライセンスファイルをライセンス管理サーバ50より取得する。ライセンス解放部46は、削除対象とされたライセンスファイルに係るライセンスの解放をライセンス管理サーバ50に実行させる。パッケージ取得部47は、インストール対象の販売パッケージをパッケージ管理サーバ60よりダウンロード(取得)する。読込部48は、外部記憶媒体90に記録された情報を取得する。書込部49は、外部記憶媒体90への情報の書き込みを行う。
以下、機器管理システム1の処理手順について説明する。まず、販売パッケージを画像形成装置20にインストールするために実行される処理について説明する。
図8は、販売パッケージのインストール及びライセンス導入の処理手順を説明するためのシーケンス図である。同図において、画像形成装置20のユーザは、販売パッケージに係るいずれかの商品を購入し、当該商品のプロダクトキーを入手済みであるとする。
本実施の形態において、商品は、販売パッケージ又はグループと、そのライセンスの内容とによって構成される概念である。したがって、同一の販売パッケージであってもライセンスの内容(ライセンス形態、ライセンス有効期間、ライセンスボリューム数等)が異なれば、異なる商品として扱われる。ライセンス形態とは、商品に属する販売パッケージに関するライセンスについて売り切り型、時限ライセンス、及びトライアルライセンス等の別を示す情報である。売り切り型は、購入後無期限に使用可能なライセンスである。時限ライセンスは、所定期間に限り有効な(使用可能な)ライセンスである。トライアルライセンスは、お試し用としての使用に対するライセンスである。ライセンス有効期間は、ライセンス形態が時限ライセンス又はトライアルライセンスの場合に有効な属性であり、ライセンスが有効な期間を示す。ボリューム数は、ライセンスのボリューム数である。ボリューム数が2以上の商品を購入した場合、ボリュームライセンスが与えられ、当該ボリューム数の範囲内で同一の販売パッケージの同時使用が許可される。
したがって、商品の購入という行為には、販売パッケージの選択の他に、ライセンスの内容の選択という意思決定も含まれる。
また、プロダクトキーとは、商品が購入されるごとに一意に発行される(又は割り当てられる)識別子であり、商品に含まれる販売パッケージに対するライセンス(利用権限)を識別する情報(ライセンス識別子)として、また、商品の正当な購入者であることを証明するための情報として用いられる。なお、本実施の形態において、プロダクトIDとプロダクトキーとは明確に区別される。すなわち、プロダクトIDは、製品としての販売パッケージの異同を区別するものであるのに対し、プロダクトキーは、商品の購入という行為を区別するためのものである。したがって、同一のプロダクトIDに係る販売パッケージに対し、商品の購入のたびに異なるプロダクトキーが発行される。
なお、商品の購入の形態は所定のものに限定されない。店頭における取引によって購入されてもよいし、電子的な取引によって(例えば、Webサイトを利用して)購入されてもよい。前者の場合、プロダクトキーは、販売パッケージが記録されたCD−ROM等に貼付されているのが一般的であろう。後者の場合、商品を購入したWebサイトにおいて、購入確定時にWebページ上にプロダクトキーが表示されてもよいし、電子メールによってプロダクトキーが通知されてもよい。
販売パッケージのインストール等のための作業は、まず、ユーザ環境E1の機器管理装置10を用いて行われる。機器管理装置10には、外部記憶媒体90が書き込み可能にセットされる。
ステップS101において、機器管理装置10のインストール先受付部113は、画像形成装置20の一覧を含む機器選択画面を表示装置106に表示させ、販売パッケージのインストール先とする画像形成装置20を作業者に選択させる。機器選択画面においては、複数の画像形成装置20を選択することも可能である。なお、機器選択画面では、予めそのIPアドレス及びホスト名等が補助記憶装置102に記憶されている画像形成装置20が表示対象とされる。または、機器情報取得部112が、ブロードキャスト等をネットワーク30上に発行することにより、ネットワーク30に接続されている画像形成装置20を動的に検索し、検索された画像形成装置20のホスト名等を機器選択画面に表示させてもよい。
続いて、機器情報取得部112は、機器選択画面において選択された各画像形成装置20に対して機器情報の取得要求を送信する(S102)。機器情報の取得要求を受信した各画像形成装置20の機器情報発行部202は、インストール情報管理テーブル209に記録されている情報を取得し、取得された情報と当該画像形成装置20の機体番号とを含む情報を機器情報として機器情報取得部112に返信する(S103)。なお、機器情報の取得は、認証部201による認証が成功した場合に行われる。
図9は、インストール情報管理テーブルの構成例を示す図である。同図において、インストール情報管理テーブル209には、当該画像形成装置20にインストールされている販売パッケージ又はファームウェアごとに、プロダクトID、バージョン、機能パッケージのプロダクトID、ライセンス導入フラグ、及び有効期限等が登録されている。
機能パッケージのプロダクトIDは、販売パッケージに属する機能パッケージのプロダクトIDの一覧である。ライセンス導入フラグは、販売パッケージについてライセンスファイルが導入されているか否かを示す。ライセンス有効期限は、販売パッケージに対して発行されたライセンスの有効期限(ライセンスファイルの有効期限)である。各機能パッケージのライセンス導入フラグ及びライセンス有効期限は、当該機能パッケージが属する販売パッケージのライセンス導入フラグ及びライセンス有効期限に従う。また、インストール情報管理テーブル209の内容は、後述される販売パッケージのインストール時に登録される。なお、ステップS103において返信される機器情報には、インストール情報管理テーブル209に登録されている全ての情報が含められる。また、ファームウェアとは、機能パッケージより下層に位置するプログラムコンポーネントである。すなわち、ファームウェアは、機能パッケージに比較して基本的な機能を機能パッケージに提供する。ファームウェアは、画像形成装置20の予め組み込まれているものであり、ファームウェアを利用するためにライセンスの取得の必要はない。したがって、インストール情報管理テーブル209において、ファームウェアに関するレコードについては、機能パッケージ、ライセンス導入フラグ、及びライセンス有効期限の項目は無効である。同図では、便宜上、ファームウェアの情報と販売パッケージの情報とを同じテーブルで管理する例を示しているが、それぞれを別のテーブルで管理してもよい。
続いて、書込部120は、現在の処理状態を外部記憶媒体90に保存する(S104)。具体的には、書込部120は、取得された機器情報を画像形成装置20ごとに含む機器管理テーブルを外部記憶媒体90に記録(生成)する。その結果、外部記憶媒体90の記憶内容は、図10に示されるようになる。
図10は、機器情報取得後の外部記憶媒体の記憶内容の例を示す図である。同図に示されるように、外部記憶媒体90には、機器管理テーブルが記録される。
外部記憶媒体90に記録される機器管理テーブルは、例えば、図11に示されるような構成を有する。
図11は、機器管理テーブルの構成例を示す図である。同図に示されるように、機器管理テーブルは、IPアドレス、機体番号、機器情報、妥当性検証結果、及び作業ステータス等が画像形成装置20ごとに記録可能なように構成されている。機器情報の取得後においては、IPアドレス、当該IPアドレスに基づいて取得された機体番号及び機器情報が機器管理テーブルに記録される。妥当性検証結果は、後述される妥当性の検証処理の結果を画像形成装置20ごとに記録するための項目である。作業ステータスは、処理状態を画像形成装置20ごとに記録するための項目である。したがって、ここでは、機器情報の取得が完了したことを示す値(「機器情報取得完了」)が作業ステータスに記録される。但し、機器情報の取得に失敗した画像形成装置20の作業ステータスには何も記録されない。又は、機器情報の取得に失敗したことを示す値(「機器情報取得失敗」)が記録されてもよい。この場合、当該画像形成装置20の機体番号及び機器情報は、機器管理テーブルに登録されない。したがって、機器管理テーブルの作業ステータスの値を参照することにより、画像形成装置20ごとに機器情報の取得の成否を判定することができる。
以上の作業が完了すると、作業者は、メーカー環境E2に移動する。作業者の移動に伴って、外部記憶媒体90もメーカー環境E2に移動される。例えば、外部記憶媒体90は、作業者によって携帯される。したがって、ステップS111以降において、作業場所は仲介装置40となる。仲介装置40には、機器管理装置10によって機器管理テーブルが記録された外部記憶媒体90が読み書き可能にセットされる。
ステップS111において、仲介装置40のUI制御部41は、表示装置に表示させているプロダクトキー入力画面を介して、インストール対象の販売パッケージ(以下、「カレント販売パッケージ」という。)のプロダクトキーの入力を受け付ける。続いて、パッケージ情報取得部42は、入力されたプロダクトキーを指定して当該プロダクトキーに係るパッケージ情報の取得要求をライセンス管理サーバ50に送信する(S112)。なお、パッケージ情報の取得要求は、認証部51による認証が成功した場合に送信される。
図12は、プロダクトキーの構成例を示す図である。同図に示されるように、プロダクトキーは、ユニークID、商品ID、ライセンス形態、及びグループライセンスフラグ等を含むデータである。
ユニークIDは、プロダクトキーの生成に伴って生成される一意なIDである。すなわち、ユニークIDによってプロダクトキーの一意性が確保される。商品IDは、購入された商品の販売パッケージのプロダクトID又はグループIDである。ライセンス形態は、購入した商品のライセンス形態である。グループライセンスフラグは、当該プロダクトキー内の商品IDが、グループIDであるか(true)否か(false)を示すパラメータである。
ライセンス管理サーバ50のライセンス管理部52は、パッケージ情報の取得要求の受信に応じ、当該取得要求において指定されているプロダクトキーの有効性をライセンス管理テーブル53を参照して判定する。
図13は、ライセンス管理テーブルの構成例を示す図である。同図においてライセンス管理テーブル53は、販売パッケージに関して発行されるライセンスごとに管理番号、プロダクトキー、プロダクトID、機体番号、ステータス、ライセンス形態、ライセンス有効期間、ライセンス有効期限、及びライセンス発行日等の項目を有する。
これらの項目のうち、管理番号、プロダクトキー、プロダクトID、ステータス、ライセンス形態、及びライセンス有効期間は、商品が購入された際にライセンス管理テーブル53にその値が記録される。
一方、機体番号、ライセンス有効期限、及びライセンス発行日は、ライセンスの発行(すなわち、ライセンスファイルの発行)に応じてその値が記録される。また、ライセンスの発行に応じて、ステータスの値も更新される。
管理番号は、ライセンス管理テーブル53に対するレコードの生成に伴って、各レコードに一意に割り当てられる識別子(番号)である。プロダクトキー、プロダクトID、ライセンス形態、及びライセンス有効期間は、上述した通りである。
機体番号には、ライセンスファイルが発行される際に、販売パッケージを利用する機器として指定された画像形成装置20の機体番号が登録される。機体番号とは、各画像形成装置20を一意に識別するための識別情報(機器識別子)である。ステータスは、ライセンスの状態を示す情報である。本実施の形態において、ライセンスは、「ライセンス無し」、「チェックアウト」、及び「チェックイン」の状態を有する。「ライセンス無し」は、ライセンスが発行されていない状態である。チェックアウトは、ライセンスが使用されている状態である。チェックインは、ライセンスが解放されている状態である。ライセンスが解放されている状態とは、ライセンスは使用されておらず、使用可能な状態をいう。ライセンス有効期限は、ライセンスファイルが発行される際に、ライセンス有効期間に基づいて算出されるライセンス(ライセンスファイル)の有効期限である。ライセンス発行日は、ライセンスファイルが発行される際に登録される、ライセンス(ライセンスファイル)の発行日である。
なお、同図において、管理番号1〜3のレコードのプロダクトキー及びプロダクトIDは共通する。これは、プロダクトキー「KEY001」に係る商品が、ライセンス数が3のボリュームライセンスに係る商品であることを示す。また、管理番号4及び5のレコードについては、プロダクトキーは共通し、プロダクトIDは異なる。これは、プロダクトキー「KEY002」に係る商品は、二種類の販売パッケージを含むグループライセンスに係る商品であることを示す。なお、グループライセンスとは、グループに対するライセンスをいう。
以上のようなライセンス管理テーブル53を用いて、ライセンス管理部52は、例えば、受信されたプロダクトキーを含むレコードがライセンス管理テーブル53に登録されており、当該プロダクトキーを含むレコードのステータスが「チェックアウト」でなく、かつ、当該プロダクトキーを含むレコードのライセンス有効期限が現時点を超えていない場合(ライセンス有効期限の値が登録されていない場合も含む。)、当該プロダクトキーは有効であると判定し、それ以外の場合は、当該プロダクトキーは無効であると判定する。
当該プロダクトキーは無効であると判定された場合、ライセンス管理部52は、プロダクトキーが無効であることを示すエラー情報をパッケージ情報取得部42に返信する。この場合、パッケージ情報取得部42は、当該エラー情報を表示装置に表示させ、インストール作業を中止させる。
当該プロダクトキーが有効であると判定された場合、ライセンス管理部52は、受信されたプロダクトキーに係るレコード(ライセンス管理テーブル53のレコード)に記録されている情報(パッケージ情報)をパッケージ情報取得部42に返信する(S113)。したがって、パッケージ情報には、少なくとも当該プロダクトキーに関連付けられているプロダクトID(すなわち、カレント販売パッケージのプロダクトID)が含まれている。また、当該プロダクトキーがグループライセンス又はボリュームライセンスに係るものである場合、複数のプロダクトID(複数のレコード)に係る情報がパッケージ情報に含まれる。
パッケージ情報取得部42によってパッケージ情報が受信されると、書込部49は、現在の処理状態を外部記憶媒体90に記録する(S114)。具体的には、書込部49は、プロダクトキーと当該パッケージ情報とを外部記憶媒体90に記録する。その結果、外部記憶媒体90の記憶内容は、図14に示されるようになる。
図14は、パッケージ情報取得後の外部記憶媒体の記憶内容の例を示す図である。同図に示されるように、外部記憶媒体90には、機器管理テーブル、プロダクトキー、及びパッケージ情報が記録されている。
続いて、UI制御部41は、受信されたパッケージ情報を含む画面(確認画面)を表示装置に表示させ、カレント販売パッケージの内容及びそのライセンスの内容を作業者に確認させる(S115)。
作業者によって、インストール処理の継続指示が入力されると(例えば、確認画面においてOKボタンが押下されると)、外部記憶媒体90の機器管理テーブルに機器情報が記録されている画像形成装置20ごとのループ処理が実行される(S116)。ループ処理において処理対象とされる画像形成装置20を以下、「カレント機器」という。
ステップS116−1において、妥当性確認部43は、読込部48によって外部記憶媒体90の機器管理テーブルより読み込まれたカレント機器の機器情報と、パッケージ情報取得部42によって取得されたパッケージ情報とを含む妥当性検証要求をパッケージ管理サーバ60に送信する。ここでいう「妥当性」とは、カレント販売パッケージに含まれる機能パッケージをカレント機器にインストールすることの妥当性である。なお、妥当性検証要求は、認証部61による認証が成功した場合に送信される。パッケージ管理サーバ60の妥当性検証部62は、妥当性検証要求の受信に応じ、依存関係管理テーブル64を参照して妥当性を検証する。
図15は、依存関係管理テーブルの構成例を示す図である。同図において、依存関係管理テーブル64は、機能パッケージごとに当該機能パッケージのプロダクトID、及び当該機能パッケージが依存する(当該機能パッケージの依存先の)機能パッケージ又はファームウェアのプロダクトIDが登録されている。依存する機能パッケージ又はファームウェアのプロダクトIDは、複数登録されていてもよい。なお、同図において、「0」は、依存する機能パッケージ等が無いことを示す。
妥当性検証部62は、妥当性の検証において、カレント販売パッケージに属する機能パッケージのプロダクトIDの一覧をパッケージ管理テーブル65より取得する。
図16は、パッケージ管理テーブルの構成例を示す図である。同図に示されるように、パッケージ管理テーブル65には、販売パッケージごとに、プロダクトID、バージョン、及び機能パッケージのプロダクトID等が登録されている。機能パッケージのプロダクトIDは、販売パッケージに属する機能パッケージのプロダクトIDの一覧である。
続いて、妥当性検証部62は、取得された各機能パッケージのプロダクトIDと依存関係管理テーブル64とに基づいて、当該機能パッケージが依存する機能パッケージ又はファームウェア(以下、「依存先パッケージ」という。)を特定する。依存先パッケージが有る場合、当該依存先パッケージのプロダクトIDが機器情報に含まれているか否かを判定する。全ての依存先パッケージのプロダクトIDが機器情報に含まれている場合、妥当性検証部62は、妥当性は有ると判定する。機器情報に含まれていない依存先パッケージ(以下、「未解決パッケージ」という。)が少なくとも一つ存在する場合、妥当性検証部62は、妥当性は無いと判定する。なお、一つの機能パッケージに対して依存先パッケージは複数存在しうる。また、依存関係の探索は、再帰的に行われる。
続いて、妥当性検証部62は、妥当性の検証結果を妥当性確認部43に返信する(S116−2)。妥当性が無いと判定された場合、検証結果には、未解決パッケージのプロダクトIDが含まれる。
続いて、書込部49は、現在の処理状態を外部記憶媒体90に記録する(S116−3)。具体的には、書込部49は、機器管理テーブルにおいて、カレント機器に対応するレコードの妥当性検証結果の値として妥当性の検証結果を記録する。したがって、妥当性が無いと判定された場合、未解決パッケージのプロダクトIDが、当該レコードの妥当性検証結果に記録される。また、書込部49は、妥当性の検証に成功した場合は、当該レコードの作業ステータスの値を、妥当性の検証が完了したことを示す値(「妥当性検証完了」)に更新する。妥当性の検証の成功とは、妥当性の有無に拘わらず、妥当性の判定自体が正常に行われ、その判定結果を受信できたことをいう。妥当性の検証に失敗した場合、当該レコードの妥当性検証結果には何も記録されず、当該レコードの作業ステータスの値も更新されない。また、妥当性の検証に失敗した場合、カレント機器については以降の処理は実行されず、次の画像形成装置20についてステップS116−1以降が実行される。
続いて、パッケージ取得部47は、カレント販売パッケージのプロダクトIDを指定してダウンロード要求をパッケージ管理サーバ60に送信する(S116−4)。パッケージ管理サーバ60のパッケージ管理部63は、指定されたプロダクトIDに対応する販売パッケージをパッケージ記憶部66より取得し、取得された販売パッケージをパッケージ取得部47に返信する(S116−5)。カレント販売パッケージが複数の場合、ダウンロード(S116−4、S116−5)は複数回繰り返される。また、ステップS116−2において妥当性が無い旨の検証結果が受信された場合、未解決パッケージに関してもダウンロードが実行される。なお、カレント販売パッケージが複数である場合とは、例えば、ステップS111において入力されたプロダクトキーがグループライセンスに係るものである場合や、複数のプロダクトキーが入力された場合等である。
続いて、書込部49は、現在の処理状態を外部記憶媒体90に記録する(S116−6)。具体的には、書込部49は、取得された販売パッケージ又は未解決パッケージをカレント機器に関連付けて外部記憶媒体90に記録する。販売パッケージ又は未解決パッケージとカレント機器との関連付けの方法は、所定のものに限定されない。本実施の形態では、取得(ダウンロード)された販売パッケージ又は未解決パッケージを一つの書庫ファイル(以下、「パッケージ書庫ファイル」という。)内に格納し、パッケージ書庫ファイルのファイル名にカレント機器の機体番号を含めることにより、当該関連付けを実現する。他の方法として、例えば、カレント機器の機体番号をフォルダ名とするフォルダを作成し、ダウンロードされた販売パッケージ又は未解決パッケージを当該フォルダ内に保存するようにしてもよい。その結果、外部記憶媒体90の記憶内容は、図17に示されるようになる。
図17は、販売パッケージダウンロード後の外部記憶媒体の記憶内容の例を示す図である。同図に示されるように、外部記憶媒体90には、パッケージ書庫ファイルが追加されている。
書込部49は、また、ダウンロード対象とされている全ての販売パッケージ又は未解決パッケージのダウンロードに成功した場合は、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値を、販売パッケージのダウンロード(取得)が完了したことを示す値(「パッケージ取得完了」)に更新する。
なお、いずれかの販売パッケージ又は未解決パッケージの取得に失敗した場合、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値は更新されず、カレント機器については以降の処理は実行されない。したがって、次の画像形成装置20についてステップS116−1以降が実行される。
続いて、ライセンス取得部44は、ステップS111において入力されたプロダクトキーと、カレント販売パッケージのプロダクトIDと、カレント機器の機体番号とを指定して、ライセンスの使用要求(ライセンスファイルの発行要求)をライセンス管理サーバ50に送信する(S116−7)。
ライセンス管理サーバ50のライセンス管理部52は、ライセンスの使用要求に含まれている情報及びライセンス管理テーブル53に基づいてライセンスファイルを生成し、生成されたラインセンスファイルをライセンス取得部44に返信する(S116−8)。
図18は、ライセンスファイルの構成例を示す図である。同図において、ライセンスファイルは、プロダクトID、機体番号、及び有効期限を含む。プロダクトIDは、当該ライセンスファイルによってライセンスが付与される(利用が許可される)販売パッケージのプロダクトIDである。機体番号は、当該ライセンスファイルによってプロダクトIDに係る販売パッケージの利用が許可される画像形成装置20の機体番号である。有効期限は、当該ライセンスファイルの有効期限、すなわち、当該ライセンスファイルによって付与されるライセンスの有効期限である。
ライセンスファイルのプロダクトIDには、ライセンスの使用要求に含まれているプロダクトキーに係るプロダクトIDが登録される。ここで、当該プロダクトキーがグループライセンスに係るものである場合、すなわち、プロダクトキーに対して複数の異なるプロダクトIDがライセンス管理テーブル53に登録されている場合、ライセンス管理部52は、販売パッケージごとにライセンスファイルを生成する。したがって、グループライセンスの場合であっても、ライセンスファイルのプロダクトIDには、グループIDではなく販売パッケージのプロダクトIDが登録される。なお、ライセンスファイルの発行に伴ってライセンス管理テーブル53も更新される。この点については後述する。
ライセンスファイルの機体番号には、ライセンスの使用要求に含まれている機体番号が登録される。ライセンスファイルの有効期限には、ライセンスの使用要求に含まれているプロダクトキー及びプロダクトIDに対してライセンス管理テーブル53に登録されている有効期間を現時点に加算することに得られる時期(例えば、年月日)が登録される。
続いて、書込部49は、現在の処理状態を外部記憶媒体90に記録する(S116−9)。具体的には、書込部49は、取得されたライセンスファイルをカレント機器に関連付けて外部記憶媒体90に記録する。本実施の形態では、取得されたライセンスファイルを一つの書庫ファイル(以下、「ライセンス書庫ファイル」という。)内に格納し、ライセンス書庫ファイルのファイル名にカレント機器の機体番号を含めることにより、当該関連付けを実現する。但し、販売パッケージとカレント機器との関連付けと同様、他の方法によってライセンスファイルとカレント機器との関連付けが行われてもよい。その結果、外部記憶媒体90の記憶内容は、図19に示されるようになる。
図19は、ライセンスファイル取得後の外部記憶媒体の記憶内容の例を示す図である。同図に示されるように、外部記憶媒体90には、ライセンス書庫ファイルが追加される。
書込部49は、また、ライセンスファイルのダウンロードに成功した場合は、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値を、ライセンスの取得が完了したことを示す値(「ライセンス取得完了」)に更新する。
なお、ライセンスファイルの取得に失敗した場合、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値は更新されず、カレント機器については以降の処理は実行されない。したがって、次の画像形成装置20についてステップS116−1以降が実行される。
以上でメーカー環境E2における作業は完了する。続いて、作業者は、ユーザ環境E1に移動する。作業者の移動に伴って、外部記憶媒体90もユーザ環境E1に移動される。例えば、外部記憶媒体90は、作業者によって携帯される。したがって、ステップS121以降において、作業場所は機器管理装置10となる。機器管理装置10には、図19の状態の外部記憶媒体90が読み書き可能にセットされる。
機器管理装置10の読込部119は、外部記憶媒体90のセットに応じ、当該外部記憶媒体90より機器管理テーブルを取得する(S121)。続いて、機器管理テーブルにおいて、作業ステータスの値が「ライセンス取得完了」である画像形成装置20ごとに、ステップS122のループ処理が実行される。したがって、メーカー環境E2において途中で処理が中断された画像形成装置20については処理対象とはされない。なお、ループ処理において処理対象とされる画像形成装置20を以下、「カレント機器」という。
ステップS122−1において、インストール制御部114は、カレント機器に対応するパッケージ書庫ファイルを読込部119を介して外部記憶媒体90より読み込み、当該パッケージ書庫ファイルに格納されている当該未解決パッケージを含むインストール要求をカレント機器に送信する。カレント機器のインストール部203は、未解決パッケージをインストールし、当該未解決パッケージの情報(プロダクトID等)をインストール情報管理テーブル209に記録する。
続いて、インストール制御部114は、未解決パッケージのインストール結果をカレント機器に問い合わせる(S122−2)。当該問い合わせ(ポーリング)は、カレント機器においてインストールが完了し、インストール結果が返信されるまで繰り返される。
続いて、書込部120は、現在の処理状態を外部記憶媒体90に記録する(S122−3)。具体的には、未解決パッケージのインストールに成功した場合、書込部120は、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値を、未解決パッケージのインストールが完了したことを示す値(「未解決パッケージインストール完了」)に更新する。一方、未解決パッケージのインストールに失敗した場合、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値は更新されず、カレント機器については以降の処理は実行されない。したがって、次の画像形成装置20についてステップS122−1以降が実行される。
先に未解決パッケージをインストールさせるのは、依存先のコンポーネントがインストールされていないことによる、販売パッケージのインストールの失敗を回避するためである。
続いて、インストール制御部114は、カレント機器に対応するパッケージ書庫ファイルに格納されている販売パッケージをカレント機器に送信し、当該販売パッケージのインストールをカレント機器に要求する(S122−4)。カレント機器のインストール部203は、当該販売パッケージをインストールし、当該販売パッケージの情報(プロダクトID等)をインストール情報管理テーブル209に記録する。
続いて、インストール制御部114は、販売パッケージのインストール結果をカレント機器に問い合わせる(S122−5)。当該問い合わせ(ポーリング)は、カレント機器においてインストールが完了し、インストール結果が返信されるまで繰り返される。
続いて、書込部120は、現在の処理状態を外部記憶媒体90に記録する(S122−6)。具体的には、販売パッケージのインストールに成功した場合、書込部120は、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値を、販売パッケージのインストールが完了したことを示す値(「販売パッケージインストール完了」)に更新する。この場合、カレント機器に関連付けられているパッケージ書庫ファイルは外部記憶媒体90より削除されてもよい。
一方、販売パッケージのインストールに失敗した場合、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値は更新されない。また、カレント機器に関連付けられているパッケージ書庫ファイルは削除されない。更に、カレント機器については以降の処理は実行されない。したがって、次の画像形成装置20についてステップS122−1以降が実行される。
続いて、ライセンス導入制御部115は、カレント機器に対応するライセンス書庫ファイルを読込部119を介して外部記憶媒体90より読み込み、当該ライセンス書庫ファイルに格納されているライセンスファイルを含むライセンスの導入要求をカレント機器に送信する(S122−7)。カレント機器のライセンス導入部204は、ライセンスファイルについて所定の記憶領域への記録等を行い、ライセンスファイルを利用可能な状態とする。
続いて、ライセンス導入制御部115は、販売パッケージのライセンス導入結果をカレント機器に問い合わせる(S122−8)。当該問い合わせ(ポーリング)は、カレント機器においてライセンスファイルの所定の記憶領域への記録等が完了し、ライセンス導入結果が返信されるまで繰り返される。
続いて、書込部120は、現在の処理状態を外部記憶媒体90に記録する(S122−9)。具体的には、ライセンスの導入に成功した場合、書込部120は、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値を、ライセンス導入が完了したことを示す値(「ライセンス導入完了」)に更新する。この場合、カレント機器に関連付けられているライセンス書庫ファイルは外部記憶媒体90より削除されてもよい。
一方、ライセンス導入に失敗した場合、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値は更新されない。また、カレント機器に関連付けられているライセンス書庫ファイルは削除されない。
以上によって、画像形成装置20に対する販売パッケージのインストール及びライセンスの導入処理は完了する。
続いて、図8のステップS116−7のライセンスの使用要求に応じて、ライセンス管理サーバ50のライセンス管理部52によって実行される処理の詳細について説明する。
図20は、ライセンス管理部によるライセンスファイル生成処理の処理手順を説明するためのフローチャートである。なお、図20では、一つのプロダクトキーを処理対象として説明する。したがって、複数のプロダクトキーが受信された場合、ステップS192以降はプロダクトキーごとに実行される。
ステップS191(図8のステップS116−7)において、ライセンス管理部52は、プロダクトキー、プロダクトID、及び機体番号を含むライセンスの使用要求をライセンス取得部44より受信する。続いて、ライセンス管理部52は、当該プロダクトキーに係るライセンスの使用の可否を判定する。具体的には、ライセンス管理部52は、受信されたプロダクトキーがライセンス管理テーブル53に登録されているか否かを確認する(S192)。プロダクトキーが登録されている場合(S192でYes)、ライセンス管理部52は、受信された機体番号と同じ機体番号が当該プロダクトキーに対してライセンス管理テーブル53に登録されているか否かを確認する(S193)。同じ機体番号が登録されていない場合(S193でNo)、ライセンス管理部52は、当該プロダクトキー及び受信されたプロダクトIDに係るレコードの中で、ステータスが「チェックイン」のレコードがライセンス管理テーブル53に有るか否かを確認する(S194)。該当するレコードが有る場合(S194でYes)、ライセンス管理部52は、当該レコードに対して受信された機体番号を記録し、当該レコードのステータスを「チェックアウト」とする(S196)。すなわち、当該プロダクトキーに対応するライセンスは使用されていることが記録される。また、ライセンス管理部52は、当該レコードに「ライセンス有効期間」が記録されている場合(すなわち、当該レコードが時限ライセンスに対応するレコードである場合)、現在日時にライセンス有効期間を加算して得られる日時をライセンス期限として当該レコードに記録する。
続いて、ライセンス管理部52は、当該レコードにおける、プロダクトID、機体番号、及び有効期限を含むライセンスファイル(図18参照)を生成する(S197)。なお、ライセンスファイルは、ライセンス管理テーブル53のレコードごと、すなわち、販売パッケージに対するライセンスごとに生成される。続いて、ライセンス管理部52は、生成されたライセンスファイルを機器管理装置10のライセンス取得部44に返信する(S198)。
一方、当該プロダクトキーに対して受信された機体番号と同じ機体番号が登録されているレコードが有る場合(S193でYes)、ライセンス管理部52は、当該レコードのステータスが「チェックイン」であるか否かを確認する(S195)。ステータスが「チェックイン」である場合(S195でYes)、ステップS196以降の処理が実行される。
また、当該プロダクトキーに係るレコードがライセンス管理テーブル53に無い場合(S192でNo)、当該プロダクトキー及び受信されたプロダクトIDに係るレコードの中で、ステータスが「チェックイン」のレコードがライセンス管理テーブル53に無い場合(S194でNo)、又は、当該プロダクトキーに対して受信された機体番号と同じ機体番号が登録されているレコードのステータスが「チェックイン」でない場合(S195でNo)、ライセンス管理部52は、エラーを検出したとし、ライセンスファイルの生成、すなわち、ライセンスの発行は行わない。
なお、画像形成装置20において、ライセンスファイルは、インストールされた販売パッケージに含まれる機能パッケージの起動の際に実行される、アプリ起動判定部208によるライセンスチェックに利用される。すなわち、アプリ起動判定部208は、起動対象とされた機能パッケージが属する販売パッケージに対応するライセンスファイルが存在すること、当該ライセンスファイルの機体番号と機能パッケージが起動されようとしている画像形成装置20の機体番号とが一致すること、及び当該ライセンスファイルの有効期限が切れてないことが満たされている場合、当該機能パッケージの起動を許可する。それ以外の場合は、当該機能パッケージの起動は許可されない。
ところで、図8では、販売パッケージのインストールと共にライセンスの導入も行われる例について説明した。また、販売パッケージは、パッケージ管理サーバ60より取得される例について説明した。しかし、ライセンスの導入を伴わずに、販売パッケージのインストールのみが行われてもよい。また、販売パッケージは、必ずしもパッケージ管理サーバ60より取得されたものでなくてもよい。例えば、何らかのルート(例えば、Webサイトからのダウンロード等)で機器管理装置10にダウンロードされ、補助記憶装置102に保存されている販売パッケージがインストール対象とされてもよい。そこで、図21では、斯かる販売パッケージについてインストールのみが実行される場合の処理手順について説明する。
図21は、機器管理装置に保存されている販売パッケージのインストール処理の処理手順を説明するためのシーケンス図である。
ステップS201において、UI制御部111は、インストール対象とする販売パッケージの指定を作業者より受け付ける。当該指定は、例えば、補助記憶装置102に記録されている販売パッケージの一覧画面をUI制御部111が表示させ、当該一覧画面を介して行われる。続いて、UI制御部111は、例えば、インストール対象として指定された販売パッケージ(以下、「カレント販売パッケージ」という。)の販売パッケージ情報ファイル内に記録されている情報を含む確認画面を表示装置106に表示させ、カレント販売パッケージの内容を作業者に確認させる(S202)。
作業者によってインストール処理の継続指示が入力されると(例えば、確認画面においてOKボタンが押下されると)、インストール先受付部113は、カンレント販売パッケージのインストール先とする画像形成装置20の選択を受け付ける(S203)。当該選択は、図8のステップS101と同様でよい。
続いて、機器情報取得部112は、選択された各画像形成装置20より機器情報を取得する(S204、S205)。機器情報の取得の詳細については、図8のステップS102及びS103と同様でよい。続いて、インストール制御部114は、選択された画像形成装置20ごとに、カレント販売パッケージのインストール要求を送信し(S206−1)、インストール処理の処理結果の問い合わせを行う(S206−2)。ステップS206−1は、図8のステップS122−4と同様でよい。ステップS206−2は、図8のステップS122−5と同様でよい。
なお、図21の処理によってインストールされた販売パッケージがライセンスを必要とするものである場合、別途ライセンスの導入処理を実行すればよい。この場合のライセンスの導入処理の処理手順は、図8においてインストールに関するステップを除いたものでよい。
次に、ライセンス更新処理について説明する。時限ライセンスの場合であって、更に継続して当該時限ライセンスに係る商品を利用したい場合、ユーザはライセンスの更新処理を実行することにより、当該商品のライセンス期間を延長することができる。
図22は、ライセンスの更新処理を説明するためのシーケンス図である。なお、ライセンスの更新処理においては、図8において利用された外部記憶媒体90とは別の外部記憶媒体90、又は図8において記録されたデータが消去された外部記憶媒体90(以下、「新たな外部記憶媒体」という。)が利用される。すなわち、図22の開始時において、外部記憶媒体90には何も記録されていない。
ステップS401〜S404では、機器管理装置10を用いて、図8のステップS101〜S104と同様の処理が実行される。その結果、外部記憶媒体90には機器管理テーブルが記録され、外部記憶媒体90の記憶内容は図10に示されるような状態となる。但し、ステップS401において選択されるのは、ライセンス(ライセンスファイル)の更新先の画像形成装置20である。
続いて、作業場所はメーカー環境E2に移動し、仲介装置40に外部記憶媒体90がセットされる。
ステップS411において、仲介装置40のUI制御部41は、表示装置に表示させているプロダクトキー入力画面を介して、ライセンスの更新対象の販売パッケージ(以下、「カレント販売パッケージ」という。)のプロダクトキーの入力を受け付ける。続いて、パッケージ情報取得部42は、入力されたプロダクトキーを指定して当該プロダクトキーに係るパッケージ情報をライセンス管理サーバ50より取得する(S412、S413)。パッケージ情報の取得処理については、図8のステップS112及びS113と同様でよい。
パッケージ情報取得部42によってパッケージ情報が取得されると、書込部49は、現在の処理状態を外部記憶媒体90に記録する(S414)。具体的には、書込部49は、プロダクトキーと当該パッケージ情報とを外部記憶媒体90に記録する。その結果、外部記憶媒体90の記憶内容は、図14に示されるような状態となる。続いて、UI制御部41は、受信されたパッケージ情報を含む画面(確認画面)を表示装置に表示させ、更新対象とするライセンスの内容を作業者に確認させる(S415)。
作業者によって、ライセンスの更新処理の継続指示が入力されると(例えば、確認画面においてOKボタンが押下されると)、外部記憶媒体90の機器管理テーブルに機器情報が記録されている画像形成装置20ごとにライセンスの更新処理が実行される(S416)。
すなわち、ライセンス更新部45は、ステップS411において入力されたプロダクトキーと、カレント販売パッケージのプロダクトIDと、処理対象の画像形成装置20(カレント機器)の機体番号とを指定して、ライセンスの更新要求(新たなライセンスファイルの生成要求)をライセンス管理サーバ50に送信する(S416−1)。ライセンス管理サーバ50のライセンス管理部52は、ライセンスの更新要求を受信に応じ、ライセンスの更新処理を実行する。具体的には、ライセンス管理テーブル53において、当該更新要求において指定されているプロダクトキー、プロダクトID、及び機体番号に対応するレコードのライセンス形態が時限ライセンスである場合には、ライセンス管理部52は、当該レコードのライセンス有効期限及びライセンス発行日を更新する。また、ライセンス管理部52は、当該レコードのステータスがチェックインである場合は当該ステータスをチェックアウトに更新する。その際、新たなライセンス有効期限は、今まで登録されていたライセンス有効期限及び現時点(当日)のいずれか遅い方に当該レコードのライセンス有効期間を加算することに得られる時期とされる。また、新たなライセンス発行日は当日の年月日とされる。なお、複数のプロダクトIDが指定されている場合、複数のレコードに関して更新が行われる。
続いて、ライセンス管理部52は、ライセンス管理テーブル53において更新されたレコードごとに(すなわち、更新対象とされた販売パッケージごとに)、当該レコードに記録されているプロダクトID、機体番号、及び有効期限を含むライセンスファイルを生成し、当該ライセンスファイルをライセンス更新部45に返信する(S416−2)。
続いて、書込部49は、現在の処理状態を外部記憶媒体90に記録する(S416−3)。具体的には、書込部49は、返信されたライセンスファイルを格納したライセンス書庫ファイルを外部記憶媒体90に記録する。書込部49は、また、ライセンスの更新に成功した場合は、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値を、ライセンスの更新が完了したことを示す値(「ライセンス更新完了」)に更新する。
以上でメーカー環境E2における作業は完了する。続いて、作業者は、ユーザ環境E1に移動する。また、新たに発行されたライセンスファイル等が記録された外部記憶媒体90は、機器管理装置10にセットされる。
機器管理装置10の読込部119は、外部記憶媒体90のセットに応じ、当該外部記憶媒体90より機器管理テーブルを取得する(S421)。続いて、機器管理テーブルにおいて、作業ステータスの値が「ライセンス更新完了」である画像形成装置20ごとに、図8のステップS122−7〜S122−9と同様の処理が実行される(S422−1〜S422−3)。その結果、画像形成装置20では、更新されたライセンスに係るライセンスファイルによって古いライセンスファイルが置き換えられ、当該ライセンスファイルに係る販売パッケージの利用期間が延長される。
なお、ライセンスの更新に対する課金は、例えば、ライセンス管理部52がライセンス管理テーブル53を定期的に監視することにより行われる。具体的には、ライセンス管理テーブル53において、ライセンス発行日が前回の課金時より後であるレコードが存在する場合、当該レコードに関するライセンスに対して課金が行われる。
次に、不要となった販売パッケージのアンインストール及びライセンスの解放に関する処理について説明する。
図23は、販売パッケージのアンインストール及びライセンスの解放処理の処理手順を説明するためのシーケンス図である。同図では、まず、メーカー環境E2において作業が行われる。したがって、仲介装置40に新たな外部記憶媒体90がセットされる。
ステップS501において、仲介装置40のUI制御部41は、表示装置に表示させているアンインストール画面を介してアンインストール対象のプロダクトキーの入力をユーザより受け付ける。続いて、パッケージ情報取得部42は、入力されたプロダクトキーを指定して当該プロダクトキーに係るパッケージ情報の取得要求をライセンス管理サーバ50に送信する(S502)。
続いて、ライセンス管理サーバ50のライセンス管理部52は、受信されたプロダクトキーに係るレコード(ライセンス管理テーブル53のレコード)に記録されている情報(パッケージ情報)をパッケージ情報取得部42に返信する(S503)。当該プロダクトキーがグループライセンスに係るものである場合、複数の販売パッケージに関するパッケージ情報が返信される。
パッケージ情報取得部42によってパッケージ情報が受信されると、書込部49は、現在の処理状態を外部記憶媒体90に記録する(S504)。具体的には、書込部49は、プロダクトキーと、当該パッケージ情報とを外部記憶媒体90に記録する。なお、当該プロダクトキーがグループライセンスに係るものである場合、すなわち、複数の販売パッケージに関するパッケージ情報が受信され、外部記憶媒体90に記録される。
以上の処理の完了後、作業者は、ユーザ環境E1に移動する。したがって、外部記憶媒体90は、機器管理装置10にセットされる。
機器管理装置10の読込部119は、外部記憶媒体90のセットに応じ、当該外部記憶媒体90よりパッケージ情報を取得する。UI制御部111は、パッケージ情報が複数有る場合、当該販売パッケージの一覧情報を含む販売パッケージ選択画面を表示装置106に表示させ、アンインストール対象とする販売パッケージをユーザに選択させる(S511)。以下、選択された販売パッケージを「カレント販売パッケージ」という。
続いて、機器情報取得部112は、各画像形成装置20に対して機器情報の取得要求を送信する(S512)。各画像形成装置20の機器情報発行部202は、機器情報の取得要求に応じ、インストール情報管理テーブル209に記録されている情報を取得し、取得された情報と当該画像形成装置20の機体番号とを含む情報を機器情報として機器情報取得部112に返信する(S513)。
続いて、アンインストール先判定部116は、外部記憶媒体90より読み込まれたパッケージ情報を、ステップS513で各画像形成装置20より取得された機器情報と照合し、当該パッケージ情報に係る販売パッケージがインストールされている画像形成装置20を判定する(S514)。具体的には、当該パッケージ情報に含まれているプロダクトID(販売パッケージのプロダクトID)を含む機器情報に係る画像形成装置20が、当該販売パッケージのインストールされている画像形成装置20(すなわち、販売パッケージのアンインストール先の画像形成装置20)であると判定される。
続いて、書込部120は、現在の処理状態を外部記憶媒体90に記録する(S515)。具体的には、書込部120は、機体番号及び機器情報を販売パッケージのアンインストール先の画像形成装置20ごとに含む機器管理テーブルを外部記憶媒体90に記録(生成)する。
続くステップS516は、販売パッケージのアンインストール先の画像形成装置20ごとに実行されるループ処理である。ループ処理において処理対象とされる画像形成装置20を以下、「カレント機器」という。
ステップS516−1において、ライセンス削除制御部118は、カレント販売パッケージのプロダクトIDを指定して、ライセンスファイルの削除要求をカレント機器に送信する。カレント機器のライセンス削除部206は、当該要求に応じ、指定されたプロダクトIDに係るライセンスファイルを削除する。
続いて、ライセンス削除制御部118は、ライセンスファイルの削除処理の結果をカレント機器に問い合わせる(S516−2)。当該問い合わせ(ポーリング)は、カレント機器においてライセンスファイルの削除処理が完了し、当該削除処理の処理結果が返信されるまで繰り返される。
続いて、書込部120は、現在の処理状態を外部記憶媒体90に記録する(S516−3)。具体的には、ライセンスファイルの削除に成功した場合、書込部120は、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値を、ライセンスファイルの削除が完了したことを示す値(「ライセンス削除完了」)に更新する。一方、ライセンスファイルの削除に失敗した場合、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値は更新されず、カレント機器については以降の処理は実行されない。したがって、次の画像形成装置20についてステップS516−1以降が実行される。
続いて、アンインストール制御部117は、カレント販売パッケージのプロダクトIDを指定して、アンインストール要求(販売パッケージの削除要求)をカレント機器に送信する(S516−4)。カレント機器のアンインストール部205は、当該要求に応じ、指定されたプロダクトIDに係る販売パッケージをアンインストール(削除)する。
続いて、アンインストール制御部117は、カレント販売パッケージのアンインストール結果をカレント機器に問い合わせる(S516−5)。当該問い合わせ(ポーリング)は、カレント機器においてアンインストールが完了し、アンインストール結果が返信されるまで繰り返される。
続いて、書込部120は、現在の処理状態を外部記憶媒体90に記録する(S517)。具体的には、カレント販売パッケージのアンインストールに成功した場合、書込部120は、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値を、カレント販売パッケージのアンインストールが完了したことを示す値(「アンインストール完了」)に更新する。一方、カレント販売パッケージのアンインストールに失敗した場合、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値は更新されず、カレント機器については以降の処理は実行されない。したがって、次の画像形成装置20についてステップS516−1以降が実行される。
以上の処理が完了すると、作業者は、再びメーカー環境E2に移動する。したがって、外部記憶媒体90は、仲介装置40にセットされる。
仲介装置40の読込部48は、外部記憶媒体90のセットに応じ、当該外部記憶媒体90より機器管理テーブル及びパッケージ情報を取得する(S521)。続いて、ライセンス削除制御部118は、取得されたパッケージ情報に含まれているカレント販売パッケージのプロダクトIDと、機器管理テーブルの作業ステータスの値が「アンインストール完了」又は「ライセンス削除完了」である全ての画像形成装置20の機体番号とを指定してライセンスの解放要求をライセンス管理サーバ50のライセンス管理部52に送信する(S522)。
ライセンス管理部52は、ライセンス管理テーブル53において、指定されたプロダクトID及び機体番号に係るレコードのステータスを「チェックアウト」から「チェックイン」に変更する。すなわち、当該ライセンスは使用されていないことを示す情報がライセンス管理テーブル53に記録される。なお、ライセンスの解放は、ステータスが「チェックアウト」のライセンスに関して実行可能である。したがって、対象となるレコードのステータスが「チェックアウト」でない場合、ライセンス管理部52は、ライセンスの解放は失敗したと判断する。
続いて、ライセンス管理部52は、ライセンスの解放の処理結果(処理の成否)を画像形成装置20のライセンス削除制御部118に返信する(S523)。
続いて、書込部49は、現在の処理状態を外部記憶媒体90に記録する(S524)。具体的には、ライセンスの解放に成功した場合、書込部49は、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値を、ライセンスの解放が完了したことを示す値(「ライセンス解放完了」)に更新する。一方、ライセンスの解放に失敗した場合、機器管理テーブルのカレント機器に対応するレコードの作業ステータスの値は更新されない。
図23の処理の実行により、アンインストール先とされた画像形成装置20では当該販売パッケージに含まれる機能パッケージの利用ができなくなる。一方、当該販売パッケージのライセンスは解放されたため、当該ライセンスの有効期限内であれば必要に応じて他の画像形成装置20において当該ライセンスを利用することができる。すなわち、ライセンスの解放処理は、或る画像形成装置20における販売パッケージのライセンスを当該画像形成装置20のリース期間切れ等の理由により他の画像形成装置20に移動させたい場合に特に有用である。
上述したように、本実施の形態によれば、販売パッケージのインストール、ライセンスの導入、ライセンスの更新、アンインストール、ライセンスの解放等のライセンスの操作について、ライセンス管理サーバ50及びパッケージ管理サーバ60と、機器管理装置10とがネットワーク通信できない状態であっても、仲介装置40及び外部記憶媒体90を両者の情報交換の媒介として、適切に上記各処理を実現することができる。
また、本実施の形態における機器管理システム1によれば、プロダクトキーの入力に応じ、画像形成装置20に対する当該プロダクトキーに係る販売パッケージのインストール及びライセンスファイルの導入等を同時に行うことができる。したがって、作業者に対する作業負担を著しく軽減することができる。
また、本実施の形態の機器管理装置10によれば、複数の画像形成装置20に対して一括してインストール及びライセンスの導入等を行うことができる。斯かる点においても作業者の作業負担の軽減を期待することができる。
なお、本実施の形態においては画像形成装置20を電子機器の一例として説明したが、本発明の適用範囲は画像形成装置20に限定されない。プログラムを追加(インストール)可能な電子機器であれば、本発明は有効に適用されうる。
また、携帯可能な外部記憶媒体90の代わりに、ネットワーク接続可能な外部記憶装置が利用されてもよい。例えば、ユーザ環境E1において、外部記憶装置はインターネット等を介して仲介装置40と接続可能としておく。機器管理装置10は、外部記憶装置とLAN(Local Area Network)等によって接続する。そうすることにより、仲介装置40と機器管理装置10との間で、外部記憶装置を共用することができる。この場合、仲介装置40及び機器管理装置10のそれぞれは、外部記憶装置を監視し、他方の装置によって情報の書き込みが行われたら、自動的に自らの処理を開始するようにしてもよい。
また、本実施の形態は、ライセンス管理サーバ50及びパッケージ管理サーバ60と、機器管理装置10とがネットワーク通信可能な環境において適用されてもよい。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。