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 Bergmans Mechatronics LLC
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 (jbergmansbergmans.com) if you'd like to try using LabSockets with your application.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Extending LabVIEW tothe Web using the
“LabSocket” System
John BergmansBergmans Mechatronics LLC
www.bergmans.com
National Instruments LabVIEW User Group MeetingSanta Ana, CANov 17 2010
1616 Bedford Lane, Unit A Phone: 714-474-8956Newport Beach, CA 92660 Fax: 949-646-1429
B e r g m a n s M e c h a t r o n i c s L L C
• Goal: monitor and control a LabVIEW application using a plug-in-free browser
• 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
Bergmans Mechatronics LLC
Remote Access to LabVIEW Application
LabVIEW Application
Browser onLaptop,
Desktop orMobile DeviceDesktop /
Embedded Device
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
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)
Bergmans Mechatronics LLC
Current Approaches
Bergmans Mechatronics LLC
Browser/Back-End Communications
Traditional interface between browser and web server
Desktop Server
1) Data Request
2) ReplyBack-End
ApplicationBrowser Web ServerSoftware
Bergmans Mechatronics LLC
Traditional interface between browser and web server
Desktop Server
1) Data Request
2) ReplyBack-End
ApplicationBrowser Web ServerSoftware
Continuous bi-directional communication between browser and server using WebSocket
Desktop Server
WebSocketServer
Back-EndApplication
WebSocket
Browser
Data to Back-End App
Data from Back-End App
Browser/Back-End Communications
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)
• 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
Bergmans Mechatronics LLC
Sample BML Demo Applications using WebSocket
Interface to MySQLhttp://http://www.bergmans.com/lab/ws_sql.html