The Human SOA

June 21, 2007 § 4 Comments

Recently, I’ve to endeavoured to understand more about the relationship between our body and mind – the mindbody. Whilst reading up on the more scientific terriority attempting to explain this relationship, and moreover how the two parts communicate, I’ve encountered a fascinating area of science concerning a communication mechanism we have inside us.

Put as simply I can perhaps carelessly put it: our cells, making up our various organs, have various receptors on them, each configured to bind to various information carrying messengers that are produced elsewhere in the body. These information carriers, also known as ligands, have a wide ranging effect on our various inner systems. Endorphins are an example: secreted by the pituitary gland, our various organs react in differing ways upon receiving this substance. The culminating effect is that pain is relieved, and we are put in a mental state of well-being.

What I found interesting whilst pondering this intricate, yet conceptually simple model of communication, is that it mirrors a pattern of design we use in software engineering called the Service Orientated Architecture (SOA). I’ll concede now that it’s a little audacious of me without any medical background to attempt to marry up a process in the body with a paradigm in a completely different field, but I will attempt to do so nonetheless with an uncharacteristically steely determination.

The SOA, in the traditional sense (I’m not referring to REST, WS-* Standards, or any direct technical implementation of SOA) has at the heart of it a rich communication mechanism. I’ll take the common example of a SOA that uses a message-bus for this purpose. Various services hang off this bus, listening out accordingly for various messages. Upon receiving a message, they’ll probably do something important like maybe insert some data into a database, and then might communicate a message back out on to the bus.

Well, lets switch over to the body’s equivalent. The message-bus is quite simply the bloodstream – the way most stuff travels round the body. The messages themselves, instead of being binary packets of data (though they are indeed packets of data – compose of peptides rather than ones and zeros), are the pre-mentioned ligands.

In software SOA’s, in order for a service to listen out for a particular message, you need to set up a subscription. For an organic organ, this is mirrored by the constituent cells needing to house receptors at their surface. This is so the receptors can interact with passing ligands. Similar to making a subscription, each receptor will interact with only a specific legand. Once the ligand and receptor have binded, information consequently trickles down from the outside of the cell into its inside, and thus into the organ. Similar to ‘services’ in the software version of an SOA, the organ then does what ever it wants to. In the case of morphine (carrying endorphine like peptides), or cannabis, the result is that our organs do things such as get us high. In the case of the peptide Cholecystokinin, or in it’s abbreiviated form CCK, our body is able to co-ordinate to do the various things necessary in order to digest food.

In the diagram below, I’ve attempted to model the process of our ligands, receptors and organs interacting during the digestion of food as an SOA

sao

The messages travelling in a good SOA should be event based, and preferabley have some business significant meaning. In the above model, our event (the CCK peptide) is that some food has arrived in the intestine. What’s happening here is the message is being published by the intestinal service, and other services that have subscribed (via their receptors) will pick the message the message up and then do something interesting with it. It’s the mechanism of pub/sub message exchange, rather than direct point-to-point communication. Personally, I find it easier to envisage how such a system could have come about through evolution; our body produces organs that through over time have learnt to respond to our inner-messages, giving us some positive advantage that helps us suceed in the ruthless world that is natural selection. As an interesting aside, in software systems where the messaging breaks down (i.e. we loose messages, or messages get corrupted), the body has it’s equivalents through a variety of illnesses. Viruses can be corrupt messages, docking with cell receptors for unscrupulous means.

So there we go, the human SOA!

§ 4 Responses to The Human SOA

  • Great post!

    Interestingly, I’ve heard that cell receptors are adaptive to the messages they receive. For example, when someone starts smoking cigarettes they initially have a strong reaction, however this gradually fades. I think this is because more receptors are generated by the body to make up for the extra messages. Then when you stop smoking you get withdrawls because the receptors aren’t being stimulated. It would be interesting to consider an architecture where services adapt like this to the messages they receive. In effect evolving with the environment they live in. Then the problem is when changes happen too quickly for the body to respond and adapt in time. I guess this happens in software too. Business changes can have huge effects that the software can’t adapt to in the required time.

    So maybe machine learning will be the next architectural leap.

  • [...] I’ve just read a great post by John Pither, a ThoughtWorks colleage of mine, that helps people think about an SOA throught the pub/sub model of the physiological systems in the body. Like many middleware vendors, though, I think he’s missing some important facets of an SOA. [...]

  • Dhanuka says:

    Hi, just wanted to tell you that – human body is not SOA, that is EDA. Event driven architecture… all animals and their internal systems are event driven, not service oriented. ESB is used to implement EDA as well.

  • Hey this is kinda of off topic but I was wanting to know if blogs use WYSIWYG
    editors or if you have to manually code with HTML.
    I’m starting a blog soon but have no coding experience so I wanted
    to get advice from someone with experience.

    Any help would be enormously appreciated!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

What’s this?

You are currently reading The Human SOA at Pithering About.

meta