ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

サポートされるクライアントおよびサーバーの構成

はじめに

MATLAB® ソフトウェアは、他の COM コンポーネントを制御またはそれに制御されるように構成することができます。MATLAB が別のコンポーネントを制御する場合、MATLAB はクライアントになり、その他のコンポーネントがサーバーになります。別のコンポーネントが MATLAB を制御する場合、MATLAB がサーバーになります。

MATLAB クライアントとインプロセス サーバー

次のダイアグラムは、MATLAB クライアントとインプロセス サーバーとの相互作用を示しています。

サーバーは、コンポーネントが実装するインターフェイスに基づいて、IDispach (オートメーション) インターフェイスまたはカスタム インターフェイスを介してそのプロパティとメソッドを公開します。インターフェイスへのアクセスについては、COM オブジェクト インターフェイスを参照してください。

Microsoft ActiveX コントロール

ActiveX® コントロールはユーザー インターフェイスをもつオブジェクトです。MATLAB が ActiveX コントロールを作成すると、コントロールの UI が MATLAB の Figure ウィンドウに配置されます。ユーザー インターフェイス内にあるさまざまなオプションをクリックして (例、特定のメニュー選択を行う)、サーバーのコントロールからクライアントである MATLAB アプリケーションに通信される "イベント" をトリガーします。クライアントは、各イベントと、それに応じた応答を処理します。

MATLAB には、mwsamp と呼ばれるサンプルの ActiveX コントロールが付属しています。このコントロールは、画面に円を描画し、テキストを表示します。このコントロールを使用して、MATLAB COM 機能を試すことができます。詳細は、MATLAB のサンプル ActiveX コントロール mwsampを参照してください。

DLL サーバー

ダイナミック リンク ライブラリ (DLL) として実装された COM コンポーネントは、インプロセス サーバーでもインスタンス化されます。つまり、MATLAB クライアント アプリケーションと同じプロセスで作成されます。MATLAB が DLL サーバーを使用するときは、MATLAB の Figure ウィンドウではなく、別のウィンドウで実行されます。

MATLAB は、ActiveX コントロールからのイベントと同じ方法で、DLL サーバーによって生成されたイベントに応答します。

詳細

クライアントとしての MATLAB の使用の詳細は、COM オブジェクトの作成を参照してください。

MATLAB クライアントとアウトプロセス サーバー

この構成では、MATLAB クライアント アプリケーションは、ローカルのアウトプロセス サーバーとして実装されているコンポーネントと対話します。アウトプロセス サーバーの例には、Microsoft® Excel®Microsoft Word のプログラムがあります。

インプロセス サーバーの場合のように、このサーバーは、コンポーネントが実装するインターフェイスに基づいて、IDispach (オートメーション) インターフェイスまたはカスタム インターフェイスを介してそのプロパティとメソッドを公開します。インターフェイスへのアクセスについては、COM オブジェクト インターフェイスを参照してください。

クライアントとサーバーは別のプロセスで実行するため、同じネットワーク上のシステムにクライアントとしてサーバーを作成するオプションがあります。

コンポーネントにユーザー インターフェイスがある場合は、そのウィンドウはクライアント アプリケーションとは別になります。

MATLAB は、ActiveX コントロールからのイベントと同じ方法で、アウトプロセス サーバーによって生成されたイベントに応答します。

詳細

クライアントとしての MATLAB の使用の詳細は、COM オブジェクトの作成を参照してください。

MATLAB ソフトウェアでサポートされている COM 実装

MATLAB では、Microsoft Active Template Library (ATL) API と互換性のある COM 実装のみがサポートされます。一般的に、COM オブジェクトは MATLAB と動作するように、ATL ホスト ウィンドウに含めることが可能になっています。

クライアント アプリケーションと MATLAB オートメーション サーバー

MATLAB は、この構成ではオートメーション サーバーとして機能します。"オートメーション コントローラー" になり得る Microsoft Windows® プログラムであればどれでも、これを作成し、制御できます。オートメーション コントローラーの例には Microsoft ExcelMicrosoft Access™Microsoft Project と共に、Microsoft Visual Basic® および Microsoft Visual C++® のプログラムも数多く挙げられます。

MATLAB オートメーション サーバーの機能には、MATLAB ワースペース内で直接コマンドを実行し、ワークスペースから直接行列を取得したり、行列に配置する能力が含まれています。共有または専用モードのいずれにおいても MATLAB サーバーを開始できます。またローカルまたはリモート システムで実行するオプションがあります。

MATLAB サーバーを外部のアプリケーション プログラムから作成するには、その言語から適切な関数を使用してサーバーをインスタンス化します (たとえば、Visual Basic の関数 CreateObject を使用します)。 プログラム識別子には、matlab.application を指定します。MATLAB を専用サーバーとして実行するには、matlab.application.single プログラム識別子を使用します。詳細は、共有サーバーと専用サーバーを参照してください。

MATLAB サーバーを作成する関数は、IDispatch インターフェイスを使用してサーバーで利用可能なプロパティとメソッドにハンドルを返します。

メモ

VBScript クライアント プログラムにはサーバーとの通信にオートメーション インターフェイスが必要なため、これが VBScript クライアントをサポートする唯一の構成となります。

詳細

オートメーション サーバーの使用の詳細は、MATLAB COM オートメーション サーバー インターフェイスを参照してください。

クライアント アプリケーションと MATLAB エンジン サーバー

MATLAB には、C、C++ または Fortran で書かれたクライアント アプリケーション用の IEngine と呼ばれるさらに高速なカスタム インターフェイスがあります。MATLAB は、IEngine を使って、クライアント アプリケーションと、COM サーバーを実行している MATLAB エンジン間の通信を行います。

MATLAB エンジン API 関数を使用して、サーバー プロセスの開始や終了および MATLAB により処理されるコマンドの送信を行います。