説明

画像形成装置、ライセンス判定方法、及びプログラム

【課題】プログラムに対するライセンスの柔軟性を向上させることのできる画像形成装置、ライセンス判定方法、及びプログラムの提供を目的とする。
【解決手段】複数のプログラムモジュールより構成されるアプリケーションを実行可能な画像形成装置であって、前記複数のプログラムモジュールと前記アプリケーションに対する複数のライセンスデータとの対応情報が記憶された対応情報記憶手段と、前記アプリケーションに含まれる前記プロラムモジュールごとに、前記対応情報において対応付けられているライセンスデータに基づいて起動の許否を判定する判定手段と、前記判定手段によって起動が許可されたプログラムモジュールを起動させる起動制御手段とを有することにより上記課題を解決する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像形成装置、ライセンス判定方法、及びプログラムに関し、特に複数のプログラムモジュールより構成されるアプリケーションを実行可能な画像形成装置、ライセンス判定方法、及びプログラムに関する。
【背景技術】
【0002】
近年では、主に複合機又は融合機と呼ばれる画像形成装置において、その出荷後に新たなアプリケーションの開発及びインストールが可能とされているものがある(例えば、特許文献1)。このような構成を有する画像形成装置によれば、その機能の拡張性やカスタマイズの容易性等を著しく向上させることができるという利益がある。
【0003】
一方で、単独で流通可能なアプリケーションについては、不正コピー等による不正利用の虞がある。そこで、特許文献1では、アプリケーションのライセンス管理を行うことにより、不正利用の防止が図られている。
【0004】
ところで、アプリケーションの構成は柔軟化しており、いわゆるプラグインと呼ばれる機能モジュールによって機能拡張が可能とされているものもある。また、ユーザの利用形態は多様化しており、アプリケーションが提供可能な全機能のうち特定の機能のみ利用できればよいユーザもある。それぞれのユーザの利用形態に応じてアプリケーションのライセンスを管理することができれば、ユーザにとって便宜であるばかりでなく、アプリケーションを販売する側にとってもビジネスチャンスの拡大を期待できる。
【特許文献1】特開2004−118237号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、従来は、アプリケーションごとにライセンスが付与されていたため、一部の機能しか利用しないユーザであっても全機能分について課金されるという不都合があった。
【0006】
また、アプリケーションのライセンスによってプラグインのライセンスも与えられていたため、プラグインの開発者は正当な対価を得る機会を逸する可能性があるという問題があった。
【0007】
本発明は、上記の点に鑑みてなされたものであって、プログラムに対するライセンスの柔軟性を向上させることのできる画像形成装置、ライセンス判定方法、及びプログラムの提供を目的とする。
【課題を解決するための手段】
【0008】
そこで上記課題を解決するため、本発明は、複数のプログラムモジュールより構成されるアプリケーションを実行可能な画像形成装置であって、前記複数のプログラムモジュールと前記アプリケーションに対する複数のライセンスデータとの対応情報が記憶された対応情報記憶手段と、前記アプリケーションに含まれる前記プロラムモジュールごとに、前記対応情報において対応付けられているライセンスデータに基づいて起動の許否を判定する判定手段と、前記判定手段によって起動が許可されたプログラムモジュールを起動させる起動制御手段とを有することを特徴とする。
【0009】
このような画像形成装置では、プログラムに対するライセンスの柔軟性を向上させることができる。
【発明の効果】
【0010】
本発明によれば、プログラムに対するライセンスの柔軟性を向上させることができる。
【発明を実施するための最良の形態】
【0011】
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態におけるライセンス管理システムの構成例を示す図である。図1において、ライセンス管理システムは、ユーザサイトA及びライセンス発行サイトB等より構成されている。
【0012】
ユーザサイトAは、画像形成装置(機器)のユーザ環境であり、当該ユーザのオフィス等が相当する。したがって、ユーザサイトAは、画像形成装置のユーザに応じて複数存在し得る。ユーザサイトAでは、ライセンス制御装置20と、画像形成装置10a、10b、10c、及び10d等の一台以上の画像形成装置(以下、総称する場合「画像形成装置10」という。)とがLAN(Local Area Network)等のネットワーク30(有線又は無線の別は問わない。)を介して接続されている。画像形成装置10は、一般的に、複合機又は融合機と称される機器であり、コピー機能、プリンタ機能、スキャナ機能、及びファクス機能等、複数の機能を実現するためのハードウェアを一台の筐体内に備える。画像形成装置10には、これらの機能を利用した各種のアプリケーションのインストールが可能である。但し、本発明の適用対象となりうる画像形成装置は、複合機に限られず、少なくともアプリケーションのインストール及び実行が可能であればよい。したがって、コピー機、ファクシミリ、プリンタ、又はスキャナ等の単一の機能を実現する画像形成装置であってもよい。
【0013】
ライセンス制御装置20は、ユーザサイトAにおける画像形成装置10において動作するアプリケーションのライセンス(利用権限)を一括して取得等するためのPC(Personal Computer)等のコンピュータである。すなわち、画像形成装置10にインストールされた各種のアプリケーションは、ライセンス制御装置20によって取得されるライセンスによって利用可能となる。
【0014】
ライセンス発行サイトBは、ユーザサイトAにおいて利用される画像形成装置10のアプリケーションに対するライセンスをユーザサイトAに対して発行する環境である。例えば、ライセンス発行サイトBは、画像形成装置10のメーカーによって運用される。ライセンス発行サイトBには、ライセンスサーバ50が設置されている。ライセンスサーバ50は、ライセンスの生成及び発行等を実行するコンピュータである。
【0015】
なお、ライセンス制御装置20及びライセンスサーバ50は、インターネット等の広域ネットワーク70を介して接続されている。
【0016】
画像形成装置10の詳細について説明する。図2は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図2において、画像形成装置10は、コントローラ11、スキャナ12、プリンタ13、モデム14、ネットワークインタフェース15、及び操作パネル16等のハードウェアを有する。
【0017】
コントローラ11は、CPU111、RAM112、ROM113、及びHDD114等を含む。ROM113には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。RAM112は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。CPU111は、RAM112にロードされたプログラムを処理することにより、各種の機能を実現する。HDD114には、プログラムやプログラムが利用する各種のデータ等が記録される。
【0018】
スキャナ12は、原稿より画像データを読み取るためのハードウェアである。プリンタは13、画像データを印刷用紙に印刷するためのハードウェアである。モデム14は、電話回線に接続するためのハードウェアであり、FAX通信による画像データの送受信を実行するために用いられる。ネットワークインタフェース15は、LAN(Local Area Network)等のネットワーク(有線又は無線の別は問わない。)に接続するためのハードウェアである。操作パネル16は、ユーザからの入力の受け付けや、ユーザに対する情報の通知等を行うめのボタン、液晶パネル等を備えたハードウェアである。
【0019】
図3は、本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。同図において、画像形成装置10は、OS121、コントロールサービス122、及びアプリケーション123等のソフトウェアを有する。
【0020】
OS121は、UNIX(登録商標)等のいわゆるOS(Operating System)であり、各種ソフトウェアをプロセス単位で並列的に起動する。
【0021】
コントロールサービス122は、各種のハードウェアリソース等を制御するためのサービスを上位アプリケーション等に対して共通的に提供するソフトウェアモジュール群である。例えば、コントロールサービス122は、スキャナ12又はプリンタ13を制御するための手段や、モデム14又はネットワークインタフェース15を介した通信手段等を提供する。
【0022】
アプリケーション123は、コントロールサービス122やOS121等を利用して、ユーザより要求された各種のジョブを画像形成装置10に実行させるプログラムである。アプリケーション123は、標準アプリ130とSDKアプリ140とに大別される。
【0023】
標準アプリ130は、画像形成装置10に標準的に(出荷時に予め)実装されているアプリケーションをいう。図中では、コピージョブを制御するコピーアプリ131、スキャンジョブを制御するスキャンアプリ132、ファクス送信ジョブを制御するファクスアプリ133、印刷ジョブを制御するプリントアプリ134等が例示されている。
【0024】
SDKアプリ140は、画像形成装置10に専用のSDK(ソフトウェア開発キット)を使用して開発されたアプリケーションをいい、SDKプラットフォーム150上で動作する。すなわち、画像形成装置10には、その出荷後に専用のSDKを使用して新たにアプリケーションを追加することができる。図中では、SDKアプリ141、142、及び143の三つのSDKアプリ140が例示されている。画像形成装置10におけるSDKアプリ140の起動は、それぞれに対するライセンスキーが取得さされていることが前提とされる。ライセンスキーは、SDKアプリ140の利用を特定の画像形成装置10上において許可するデータである。なお、本実施の形態において、SDKアプリ140は、Java(登録商標)言語で記述されたプログラムであるとする。但し、本発明の実施に際し、SDKアプリ140は、Java(登録商標)言語によって記述されたプログラムに限定されない。
【0025】
SDKプラットフォーム150は、SDKアプリ140の動作環境を提供するソフトウェアであり、例えば、Java(登録商標)仮想マシンや、Java(登録商標)ME(Micro Edition)において標準で提供されているクラス群やコントロールサービス122の機能をラッピングしたクラス群等を含む。また、SDKプラットフォーム150は、SDKアプリ140に関するライセンス管理を行う。例えば、SDKアプリ140は、各SDKアプリ140に対するライセンスキーを管理し、当該ライセンスキーに基づいてSDKアプリ140の起動制御等を行う。
【0026】
図4は、SDKプラットフォームにおけるライセンス管理機能とSDKアプリの構成例とを示す図である。
【0027】
同図に示されるように、一つのSDKアプリ140は、一つ以上の機能モジュール(例えば、JAR(Java(登録商標) Archive)ファイル等のプログラムモジュール)と機能モジュールごとに付随する(対応する)ライセンス情報ファイルを含む。機能モジュールの中にはライセンス情報ファイルが付随しないものも存在しうる。各機能モジュールは、当該機能モジュールの属するSDKアプリ140が実行するジョブを構成する一部の機能を実現する。ライセンス情報ファイルは、対応する機能モジュールのライセンスに関する情報(ライセンス情報)を含むファイルである。例えば、各ライセンス情報ファイルには、それぞれが関連付けられている機能モジュールに対応するライセンスキーの識別子(後述されるライセンス識別番号)が格納されている。なお、ライセンス情報ファイルは、HDD114に保存されている。ライセンス情報ファイルが記憶されたHDD114によって対応情報記憶手段が構成される。なお、機能モジュール1401とライセンス情報ファイル1402との関連付けは、任意の方法で行えばよい。例えば、機能モジュール1401とライセンス情報ファイル1402とをzip形式等の同一の書庫ファイル内に格納してもよい。または、それぞれのファイル名に関連付けを識別するための文字列を含めるようにしてもよい。
【0028】
同図のSDKアプリ140には、機能モジュールとして機能モジュール1401a、1401b、1401c、及び1401d(以下、総称する場合「機能モジュール1401」という。)が含まれている。また、ライセンス情報ファイルとしてライセンス情報ファイル1402a、1402c、1402d(以下、総称する場合「ライセンス情報ファイル1402」という。)が含まれている。ライセンス情報ファイル1402aは、機能モジュール1401aに付随するライセンス情報ファイルである。ライセンス情報ファイル1402cは、機能モジュール1401cに付随するライセンス情報ファイルである。ライセンス情報ファイル1402dは、機能モジュール1401bに付随するライセンス情報ファイルである。なお、機能モジュール1401bにはライセンス情報ファイルは付随していない。これは、機能モジュール1401bは、ライセンス対象ではないこと(ライセンスチェックが不要(例えば、ライセンスフリー)であること)を示す。
【0029】
また、各機能モジュール1401間には、親子関係(従属関係又は依存関係)が存在する。同図では、機能モジュール1401aが親であり、他の機能モジュール1401b、1401c、及び1401dは子である。親となる機能モジュール1401aは、SDKアプリ140においていわゆるメインとなる処理を行う機能モジュール1401であり、以下、「メイン機能モジュール1401」ともいう。SDKアプリ140の起動には、メイン機能モジュール1401の存在が必須とされる。
【0030】
一方、子となる機能モジュール1401は、プラグインとして提供され、SDKアプリ140に対して機能拡張を行う。子となる機能モジュール1401を以下、「プラグイン機能モジュール1401」ともいう。プラグイン機能モジュール1401は、メイン機能モジュール1401と共に一つのパッケージに同梱されて配布されてもよいし、別個に配布されてもよい。また、各プラグイン機能モジュール1401の利用権限は、メインプラグイン機能モジュール1401と同一のライセンスキーに対応付けることも可能であるし、別個のライセンスキーに対応付けることも可能である。また、プラグイン機能モジュール1401間においても、その利用権限を同一のライセンスキーに対応付けることも可能であるし、別個のライセンスキーに対応付けることも可能である。
【0031】
このようなライセンスの従属関係は、ライセンス情報ファイル1402に定義されている。図5は、本実施の形態における各機能モジュールのライセンス情報ファイルの第一の定義例を示す図である。図5中、図4と同一物には同一符号を付している。
【0032】
同図において、各ライセンスファイル1402は、アプリID、ライセンス識別サブ番号、及びライセンス表示名等を含む。アプリIDは、機能モジュール1401が属するSDKアプリ140の識別子である。すなわち、各SDKアプリ140には、それぞれに一意なアプリIDが割り当てられている。ライセンス識別サブ番号は、SDKアプリ140の利用権限(ライセンス)の構成を識別するための番号(以下「ライセンス識別番号」という。)の枝番号である。ライセンス識別番号は、<アプリID>−<ライセンス識別サブ番号>という形式によって構成される。ライセンス識別番号が同じ機能モジュール1401は、同一のライセンスキーによって利用可能となる。また、複数のライセンス識別サブ番号が登録されている機能モジュール1401については、各ライセンス識別番号に係るライセンスキーによって利用可能となる。すなわち、一つのSDKアプリ140に対して、利用可能となる機能モジュール1401の構成に応じて複数種類のライセンスを設定することが可能である。ライセンス表示名は、ライセンス識別サブ番号ごと(ライセンス識別番号ごと)に定義され、ライセンスキーの導入時等にライセンスを選択させる際等の表示用文字列として用いられる。
【0033】
同図において、各ライセンス情報ファイル1402のアプリIDは「123456789」であり、同じである。これにより、各ライセンス情報ファイル1402に関連付いている各機能モジュール1401が同一のSDKアプリ140に属することが識別される。
【0034】
ライセンス情報ファイル1402aのライセンス識別サブ番号は「00」と「01」である。これにより、機能モジュール1401aは、ライセンス識別番号が「123456789−00」又は「123456789−01」に係るライセンスキーによって利用可能となることが識別される。また、ライセンス識別サブ番号に「00」が含まれていることにより、機能モジュール1401aは、メイン機能モジュール1401であることが識別される。また、ライセンス情報ファイル1402aのライセンス表示名は、「AAA_main」と「AAA_basic」である。「AAA_main」は、ライセンス識別番号「123456789−00」に対するライセンス表示名であり、「AAA_basic」は、ライセンス識別番号「123456789−01」に対するライセンス表示名である。
【0035】
一方、ライセンス情報ファイル1402c及び1402dのライセンス識別サブ番号は「01」である。したがって、機能モジュール1401c及び機能モジュール1401dは、ライセンス識別番号が「123456789−01」に係るライセンスキーによって利用可能となることが識別される。また、ライセンス情報ファイル1402c及び1402dのそれぞれには、ライセンス識別番号「123456789−01」に対するライセンス表示名として、ライセンスファイル1402aと同様に「AAA_basic」が登録されている。なお、機能モジュール1401c及び1401dは、それぞれ独立した機能モジュール1401であるが、同一のライセンス識別番号が割り当てられている。このような具体例としては、機能モジュール1401c及び1401dがセット販売されるプラグインである場合が挙げられる。
【0036】
同図におけるライセンス情報ファイル1402の第一の定義例により可能となるライセンスの構成を図6に示す。図6において、機能モジュールA、C、Dは、それぞれ、機能モジュール1401a、1401c、1401dを示す。
【0037】
図6に示されるように、ライセンス識別番号「123456789−00」(AAA_main)に係るライセンスキーでは、機能モジュール1401aに対してのみ利用権限が与えられる。一方、ライセンス識別番号「123456789−01」(AAA_basic)に係るライセンスキーでは、機能モジュール1401a、1401c、及び1401dに対して利用権限が与えられる。
【0038】
図4に戻る。SDKプラットフォーム150は、ライセンス導入部151、判定部153、及び起動制御部154等を有する。
【0039】
ライセンス導入部151は、ライセンス制御装置20よりSDKアプリ140(機能モジュール1401)に対するライセンスキーを取得し、当該ライセンスキーをライセンスファイル170に格納してHDD114に保存する。ライセンスキーの導入により、当該ライセンスキーに係るSDKアプリ140又は機能モジュール1401の利用が可能となる。
【0040】
起動制御部154は、SDKアプリ140の起動及び停止を制御する。SDKアプリ140を起動する際、起動制御部154は、判定部153にSDKアプリ140のライセンス状況の問い合わせを行うことにより、機能モジュール1401単位で起動(RAM112へのロード)を制御する。
【0041】
判定部153は、起動対象とされたSDKアプリ140に属する機能モジュール1401のうちライセンス対象となる機能モジュール1401(図4では、機能モジュール1401a、1401b、1401c)について、ライセンスキーに基づく起動の可否(許否)の判定を行う。
【0042】
更に、ライセンスサーバ50及びライセンス制御装置20の詳細について説明する。図7は、本発明の実施の形態におけるライセンスサーバの機能構成例を示す図である。同図において、ライセンスサーバ50は、ライセンス発行部51、ライセンス発行情報更新部52、及びライセンス発行情報管理テーブル53等を有する。これら各部は、ライセンスサーバ50にインストールされたプログラムがライセンスサーバ50のCPUに実行される処理によって実現される。
【0043】
ライセンス発行部51は、ユーザサイトAよりライセンスキーの発行が要求された際にライセンスキーを発行(生成)する。ライセンス発行情報更新部52は、プロダクトキーに対するライセンスキーの発行状況等を示す情報をライセンス発行情報管理テーブル53に記録する。
【0044】
プロダクトキーとは、製品が購入されるごとに一意に発行される(又は割り当てられる)識別子であり、例えば製品に添付されて購入者に配布される。ここで、製品とは、SDKアプリ140やプラグイン機能モジュール1401をいう。プラグイン機能モジュール1401単独でも製品が構成されうる。
【0045】
製品の購入時には、購入対象の製品に対するライセンスの種類(ライセンス識別番号に対応する種類)と当該製品に対するライセンス数が購入者によって選択される。すなわち、製品を購入するということは、当該製品に関するライセンスを購入するということにもなる。したがって、製品の購入に伴って配布されるプロダクトキーによってライセンスを受けることが可能な(ライセンスキーを入手することが可能な)機能モジュール1401が決まる。
【0046】
図8は、ライセンス発行情報管理テーブルの構成例を示す図である。同図におけるライセンス発行情報管理テーブル53は、アプリIDが「123456789」のSDKアプリ140に対するライセンス発行情報管理テーブル53である。すなわち、ライセンス発行情報管理テーブル53は製品ごとに作成される。
【0047】
同図に示されるように、ライセンス発行情報管理テーブル53は、発行されたプロダクトキーごとに、ライセンス識別番号、ライセンス数、ライセンス発行数、及びライセンスキー等を管理する。ライセンス識別番号及びライセンス数は、当該SDKアプリ140の購入時に指定されたものである。ライセンス発行数は、当該プロダクトキーに基づいて既に発行されたライセンス(ライセンスキー)の数である。ライセンスキーは、現在発行されているライセンスキーの一覧である。
【0048】
例えば、アプリIDが「123456789」のSDKアプリ140が、図4及び図5に示される構成を有している場合、図8のライセンス発行情報管理テーブル53によれば、プロダクトキー「AAA」は、ライセンス識別番号「123456789−01」に対応するため、機能モジュール1401a、1041c、及び1401dを利用可能なライセンスが1つ購入されたときに発行されたものであることが分かる。また、プロダクトキー「BBB」は、ライセンス識別番号「123456789−00」に対応するため、機能モジュール1401aを利用可能なライセンスが5つ購入されたときに発行されたものであることが分かる。また、各プロダクトキーに対応するライセンス発行数は0であるため、いずれについても未だライセンスキーは発行されていないことが分かる。なお、ライセンス発行情報管理テーブル53は、ライセンスサーバ50の記憶装置に記録されている。
【0049】
プロダクトキーは、ライセンス発行時の入力情報となる。SDKアプリ140の購入時点において、ユーザは、SDKアプリ140とプロダクトキーとを有している。この段階において、ユーザは、SDKアプリ140の画像形成装置10へのインストールは可能であるが、利用は許可されない。上記したようにSDKアプリ140の起動の許否はライセンスキーに基づいて判定されるからである。SDKアプリ140を利用したい場合、ユーザは、プロダクトキーに基づいてライセンスキーを入手する。一つのプロダクトキーに基づいて、ライセンス数分のライセンスキーを入手することができる。また、同一のプロダクトキーに属する機能モジュール1401は、同一のライセンスキーによって利用可能となる。なお、プロダクトキーに属する機能モジュール1401とは、プロダクトキーに対応する製品に含まれている機能モジュール1401をいう。
【0050】
図9は、本発明の実施の形態におけるライセンス制御装置の機能構成例を示す図である。同図において、ライセンス制御装置20は、ライセンス取得部22及びライセンス配信部23等を有する。
【0051】
ライセンス取得部22は、ユーザによる指示入力に応じ、ライセンスキーの発行をライセンスサーバ50より受ける。ライセンス配信部23は、発行されたライセンスキーを画像形成装置10へ配信する。
【0052】
以下、ライセンス管理システムの処理手順について説明する。図10は、ライセンスキーの発行処理及び画像形成装置へのライセンスキーの導入処理の処理手順を説明するための図である。同図の前提として、画像形成装置10には購入されたSDKアプリ140が少なくとも一つインストールされている。また、操作者(管理者等)による操作は、ライセンス制御装置20において行われる。
【0053】
ライセンス制御装置20においてライセンスキーの導入先の画像形成装置10が操作者によって選択されると、ライセンス制御装置20のライセンス取得部22は、選択された画像形成装置10に対して機器情報の取得要求を送信する(S101)。ライセンスキーの導入先の画像形成装置10の選択は、例えば、ライセンス制御装置20がネットワーク30に接続されている画像形成装置10を自動検索することにより表示される画像形成装置10の一覧情報の表示画面における操作によって行われる。但し、当該導入先の画像形成装置10のIPアドレスが直接入力されてもよい。
【0054】
機器情報の取得要求を受信した各画像形成装置10のライセンス導入部151は、機器情報の取得処理として以下を実行する(S102)。まず、当該画像形成装置10にインストールされている各SDKアプリ140に含まれている各ライセンス情報ファイル1402より、ライセンス識別番号とライセンス識別番号に対応するライセンス表示名とを取得する(S102−1、S102−2)。続いて、当該画像形成装置10の機体コードの生成処理を実行する(S102−3)。まず、当該画像形成装置10の機体番号を例えばROM113より取得する(S102−31)。続いて、取得された機体番号を暗号化することにより機体コードを生成する(S102−32)。すなわち、機体コードとは、機体番号が暗号化されたものをいう。
【0055】
続いて、ライセンス導入部151は、各ライセンス識別番号、各ライセンス表示名、及び機体番号を機器情報としてライセンス制御装置20に返信する(S103)。なお、一つのSDKアプリ140の各ライセンス情報ファイル1401より取得されるライセンス機別番号及びライセンス表示名は重複している場合がある。例えば、図5では、ライセンス識別番号「123456789−01」及びライセンス表示名「AAA_basic」は、三つのライセンス情報から取得される。したがって、ライセンス導入部151は、斯かる重複を排除したものを機器情報に含めて返信する。
【0056】
続いて、ライセンス制御装置20のライセンス取得部22は、受信した機器情報に含まれているライセンス表示名の一覧を表示装置に表示させ、当該一覧の中からライセンスキーの取得対象とするライセンス(ライセンス識別番号)を操作者に選択させる(S104)。続いて、ライセンス取得部22は、選択されたライセンスに係るSDKアプリ140に対するプロダクトキーの入力を操作者より受け付ける(S105)。なお、プロダクトキーは、予め操作者が入手しているという前提である。例えば、SDKアプリ140が記録媒体によって配布される場合は、当該記録媒体にプロダクトキーが添付されている。また、SDKアプリ140がネットワークを介して配信される場合は、当該SDKアプリ140と共に配信されるファイル内にプロダクトキーが記録されている。
【0057】
続いて、ライセンス取得部22は、入力されたプロダクトキーと、受信した機体コードと、選択されたライセンス識別番号とを伴ってライセンスキーの発行要求をライセンスサーバ50に送信する(S106)。
【0058】
当該要求に応じ、ライセンスサーバ50のライセンス発行部51は、当該要求に含まれるプロダクトキーのライセンス発行数がライセンス数に達しているかいないかをライセンス識別番号に含まれているアプリIDに対応するライセンス発行情報管理テーブル53に基づいて判定する。当該プロダクトキーのライセンス発行数がライセンス数に達していない場合、ライセンス発行部51は、受信された機体コード及びプロダクトキーと、ライセンス発行情報管理テーブル53とに基づいてライセンスキーを生成する(S107)。
【0059】
図11は、ライセンスキーの構成例を示す図である。同図において、一つのライセンスキーは、ライセンス識別番号及び機体コード等を含むデータとして構成される。当該ライセンスキーによって、「機体コード(機体番号)」によって識別される画像形成装置10上において、「ライセンス識別番号」に対応するSDKアプリ140の機能モジュール1401の利用が許可される。ライセンス識別番号及び機体コードは、受信されたライセンスの発行要求に含まれていたものである。なお、ライセンスキーは、ライセンス識別番号及び機体コードの単なる羅列ではなく、これらの情報がエンコードされ、更に暗号化されたものでもよい。
【0060】
ライセンスキーが発行された場合、ライセンス発行情報更新部52は、また、ライセンス発行情報管理テーブル53におけるライセンス発行数を更新する。
【0061】
図12は、ライセンスキーの発行により更新されたライセンス発行情報管理テーブルの例を示す図である。同図は、プロダクトキー「AAA」に対してライセンスキーが発行された例を示す。ライセンスキーの発行により、プロダクトキー「AAA」のライセンス発行数が1に更新されている。また、発行されたライセンスキー「BJP138−BUQ」が登録されている。なお、「BJP138−BUQ」は、エンコード及び暗号化されたライセンスキーを表現している。
【0062】
続いて、ライセンス発行部51は、生成されたライセンスキーをライセンス制御装置20に送信する(S108)。なお、ステップS107において、プロダクトキーのライセンス発行数がライセンス数に達している場合、ライセンス発行部51は、ライセンスキーの生成を拒否する。したがって、この場合、ライセンス発行部51は、ステップS108において、ライセンスキーは発行されないことを示す情報をライセンス制御装置20に送信する。
【0063】
ライセンス制御装置20のライセンス取得部22がライセンスキーを受信すると、ライセンス配信部23は、当該ライセンスキーを画像形成装置10に転送する(S108)。画像形成装置10のライセンス導入部151は、ライセンスキーを受信すると、当該ライセンスキーをライセンスファイル170に格納して保存する(S109)。なお、ライセンスファイル170は、そのファイル名又はその保存場所(フォルダ)の名前等によってSDKアプリ140と関連付けられる。但し、当該関連付けは他の方法によって行われてもよい。
【0064】
ライセンスキーの導入により、当該ライセンスキーに係るSDKアプリ140の起動(利用)が可能となる。続いて、SDKアプリ140の起動処理について説明する。図13は、画像形成装置におけるSDKアプリの起動処理の処理手順を説明するための図である。
【0065】
例えば、操作対象の画像形成装置10にインストールされているSDKアプリ140の一覧が操作パネル16に表示されている。当該画像形成装置10の操作者が、当該一覧の中から所望のSDKアプリ140を選択し、当該SDKアプリ140の起動指示を入力する。当該起動指示に応じ、起動制御部154が、起動対象とされたSDKアプリ140のアプリIDを指定して、当該SDKアプリ140のライセンスの有無のチェック(以下、単に「ライセンスチェック」という。)を判定部153に要求すると図13の処理が開始される。
【0066】
判定部153は、指定されたアプリIDに係るSDKアプリ140に含まれている各機能モジュール1401についてloop1に係るループ処理を実行する。すなわち、判定部153は、各機能モジュール1401がライセンスチェック対象であるか否かを判定する(S201)。この判定は、機能モジュール1401にライセンス情報ファイル1402が関連付けられているか否か(機能モジュール1401に付随するライセンス情報ファイル1402が存在するか否か)に基づいて行われる。例えば、図4の機能モジュール1401a、1401c、又は1401dのように付随するライセンス情報ファイル1402が存在する機能モジュール1401については(S201でYES)、判定部153は、ライセンスチェックを実行する(S202)。
【0067】
具体的には、機能モジュール1401に付随するライセンス情報ファイル1402に基づいて、当該機能モジュール1401に対応付けられているライセンス識別情報を判定する。続いて、起動対象とされているSDKアプリ140に対応する一つ又は複数のライセンスファイル170に、当該ライセンス識別情報を含むライセンスキーが格納されているか判定する。続いて、当該ライセンスキーに含まれている機体コードを復号した値(機体番号)が、操作対象の画像形成装置10の機体番号と一致するかを判定する。全ての判定結果が肯定的な場合、判定部153は、当該機能モジュール1401のライセンスは有る(有効である)と判定する。一つでも否定的な判定結果がある場合、判定部153は、当該機能モジュール1401のライセンスは無い(無効である)と判定する。
【0068】
判定部153は、ライセンスは有効であると判定された機能モジュール1401については(S203でYES)、起動有効FlagをONに設定する(S204)。また、判定部153は、ライセンスは無効であると判定された機能モジュール1401については(S203でNO)、起動有効FlagをOFFに設定する(S205)。なお、起動有効Flagとは、ライセンスの有効又は無効を記録しておくために機能モジュール1401ごとにRAM112内に生成されるフラグ変数である。
【0069】
一方、機能モジュール1401bのように付随するライセンス情報ファイル1402が存在しない機能モジュール1401については(S201でNO)、判定部153は、ライセンスチェックを行うことなく対応する起動有効FlagをONに設定する(S204)。
【0070】
loop1の処理が完了すると、判定部153は、起動対象とされたSDKアプリ140に含まれる全ての機能モジュール1401についてloop2に係るループ処理を実行する。すなわち、判定部153は、各機能モジュール1401について対応する起動有効Flagの値をチェックする(S206)。起動有効Flagの値がONである機能モジュール1401については、その実体を起動ディレクトリに移動又はコピーする(S207)。なお、起動ディレクトリとは、ファイルシステム上における所定のディレクトリ(フォルダ)である。
【0071】
loop2の処理が完了すると、起動制御部154は、起動ディレクトリ内におけるメイン機能モジュール1401(図4の例における機能モジュール1401a)の存否(すなわち、機能モジュール1401の従属関係において最上位に位置する機能モジュール1401の存否)を判定する(S208)。メイン機能モジュール1401の有無は、起動ディレクトリ内の各機能モジュール1401に付随するライセンス情報ファイル1402に基づいて判定すればよい。すなわち、ライセンス識別サブ番号に「00」を含むライセンス情報ファイル1402が有れば、当該ライセンス情報ファイル1402に関連付いている機能モジュール1401がメイン機能モジュール1401である。
【0072】
起動ディレクトリ内にメイン機能モジュール1401が存在する場合、起動制御部154は、起動ディレクトリ内の起動モジュール1401をRAM102にロードし、SDKアプリ140を実行させる(S209)。一方、起動ディレクトリ内にメイン機能モジュール1401が存在しない場合、起動制御部154は、いずれの機能モジュール1401をもロードすることなく処理を終了させる。したがって、この場合、SDKアプリ140は実行されない。
【0073】
上述したように、本実施の形態における画像形成装置10によれば、SDKアプリ140を構成する機能モジュール1401単位(すなわち、機能単位で)でライセンス管理を行うことができる。したがって、アプリケーションごとにライセンス管理を行う場合に比べて、プログラムのライセンス管理の柔軟性を著しく向上させることができる。
【0074】
また、同じ構成のSDKアプリ140に対して、ライセンス情報ファイルの定義に応じて各種のライセンス構成を構築することができる。斯かる観点においてもライセンス管理の柔軟性を向上させることができる。
【0075】
なお、図4の構成を有するSDKアプリ140について、ライセンス情報ファイル1402の他の定義例及び当該他の定義例に応じたライセンスの構成例を以下に示す。
【0076】
図14は、本実施の形態における各機能モジュールのライセンス情報ファイルの第二の定義例を示す図である。
【0077】
同図の例では、ライセンス情報ファイル1402aのライセンス識別サブ番号は「00」と「01」である。また、ライセンス情報ファイル1402c及び1402dのライセンス識別サブ番号は「01」と「81」である。なお、ライセンス識別番号「123456789−81」に対するライセンス表示名は「PluginCD」である。
【0078】
同図におけるライセンス情報ファイル1402の定義例により可能となるライセンスの構成を図15に示す。同図において、機能モジュールA、C、Dは、それぞれ、機能モジュール1401a、1401c、1401dを示す。
【0079】
図15に示されるように、ライセンス識別番号「123456789−00」(AAA_main)に係るライセンスキーでは、機能モジュール1401aに対してのみ利用権限が与えられる。また、ライセンス識別番号「123456789−01」(AAA_basic)に係るライセンスキーでは、機能モジュール1401a、1401c、及び1401dに対して利用権限が与えられる。また、ライセンス識別番号「123456789−81」(PluginCD)に係るライセンスキーでは、機能モジュール1401c及び1401dに対して利用権限が与えられる。本実施の形態では、プラグイン機能モジュール1401(機能モジュール1401c及び1401d)を起動するには、従属関係において最上位のメイン機能モジュール1401である(機能モジュール1401a)の起動が必要とされるため、全ての機能モジュール1401を利用するには、「123456789−01」に係るライセンスキーを一つ入手するか、「123456789−00」に係るライセンスキーと「123456789−81」に係るライセンスキーを入手すればよい。
【0080】
また、図16は、本実施の形態における各機能モジュールのライセンス情報ファイルの第三の定義例を示す図である。
【0081】
同図の例では、ライセンス情報ファイル1402aのライセンス識別サブ番号は「00」と「01」と「03」である。また、ライセンス情報ファイル1402cのライセンス識別サブ番号は「01」と「02」である。また、ライセンス情報ファイル1402dのライセンス識別サブ番号は「03」と「04」である。
【0082】
同図におけるライセンス情報ファイル1402の定義例により可能となるライセンスの構成を図17に示す。同図において、機能モジュールA、C、Dは、それぞれ、機能モジュール1401a、1401c、1401dを示す。
【0083】
図17に示されるように、ライセンス識別番号「123456789−00」(AAA_main)に係るライセンスキーでは、機能モジュール1401aに対してのみ利用権限が与えられる。また、ライセンス識別番号「123456789−01」(AAA_basicC)に係るライセンスキーでは、機能モジュール1401a及び1401cに対して利用権限が与えられる。また、ライセンス識別番号「123456789−02」(PluginC)に係るライセンスキーでは、機能モジュール1401cに対してのみ利用権限が与えられる。また、ライセンス識別番号「123456789−03」(AAA_basicD)に係るライセンスキーでは、機能モジュール1401a及び1401dに対して利用権限が与えられる。また、ライセンス識別番号「123456789−02」(PluginD)に係るライセンスキーでは、機能モジュール1401dに対してのみ利用権限が与えられる。したがって、全ての機能モジュール1401を利用するには、「123456789−01」、「123456789−02」、及び「123456789−03」に係る三つライセンスキーを入手すればよい。
【0084】
なお、SDKアプリ140の構成としては、図4以外にも様々なものが採用可能である。当該構成に応じて、更に多様なライセンス構成を構築することができる。
【0085】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【0086】
【図1】本発明の実施の形態におけるライセンス管理システムの構成例を示す図である。
【図2】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図3】本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。
【図4】SDKプラットフォームにおけるライセンス管理機能とSDKアプリの構成例とを示す図である。
【図5】本実施の形態における各機能モジュールのライセンス情報ファイルの第一の定義例を示す図である。
【図6】ライセンス情報ファイルの第一の定義例により可能となるライセンスの構成を示す図である。
【図7】本発明の実施の形態におけるライセンスサーバの機能構成例を示す図である。
【図8】ライセンス発行情報管理テーブルの構成例を示す図である。
【図9】本発明の実施の形態におけるライセンス制御装置の機能構成例を示す図である。
【図10】ライセンスキーの発行処理及び画像形成装置へのライセンスキーの導入処理の処理手順を説明するための図である。
【図11】ライセンスキーの構成例を示す図である。
【図12】ライセンスキーの発行により更新されたライセンス発行情報管理テーブルの例を示す図である。
【図13】画像形成装置におけるSDKアプリの起動処理の処理手順を説明するための図である。
【図14】本実施の形態における各機能モジュールのライセンス情報ファイルの第二の定義例を示す図である。
【図15】ライセンス情報ファイルの第二の定義例により可能となるライセンスの構成を示す図である。
【図16】本実施の形態における各機能モジュールのライセンス情報ファイルの第三の定義例を示す図である。
【図17】ライセンス情報ファイルの第三の定義例により可能となるライセンスの構成を示す図である。
【符号の説明】
【0087】
10 画像形成装置
11 コントローラ
12 スキャナ
13 プリンタ
14 モデム
15 ネットワークインタフェース
16 操作パネル
20 ライセンス制御装置
22 ライセンス取得部
23 ライセンス配信部
30 ネットワーク
50 ライセンスサーバ
51 ライセンス発行部
52 ライセンス発行情報更新部
53 ライセンス発行情報管理テーブル
70 広域ネットワーク
111 CPU
112 RAM
113 ROM
114 HDD
121 OS
122 コントロールサービス
123 アプリケーション
130 標準アプリ
150 SDKプラットフォーム
131 コピーアプリ
132 スキャンアプリ
133 ファクスアプリ
134 プリントアプリ
140、141、142、143 SDKアプリ
151 ライセンス導入部
153 判定部
154 起動制御部
170 ライセンスファイル
1401a、1401b、1401d 機能モジュール
1402a、1402b ライセンス情報ファイル1402a

【特許請求の範囲】
【請求項1】
複数のプログラムモジュールより構成されるアプリケーションを実行可能な画像形成装置であって、
前記複数のプログラムモジュールと前記アプリケーションに対する複数のライセンスデータとの対応情報が記憶された対応情報記憶手段と、
前記アプリケーションに含まれる前記プロラムモジュールごとに、前記対応情報において対応付けられているライセンスデータに基づいて起動の許否を判定する判定手段と、
前記判定手段によって起動が許可されたプログラムモジュールを起動させる起動制御手段とを有することを特徴とする画像形成装置。
【請求項2】
前記複数のプログラムモジュールは従属関係を有し、
前記判定手段は、前記従属関係において最上位のプログラムモジュールの起動を許可しないときは、他の全てのプログラムモジュールの起動を許可しないことを特徴とする請求項1記載の画像形成装置。
【請求項3】
前記判定手段は、前記対応情報において同一のライセンスデータに対応付けられている前記プログラムモジュールは同一のライセンスデータに基づいて起動の許否を判定することを特徴とする請求項1又は2記載の画像形成装置。
【請求項4】
前記対応情報は、前記プログラムモジュールごとに関連付けられたファイルによって構成され、
前記ファイルには、当該ファイルが関連付けられているプログラムモジュールに対応する前記ライセンスデータの識別子が格納されていることを特徴とする請求項1乃至3いずれか一項記載の画像形成装置。
【請求項5】
前記判定手段は、前記ファイルが関連付けられていないプログラムモジュールについては前記ライセンスデータに基づく起動の許否の判定は行わないことを特徴とする請求項4記載の画像形成装置。
【請求項6】
複数のプログラムモジュールより構成されるアプリケーションを実行可能な画像形成装置が実行するライセンス判定方法であって、
前記アプリケーションに含まれる前記プロラムモジュールごとに、前記複数のプログラムモジュールと前記アプリケーションに対する複数のライセンスデータとの対応情報が記憶された対応情報記憶手段において対応付けられているライセンスデータに基づいて起動の許否を判定する判定手順と、
前記判定手順によって起動が許可されたプログラムモジュールを起動させる起動制御手順とを有することを特徴とするライセンス判定方法。
【請求項7】
前記複数のプログラムモジュールは従属関係を有し、
前記判定手順は、前記従属関係において最上位のプログラムモジュールの起動を許可しないときは、他の全てのプログラムモジュールの起動を許可しないことを特徴とする請求項6記載のライセンス判定方法。
【請求項8】
前記判定手順は、前記対応情報において同一のライセンスデータに対応付けられている前記プログラムモジュールは同一のライセンスデータに基づいて起動の許否を判定することを特徴とする請求項6又は7記載のライセンス判定方法。
【請求項9】
前記対応情報は、前記プログラムモジュールごとに関連付けられたファイルによって構成され、
前記ファイルには、当該ファイルが関連付けられているプログラムモジュールに対応する前記ライセンスデータの識別子が格納されていることを特徴とする請求項6乃至8いずれか一項記載のライセンス判定方法。
【請求項10】
前記判定手順は、前記ファイルが関連付けられていないプログラムモジュールについては前記ライセンスデータに基づく起動の許否の判定は行わないことを特徴とする請求項9記載のライセンス判定方法。
【請求項11】
複数のプログラムモジュールより構成されるアプリケーションを実行可能な画像形成装置に、
前記アプリケーションに含まれる前記プロラムモジュールごとに、前記複数のプログラムモジュールと前記アプリケーションに対する複数のライセンスデータとの対応情報が記憶された対応情報記憶手段において対応付けられているライセンスデータに基づいて起動の許否を判定する判定手順と、
前記判定手順によって起動が許可されたプログラムモジュールを起動させる起動制御手順とを実行させるためのプログラム。
【請求項12】
前記複数のプログラムモジュールは従属関係を有し、
前記判定手順は、前記従属関係において最上位のプログラムモジュールの起動を許可しないときは、他の全てのプログラムモジュールの起動を許可しないことを特徴とする請求項11記載のプログラム。
【請求項13】
前記判定手順は、前記対応情報において同一のライセンスデータに対応付けられている前記プログラムモジュールは同一のライセンスデータに基づいて起動の許否を判定することを特徴とする請求項11又は12記載のプログラム。
【請求項14】
前記対応情報は、前記プログラムモジュールごとに関連付けられたファイルによって構成され、
前記ファイルには、当該ファイルが関連付けられているプログラムモジュールに対応する前記ライセンスデータの識別子が格納されていることを特徴とする請求項11乃至13いずれか一項記載のプログラム。
【請求項15】
前記判定手順は、前記ファイルが関連付けられていないプログラムモジュールについては前記ライセンスデータに基づく起動の許否の判定は行わないことを特徴とする請求項14記載のプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2010−67230(P2010−67230A)
【公開日】平成22年3月25日(2010.3.25)
【国際特許分類】
【出願番号】特願2008−235679(P2008−235679)
【出願日】平成20年9月12日(2008.9.12)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】