Humans and Human body as an Architectural reference.

It’s an interesting perspective to consider humans -

a. their interaction with others including animals & machines,

b. their growth & life-cycle

c. their evolution,

d. their anatomy

etc, could be treated as a reference Bible for software architectures.

Many of the observations have already been well adopted :

Mapping transactions, security, competing-consumers and related software patterns

Given a scenario for high load data day jobs that come in, how would a typical human handle it? How many humans would be required to handle it? In case of multiple humans interacting to achieve a goal, how do they interact and how do they establish trust.

Mimic human experience — it’s all the time about machine learning and AI and why do we offshore services.

Would the human(s) in concern work on multiple tasks in a round-robin fashion? Would the human sub-contract the work or would they just back off from the work? What happens as the human matures — is s/he in a better shape to work on this task given the maturity and experience and how ?

Leader Election and Crowd-Sourcing

Can we observe human interaction and behaviours in a crowd and the resulting formation of a team to mutually trust and perform as a team, all automatically without any boss’s intervention? What if there was a common-cause like an accident. Would leaders automatically emerge from this?

Monitoring, Self-Healing and Auto-Tweaking

Can we apply principles of healing (physical, psychological) into software that report issues in their health — more than bug fixing, can we heal/fix/alter the behaviours of software components based on its interaction with other software components over the years ?

Can we apply mentoring and counselling theories into software design to tweak the configuration parameters of the software ? Can we include auto-heal modules into software components similar to the way the skin auto-heals (kind of) in case of a bruise/burn.

Can we patch systems with antibody software components to further help the module to recover better and sooner?

Service Buses , Brokers and Load Levelling

We could treat the electric impulses within nerves as messages in an integration project or as packets in a Tcp/Ip transaction as the case may be with the backbone as the ESB ? Can we adapt the techniques of ‘sense’ such as touch, sight etc such that the software component can adapt based on the environment it lives in. In a queue based integration, this could be about sensing the network load, message load and perhaps moving itself to a different machine.

Simpler still think of Muscle growth as an Auto-Scaling means.

Versions, Virii and DDoS

Do we also worry about mutations of software like viruses that spread ? Is reincarnation a versioning mechanism or is it about rewriting completely ? Can mass uprising be seen as a DDoS attack?

Garbage Collection

Can the food breakdown procedure of body and waste disposal be correlated with allocating memory & freeing up non-referenced memory pointers periodically, and be treated as a waste disposal & cleaning up process ?

The Reference Architecture — Humans

Is there a software design problem that this reference model cannot assist with ? The humans appear to provide an ample reference point for any software component design requirement. There are enough structures to observe within humans, including their interactions with others to learn & adapt for any upcoming software architects.

Software engineer at heart, with varied interests.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store