System architects design distributed applications leveraging computer resources connected by a network infrastructure: CPU-intensive tasks may be located on powerful core servers; application-data storage may be managed by specialized database servers; and data-collection, actuation, and user interaction may occur on nodes located at the edge of the network. The architecture must accommodate coordination of the distributed resources as well as ensuring that the necessary data is available to all the computation, decision- making, and visualization nodes.

Photo 1: The U.S. Navy’s LPD-17 vessel uses the Ship-Wide Area Network (SWAN), which is responsible for shipboard control, machinery control, damage control, integrated condition assessment, steering control, advanced degaussing, mission control systems, navigation systems, and communication systems.

The problem is that distribution of all the data and stateful coordination between distributed nodes is complex and technically difficult. Much of the distributed infrastructure complexity stems from designs built around the processing endpoints.

In a distributed, embedded application, an architect would typically focus on two separate areas: First, data acquisition endpoints — the devices that interface with automated processes and continually capture data from those processes; and second, the computation within the endpoints or on separate nodes within the network — the applications that process and react to data in real time.

For example, a shipboard system has a variety of embedded devices that perform many discrete tasks including positioning, navigation, engine control, radar, targeting, command and control, and fire control, among others. Many of these devices and their supporting systems produce data that would be essential to the successful operation of others, or at the very least would significantly enhance their ability to produce quality results. These systems are indubitably connected through a network — often standards based — so data communication between devices is common and continuous.