MuleSoft 認定コネクタライセンス管理

はじめに

DevKit 3.9.0 では、MuleSoft 認定コネクタパートナー/開発者 (ここでは「パートナー」とも呼ばれる) は、パートナーの有料顧客のみがコネクタを使用可能にするため、コネクタがリリース用にパッケージ化される前に DevKit を使用してコネクタのライセンスをネイティブに管理できます。

MuleSoft 認定コネクタを作成したパートナーは、独自のコネクタを含む Mule アプリケーションを作成し、Anypoint Studio にバンドルされている Mule ESB でテストする機会を見込み客に与えることができます。ただし、コネクタを含む Mule アプリケーションをデプロイするときに、パートナーからの有効なライセンスを所有していることを確認するため、顧客はパートナーが生成したキーを要求されます。

このライセンスメカニズムを使用する理由

MuleSoft が生成したキーを使用すると、MuleSoft パートナーの有料顧客のみが有料バージョンのコネクタに完全にアクセスできます。コネクタを購入する前に試してみたいユーザは、Anypoint Studio での設計時にコネクタを試し、Studio の埋め込み Mule Runtime でアプリケーションを実行できます。

コネクタのキーとキーストアの取得

開発したコネクタの認定を MuleSoft に申請する前に、認定コネクタパートナー候補は次の手順を実行する必要があります。

  1. パートナーキーとキーストアを生成する前に MuleSoft が使用する次の情報を含めます。

    1. 会社名 (「プロバイダ名」とも呼ばれる)、連絡先メール連絡先メッセージコネクタ名

  2. MuleSoft に次のキーとキーストアを要求します。

    1. コネクタ内に保存する公開 .key ファイル。

    2. ライセンスを生成するパートナーとしての自分用の .jks マスタキーストア。

コネクタコードの調整と公開キーの保存

キーとキーストアを取得したら、次の操作を実行します。

  1. パートナーは、@RequiresEntitlement アノテーションを適用してすべての必須属性値を入力し、コネクタプロジェクトコードを調整します。

    1. name は、コネクタの名前である必要があります。

    2. provider 属性は、.key サフィックスの前の部分である必要があります。たとえば、MuleSoft がベンダーキー「prov-name.key」を生成した場合、パートナーはプロバイダとして「prov-name」を入力します。

      @RequiresEntitlement(name="connector-name", provider="prov-name")
      public class LicensedConnector {
        ...
  2. MuleSoft が提供した .key ファイルをコネクタのプロジェクトディレクトリの src/main/resources または src/main/resources/license 内に置きます。

サンプルパートナーコネクタ

この サンプルコネクタをダウンロードして Studio にインポートし、ライセンス管理アノテーションがコネクタコードでどのように設定されているかを確認し、顧客の .key ライセンスファイルを保存すべきコネクタディレクトリ (src/main/resources) の場所を把握できます。

ライセンスファイルの生成

MuleSoft パートナーは .jks ファイルおよびライセンス生成プラグインを使用して、コネクタの顧客に送信するライセンスを生成します。

コマンドラインで、「vendor.keystore」を独自の jks ファイルへのパスに置き換えて、.jks ファイルがあるディレクトリでコマンドを実行します。

mvn org.mule.tools.devkit:mule-devkit-license:license -Dvendor.keystore=betaprovider-license-demo.jks
必要に応じて、上記コマンドに -Ddays.to.expire=<days-until-this-license-expires> を追加することで、ライセンスの有効期限を指定できます。顧客の名前をライセンスに追加するには、-Dclient=<client-name> を追加します。

ライセンスが正常に作成された場合、出力は次のようになります。

[INFO] Scanning for projects...
[NOTE]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[NOTE]
[INFO] --- mule-devkit-license:license (default-cli) @ standalone-pom ---
* Enter the name of the client whom will receive this license: Bob
* Enter the name of the provider of the Entitlement as it appears in the @RequiresEntitlement annotation: betaprovider
* Enter the name of the Entitlement as it appears in the @RequiresEntitlement annotation: lic-demo
* Enter the name of the Connector as it appears in the @Connector "name" attribute: license-demo
* Enter keystore password:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.151s
[INFO] Finished at: Thu Dec 10 09:34:41 ART 2015
[INFO] Final Memory: 6M/287M
[NOTE]

ライセンス付きコネクタを含む Mule アプリケーションの開発

顧客が有効なコネクタライセンスを検証するには、それに応じて Mule アプリケーションまたは Mule サーバを使用してライセンス (.lic ファイル) を使用可能にする必要があります。

Mule アプリケーション内のライセンスファイル

顧客がコネクタのライセンスを購入したら、パートナー/ベンダーによって顧客に提供された .lic ファイルは次のいずれかの場所に置かれます。

  • (Studio で開発された) アプリケーションの src/main/resources 内。

  • アプリケーションがすでに展開されてサーバにデプロイされている場合、app/classes 内。

Mule サーバ内のライセンスファイル

ライセンスをアプリケーションに保存する代わりに、Mule サーバの conf/ フォルダに置くことができます。

複数のアプリケーションが同じライセンスを必要とする場合は、Mule サーバにライセンスを保存することをお勧めします。

ライセンス付きコネクタを含むアプリケーションのデプロイ

1) ライセンスを適切に取得して保存したかどうか、および 2) アプリケーションをデプロイする場所に基づき、パートナーコネクタを使用してアプリケーション開発者の環境をテストするには、次の手順に従います。

  1. 圧縮されたサンプルコネクタプロジェクトをダウンロードします。

  2. [File (ファイル)] メニューから、[Import (インポート)] を選択して .zip ファイルをワークスペースにインポートします。

  3. [Project (プロジェクト)] メニューから、[Clean (クリーン)] をクリックしてコネクタを作成します。

  4. Package Explorer でコネクタプロジェクトを右クリックし、[Install or Update (インストールまたは更新)] をクリックしてコネクタを Studio にインストールします。

  5. ライセンスのないコネクタを含むサンプルアプリケーションまたはライセンス付きコネクタを含むサンプルアプリケーションを​インポート​します。

Studio の​アプリケーション設計​では、必要なコネクタライセンスのないアプリケーションを実行しても、エラーや例外は発生しません。

このサンプル Mule アプリケーションを有効なコネクタライセンスなしで Mule ESB オンプレミス​にデプロイしようとすると、例外が発生し、次のようなログが記録されます。

Exception…
Caused by: org.mule.devkit.3.9.0.internal.lic.exception.InvalidLicenseException: License with name [license-demo.lic] not found as resource. License was not provided or its name is not the expected

ライセンスのないコネクタを使用する Mule アプリケーションを CloudHub にデプロイしようとすると、失敗して次の状況インジケータが表示されます。

cloudhubライセンス状況

関連情報

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub