Programming: ‘Data oriented design’ targets changing systems
Existing methodologies and training for system software design, rooted in principles of object-oriented design, are beginning to break down. Approaches that worked for small-scale systems falter as developers discover operational limits that require frequent and unintended redesigns in programs year over year. A whitepaper from Real-Time Innovations Inc . contends that a different paradigm is needed, one that is organized around a common 'shared information model' that spans multiple systems. This leads to the principle of 'data-oriented' design: expose the data and hide the code.
According to Real-Time Innovations, 'Fundamentally, object-oriented thinking leads us to think in terms of tightly-coupled interactions that include strong state assumptions. Large-scale distributed systems are often a mix of subsystems created by independent parties, often using different middleware technologies, with misaligned interfaces.' Integrating such subsystems using object-oriented thinking poses some fundamental challenges:
It is brittle to incremental and independent development, where interfaces can change without notice;
There is often an 'impedance mismatch' between subsystems in the quantity and the quality of information that must be exchanged between the two sides;
There is a real need to dynamically adapt in real-time to network topology reconfigurations and failures;
Scalability, performance, and up-time cannot always be compromised in this dynamic environment.
In the whitepaper, RTI discusses the principles of data-oriented thinking and why it offers an appropriate paradigm to address large-scale system integration. They discuss the critical role played by the middleware infrastructure in applying data-oriented design, and describe a generic data-oriented integration architecture based on the data distribution service (DDS) middleware standard. They analyze popular architectural styles, including data flow architecture, event driven architecture, and service oriented architecture (SOA) from this perspective and contend that 'they can be viewed as specializations of the generic data-oriented architecture.'
'The growing popularity of cheap and widespread data collection 'edge' devices and the easy access to communication networks (both wired and wireless) is weaving more devices and systems into the fabric of our daily lives. As computation and storage costs continue to drop faster than network costs, the trend is to move data and computation locally, using data distribution technology to move data between the nodes as and when needed. As a result, the quantity of data, the scale of its distribution, and the complexity of integration is growing at a rapid pace.
'The demands on the next generation of distributed systems and systems-of-systems include being able to support dynamically changing environments and configurations, being constantly available, and being instantly responsive, while integrating data across many platforms and disparate systems. How does one systematically approach the design of such systems and systems-ofsystems? What are the common unifying traits that can be exploited by architects to build systems that can integrate with other independent systems, and yet preserve the flexibility to evolve incrementally? How does one build systems that can be self aware and self-healing, and dynamically adapt to changes in their environment?'
These and related topics are the subject of the whitepaper, which uses an air traffic control example to demonstrate disparate systems that must seamlessly operate as a whole. The paper also illustrates how the data-oriented integration architecture was used to rapidly develop a working demonstration of a real-time package tracking system-of-systems in a short time frame. The information model is described once. The tool-chain is used to transform and manipulate the shared data model across disparate implementation technologies.
—Edited by Renee Robbins , Control Engineering editorial director
( Register here and scroll down to select your choice of eNewsletters free .)
|Search the online Automation Integrator Guide|
Case Study Database
Get more exposure for your case study by uploading it to the Control Engineering case study database, where end-users can identify relevant solutions and explore what the experts are doing to effectively implement a variety of technology and productivity related projects.
These case studies provide examples of how knowledgeable solution providers have used technology, processes and people to create effective and successful implementations in real-world situations. Case studies can be completed by filling out a simple online form where you can outline the project title, abstract, and full story in 1500 words or less; upload photos, videos and a logo.
Click here to visit the Case Study Database and upload your case study.