Adaptive Software versus Autonomic Software
Here's a mouthful: The Bowstreet Factory is an Adaptive System Modeling Platform. OK - what does that mean? Well, it means that it's a modeling platform - i.e. tools and a regen engine - for creating adaptive systems. And so you ask, "what's an adaptive system?" Well, an adaptive system is any system that can reconfigure its internal composition based on a set of changes to a bunch of input parameters.
Think of MS Excel as a basic ASMP - yuk an acronym. The MP part of Excel is the spreadsheet program itself. The AS part of Excel is something like a sales forecast - the file you create with Excel. The reason that an Excel-based sales forecast is an adaptive system is that you can change the input parameters, and it regenerates its internal composition - and you get a different sales forecast. Compare that to a static sales forecast modeled in a text editor - and you get the picture.
That brings us back to The Factory - which is the first - and to my knowledge - still the only ASMP for software. The question is, what makes an adaptive system cross over into the world of being an autonomic system? I'll present an idea below:
IBM will give you the official definition of an autonomic system and autonomic computing here: http://www.research.ibm.com/autonomic/
If you dumb it down, the concept of an autonomic system is that it's adaptive in a "self healing" manner. What does this mean? Well, "self healing" implies that when a system is broken, that it has the ability to fix itself. The only way a system can fix itself, is if another part of the same system has the ability to rebuild the portion that's broken.
This brings me to my key point. To be autonomic, a system has to have one part of it that is the system that users see and interact with, and another part of it that is the "regeneration engine", the part that can rebuild the visible part when a contextual change takes place - i.e. when en external parameter changes.
I maintain that the Factory is the only Adaptive System Modeling Platform for software that is actually an Autonomic System Modeling Platform. This is because when you model a software system with The Factory - like a J2EE-based portlet - you get a system that possesses the ability to regenerate its internal composition in the context of changes to its environment. Thus, the system has the ability to "self heal".
Many of Bowstreet's customers are building "self adapting" J2EE portals today that know how to automatically regenerate portions of their code to support variations. This means that when you rip out a piece of the portal to use it on the next project, that piece is able to adapt to changes automatically, enabling it to be used elsewhere without copy-paste. For example, a data entry form might know how to morph its composition of JSP code to support 20 different input parameters.
I believe that the larger value of Bowstreet's Autonomic System Modeling Platform - The Factory - is its ability to support a new level of "cross project, adaptive component reuse" - more so than its ability to have software "heal" at runtime. The "healing" part is what gets people skeptical. Why? Because even nature has plenty of problems doing healing - so humans are going to have an even harder time.
This really is a ramble today. But to wrap up, even though "autonomic modeling" for software seems to imply the requirement of "self-healing", we should really think of the requirement as being "regenerable" - or able to rebuild portions of itself. This is the first step to "self healing".
If anyone wants to check out more thoughts on self-adaptive software - then check out the following link:
http://www.bowstreet.com/products/whitepapers/parametric_approach_web_apps.html
1:51:35 PM
|