- Open Access
Prototypic implementation and evaluation of an artificial DNA for self-descripting and self-building embedded systems
© The Author(s) 2017
- Received: 11 October 2016
- Accepted: 22 December 2016
- Published: 3 February 2017
Embedded systems are growing more and more complex because of the increasing chip integration density, larger number of chips in distributed applications, and demanding application fields (e.g., in cars and in households). Bio-inspired techniques like self-organization are a key feature to handle this complexity. However, self-organization needs a guideline for setting up and managing the system. In biology the structure and organization of a system is coded in its DNA. In this paper we present an approach to use an artificial DNA for that purpose. Since many embedded systems can be composed from a limited number of basic elements, the structure and parameters of such systems can be stored in a compact way representing an artificial DNA deposited in each processor core. This leads to a self-describing system. Based on the DNA, the self-organization mechanisms can build the system autonomously providing a self-building system. System repair and optimization at runtime are also possible, leading to higher robustness, dependability, and flexibility. We present a prototypic implementation and conduct a real-time evaluation using a flexible robot vehicle. Depending on the DNA, this vehicle acts as a self-balancing vehicle, an autonomous guided vehicle, a follower, or a combination of these.
- Artificial DNA
- Prototypic implementation
Embedded systems are growing more and more complex because of the increasing chip integration density, larger number of chips in distributed applications, and demanding application fields (e.g., in cars and in households). In the near future, it will become reality to have thousands of computing nodes within an embedded system. Bio-inspired techniques like self-organization are a key feature to handle this complexity. We have developed the Artificial Hormone System (AHS) as a decentralized, self-organizing, self-healing, and self-optimizing mechanism to assign tasks to computing nodes of an embedded real-time system. The AHS is able to handle task assignment in complex embedded systems with a large number of processor cores.
However, to do so the AHS needs a blueprint of the structure and organization of the embedded application. This covers the segmentation of the application into tasks, the cooperation and communication between these tasks, the suitability of the processor cores for each of these tasks, etc. Currently, these assignments are done manually by the system developer, but in the future this is no longer feasible for large embedded systems having a large number of cores and tasks.
The idea is to follow again a bio-inspired principle. In biology the structure and organization of a system is coded in its DNA. This can be adopted to embedded systems. The blueprint of the structure and organization of the embedded system will be represented by an artificial DNA. The artificial DNA can be held compact and stored in every processor core of the system (like the biological DNA is stored in every cell of an organism). This makes the system self-descripting and enables a maximum amount of robustness and flexibility. Now, a mechanism like the AHS can transcribe the artificial DNA to set up and operate the embedded system accordingly. All the needed information for such a process like task structure, cooperation, communication, and core suitability can be derived from the artificial DNA. Therefore, the system becomes self-building based on its DNA.
In our previous work , we have developed a DNA simulator as a proof of concept. Now we present a prototypic implementation which enables real applications. Furthermore, we conduct an evaluation of real-time properties, robustness, and communication and memory use based on a flexible robotic vehicle platform. Depending on the DNA, this vehicle acts as a self-balancing vehicle, an autonomous guided vehicle, a follower, or a combination of these.
The paper is structured as follows: After the introduction and motivation, related work is presented in Section 2. Section 3 describes the basic ideas and conception of the artificial DNA. The prototypic implementation is described in Section 4; Section 5 presents the evaluation results while Section 6 concludes this paper.
Self-organization has been a research focus for several years. Publications like  or  deal with basic principles of self-organizing systems, e.g., emergent behavior, reproduction, etc. Regarding self-organization in computer science, several projects and initiatives can be listed.
IBM’s and DARPAS’s Autonomic Computing project [4, 5] deals with self-organization of IT servers in networks. Several so-called self-X properties like self-optimization, self-stabilization, self-configuration, self-protection, and self-healing have been postulated. The MAPE cycle consisting of Monitor, Analyze, Plan, and Execute was defined to realize these properties. It is executed in the background and in parallel to normal server activities similar to the autonomic nervous system.
The German Organic Computing Initiative was founded in 2003. Its basic aim is to improve the controllability of complex embedded systems by using principles found in organic entities [6, 7]. Organization principles which are successful in biology are adapted to embedded computing systems. The DFG priority programme 1183 “Organic Computing”  has been established to deepen research on this topic.
Self-organizing and organic computing is also followed on an international level by a task force of the IEEE Computational Intelligence Society (IEEE CIS ETTC OCTF) . Several other international research programs have also addressed self-organization aspects for computing systems, e.g., [10, 11].
Self-organization for embedded systems has been addressed especially at the ESOS workshop . Furthermore, there are several projects related to this topic like ASOC [13, 14], CARSoC [15, 16] or DoDOrg . In the frame of the DoDOrg project, the Artificial Hormone System (AHS) was introduced [17, 18]. Another hormone-based approach has been proposed in . Nicolescu and Mosterman  describe self-organization in automotive embedded system. None of these approaches deal with self-description or self-building using DNA-like structures.
DNA computing  uses molecular biology instead of silicon-based chips for computation purposes. In , e.g., the traveling salesman problem is solved by DNA molecules. Our approach relies on classical computing hardware using DNA-like structures for the description and building of the system. This enhances the self-organization and self-healing features of embedded systems, especially when these systems are getting more and more complex and difficult to handle using conventional techniques. Our approach is also different from generative descriptions , where production rules are used to produce different arbitrary entities (e.g., robots) while we are using DNA as a building plan for a dedicated embedded system.
To realize DNA-like structures, we have to describe the building plan of an embedded system in a compact way so it can be stored in each processor core. Therefore, we have adapted well-known techniques like netlists and data flow models (e.g., the actor model ) to achieve this description. However, in contrast to such classical techniques, our approach uses this description to build the embedded system dynamically at run-time in a self-organizing way. The description acts like a DNA in biological systems. It shapes the system autonomously to the available distributed multi/many-core hardware platform and re-shapes it in case of platform and environment changes (e.g., core failures, temperature hotspots, reconfigurations like adding new cores, removing cores, changing core connections, etc.). This is also a major difference to model-based  or platform-based design , where the mapping of the desired system to the hardware platform is done by tools at design time (e.g., a Matlab model). Our approach allows very high flexibility and robustness due to self-organization and self-configuration at run-time while still providing real-time capabilities.
In the following, the basic conception of the proposed approach is explained in detail. It consists of the system composition model, the structure of the artificial DNA, and how a system is built from its artificial DNA.
3.1 System composition model
Sourcelink (the task acts as server)
GetRequest Looking for an incoming request from others
SendResponse Sending a response to the requester
The Destinationlink is an active link, where the task sends requests to other tasks. It consists of the two functions:
Destinationlink (the task acts as client)
SendRequest Sending a request to others
GetResponse Looking for a response to the request
3.2 Artificial DNA
If a sufficient set of standardized basic elements with unique Ids is available, an embedded system will no longer be programmed, but composed by connecting and parameterizing these elements. An example extract of such a set can be found in Section 4. In general, some hundreds of these elements are usually adequate to compose many kinds of embedded real-time systems. Typical elements for different application fields are, e.g., known or can be adapted from model-driven design approaches.
Using such a blueprint, the composition of an embedded system can be stored in a very compact way representing a kind of digital artificial DNA, since it can be used to completely build up the system at run-time. Furthermore, this DNA will be even small enough for complex systems (see Section 5) to be stored in each processor core like the biological DNA is stored in each cell. In this way the embedded system becomes self-describing. To create the artificial DNA, the blueprint is transformed into a netlist of basic elements. Each line of the artificial DNA contains the Id of a basic element, its connection to other basic elements (by defining the corresponding destinationlinks for each sourcelink of the basic element) and its parameters:
Artificial DNA line = [Id Destinationlink Parameters]
The destinationlink description in an artificial DNA line can be defined as the following set:
Even in case of a very special embedded system not being able to be composed from the set of standardized basic elements, special Ids for user/application specific elements can be defined to solve this issue.
3.3 Building the system from its artificial DNA
Overall, the artificial DNA represents the blueprint that enables the self-building of a system. In case of failures1 or changes, the system can be autonomously restored or readapted by the DNA which is present in each DNA processor. This increases system robustness and dependability. The time complexity for restoring or readapting the system is also \(\mathcal O(n)\), where n is the number of affected basic elements (e.g., the number of basic elements lost by a crash of a DNA processor). The program code for the basic elements used in the DNA can be stored in code repositories distributed in the system. Even changes in the DNA representing changes in the system composition or parameters are possible at run-time providing maximum flexibility.
As a proof of concept, we first have implemented a simulator for the DNA concept. The results have been published in . This simulator was focused on the ability of self-building a system from its DNA and reconstructing it in case of component failures. So the basic elements were simply dummies in the DNA simulator which are allocated to processor cores, interconnected, and visualized. They provided no real functionality. However, simulation results showed that these basic elements were properly allocated and interconnected by the DNA so self-building and self-repairing is possible.
Encouraged by these promising results, we have decided to implement a real prototype of the DNA concept. In this prototype, the basic elements provide real functionality (e.g., an ALU, a PID controller, etc.) and interaction schemes, so working systems can emerge from a DNA. This allows for a far better evaluation than the simulator does. Communication and memory needs as well as real-time properties can be investigated on a real application example, see Section 5.
Basic elements implemented
Components of the DNA implementation
Raspberry Pi (kB)
Windows PC (kB)
DNA Class Library
DNA Processor Basic Library
DNA Processor Library
DNA Sensor Actor Interface
5.1 A first example
Movement of battery indicator basic elements due to killing of Pi 3
before killing Pi 3
after killing Pi 3
5.2 More DNAs
5.3 Real-time behavior
Balancer: allocation of basic elements before and after killing of Pi 2
before killing Pi 2
after killing Pi 2
6, 13, 17, 19
4, 5, 9, 11
4, 5, 9, 11
12, 15, 16, 20
10, 12, 16
3, 14, 18
1, 7, 10
In this paper we presented an approach to use a digital artificial DNA for self-describing and self-building systems. This DNA is deposited in each computation node as a blueprint to build and repair the system autonomously at runtime. Mimicking biology this way provides robustness and dependability. The prototypic implementation of the DNA approach enabled an evaluation on a real-world scenario, a robot vehicle. The results showed that the memory and communication overhead of the implementation are rather small, application DNAs are compact, and can be built with a limited number of basic elements. Self-building and self-repairing of the application at runtime can meet real-time requirements.
Future work will focus on larger DNAs in combination with more DNA processors and dynamic DNA modification at runtime to allow system evolution.
1 Permanent processor failures like e.g. core crashes, which are detected by missing hormones of the AHS or temporary failures like e.g. single event upsets in memory, which can be detected by monitoring circuits. Communication failures are currently not handled and will be subject of future work.
2 This driver allows not only access to real sensors and actors, but also to simulated ones. So the implemented DNA system is able to handle mixed environments consisting of real and simulated hardware.
3 Flexible Organix eXperimental vehIcle
4 Since Raspian Linux is no real-time OS, the fourth core of each Pi is spared for operating system usage.
5 However, the DNA on all processors can be changed at run-time simultaneously.
6 As a restriction, external DNA processors have no access to the internal sensors and actors of the vehicle, so basic elements attached to these sensors and actors will not be allocated to external DNA processors. Furthermore, real-time capabilities of external DNA processors, sensors and actors are limited due to the WLAN connection.
7 since the native I2C bus interface of the Raspberry Pi is not multi-master capable, we added some additional hardware support to realize multi-master access.
8 Failures of the communication system are not in the focus of this demonstrator. This will be covered by future research work.
The authors declare that they have no competing interests.
Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.
- U Brinkschulte, An artificial DNA for self-descripting and self-building embedded real-time systems. Concurrency Computat.: Pract. Exper. 2016. 28:, 3711–3729 (2016). 1. U Brinkschulte, (2016),. 2016; Vol.28, Pages: 3711Ű3729, WileyView ArticleGoogle Scholar
- G Jetschke, Mathematik der Selbstorganisation (Harry Deutsch Verlag, Frankfurt, 1989).View ArticleMATHGoogle Scholar
- R Whitaker, Self-Organization, Autopoiesis, and Enterprises (1995). http://www.enolagaia.com/RW-ACM95-Main.html.
- IBM, Autonomic Computing (2003). http://www-03.ibm.com/autonomic/pdfs/AC%20Blueprint%20White%20Paper%20V7.pdf.
- JO Kephart, DM Chess, The Vision of Autonomic Computing. IEEE Comput. 36(1), 41–50 (2003).View ArticleGoogle Scholar
- VDE/ITG (Hrsg.), VDE/ITG/GI-Positionspapier Organic Computing: Computer und Systemarchitektur im Jahr. GI, ITG, VDE, (2003). https://www.gi.de/fileadmin/redaktion/Presse/VDE-ITG-GI-Positionspapier_20Organic_20Computing.pdf.
- H Schmeck, in 8th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2005). Organic Computing - A New Vision for Distributed Embedded Systems (IEEESeattle, 2005), pp. 201–203.View ArticleGoogle Scholar
- DFG Schwerpunktprogramm, Organic Computing (2007). http://gepris.dfg.de/gepris/projekt/5472210.
- IEEE, Organic Computing Task Force (2009). http://www.neuroinformatik.rub.de/thbio/project/oc.
- EU, Program Future Emerging Technolgies FET - Complex systems (2009). https://cordis.europa.eu/ist/fet/co.htm.
- CSIRO, Centre for Complex Systems (2009). https://www.natureindex.com/institution-outputs/australia/csiro-centre-for-complex-systems-science-css/563ab1fe140ba0097e8b4574.
- U Brinkschulte, C Müller-Schloer, M Pacher (eds.), Proceedings of the Workshop on Embedded Self-Organizing Systems (Usenix, San Jose, 2013).Google Scholar
- G Lipsa, A Herkersdorf, W Rosenstiel, O Bringmann, W Stechele, in 2nd IEEE International Conference on Autonomic Computing. Towards a Framework and a Design Methodology for Autonomic SoC (IEEESeattle, 2005).Google Scholar
- A Bernauer, O Bringmann, W Rosenstiel, in IEEE International Conference on Self-Adaptive and Self-Organizing Systems (SASO), San Francisco, USA. Generic Self-Adaptation to Reduce Design Effort for System-on-Chip, 717 (IEEESan Francisco, 2009), pp. 126–135.Google Scholar
- F Kluge, J Mische, S Uhrig, T Ungerer, in Second International Summer School on Advanced Computer Architecture and Compilation for Embedded Systems (ACACES 2006). CAR-SoC - Towards and Autonomic SoC Node (HiPEACL’Aquila, 2006).Google Scholar
- F Kluge, S Uhrig, J Mische, T Ungerer, in 6th IFIP Workshop on Software Technologies for Future Embedded and Ubiquitous Systems (SEUS 2008). A Two-Layered Management Architecture for Building Adaptive Real-time Systems (Capri, 2008).Google Scholar
- J Becker, K Brändle, U Brinkschulte, J Henkel, W Karl, T Köster, M Wenz, H Wörn, in Workshop on Parallel Systems and Algorithms (PASA), ARCS 2006. Digital On-Demand Computing Organism for Real-Time Systems (GIFrankfurt, 2006).Google Scholar
- U Brinkschulte, M Pacher, Av Renteln, in Organic Computing. An Artificial Hormone System for Self-Organizing Real-Time Task Allocation in Organic Middleware (SpringerHeidelberg, 2008).Google Scholar
- W Trumler, T Thiemann, T Ungerer, in Biologically inspired Cooperative Computing, IFIP 19th World Computer Congress 2006, August 21-24 2006, Santiago de Chile, Chile. An Artificial Hormone System for Self-organization of Networked Nodes (IFIPSantiago de Chile, 2006).Google Scholar
- G Weiss, M Zeller, D Eilers, R Knorr, in Autonomic and Trusted Computing, Brisbane, Australia. Towards Self-organization in Automotive Embedded Systems (SpringerBrisbane, 2009), pp. 32–46.View ArticleGoogle Scholar
- MH Garzon, H Yan (eds.), DNA Computing, 13th International Meeting on DNA Computing, DNA13, Memphis, TN, USA, June 4-8 2007, Revised Selected Papers, volume 4848 of Lecture Notes in Computer Science (Springer, Heidelberg, 2008).Google Scholar
- JY Lee, S-Y Shin, TH Park, B-T Zhang, Solving traveling salesman problems with dna molecules encoding numerical values. Biosystems. 78(1–3), 39–47 (2004).View ArticleGoogle Scholar
- GS Hornby, H Lipson, JB Pollack, in Robotics and Automation, 2001. Proceedings 2001 ICRA. IEEE International Conference on. volume 4, Evolution of generative design systems for modular physical robots (IEEESeoul, 2001), pp. 4146–4151.Google Scholar
- EA Lee, S Neuendorffer, MJ Wirthlin, in Journal of Circuits, Systems and Computers. Actor-Oriented Design Of Embedded Hardware And Software Systems (World ScientificSingapore, 2003).Google Scholar
- G Nicolescu, PJ Mosterman, Model-Based Design for Embedded Systems (CRC Press, Boca Raton, London, 2010).Google Scholar
- A Sangiovanni-Vincentelli, G Martin, in IEEE Design and Test, Vol 18, No. 6. Platform-Based Design and Software Design Methodology for Embedded Systems (IEEENew York, 2001), pp. 23–33.Google Scholar