Bergmans Mechatronics’ “LabSockets” system enables LabVIEW applications to be monitored and controlled from a desktop or mobile web browser (including the Safari browser for iPhone and iPad), without browser plug-ins. The system employs the new WebSocket interface standard which enables continuous, bi-directional communications between web browsers and servers.
Included in the presentation are i) the limitations of current techniques for remote access to LabVIEW applications; ii) an introduction to WebSockets; and, iii) an overview of the structure and operation of the LabSocket system. A video of the system in action is available here http://screencast.com/t/eKuQ02PAdo .
Please contact John Bergmans (jbergmans<at>bergmans.com) if you'd like to try using LabSockets with your application.
More than Just Lines on a Map: Best Practices for U.S Bike Routes
Extending LabVIEW to the Web using “LabSockets”
1. Bergmans Mechatronics LLC
Extending LabVIEW to
the Web using the
“LabSocket” System
John Bergmans
Bergmans Mechatronics LLC
www.bergmans.com
National Instruments LabVIEW User Group Meeting
Santa Ana, CA
Nov 17 2010
1616 Bedford Lane, Unit A Phone: 714-474-8956
Newport Beach, CA 92660 Fax: 949-646-1429
2. Bergmans Mechatronics LLC
Remote Access to LabVIEW Application
• Goal: monitor and control a LabVIEW application using a plug-in-free browser
LabVIEW
Browser on
Application
Laptop,
Desktop or
Desktop / Mobile Device
Embedded Device
• Potential Use-Cases
• Monitor and control a LabVIEW-controlled lab test from the desktop in office
or on the road using a mobile device
• Monitor large-scale LabVIEW application by crews in the field – ie oil rig
equipment monitoring
• For low-cost embedded systems – eliminate physical UI by using browser to
interface to device
3. Bergmans Mechatronics LLC
Current Approaches
1. Native Client App
• Use TCP/IP sockets, LabVIEW shared variables, or .NET, to transmit
data between client and LabVIEW
• Requires custom client development and modifications to LabVIEW app
2. LabVIEW Remote Panels
• Requires LabVIEW Run-Time Engine (RTE) and browser plug-in
3. LabVIEW Web Services
• Data transferred between application and client using the HTTP request-
response model (REpresentative State Transfer (REST) architecture)
• Requires development of client software using Web languages
eg. HTML/JavaScript
4. LabVIEW Web UI Builder (http://www.ni.com/uibuilder/)
• Build and run apps in browser using reduced-capabiliy LabVIEW
• Requires Silverlight plug-in (runs on Windows and Mac OS X)
4. Bergmans Mechatronics LLC
Browser/Back-End Communications
Traditional interface between browser and web server
1) Data Request
Web Server Back-End
Browser 2) Reply Software Application
Desktop Server
5. Bergmans Mechatronics LLC
Browser/Back-End Communications
Traditional interface between browser and web server
1) Data Request
Web Server Back-End
Browser 2) Reply Software Application
Desktop Server
Continuous bi-directional communication between browser
and server using WebSocket
Data to Back-End App
WebSocket Back-End
Browser
Data from Back-End App Server Application
Desktop WebSocket Server
6. Bergmans Mechatronics LLC
WebSocket
• Enables continuous, bidirectional communications between browser
and server
• Originally part of new HTML5 specification, now a stand-alone spec
(W3C – API, IETF – protocol)
• Simple browser and back-end implementation
• Substantially reduced header info size
(request and response: ~900 bytes vs WebSocket: 4 bytes)
• Multiple organizations developing WebSocket servers
• Kaazing Corp., Mountain View, CA (www.kaazing.com)
• Developer of commercial WebSocket gateway
• Emulation for legacy and mobile browsers
• Contributor to HTML5 spec
• Disclosure: BML has referral agreement with Kaazing
7. Bergmans Mechatronics LLC
Sample BML Demo Applications using WebSocket
EarthControl – Multiplayer Facebook game Interface to MySQL
http://apps.facebook.com/earthcontrol http://http://www.bergmans.com/lab/ws_sql.html
8. Bergmans Mechatronics LLC
“LabSocket” = LabVIEW + WebSocket
LabSocket system uses WebSockets to enable automatic replication of LabVIEW
front panel in a browser without plug-ins
LabSocket Message WebSocket
Interface Broker Gateway
LabVIEW Data transfer Data transfer
Application via Server Browser on
via
TCP/IP Socket Desktop or
WebSocket
Desktop / Mobile Device
Embedded Device
9. Bergmans Mechatronics LLC
“LabSocket” = LabVIEW + WebSocket
LabSocket system uses WebSockets to enable automatic replication of LabVIEW
front panel in a browser without plug-ins
LabSocket Message WebSocket
Interface Broker Gateway
LabVIEW Data transfer Data transfer
Application via Server Browser on
via
TCP/IP Socket Desktop or
WebSocket
Desktop / Mobile Device
Embedded Device
LabSocket Interface
Startup
- Establish TCP/IP socket connection to message broker
- LabVIEW Front Panel Screen Scrape, send JavaScript code to web server
Steady-state
- Transmit updates in LabVIEW front panel to browser
- Update LabVIEW front panel based on events generated in browser
10. Bergmans Mechatronics LLC
LabSocket – Cloud Service Configuration
Cloud
Server WebSocket
Message Broker
Gateway
Data transfer via Data transfer via
TCP/IP Socket WebSocket
LabSocket
Interface
LabVIEW
Application Browser on
Desktop or
Desktop / Mobile Device
Embedded Device
Asynchronous Messaging
Protocol
13. Bergmans Mechatronics LLC
Future Work
• Perform demo / proof-of-concept testing
• Complete cloud service
• Allow LabVIEW developers to automatically set up applications
• Subscription set up
• Improved GUI element support
• Additional GUI elements
• Additional GUI element properties (color, font type, etc)