1. Demand for Browser-Based Remote Monitoring and Control
Increasingly, LabVIEW applications are deployed in remote, dispersed locations. Running on rugged NI platforms such as CompactRIO, Single Board RIO and PXI, these applications perform tasks ranging from deterministic control of autonomous vehicles to round-the-clock monitoring of public works utilities. Given the distributed and often isolated nature of these LabVIEW-based systems, remote monitoring and control is often a key requirement for end users. As the Internet becomes increasingly ubiquitous, end users now expect access to their remote systems through web-based interfaces (also known as thin client applications) easily reached through any common web browser.
Figure 1. LabVIEW users are increasingly asking for browser-based remote monitoring and control of their applications.
Web-based solutions are particularly attractive to many users because they reduce the complexity involved in allowing end user access; nearly every computer has a web browser, and authenticating users is a well-understand process at most companies and schools.
2. NI Investment in Web Technologies
Over the last several years, NI has significantly invested in new web-related features designed to facilitate web-based monitoring and control. Principal among these technologies are LabVIEW web services, which provide firewall-friendly machine-to-machine communication across a network. Web services can act as a web application programming interface (API) to any type of software, whether that software is controlling complex instrumentation or simply a database store. To use a web service, a client sends a request to the remote system hosting the service, which then processes the request and sends back a response (typically an XML, or eXtensible Markup Language, message). The client can choose to display the raw XML data, but it’s more common to parse the data and display it to the user as part of a graphical user interface (GUI) as shown below in Figure 2. This approach to designing a server and client architecture is used by nearly every company designing applications intended to be consumed over the web, from banks to Internet giants Google and Facebook.
Once LabVIEW VIs have deployed as web services to a desktop or real-time target, the real challenge is developing a web-based thin client to invoke those web services and display the resulting data inside the browser. Creating a thin client interface traditionally has required expertise in a text-based web programming language, a skill that few engineers and scientists possess.
Figure 2. Combining web services and browser-based clients provides a flexible, scalable remote monitoring and control solution.
3. Developing a Thin Client Application with Traditional Web Programming Tools
Figure 3. An Adobe Flash-based web user interface designed to display waveform data.
However, these are text-based tools that require significant experience in order to successfully deploy a thin client application. For example, developing the simple Adobe Flash application like the one shown in Figure 3, which plots data retrieved from a LabVIEW web service onto a graph, required significant time and effort.
Figure 4. Hundreds of lines of ActionScript in Adobe Flash are necessary to create even simple thin client applications.
4. LabVIEW Web UI Builder
To provide engineers and scientists with the ability to develop thin client applications, NI has introduced LabVIEW Web UI Builder. LabVIEW Web UI Builder is a standalone, web-based editor that enables LabVIEW users to apply their existing knowledge of graphical programming to create lightweight, web-based applications that are accessible via a web browser. Although LabVIEW Web UI Builder is a separate product from LabVIEW, it is intended to complement LabVIEW and extended the capabilities of users familiar with graphical programming (similar to a LabVIEW add-on module).
Figure 5. LabVIEW Web UI Builder is a standalone editor for creating thin client applications.
The LabVIEW Web UI Builder editor contains the same virtual instrumentation concepts found in LabVIEW, including front panels, block diagrams and graphical dataflow programming. Unlike LabVIEW, this editor’s features have been scoped only to the features required to build web interfaces to LabVIEW-based systems running on PC or Real-Time targets. Applications created with LabVIEW Web UI Builder run inside the browser “sandbox,” which prevents them interacting directly with the client machine (e.g. the registry, hard drive, etc.). Instead, the only means of communicating with the outside world is HTTP communication with web services.
Both LabVIEW Web UI Builder and the thin client applications created with it are Microsoft Silverlight applications. Silverlight is a web application framework that integrates graphics, animation and interactivity into a single runtime environment, much like Adobe Flash. It is compatible with all of the popular web browsers on Microsoft Windows and Mac OS X operating systems, and requires a small, free plug-in to be installed in any client browsers in order to view Silverlight-based content.
The initial release of LabVIEW Web UI Builder is considered an Early Access Release. The term Early Access Release is a term NI uses to communicate that the initial version of new NI software has one or more caveats associated with it that potential customers should consider, and that the product is targeted at early adopters. In the case of LabVIEW Web UI Builder, NI applied the Early Access Release term because several features, including the Event structure and debugging tools such as breakpoints, are not part of its initial feature set. However, these features are likely to be part of future releases of LabVIEW Web UI Builder.
An Early Access Release is not a beta release. Early Access software, including LabVIEW Web UI Builder, is expected to create applications used in deployed customer systems and, in almost all cases, NI will charge customers for the Early Access Releases.
Learn more about NI Early Access Programs.
5. Features in the Early Access Release
LabVIEW Web UI Builder provides a carefully selected feature set that provides ample user interface components along with a limited number of block diagram nodes. This feature set is precisely scoped for creating dynamic, rich Internet applications. LabVIEW Web UI Builder contains a substantial user interface library, with controls and indicators such as graphs, charts, buttons, knobs, sliders, and more. All controls and indicators are vector-based, which means that user interfaces created with LabVIEW Web UI Builder maintain a consistent, clear appearance at any resolution.
Figure 6. All controls and indicators in LabVIEW Web UI Builder applications are vector-based so that built applications will remain sharp at any resolution.
In addition to the controls and indicators mentioned above, LabVIEW Web UI Builder also provides users with the ability to select between different control “skins” or themes while developing an application. Changing the skin restyles all controls and indicators within the project. The three available skins in the Early Access Release are Metallic (Figure 6), System (Figure 7), which resembles with system theme for controls and indicators on the Windows operating system, and Flat.
Figure 7. The System skin provides a simpler, more subdued alternative to the the default Metallic skin.
While a large portion of the controls and indicators found in LabVIEW are supported in LabVIEW Web UI Builder, the same is not true with respect to the block diagram. Only a small subset of the LabVIEW block diagram nodes is available in the LabVIEW Web UI Builder Early Access Release. However, the supported functionality was carefully selected to enable the creation of attractive thin clients, with the expectation that any non-supported features (such as analysis) can be carried out by a LabVIEW application running on a desktop PC (or real-time device), and then accessed by the thin client via web services.
View more information on supported features in LabVIEW Web UI Builder.
6. Use Cases
Web applications created with LabVIEW Web UI Builder are best suited for remote monitoring because of the current feature set of the product. Unlike LabVIEW Remote Panels, there is no underlying mechanism in LabVIEW Web UI Builder or applications created with it to handle concurrent users. By definition, remote monitoring does not involve changing the behavior or function of the system being monitored, so there is no risk when concurrent users simultaneously access the same thin client application.
Figure 8. A thin client can enable remote monitoring of a distributed system to multiple users without concurrency concerns.
However, LabVIEW Web UI Builder can also be used to create remote control applications. Remote control via a thin client is most easily implemented when only one end user will connect to and use the system. If more than one end user is expected, this must be taken into account during development of the thin client. Solutions that a LabVIEW Web UI Builder user can implement include requiring authentication as part of a log-in or using a web service to keep track of the number of users currently communicating with the system.
Unlike traditional web programming languages, LabVIEW Web UI Builder enables engineers and scientists to use their existing knowledge of LabVIEW graphical programming in order to develop web applications. When combined with LabVIEW RESTful web services, these web applications provide an powerful, flexible solution for monitoring remote LabVIEW-based systems through a web browser. As an Early Access release, this initial version of LabVIEW Web UI Builder is targeted at early adopters, and any interested user can test-drive the software to help determine whether it is suited to his or her needs.