主な機能

  • MATLAB プログラムを C/C++ 共有ライブラリ、Microsoft® .NET アセンブリ、および Java® クラスとしてパッケージ化
  • MATLAB を必要としないユーザーにソフトウェア コンポーネントを無償で配布
  • Web やエンタープライズ システムと統合するための MATLAB Production Server の開発およびテスト フレームワーク
  • MATLAB コードの暗号化による知的財産権の保護

言語の選択 – C/C++、.NET、Java または Python

MATLAB ベースのプログラムを独自のカスタム アプリケーションに統合することに関心のある開発者向けに、MATLAB Compiler SDK には、C/C++、.NET、Java および Python で作成されたアプリケーションで機能する包括的なツールキットが用意されています。MATLAB Compiler SDK でアプリケーションを作成する場合は、プログラミング言語に関係なく、以下の同じ基本プロセスを実行します。

  1. MATLAB アプリケーション コードを作成します。
  2. 対話型アプリまたはコマンド ライン オプションを使用して MATLAB コードを言語固有のコンポーネントにパッケージ化します。
  3. Visual Studio®、Eclipse、Xcode など選択した開発環境を使用してコンポーネントをホスト アプリケーションに統合します。
  4. アプリケーションが完成したら、対象のコンピューターにインストール (デスクトップ アプリケーションの場合はローカル インストール、サーバー ベースのアプリケーションの場合は集中型インストール) します。

MATLAB Compiler SDK は、ソフトウェア開発者がそれぞれのニーズに合った言語と MATLAB ベースのコンポーネントを統合することができる言語固有の機能を提供します。


C/C++ アプリケーション

C/C++ で作成されたアプリケーション向けに、MATLAB Compiler SDK には次の操作を実行するための機能が用意されています。

  • スレッドセーフ ライブラリを作成
  • Visual Studio にシームレスに統合するダイナミック ライブラリ ファイルを作成 (Windows アプリケーションの場合)
  • ヘッダー ファイルの関数シグネチャおよびライブラリ ファイルの暗号化コードを作成して C または C++ アプリケーションに含める

MATLAB プログラムを移植と読み取りが可能な C/C++ コードに変換することもできます。MATLAB Coder™ を使用して、プロジェクトをソース コード、スタティック ライブラリまたはダイナミック ライブラリとして統合できます。

MATLAB Compiler SDK および MATLAB Coder を使った C/C++ コードとのインテグレーション方法の比較については、MATLAB Answers にあります。


.NET および COM アプリケーション

.NET または COM で作成されたアプリケーション向けに、MATLAB Compiler SDK には次の操作を実行するための機能が用意されています。

  • ネイティブの .NET および COM コンポーネントと同様にアクセスできるように MATLAB プログラムで使用する .NET または COM ラッパーを作成
  • コンポーネントのパブリック メソッドとして MATLAB コード ファイルおよび MEX ファイルを追加して、アクセス
  • C#、F#、VB.NET、ASP.NET を含む CLS (Common Language Specification) 準拠の言語から .NET コンポーネントを呼び出す
  • Visual Basic® や ASP を含む COM 準拠のテクノロジーから COM オブジェクトを呼び出す
  • タイプ セーフ インターフェイスを使用して既存のインターフェイスを .NET アプリケーションに統合
  • コンパイル済みの MATLAB 関数に .NET オブジェクトを受け渡す
  • データ変換クラスを使用してデータを手動で変換し、出力データを管理
  • Web または SOA (Enterprise Service-Oriented Architecture) で WCF (Windows Communication Foundation) をサポート
  • クラスを永続サービスとして実行するか、コンポーネントを複数のプロセスで実行できるように.NET リモート処理 API をサポート

Java アプリケーション

Java アプリケーション向けに、MATLAB Compiler SDK には次の操作を実行するための機能が用意されています。

  • 他の Java クラスと同様に動作するように MATLAB プログラムの Java ラッパーを生成 (クラスのプロパティとメソッドを識別する Javadoc も作成)
  • コンポーネントの外部で表示されるクラス メソッドとして機能する MATLAB ファイルと MEX ファイルを追加
  • Java クラスが移植可能で、MATLAB でサポートされるすべてのプラットフォームで実行されることを確認
    (一部のツールボックス関数はプラットフォームに依存する MEX ファイルまたはネイティブ ライブラリとして実装されるため、これらの関数とそれらの関数を使用するすべての Java コンポーネントはプラットフォーム固有になります)
  • ネイティブの Java データ型を MATLAB 関数に渡して、自動的に MATLAB データ型に変換するか、使用するデータ型を明示的に選択
  • SOA、SOAP サービス、WSDL、RMI インターフェイス、HTTP サービスで Java コンポーネントとして配布される MATLAB Web アプリケーションにアクセス
  • RMI (Remote Method Invocation) インターフェイスを使用してクラスを永続サービスとして実行するか、複数のプロセスまたはコンピューターに処理を分散

Python アプリケーション

Python アプリケーション向けに、MATLAB Compiler SDK には次の操作を実行するための機能が用意されています。

  • Python アプリケーションまたは対話型セッションによってアクセスされる、MATLAB プログラム用の MEX ファイルを含む Python パッケージを生成
  • 自動変換により、ネイティブの Python データ型を MATLAB 関数に、および MATLAB 関数から渡す
  • 製品に含まれる専用の Python クラスを使用し、多次元配列を配布可能なアーカイブの MATLAB 関数に渡し、また、MATLAB 関数から Python へ渡すことも可能
  • MATLAB エンジン API を使用し、MATLAB コードを Python アプリケーションに統合することが可能。これを使い、MATLAB Production Server または MATLAB Compiler SDK で構築されたカスタム Python アプリケーションに対して配布やデバッグが可能

プラットフォームの選択 – デスクトップ、Web、またはエンタープライズ

MATLAB Compiler SDK では、MATLAB ベースのアプリケーションを、個人ユーザーのスタンドアロン デスクトップ アプリケーションから大規模な Web およびエンタープライズ システムまで幅広いプラットフォームに配布できます。実装作業、保守、プログラミング言語および組織の設定に基づいてプラットフォームを選択できます。

配布されるすべてのアプリケーションとコンポーネントは、MATLAB Runtime を使用して MATLAB を所有していないユーザーに無償で配布できます。デスクトップ プラットフォームの場合、アプリケーションとランタイムは対象のコンピューターに直接インストールされますが、Web とエンタープライズ アプリケーションおよび関連のランタイムを中央のサーバーにインストールすると管理と配布を容易に行うことができます。


インフラストラクチャの選択 – カスタムまたは MATLAB Production Server

Web およびエンタープライズ システムの場合、MATLAB Compiler SDK では、アプリケーション サーバーへの実装方法として、カスタム インフラストラクチャを開発するか、MATLAB Production Server を利用して安全でスケーラブルな配布を行うか、どちらかの方法を選択できます。

どちらの場合も、以下の示すようにワークフローは似ています。

MATLAB Compiler SDK は、独自のカスタム インフラストラクチャを開発したり、MATLAB Production Server を利用して安全でスケーラブルな Web エンタープライズ アプリケーションを作成するためのツールを提供します。

カスタム インフラストラクチャの開発

独自のインフラストラクチャの作成に関心がある開発者向けに、MATLAB Compiler SDK で生成されたコンポーネントは、ASP.NET、SOA、WSDL、SOAP、XML、JavaScript®、HTML、HTTP サービス、Java サーブレット、JSP、および Java RMI や .NET リモート処理などの標準テクノロジーに統合されてスケーラビリティを実現します。多数の同時リクエストを処理する必要のあるアプリケーションの場合は、アプリケーション サーバーとコンパイルした MATLAB コードの間に RMI サーバーの中間レイヤーを作成できます。

MATLAB Compiler SDK は、組織で使用している さまざまな言語


MATLAB Production Server の実装

安全でスケーラブルなサーバー ベースのアプリケーションを効率よく作成することに関心のある開発者向けに、MATLAB Compiler SDK は MATLAB Production Server で実行されるアプリケーションを開発するための完全なツールキットを提供しています。MATLAB Compiler SDK には、次のツールが用意されています。

  • パッケージ化する前にアルゴリズムをデバッグする対話型アプリ
  • C/C++、.NET、Java、および Python 用軽量クライアント ライブラリ
  • MATLAB アルゴリズムを Microsoft® および Excel® のアドインとしてパッケージ化するアプリ

プログラムをデバッグしたら、それらを管理するカスタム インフラストラクチャのコードを再生成したり作成することなく、パッケージ化して MATLAB Production Server に直接配布することができます。MATLAB Production Server には、MATLAB Runtime (または "ワーカー") の複数のインスタンスを稼働させてサーバーからリクエストに応答できるようにすることで実現される組み込みの、ビルトインされたスケーラビリティがあります。信頼性とスケーラビリティを強化するために、MATLAB Production Server の複数のインスタンスを結合できます。ワーカーをインスタンス間で共有して、パフォーマンスを最大化し、応答時間を最小化します。


コンポーネントのパッケージ化と配布

MATLAB Compiler SDK を使って MATLAB コンポーネントをパッケージ化し、他のプログラミング言語で開発されたアプリケーションと統合できます。MATLAB プログラムを指定すると、MATLAB Compiler SDK はプログラムを実行するのに必要な MATLAB 関数およびファイルを確認します。その後、コードを暗号化してパッケージ化します。

アプリケーションを受け取ったユーザーに最適な環境を提供するために、MATLAB Compiler SDK では次の操作を実行できます。

  • MATLAB Runtime をインストール パッケージで提供するか、インストール中に自動的にダウンロードするかを指定
  • データ ファイルやイメージなど、依存関係チェックを通じて検出されない補足ファイルを追加
  • ソフトウェアのバージョン番号、作成者の情報、既定のインストール ディレクトリなどコンポーネント メタデータを取得