Company Events Academic Community Support Solutions Products & Services Contact NI MyNI

Tutorial: Creating and Accessing a LabVIEW Web Service (Real-Time, Windows)

LabVIEW 2013 Help

Edition Date: June 2013

Part Number: 371361K-01

»View Product Info

Parent Topic: Overview: Web-based Communication with LabVIEW Applications

Complete the following steps to create, publish, and exchange data between a LabVIEW Web service and a web client, in this case a web browser.

Note  For more information about concepts in this topic, refer to the Web services introduction and description of components in a Web service. LabVIEW Web services are available only in the LabVIEW Full Development System and the LabVIEW Professional Development System.

This tutorial contains the following sections:

  1. Creating a Web Service
  2. Testing and Debugging the Web Service
  3. Configuring How Clients Invoke the Web Service
  4. Publishing the Web Service to the Web Server
  5. Accessing the Web Service with a Client
  6. Monitoring the Web Service

Creating a Web Service

Develop a Web service in a LabVIEW project to group together and configure the VIs and other files that will make up the Web service. Complete the following steps to create a Web service project and two HTTP method VIs.

  1. Create a LabVIEW project to organize the Web service files. Save the project as Tutorial.lvproj.
  2. Right-click My Computer and select New»Web Service. LabVIEW adds a Web service project item and folders under the target.
    Note Note  In this tutorial, you create a Web service and publish it on the host computer. You also can publish a Web service to an RT target when you develop a Web service outside this tutorial, you can create a Web service project item under the RT target in a project.
  3. Right-click the Web service project item , select Rename, and name the Web service TutorialService. The project appears as follows:

  4. Right-click Web Resources and select New VI to create a new HTTP method VI, which is a VI that receives HTTP requests from clients and returns data to clients.

    LabVIEW opens a new VI from a template.
  5. In the new VI, build the block diagram, front panel, and connector pane as shown in the following figures.

    Block Diagram Front Panel Connector Pane


    When you publish this VI as part of a Web service, a web client can send an HTTP request to invoke it. When invoked, this VI performs the following actions:
    • Receives the values of any controls assigned to the connector pane (except LabVIEW Web Service Request) from the HTTP request the client made. LabVIEW Web Service Request acts like a refnum by identifying the current HTTP request.
    • Computes the sum of a and b.
    • Returns the sum of those values to the client via the c indicator assigned to the connector pane.
    • Executes the Read Request Variable VI and returns the query string the client included in the current HTTP request, which LabVIEW Web Service Request identifies.
      Tip Tip  In a more complex Web service, you might use other VIs on the Web Services palette to enable features such as HTTP sessions, authentication, HTTP headers, and cookies.
  6. Notice that each control and indicator appears on the connector pane. Web services can receive data from clients or send data to clients only through inputs and outputs assigned to the connector pane of an HTTP method VI.
    Tip Tip  Assign recognizable names to each object. These names become part of the URL that web clients use to exchange data with the VI.
  7. Save the VI as Add.vi.
  8. Select File»Save As and select Copy»Open additional copy in the save dialog. Ensure the Add copy to Tutorial.lvproj checkbox contains a checkmark, and then click Continue.
  9. Save the new copy as Subtract.vi.
  10. Open the block diagram of Subtract.vi and replace the Add function with the Subtract function. Rewire the controls and indicators.
  11. Return to the project, right-click Web Resources, and select New Web Resource. Rename the new project item AdditionalOperations.
  12. Drag Subtract.vi under the AdditionalOperations project item. Save the project, which should appear as in the following figure.

Notice the following features in the project tree:

  • LabVIEW appends an HTTP request type to the name of each HTTP method VI, which by default is GET. You can change the type of HTTP request that clients send to a specific HTTP method VI later in this tutorial.
  • The Web service project item also contains a Startup VIs folder. This tutorial does not use startup VIs, but you can find more information about them at the end of the tutorial.

Related Information

Components of a Web Service

Assigning Terminals to Controls and Indicators

Managing a Project in LabVIEW

Testing and Debugging the Web Service

Before you publish the Web service to a target, you might want to test that the HTTP method VIs communicate with clients as expected. You can place the Web service on a debugging server directly from the LabVIEW project to allow a client to send requests to HTTP method VIs. The debugging server provides a sandbox-like environment.

  1. Right-click the Web service project item and select Start.
  2. Open Add.vi. Notice that the Run button indicates the VI is reserved for execution because LabVIEW runs the Web service and makes it available on the debugging server for communication with clients.
  3. Close Add.vi.
  4. Complete the following steps to get the URL that clients must use to invoke Add.vi:
    1. Right-click Add.vi and select Show Method URL to display the HTTP Method URL dialog box.
    2. In the Available Servers drop-down menu, select the item that contains Local Debugging, and then click the Copy URL button. Clients must communicate with Web services on the debugging server through a different port than if you publish the service to a web server.
    3. Close the dialog box.
  5. Paste the URL from step 5 into a standard web browser and replace the {value} variables with numeric values, such as: http://127.0.0.1:8001/TutorialService/Add?b=2&a=3.
  6. Browse to the URL. Add.vi receives the HTTP request from the browser, computes the sum of the values for a and b, and returns an XML response with the name and output value of each indicator assigned to the connector pane of Add.vi. Recall that Add.vi has two indicators assigned to its connector pane, c and value, whose values the HTTP method VI returns in the response.

<?xml version="1.0"?>

<Response>

<Terminal>

<Name>c</Name>

<Value>5</Value>

</Terminal>

<Terminal>

<Name>value</Name>

<Value>b=2&a=3</Value>

</Terminal>

</Response>

Note Note  If you notice unexpected behavior, you must stop the debugging session before you can edit the Web service files because you cannot edit the files while LabVIEW reserves them for execution. Right-click the Web service project item and select Stop.
  1. Repeat steps 4 and 5 for Subtract.vi, or just update the URL from step 5 to reflect the unique URL mapping for Subtract.vi: http://127.0.0.1:8001/TutorialService/AdditionalOperations/Subtract?b=2&a=3.
  2. Repeat step 6 for Subtract.vi.
  3. Right-click the Web service project item and select Stop.

Related Information

Debugging a Web Service

Configuring How Clients Access the Web Service

Web clients use URLs to exchange data with HTTP method VIs. Later in this tutorial, you will enter a specific URL in a web browser to send data directly to the controls on the connector pane of the HTTP method VIs.

Complete the following steps to define the URLs clients can use to access the HTTP method VIs:

  1. Right-click the Web service project item and select Properties to display the Web Service Properties dialog box.
  2. On the HTTP Method VI Settings page, notice that HTTP method VIs from the Web Resources folder in the LabVIEW project appear in the table of Web service VIs. Further, notice how placing Subtract.vi under the AdditionalOperations project item affects the URL mapping compared to Add.vi.
  3. Select Subtract.vi in the table and notice the following features on the URL Mapping tab at the bottom of the page:
    • The Method menu allows you to change the HTTP request type. Use the default GET value for Subtract.vi.
    • You can choose to disable the standard format LabVIEW uses to map a URL to the VI and instead customize the part of the URL that appears after the service name. For this tutorial, use the standard URL mapping and include the VI name.
    • The URL field displays the base URL LabVIEW creates for the HTTP method VI. For example, for Subtract.vi, LabVIEW creates the default URL mapping /AdditionalOperations/Subtract.

    In a more complex Web service, you might use the remaining tabs on this page to configure the format that the VI returns output data to the web client, as well as security settings like permissions.
  4. Click OK to exit the Web Service Properties dialog box. Save Tutorial.lvproj.

Related Information

Understanding URL Mappings and Query Strings in Web Services

Publishing a Web Service

LabVIEW publishes stand-alone Web services like the one in this tutorial to a web server, called the Application Web Server. The Application Web Server hosts stand-alone Web service applications on a network and provides multiple security-related features to protect the network data exchange, including Secure Socket Layer (SSL) encryption.

Note Note  In a more complex application, you might distribute a Web service with a LabVIEW stand-alone application, or executable. In the case of stand-alone applications, the Web service is published to a different web server, so you do not need to complete this process.

Complete the following steps to publish the Web service to the Application Web Server running on the local computer:

  1. Right-click the Web service project item and select Application Web Server»Publish. The Deployment Progress dialog box appears.
  2. If LabVIEW publishes the Web service without errors, click the Close button. Web clients can now exchange data with the HTTP method VIs just as during the debugging session you performed in a previous section.

Related Information

Publishing a Web Service

Enabling the Application Web Server for Web Services

Accessing the Web Service with a Client

Complete the following steps to send data to the published Web service from a web browser via a URL:

  1. Right-click Add.vi and select Show Method URL to display the HTTP Method URL dialog box.
  2. In the Available Servers drop-down menu, select the item that contains Application, and then click the Copy URL button. This URL contains a different port number than the URL for the debugging server. This port number is used for communication with the Web service files running on the Application Web Server.
  3. Close the dialog box.
  4. Paste the URL into a standard web browser and replace the {value} variables with numeric values, such as: http://127.0.0.1:8080/TutorialService/Add?b=2&a=3.
    Note Note  If the client is located on a different system than where the Web service is published, you must replace 127.0.0.1 with the actual IP address of the system where the service is published.
  5. The browser returns an XML response with the output values from each indicator assigned to the connector pane.

Related Information

Sending Data to a Deployed Application Using URLs

Monitoring the Web Service

Complete the following steps to check the status of Web services published to the Application Web Server:

  1. Right-click the Web service project item and select Application Web Server»Manage Web Server. NI Web-based Configuration & Monitoring opens in a web browser.
  2. Click the Web Services Management button in the left-hand sidebar .
  3. Select TutorialService in the Published Web Services list. If the list is empty, click the Refresh button.
  4. Notice that the status of the Web service is Running. To pause, resume, restart, and unpublish Web services use the buttons at the bottom of the page.
  5. At the right side of the page, notice that the URL mappings for the HTTP method VIs, Add and AdditionalOperations/Subtract, appear with the HTTP method they perform.

Where to Go Next

Example Code

Refer to the following LabVIEW projects for examples of using Web services:

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

 

Your Feedback! poor Poor  |  Excellent excellent   Yes No
 Document Quality? 
 Answered Your Question? 
Add Comments 1 2 3 4 5 submit