以下、図面に基づいて本発明の実施の形態を説明する。図1は、第一の実施の形態における機器管理システム構成例を示す図である。同図の機器管理システム1は、ユーザ環境E1とメーカー環境E2との二つのシステム環境に大別される。ユーザ環境E1とメーカー環境E2とは、インターネット等の広域的なネットワーク80を介して接続されている。
ユーザ環境E1は、被インストール機器としての画像形成装置40のユーザ(顧客)のシステム環境である。例えば、ユーザ環境E1は、画像形成装置40のユーザである企業又はオフィス等に相当する。ユーザ環境E1は、一台以上の画像形成装置40及び一台以上のユーザPC50を有する。画像形成装置40は、印刷、スキャン、コピー、及びファクス送受信等の複数の機能を一台の筐体において実現する複合機である。但し、いずれか一つの機能のみを実現可能な機器であってもよい。画像形成装置40は、ソフトウェアコンポーネント(以下、単に「コンポーネント」という。)を追加又は更新することにより随時機能拡張等を図ることができる。ユーザPC50は、画像形成装置40に追加するコンポーネントの購入手続き等を行うために利用されるコンピュータである。なお、ユーザ環境E1は、ユーザ数(企業又はオフィス単位のユーザ数)に応じて複数存在しうる。
一方、メーカー環境E2は、画像形成装置40に追加されるコンポーネントの販売者側のシステム環境である。例えば、メーカー環境E2は、画像形成装置40のメーカーによって運営される。メーカー環境E2は、ライセンス管理サーバ10、販売サーバ20、及びダウンロードサーバ30を有する。販売サーバ20は、ユーザ環境E1よりコンポーネントの購入申請を受け付けるコンピュータである。販売サーバ20は、画像形成装置40の販売地域(例えば、米国、欧州、日本、日本を除くアジア等)ごとに設置され、各販売サーバ20が担当する販売地域に属するユーザ環境E1より購入申請を受け付ける。
ダウンロードサーバ30は、コンポーネントの実体を管理するコンピュータである。ユーザ環境E1は、購入申請したコンポーネントの実体をダウンロードサーバ30よりダウンロードする。ライセンス管理サーバ10は、購入されたコンポーネントのライセンス(利用権限)を管理するコンピュータである。
本実施の形態におけるコンポーネントは、販売パッケージと呼ばれる単位で流通する。すなわち、各販売パッケージはそれぞれ単独で流通する。また、複数の販売パッケージの集合(販売パッケージの組み合わせ)がセットとして流通単位となる場合もある。一又は複数の販売パッケージの集合(組み合わせ)によって構成される流通単位を、本実施の形態では「グループ」という。
図2は、販売パッケージの構成例を示す図である。同図に示されるように、一つの販売パッケージは、一つの販売パッケージ情報ファイルと、一つ以上の機能パッケージを含む書庫ファイルとして構成される。
販売パッケージ情報ファイルは、販売パッケージの属性情報(販売パッケージ情報)が記録されたファイルである。
図3は、販売パッケージ情報の構成例を示す図である。同図において、販売パッケージ情報は、プロダクトID、バージョン、名称、説明、ベンダ名、及び配布タイプ等を含む。
プロダクトIDは、各販売パッケージ及び各機能パッケージに一意に割り当てられた識別子(製品識別子)である。バージョンは、販売パッケージのバージョン番号である。説明は、販売パッケージに関する説明である。ベンダ名は、販売パッケージのベンダ(開発者)の名前である。名称は、販売パッケージの名前(販売パッケージ名)である。配布タイプは、アクティベーション(ライセンスの認証)の要否を示す情報である。アクティベーションが不要な販売パッケージは無料で使用することができる。なお、名称、説明、及びベンダ名については、言語種別ごとに、当該言語種別に応じた文字コードによって記録されている。すなわち、販売パッケージが世界各国において流通することを考慮して、その名称、説明、及びベンダ名については多言語対応されている。
図2に戻る。機能パッケージは、機能単位でパッケージ化されたソフトウェアパッケージである。一つの機能パッケージは、一つの機能パッケージ情報ファイルと一つのコンポーネントの実体とを含む書庫ファイル(例えば、JAR(Java(登録商標) Archive)ファイル)として構成される。
機能パッケージ情報ファイルは、機能パッケージの属性情報(機能パッケージ情報)が記録されたファイルである。
図4は、機能パッケージ情報の構成例を示す図である。同図において、機能パッケージ情報は、プロダクトID、バージョン、名称、説明、ベンダ名、配布タイプ、及びパッケージ依存情報等を含む。
プロダクトIDは、機能パッケージに対するプロダクトIDである。バージョンは、機能パッケージのバージョン番号である。名称は、機能パッケージの名前(機能パッケージ名)である。説明は、機能パッケージに関する説明である。ベンダ名は、機能パッケージのベンダ(開発者)の名前である。配布タイプは、機能パッケージに対するアクティベーションの要否を示す情報である。アクティベーションが不要な機能パッケージは、無料で使用することができる。パッケージ依存情報は、機能パッケージが依存(又は利用)する(当該機能パッケージの依存先の)他の機能パッケージのプロダクトIDである。一つの機能パッケージは、複数の他の機能パッケージに依存しうる。機能パッケージ情報に関しても、販売パッケージ情報と同様、名称、説明、及びベンダ名については、言語種別ごとに、当該言語種別に応じた文字コードによって記録されている。
なお、同図では、三つの販売パッケージによって1つのグループが構成されている。グループに属する販売パッケージであっても単独で流通しうる。
図5は、第一の実施の形態の機器管理システムの機能構成例を示す図である。同図において、販売サーバ20は、商品登録部21、販売管理部22、プロダクトキー通知部23、及び商品マスタ23を有する。
商品登録部21は、ライセンス管理サーバ10において一元的に管理されている販売パッケージの一覧情報をダウンロードし、当該一覧情報に基づいて作業者によって入力される商品の構成情報等を商品マスタ23に登録する。販売管理部22は、商品マスタ23に商品情報が登録されている商品について、ユーザPC50より購入申請を受け付ける。販売管理部22は、また、購入申請に対するプロダクトキーをライセンス管理サーバ10に発行させる。プロダクトキー通知部24は、発行されたプロダクトキーを、購入申請に対する応答としてユーザPC50に送信する。
本実施の形態において、商品とは、販売パッケージ又はグループと、そのライセンスの内容とによって構成される概念である。したがって、同一の販売パッケージであってもライセンスの内容(ライセンス形態、ライセンス有効期間、ライセンスボリューム数等)が異なれば、異なる商品として扱われる。以下ライセンスの内容に関係する情報をライセンス情報という。
また、プロダクトキーとは、商品が購入されるごとに一意に発行される(又は割り当てられる)識別子である。プロダクトキーは、商品に含まれる販売パッケージに対するライセンス(利用権限)を識別する情報(ライセンス識別子)として、また、商品の正当な購入者であることを証明するための情報として用いられる。なお、本実施の形態において、プロダクトIDとプロダクトキーとは明確に区別される。すなわち、プロダクトIDは、製品としての販売パッケージの異同を区別するものであるのに対し、プロダクトキーは、商品の購入という行為を区別するためのものである。したがって、同一のプロダクトIDの販売パッケージに対し、商品の購入のたびに異なるプロダクトキーが発行される。
画像形成装置40は、インストール部421、ライセンス更新部422、パッケージ更新部423、ライセンスチェック部424、ディアクティベーション部425、及びUI制御部426、及びインストール情報管理テーブル427等を有する。
インストール部421は、プロダクトキーの入力に応じ、当該プロダクトキーに対応する販売パッケージをインストールするための一連の処理を制御する。例えば、インストール部421は、インストール対象の販売パッケージに含まれている機能パッケージの依存関係の妥当性の判定をライセンス管理サーバ10に要求したり、インストール対象の販売パッケージをダウンロードサーバ30よりダウンロードしたり、インストール対象の販売パッケージに対するライセンスファイル90をライセンス管理サーバ10より取得したりする。
ライセンスファイル90とは、販売パッケージに対するライセンスを証明するデータ(販売パッケージの利用を許可するためのデータ)が記録されたファイルである。すなわち、本実施の形態における販売パッケージ(コンポーネント)は、その実体を入手するだけでは画像形成装置40において利用することはできない。販売パッケージは、ライセンスファイル90が画像形成装置40に導入されることにより利用可能となる。
ライセンス更新部422は、画像形成装置40にインストールされている販売パッケージに対するライセンスの有効期限を更新(延長)するための処理(ライセンス更新処理)を制御する。パッケージ更新部423は、画像形成装置40にインストールされている販売パッケージをバージョンアップするための処理(販売パッケージ更新処理)を制御する。ライセンスチェック部424は、販売パッケージが利用される際に、ライセンスファイル90に基づいて利用の許否を判定する。ディアクティベーション部425は、画像形成装置40にインストールされている販売パッケージのディアクティベーションを行う。具体的には、ディアクティベーション部425は、ディアクティベーションの対象とされた販売パッケージと当該販売パッケージに対するライセンスファイル90との削除等を行う。UI制御部426は、画像形成装置40の操作パネルの表示制御等を行う。インストール情報管理テーブル427は、画像形成装置40にインストールされている販売パッケージに関する情報を管理するテーブルであり、画像形成装置40の記憶装置に保存されている。
ライセンス管理サーバ10は、アクティベーションサーバ部11及びコンポーネントサーバ部15を有する。アクティベーションサーバ部11は、販売サーバ連携部111、プロダクトキー発行部112、プロダクトキー検証部113、ライセンス発行部115、及びディアクティベーション部116、販売サーバ認証部117、販売サイトマスタ118、販売パッケージマスタ119、グループIDマスタ120、ライセンス管理テーブル121、グループ名称マスタ122等を有する。
販売サーバ連携部111は、販売サーバ20より要求された処理や、販売サーバ20より通知される情報に応じた処理等を実行する。プロダクトキー発行部112は、販売サーバ20の販売管理部22からの要求に応じ、プロダクトキーを生成する。プロダクトキー発行部112は、生成されたプロダクトキーと当該プロダクトキーによって識別されるライセンスに関する情報をライセンス管理テーブル121に登録する。プロダクトキー検証部113は、販売パッケージのダウンロードの際等に画像形成装置40に対して入力されたプロダクトキーの有効性をライセンス管理テーブル121等を用いて検証する。
ライセンス発行部115は、販売パッケージに対するライセンスの発行を行う。ライセンスの発行に伴って、ライセンス管理テーブル121が更新され、ライセンスファイル90が生成される。ディアクティベーション部116は、画像形成装置40のディアクティベーション部425からのディアクティベーション要求に応じ、当該要求の対象とされたライセンスを解放する。販売サーバ認証部117は、販売サイトマスタ118を用いて販売サーバ20の認証を行う。販売パッケージマスタ119には、販売パッケージの一覧情報が登録されている。グループIDマスタ120には、グループと販売パッケージとの関連付け情報(すなわち、グループの構成情報)が登録されている。グループ名称マスタ122には、各グループの名称(グループ名)が登録されている。なお、販売サイトマスタ118、販売パッケージマスタ119、グループIDマスタ120、ライセンス管理テーブル121、及びグループ名称マスタ122は、ライセンス管理サーバ10の記憶装置に保存されている。
コンポーネントサーバ部15は、依存関係判定部151、インストール支援部152、パッケージ更新支援部153、コンポーネント管理部154、コンポーネント管理テーブル155、及び依存関係管理テーブル156等を有する。依存関係判定部151は、インストール対象又は更新対象とされている販売パッケージに含まれている機能パッケージが依存する他の機能パッケージが、既に画像形成装置40にインストールされているか否か等を判定する。より詳しくは、依存関係判定部151は、画像形成装置40のインストール部421からの要求に応じ、インストール対象の販売パッケージに含まれている機能パッケージの依存関係が、既に画像形成装置40にインストールされている機能パッケージ等によって解決されるか否かをコンポーネント管理テーブル155及び依存関係管理テーブル156を参照して判定する。インストール支援部152は、画像形成装置40への販売パッケージのインストールを支援するための処理を行う。例えば、インストール支援部152は、インストール対象とする販売パッケージを選択させるための画面を表示させるためのHTMLデータ(インストール一覧画面データ)を生成し、当該インストール一覧画面データを画像形成装置40のインストール部421に提供する。パッケージ更新支援部153は、画像形成装置40における販売パッケージの更新(バージョンアップ)を支援するための処理を行う。例えば、パッケージ更新支援部153は、更新対象とする販売パッケージの選択させるための画面を表示させるためのHTMLデータ(更新一覧画面データ)を生成し、当該更新一覧画面データを画像形成装置40のパッケージ更新部423に提供する。コンポーネント管理部154は、ダウンロードサーバ30の販売パッケージ管理部32に保存されている販売パッケージを定期的に取得し、販売パッケージの構成情報や販売パッケージに含まれている各機能パッケージの依存情報等をコンポーネント管理テーブル155又は依存関係管理テーブル156に登録する。なお、コンポーネント管理テーブル155及び依存関係管理テーブル156は、ライセンス管理サーバ10の記憶装置に保存されている。
各機能パッケージが自己の依存先の情報を持ち、ライセンス管理サーバ10が、各機能パッケージの依存先の情報に基づいて依存関係管理テーブル156に機能パッケージ間の依存関係を登録することにより、複雑な依存関係に関する情報を簡便に登録できる。例えば、機能パッケージ(また、機能パッケージを含む販売パッケージ)の製造者により製造された機能パッケージがダウンロードサーバ30に配置されると、ライセンス管理サーバ10は、機能パッケージに含まれるパッケージ依存情報をダウンロードサーバ30より取得し、自動的に機能パッケージ間の依存関係を依存関係管理テーブル156に登録する。したがって、例えば、販売サイトの管理者と、機能パッケージ等の製造者とが異なっている場合であっても、販売サイトの管理者は機能パッケージの依存関係を認識している必要はない。結果として、例えばサードベンダ等による機能パッケージの製造を促進し、販売機会を増やすことができる。
図6は、本発明の実施の形態におけるライセンス管理サーバのハードウェア構成例を示す図である。図6のライセンス管理サーバ10は、それぞれバスBで相互に接続されているドライブ装置100と、補助記憶装置102と、メモリ装置103と、CPU104と、インタフェース装置105とを有する。
ライセンス管理サーバ10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってライセンス管理サーバ10に係る機能(図5に示される各部)を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
なお、ライセンス管理サーバ10に、液晶ディスプレイ又はCRTディスプレイ等の表示装置、及びキーボードやマウス等の入力装置を備えていてもよい。
また、販売サーバ20、ダウンロードサーバ30、及びユーザPC50等も、図6と同様のハードウェア構成を有していればよい。
図7は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図7において、画像形成装置40は、コントローラ41、スキャナ42、プリンタ43、モデム44、操作パネル45、ネットワークインタフェース46、及びSDカードスロット47等のハードウェアを有する。
コントローラ41は、CPU411、RAM412、ROM413、及びHDD414等を有する。ROM413には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。RAM412は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。CPU411は、RAM412にロードされたプログラムを処理することにより、各種の機能(図5に示される各部)を実現する。HDD414には、プログラムやプログラムが利用する各種のデータ等が記録される。
スキャナ42は、原稿より画像データを読み取るためのハードウェアである。プリンタ43は、画像データを印刷用紙に印刷するためのハードウェアである。モデム44は、電話回線に接続するためのハードウェアであり、FAX通信による画像データの送受信を実行するために用いられる。操作パネル45は、ユーザからの入力の受け付けを行うめのボタン等の入力手段や、液晶パネル等の表示手段を備えたハードウェアである。ネットワークインタフェース46は、LAN等のネットワーク(有線又は無線の別は問わない。)に接続するためのハードウェアである。SDカードスロット47は、SDカード80に記録されたプログラムを読み取るために利用される。すなわち、画像形成装置40では、ROM413に記録されたプログラムだけでなく、SDカード80に記録されたプログラムもRAM412にロードされ、実行されうる。
以下、第一の実施の形態の機器管理システム1において実行される処理手順について説明する。図8は、販売サーバによる商品情報の登録処理を説明するためのシーケンス図である。販売対象とする商品の構成は、販売地域ごとに決定される。図8の処理は、或る販売地域において販売対象の商品の構成が決定される際に実行される処理である。
例えば、販売サイトの管理者により、商品情報の登録開始指示が販売サーバ20に入力されると、販売サーバ20の商品登録部21は、販売サーバ20の記憶装置に記憶されているドメイン名、販売サイトID、及びパスワードを指定して、ライセンス管理サーバ10のアクティベーションサーバ部11に認証要求を送信する(S11)。
認証要求を受信した販売サーバ認証部117は、認証要求に指定されている情報と販売サイトマスタ118とに基づいて販売サーバ20の認証を行う。
図9は、販売サイトマスタの構成例を示す図である。同図に示されるように、販売サイトマスタ118には、販売地域ごとに、ドメイン名、販売サイトID、及びパスワードが登録されている。
販売サーバ認証部117は、認証要求に含まれているドメイン名、販売サイトID、及びパスワードと、販売サイトマスタ118に含まれているドメイン名、販売サイトID、及びパスワードとを照合することにより販売サーバ20の認証を行う。認証に成功した場合、販売サーバ認証部117は、セッションを開設し、セッションIDを販売管理部22に返信する(S12)。以降における販売管理部22とアクティベーションサーバ部11との通信は、セッションIDに基づいて行われる。認証に成功すると(セッションIDが返信されると)、商品登録部21は、商品情報編集画面を販売サーバ20の表示装置に表示させる(S13)。
図10は、商品情報編集画面の例を示す図である。商品情報編集画面210では、販売パッケージについて、ドメイン名、プロダクトID、プロダクト単位ID種別、ライセンス形態、ライセンス有効期間、ボリューム数、品種コード、及び商品名称等の入力が可能とされている。
例えば、商品情報編集画面210において、管理者によって選択ボタン2112がクリックされると、商品登録部21は、販売サイトの一覧の取得要求をアクティベーションサーバ部11の販売サーバ連携部111に送信する(S14)。販売サーバ連携部111は、販売サイトの一覧の取得要求の受信に応じ、販売サイト及びドメイン名の一覧を販売サイトマスタ118より取得し、商品登録部21に返信する(S15)。
商品登録部21は、受信したドメイン名の一覧を販売サーバ20の表示装置に表示させる(S16)。当該一覧において、ドメイン名が選択されると、商品登録部21は、選択されたドメイン名を、商品情報編集画面210のテキストボックス2111に表示させる(S17)。
続いて、管理者によって選択ボタン2114がクリックされると、商品登録部21は、販売パッケージ及びグループの一覧情報の取得要求をアクティベーションサーバ部11の販売サーバ連携部111に送信する(S18)。販売サーバ連携部111は、販売パッケージ及びグループの一覧情報の取得要求の受信に応じ、販売パッケージの一覧情報を販売パッケージマスタ119より取得し、グループの一覧情報をグループIDマスタ120及びグループ名称マスタ122等より取得する。
図11は、販売パッケージマスタの構成例を示す図である。同図に示されるように、販売パッケージマスタ119には、販売パッケージごとに、プロダクトID、販売パッケージ名、及びベンダ名等が登録されている。販売パッケージ名及びベンダ名については、言語種別ごと(例えば、日本語や英語ごと)に登録されている。ステップS14で返信される一覧情報には、販売パッケージごとにこれらの情報が含まれる。但し、販売パッケージ及びベンダ名は、販売サーバ20の言語環境に応じたもののみが返信されてもよい。販売サーバ20の言語環境は、ステップS13の要求において商品登録部21が指定すればよい。または、通信プロトコルが備える機能に基づいて販売サーバ20の言語環境が判定されてもよい。例えば、HTTP通信においては、Webブラウザの言語環境に関するパラメータがWebサーバ側に通知される。このような通信プロトコルが利用されている場合、斯かるパラメータに基づいて販売サーバ20の言語環境が判定されてもよい。なお、販売パッケージマスタ119への情報の登録は、例えば、ライセンス管理サーバ10の管理者によって予め行われる。
また、図12は、グループIDマスタの構成例を示す図である。同図に示されるように、グループIDマスタ120には、グループIDと販売サイトIDとの組み合わせごとに、当該グループIDに係るグループの構成情報と削除フラグとが記録されている。グループIDが販売サイトIDとの組み合わせごとに構成情報等が記録されているのは、グループIDは、販売サイトごとに一意だからである。グループの構成情報としては、当該グループのグループIDに対して、当該グループに属する(当該グループを構成する)販売パッケージのプロダクトIDが登録されている。削除フラグは、グループIDマスタ120に登録されたグループIDの削除(すなわち、グループの削除)の可否又は許否を示すデータであり、「ON」又は「OFF」の値をとる。「ON」は削除が可能であること又は削除が許可されることを示す。「OFF」は削除が不可能であること又は削除が許可されないこと(禁止されること)を示す。グループに関する商品が購入された場合、当該グループの削除は不可能となる。したがって、削除フラグの初期値は「ON」である。グループが登録された時点は、当該グループに係る商品は購入されていないからである。
なお、図12では、同一のグループID(例えば、001)に係るレコードが複数登録された例が示されている。同図のグループIDマスタ120では、一つのレコードには一つの販売パッケージのプロダクトIDが登録されるからである。すなわち、同図では、グループID「001」のグループについては、三つの販売パッケージが属する例が示されている。
更に、図13は、グループ名称マスタの構成例を示す図である。同図に示されるように、グループ名称マスタ122には、グループID及び言語種別ごとに、グループの名称(グループ名)が登録されている。すなわち、グループ名称マスタ122には、各グループについて、言語種別ごとのグループ名が登録されている。
販売サーバ連携部111は、グループIDマスタ120に登録されているグループIDのうち、認証要求時(S11)に受信された販売サイトIDに係るグループIDをグループIDマスタより抽出し、抽出されたグループIDに対するグループ名をグループ名称マスタ122より取得することで、グループの一覧情報を生成する。なお、当該一覧情報に含まれるグループ名は、販売サーバ20の言語環境に応じたものに限定されてもよい。
続いて、販売サーバ連携部111は、販売パッケージ及びグループの一覧情報を商品登録部21に返信する(S19)。商品登録部21は、受信した販売パッケージ及びグループの一覧情報に基づいて、販売パッケージ及びグループの一覧画面(例えば、販売パッケージ名及びグループ名の一覧を含む画面)を販売サーバ20の表示装置に表示させる(S20)。当該一覧画面において、いずれかの販売パッケージが選択されると、商品登録部21は、選択された販売パッケージのプロダクトID、販売パッケージ名を、商品情報編集画面210のテキストボックス2113、テキストボックス2115に表示させ、テキストボックス2116に「プロダクトID」を表示させる(S21)。なお、テキストボックス2116に表示される文字列は、テキストボックス2113に表示されたIDのプロダクト単位ID種別を示す。プロダクト単位ID種別は、販売パッケージのプロダクトIDとグループのグループIDとの別である。すなわち、商品情報編集画面210は、グループに関する商品情報の編集等にも利用される画面であり、その場合には、テキストボックス2113にグループIDが表示され、テキストボックス2115にはグループ名が表示される。
続いて、商品情報編集画面において、残りの商品情報が管理者によって入力される(S22)。具体的には、ライセンス形態、ライセンス有効期間、ボリューム数、品種コード、及び商品名称等が入力される。ライセンス形態は、商品に関するライセンスについて売り切り型、時限ライセンス、及びトライアルライセンス等の別を示す情報である。売り切り型は、購入後無期限に使用可能なライセンスである。時限ライセンスは、所定期間の間に限り有効な(使用可能な)ライセンスである。トライアルライセンスは、お試し用としての使用に対するライセンスである。ライセンス形態の入力は、リストボックス2117における選択によって行われる。ライセンス有効期間は、ライセンス形態が時限ライセンス又はトライアルライセンスの場合に有効な属性であり、ライセンスが有効な期間を示す。ライセンス有効期間の入力は、テキストボックス2118に対して行われる。ボリューム数は、ライセンスのボリューム数である。ボリューム数が2以上の商品を購入したユーザにはボリュームライセンスが与えられ、当該ユーザは、当該ボリューム数の範囲内で同一の販売パッケージの同時使用が許可される。ボリューム数の入力は、テキストボックス2119に対して行われる。
品種コードは、各商品を一意に識別する識別子である。品種コードの入力は、テキストボックス2120に対して行われる。なお、一つの販売パッケージ又はグループに対して、ライセンス内容(ライセンス情報)が異なる複数の商品を定義可能である。したがって、販売パッケージのプロダクトID又はグループIDと、品種コードとは1対多の関係を有する。商品名称は、商品に対する名前である。商品名称の入力はテキストボックス2122に対して行われる。又は、ボタン2121がクリックされると、商品登録部21は、販売パッケージ名又はグループ名と、ライセンス形態と、ライセンス有効期間とに基づいて、商品名称を自動生成し、生成された商品名称をテキストボックス2122に表示させる。なお、商品情報編集画面210では、テキストボックス2123に対して日本語の商品名称の入力も可能とされている。他の言語種別に対応する商品名称は、別の画面を介して登録される。
商品情報編集画面210において商品情報の入力後、OKボタン2131がクリックされると、商品登録部21は、入力された商品情報を商品マスタ23に登録する(S23)。
図14は、販売サーバにおける商品マスタの構成例を示す図である。同図に示されるように、商品マスタ23は、商品ごとに、品種コード、プロダクト単位ID(プロダクトID又はグループID)、ライセンス形態、ライセンス有効期間、ボリューム数、及び商品名称等を管理するテーブルである。
販売サーバ20の商品マスタ23に商品情報が登録されることにより、当該販売サーバ20の属する販売地域では、商品の販売が可能となる。
続いて、グループの作成処理(グループのグループIDマスタ120及びグループ名称マスタ122への登録処理)について説明する。図15は、グループの作成処理の処理手順を説明するためのシーケンス図である。グループの作成とは、新たなグループを構成する販売パッケージを決定することをいう。
例えば、販売サイトの管理者により、グループの作成開始指示が販売サーバ20に入力されると、販売サーバ20の商品登録部21は、グループ編集画面を販売サーバ20の表示装置に表示させる(S31)。
図16は、グループ編集画面の例を示す図である。同図において、グループ編集画面220は、新たに作成するグループのグループID及びグループ名称の入力が可能とされている。グループIDの入力は、領域221に対して行われる。グループ名称の入力は、領域222に対して行われる。
また、グループ編集画面220では、表223において、新たに作成するグループに含める販売パッケージの指定(すなわち、グループを構成する販売パッケージの組み合わせの指定)が可能とされている。具体的には、ボタン224がクリックされると、表223に新たな一行が追加される。なお、同図では、既に2行追加されているが、初期状態において、表223の行数は0である。続いて、追加された行の選択ボタン225がクリックされると(S32)、商品登録部21は、販売パッケージの一覧情報の取得要求をアクティベーションサーバ部11の販売サーバ連携部111に送信する(S33)。販売サーバ連携部111は、販売パッケージの一覧情報の取得要求の受信に応じ、販売パッケージの一覧情報を販売パッケージマスタ119より取得する。販売サーバ連携部111は、取得された販売パッケージの一覧情報を商品登録部21に返信する(S34)。
商品登録部21は、受信した販売パッケージの一覧情報に基づいて、販売パッケージの一覧画面(例えば、プロダクトID及び販売パッケージ名の一覧を表示させる画面)を販売サーバ20の表示装置に表示させる(S35)。当該一覧画面において、いずれかの販売パッケージが選択されると(S36)、商品登録部21は、選択された販売パッケージのプロダクトID及び販売パッケージ名を、表223において現在操作対象とされている行(選択ボタン225がクリックされた行)に表示させる。これにより、表示上、当該販売パッケージは新たなグループのメンバ(構成要素)に追加される。なお、loop1に含まれるステップ(S32〜S37)は、グループに追加する販売パッケージの数に応じて繰り返し実行される。また、表223に追加された行のいずれかのチェックボタン226がチェックされ、削除ボタン227がクリックされると、当該行に係る販売パッケージは、表示上、当該グループより除去される。
表223における販売パッケージの追加作業の終了後、ボタン228がクリックされると(S38)、商品登録部21は、グループの登録要求を販売サーバ連携部111に送信する(S39)。グループの登録要求には、グループ編集画面220において入力されたグループの構成情報(グループIDとグループに属する販売パッケージのプロダクトIDとを含む情報)と、販売サーバ20の記憶装置に記憶されているドメイン名、販売サイトID、及びパスワードとがパラメータとして含まれる。販売サーバ連携部111は、グループの登録要求に応じ、グループの登録処理を実行する(S40)。具体的には、新たなグループに関して、グループIDマスタ120に構成情報が登録され、グループ名称マスタ122にグループ名等が登録される。グループの登録処理の実行後、販売サーバ連携部111は、当該登録処理の成否を示す応答を商品登録部21に返信する(S41)。
続いて、ステップS40の詳細について説明する。図17は、グループの登録処理の処理手順を説明するための図である。
ステップS40aにおいて、販売サーバ連携部111は、受信されたグループ登録要求に、必要なパラメータが含まれているか否かをチェックする。必要なパラメータが含まれている場合、販売サーバ連携部111は、販売サーバ20(販売サイト)の認証を販売サーバ認証部117に実行させる(S40b)。販売サーバ認証部117は、グループの登録要求に含まれているドメイン名、販売サイトID、及びパスワードを、販売サイトマスタ118と照合することにより販売サーバ20の認証を実行する。
販売サーバ20が認証されると、販売サーバ連携部111は、グループの登録要求に含まれているグループID及び販売サイトIDの組み合わせが、グループIDマスタ120に既に登録済みであるか否かを確認する(S40c)。当該グループID及び販売サイトIDの組み合わせが未登録である場合、販売サーバ連携部111は、グループの登録要求に含まれているグループID、販売サイトID、及び販売パッケージのプロダクトIDを含むレコードをグループIDマスタ120に登録する(S40d)。販売サーバ連携部111は、登録されたレコードの削除フラグを「ON」とする。
また、販売サーバ連携部111は、グループの登録要求に含まれているグループIDとグループ名称とを含むレコードを、グループ名称マスタ122に登録する。なお、本実施の形態において、グループの作成の際に登録されるグループ名称は、日本語のグループ名称である。したがって、当該レコードの言語種別は「日本語」とされる。
続いて、販売サーバ連携部111は、グループの登録の成功を示す応答を商品登録部21に返信する(S40e)。一方、ステップS40aにおいて、必要なパラメータが無いと判定された場合、ステップS40bにおいて販売サーバ20の認証に失敗した場合、又はグループID及び販売サイトIDの組み合わせが既にグループIDマスタ120に登録されている場合は、販売サーバ連携部111は、グループの登録に失敗したことを示すエラー応答を商品登録部21に返信する(S40f)。
このように、グループに関しては、グループの構成情報(グループと販売パッケージとの関連付け情報)が管理対象とされ、グループ自体の実体(例えば、グループに属する販売パッケージの集合を書庫化したもの等)は生成されない。したがって、グループの作成による記憶容量の消費を抑制することができる。
なお、作成されたグループに対して商品情報を登録する場合は、当該グループを対象として(すなわち、ステップS21において当該グループを選択して)図8において説明した処理が実行されればよい。
このように、販売サイトは、グループの構成を任意に決定することができる。したがって、販売地域におけるニーズに対応させて、販売促進に有効なグループ構成を検討し、商品化することができる。
続いて、図18は、商品の販売時における処理手順を説明するためのシーケンス図である。図18に示される販売サーバ20は、同図に示されるユーザPC50が属する販売地域の販売サーバ20である。
或るユーザ環境E1におけるユーザが、ユーザPC50のWebブラウザ51に対し、購入可能な(販売対象とされている)商品の一覧を表示させるWebページ(商品一覧ページ)に対するURLを入力すると、Webブラウザ51は、商品一覧ページの取得要求を販売サーバ20の販売管理部22に送信する(S121)。
続いて、販売管理部22は、商品マスタ23に基づいて商品一覧ページを生成する(S122)。具体的には、販売管理部22は、商品マスタ23に登録されている商品ごとに、商品名称、ライセンス形態、ライセンス有効期間、ボリューム数、及びチェックボタンを表示させるHTMLデータを商品一覧ページとして生成する。したがって、グループライセンスに係る商品が商品情報編集画面210を介して作成され、当該商品の商品情報が商品マスタ23に登録されている場合、グループライセンスに係る商品についても選択肢として商品一覧ページに含まれる。なお、チェックボタンは、購入対象とするか否かを選択させるためのものである。続いて、販売管理部22は、生成された商品一覧ページをWebブラウザ51に返信する(S123)。Webブラウザ51は、受信した商品一覧ページ51をユーザPC50の表示装置に表示させる。
商品一覧ページ上において、購入対象とする商品に対するチェックボタンの選択及び購入ボタンの押下がユーザによって行われると、Webブラウザ51は、購入対象とされた商品の品種コードを含む購入要求を販売管理部22に送信する(S124)。すなわち、商品一覧ページは、選択された品種コードが購入ボタンの押下に応じて送信されるように定義されている。なお、商品一覧ページでは、複数の商品を選択可能である。したがって、ステップS124では、複数の品種コードが購入要求に含まれうる。
続いて、販売管理部22は、ドメイン名、販売サイトID、及びパスワードを指定して、認証要求をライセンス管理サーバ10のアクティベーションサーバ部11に送信する(S125)。アクティベーションサーバ部11の販売サーバ認証部117は、認証要求に含まれているドメイン名、販売サイトID、及びパスワードと、販売サイトマスタ118に含まれているドメイン名、販売サイトID、及びパスワードとを照合することにより販売サーバ20の認証を行う。認証に成功した場合、販売サーバ認証部117は、セッションを開設し、セッションIDを販売管理部22に返信する(S126)。以降における販売管理部22とアクティベーションサーバ部11との通信は、セッションIDに基づいて行われる。
続いて、販売管理部22は、購入要求に含まれている品種コードに対して登録されている、プロダクト単位ID(プロダクトID又はグループID)、ライセンス形態、ライセンス有効期間、及びボリューム数を商品マスタ23より取得し、当該プロダクト単位ID(プロダクトID又はグループID)、ライセンス形態、ライセンス有効期間、及びボリューム数を指定して、プロダクトキーの発行要求をアクティベーションサーバ部11のプロダクトキー発行部112に送信する(S127)。なお、プロダクトキーの発行要求は、商品の販売の通知に相当する。
プロダクトキーの発行要求に応じ、プロダクトキー発行部112はプロダクトキーを生成する(S128)。プロダクトキー発行部112は、当該プロダクトキーを販売管理部22に返信する(S129)。なお、複数の商品についてプロダクトキーの発行が要求された場合は、商品ごとにプロダクトキーが生成される。グループライセンスに係る商品に関しても、当該商品について一つのプロダクトキーが生成される。そうすることにより、グループに属する販売パッケージごとにプロダクトキーが生成される場合に比べて、ユーザ側におけるプロダクトキーの管理負担を軽減することができる。
販売サーバ20のプロダクトキー通知部24は、プロダクトキーを受信すると、当該プロダクトキーを含むHTMLデータをWebブラウザ51に返信する(S130)。Webブラウザ51は、当該HTMLデータをユーザPC50の表示装置に表示させる。これにより、ユーザは、購入した商品に対して発行されたプロダクトキーを認識することができる。なお、プロダクトキー通知部24は、プロダクトキーが記述された電子メールをユーザPC50に送信することにより、プロダクトキーの配布を行ってもよい。
続いて、ステップS128の詳細について説明する。図19は、プロダクトキー発行部によるプロダクトキー生成処理の処理手順を説明するためのフローチャートである。
ステップS141において、プロダクトキー発行部112は、プロダクト単位ID(プロダクトID又はグループID)、ライセンス形態、期間、及びボリューム数を受信する。続いて、プロダクトキー発行部112は、受信したプロダクト単位IDがグループIDであるか否かを判定する(S142)。具体的には、当該プロダクト単位IDと一致するグループIDをグループIDマスタ120より検索する。当該プロダクト単位IDと一致するグループIDが検索された場合(S142でYes)、プロダクトキー発行部112は、当該グループIDに対応付けられている全てのプロダクトID(すなわち、グループに属する販売パッケージのプロダクトID)をグループIDマスタ120より取得する(S143)。続いて、プロダクトキー発行部112は、当該グループIDに対する削除フラグの値を「OFF」にする(S144)。これによって、当該グループIDの削除が禁止される。
ステップS142でNoの場合又はステップS144に続いて、プロダクトキー発行部112は、受信したプロダクトID又はグループIDマスタ120より取得されたプロダクトIDを登録するためのレコードをライセンス管理テーブル121に生成する(S145)。したがって、グループIDマスタ120より複数のプロダクトIDが取得された場合、複数のレコードが生成される。また、プロダクトキー発行部112は、同一のプロダクトIDについてボリューム数分のレコードを生成する。したがって、ボリューム数が2以上の場合、同一のプロダクトIDについて2以上のレコードが生成される。
図20は、ライセンス管理テーブルの構成例を示す図である。同図においてライセンス管理テーブル121は、販売パッケージに関して発行されるライセンスごとに管理番号、プロダクトキー、プロダクトID、機体番号、ステータス、ライセンス形態、ライセンス有効期間、ライセンス有効期限、及びライセンス発行日等の項目を有する。
これらの項目のうち、プロダクトID、ライセンス形態、及びライセンス有効期間は、販売管理部22より受信された値がステップS145において登録される。複数のレコードが生成された場合、生成された全てのレコードに同じ値が登録される。但し、グループライセンスの場合(グループIDに基づいて販売パッケージのプロダクトIDが取得された場合)、生成された各レコードには、取得された各プロダクトIDが登録される。
管理番号は、ライセンス管理テーブル121に対するレコードの生成に伴って、各レコードに一意に割り当てられる識別子(番号)である。プロダクトキーには、後段のステップにおいて生成されるプロダクトキーが登録される。機体番号には、ライセンスファイル90が発行される際に、販売パッケージを利用する機器として指定された画像形成装置40の機体番号が登録される。機体番号とは、各画像形成装置40を一意に識別するための識別情報(機器識別子)である。ステータスは、ライセンスの状態を示す情報である。本実施の形態において、ライセンスは、「ライセンス無し」、「チェックアウト」、及び「チェックイン」の状態を有する。「ライセンス無し」は、ライセンスが発行されていない状態である。チェックアウトは、ライセンスが使用されている状態である。チェックインは、ライセンスが解放されている(使用可能な)状態である。ステータスについても、ステップS145では値は登録されない。ライセンス有効期限は、ライセンスファイル90が発行される際に、ライセンス有効期間に基づいて算出されるライセンス(ライセンスファイル90)の有効期限である。ライセンス発行日は、ライセンスファイル90が発行される際に登録される、ライセンス(ライセンスファイル90)の発行日である。
続いて、プロダクトキー発行部112は、プロダクトキーを一つ生成する(S146)。ステップS141において受信されたプロダクト単位IDがグループIDである場合も、ボリューム数が2以上である場合も生成されるプロダクトキーは一つである。
図21は、プロダクトキーの構成例を示す図である。同図に示されるように、プロダクトキーは、ユニークID、プロダクト単位ID、ライセンス形態、及びグループライセンスフラグ等を含むデータである。
ユニークIDは、プロダクトキーの生成に伴って生成される一意なIDである。ユニークIDによってプロダクトキーの一意性が確保される。プロダクト単位IDは、ステップS141において受信されたプロダクトID又はグループID、すなわち、購入された商品の販売パッケージ又はグループのプロダクトID又はグループIDである。ライセンス形態は、ステップS141において受信されたライセンス形態である。グループライセンスフラグは、当該プロダクトキー内のプロダクト単位IDが、グループIDであるか(true)否か(false)を示すパラメータである。プロダクトキー生成部112は、受信されたプロダクト単位IDがグループIDであった場合、グループライセンスフラグの値をtrueとする。
続いて、プロダクトキー生成部112は、生成されたプロダクトキーを、ステップS145において生成されたレコードに登録し、当該レコードのステータスを「チェックイン」とすることによりライセンス管理テーブル121を更新する(S147)。ステップS145において生成されたレコードが複数の場合(グループライセンスの場合、又はボリューム数が2以上(ボリュームライセンス)の場合)、各レコードには同じプロダクトキーが登録される。
なお、図20のライセンス管理テーブル121において、管理番号1〜3のレコードは、ボリュームライセンスに対応したレコードである。ボリュームライセンスに係る各レコードは、プロダクトキー及びプロダクトIDは一致する。また、管理番号4及び5のレコードは、グループライセンス(グループに対するライセンス)に対応したレコードである。グループライセンスに係る各レコードは、プロダクトキーは同じである。但し、グループライセンスの各レコードは、それぞれ異なる販売パッケージに対応するため、当該各レコードのプロダクトIDは相互に異なる。
このように生成されたプロダクトキーが、図18のステップS129において販売サーバ20の販売管理部22に送信され、販売管理部22からユーザPC50のWebブラウザ51に転送される。
続いて、プロダクトキーが発行された商品に含まれる販売パッケージのインストールが行われる。
図22は、販売パッケージのインストール時の処理手順を説明するためのシーケンス図である。
プロダクトキーを入手したユーザは、当該プロダクトキーに対応する販売パッケージを利用する画像形成装置40に対してプロダクトキーを入力する(S151)。プロダクトキーの入力は、例えば操作パネル45に表示される以下の機能拡張設定メニュー画面を介して行われる。
図23は、機能拡張設定メニュー画面の表示例を示す図である。機能拡張設定メニュー画面510は、画像形成装置40の機能拡張に関する各種のメニューを表示させる画面であり、所定の操作入力に応じてUI制御部426が操作パネル45に表示させる。機能拡張設定メニュー画面510において、新規追加メニュー511が選択されると、UI制御部426は、プロダクトキー入力画面を操作パネル45に表示させる。
図24は、プロダクトキー入力画面の表示例を示す図である。プロダクトキー入力画面520は、プロダクトキー入力欄521を有する。ステップS151では、プロダクトキー入力欄521においてプロダクトキーの入力が行われる。
プロダクトキー入力欄521にプロダクトキーが入力され、次へボタン522が選択されると、インストール部421は、入力されたプロダクトキーを指定して、当該プロダクトキーに係る販売パッケージに関するインストール一覧画面の生成要求をコンポーネントサーバ部15のインストール支援部152に送信する(S152)。
続いて、インストール支援部152は、インストール一覧画面の生成要求を受信すると、当該要求において指定されたプロダクトキーの有効性の確認要求をアプリケーションサーバ部11のプロダクトキー検証部113に送信する(S153)。プロダクトキー検証部113は、ライセンス管理テーブル121を参照して、当該プロダクトキーの有効性を判定する(S154)。具体的には、当該プロダクトキーを含み、ステータスの値が「チェックアウト」でないレコードの検索がライセンス管理テーブル121に対して実行される。該当するレコードが検索された場合、当該プロダクトキーは有効であると判定される。該当するレコードが検索されなかった場合、当該プロダクトキーは無効であると判定される。斯かる判定方法では、当該プロダクトキーがグループライセンスの商品に関するものである場合、グループに属する少なくとも一部の販売パッケージのライセンスが使用されていなければ(使用可能であれば)、当該プロダクトキーは有効であると判定される。
当該プロダクトキーが有効である場合、プロダクトキー検証部113は、ライセンス管理テーブル121において当該プロダクトキーに関連付けられているプロダクトID(すなわち、販売パッケージのプロダクトID)をインストール支援部152に返信する(S155)。したがって、グループライセンス又はボリュームライセンスに係るプロダクトキーについては複数のプロダクトIDが返信される。なお、グループライセンスの場合、プロダクトIDごと(グループに属する販売パッケージごと)に、ライセンスの使用の有無を示す情報がインストール支援部152に返信される。グループライセンスの場合、グループに属する一部の販売パッケージのライセンスが使用されている場合があり、使用されているライセンス(販売パッケージ)と使用されていないライセンス(販売パッケージ)との区別を可能とするためである。
一方、判定対象とされたプロダクトキーは無効であると判定された場合、インストール支援部152は、プロダクトキーが無効であることを示すエラー画面を表示させるエラー画面データをインストール部421に返信する。インストール部421は、エラー画面データの受信に応じ、エラー画面データに基づくエラー画面の表示をUI制御部426に実行させる。
図25は、プロダクトキーが無効であるときのエラー画面の表示例を示す図である。エラー画面530には、プロダクトキーエラー(プロダクトキーが無効)であることを示すメッセージやプロダクトキー入力欄531等が表示される。プロダクトキー入力欄531を介して、ユーザは、正しいプロダクトキーを入力し直すことができる。プロダクトキー入力欄531を介して正しいプロダクトキーが入力され、OKボタン532が選択された場合、ステップS152以降が再度実行される。一方、キャンセルボタン533が選択された場合、販売パッケージのインストールは中止される。
ステップS155において、判定対象とされたプロダクトキーは有効であるとの判定結果が受信された場合、インストール支援部152は、プロダクトキー検証部113より返信されたプロダクトIDに対応する販売パッケージに関するインストール一覧画面データをコンポーネント管理テーブ155を参照して生成する(S156)。
図26は、コンポーネント管理テーブルの構成例を示す図である。同図に示されるように、コンポーネント管理テーブル155には、販売パッケージごとに、プロダクトID、バージョン、名称、説明、ベンダ名、配布タイプ、ダウンロードパス、及び機能パッケージのプロダクトID等が登録されている。バージョンは、販売パッケージのバージョンである。名称は、販売パッケージの名前である。説明は、販売パッケージに関する説明である。ベンダ名は、販売パッケージのベンダの名前である。配布タイプは、販売パッケージの配布タイプである。ダウンロードパスは、ダウンロードサーバ30の販売パッケージ管理部32内における販売パッケージの位置情報である。本実施の形態では、当該位置情報としてURL(Uniform Resource Locator)が利用される。機能パッケージのプロダクトIDは、販売パッケージに属する機能パッケージのプロダクトIDの一覧である。
なお、コンポーネント管理テーブル155の内容は、コンポーネント管理部154が、定期的にダウンロードサーバ30より販売パッケージを取得し、当該販売パッケージの内容を解析することにより登録される。具体的には、プロダクトID、バージョン、名称、説明、ベンダ名、及び配布タイプは、販売パッケージに格納されている販売パッケージ情報ファイルに記録されているプロダクトID、バージョン、名称、説明、ベンダ名、及び配布タイプが登録される。したがって、名称、説明、及びベンダ名については、言語種別ごとに登録される。機能パッケージのプロダクトIDは、販売パッケージに含まれている各機能パッケージに格納されている機能パッケージ情報ファイルに記録されているプロダクトIDが登録される。なお、ダウンロードパスは、販売パッケージの取得の際にダウンロードサーバ30より通知される。
続いて、インストール支援部152は、生成されたインストール一覧画面データを画像形成装置40のインストール部421に送信する(S157)。インストール部421は、受信したインストール一覧画面データをUI制御部426に入力する。UI制御部426は、インストール一覧画面データに基づいてインストール一覧画面を操作パネル45に表示させる(S158)。
図27は、インストール一覧画面の表示例を示す図である。インストール一覧画面540には、インストール対象となりうる(インストール候補の)販売パッケージの一覧が表示され、販売パッケージごとにインストールの要否(すなわち、使用の要否)を選択させるためのチェックボタンが配置されている。ユーザは、インストール対象とする販売パッケージのチェックボタンをチェックする。図27では、パッケージ1〜4がインストール候補とされ、パッケージ1〜3がインストール対象として選択されている。
なお、上記の処理手順より明らかなように、プロダクトキー入力画面520においてグループライセンスに係る商品のプロダクトキーが入力された場合、当該グループライセンスのグループに属する販売パッケージの一覧がインストール一覧画面540に表示される。したがって、ユーザは、グループに属する一部の販売パッケージを選択的にインストール対象とすることができる。換言すれば、現時点において不要な販売パッケージをインストール対象から除外することができる。グループに属する販売パッケージのインストールが選択的に行えることにより、グループライセンスに係る商品に関して、ユーザの都合に合わせた柔軟な取り扱いを可能とすることができる。もちろん、グループに属する全ての販売パッケージがインストール対象とされてもよい。
また、インストール一覧画面540において、販売パッケージの名前は、画像形成装置40の言語環境に応じた言語によって表示される。すなわち、インストール支援部152は、インストール一覧画面データを生成する際に、販売パッケージの名称について、画像形成装置40の言語環境に応じた言語種別に対して登録されているものを使用する。画像形成装置40の言語環境については、例えば、ステップS152において画像形成装置40より送信されるインストール一覧画面データの生成要求に含まれている当該画像形成装置40の言語環境を示す情報に基づいて判定される。なお、販売パッケージの名前が画像形成装置40の言語環境に応じた言語によって表示されるのは、後述される各種画面においても同様である。
インストール一覧画面540において、インストール対象とする販売パッケージのチェックボタンがチェックされ、インストールボタン541が選択されると(S159)、インストール部421は、インストール一覧画面540においてチェックされた(インストール対象とされた)販売パッケージのプロダクトIDと、画像形成装置40にインストールされている全ての販売パッケージの構成情報とを指定して、インストール対象とされた販売パッケージのインストール要求をコンポーネントサーバ部15のインストール支援部152に送信する(S160)。
なお、インストール一覧画面540においてチェックされた販売パッケージのプロダクトIDはインストール一覧画面データより取得される。また、画像形成装置40にインストールされている全ての販売パッケージの構成情報は、インストール情報管理テーブル427より取得される。
図28は、インストール情報管理テーブルの構成例を示す図である。同図において、インストール情報管理テーブル427には、画像形成装置40にインストールされている販売パッケージごとに、プロダクトID、バージョン、機能パッケージのプロダクトID、アクティベーションフラグ、及び有効期限等が登録されている。
機能パッケージのプロダクトIDは、販売パッケージに属する機能パッケージのプロダクトIDの一覧である。アクティベーションフラグは、販売パッケージについてアクティベーションされているか否か(アクティベーション済みか否か)を示す。ライセンス有効期限は、販売パッケージに対して発行されたライセンスの有効期限(ライセンスファイル90の有効期限)である。なお、各機能パッケージのアクティベーションフラグ及びライセンス有効期限は、当該機能パッケージが属する販売パッケージのアクティベーションフラグ及びライセンス有効期限に従う。また、インストール情報管理テーブル427の内容は、後述される販売パッケージのインストール時に登録される。
ステップS160において送信される構成情報には、インストール情報管理テーブル427に登録されている全ての情報が含められる。
続いて、インストール支援部152は、インストール要求に含まれているプロダクトIDに係る販売パッケージの依存関係の検証を依存関係判定部151に実行させる(S161)。具体的には、依存関係判定部151は、プロダクトIDに係る販売パッケージに含まれている機能パッケージが依存する(利用する)他の機能パッケージが画像形成装置40に既にインストールされているか否かを判定する。
続いて、インストール支援部152は、依存関係の検証結果に応じた確認画面(確認画面)を表示させるHTMLデータ(確認画面データ)を生成し(S162)、当該確認画面データをインストール部421に返信する(S163)。なお、ステップS161及びS162の詳細については後述する。
続いて、インストール部421は、受信された確認画面データをUI制御部426に入力する。UI制御部426は、確認画面データに基づいて確認画面を操作パネル45に表示させる(S164)。
図29は、依存関係に問題が無い場合の確認画面の表示例を示す図である。同図の確認画面550aには、インストール対象として選択された販売パッケージ(パッケージ1)について、依存関係に問題が無いことが示されている。具体的には、領域552aにおいて、パッケージ1が依存する販売パッケージ(依存パッケージ)は同時にインストール対象とされているか、又は既に画像形成装置40にインストールされていることが示されている。
確認画面550aにおいてOKボタン551aが選択されると(S165)、インストール部421は、インストール対象とされた各販売パッケージに対するURLを指定して、当該各販売パッケージのダウンロード要求をダウンロードサーバ30のダウンロード処理部31に送信する(S166)。すなわち、OKボタン551aには、販売パッケージごとのURLと、ダウンロード要求の送信命令とが関連付けられている。
また、図30は、依存パッケージも同時にインストール可能な場合の確認画面の表示例を示す図である。同図の確認画面550bの領域552bには、インストール対象として選択された販売パッケージの依存パッケージのうち、画像形成装置40にインストールされておらず、かつ、インストール対象とされていない依存パッケージについて、同時にインストール可能であること、及び同時にインストールすることについての要否の問い合わせが示されている。なお、依存パッケージを同時にインストール出来るか否かは、当該依存パッケージの配布タイプに基づいて判断される。
確認画面550bにおいてOKボタン551bが選択されると(S165)、インストール部421は、インストール対象とされた各販売パッケージと、同時にインストールする販売パッケージ(依存パッケージ)に対するURLを指定して、当該各販売パッケージのダウンロード要求をダウンロードサーバ30のダウンロード処理部31に送信する(S166)。すなわち、OKボタン551bには、インストール対象とされた販売パッケージごとのURLと、同時にインストールする販売パッケージ(依存パッケージ)のURLと、ダウンロード要求の送信命令とが関連付けられている。
更に、図31は、依存パッケージを同時にインストール出来ない場合の確認画面の表示例を示す図である。同図の確認画面550cの領域552cには、インストールできない販売パッケージが3つあることが示されている。当該3つについては、領域553c、554c、及び555cにその詳細が示されている。領域553cには、パッケージ3について、依存が解消できないこと(依存パッケージを同時にインストールすることができないこと)が示されている。領域554cには、パッケージ4について、既にライセンスが取得(使用)されていることが示されている。領域555cには、パッケージ5について、インストール対象とされている他のパッケージ(図31では、パッケージ1及びパッケージ2)と同時に導入できないパッケージであることが示されている。なお、図31は、パッケージ1〜5がインストール対象として選択された場合に対応する。
確認画面550cにおいてOKボタン551cが選択されると(S165)、インストール部421は、インストール可能な各販売パッケージに対するURLを指定して、当該各販売パッケージのダウンロード要求をダウンロードサーバ30のダウンロード処理部31に送信する(S166)。すなわち、OKボタン551cには、インストール可能な販売パッケージごとのURLと、ダウンロード要求の送信命令とが関連付けられている。
ステップS166のダウンロード要求に応じ、ダウンロード処理部31は、当該ダウンロード要求において指定されているURLによって識別される販売パッケージを販売パッケージ管理部32より取得し、当該販売パッケージをインストール部421に転送する(S167)。インストール部421は、受信された販売パッケージを、HDD414内の一時的な記憶領域(例えば、一時的なフォルダ)に保存しておく。
販売パッケージのダウンロードが完了すると、インストール部421は、ステップS151において入力されたプロダクトキーと、インストール対象とされた販売パッケージのプロダクトIDと、ROM413又はHDD414に記録されている画像形成装置40の機体番号とを指定して、ライセンスファイル90の生成要求(ライセンスの使用要求)をアクティベーションサーバ部11のライセンス発行部115に送信する(S168)。続いて、ライセンス発行部115は、プロダクトキー及びライセンス管理テーブル121に基づいてライセンスファイル90を生成する(S169)。
図32は、ライセンスファイルの構成例を示す図である。同図において、ライセンスファイル90は、プロダクトID、機体番号、及び有効期限を含む。プロダクトIDは、当該ライセンスファイル90によってライセンスが付与される(利用が許可される)販売パッケージのプロダクトIDである。機体番号は、当該ライセンスファイル90によってプロダクトIDに係る販売パッケージの利用が許可される画像形成装置40の機体番号である。有効期限は、当該ライセンスファイル90の有効期限、すなわち、当該ライセンスファイル90によって付与されるライセンスの有効期限である。
ライセンスファイル90のプロダクトIDには、ライセンスファイル90の生成要求に含まれているプロダクトキーに係るプロダクトIDが登録される。ここで、当該プロダクトキーがグループライセンスに係るものである場合、すなわち、プロダクトキーに対して複数の異なるプロダクトIDがライセンス管理テーブル121に登録されている場合、ライセンス発行部115は、販売パッケージごとにライセンスファイル90を生成する。したがって、グループライセンスの場合であっても、ライセンスファイル90のプロダクトIDには、販売パッケージのプロダクトIDが登録される。
ライセンスファイル90の機体番号には、ライセンスファイル90の生成要求に含まれている機体番号が登録される。ライセンスファイル90の有効期限には、ライセンスファイル90の生成要求に含まれているプロダクトキー及びプロダクトIDに対してライセンス管理テーブル121に登録されている有効期間を現時点に加算することに得られる時期(例えば、年月日)が登録される。
続いて、ライセンス発行部115は、生成されたライセンスファイル90をインストール部421に返信する(S170)。インストール部421は、受信されたライセンス50を、HDD414内の一時的な記憶領域(例えば、一時的なフォルダ)に保存しておく。
ライセンスファイル90の受信が完了すると、インストール部50は、販売パッケージのインストール処理を行う(S171)。インストール処理の詳細については後述する。
なお、上記では、ステップS157におけるインストール一覧画面データ又はS163における確認画面データによって販売パッケージの取得指示が画像形成装置40に送信される例を説明した。但し、このタイミングにおいて販売パッケージ自体(プログラム本体)が画像形成装置40に送信されるようにしてもよい。この場合、コンポーネントサーバ部15がダウンロードサーバ30よりインストール対象の販売パッケージをダウンロードし、当該販売パッケージを画像形成装置40に転送すればよい。
また、グループに属する一部の販売パッケージに関してインストールされた場合(すなわち、インストール一覧画面540においてグループに属する一部の販売パッケージが選択された場合)、当該グループに属する残りの販売パッケージについては、別途インストールすることができる。残りの販売パッケージをインストールする場合、ユーザは、再度プロダクトキー入力画面520を表示させ、当該グループに対するプロダクトキーを再度入力すればよい。この場合、インストール支援部152は、当該グループに属する販売パッケージのうち、既にライセンスが使用されている販売パッケージについてはチェックボタンを付与しないでインストール一覧画面データを生成する。したがって、既にライセンスが使用されている販売パッケージについてはインストール対象として選択できない状態でインストール一覧画面540が表示される。既にライセンスが使用されている販売パッケージであるか否かについては、ステップS155においてプロダクトキー検証部113より返信される、グループに属するプロダクトIDごとにライセンスの使用の有無を示す情報に基づいて判定される。
続いて、図22のステップS161及びS162においてライセンス管理サーバ10のコンポーネントサーバ部15によって実行される処理の詳細について説明する。
図33は、コンポーネントサーバ部による依存関係の検証処理及び確認画面データの生成処理の処理手順を説明するためのフローチャートである。
ステップS175において、依存関係判定部151は、図22のステップS160の依存関係の検証要求において受信されたプロダクトIDのうちの一つのプロダクトID(すなわち、販売パッケージ)を処理対象とする。続いて、依存関係判定部151は、処理対象の販売パッケージ(以下、「カレント販売パッケージ」という。)が既にアクティベーションされているか否かをステップS160において販売パッケージごとに受信された構成情報のうち、カレント販売パッケージに対する構成情報に含まれているアクティベーションフラグに基づいて判定する(S176)。アクティベーションされていない場合(S176でNo)、依存関係判定部151は、コンポーネント管理テーブル155(図28参照)及び依存関係管理テーブル156に基づいて、カレント販売パッケージが依存する販売パッケージ(依存パッケージ)の有無を判定する(S177)。
図34は、依存関係管理テーブルの構成例を示す図である。同図において、依存関係管理テーブル156は、機能パッケージごとに当該機能パッケージのプロダクトID、及び当該機能パッケージが依存する機能パッケージのプロダクトIDが登録されている。依存する機能パッケージのプロダクトIDは、複数登録されていてもよい。なお、同図において、「0」は、依存する機能パッケージが無いことを示す。
依存関係管理テーブル156の内容は、コンポーネント管理テーブル155と同様、コンポーネント管理部154が、定期的に取得される販売パッケージの内容を解析することにより登録される。具体的には、販売パッケージに含まれている各機能パッケージの機能パッケージ情報ファイルに記録されているパッケージ依存情報の内容が依存する機能パッケージのプロダクトIDとして依存関係管理テーブル156に登録される。
ステップS177では、依存関係判定部151は、コンポーネント管理テーブル155においてカレント販売パッケージのプロダクトIDに対して登録されている機能パッケージのプロダクトIDの一覧を取得する。続いて、依存関係判定部151は、取得された各機能パッケージのプロダクトIDと依存関係管理テーブル156とに基づいて、当該機能パッケージが依存する機能パッケージ(以下、「依存機能パッケージ」という。)を特定する。依存機能パッケージが有る場合、依存関係管理テーブル156は、当該依存機能パッケージが属する販売パッケージをコンポーネント管理テーブル155を逆引きすることにより特定する。特定された販売パッケージが、カレント販売パッケージの依存パッケージである。なお、依存パッケージは複数存在しうる。また、機能パッケージ間の依存関係の探索は、再帰的に行われる。
依存パッケージが無い場合(S177でNo)、依存関係判定部151は、カレント販売パッケージの依存関係に問題は無いことをカレント販売パッケージのプロダクトIDと関連付けてメモリ装置103に記録しておく(S178)。依存パッケージが有る場合(S177でYes)、依存関係判定部151は、当該依存パッケージが画像形成装置40に既にインストールされているか、又はインストール対象であるかをステップS160において販売パッケージごとに受信された構成情報、又はステップS160において受信されたインストール対象の販売パッケージのプロダクトIDに基づいて判定する(S179)。すなわち、依存パッケージに対応する構成情報が受信されていれば、依存パッケージは画像形成装置40に既にインストールされていると判定される。また、依存パッケージのプロダクトIDがインストール対象のプロダクトIDに含まれていれば、依存パッケージはインストール対象であると判定される。
当該依存パッケージが既にインストールされている場合、(S179でYes)、依存関係判定部151は、当該依存パッケージが既にアクティベーションされているか否か(すなわち、利用可能な状態であるか否か)を販売パッケージごとに受信された構成情報に基づいて判定する(S180)。依存パッケージに対応する構成情報に含まれているアクティベーションフラグに基づいて依存パッケージがアクティベーションされているか否かが判定される。
当該依存パッケージがアクティベーション済みである場合、又は当該依存パッケージがインストール対象である場合(S180でYes)、依存関係判定部151は、カレント販売パッケージの依存関係に問題は無いことをカレント販売パッケージのプロダクトIDと関連付けてメモリ装置103に記録しておく(S178)。アクティベーションされていない依存パッケージがある場合(S180でNo)、依存関係判定部151は、カレント販売パッケージについては、当該依存パッケージのアクティベーションが必要であることをカレント販売パッケージのプロダクトIDに関連付けてメモリ装置103に記録しておく(S181)。
また、インストールされていない依存パッケージが有る場合(S179でNo)、依存関係判定部151は、当該依存パッケージは同時にインストール可能であるか否かをコンポーネント管理テーブル155に基づいて判定する(S182)。すなわち、コンポーネント管理テーブル155において、当該依存パッケージのプロダクトIDに対応する配布タイプが、アクティベーションは不要であることを示す場合、当該依存パッケージは同時にインストール可能であると判定される。当該依存パッケージの配布タイプがアクティベーションは必要であることを示す場合、当該依存パッケージは同時にインストール不可能であると判定される。
同時にインストール可能な依存パッケージがある場合(S182でYes)、依存関係判定部151は、当該依存パッケージのプロダクトIDを、同時にインストール可能な依存パッケージのプロダクトIDとして販売パッケージのプロダクトIDに関連付けてメモリ装置103に記録しておく(S183)。同時にインストールできない依存パッケージが有る場合(S182でNo)、依存関係判定部151は、当該依存パッケージのプロダクトIDを、同時にインストール不可能な依存パッケージのプロダクトIDとしてカレント販売パッケージのプロダクトIDに関連付けてメモリ装置103に記録しておく(S184)。
また、カレント販売パッケージがアクティベーション済みである場合(S176でYes)、依存関係判定部151は、ライセンスが取得済みであることをカレント販売パッケージのプロダクトIDに関連付けてメモリ装置103に記録しておく(S185)。
ステップS175〜S185までの処理が、図22のステップS160の依存関係の検証要求において受信された全てのプロダクトIDについて完了すると(S186でYes)、インストール支援部152は、メモリ装置103に記録されている情報に基づいて確認画面データを生成する(S187)。例えば、全ての販売パッケージについて問題が無い場合、図29に示されるような確認画面550aを表示させる確認画面データが生成される。また、ステップS183に係る情報が記録されている場合、図30に示されるような確認画面550bを表示させる確認画面データが生成される。また、ステップS181、ステップS184、又はステップS185に係る情報が記録されている場合、図31に示されるような確認画面550cを表示させる確認画面データが生成される。
なお、各確認画面データには、インストール可能な販売パッケージのURLがOKボタンに関連付けられる。インストール可能な販売パッケージのURLは、コンポーネント管理テーブル155のダウンロードパスより取得される。
ところで、上記では、販売パッケージ単位で依存パッケージを示す例について説明した。但し、機能パッケージ単位で依存パッケージを示すようにしてもよい。なお、機能パッケージ単位で依存パッケージを示す場合であっても、本実施の形態では、販売パッケージが流通単位であるため、インストール対象とされるのは当該機能パッケージが含まれる販売パッケージとされる。
続いて、図22のステップS168〜S170においてライセンス管理サーバ10のアクティベーションサーバ部11によって実行される処理の詳細について説明する。図35は、アクティベーションサーバ部によるライセンスファイル生成処理の処理手順を説明するためのフローチャートである。なお、図35では、一つのプロダクトキーを処理対象として説明する。したがって、複数のプロダクトキーが受信された場合、ステップS192以降はプロダクトキーごとに実行される。
ステップS191において、ライセンス発行部115は、プロダクトキー、プロダクトID、及び機体番号を含むライセンスの使用要求を画像形成装置40のインストール部421より受信する。続いて、ライセンス発行部115は、当該プロダクトキーに係るライセンスの使用の可否を判定する。具体的には、ライセンス発行部115は、受信されたプロダクトキーがライセンス管理テーブル121に登録されているか否かを確認する(S192)。プロダクトキーが登録されている場合(S192でYes)、ライセンス発行部115は、受信された機体番号と同じ機体番号が当該プロダクトキーに対してライセンス管理テーブル121に登録されているか否かを確認する(S193)。同じ機体番号が登録されていない場合(S193でNo)、ライセンス発行部115は、当該プロダクトキー及び受信されたプロダクトIDに係るレコードの中で、ステータスが「チェックイン」のレコードがライセンス管理テーブル121に有るか否かを確認する(S194)。該当するレコード(以下、「対象レコード」という。)が有る場合(S194でYes)、ライセンス発行部115は、受信された機体番号を対象レコードに記録し、対象レコードのステータスを「チェックアウト」とする(S196)。すなわち、当該プロダクトキーに対応するライセンスは使用されていることが記録される。また、ライセンス発行部115は、対象レコードに「ライセンス有効期間」が記録されている場合(すなわち、対象レコードが時限ライセンスに対応するレコードである場合)、現在日時にライセンス有効期間を加算して得られる日時をライセンス有効期限として対象レコードに記録する。
続いて、ライセンス発行部115は、対象レコードにおける、プロダクトID、機体番号、及びライセンス有効期限を含むライセンスファイル90(図32参照)を生成する(S197)。なお、ライセンスファイル90は、ライセンス管理テーブル121のレコードごと、すなわち、販売パッケージに対するライセンスごとに生成される。続いて、ライセンス発行部115は、生成されたライセンスファイル90を画像形成装置40のインストール部421に返信する(S198)。
一方、当該プロダクトキーに対して受信された機体番号と同じ機体番号が登録されているレコードが有る場合(S193でYes)、ライセンス発行部115は、当該レコードのステータスが「チェックイン」であるか否かを確認する(S195)。ステータスが「チェックイン」である場合(S195でYes)、ステップS196以降の処理が実行される。
また、当該プロダクトキーに係るレコードがライセンス管理テーブル121に無い場合(S192でNo)、当該プロダクトキー及び受信されたプロダクトIDに係るレコードの中で、ステータスが「チェックイン」のレコードがライセンス管理テーブル121に無い場合(S194でNo)、又は、当該プロダクトキーに対して受信された機体番号と同じ機体番号が登録されているレコードのステータスが「チェックイン」でない場合(S195でNo)、ライセンス発行部115は、エラーを検出したとし、ライセンスファイル90の生成、すなわち、ライセンスの発行は行わない。
続いて、ステップS196において実行される、ライセンス有効期限の計算処理の詳細について説明する。図37は、ライセンス有効期限の計算処理を説明するためのフローチャートである。
ステップS196aにおいて、ライセンス発行部115は、対象レコードに記録されているライセンス形態は、時限ライセンス又はトライアルライセンスであるか否かを判定する。すなわち、期限の有るライセンス形態であるか否かが判定される。時限ライセンス又はトライアルライセンスでない場合(S196aでNo)、ライセンス発行部115は、ライセンス有効期限の計算は行わない。
時限ライセンス又はトライアルライセンスである場合(S196aでYes)、ライセンス発行部115は、対象レコードは、グループライセンスに係るものであるか否かを判定する(S196b)。具体的には、ライセンス発行部115は、対象レコードのプロダクトIDと異なるプロダクトIDを有し、対象レコードのプロダクトキーと一致するプロダクトキーを有する他のレコードの検索を行う。該当するレコードが検索された場合、対象レコードはグループライセンスに係るものであると判定され、該当するレコードが検索されない場合、対象レコードはグループライセンスに係るものでないと判定される。
対象レコードはグループライセンスに係るものであると判定された場合(S196bでYes)、ライセンス発行部115は、対象レコードと同一グループに属し、既にライセンスの使用が開始されているレコードの有無を判定する(S196c)。具体的には、ステップS196bにおいて検索された他のレコードの中で、ステータスが「チェックアウト」であるものの有無が判定される。該当するレコードが有る場合(S196cでYes)、ライセンス発行部115は、該当するレコードのライセンス発行日に、対象レコードのライセンス有効期間を加算することにより得られる時期を対象レコードのライセンス有効期限に記録する(S196d)。すなわち、同一グループに属する各販売パッケージのライセンス有効期限は一致する。
一方、対象レコードはグループライセンスに係るものではない場合(S196bでNo)、ライセンス発行部115は、対象レコードは、ボリュームライセンスに係るものであるか否かを判定する(S196e)。具体的には、ライセンス発行部115は、対象レコードのプロダクトIDと一致するプロダクトIDを有し、対象レコードのプロダクトキーと一致するプロダクトキーを有する他のレコードの検索を行う。該当するレコードが検索された場合、対象レコードはボリュームライセンスに係るものであると判定され、該当するレコードが検索されない場合、対象レコードはボリュームライセンスに係るものではないと判定される。
対象レコードがボリュームライセンスに係るものである場合(S196eでYes)、ライセンス発行部115は、当該ボリュームライセンスの使用は既に開始されているか否かを判定する(S196f)。具体的には、ステップS196eにおいて検索された他のレコードの中で、ステータスが「チェックアウト」であるものの有無が判定される。該当するレコードが有る場合(S196eでYes)、ライセンス発行部115は、当該レコードのライセンス発行日に、対象レコードのライセンス有効期間を加算することにより得られる時期を対象レコードのライセンス有効期限に記録する(S196g)。すなわち、ボリュームライセンスのライセンス有効期限は、当該ボリュームライセンスに属する全てのライセンスについて一致する。
また、対象レコードがグループライセンスに係るものであるが当該グループに関してライセスの使用が開始されていない場合(S196cでNo)、対象レコードがグループライセンス又はボリュームライセンスに係るものでない場合(S196eでNo)、又は対象レコードがボリュームライセンスに係るものであるが当該グループに関してライセスの使用が開始されていない場合(S196eでNo)、ライセンス発行部115は、当日に対象レコードのライセンス有効期間を加算することにより得られる時期を対象レコードのライセンス有効期限に記録する(S196h)。
続いて、図22のステップS171において画像形成装置40によって実行される処理の詳細について説明する。図36は、画像形成装置による販売パッケージのインストール処理の処理手順を説明するためのフローチャートである。
ステップS211において、インストール部421は、一時的な記憶領域に保存されている各販売パッケージに含まれている情報と各ライセンスファイル90に含まれている情報とをインストール情報管理テーブル427に登録する。すなわち、インストール情報管理テーブル427におけるプロダクトID及びバージョンには、販売パッケージに含まれている販売パッケージ情報ファイルに記録されているプロダクトID及びバージョンが登録される。機能パッケージのプロダクトIDには、販売パッケージに含まれている各機能パッケージに格納されている機能パッケージ情報ファイルに記録されているプロダクトIDが登録される。また、アクティベーションフラグには、アクティベーション済みであることを示す値が記録される。また、ライセンス有効期限には、ライセンファイル50に記録されている有効期限が登録される。
続いて、インストール部421は、一時的な記憶領域に保存されているライセンスファイル90及び販売パッケージを所定の記憶場所(フォルダ)に保存することにより、当該販売パッケージを利用可能な状態とする。
なお、ライセンスファイル90は、販売パッケージに含まれる機能パッケージが起動される際に実行される、ライセンスチェック部424によるライセンスチェックに利用される。すなわち、ライセンスチェック部424は、起動対象とされた機能パッケージが属する販売パッケージに対応するライセンスファイル90が存在すること、当該ライセンスファイル90の機体番号が、機能パッケージが起動されようとしている画像形成装置40の機体番号と一致すること、及び当該ライセンスファイル90の有効期限が切れてないことが満たされている場合、当該機能パッケージの起動を許可する。それ以外の場合は、当該機能パッケージの起動は許可されない。但し、ライセンスチェック部424によるライセンスチェックは、コンポーネント管理テーブル425に基づいて行われてもよい。
ところで、インストールされた販売パッケージに対する課金は、例えば、販売サーバ20の販売管理部22によって、アクティベーションサーバ部11より定期的に取得されるライセンス管理テーブル121の情報に基づいて行われる。より詳しくは、ライセンス管理テーブル121において、ライセンス発行日が前回の課金時より後であるレコードが存在する場合は、当該レコードに関するライセンスに対して課金が行われる。
上述したように、第一の実施の形態によれば、ユーザは、ライセンス管理サーバ10のアクティベーションサーバ部11又はコンポーネントサーバ部15の誘導によって画像形成装置40に順次表示される画面に従って操作を行うことにより、簡便に販売パッケージのダウンロード、アクティベーション、及びインストールといった一連の作業を行うことができる。
また、インストール対象として選択された販売パッケージに関して依存関係が自動的に検証され、依存パッケージについてもインストール対象に自動的に含められる。したがって、ユーザは、販売パッケージ間の複雑な依存関係を意識することなく、安心してインストールを行うことができる。
また、商品の販売側(メーカー環境E2)にとっては、販売パッケージに関する顧客の利用状況等を適切に管理することができる。具体的には、ライセンス管理テーブル121によって、画像形成装置40(機体番号)単位でどのようなライセンスによってどのような販売パッケージが利用されているかを把握(管理)することができる。したがって、例えば、販売パッケージにバグが検出された場合や、販売パッケージのバージョンアップ等が行われた場合に、当該販売パッケージを利用している画像形成装置40を特定することができ、適切なアフターサービス等を提供することができる。
また、商品の購入時(販売サーバ20への購入申請時)にライセンスの有効期限が定められるのではなく、販売パッケージのインストール時(すなわち、ライセンスの開始時)にライセンスの有効期限が定められるため、ライセンスの取り扱いに関して柔軟性を確保することができる。すなわち、ユーザは、商品の購入後、都合の良い時期にインストールを行えばよく、その場合であっても、ライセンス有効期間において不利益を被ることはない。
また、グループライセンスに係る商品については、商品ごとに一つのプロダクトキーが発行される。そして、ユーザは、当該プロダクトキーを入力することで、当該商品に属する全ての販売パッケージについてインストール等を行うことができる。したがって、グループに属する販売パッケージに関するインストール作業等を簡便化することができる。
次に、ライセンス更新処理について説明する。時限ライセンスの場合であって、更に継続して当該時限ライセンスに係る商品を利用した場合、ユーザはライセンス更新処理を実行することにより、当該商品のライセンス有効期間を延長することができる。
図38は、ライセンス更新処理の処理手順を説明するためのシーケンス図である。
ライセンスの更新が行われる場合、機能拡張設定メニュー画面510(図23参照)が操作パネル45に表示されている状態で、拡張機能管理メニュー513がユーザによって選択される。UI制御部426は、拡張機能管理メニュー513の選択に応じ、拡張機能管理画面を操作パネル45に表示させる。
図39は、拡張機能管理画面の表示例を示す図である。拡張機能管理画面560は、販売パッケージ一覧表示領域561を有する。販売パッケージ一覧表示領域561には、画像形成装置40にインストールされている販売パッケージの一覧が表示されている。当該一覧には、販売パッケージごとにチェックボタンが配置されている。ユーザによって、ライセンスの更新対象とする販売パッケージのチェックボタンがチェックされ、ライセンス取得/更新ボタン562が選択されると、UI制御部426は、ライセンス取得/更新画面を操作パネル45に表示させる。
図40は、ライセンス取得/更新画面の表示例を示す図である。ライセンス取得/更新画面570は、拡張機能管理画面560においてチェックされた販売パッケージに対するプロダクトキーを入力させるためのプロダクトキー入力欄572を有する。ユーザによって、プロダクトキー入力欄572にプロダクトキーが入力され、OKボタン571が選択されると(S301)、ライセンス更新部422は、入力されたプロダクトキーと、ライセンスの更新対象とされた販売パッケージのプロダクトIDと、ROM413又はHDD414に記録されている画像形成装置40の機体番号とを指定して、ライセンスの更新要求(新たなライセンスファイルの生成要求)をアクティベーションサーバ部11のライセンス発行部115に送信する(S302)。
ライセンス発行部115は、ライセンスの更新要求の受信に応じ、ライセンス管理テーブル121の更新を実行する(S303)。具体的には、ライセンス発行部115は、当該更新要求において指定されているプロダクトキー、プロダクトID、及び機体番号に対応するレコードのライセンス形態が時限ライセンスである場合には、当該レコードのライセンス有効期限及びライセンス発行日を更新する。また、ライセンス発行部115は、当該レコードのステータスがチェックインであった場合は当該ステータスをチェックアウトに更新する。その際、新たなライセンス有効期限は、今まで登録されていたライセンス有効期限及び現時点(当日)のいずれか遅い方に当該レコードのライセンス有効期間を加算することに得られる時期とされる。また、新たなライセンス発行日は当日の年月日とされる。なお、複数のプロダクトIDが指定されている場合、複数のレコードに関して更新が行われる。
続いて、ライセンス発行部1150は、ライセンス管理テーブル121において更新されたレコードごとに(すなわち、更新対象とされた販売パッケージごとに)、当該レコードに記録されているプロダクトID、機体番号、及び有効期限を含むライセンスファイル90(図32参照)を生成する(S304)。
続いて、ライセンス発行部115は、生成されたライセンスファイル90をライセンス更新部422に返信する(S305)。ライセンス更新部422は、ライセンスの更新対象とされた販売パッケージに対する既存のライセンスファイル90を削除し、受信されたライセンス50をHDD414の所定の記憶領域に保存する(S306)。また、ライセンス更新部422は、受信されたライセンスファイル90に基づいてインストール情報管理テーブル427を更新する。具体的には、当該ライセンスファイル90に記録されているプロダクトIDに対応するレコードの有効期限を、当該ライセンスファイル90に記録されている有効期限によって更新する。また、ライセンス更新部422は、当該レコードのアクティベーションフラグをアクティベーション済みであることを示す値とする。
以上の処理により、ユーザは、新たな有効期限まで同一の販売パッケージを利用することが可能となる。
なお、ライセンスの更新に対する課金は、インストール時と同様に行われる。すなわち、販売サーバ20の販売管理部22によって、アクティベーションサーバ部11より定期的に取得されるライセンス管理テーブル121の情報に基づいて行われる。より詳しくは、ライセンス管理テーブル121において、ライセンス発行日が前回の課金時より後であるレコードが存在する場合は、当該レコードに関するライセンスに対して課金が行われる。
次に、販売パッケージの更新処理(販売パッケージ更新処理)について説明する。ユーザは、ライセンスが有効であれば、バージョンアップされた販売パッケージを更新させることができる。
図41は、販売パッケージ更新処理の処理手順を説明するためのシーケンス図である。機能拡張設定メニュー画面510が操作パネル45に表示されている状態において、更新メニュー512が選択されると(S401)、パッケージ更新部423は、画像形成装置40にインストールされている各販売パッケージのプロダクトID及びバージョンを指定して、販売パッケージの更新要求をコンポーネントサーバ部15のパッケージ更新支援部153に送信する(S402)。なお、各販売パッケージのプロダクトID及びバージョンは、インストール情報管理テーブル427より取得される。
パッケージ更新支援部153は、受信された更新要求において指定されているプロダクトID及びバージョンと、コンポーネント管理テーブル155とに基づいて、更新対象となりうる(更新対象候補の)販売パッケージを判定する(S403)。具体的には、パッケージ更新支援部153は、受信されたバージョンより新しいバージョンがコンポーネント管理テーブル155に登録されている販売パッケージ(プロダクトID)の有無を判定する。受信されたバージョンより新しいバージョンがコンポーネント管理テーブル155に登録されている販売パッケージが有る場合、パッケージ更新支援部153は、当該販売パッケージを更新対象候補の販売パッケージとして認識する。
続いて、パッケージ更新支援部153は、更新対象候補の販売パッケージの依存関係の検証を依存関係判定部151に実行させる(S404)。インストール時において既に依存関係の検証が行われているのにも拘わらず更新時にも依存関係が検証されるのは、バージョンアップにより販売パッケージ間の依存関係が変化している可能性があるためのである。なお、ステップS404における依存関係の検証処理は、インストール時と同様である(図33参照)。
依存関係に問題無い場合、パッケージ更新支援部153は、更新対象候補の販売パッケージの中から更新対象とする販売パッケージを選択させるための画面(更新一覧画面)を表示させる更新一覧画面データを生成する(S405)。続いて、パッケージ更新支援部153は、生成された更新一覧画面データをパッケージ更新部423に返信する(S406)。なお、依存関係に問題がある場合、更新対象候補の販売パッケージに関してインストール時と同様の確認画面データが生成され、当該確認画面データがパッケージ更新部423に返信される。
続いて、パッケージ更新部423は、受信された更新一覧画面データをUI制御部426に入力する。UI制御部426は、更新一覧画面データに基づいて更新一覧画面を操作パネル45に表示させる(S407)。
図42は、更新一覧画面の表示例を示す図である。更新一覧画面580は、更新パッケージ一覧表示領域581を有する。更新パッケージ一覧表示領域581には、バージョンアップされている販売パッケージの一覧が表示されている。当該一覧には、販売パッケージごとにチェックボタンが配置されている。
ユーザによって、更新対象とする販売パッケージのチェックボタンがチェックされ、更新ボタン582が選択されると(S408)、パッケージ更新部423は、更新対象とされた各販売パッケージに対するURLを指定して、当該各販売パッケージのダウンロード要求をダウンロードサーバ30のダウンロード処理部31に送信する(S409)。
すなわち、更新一覧画面データには、更新対象候補の各販売パッケージのURLが含まれている。また、更新ボタン582には、更新パッケージ一覧表示領域581においてチェック(選択)された販売パッケージのURLを指定したダウンロード要求の送信命令が関連付けられている。
続いて、ダウンロード処理部31は、受信されたダウンロード要求において指定されているURLによって識別される販売パッケージを販売パッケージ管理部32より取得し、当該販売パッケージをパッケージ更新部423に転送する(S410)。パッケージ更新部423は、受信された販売パッケージをHDD414内の所定の記憶領域に保存することにより、旧バージョンの販売パッケージを更新する。また、パッケージ更新部423は、受信された販売パッケージに格納されている販売パッケージ情報ファイルに記録されているプロダクトIDとバージョンに基づいて、インストール情報管理テーブル427を更新する。具体的には、パッケージ管理テービル425において、当該プロダクトIDに対応するパージョンの値が更新される。
次に、ディアクティベーション処理について説明する。図43は、ディアクティベーション処理の処理手順を説明するためのシーケンス図である。
ステップS501において、ディアクティベーション部425は、ユーザよりディアクティベーション指示の入力を受け付ける(S501)。ディアクティベーション指示の入力は、拡張機能管理画面560(図39参照)を介して行われる。すなわち、機能拡張管理画面560の販売パッケージ一覧表示領域561において、ディアクティベーション対象とする販売パッケージがチェックされ、ライセンス解除ボタン563が選択されると、ディアクティベーション部425は、チェックされた販売パッケージをディアクティベーション対象として認識する。
続いて、ディアクティベーション部425は、ディアクティベーション対象とされた販売パッケージのプロダクトIDと画像形成装置40の機体番号とを指定してディアクティベーション要求(ライセンスの解放要求)をアクティベーションサーバ部11のディアクティベーション部116に送信する(S502)。ディアクティベーション部116は、ライセンス管理テーブル121において、指定されたプロダクトID及び機体番号に係るレコードのステータスを「チェックアウト」から「チェックイン」に変更する。すなわち、当該ライセンスは使用されていないことを示す情報が記録される。なお、ディアクティベーションは、ステータスが「チェックアウト」のライセンスに関して実行可能である。したがって、対象となるレコードのステータスが「チェックアウト」でない場合、ディアクティベーション部116は、ディアクティベーション処理は失敗したと判断する。
続いて、ディアクティベーション部116は、ディアクティベーション処理結果(処理の成否)を画像形成装置40のディアクティベーション部425に返信する(S504)。ディアクティベーション処理に成功した場合、ディアクティベーション部425は、ディアクティベーション対象とされた販売パッケージと当該販売パッケージに対するライセンスファイル90とをHDD414より削除する(S505)。また、ディアクティベーション部425は、インストール情報管理テーブル427より、当該販売パッケージに対応するレコードを削除する。
これにより、当該画像形成装置40では当該販売パッケージに含まれる機能パッケージの利用ができなくなる。一方、当該販売パッケージのライセンスは解放されたため、当該ライセンスの有効期限内であれば必要に応じて他の画像形成装置40において当該ライセンスを利用することができる。すなわち、ディアクティベーション処理は、或る画像形成装置40における販売パッケージのライセンスを当該画像形成装置40のリース期間切れ等の理由により他の画像形成装置40に移動させたい場合に特に有用である。
ディアクティベーション処理は、画像形成装置40によって、有効期限が切れたライセンスが検出された場合にも自動的に実行される。
図44は、画像形成装置におけるディアクティベーションの自動実行処理の処理手順を説明するためのフローチャートである。
例えば、画像形成装置40の起動時、又は予め設定された所定時刻等において(S511でYes)、ディアクティベーション部425は、画像形成装置40のHDD414に保存されている全てのライセンスファイル90の有効期限をチェックする(S512)。具体的には、ディアクティベーション部425は、ライセンスファイル90の有効期限と現在時刻とを比較し、有効期限が切れているライセンスファイル90の有無を確認する。有効期限が切れているライセンスファイル90が存在した場合(S512でYes)、ディアクティベーション部425は、当該ライセンスファイル90に記録されているプロダクトID(販売パッケージ)について、図43において説明したディアクティベーション処理を実行する(S513)。
上述したように、第一の実施の形態によれば、ライセンスの更新、販売パッケージの更新、及びディアクティベーション処理についても、ユーザは、画像形成装置40に表示される画面の誘導にしたがって、簡便に作業を行うことができる。
また、販売パッケージの実体とライセンスとが明確に分離されているため、ライセンスのみ更新したり、販売パッケージのみ更新(バージョンアップ)したりといったように、柔軟な運用を可能とすることができる。
続いて、登録済みのグループの構成の編集について説明する。図45は、グループの編集処理の処理手順を説明するためのシーケンス図である。
例えば、販売サイトの管理者により、グループの変更開始指示が販売サーバ20に入力されると、販売サーバ20の商品登録部21は、グループの一覧情報の取得要求をアクティベーションサーバ部11の販売サーバ連携部111に送信する(S51)。販売サーバ連携部111は、グループの一覧情報の取得要求の受信に応じ、グループの一覧情報をグループIDマスタ120及びグループ名称マスタ122より取得する。販売サーバ連携部111は、取得されたグループの一覧情報を商品登録部21に返信する(S52)。
商品登録部21は、受信したグループの一覧情報に基づいてグループの一覧画面を販売サーバ20の表示装置に表示させる(S53)。当該一覧画面において、いずれかのグループが選択され、編集が指示されると(S54)、商品登録部21は、選択されたグループを編集対象として、グループ編集画面220(図16参照)を表示させる(S55)。すなわち、表示されたグループ編集画面220の領域221、領域222には、選択されたグループのグループID、グループ名称が表示される。
続いて、グループ編集画面220において、グループに対する更なる販売パッケージの追加又はグループからの販売パッケージの除去等のグループの構成情報の編集作業が行われる。編集作業の終了後、ボタン228がクリックされると(S57)、商品登録部21は、グループの構成の変更要求を販売サーバ連携部111に送信する(S58)。グループの構成の変更要求には、編集対象とされたグループのグループID及びグループ名称、変更後のグループの構成情報(グループに属する販売パッケージのプロダクトID)、並びに販売サーバ20の記憶装置に記憶されているドメイン名、販売サイトID、及びパスワード等がパラメータとして含まれる。販売サーバ連携部111は、グループの構成の変更要求に応じ、グループの構成情報の変更処理を実行する(S59)。具体的には、編集対象とされたグループに関して、変更要求に含まれている構成情報によってグループIDマスタ120に記録されている構成情報が更新される。グループの変更処理の実行後、販売サーバ連携部111は、当該変更処理の成否を示す応答を商品変更部21に返信する(S60)。
続いて、ステップS59の詳細について説明する。図46は、グループの変更処理の処理手順を説明するための図である。同図において、ステップS59a及びS59bは、図17のステップS40a又はS40bと同じである。
続いて、販売サーバ連携部111は、グループの構成の変更要求に含まれているグループID及び販売サイトIDを含むレコードがグループIDマスタ120に登録されているか否かを確認する(S59c)。当該レコードが登録されている場合、販売サーバ連携部111は、当該グループに関するいずれかの商品のプロダクトキー(ライセンス)が使用中であるか否かを確認する(S59d)。具体的には、当該グループに属する販売パッケージのプロダクトIDが、グループの構成の変更要求に含まれているグループIDに基づいてグループIDマスタ120より取得される。続いて、取得されたプロダクトIDに係る販売パッケージについて、ライセンスが使用されているか否かがライセンス管理テーブル121(図20参照)に基づいて確認される。ライセンスが使用されているか否かとは、ステータスがチェックアウトであるか否かを意味する。ライセンスが使用されていない場合、販売サーバ連携部111は、グループの構成の変更要求に応じた更新をグループIDマスタ120に対して行う(S59e)。具体的には、販売サーバ連携部111は、グループの構成の変更要求に含まれているグループID及び販売サイトIDに対して登録されている既存のプロダクトIDを削除し、当該変更要求に含まれているプロダクトIDを、当該グループID及び当該販売サイトIDに対して登録する。
続いて、販売サーバ連携部111は、グループの構成の変更の成功を示す応答を商品登録部21に返信する(S59f)。一方、ステップS59aにおいて必要なパラメータが無いと判定された場合、ステップS59bにおいて販売サーバ20の認証に失敗した場合、ステップS59cにおいてグループID及び販売サイトIDがグループIDマスタ120に登録されていないと判定された場合、又はステップS59dにおいてグループIDに係るプロダクトキーが既に使用されていると判定された場合は、販売サーバ連携部111は、グループの構成に変更に失敗したことを示すエラー応答を商品登録部21に返信する(S59g)。
なお、例えば、ライセンス管理テーブル121において、変更要求の対象とされたグループに属する販売パッケージのライセンス形態がトライアルライセンスとして登録されている場合は、当該グループに属するいずれかの販売パッケージのライセンスが使用されていたとしても、グループの編集(特に、グループに対する販売パッケージの追加)を許可するようにしてもよい。トライアルライセンスは、いわゆる「お試し用」として提供されるため、グループに属するいずれかの販売パッケージの使用が開始された後であっても、ユーザに試用させる販売パッケージを増加させることで、商品の販売促進を期待できるからである。
続いて、グループの削除について説明する。図45のステップS53において表示されるグループの一覧画面において、いずれかのグループが選択され、削除が指示されると、商品登録部21は、選択されたグループに係るグループID及び販売サイトID等を含むグループの削除要求をライセンス管理サーバ10の販売サーバ連携部111に送信する。当該削除要求に応じて、販売サーバ連携部111は、図47に示される処理を実行する。
図47は、グループの削除処理の処理手順を説明するための図である。同図において、ステップS61aからS61cについては、図46のステップS59aからS59cと同様である。
ステップS61dにおいて、販売サーバ連携部111は、グループの削除要求に含まれているグループID及び販売サイトIDを含むレコードの削除フラグに基づいてグループの削除の可否を判定する。具体的には、当該削除フラグの値が「ON」である場合、グループの削除は可能であると判定される。当該削除フラグの値が「OFF」である場合、グループの削除は不可能であると判定される。
グループの削除は可能であると判定された場合、販売サーバ連携部111は、グループの削除要求に応じた更新をグループIDマスタ120に対して行う(S61e)。具体的には、販売サーバ連携部111は、グループの削除要求に含まれているグループID及び販売サイトIDを有するレコードをグループIDマスタ120より削除する。また、販売サーバ連携部111は、当該グループIDに係るレコードをグループ名称マスタ122より削除する。ステップS61f、S61gは、図46のステップS59f、S59gより自明でるためその説明は省略する。
上述したように、グループの登録後であっても、当該グループの構成は、販売サイトの任意に応じて変更することができる。但し、グループに属するいずれかの販売パッケージのライセンスが使用されている場合は、グループの構成の変更は制限(禁止)される。また、グループに係る商品が購入された後は、グループの削除は制限(禁止)される。したがって、市場におけるグループの状態と、グループに関する管理情報との状態とを適切に整合させることができる。
次に、第二の実施の形態について説明する。図48は、第二の実施の形態における機器管理システム構成例を示す図である。図48中、図1と同一部分には同一符号を付し、その説明は適宜省略する。
図48では、ユーザ環境E1において、機器管理装置60が追加されている。機器管理装置60は、画像形成装置40において動作するコンポーネントや当該コンポーネントのライセンス(利用権限)の取得及び導入等を一括して行うPC(Personal Computer)等のコンピュータである。機器管理装置60のハードウェア構成は、図6に示されるものと同様でよい。但し、機器管理装置60は、液晶ディスプレイ等の表示装置、並びにキーボード及びマウス等の入力装置を備える。機器管理装置60は、各画像形成装置40とLAN(Local Area Network)等のネットワーク70(有線又は無線の別は問わない。)を介して接続されている。なお、ユーザPC50もネットワーク70に接続されていてもよい。また、ユーザPC50が機器管理装置60を兼ねてもよい。
図49は、第二の実施の形態における機器管理装置の機能構成例を示す図である。
同図において、機器管理装置60は、UI制御部611、パッケージ情報取得部612、機器情報取得部613、インストール先受付部614、妥当性確認部615、パッケージ取得部616、ライセンス取得部617、インストール制御部618、アンインストール先判定部619、ディアクティベーション制御部620、及びアンインストール制御部621等を有する。これら各部は、機器管理装置60にインストールされたプログラムが機器管理装置60のCPUに実行させる処理によって実現される。
UI制御部611は、ユーザによる指示(販売パッケージのインストール又はアンインストール等の指示等)を受け付ける。パッケージ情報取得部612は、インストール又はアンインストール対象とされた販売パッケージの構成情報をライセンス管理サーバ10より取得する。機器情報取得部613は、画像形成装置40より機器情報を取得する。機器情報には、画像形成装置40にインストールされている販売パッケージ及びファームウェアに関する情報が含まれる。インストール先受付部614は、販売パッケージのインストール先とする画像形成装置40の指定をユーザより受け付ける。妥当性確認部615は、インストール対象とされた販売パッケージについて、インストール先とされた画像形成装置40へのインストールの妥当性の検証をライセンス管理サーバ10の依存関係判定部151に実行させる。
パッケージ取得部616は、インストール対象の販売パッケージをダウンロードサーバ30よりダウンロード(取得)する。ライセンス取得部617は、インストール対象の販売パッケージに関するライセンスファイル90をライセンス管理サーバ10より取得する。インストール制御部618は、販売パッケージ及びライセンスファイル90を画像形成装置40に送信する。
アンインストール先判定部619は、アンインストール対象とされた販売パッケージがインストールされている画像形成装置40を判定する。ディアクティベーション制御部620は、画像形成装置40に対してライセンスファイル90の削除要求を送信し、ライセンス管理サーバ10に対して当該ライセンスファイル90に係るライセンスの解放を要求する。アンインストール制御部621は、販売パッケージのアンインストールを画像形成装置40に要求する。
なお、ライセンス管理サーバ10、ダウンロードサーバ30、及び画像形成装置40等、他の装置の機能構成については第一の実施の形態と同様でよい。
以下、機器管理システム2の処理手順について説明する。図50は、第二の実施の形態における販売パッケージのインストール及びアクティベーションの処理手順を説明するためのシーケンス図である。同図において、画像形成装置40のユーザは、販売パッケージに係るいずれかの商品を購入し、当該商品のプロダクトキーを入手済みであるとする。商品の購入方法及びプロダクトキーの入手方法については、第一の実施の形態と同様でよい。なお、図50では、機器管理装置60が操作対象とされる。
機器管理装置60のUI制御部611は、表示装置に表示させている初期画面を介して販売パッケージのインストールの開始指示の入力を受け付けると、プロダクトキー入力画面を表示装置に表示させる(S601)。インストール対象の販売パッケージ(以下、「カレント販売パッケージ」という。)のプロダクトキーがプロダクトキー入力画面を介してユーザによって入力されると(S602)、パッケージ情報取得部612は、入力されたプロダクトキーを指定して当該プロダクトキーに係るパッケージ情報の取得要求をライセンス管理サーバ10のインストール支援部152に送信する(S603)。
ライセンス管理サーバ10のインストール支援部152は、パッケージ情報の取得要求の受信に応じ、図22のステップS153〜S155と同様の手順によってプロダクトキーの有効性の確認をプロダクトキー検証部113に実行させる。
当該プロダクトキーが有効であると判定された場合、インストール支援部152は、受信されたプロダクトキーに対して登録されている情報をコンポーネント管理テーブル155(図26参照)より取得し、取得された情報をパッケージ情報としてパッケージ情報取得部612に返信する(S604)。したがって、パッケージ情報には、少なくとも当該プロダクトキーに関連付けられているプロダクトID(すなわち、カレント販売パッケージのプロダクトID)が含まれている。また、当該プロダクトキーがグループライセンス又はボリュームライセンスに係るものである場合、複数のプロダクトID(複数のレコード)に係る情報がパッケージ情報に含まれる。
パッケージ情報取得部612によってパッケージ情報が受信されると、機器管理装置60のUI制御部611は、受信されたパッケージ情報を含む画面(確認画面)を表示装置に表示させ、カレント販売パッケージの内容及びそのライセンスの内容をユーザに確認させる(S605)。
ユーザによって、インストール作業の継続指示が入力されると(例えば、確認画面においてOKボタンが押下されると)、インストール先受付部614は、画像形成装置40の一覧を含む機器選択画面を表示装置に表示させ、カレント販売パッケージをインストールする画像形成装置40をユーザに選択させる(S606)。機器選択画面においては、複数の画像形成装置40を選択することも可能である。なお、機器選択画面では、予めそのIPアドレス及びホスト名等が記憶装置に記憶されている画像形成装置40が表示対象とされる。または、機器情報取得部613が、ブロードキャスト等をネットワーク70上に発行することにより、ネットワーク70に接続されている画像形成装置40を動的に検索し、検索された画像形成装置40のホスト名等を機器選択画面に表示させてもよい。
続いて、機器情報取得部613は、機器選択画面において選択された各画像形成装置40に対して機器情報の取得要求を送信する(S607)。機器情報の取得要求を受信した各画像形成装置40のインストール部421は、インストール情報管理テーブル427(図28参照)に記録されている情報を取得し、取得された情報と当該画像形成装置40の機体番号とを含む情報を機器情報として機器情報取得部613に返信する(S608)。
続くステップS609は、機器情報が取得された(機器選択画面で選択された)画像形成装置40ごとに実行されるループ処理である。ループ処理において処理対象とされる画像形成装置40を以下、「カレント機器」という。
ステップS609−1において、妥当性確認部615は、カレント機器の機器情報と、パッケージ情報取得部612によって取得されたパッケージ情報とを含む妥当性検証要求をライセンス管理サーバ10に送信する。ここでいう「妥当性」とは、カレント販売パッケージに含まれる機能パッケージをカレント機器にインストールすることの妥当性である。ライセンス管理サーバ10の依存関係判定部151は、妥当性検証要求の受信に応じ、図33において説明した処理と同様の処理により、カンレント販売パッケージの依存関係を検証する。依存関係に問題が無い場合、依存関係判定部151は、妥当性は有ると判定する。依存関係に問題が有る場合、依存関係判定部151は、妥当性は無いと判定する。
続いて、依存関係判定部151は、妥当性の検証結果を妥当性確認部615に返信する(S609−2)。妥当性が有ると判定された場合であって、依存パッケージがカレント機器にインストールされていない場合、検証結果には、当該依存パッケージ(以下、「未導入依存パッケージ」という。)についてコンポーネント管理テーブル155に記録されている情報が含められる。当該情報は、当該未導入依存パッケージの取得指示に相当する。
妥当性は有ることを示す検証結果が受信されると、パッケージ取得部616は、カレント販売パッケージのパッケージ情報に含まれているダウンロードパス(URL)に基づいて、カレント販売パッケージのダウンロード要求をダウンロードサーバ30に送信する(S609−3)。ダウンロード要求に応じ、ダウンロード処理部31は、当該ダウンロード要求において指定されているURLによって識別される販売パッケージを販売パッケージ管理部32より取得し、当該販売パッケージを返信する(S609−4)。カレント販売パッケージが複数の場合、ダウンロード(S609−3、S609−4)は複数回繰り返される。また、ステップS609−2において未導入依存パッケージのパッケージ情報を含む検証結果が受信された場合、未導入依存パッケージに関してもダウンロードが実行される。なお、カレントパッケージが複数である場合とは、例えば、ステップS601において入力されたプロダクトキーがグループライセンスに係るものである場合や、複数のプロダクトキーが入力された場合等である。
続いて、ライセンス取得部617は、ステップS601において入力されたプロダクトキーと、カレント販売パッケージのプロダクトIDと、カレント機器の機体番号とを指定して、ライセンスの使用要求をライセンス管理サーバ10に送信する(S609−5)。
ライセンス管理サーバ10のライセンス発行部115は、図35と同様の処理を実行することによりライセンスファイル90を生成し、生成されたラインセンスファイル50をライセンス取得部617に返信する(S609−6)。
なお、ライセンス取得部617は、パッケージ取得部616による販売パッケージの取得(ダウンロード)に成功した場合にステップS609−5を実行する。すなわち、ライセンス取得部617は、販売パッケージが正常に取得できなかった場合には、ライセンスファイル90の取得は行わない。販売パッケージが取得できない場合、当該販売パッケージのインストールは不可能である。それにも拘わらず当該販売パッケージに係るライセンスファイル90が取得されてしまうと、実際には利用していない販売パッケージについてライセンスの使用が開始されたこととされてしまい、ユーザに不利益を及ぼしてしまうからである。
続いて、インストール制御部618は、ステップS609−4において未導入依存パッケージが取得されている場合、当該未導入依存パッケージをカレント機器に送信し、当該未導入依存パッケージのインストールをカレント機器に要求する(S609−7)。カレント機器のインストール部421は、未導入依存パッケージをインストールし、当該未導入依存パッケージの情報(プロダクトID等)をインストール情報管理テーブル427に記録する。
続いて、インストール制御部618は、未導入依存パッケージのインストール結果をカレント機器に問い合わせる(S609−8)。当該問い合わせ(ポーリング)は、カレント機器においてインストールが完了し、インストール結果が返信されるまで繰り返される。
先に未導入依存パッケージをインストールさせるのは、依存先のコンポーネントがインストールされていないことによる、販売パッケージのインストールの失敗を回避するためである。
続いて、インストール制御部618は、ステップS609−4において取得されている販売パッケージ(カレント販売パッケージ)、及びステップS604−6において取得されているライセンスファイル90をカレント機器に送信し、当該販売パッケージのインストール及びアクティベーションをカレント機器に要求する(S609−9)。カレント機器のインストール部421は、受信された販売パッケージ及びライセンスファイル90に関して図22において説明した処理を実行する。その結果、販売パッケージはカレント機器において利用可能な状態となる。
続いて、インストール制御部618は、販売パッケージのインストール結果をカレント機器に問い合わせる(S609−10)。当該問い合わせ(ポーリング)は、カレント機器においてインストールが完了し、インストール結果が返信されるまで繰り返される。
続いて、販売パッケージのアンインストール及びディアクティベーション(ライセンスの解放)に関する処理について説明する。
図51は、第二の実施の形態における販売パッケージのアンインストール及びディアクティベーションの処理手順を説明するためのシーケンス図である。
ステップS701において、機器管理装置60のUI制御部611は、表示装置に表示させているアンインストール画面を介してアンインストール対象のプロダクトキーの入力をユーザより受け付ける。続いて、パッケージ情報取得部612は、入力されたプロダクトキーを指定して当該プロダクトキーに係るパッケージ情報の取得要求をライセンス管理サーバ10に送信する(S702)。
続いて、ライセンス管理サーバ10のコンポーネント管理部154は、図50のステップS603に応じて実行される処理と同様の処理を実行し、受信されたプロダクトキーに係る販売パッケージのパッケージ情報をパッケージ情報取得部612に返信する(S703)。当該プロダクトキーがグループライセンスに係るものである場合、複数の販売パッケージに関するパッケージ情報が返信される。
当該プロダクトキーがグループライセンスに係るものである場合、すなわち、複数の販売パッケージに関するパッケージ情報が受信された場合、UI制御部611は、当該販売パッケージの一覧情報を含む販売パッケージ選択画面を表示装置に表示させ、アンインストール対象とする販売パッケージをユーザに選択させる(S704)。以下、選択された販売パッケージを「カレント販売パッケージ」という。
続いて、機器情報取得部613は、各画像形成装置40に対して機器情報の取得要求を送信する(S705)。各画像形成装置40のディアクティベーション部424は、機器情報の取得要求に応じ、インストール情報管理テーブル427に記録されている情報を取得し、取得された情報と当該画像形成装置40の機体番号とを含む情報を機器情報として機器情報取得部613に返信する(S706)。
続いて、アンインストール先判定部619は、ステップS703において取得されたパッケージ情報を、ステップS706で各画像形成装置40取得された機器情報と照合し、当該パッケージ情報に係る販売パッケージがインストールされている画像形成装置40を判定する(S707)。具体的には、当該パッケージ情報に含まれているプロダクトID(販売パッケージのプロダクトID)を含む機器情報に係る画像形成装置40が、当該販売パッケージのインストールされている画像形成装置40(すなわち、販売パッケージのアンインストール先の画像形成装置40)であると判定される。
続くステップS708は、販売パッケージのアンインストール先の画像形成装置40ごとに実行されるループ処理である。ループ処理において処理対象とされる画像形成装置40を以下、「カレント機器」という。
ステップS708−1において、ディアクティベーション制御部620は、カレント販売パッケージのプロダクトIDを指定して、ディアクティベート要求(ライセンスファイル90の削除要求)をカレント機器に送信する。カレント機器のディアクティベーション部424は、当該要求に応じ、指定されたプロダクトIDに係るライセンスファイル90を削除する。
続いて、ディアクティベーション制御部620は、ライセンスファイル90の削除処理の結果をカレント機器に問い合わせる(S708−2)。当該問い合わせ(ポーリング)は、カレント機器においてライセンスファイル90の削除処理が完了し、当該削除処理の処理結果が返信されるまで繰り返される。
続いて、アンインストール制御部621は、カレント販売パッケージのプロダクトIDを指定して、アンインストール要求(販売パッケージの削除要求)をカレント機器に送信する(S708−3)。カレント機器のディアクティベーション部424は、当該要求に応じ、指定されたプロダクトIDに係る販売パッケージをアンインストール(削除)する。
続いて、ディアクティベーション制御部620は、カレント販売パッケージのアンインストール結果をカレント機器に問い合わせる(S708−4)。当該問い合わせ(ポーリング)は、カレント機器においてアンインストールが完了し、インストール結果が返信されるまで繰り返される。
ステップS708が、販売パッケージのアンインストールの対象とされた全ての画像形成装置40について実行された後、ディアクティベーション制御部620は、カレント販売パッケージのプロダクトIDと、当該全ての画像形成装置40の機体番号とを指定してディアクティベート要求(ライセンスの解放要求)をライセンス管理サーバのディアクティベーション部116に送信する(S709)。ディアクティベーション部116は、図43のステップS503において説明した通りの処理を実行する。その結果、指定されたプロダクトID及び機体番号に係るライセンスのステータスは「チェックイン」に変更される。続いて、ディアクティベーション部116は、ディアクティベーション処理結果(処理の成否)を機器管理装置60のディアクティベーション制御部620に返信する(S210)。
上述したように、第二の実施の形態における機器管理装置60によれば、複数の画像形成装置40に対して一括してインストール及びアクティベーション(ライセンスの使用開始)等を行うことができる。したがって、特に、画像形成装置40の台数が多いユーザ環境E1において、ユーザの作業負担を著しく軽減させることができる。
なお、本実施の形態においては画像形成装置40を機器の一例として説明したが、本発明の適用範囲は画像形成装置40に限定されない。プログラムを追加(インストール)可能な機器であれば、本発明は有効に適用されうる。
次に、第三の実施の形態について説明する。図52は、第三の実施の形態における機器管理システム構成例を示す図である。図52中、図1と同一部分には同一符号を付し、その説明は適宜省略する。
図52では、ユーザ環境E1において、Webクライアント端末65が追加されている。Webクライアント端末65は、Webブラウザを備えたPC(Personal Computer)等のコンピュータ又は電子機器である。Webクライアント端末65のハードウェア構成は、例えば、図6に示されるものと同様でよい。但し、Webクライアント端末65は、液晶ディスプレイ等の表示装置、並びにキーボード及びマウス等の入力装置を備える。Webクライアント端末65は、各画像形成装置40とLAN(Local Area Network)等のネットワーク75(有線又は無線の別は問わない。)を介して接続されている。なお、ユーザPC50がWebクライアント端末65を兼ねてもよい。
図53は、第三の実施の形態における機器管理システムの機能構成例を示す図である。図53中、図5と同一部分には同一符号を付し、その説明は省略する。
同図において、画像形成装置40は、Webサーバ部428を更に有する。Webサーバ部428は、第一の実施の形態においてUI制御部426によって操作パネル45に表示されていた画面について、Webクライアント端末65に表示させるための処理を実行する。具体的には、Webサーバ部428は、各種画面のHTMLデータをWebクライアント端末65に送信する。
一方、Webクライアント端末65は、Webブラウザ651を有する。Webブラウザ651は、Webサーバ部428より送信されるHTMLデータを受信し、当該HTMLデータに基づいて各種画面をWebクライアント端末651の表示装置に表示させる。
すなわち、第三の実施の形態の機器管理システム3によれば、ユーザは、第一の実施の形態において操作パネル45を介して行う操作を、Webクライアント端末65を介して遠隔的に行うことができる。具体的には、ユーザは、図22のシーケンス図における、ステップS151、S159、及びS165における指示入力を、Webブラウザ651が表示させる画面を介して行うことができる。したがって、第三の実施の形態では、Webサーバ部428が、ライセンスキーの入力を受け付ける入力手段の一例に相当する。
なお、上記各実施の形態においては、ライセンス管理サーバ10、販売サーバ20,及びダウンロードサーバ30がそれぞれ別個の装置であるとして説明した。但し、ライセンス管理サーバ10が、販売サーバ20及びダウンロードサーバ30の少なくともいずれか一方の機能を含むように構成されてもよい。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。