Main Content

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

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

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

How the MATLAB client interacts with an in-process server.

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

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

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

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

How the MATLAB client interacts with a local out-of-process server.

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

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

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

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

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

MATLAB でサポートされている COM 実装

MATLAB では、Microsoft Active Template Library (ATL) API と互換性のある COM 実装のみがサポートされます。一般的に COM オブジェクトは、MATLAB と連携するために ATL ホスト ウィンドウに含めることができなければなりません。

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

How a client application interacts with a MATLAB Automation server.

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 エンジン サーバー

How a client application interacts with a MATLAB engine server.

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

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