XMLを利用したサーバーライセンスの適用
この文書を読む前にサーバーライセンス文書をまず熟知しなければならない。
ロードバランシングのようなサーバー二重化環境では、製品を使用するWASを運営するサーバーの台数だけサーバーライセンスを購入しなければならない。
異なるPIDとSNを持つライセンスファイルがサーバー数だけ必要な状況だが、製品はライセンスファイルを一つのファイル経路だけ指定できる問題がある。
このような問題を解決するためには、ライセンスファイルをソースと一緒に配布せず、実際駆動するサーバーの特定位置にファイル名と経路は同じだが、ライセンス内容が異なるファイルをあらかじめ各サーバーごとに別途配布すれば良い。
# ソースコード上で環境設定オブジェクトを作成し、すぐに適用する場合 Environment env = new Environment(); // ライセンス ファイルは、サーバー ルートベースでパスが同じである // しかし、実際にライセンスは各サーバごとに異なるPID/SN を持っている。 env.setLicenseFilePath(サーバーライセンスファイルの絶対パス); ...
また別の方法として、一般的なサブレット環境の場合、コードレベルでサーバーを区分して設定ファイルの経路を別に与えることができるため、複数のライセンスファイルとソースを一緒に配布することができる。
# ソースコード上で環境設定オブジェクトを作成し、すぐに適用する場合
Environment env = new Environment();
if (A サーバーなら)
env.setLicenseFilePath(A サーバーライセンスファイルの絶対パス);
else if (B サーバーなら)
env.setLicenseFilePath(B サーバーライセンスファイルの絶対パス);
...
しかし、Spring環境や大容量ファイルアップロード環境では、コンタクト設定XMLまたはweb.xmlファイルを利用してライセンスファイルパスを設定しなければならないが、選択的にファイルパスを異なるように指定できる方法(文法的な)がない。
- XMLライセンスファイルを使用して認証設定を行う
-
licenseFilePathプロパティではなく、licenseConfigXmlPathプロパティを使用すると、このような問題を解決することができる。 例えば、2つのサーバーライセンスを発行し、サーバーを二重化して構成すれば、2つのサーバーには同じウェブアプリケーションが配布されるだろう。 このとき配布される対象となるソースは1つであるため、1つのプロジェクトに2つのライセンスファイル(名前を区分して)を含む。 そしてライセンス構成を示すXMLファイルを生成し、このXMLファイルの経路をlicenseConfigXmlPathプロパティに指定する。
予示
# ホスト名がSERVER-AでIPが1.1.1.1のサーバライセンス # ファイル名は dextuploadjk-server-a.config PID=DJJK----------A1 SN=PUJ---------A1 # ホスト名がSERVER-BでIPが2.2.2.2のサーバライセンス # ファイル名は dextuploadjk-server-b.config PID=DJJK----------A2 SN=PUJ---------A2 # ホストの区別なく試用版が駆動される必要がある場合 # ファイル名は dextuploadjk-evaluation.config PID=DEXT SN=DEXT
ライセンス管理ファイル(dextuploadjk-licenses.xml)を次のように作成(大文字·小文字留意)して生成する。
<?xml version="1.0" encoding="UTF-8"?> <dextuploadjk-licenses> <!-- SERVER-Aに適用するライセンスファイル情報 --> <license type="cert" hostname="SERVER-A" ip="1.1.1.1" path="dextuploadjk-server-a.config"/> <!-- SERVER-Bに適用するライセンスファイル情報 --> <license type="cert" hostname="SERVER-B" ip="2.2.2.2" path="dextuploadjk-server-b.config"/> <!-- 試用版 --> <license type="eval" path="dextuploadjk-evaluation.config"/> </dextuploadjk-licenses>
license Config XmlPathプロパティを使用してライセンス管理ファイルのパスを設定する。
<!-- Spring環境で設定する場合 --> <bean id="idName" class="dextuploadjk.support.spring.JKMultipartResolver"> ... <property name="environment"> <bean class="dextuploadjk.engine.Environment"> <property name="licenseConfigXmlPath" value="親経路/dextuploadjk-licenses.xml"/> </bean> </property> ... </bean> <!-- 大容量アップロード環境でフィルターオブジェクトのパラメータとして配信する場合 --> <filter> <filter-name>extensionUploadFilter</filter-name> <filter-class>dextuploadjk.support.common.JKExtensionUploadFilter</filter-class> ... <init-param> <param-name>licenseConfigXmlPath</param-name> <param-value>親経路/dextuploadjk-licenses.xml</param-value> </init-param> </filter>最終的には、dextuploadjk-licenses.xmlと同じ位置にdextuploadjk-server-a.config、dextuploadjk-server-b.configライセンスファイルとdextuploadjk-evaluation.config評価ライセンスファイルを一緒に配布すると、設定が完了する。
上記の例の場合、配布されたサーバーがSERVER-A、SERVER-Bでなければ、自動的に試用版ライセンスファイルを読む。
ライセンスファイルおよびライセンス設定XMLファイルは、可能な限りUTF-8エンコーディングで保存しなければならない。
もし、licenseFilePathプロパティとlicenseConfigXmlPathプロパティの両方を設定する場合、licenseFilePathプロパティを優先する。
- ライセンス注意事項
-
- (株)デキストソリューションはライセンス購入時点の購入/使用先顧客情報とPID(製品番号)、SN(シリアル番号)、ライセンス種類についてのみ管理を行う。
- ライセンスインストール情報の変更(ホスト名、IP修正)作業と認証キーの再発行過程は顧客が直接管理しなければならない事項だ。