Connecting Your DDS Apps to Web Services using Javascript and Node.js 1

One of the benefits of the Industrial Internet for manufacturers and OEM’s is the access to live data for more and more applications.  This data availability enables performance analytics, more robust business metrics, predictive maintenance analysis and various other capabilities to be realized by end users and equipment manufactures alike.  In the enterprise, Web Services dominate the typical access to data.  On the manufacturing floor or in deployed systems, real-time data delivery is a requirement.  DDS is one of the primary infrastructures used to share large amounts of data in very low latency delivery times.

Typical solutions for data analysis and visualization rely on protocol libraries and heavyweight client applications to receive / process the data.  Today, in the enterprise, the distribution of these proprietary client applications is cumbersome and time consuming.  This results in a reduction of the utilization an organization can get from available live data.  Thus, there is a need to enable applications to leverage technologies that can be found on everyone’s desk.  Just about every computer, tablet or handheld available today have browsers like Internet Explorer, Firefox, Safari, Chrome and others.  Through the use of standard web technologies like Javascript, JQuery, Node.js and Websockets, it is quite trivial to interface browser based user applications with live data.  The problem, however, is how to connect live DDS data up inside these thin client browser based applications.  As we know, access to DDS data requires the use of DDS libraries to interact with the DDS RTPS protocol.

To solve this problem, we have created a lightweight connector technology that enables DDS data to be accessed with Javascript, Node.js server side applications.  This solution provides the ability to have a single server process interact bidirectionally  with DDS data while serving up html pages that leverage standard WebSockets for communication to the server for data.  Take a look at the following diagram showing how the Javascript connector enables the flow of data between DDS and browser based applications.

Image1

 

Taking this a step further, and now that there is an integration with Node.js, we have the ability to create useable object nodes in NodeRed.  NodeRed is a visual programming environment for Node.js applications.  This development environment, which itself runs on Node.js, can be used in any browser.  NodeRed provides many building blocks for typical items used in Industrial Internet applications such as:  WebSockets, HTTP, custom TCP, custom UDP, MQTT, custom function blocks, email, twitter, XMPP, and many others.  As you can see in the following diagram we are using several of these blocks to subscribe to DDS data (Square, ShapeType) and publish data on MQTT, then with a separate flow, subscribe to the MQTT server and output the data to a debug window.

Image2

At RTI, we are constantly working on creating components that are useful and beneficial for your Industrial Internet applications.  This latest solution gives a developer quick and easy access to live data in many different forms depending on their specific application requirements.  The ability to present live data in a thin client browser based application provides a great deal of flexibility for creating and distributing applications to better leverage data that is already available in the system.

Information regarding NodeRed can be found at http://www.nodered.org.  If you are are interested in connecting up your live data to backend enterprise applications and thin client browser based applications, please contact us via email or leave a comment in the comments section.

UPDATE:  3/31/15    An experimental version of the connector is now available on the community developer site for RTI.  This connector includes the Javascript Node.js connector as well as a Python connector.  You can find it here:

 

https://community.rti.com/downloads/experimental/rticonnextdds-connector

 

One comment

  1. Pingback: 5 Great Dev Resources You Need to Bookmark Right Now! « RTI Blog

Submit a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s