MATLAB/Simulink( 米
MathWorks 社)は、数値計算ソフトウェアであ
り、豊富な関数と優れたデータ可視化機能により、様々な業界のエンジニアに使用されています。MATLAB/Simulink は、AI アルゴリズム開発をしたり、物理モデルを含むシミュレーター構築の用途で使用するエンジニアが多いですが、完成したアルゴリズムやシミュレーターは、そのままだとエンジニア以外の人には使い方が難しい場合もあるので、広く一般に配布すること、およびアルゴリズムの隠蔽化を目的に、MATLAB Compiler を使用して、スタンドアローンアプリケーションとして実行可能なexe ファイルを作成することができます。最近では、Simulink Compiler も提供されるようになり、Simulink モデルも、GUI 付きのスタンドアローンアプリケーションとして実行ファイルを作成できるようになりました。
ライセンシングできることによるメリット
MATLAB Compiler を使用して作成されたスタンドアローンアプリケーシ
ョンは、MATLAB ライセンスを必要とせず、複製もできるため、大勢の人に配布するには有用です。一方で使用数や使用期間に制約を付けたい場合は、技術的に管理することはできないので契約書等の文面に頼るしかありません。そのため高度なアルゴリズム、知的財産が含まれるアプリケーションソフトは、意図した使用範囲、本数、期間、等、でのみエンドユーザに提供できるようなライセンシングの仕組みを適用することが
望ましいと言えます。ライセンシングができると、ソフトウェアをライセンス
販売によるソフトウェアビジネスを構築できると共に、不正使用を防ぎ、ソフトウェアビジネスの収益化向上に繋がります。WIBU-SYSTEMS 社のCodeMeter を使用することにより、このようなニーズを実現することができます。具体的には提供対象のアプリケーションソフトウェアに、暗号化
による保護、およびライセンシングを掛けることができますので、意図したライセンス要件(使用本数、機能、期間、等)でアプリケーションソフトウェアを管理しつつ、エンドユーザに提供できるようになります。
CodeMeter のアプリケーションライセンスは、ハードウェアドングル、特定
のデバイスにバインドされたソフトウェア形式、もしくはクラウド形式で提供することができます。
図1. CodeMeter によるライセンシングを掛ける場合と掛けない場合の比較
MATLAB Compiler のサンプルアプリに
CodeMeter を適用
MATLAB Compiler のサンプルアプリケーションとして、魔方陣を作る MATLAB 関数”magic” をスタンドアロンアプリケーションとしてパッケージ化する MATLAB コードが用意されています。ここでは、このサンプルアプリケーションに CodeMeter のライセンシングを適用し、PC に USB ドングルを挿した場合のみ起動する手順を紹介します。前述の通り、CodeMeter は、ドングル以外にもソフトウェアライセンスやクラウドで管理するライセンス形態を作成することも可能です。
そのままの状態でスタンドアロンアプリを動かしてみる
MATLAB 側でスタンドアロンアプリケーションは作成済みであり、配布先側(ターゲット PC )には、MATLAB Runtime のインストール、および For_redistribution フォルダが既にコピー済みの状態で開始します。
For_redistribution フォルダ内の、MyAppInstaller_web.exe インストーラを起動すると、C:\Program Files\magicsquare フォルダが作成されます。
まずは、そのままの状態で、魔方陣アプリケーションを起動してみます。
魔方陣アプリケーションには、GUI は無く、コマンドプロンプトで、起動時
に魔方陣のサイズ(行列数)をパラメータとして入力するだけのアプリケーションなので下記のコマンドを実行します。
>application>magicsquare 5
図2. MATLAB Compiler で作成したスタンドアロンアプリケーション(魔方陣)の実
行画面
上記の画面では、5x5 、および3x3 の魔方陣が表示されています。(まだライセンシングを掛けていませんので当然起動します)
CodeMeter の AxProtector を使い、スタンドアロンアプリケーション (magicsquare.exe) を保護し、ライセンスを紐付けるための「プロダクトコード」を割り当てます。AxProtector は、対象アプリケーションのソースコードを変更することなく、ファイルを指定するだけで保護およびライセンシング対象にすることができます。
図3. AxProtector の 「Windows アプリケーション」を選択
今回の magicsquare.exe は、Windows アプリケーションなので、AxProtector のプロジェクトタイプは「Windows アプリケーション または DLL 」を選択します。
ソースファイル(ライセンシング対象のファイル)欄には、magicsquare.exe を指定し、保存先ファイル(ライセンシング済みファイル)欄には、図4 のようにフォルダを分け、ファイル名は、magicsquareP.exe としています。(図4)
図4. 元のファイル名と、ライセンス適用後の保存先のファイル名を指定
ライセンスシステム のタブでは、ファームコード と プロダクトコード を設定します。(図5)
ファームコード:6000010(CodeMeter 評価のためのファームコード)
プロダクトコード : 14
図5.アプリケーションをライセンスに紐づけるためにFirm Code とProduct Code を設定
Runtime 設定 タブ内の、[プラグアウトチェックを有効] にチェックを入れると、ドングルを抜いたときにアプリを停止させることができます。
注意:
セキュリティオプション のタブでは、[動的コードの変更] のチェックを外してください。(図6)
これはアプリケーションが実行されている間、動的セキュリティチェックを行う設定ですが、MATLAB Compiler および Simulink Compiler で作成されたスタンドアローンアプリケーションは、この設定はオフにしないと動作しません。
図6.セキュリティオプション の 設定画面
ライセンシングが掛かったアプリケーション (magicsquareP.exe) の起動を試みると、図7 のようにライセンスが見つからない、というエラーが表示されます。(想定通り)
図7. ライセンスエラー表示
次に、このスタンドアローンアプリケーションのアクセス権限を持つライセンスを作成し、USB ドングル(CmDongle)に書き込みます。(図8)
図8. CodeMeter License Editor でドングルにライセンス情報を書き込む
プロダクトコード は、前述のAxProtector を用いた、スタンドアローンアプリケーション (magicsquare.exe) の暗号化を実施した際に設定した、プロダクトコード「14 」と同じにすることで、アプリケーションとライセンスを紐付けます。
今度はライセンスを搭載した CmDongle を PC に挿した状態で、ライ
センシングが掛かった、スタンドアローンアプリケーション (magicsquareP.exe)を起動してみます。
図9. ライセンシング適用後の魔方陣アプリケーション実行画面
無事にアプリケーションは起動し、行列サイズが5と7の魔方陣を作成
することができました。
SimulinkCompiler のサンプルアプリにCodeMeter を適用
Simulink Compiler のサンプルとして提供されている、バネ・質量・ダンパー
のシミュレーションアプリケーションも MATLAB Compiler と同様の手順で、CodeMeter のライセンシングを掛けることができます。
図10. Simulink Compiler サンプルのバネ・質量・ダンパーのシミュレーションアプリケーション
まとめ
MATLAB Compiler や Simulink Compiler で作成したスタンドアローンア
プリケーションは、手軽に配布できる反面、意図した範囲内での使用に制限したい場合など管理することは困難です。CodeMeter を使うことにより、シンプルな手順でライセンシングを適用することが可能であり、流出や不正コピーを防ぐだけでなく、配布先で使用可能な本数、ライセンス期間、機能、バージョンなど、必要に応じた様々なライセンス要件を策定した上で、ソフトウェアビジネスを構築することができます。画像認識、
機械学習、センシング、AI 、物理シミュレーション、など益々ソフトウェア
には高度なアルゴリズムと知的財産が搭載され、適切に・管理することにより求められているなかで、CodeMeter は、アプリケーションソフトウェアの保護とソフトウェアビジネスの収益化に貢献します。