I’ve just finished reading this book: Emergence: The connected lives of ants, brains, cities and software by Steven Johnson. This is an interested read into the concepts of Emergence and how systems evolve without dictorial control or direction. I wish that Johnson had concentrated a little more on the characteristics the nodes that form an Emergent system (too many metaphors for my liking), but all in all it’s a good read.
This got me thinking around the possible relation of Emergence and SOA. Let’s say we had the technology to create an SOA with thousands of interconnected services – all performing local tasks with no appreciation of the bigger picture, but all working towards a common goal. Before thinking about how I’d start building this, one thing I struggle with is what kind of use case could be used for such a system. What kind of task is really going to take advantage of this infrastructure?
The obvious that come to mind are data analysis applications (the popular ones created by United Devices are a great example of this), but reading about the dynamics of emergent systems in the book, I think there are more possibilities. This is especially true if each service has the ability to change it’s role based on day to day demand. For example, today the service is working on payment processing – tomorrow, because of the release of a new product, the service changes roles to work on incoming orders to meet demand.
Any other good use cases I could be missing? What would make this compelling?