As hardware – especially processors and networks – becomes further commoditized, software becomes an ever-increasing percentage of system development and maintenance costs. A well-designed system that meets critical infrastructure needs can be used for decades but will require some maintenance as needs evolve and components reach ends of service life. Any of these challenges is difficult on its own; solving them all in a meaningful way is daunting.
Software represents the value that system developers provide. Because of the large investment in system software, protecting that investment throughout the entire life cycle becomes a critical part of managing cost and risk. Real-Time Innovations’ (RTI’s) Connext Data Distribution Service (DDS), in service for more than a decade, demonstrates the effectiveness of modular open systems architecture (MOSA) to protect system software investments.
Manage life cycle cost, risk
Cost and risk are not just part of the development or first deployment phase of a system, they remain throughout the project’s entire life. A project has no future if it fails by not completing immediate objectives. However, the outcome is not much better if the solution is obsolete by the time it is deployed or is not maintainable once it is fielded.
Considerations include upgrades to hardware components, operating systems, networks, and requirements to make improvements practical and affordable throughout time. For example, several RTI customers deployed systems using Connext DDS more than a decade ago and later required changes due to new requirements and replacement of obsolete equipment and operating systems. These were large implementations, so it was impractical to do a homogenous/one-time upgrade of the entire distributed system. The DDS communication infrastructure’s open-standard protocol, Real Time Publish Subscribe (RTPS), allowed RTI to commit to backwards-compatibility with support for numerous operating system and programming languages. Engineers were able to incrementally update functional system subsets throughout time without changing legacy components or subsystems. This allowed inexpensive incremental upgrades, avoiding the high costs of re-procuring an entire system.
This approach also protects investments in very expensive safety or security certified software solutions by ensuring continued operation with external, non-certified components which may update at a more aggressive pace, due to the lower cost of change. Users still needed some system- level tests before re-deployment, but sub-system and lower-level tests for the legacy components weren’t necessary.
Future-proof your system
Most systems deployed for decades needed to integrate with systems that had not been conceived of at design time. Consumer demand drove the creation of RTI Routing Service, a flexible tool that protects software investments by adhering to the modular, open system principles of open APIs and open wire protocols.
RTI Routing Service is a general-purpose, data-type aware, configurable, commandable, monitorable bridge for joining DDS-to-DDS communication domains or DDS-to-other communication data models and protocols. It leverages the ability of DDS to dynamically identify data types to provide a plug-in based architecture for the transformation, coalescing, and splitting of multiple data streams, greatly reducing application code and complexity when bridging to external entities. It also supports bridging and filtering between DDS Secure communication domains.
This design pattern only adds a single new member to existing systems, with independent processing and Quality of Service (QoS) for the external system side of the interfaces. Visualization and control of data routes and associated performance data are accessible using the RTI Administration Console, or alternatively, by subscribing directly to RTI Routing Service DDS data.
An open solution removes complexity from application business logic and encapsulates patterns as stereotypes, benefitting customers building products for such systems.
When details of reliable and secure communications or historical data retention are implemented and embedded in application software, business and infrastructure logic intermix, generating detrimental effects that are more dramatic in systems with long life cycles. Business logic becomes less valuable because it can only work with its own deeply embedded, custom communication logic, limiting its market for re-use. Custom communication logic also tends to become more complex due to tweaks that compensate for ordering network data or conforming to a specific network characteristic. Often poorly documented, these changes lead to code which users are hesitant to modify because knowledge of the original intent is lost.
A rich expression of QoS can be applied to various communication design patterns within the same application suite, separating business logic from communication to enhance the value for the business logic and improve productivity at integration by reusing proven, stereotyped communication patterns.
The open DDS Security Specification and its implementation into the Connext product suite shows the benefits of this separation. Users have added information security requirements to existing implementation, securing data in motion throughout all transports, including same-machine communications. In some cases, this was due to exposures proven by third parties. Using DDS for all internal and external communications allowed users to apply the security standard without changing application code. If communication security had been embedded in business logic for these mission-critical applications, closing the security gap would have been extraordinarily disruptive or cost-prohibitive.
Protecting software investment
There are no shortages of challenges when developing large, mission-critical systems, which makes adopting software development practices that protect the system throughout its life cycle essential for short- and long-term success.
The positive results from applying MOSA precepts demonstrate a path for protecting system software from changes which, while unpredictable, are inevitable throughout the life of a mission-critical system. Results show how adding external interfaces can be simplified and cost-effective, which minimizes system impacts. In addition, it proves that separating communication complexity from business logic facilitates system integration and maintenance.