Several software application development tools exist that enable the rapid development of Web applications. Among other things, Web applications greatly enhance the human-computer interaction (HCI) required by many systems, while simplifying the problem of deploying applications to customers. Capitalizing on the new features provided by these tools could prove to be a boon to mission and project teams.

The Object Management Groups (OMG) Data Distribution Service (DDS) specification offers a standards-based approach for building loosely coupled, complex software systems. The DDS specification includes the definition of an implementation-independent, machine-ingestible format for describing the data exchanged between software components. Such a feature contrasts with current approaches for data exchange that rely either on tightly coupled software components, or overly verbose self-describing data exchanges. In addition, DDS frees software engineers from having to compensate for nuanced differences that may arise in the integration of software components.

Software engineers charged with the design and implementation of HCI features in a software solution (either supporting a specific mission or general purpose project) recognize the great potential of the new crop of Web application development tools. These engineers also recognize the value of the OMG DDS for integrating components in a complex software system. Unfortunately, integrating these two feature-rich products is currently only possible with custom solutions that require tight coupling between a software solution and a vendor’s product.

The focus of this work was the proper integration of the OMG DDS features with the new crop of Web application development tools. This effort aims to produce an architectural pattern that may be applied to implement such an integrated solution. This effort also aimed to provide a fully functional reference implementation of the architectural pattern.

The architectural pattern is built on the Node.js Web application framework (http://www.nodejs.org/ ). Node.js lets developers implement Web applications using the JavaScript programming language (http://www.w3schools.com/js/default.asp ) and a rich collection of complementary products (https://www.npmjs.org/ ). Node.js also gives developers the ability to define native extensions to its JavaScript library using the C++ programming language.

The overall solution strategy centered around creating a Node.js extension that, when included, gave Node.js applications the ability to act as another software component in a DDS-enabled software system. Nuanced differences between the Node.js application and the rest of the software system would be taken care of by the DDS product. The Node.js framework would then give developers the ability to build rich Web applications using data acquired from the DDS software system. Node.js minimizes the amount of work software developers need to invest in order to produce a custom Web application.

The Node.js extension mechanism used in this solution is extremely flexible. This flexibility, however, comes at the cost of increased work on the part of extension developers in order to achieve their goals. Thus, this solution also aimed at reducing the labor required from application developers to produce a fully capable Web application. The solution includes a set of development tools that achieves this goal while maintaining a high level of flexibility for application developers.

This work was done by Rolando Nieves of Kennedy Space Center. KSC-13925