LabVIEW Webサービスを作成およびパブリッシュし、Webクライアント (この場合はWebブラウザ) とデータを交換するには、以下の手順に従ってください。

メモ このトピックの概念の詳細については、Webサービスの概要を参照してください。LabVIEW Webサービスは、LabVIEW開発システムおよびLabVIEWプロフェッショナル開発システムでのみ使用可能です。

このチュートリアルには以下のセクションが含まれます。

  1. Webサービスを作成する
  2. Webサービスをテストおよびデバッグする
  3. クライアントでのWebサービスへのアクセス方法を構成する
  4. WebサービスをアプリケーションWebサーバにパブリッシュする
  5. クライアントでWebサービスにアクセスする
  6. Webサービスを監視する

Webサービスを作成する

LabVIEWプロジェクトでWebサービスを作成するには、Webサービスを構成するVIおよびその他のファイルをグループにまとめて構成します。Webサービスプロジェクトと2つのHTTPメソッドVIを作成するには、以下の手順に従ってください。

  1. LabVIEWプロジェクトを作成し、Webサービスファイルを整理します。プロジェクトをTutorial.lvprojという名前で保存します。
  2. マイコンピュータを右クリックし、新規»Webサービスの順に選択します。Webサービスのプロジェクト項目とフォルダが、ターゲットの下に追加されます。
    メモ
    • このチュートリアルでは、Webサービスを作成して、ホストコンピュータにパブリッシュします。LabVIEWプロジェクトのRTターゲットの下にWebサービスプロジェクトを作成することにより、WebサービスをReal-Timeターゲットにパブリッシュすることもできます。
    • (Windows) WindowsコンピュータでWebサービスをホストするには、NI Webサーバの使用が推奨されています。詳しい手順については、チュートリアル: LabVIEW Webサービスを作成してWebサーバにパブリッシュする (Real-Time、Windows)を参照してください。
  3. Webサービスプロジェクト項目を右クリックし、名前の変更を選択して、WebサービスにTutorialServiceという名前を付けます。プロジェクトは次のように表示されます。

  4. Webリソースを右クリックし、新規VIを選択して、新しいHTTPメソッドVIを作成します。これはクライアントからHTTP要求を受信し、データをクライアントに返すVIです。テンプレートから新規のVIを開きます。
    メモ デフォルトでは、HTTPメソッドVIはコネクタペーンを介してデータをクライアントに返します。このチュートリアルでは、HTTPメソッドVIはデフォルトのJSON形式のテキスト応答を返します。このチュートリアル外でHTTPメソッドVIを作成する場合、カスタマイズされたHTMLページや画像データなどのカスタム形式を使用して。データをクライアントにストリームすることもできます。WebサービスプロパティダイアログボックスのHTTPメソッドVI設定ページで出力形式タイプを構成します。
  5. 以下の図に示すように、この新しいVIで、ブロックダイアグラム、フロントパネル、コネクタペーンを作成します。
    ブロックダイアグラムフロントパネルコネクタペーン
    このVIをWebサービスの一環としてパブリッシュすると、WebクライアントはHTTP要求を送信してこのVIを呼び出すことができます。VIを呼び出すと、以下の動作が行われます。
    • コネクタペーンに割り当てられた制御器の値をクライアントが行ったHTTP要求から受け取ります (LabVIEW Webサービス要求を除く)。LabVIEW Webサービス要求は、現在のHTTP要求を識別することにより、Refnumのような機能を果たします。
    • abの和を計算します。
    • コネクタペインに割り当てられたc表示器を通じて、これらの値の和をクライアントに返します。
    • 「要求変数を読み取る」VIを実行し、クライアントが現在のHTTP要求に追加した、LabVIEW Webサービス要求を識別するクエリ文字列を返します。
      ヒント より複雑なWebサービスでは、Webサービスパレットで他のVIを使用して、HTTPセッション、認証、HTTPヘッダ、Cookieなどの機能を有効にすることができます。
  6. 制御器と表示器がそれぞれコネクタペインに表示されることに注意してください。デフォルトの端子出力タイプでは、Webサービスがクライアントからデータを受信したり、クライアントにデータを送信したりするには、HTTPメソッドVIのコネクタペインに割り当てられた入力と出力を使用しなければなりません。
    ヒント 各オブジェクトにわかりやすい名前を付けます。これらの名前は、VIとデータを交換するためにWebクライアントが使用するURLの一部として使用されます。
  7. VIをAdd.viという名前で保存します。
  8. ファイル»別名で保存を選択し、表示されるダイアログボックスでコピー»元のファイルもコピーも開くを選択します。コピーをTutorial.lvprojへ追加チェックボックスがオンになっていることを確認し、継続をクリックします。
  9. 新しいコピーをSubtract.viの名前で保存します。
  10. Subtract.viのブロックダイアグラムを開き、「和」関数を「差」関数で置き換えます。制御器と表示器を再配線します。
  11. プロジェクトに戻り、Webリソースを右クリックして、新規Webリソースを選択します。新規プロジェクト項目AdditionalOperationsの名前を変更します。
  12. AdditionalOperationsプロジェクト項目の下にSubtract.viをドラッグします。プロジェクトを保存すると、以下の図のように表示されます。

プロジェクトツリーでは、以下の特徴に注意してください。

  • LabVIEWでは、HTTPメソッドVIの名前ごとに、HTTP要求タイプが追加されます (デフォルトではGETが追加されます)。クライアントが特定のHTTPメソッドVIに送信するHTTP要求のタイプを変更する方法は、このチュートリアルの後半で学習します。
  • Webサービスのプロジェクト項目にも、スタートアップVIフォルダが含まれています。このチュートリアルではスタートアップVIは使用しませんが、チュートリアルの最後に詳細情報が記載されています。

関連情報

Webサービスのコンポーネント

制御器と表示器を端子に割り当てる

HTTPメソッドVIを作成する: 出力データの形式を選択する

HTTPヘッダ、ストリーミング、バッファを構成する

LabVIEWでプロジェクトを管理する

Webサービスをテストおよびデバッグする

Webサービスをターゲットにパブリッシュする前に、HTTPメソッドVIが予想どおりにクライアントと通信することをテストしたい場合があります。LabVIEWプロジェクトからデバッグサーバ上に直接Webサービスを配置して、クライアントがHTTPメソッドVIに要求を送信できるようにすることができます。デバッグサーバでは、サンドボックスと似た環境が得られます。

  1. (Windows) マイ コンピュータの下にあるWebサービスプロジェクト項目 を右クリックし、アプリケーションWebサーバ→開始 (デバッグサーバ)を選択します。(Real-Time) RTターゲットの下にあるWebサービスプロジェクト項目 を右クリックし、開始 (デバッグサーバ) を選択します。
  2. Add.viを開きます。実行ボタンは、このVIが実行のために予約されていることを示します。これは、LabVIEWがWebサービスをロードし、クライアントと通信できるように、デバッグサーバでこれを利用できるようにするためです。
  3. Add.viを閉じます。
  4. 以下の手順に従って、クライアントがAdd.viを呼び出すために使用するURLを取得します。
    1. Add.viを右クリックし、メソッドURLを表示を選択すると、HTTPメソッドURLダイアログボックスが表示されます。
    2. 利用可能なサーバプルダウンメニューで、ローカルデバッグが含まれる項目を選択し、URLをコピーボタンをクリックします。サービスをWebサーバにパブリッシュした場合、クライアントは別のポートのデバッグサーバでWebサービスと通信する必要があります。
    3. ダイアログボックスを閉じます。
      メモ HTTPメソッドURLダイアログボックスが開いていると、Webサービスはクライアントからの要求に応答しません。
  5. 手順4のURLを標準のWebブラウザに貼り付け、{値}変数をhttp://127.0.0.1:8001/TutorialService/Add?b=2&a=3のように数値で置き換えます。
  6. URLを参照します。Add.viはブラウザからHTTP要求を受信し、abの値の和を計算して、Add.viのコネクタペインに割り当てられた各表示器の名前と出力値入りの応答を返します。このチュートリアルでは、応答はJSON文字列で、デフォルトの端子出力形式です。Add.viには、コネクタペインに割り当てられたcおよびvalueの2つの表示器があり、HTTPメソッドVIはこの値を応答に返します。

    {"c":5,"value":"b=2&a=3"}

    メモ 予期しない動作が発生したら、Webサービスファイルを編集する前にデバッグセッションを停止してください。実行のためにLabVIEWによって予約されている間は、これらのファイルを編集することができません。
  7. Subtract.viでも手順4と5を繰り返すか、または手順5のURLを更新して、Subtract.viの固有のURLマッピングがhttp://127.0.0.1:8001/TutorialService/AdditionalOperations/Subtract?b=2&a=3に反映されるようにします。
  8. Subtract.viでも手順6を繰り返します。
  9. (Windows) Webサービスのプロジェクト項目を右クリックし、アプリケーションWebサーバ→停止 (デバッグサーバ) を選択します。(Real-Time) Webサービスプロジェクト項目を右クリックし、停止 (デバッグサーバ) を選択します。

関連情報

アプリケーションWebサーバでWebサービスをテストおよびデバッグする

クライアントでのWebサービスへのアクセス方法を構成する

WebクライアントはURLを使用してHTTPメソッドVIとデータを交換します。このチュートリアルの後半で、Webブラウザに特定のURLを入力し、HTTPメソッドVIのコネクタペインの制御器に直接データを送信します。

以下の手順に従って、クライアントがHTTPメソッドVIにアクセスする際に使用できるURLを定義します。

  1. Webサービスプロジェクト項目を右クリックし、プロパティを選択すると、Webサービスプロパティダイアログボックスが表示されます。
  2. HTTPメソッドVI設定ページで、LabVIEWプロジェクトのWebリソースフォルダのHTTPメソッドVIが、WebサービスVIの表に表示されていることに注意してください。さらに、Subtract.viAdditionalOperationsプロジェクト項目の下に置いたことで、URLマッピングがAdd.viと比べてどのように変化したかを確認してください。
  3. 表でSubtract.viを選択すると、ページのページの下部のURLマッピングタブに次の機能が表示されます。
    • HTTP要求タイプは、メソッドプルダウンメニューで変更できます。Subtract.viでは、デフォルト値GETを使用します。
    • LabVIEWがURLをVIにマッピングする際に使用する標準形式を無効にして、サービス名の後に表示されるURLの一部をカスタマイズすることができます。このチュートリアルでは、標準のURLマッピングを使用し、VI名を追加します。
    • URLフィールドには、LabVIEWがHTTPメソッドVI用に作成した元のURLが表示されます。たとえば、Subtract.viの場合、LabVIEWで作成されるデフォルトのURLマッピングは/AdditionalOperations/Subtractになります。

    メモ より複雑なウェブサービスでは、このページの残りのタブを使用して、VIがウェブクライアントに出力データを返す形式や、権限などのセキュリティ設定を構成することができます。
  4. OKをクリックして、Webサービスプロパティダイアログボックスを閉じます。
  5. Tutorial.lvprojを保存します。

関連情報

WebサービスのURLマッピングとクエリ文字列について理解する

WebサービスをアプリケーションWebサーバにパブリッシュする

作成したWebサービスをアプリケーションWebサーバにパブリッシュできます。このチュートリアルでは、スタンドアロンWebサービスをパブリッシュしますが、より複雑なアプリケーションでは、LabVIEWスタンドアロンアプリケーションまたはインストーラを使用してWebサービスをパブリッシュする場合があります。アプリケーションWebサーバはネットワーク上のWebサービスをホストし、ネットワークデータ交換を保護するSSL (Secure Sockets Layer) などの複数のセキュリティ関連機能を提供します。

メモ (Windows) WebサービスをNI Webサーバにパブリッシュすることもできます。詳しい手順については、チュートリアル: LabVIEW Webサービスを作成してWebサーバにパブリッシュする (Real-Time、Windows)を参照してください。

Webサービスをローカルコンピュータで実行されているアプリケーションサーバにパブリッシュするには、以下の手順に従ってください。

  1. Webサービスのプロジェクト項目を右クリックし、アプリケーションWebサーバ»パブリッシュを選択します。デプロイメント進行状況ダイアログボックスが表示されます。
  2. エラーなしでWebサービスがパブリッシュされたら、閉じるボタンをクリックします。これにより、Webクライアントは、HTTPメソッドVIを使用してデータを交換できるようになりました。

関連情報

Webサービスをパブリッシュする

Webサービス用にアプリケーションWebサーバを設定する

クライアントでWebサービスにアクセスする

URLを使用して、WebブラウザからパブリッシュされたWebサービスにデータを送信するには、以下の手順に従ってください。

  1. Add.viを右クリックし、メソッドURLを表示を選択すると、HTTPメソッドURLダイアログボックスが表示されます。
  2. 利用可能なサーバプルダウンメニューで、アプリケーションが含まれる項目を選択し、URLをコピーボタンをクリックします。URLにはデバッグサーバのURLとは異なるポート番号が含まれています。LabVIEWはこのポート番号を使用して、アプリケーションWebサーバで実行されているWebサービスファイルと通信します。
  3. ダイアログボックスを閉じます。
  4. このURLを標準のWebブラウザに貼り付け、{値}変数をhttp://127.0.0.1:8080/TutorialService/Add?b=2&a=3のように数値で置き換えます。
    メモ クライアントがWebサービスをパブリッシュしたシステムと異なるシステムにある場合、127.0.0.1をホストシステムの実際のIPアドレスに置き換える必要があります。
  5. コネクタペインに割り当てられた各表示器からの出力値を持つJSON応答が返されます。

関連情報

URLを使用してデータをデプロイされたアプリケーションに送信する

Webサービスを監視する

アプリケーションWebサーバにパブリッシュされたWebサービスのステータスを確認するには、以下の手順に従ってください。

  1. Webサービスのプロジェクト項目を右クリックし、アプリケーションWebサーバ»Webサーバを管理を選択します。NI Web-based Configuration & MonitoringがWebブラウザに表示されます。
  2. 左側のサイドバーのWebサービス管理ボタンをクリックします。
  3. パブリッシュされたWebサービス一覧でTutorialServiceを選択します。この一覧が空の場合は、更新ボタンをクリックします。
  4. Webサービスのステータスが実行中であることに注意してください。Webサービスを一時停止、再開、再起動、パブリッシュ解除するには、ページ下のボタンを使用します。
  5. ページの右側に、HTTPメソッドVIのURLマッピングのAddおよびAdditionalOperations/Subtractが、実行されるHTTPメソッドと一緒に表示されます。

その他のガイドとヘルプ

サンプルコード

Webサービスを使用したサンプルは、以下のLabVIEWプロジェクトを参照してください。

  • examples\Connectivity\Web Services\Weather Monitor\Web Services — Weather Monitor.lvproj