多くのアプリケーション作成者は、他のプログラムで再利用できるコンポーネントをプログラマに提供しています。通常、これらのサードパーティ コンポーネントを独自のプログラムに導入し、既成の関数を呼び出して比較的複雑な関数を実装します。実際、より多くのユーザーにより便利にサービスを提供するために、ネットワーク経由でサードパーティ コンポーネントの機能を公開することもできます。
.NET 開発の場合、サードパーティ コンポーネントは、ASP.NET (人間用) または Web サービス (マシン用) テクノロジを通じてラップできます。以下では、例として ASP.NET を使用して Matlab コンポーネントの Execute 関数を公開します。前提条件は、Matlab がサーバーにインストールされていることです。
VS2005 で新しい ASP.NET サイトを作成し、ソリューション エクスプローラー ペインでサイト ディレクトリを右クリックし、[参照の追加] を選択して、Matlab の COM コンポーネントである Matlab アプリケーション (バージョン XX) タイプ ライブラリを追加します。
TextBox、Button、および Literal コントロールを Web ページに追加します。 TextBox は式の入力に使用され、Button は実行を確認し、Literal は結果を出力します。次のイベント コードを追加して、Matlab コンポーネントの Execute 関数を呼び出し、Matlab ステートメントを実行します。
Protected Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim matlab As New MLApp.MLApp
Dim strMatLab As String
strMatLab = TextBox1.Text
Dim strResult As String = matlab.Execute(strMatLab)
strResult = strResult.Replace(Chr(10), "<br>")
strResult = strResult.Replace(" ", " ")
Me .Literal1. Text = strResult
matlab.Quit()
End Sub
このサイトを VS2005 で実行し、表示される Web ページに「dsolve('Dx=x^2+5')」などの式を入力すると、結果が表示されます。ボタンをクリックすると「ans = 5^(1/2)*tan(5^(1/2)*t+5^(1/2)*C1)」が表示されます。ただし、IIS を使用してこのサイトを公開すると、ASP.NET にコンポーネントを作成する権限がないため、実行時にエラーが発生します。エラー メッセージによると、Web サイトの web.config ファイルに次の文を追加する必要があります。
<identity impersonate="true" userName="xx" password="xx"/>
ここで指定されたユーザーは、関連する権限を持つユーザーである必要があります。サーバー側で。指定しない場合はクライアントページで認証が行われます。もちろん、ユーザー名とパスワードを web.config にプレーン テキストで保存するのは安全ではなく、実際のアプリケーションでは暗号化する必要があります。
この度、Matlab 式評価関数のオンラインリリースを完了いたしました。 Matlab をインストールしていない友人に、Web サイトにログインして Matlab の強力なコンピューティング機能を使用するように通知できます。 (注: この例はデモンストレーションのみを目的としています。MATLAB の強力なステートメントとツールボックスは、リモート ユーザーがこの Web ページを通じてファイル システムにアクセスできるようにするのに十分です。)
HTTP プロトコルの性質とサーバー側の実行の特性により、これはサードパーティ コンポーネントのパッケージ化の種類。通常、データ処理関数の公開には適していますが、制御関数の公開には適していません。同時に、この方法はリアルタイム性の高いサービスや状態の保存が必要なサービスには適していません。セキュリティ上の理由から、サードパーティのコンポーネントを再カプセル化し、データ フィルタリングと例外処理を追加することもできます。
原理はとてもシンプルです。実際のアプリケーションにおけるこのソリューションの価値について話し合っていただければ幸いです。
参考:
1. Li Hongen、.NET での MATLAB アルゴリズムの適用
( http://www.microsoft.com/china/community/Column/25.mspx )
2. Matlab 7.1、Matlab Web Server 関連のヘルプ ドキュメント