チュートリアル: LabVIEW Webサービスを作成してNIWebサーバにパブリッシュする (Windows)
- 更新日2025-04-04
- 17分で読める
LabVIEW Webサービスを作成およびパブリッシュし、Webクライアント (この場合はWebブラウザ) とデータを交換するには、以下の手順に従ってください。
このチュートリアルには以下のセクションが含まれます。
Webサービスを作成する
LabVIEWプロジェクトでWebサービスを作成するには、Webサービスを構成するVIおよびその他のファイルをグループにまとめて構成します。Webサービスプロジェクトと2つのHTTPメソッドVIを作成するには、以下の手順に従ってください。
- LabVIEWプロジェクトを作成し、Webサービスファイルを整理します。プロジェクトをTutorial.lvprojという名前で保存します。
-
マイコンピュータを右クリックし、新規»Webサービスの順に選択します。Webサービスのプロジェクト項目とフォルダが、ターゲットの下に追加されます。メモ このチュートリアルでは、Webサービスを作成して、ホストコンピュータにパブリッシュします。プロジェクトエクスプローラのReal-Time (RT) ターゲットの下にWebサービスプロジェクトを作成することにより、WebサービスをRTターゲットにパブリッシュすることもできます。WebサービスをRTターゲットにパブリッシュする場合、WebサービスをホストするにはアプリケーションWebサーバしか使用できません。詳しい手順については、LabVIEW Webサービスを作成してアプリケーションWebサーバにパブリッシュするを参照してください。
- Webサービスプロジェクト項目
を右クリックし、名前の変更を選択して、WebサービスにTutorialServiceという名前を付けます。プロジェクトは次のように表示されます。
-
Webリソースを右クリックし、新規VIを選択して、新しいHTTPメソッドVIを作成します。これはクライアントからHTTP要求を受信し、データをクライアントに返すVIです。テンプレートから新規のVIを開きます。メモ デフォルトでは、HTTPメソッドVIはコネクタペーンを介してデータをクライアントに返します。このチュートリアルでは、HTTPメソッドVIはデフォルトのJSON形式のテキスト応答を返します。このチュートリアル外でHTTPメソッドVIを作成する場合、カスタマイズされたHTMLページや画像データなどのカスタム形式を使用して。データをクライアントにストリームすることもできます。WebサービスプロパティダイアログボックスのHTTPメソッドVI設定ページで出力形式タイプを構成します。
- 以下の図に示すように、この新しいVIで、ブロックダイアグラム、フロントパネル、コネクタペーンを作成します。このVIをWebサービスの一環としてパブリッシュすると、WebクライアントはHTTP要求を送信してこのVIを呼び出すことができます。VIを呼び出すと、以下の動作が行われます。
ブロックダイアグラム フロントパネル コネクタペーン - コネクタペーンに割り当てられた制御器の値をクライアントが行ったHTTP要求から受け取ります (LabVIEW Webサービス要求を除く)。LabVIEW Webサービス要求は、現在のHTTP要求を識別することにより、Refnumのような機能を果たします。
- aとbの和を計算します。
- コネクタペインに割り当てられたc表示器を通じて、これらの値の和をクライアントに返します。
- 「要求変数を読み取る」VIを実行し、クライアントが現在のHTTP要求に追加した、LabVIEW Webサービス要求を識別するクエリ文字列を返します。ヒント より複雑なWebサービスでは、Webサービスパレットで他のVIを使用して、HTTPヘッダおよび認証などの機能を有効にすることができます。
- 制御器と表示器がそれぞれコネクタペインに表示されることに注意してください。デフォルトの端子出力タイプでは、Webサービスがクライアントからデータを受信したり、クライアントにデータを送信したりするには、HTTPメソッドVIのコネクタペインに割り当てられた入力と出力を使用しなければなりません。ヒント 各オブジェクトにわかりやすい名前を付けます。これらの名前は、VIとデータを交換するためにWebクライアントが使用するURLの一部として使用されます。
- VIをAdd.viという名前で保存します。
- ファイル»別名で保存を選択し、表示されるダイアログボックスでコピー»元のファイルもコピーも開くを選択します。コピーをTutorial.lvprojへ追加チェックボックスがオンになっていることを確認し、継続をクリックします。
- 新しいコピーをSubtract.viの名前で保存します。
- Subtract.viのブロックダイアグラムを開き、「和」関数を「差」関数で置き換えます。制御器と表示器を再配線します。
- プロジェクトに戻り、Webリソースを右クリックして、新規Webリソースを選択します。新規プロジェクト項目AdditionalOperationsの名前を変更します。
-
AdditionalOperationsプロジェクト項目の下にSubtract.viをドラッグします。プロジェクトを保存すると、以下の図のように表示されます。
プロジェクトツリーでは、以下の特徴に注意してください。
- LabVIEWでは、HTTPメソッドVIの名前ごとに、HTTP要求タイプが追加されます (デフォルトではGETが追加されます)。クライアントが特定のHTTPメソッドVIに送信するHTTP要求のタイプを変更する方法は、このチュートリアルの後半で学習します。
- Webサービスのプロジェクト項目
にも、スタートアップVIフォルダが含まれています。このチュートリアルではスタートアップVIは使用しませんが、チュートリアルの最後に詳細情報が記載されています。
関連情報
Webサービスをテストおよびデバッグする
Webサービスをターゲットにパブリッシュする前に、HTTPメソッドVIが予想どおりにクライアントと通信することをテストしたい場合があります。LabVIEWプロジェクトからWebサーバ上に直接Webサービスを実行して、クライアントがHTTPメソッドVIに要求を送信できるようにすることができます。
- Webサービスのプロジェクト項目
を右クリックし、開始を選択します。
- コンピュータで初めてNI Webサーバを使用する場合、以下の手順を実行してNI Webサーバを有効にして構成します。
- Webサービスを開始ダイアログボックスでNI Webサーバを構成するをクリックしてNI Webサーバ構成を起動します。
- このチュートリアルでは、単純なローカルアクセス構成プリセットおよび次へをクリックします。
- 認証タブで、サーバ管理用の管理者ユーザを使用してログインを選択してパスワードを作成します。次へをクリックします。
- 終了をクリックしてこの構成を適用します。
- LabVIEWプロジェクトに戻り、手順1を繰り返します。Webサービスは、NI Webサーバで実行されています。
-
Add.viを開きます。実行ボタンは、このVIが実行のために予約されていることを示します。
これは、LabVIEWがWebサービスをロードし、クライアントと通信できるように、NI Webサーバでこれを利用できるようにするためです。
- Add.viを閉じます。
- 以下の手順に従って、クライアントがAdd.viを呼び出すために使用するURLを取得します。
- Add.viを右クリックし、メソッドURLを表示を選択すると、HTTPメソッドURLダイアログボックスが表示されます。
- 利用可能なサーバプルダウンメニューで、NI Webサーバが含まれる項目を選択し、URLをコピーをクリックします。
- ダイアログボックスを閉じます。メモ HTTPメソッドURLダイアログボックスが開いていると、Webサービスはクライアントからの要求に応答しません。
- 手順6のURLを標準のWebブラウザに貼り付け、{値}変数をhttp://127.0.0.1:80/TutorialService/Add?b=2&a=3のように数値で置き換えます。メモ NI Webサーバは、HTTP/HTTPSプロトコルに従ってデフォルトポートとして80/443を使用します。ただし、別のアプリケーションがポートを占有している場合、ポート番号が変更される場合があります。ポート番号は、NI Webサーバ構成でカスタマイズできます。認証、ポート、リモート接続などのサーバ設定については、NI Webサーバを構成するを参照してください。
- URLを参照します。Add.viはブラウザからHTTP要求を受信し、aとbの値の和を計算して、Add.viのコネクタペインに割り当てられた各表示器の名前と出力値入りの応答を返します。このチュートリアルでは、応答はJSON文字列で、デフォルトの端子出力形式です。Add.viには、コネクタペインに割り当てられたcおよびvalueの2つの表示器があり、HTTPメソッドVIはこの値を応答に返します。
{"c":5,"value":"b=2&a=3"}
メモ 予期しない動作が発生したら、Webサービスファイルを編集する前にデバッグセッションを停止してください。実行のためにLabVIEWによって予約されている間は、これらのファイルを編集することができません。Webサービスのプロジェクト項目を右クリックし、停止を選択します。 - Subtract.viでも手順6と7を繰り返すか、または手順7のURLを更新して、Subtract.viの固有のURLマッピングがhttp://127.0.0.1:80/TutorialService/AdditionalOperations/Subtract?b=2&a=3に反映されるようにします。
- Subtract.viでも手順8を繰り返します。
- Webサービスのプロジェクト項目を右クリックし、停止を選択します。
関連情報
クライアントでのWebサービスへのアクセス方法を構成する
WebクライアントはURLを使用してHTTPメソッドVIとデータを交換します。このチュートリアルの後半で、Webブラウザに特定のURLを入力し、HTTPメソッドVIのコネクタペインの制御器に直接データを送信します。
以下の手順に従って、クライアントがHTTPメソッドVIにアクセスする際に使用できるURLを定義します。
- Webサービスプロジェクト項目
を右クリックし、プロパティを選択すると、Webサービスプロパティダイアログボックスが表示されます。
- HTTPメソッドVI設定ページで、LabVIEWプロジェクトのWebリソースフォルダのHTTPメソッドVIが、WebサービスVIの表に表示されていることに注意してください。さらに、Subtract.viをAdditionalOperationsプロジェクト項目の下に置いたことで、URLマッピングがAdd.viと比べてどのように変化したかを確認してください。
- 表でSubtract.viを選択すると、ページのページの下部のURLマッピングタブに次の機能が表示されます。
- HTTP要求タイプは、メソッドプルダウンメニューで変更できます。Subtract.viでは、デフォルト値GETを使用します。
- LabVIEWがURLをVIにマッピングする際に使用する標準形式を無効にして、サービス名の後に表示されるURLの一部をカスタマイズすることができます。このチュートリアルでは、標準のURLマッピングを使用し、VI名を追加します。
- URLフィールドには、LabVIEWがHTTPメソッドVI用に作成した元のURLが表示されます。たとえば、Subtract.viの場合、LabVIEWで作成されるデフォルトのURLマッピングは/AdditionalOperations/Subtractになります。
メモ より複雑なWebサービスでは、このページの残りのタブを使用して、VIがWebクライアントに出力データを返す形式や、権限などのセキュリティ設定を構成することができます。 - OKをクリックして、Webサービスプロパティダイアログボックスを閉じます。
- Tutorial.lvprojを保存します。
関連情報
WebサービスをNI Webサーバにパブリッシュする
作成したWebサービスをNI Webサーバにパブリッシュできます。NI Webサーバは、LabVIEW WebサービスやNIが作成したSystemLink™サービスなどのユーザが作成したサービスをホストできる産業用級のWebサーバです。NI Webサーバは、Webアプリケーションを一般的なWebセキュリティの脅威から保護し、エンタープライズ級のデータサービスに高度なスケーラビリティを提供してデバイス管理を可能にします。このチュートリアルでは、NIパッケージにWebサービスを含めてインストールすることにより、Webサービスをパブリッシュします。
パッケージを介してWebサービスをローカルコンピュータで実行されているNIサーバにパブリッシュするには、以下の手順に従ってください。
- プロジェクトエクスプローラウィンドウでビルド仕様を右クリックして新規→パッケージを選択すると、パッケージプロパティダイアログボックスが表示されます。
- 情報ページでパッケージ出力ディレクトリテキストボックスに、パッケージをビルドする場所を指定します。
- Webサービスページで、TutorialServiceチェックボックスをオンにしてWebサービスをパッケージに含めます。
- ビルドをクリックするとビルドステータス ダイアログボックスが表示されます。
- LabVIEWでパッケージのビルドが完了したら、エクスプローラをクリックして、パッケージファイル.nipkgを保存する出力先ディレクトリを開きます。
- パッケージをダブルクリックして、NI パッケージマネージャからインストールします。インストールが完了すると、Webサービスがホストコンピュータ上のNI Webサーバにパブリッシュされます。
- LabVIEWプロジェクトを閉じます。パブリッシュされたWebサービスはLabVIEWランタイムで実行され、LabVIEW開発システムに依存しません。
関連情報
クライアントでWebサービスにアクセスする
URLを使用して、WebブラウザからパブリッシュされたWebサービスにデータを送信するには、以下の手順に従ってください。
-
Webサービスをテストおよびデバッグするの手順7のURLを標準のWebブラウザに貼り付け、{値}変数をhttp://127.0.0.1:80/TutorialService/Add?b=2&a=3のように数値で置き換えます。メモ クライアントがWebサービスをパブリッシュしたシステムと異なるシステムにある場合、127.0.0.1をホストシステムの実際のIPアドレス、またはNI Webサーバ構成でカスタマイズしたホスト名に置き換える必要があります。
- コネクタペインに割り当てられた各表示器からの出力値を持つJSON応答が返されます。
関連情報
その他のガイドとヘルプ
- 概要: LabVIEWアプリケーションとのWebベースの通信―LabVIEW Webサービスの全体的概要
- インストーラでWebサービスをパブリッシュする―WebサービスにWebサービス含めて、NIパッケージがインストールされたときにWebサービスが実行されるようにします。
- スタンドアロンアプリケーションでWebサービスをパブリッシュする―LabVIEWスタンドアロンアプリケーションにWebサービス含めて、アプリケーションを実行したときにWebサービスが実行されるようにします。
- HTTPメソッドVIを作成するまたはHTTPメソッドVIを初期化して通信を行うスタートアップVIを作成する—より複雑なHTTPメソッド、およびWebサービスアプリケーションの一部として実行されるが、Webクライアントとのデータの交換はしないスタートアップVIを作成します。
- スタティックコンテンツをWebサービスに統合する—HTMLページや画像などのスタティックコンテンツをWebサービスと一緒にパブリッシュします。
サンプルコード
Webサービスを使用したサンプルは、以下のLabVIEWプロジェクトを参照してください。
- examples\Connectivity\Web Services\Weather Monitor\Web Services — Weather Monitor.lvproj