BT

New Early adopter or innovator? InfoQ has been working on some new features for you. Learn more

On Building Evolvable Systems

| by Dilip Krishnan on Jun 16, 2011. Estimated reading time: 2 minutes |

In a recent post Mike Amundsen writes about building evolvable systems where he expands on his presentation "Beyond REST : An approach for crafting stable, evolve-able Web applications". The question he hopes to answer in the presentation is  "How can we design and implement distributed network solutions that remain stable and flexible over time?" He says

[...] it's not all that hard to put up an 'app' that can be reached 'on the Web.' the hard part is implementing a solution that can successfully evolve over time.  my assertion is that one successful approach involves a combination of accepting and embracing some realites of dist-net architecture, isolating the key transient aspect of the environment, and focusing most of your creative eneregies on expressing the vital problem domain information in a flexible and evolvable way.

According to Mike the keys to answering the question in are focusing on three aspects of the systems

* The transfer protocol - He argues that the current tooling around buiding distributed systems hide the underlying protocols from developers, often sacrificing inherrent advantages of the transport/protocol in the interest of abstraction.

the better way to deal with HTTP is to embrace it. let HTTP lead system designers in the direction of lossy, chunky, state-less designs. accept HTTP as the stable rarely-changing foundation for your implementations. [...] so that all your dist-net designs reflect the power, stability, and reliability of HTTP itself. 

* State Management - Though a special case of recognizing and embracing different aspects of the protocol; state management is commonly used to maintain stateful communications over protocols (HTTP in his example) that arent inherrently stateful.

instead of constantly inventing new ways to ignore that state-less nature of dist-net interactions, designers and developers need to stop polluting the public internet with their transient personalization data bits. clients should keep track of the information users need (that's why they are often called user agents).

* Domain Semantics - He goes on to explain how to one could use media types to share the domain sematics between the client and the server.

it's the media type that provides the chance to customize messages between parties; to share understanding of what each data element and hyperlink 'means.' it's the media type that is specifically provided a registry where individuals who want to find shared understanding of a problem domain in order to implement mutually agreed appropriate domain-level solutions.

In conclusion he says

building evolvable systems is not very complicated. it requires clear understanding of the transfer protocol, careful isolation of transient data, and dedicated work to properly express the problem domian via shared messages. it may not be a complex process, but it does take hard work.

Can you think of examples, in the enterprise or otherwise, where these aspects hold true aswell? 

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Thanks for summarizing my blog post here.... by Mike Amundsen

I am most interested in feedback on this material. I've begun testing this approach w/ dev teams and continue to learn quite a bit from the process.

Thanks in advance to anyone w/ constructive comments.

MikeA (@mamund)

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

1 Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and dont miss out on content that matters to you

BT