FLEXlm
FLEXlm(フレックスエルエム)は、ソフトウェアのライセンスを管理するソフトウェアである。
ネットワーク経由で複数のユーザ、複数種のソフトウェアを管理する機能がある。米国Globetrotter社によって1988年に開発され現在はMacrovision社の製品となっている。なおMacrovisionは、FLEXnet Publisher と改称している。米Macrovision Solutions Corporation(マクロヴィジョン)は2009年7月17日、社名を「Rovi Corporation(ロヴィ コーポレーション)」に正式に変更したことを発表した。
ここでいうライセンスとはユーザがソフトウェアベンダーから購入や借用したソフトウェアの使用権のことであり、FLEXlmはそのソフトを実際に実行する際の可否を自動管理するものである。ユーザに対してはそのソフトウェアベンダーの製品に付随して出荷される場合が多く、通常、前記Macrovisionから直接入手の必要はない。
FLEXlmにはソフトウェア利用を特定のマシンに固定するノードロック形式と利用マシンを限定しないフローティング形式がある。両者の混在も可能である。 フローティング形式はネットワークライセンスとも呼ばれネットワークを通じてライセンスの配布が行われる。この場合、その管理を行うライセンスサーバとなるマシンが必要となる。
動作としてはユーザ側があるソフトを起動しようとすると自動的にライセンスサーバに問い合わせを行い、妥当であればサーバはライセンスを貸出す(check-out)操作を行い、ユーザのソフトの起動を許可する。ユーザが使用を終われば返却(check-in)操作が行われる。ユーザの要求に対しソフトの種類が異なる場合や規定のライセンス数を超えている場合などの場合はcheck-outを行なわず、ユーザはソフトを起動できない。 ネットワークは特にLANに限定されるものではなくインターネット経由や設定によってはファイアウォール経由でのライセンス配布も可能である。
FLEXlm自体はサーバで実行されるlmgrdというデーモン、特定のベンダー固有のベンダーデーモン、それに付随するユーティリティ群からなっている。lmgrdはひとつで複数の異なるベンダーの管理も行える。ライセンスサーバは通常1台であるが、3台での冗長構成をとることもでき、その場合3台のうち1台が故障しても継続的にライセンス配布が可能である。
管理されるソフトウェアはライセンスファイルあるいはkeyと呼ばれるテキストファイルに条件が記述される。内容は対象ソフトウェアの名前、ライセンスの有効期間、ライセンス数、そして暗号文字列などからなる。それらのどこかをユーザが勝手に書き換えるとライセンスは無効となる。またファイルの冒頭ではサーバを特定する番号(hostid)やTCP/IPのポート番号も記載される。このポート番号についてはユーザが変更可能である。FLEXlmでは(特にサーバ)はUNIX系のマシンで使われることが多いがWindows PCでも可能である。Windows PCの場合hostidはネットワークカードのMACアドレスが用いられる。ノードロックの場合はサーバは必要なくこのライセンスファイルのみでよい。
適用例としてはEDA分野の各社のソフトウェアでFLEXlmが標準的に採用されている。