Cell Architecture – Work in Progress
Complex Biological Systems
March 28, 1998
Since April of last year, I have worked on a model that I’ve wanted to do for a number of years. In 1994 I started looking at cells and other complex biological systems, to compare them with the digital systems I am more familiar with. At that time I put together a large diagram using OMT (UML) notation showing a static overview of cell structure.
As a creative outlet and working on my own time, I have gradually built the architectural beginnings of a dynamic model of a cell using ObjecTime. ObjecTime is of course the perfect tool to use for building such a highly complex real-time system. The model can be loaded into Rose for Real-Time.
In the following I would like to summarize some of what I have learned so far, and include some thoughts on where this work could lead.
The Architecture of a Cell has many Analogies with the Architecture of a Digital Switch
I am surprised at how similar the architecture of a biological cell is to the digital switch that I worked on for a year at BNR. I spent my time at BNR in the architecture group interviewing many of the 250 developers working on the project, and drawing large diagrams of the architecture. I thus had a unique opportunity to become intimately familiar with the architecture of a very complex digital switch. There are numerous architectural analogies, although there is probably no code that could be reused between the two types of systems.
Biological Systems are More Complex than Today’s Digital Systems
There are thousands of researchers around the world working every day to learn more about how biological systems are architected. Our Nervous System consists of about 100 billion cells, and each cell contains billions of active components plus many more passive components.
Biological Models as Examples of Highly-Concurrent, Distributed, Scalable Systems
The model that I am working on can be configured to have any number (billions if desired) of concurrently active components. Each cell can easily consume 100% of CPU. In the model, billions of cells, neurons for example, could be distributed in such a way as to consume all CPU on all computers in the world.
Biological Systems and the search for Reliability, Availability, Servicability (RAS)
The human machine and our cellular components are extremely reliable. Our hearts and other organs must be available 24 hours a day, 7 days a week, with a mean time between failures of something like 70 years. There is tremendous redundancy in these systems, with numerous internal mechanisms for self repair. I believe that there is a lot we can learn from these systems on how to build reliable, available and servicable digital systems.
What is Architecture
To me, architecture is about analyzing and playing with a type of system long enough to understand how to produce a relatively simple design. OTD/RRT is the ideal tool to let architects play with concepts and prototypes to uncover the architecture that a system should have.
Complex Biological Systems are the Best Specified Real-Time Systems in Existence
Cells and other biological systems are extremely well specified in numerous textbooks. This is in sharp contrast to the types of systems that our customers produce, whose architectures are confidential.
The use of ObjecTime Developer/Rose for Real-Time to do Simulations
I am very interested in how to use OTD/RRT to do complex simulations of almost any system. I am also interested in the similarities between simulations and prototypes, and how simulations/prototypes can become the living architectures for the development of real-time systems.
OTD/Rose for Real-Time Models as Components in Dept of Defense HLA Simulations
The U.S. Department of Defense has mandated that all DoD wargame simulations must support the High Level Architecture (HLA) specification to allow them to interact with other simulations. They have some very interesting ideas on interconnecting federations of behavior components with graphical components. This is exactly the type of thing I need to do to connect graphical components to a set of independently running OTD/RRT behavioral models.
Connecting High-Performance OTD/RRT Components and Models to Graphic Components
Basically I want to set in motion a set of OTD/RRT models, each modeling the behavior of some level of a complex biological system. I want to also run one or more graphical components (written in Visual C++ MFC, Java 2D/3D, or some other language) that can interact with people, dig the right information out of the running simulations, and display it for the human observer. This would allow people to see microscopic views of whatever part of the system they are interested in, graphs showing quantities of various biochemicals, metabolic pathways, or whatever.
The Modeling of Emergence
A lot of what can be visualized in a running biological system are run-time patterns that emerge out of the complexity. For example, metabolic pathways don’t need to be directly programmed in the model; they emerge out of the complex interactions between active and passive objects.
The Simultaneous Simulation of Multiple Levels
The real-world is constructed of a hierarchy of levels, each level constructed on the level below. Because of the large numbers of components involved, it’s not possible to put it all into one model. For example, it’s not possible to model a cell as the interaction between atoms (deriving the function of an enzyme from the sequence of its constituent atoms is a very hard problem), but it is possible to use fully-constructed molecules as functional building blocks. If a human observer of the model wants to see the atoms that some molecule is constructed of and how these atoms interact, the graphical component will have to tap into the activity of a separate lower-level OTD/RRT model.
Nature Doesn’t use Use Cases
Biological interaction patterns are cooperative or symbionic rather than involving use of one entity by another. Plants use animals to get carbon dioxide at the same time that animals use plants to get oxygen, so who’s using who? And which was incarnated first, the chicken or the egg? Nature thrives on symbioic cycles. Eventually everything has to be recycled because of resource limitations, like the recycling or garbage collection of memory in a computer system. I suspect that highly-RAS systems will have many of the same cyclic characteristics.