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 サーバーライセンスファイルの絶対パス);
...
しかし、スプリング環境や大容量ファイルのアップロード環境では、コンタクトストxmlまたはweb.xmlファイルを使用して、ライセンスファイルのパスを設定する必要があり、必要に応じてファイルのパスを別の方法で指定する方法(文法的な)がない。
- XMLライセンスファイルを使用して、認証を設定する
-
licenseFilePath属性ではなく、licenseConfigXmlPath属性を使用すると、このような問題を解決することができる。たとえば、2つのサーバーライセンスを発行して、サーバを二重化して構成する場合は、両方のサーバーには、同じWebアプリケーションが配布されるだろう。 このとき配布される対象となるソースは、一つなので、一つのプロジェクトに2つのライセンスファイル(名前を区切って)を含んでいる。そして、ライセンスの構成を表すXMLファイルを作成し、このXMLファイルのパスをlicenseConfigXmlPath属性で指定する。
例は次のとおりです。
# ホスト名SERVER-Aであり、IPアドレスが1.1.1.1であるサーバーライセンス # ファイル名は dextuploadnj-server-a.config PID=DJNJ----------A1 SN=PUJ---------A1 #ホスト名SERVER-Bであり、IPアドレスが2.2.2.2であるサーバーライセンス #ファイル名は dextuploadnj-server-b.config PID=DJNJ----------A2 SN=PUJ---------A2 # ホストの区別なく試用が駆動する必要がある場合 # ファイル名は dextuploadnj-evaluation.config PID=DEVPIA SN=DEVPIA
ライセンス管理ファイル(dextuploadnj-licenses.xml)を次のように作成(大文字と小文字に注意)して生成する。
<?xml version="1.0" encoding="UTF-8"?> <dextuploadnj-licenses> <!-- SERVER-Aに適用するライセンスファイル情報 --> <license type="cert" hostname="SERVER-A" ip="1.1.1.1" path="dextuploadnj-server-a.config"/> <!-- SERVER-Bに適用するライセンスファイル情報 --> <license type="cert" hostname="SERVER-B" ip="2.2.2.2" path="dextuploadnj-server-b.config"/> <!-- 試用版 --> <license type="eval" path="dextuploadnj-evaluation.config"/> </dextuploadnj-licenses>
licenseConfigXmlPath属性を使用して、ライセンス管理ファイルを指定する。
<!-- スプリング環境でEnvironment空を設定する場合 --> <bean id="idName" class="devpia.dextuploadnj.support.spring.DEXTUploadNJMultipartResolver"> ... <property name="environment"> <bean class="devpia.dextuploadnj.Environment"> <property name="licenseConfigXmlPath" value="親パス/dextuploadnj-licenses.xml"/> </bean> </property> ... </bean> <!-- 大容量アップロード環境でフィルタオブジェクトのパラメータとして渡される場合 --> <filter> <filter-name>extensionUploadFilter</filter-name> <filter-class>devpia.dextuploadnj.support.common.ExtensionFileUploadFilter</filter-class> ... <init-param> <param-name>licenseConfigXmlPath</param-name> <param-value>親パス/dextuploadnj-licenses.xml</param-value> </init-param> </filter>dextuploadnj-licenses.xmlと同じ場所にdextuploadnj-server-a.config、dextuploadnj-server-b.configライセンスファイルとdextuploadnj-evaluation.config評価ライセンスファイルを一緒に配布すると、設定が完了している。
上記の例の場合、配布されたサーバーがSERVER-A、SERVER-Bがない場合は、自動的に評価ライセンスファイルを読む。
ライセンスファイルとライセンスの設定XMLファイルは、可能なUTF-8エンコードで保存しなければならない。
もしlicenseFilePath属性とlicenseConfigXmlPathプロパティを設定する場合licenseFilePath属性を優先とする。
- ライセンスの注意事項
-
- (株)デブピアは、ライセンスを購入する時点での購入/使用先の顧客情報とPID(製品番号)、SN(シリアル番号)、ライセンスの種類にのみ管理をする。
- ライセンスのインストール情報の変更(ホスト名、IPの変更)の操作と、認証キーを再発行される過程は、顧客が直接管理しなければならない事項である。