Skip links
Main content

Interconnected systems architecture

vrijdag 14 augustus 2009 19:35

During my recent holidays I found the time to read a book on car technique: De techniek van de auto. A good book giving me a much better understanding of the workings of a car. I brought along two educational books for our daughters as well. One of these, Jouw bijzondere lichaam showed the human body as a series of systems (in Dutch: stelsels): the skeleton, the cardiovascular system, the nervous system, the muscles, the digestive system, the respiratory system, and the lymphatic system.

I had never looked at the human body this way. My view, which was also shown in the book, took the body as a complex of organs, all of the same type. With the new view, the body is a complex of several distinct systems (Dutch: stelsels), that interconnect at several points to exchange resources such as gasses (lungs <---> blood), information via neurons (e.g. muscles <--> nervous system), nutrients (intestines <--> blood). This exchange is direct and synchronous, without a broker, bridge or bus. The distinct systems each have their own material base. One is made of muscle cells, the other of neurons. The systems themselves are structurally very dissimilar. The cardiovascular system is circular, the digestive system is a unidirectional. The skeleton and muscle systems consist of disjoint parts.

The book on car technique also showed systems: the fuel system (with the engine and the fuel pump), the electrical system, the LPG system that is connected to the fuel system, the cooling system, the lubrication system, the driving system (camshaft, differential, etc.), the braking system, the car body, the air conditioning system, and the air bag system. Only when I read about the air bag system I understood that these are really separate system. The air bag system has its own cpu and even its own power supply that keeps working when the car battery is defunct in a car crash. These systems are also very different. One is pumping around liquids, the other converts an electrical current to different voltages, yet another is static and made of cast iron or synthetic materials.

It occurred to me that both the human body and the car have the same architecture. An architecture composed of several distinct systems. These systems are connected at functionally relevant places. Most  systems are necessary for the well-being of the car or body, of course. One cannot just remove one system and hope it will still function properly. However, it is possible to remove a single system and still have a partially functioning vehicle. Some systems are simply more important than others. Removing the digestive system, hypothetically, though extremely important, allows the body to live for a few days. The same holds for the braking system while driving in the desert. The air bag system can be left out completely. The car body is vital.

Systems are components. Each component has a well-defined purpose. Any component may be replaced by another one. The first cars had no electrical systems (I presume). The electrical system nowadays is very complex. When one of the systems is extended, this often requires the extension of another system as well. The systems coevolve. The same holds for the human body as it evolved from more primeval forms, of course.

Systems themselves may be complex and may themselves have an internal architecture. The electrical system of a car is like an agent, having some autonomy, a cpu (mind), many sensors, and many actuators. The digestive system is a typical pipe-and-filter architecture. The fuel system as well.

Its interesting to look at how the systems are interconnected. Since all connections are direct and all systems have different material bases, the connections take on may different forms, from the membrane filter in the lungs where oxygene and carbon-dioxide are exchanged with the cardiovascular system, to the spark plug that provides electricity from the electrical system to the fuel system, to the pressure of braking fluid, and the friction on the tire in a hydrolic brake. The engine transfers heat to the cooling system. Sometimes the connections are implemented as components (e.g. the oil level sensor), but often they just interact became the are physically adjacent (e.g. the hair vessels in the lungs). All of these however, may be considered to be components performing a special service for a given system.

The architecture can be used in compound software applications as well. In a static sense the systems are implemented as modules and connection points are defined in the API of the module. These modules are all active at the same time. They are agents with special direct access to the resources of other agents (this access must be limited in a formal way of course).

I don't have a pressing need to use this software architecture right now. Nor do I know if it is used elsewhere. But keep it in mind. It may come in handy one day.


« Terug