主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

MATLABCOMオートメーションサーバーインターフェイス

COMサーバーのタイプ

  • オートメーション——OLEオートメーション規格をサポートするサーバー。オートメーションサーバーは,IDispatchインターフェイスに基づいています。スクリプト記述クライアントを含むあらゆるタイプのクライアントがオートメーションサーバーにアクセスします。

  • カスタム-IUnknownから直接派生するインターフェイスを実装するサーバー。MATLAB®はカスタムインターフェイスをサポートしません。

  • デュアル——オートメーションとカスタムインターフェイスの組み合わせを実装するサーバー。

プログラム識別子

COMオブジェクトのインスタンスを作成するには,そのプログラム識別子である“ProgID”を使用します。ProgIDは,COMオブジェクトを特定するためにコンポーネントベンダーによって定義される一意の文字列です。ProgIDはベンダーのドキュメンテーションから入手します。

共有サーバー用のMATLAB ProgIDは次のとおりです。

  • Matlab。应用程序——オートメーションサーバーとして直近に使用されたMATLABのバージョン(MATLABの最新のインストールバージョンではない場合がある)で,コマンドウィンドウからオートメーションサーバーを開始します。

  • Matlab。Autoserver——MATLABの最新バージョンを使用して,コマンドウィンドウからオートメーションサーバーを開始します。

  • Matlab.Desktop.Application——MATLABの最新バージョンを使用して,フルデスクトップのMATLABをオートメーションサーバーとして開始します。

専用サーバー用のProgIDは次のとおりです。

  • Matlab.Application.Single

  • Matlab.Autoserver.Single

これらの“バージョンに依存しない”MATLABのProgIDは,現在登録されているバージョンのMATLABを指定します。

特定の登録済みバージョンのMATLABのインスタンスを作成するには,“バージョン依存”のProgIDを使用できます。たとえば,Matlab.Application.7.14では,MATLAB版本7.14 (R2012a)のインスタンスが作成されます。

共有サーバーと専用サーバー

MATLABオートメーションサーバーは,共有または専用の2つのモードのいずれかで起動できます。専用サーバーは1つのクライアント専用であり,共有サーバーは複数のクライアントにより共有されます。モードは,MATLABを起動するクライアントが使用するプログラム識別子(ProgID)により決定されます。ProgIDとしてmatlab.applicationを使用する場合,MATLABは共有サーバーを作成します。

共有サーバーの起動

ProgIDであるmatlab.applicationは既定のモード(共有)を指定します。バージョン固有のProgIDであるmatlab.application.N.Mを使用することもできます。ここで,Nはご使用のMATLABのメジャーバージョンであり,はマイナーバージョンです。たとえば,米ATLAB Version 7.4 の場合、N74となります。

MATLABが共有サーバーとして起動されると,共有サーバーProgIDを使用してMATLABへの接続を要求するすべてのクライアントは,既に実行されているMATLABのインスタンスに接続します。言い換えると,共有サーバーProgIDを使用するすべてのクライアントが共有しているので,実行される共有サーバーのインスタンスが複数になることはありません。

専用サーバーの起動

専用サーバーを指定するには,ProgIDであるmatlab.application.single(またはバージョン固有のProgIDであるmatlab.application.single.N.M)を使用します。

専用ProgIDを使用してMATLABへの接続を要求するクライアントは,MATLABの個別のインスタンスを作成し,サーバーがその他のクライアントと共有されないように要求します。そのため,専用サーバーは複数のクライアントによって共有されないので,同時に専用サーバーの複数のインスタンスを実行できます。

インプロセスサーバーおよびアウトプロセスサーバー

MATLABは,以下のサーバー構成をサポートします。

インプロセスサーバー

インプロセスサーバーとは,クライアントアプリケーションと同じプロセス内で実行され,アドレス空間を共有するダイナミックリンクライブラリ(DLL)として実装されるコンポーネントです。クライアントとサーバー間の通信は,シンプルかつ通信速度がかなり高速です。

ローカルのアウトプロセスサーバー

ローカルのアウトプロセスサーバーは,クライアントアプリケーションからの別のプロセスで実行する,実行可能な(EXE)ファイルとして実装されるコンポーネントです。クライアントプロセスとサーバープロセスは,同じコンピューターシステムに存在します。プロセス境界をまたぐデータ送信にはオーバーヘッドを要するため,この構成は低速になります。

リモートのアウトプロセスサーバー

“分散コンポーネントオブジェクトモデル(DCOM)”は,ネットワークを経由してCOM接続を可能にするプロトコルです。使用している窗口®オペレーティングシステムとコントローラーが両方ともDCOMをサポートしている場合は,コントローラーを使用してリモートマシンのMATLABサーバーを起動することができます。DCOMが正しく構成され,MATLABがクライアントやサーバーとして使用される各マシンにインストールされていなければなりません。クライアントマシンがこのような構成でMATLABを実行しない場合でも,クライアントマシンにはMATLABがインストールされていなければなりません。これはリモート接続を確立するためには特定のMATLABコンポーネントが必要とされるためです。現在使用中の環境に合わせてDCOMを構成する方法については,ご使用のDCOMのドキュメンテーションを参照してください。

データ送信に必要とされるオーバーヘッドに加え,ネットワーク通信によってこの構成の速度はローカルアウトプロセス構成よりも低下します。

詳細については,以下の記事を参照してください。

関連するトピック