ライセンスの仕組み
このセクションでは、ライセンスの仕組みについて説明します。基本ライセンスサーバーのインストールと構成は単純で、Klocwork のインストールで説明されています。
- ビルド
- user
- Web サービス
- 同時実行
ビルドライセンス
ビルドライセンス (Fixed ビルドライセンスと呼ばれることが多い) では、特定のマシンで 1 つ以上の完全解析を実行できます。このライセンスはそのマシン自体にロックされます。このライセンスでは、結果が Klocwork Portal にロードされます。これは、長期使用される専用マシンで Klocwork 解析のインストールと実行を行う場合に必要となるライセンスです。
ビルドライセンスの仕組み
- ビルドライセンスは、以下のツールのいずれかが開始されるときにチェックアウトされ、そのツールが終了するときに戻されます。
- 特定のホストごとに 1 個のビルドライセンスをチェックアウトします。
- 1 個のビルドライセンスを使用するすべてのツールは、そのホスト用に予約されています。
- 1 台のホストにサーバーパッケージとデスクトップ解析プラグインパッケージの両方からコンポーネントをインストールして、両方のパッケージからのツールを同時に実行する場合 (たとえば、kwbuildproject を実行しながら Klocwork Desktop Java Plug-in for Eclipse を使用する) は、ライセンスを 2 個 (この場合は、ユーザーライセンスとビルドライセンス) 使用します。
ビルドライセンスを使用するツール
ユーザーライセンス
ユーザーライセンスは、ユーザーが Klocwork Desktop ツールやプラグインを実行したり、Klocwork Portal にログインするために使用できます。
ユーザーライセンスの仕組み
ユーザーがライセンスをチェックアウトすると、以下に示す他のユーザーツールは、そのユーザー専用になります。同じユーザー ID でログインする場合に限り、1 個のユーザーライセンスで、以下に示すツールをいくつでも使用できます。
異なるオペレーティングシステムにログインする際、ユーザー ID が異なる場合は、ユーザー ID ごとに 1 個のライセンスが使用されます。たとえば、Windows には "John Smith"、Linux には "jsmith" でログインしている場合、2 個のライセンスが使用されます。
例 1: LDAP またはシングルサインオン
LDAP またはシングルサインオンを設定し、ユーザー資格情報が異なる Windows マシンと Linux マシンの両方にログインしようとすると、ライセンスを 2 個使用します。
たとえば、John Smith というユーザーがフルネーム ('John Smith') で Windows マシンにログインし、'jsmith' のような短い名前を使用して Linux マシンにログインするとします。この場合、John Smith が Windows と Linux から Klocwork を使用する場合、ライセンスを 2 個使用します。
例 2: 代替アクセスメソッド
NIS または基本などの代替アクセスメソッドを使用する場合、Klocwork または Code Review にログインする各ユーザーに対してライセンスをチェックアウトします。ログインの際、コマンドラインツールの実行時と同じログイン資格情報を使用してください。
ユーザーライセンスを使用するツール
- Klocwork ポータル
- IDE plugins
- kwcheck
- Klocwork Desktop
- Klocwork Refactoring
- Klocwork Code Review
Web サービスライセンス
Web サービスライセンスがあると、Klocwork サーバーを実行できます。
Web サービスライセンスの仕組み
Klocwork サーバーパッケージをインストールした後のステップの 1 つに、Klocwork サーバーの起動があります。kwservice コマンドを使用して Klocwork サーバーを起動したり、Windows サービスとして Klocwork サーバーを起動するためには、Web サービスライセンスが必要です。このライセンスは、ユーザーが Klocwork サーバーを停止すると Klocwork によって解放されます。各 projects_root ディレクトリは kwservice インスタンスを消費します。
Web サービスライセンスを使用するツール
同時使用ライセンス
ビルドエージェントライセンスおよび CI エージェントライセンスという 2 タイプの同時使用ライセンスがあります。
ビルドエージェントライセンスの仕組み
ビルドエージェントライセンスでは、任意のマシンで 1 つの解析を実行し、その結果を Klocwork Portal にロードできます。これは、、解析を行うためにクラウド内でコンテナ使用またはマシン稼働している場合、つまり一時的な環境が存在する場合には、常に必要となるライセンスです。
ビルドエージェントライセンスは、1 台のサーバーで一度に 1 つの解析を実行する適切なライセンスを以下のツールに提供します。解析を同時に実行するには、複数のビルドエージェントライセンスが必要です。たとえば、一度に 5 つの解析を実行したい場合は、5 個のビルドエージェントライセンスを所有している必要があります。Klocwork では、コマンドを実行するときにライセンスがチェックアウトされ、コマンドの完了時にライセンスが戻されます。
ビルドエージェントライセンスを使用するツール
CI エージェントライセンスの仕組み
CI エージェントライセンスでは、アプリケーションの一部 (1 つ以上のファイル) のクイック解析を実行できます。このため、このライセンスは CI 環境での解析に便利です。このライセンスタイプは、アプリケーション全体ではなく、単一のファイルまたは一部のファイルのみを解析したい場合に使用してください。このためには、1 つのプロジェクトに接続する必要があります。
この機能は、事前チェックイン環境に便利です (事前チェックイン環境では、たとえば特定の状況下 (新しい指摘が検出された場合など) で停止するようにビルドを設定できます)。
CI エージェント出力はテキストファイルに送ることができます。このほか、コマンドを Jenkins で実行している場合などに、CI エージェント出力を Jenkins コンソールログに送ることもできます。kwbuildproject 解析結果 (他のライセンスタイプによって使用される) が Klocwork Portal にロードされるのに対し、kwciagent 解析結果は CI エージェントワークスペースにローカルです。結果を Klocwork Portal にロードすることはできません。接続されたプロジェクトが必要です。
CI エージェントライセンスは、コマンドが実行されるときにチェックアウトされ、コマンドの完了時に戻されます。
CI エージェントライセンスを使用するツール
ユーザーライセンスの詳細な仕組み
ユーザーライセンスを使用するツールの多くに、タイムアウト期間があります。
ツール | ライセンスの動作 |
---|---|
Klocwork Static Code Analysis Klocwork Code Review | ライセンスは、ログインするときにチェックアウトされ、ログアウトするかまたは非アクティブな 30 分が続いた後に戻されます。Klocwork Static Code Analysis を 2 つの異なるブラウザー (たとえば、Chrome と Firefox) で開くことができます。その場合、これら 2 つの異なるブラウザーに同じユーザー ID でログインしている場合に限り、使用するユーザーライセンスは 1 個です。別のマシンから同じユーザー ID で Static Code Analysis にログインすると、そのユーザー ID で実行している既存のセッションをログアウトすることになります。そのような方法でログアウトしたマシンに戻り、何かのアクションを実行すると、[ログイン] ダイアログが表示されます。 |
Visual Studio C/C++ Extension | ソリューションまたはワークスペースを開くと、ライセンスがチェックアウトされます。Visual Studio を閉じるかまたは 20 分のタイムアウト期間が終了すると、ライセンスは戻されます。 |
プラグイン:Visual Studio C# 用、Eclipse Java 用、Eclipse C/C++ 用、および IntelliJ IDEA 用、または Klocwork Desktop 用 | 解析などの Klocwork の作業 (C/C++ continuous analysis (継続的デスクトップ解析) を含む) を実行するときにライセンスがチェックアウトされます。Visual Studio を閉じるか、または非アクティブな 20 分の後にライセンスが戻ります。Eclipse では、Eclipse を閉じるか再起動した場合、またはユーザーがワークスペースを切り替えた場合、非アクティブな 20 分の経過後にライセンスが戻ります。 |
kwcheck | コマンドを実行して、コマンドが完了すると、ライセンスをチェックアウトします。このコマンドにはタイムアウト期間はありません。 |