ライセンスの管理(FlexLM)
- 東京ナノファーム
- 2020年3月30日
- 読了時間: 4分
更新日:2021年3月2日
東京ナノファームが担いでいるAvery Design Systemsなど、他のEDAベンダーと同様に、ソフトウエアのライセンスの発行にFlexLMを用いています。今回の記事はFlexLMについて、そのしくみと、動作を簡単にまとめてみたいと思います。
FlexLMの歴史 FlexLMは、Flexera Software社の FlexNet Publisherと言う名のライセンス管理(フローティング、ノードロック)ソフトウエアです。DRM(ディジタル著作権管理)としても参照されています。1988年にGlobetrotter社とHighland Software社の共同開発され、2000年にMaicrovisionに買収され、特にEDAソフトウエア製品のライセンス管理に標準的に用いられ、FlexLMとして普及しています。 ライセンスサーバーの構成 ライセンスサーバーは、Flexera Software社から供給されるデーモンである、lmgrd、およびEDAなどライセンスを発行するソフトウエアベンダーから供給される固有のベンダー・デーモンで構成されます。(下図参照)

ライセンスファイル
管理されるソフトウェアは、テキストで下記のようにライセンスに必要な条件記述されライセンスファイル(DATファイル)にてライセンスサーバーにて問い合わせ(Checkout Request)が行われます。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
#ライセンスファイル(DATファイル)記述例
SERVER LSPC25 10a020b030c0 2020
VENDOR AVERYDES /tools/avery/tools/bin/AVERYDES
USE_SERVER
FEATURE ライセンスソフトウエア名、ライセンス有効期限、ライセンスキーなどの記述
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
以下に各行のベーシックな記述は記します。
SERVERの行では、ライセンスサーバーを識別するためのホスト名(例ではLSPC25)、12桁のネットワークカードのMAC(物理)アドレス(例では10a020b030c0)、ファイアーウォルのTCP/IPポート番号(例ではボート2020)が記述されます。
VENDORの行では、ライセンスサーバーで実行するベンダー・デーモン名(例ではAVERYDES)、デーモン実行ファイルの保管されているファイルパスが記述されます。また、サーバーが使用するポート番号をこの後ろに記述してポートを別にすることもできます。(例では省略)
FEATUREの行には、ライセンスを発行する対象のプロダクト名、ライセンス発行日、有効期限、本数などをの基本情報に加えて、ライセンスキーが記述されます。
USE_SERVERは、ライセンスを取得するために SERVER 行のライセンスサーバに強制的にアクセスすることを意味します。
ライセンスファイルにより、クライアント(ユーザー)がソフトウエアを起動毎に、自動的にこの問い合わせがなされます。記述が正当であればサーバはライセンスの貸出し(checkout)操作を行い、ユーザのソフトの起動を許可します。ユーザが使用を終われば返却(check-in)操作が行われるます。ユーザの要求に対しソフトの種類が異なる場合や、ライセンス数、ライセンス有効期限を超えている場合などの場合はcheck-outを行なわず、ユーザはソフトを起動することはできません。
ライセンス貸出しのしくみ
クライアントでライセンスを必要とするソフトウェアプログラムは、ACSキー(#ACS)と呼ばれるFlexマネージャー(FLEXMGR)ファイルを設定インストールしておくことにより、起動直後にFlexマネージャーはクライアントのソフトウエアがライセンスを取得する必要があることを確認します。次にFlexマネージャーは、クライアントソフトが記述するベンダーのライセンスファイルの環境変数を探し、ポート(ファイウォール)とベンダーのライセンスサーバー名を取得します(例では、2020@LSPC25)。この情報を元にTCP/IPソケットを介しライセンスサーバーにメッセージを送信します。ファイウォーのポートは開く必要があります。
ライセンスサーバーは、クライアントからのライセンス要求メッセージがくると、ライセンスサーバーにあるImgrdサービスが、ライセンスファイルでこのポートからの受信を受け付けライセンス許可の情報を埋め込まれているため、lmgrdデーモンが、ベンダー・デーモン(例では、AVERYDES)のライセンスが利用可能かについて調べます。
ライセンスサーバは、利用可能が確認されると、メッセージは、VENDORラインで指定されたポートまたは、ない場合はSERVERで使われたポートを経由してクライアントに送り返します。クライアントはメーッセジを受け取るとアプリケーションが起動します。クリーンアッププロセス中にアプリケーションを閉じると、ライセンスが完了したというメッセージが返送されます。ライセンスが解放され、ベンダー・デーモンはデータベースを更新して、そのライセンスを他の誰かが利用できるようにすることができます。
ライセンスサーバーはベンダーごとに存在しており、FlexLMを利用するサーバーは、システム設定としてlmgrdバージョンなどの互換性を保つため、LM_LICENSE_FILEのシステム設定にそれぞれのベンダーのライセンスサーバーの場所を指定されます。
執筆:片山 雅美
参考資料
FLEXlm User Guide
installing flexlm on a linux server PART I(YouTube - Artwork Conversion Software)
Comments