Home arrow Features arrow Feature Articles arrow Data-Centric Distributed Application Architecture for Shipboard Systems
Data-Centric Distributed Application Architecture for Shipboard Systems Print E-mail
Nov 30 2007
Advertisement:

Implementing Data-Centric Applications

Data-centric applications can be implemented using the precepts of data-oriented programming. Some of the concepts behind data-oriented programming are familiar to software engineers using more common approaches, but some deserve further explanation.

In general, the tenets of data-oriented programming include the following principles:

  • Expose the data. Ensure that the data is visible throughout the entire system. Hiding the data makes it difficult for new processing endpoints to identify data needs and gain access to that data.
  • Hide the code. Conversely, there is no reason for any of the computational endpoints to be cognizant of one another’s code. By abstracting away from the code, data is free to be used by any process, no matter where it was generated. This provides for data to be shared across the distributed application, and for the application to be modified and enhanced during its lifecycle.
  • Separate data and code into data-handling and data-processing components. Data handling is required because of differing data formats, persistence, and timeliness, and is likely to change during the application lifecycle. Conversely, data processing requirements are likely to remain much more stable. By separating the two, the application becomes easier to maintain and modify over time.
  • Generate code from process interfaces. Interfaces define the data inputs and outputs of a given process. Having well-defined inputs and outputs makes it possible to understand and automate the implementation of the data processing code.
  • All code is loosely coupled. With welldefined interfaces and computational processes abstracted away from one another, devices and their computation can be interchanged with little or no impact on the distributed application as a whole.

This approach to application design is effective in systems where multiple data sources are required for successful completion of the computing activity, but those data sources reside in separate nodes on a network in a net-centric application infrastructure. For networkcentric distributed applications, applying a data-oriented programming model lets you focus on the movement of data through the network, an easier and more natural way of abstracting and implementing the solution.

Data-centric design, and data-oriented implementation, can bring about a more robust and scalable distributed system, and one that is easier to maintain and enhance over time. For real-time distributed applications that are highly dependent upon the movement of data through the system, the advantages of using data as the design and implementation focal points can make the difference for a successful project.

This article was written by Dr. Gerardo Pardo-Castellote, CTO, and Gordon A. Hunt, Chief Engineer, at Real-Time Innovations, Inc., Santa Clara, CA. For more information, visit http://info.hotims.com/10983-520.



 

Dedicated to helping you design better products in a digital world... your guide to the latest tools & techniques for digital prototyping, simulation, and analysis of the real-world performance of your ideas.

Visit the Digital Design Center

>> Most Searched

>> New Download



Microwave & RF Technology Download the FREE PDF issue here

>> Newsletter

Subscribe today to receive the INSIDER, a FREE e-mail newsletter from NASA Tech Briefs featuring exclusive previews of upcoming articles, late breaking NASA and industry news, hot products and design ideas, links to online resources, and much more.

Your name:

Your email:

Please Subscribe me to the Insider

>> Syndicate