Autonomic Computing
pvcpie writes: "The New York Times has a story today about Autonomic Computing, which is described as "a biological metaphor suggesting a systemic approach to attaining a higher level of automation in computing;" and they published a paper (pdf) on the topic. Apparently there are already some universities signed up on Autonomic Computing projects, more info was available on the website and in the nyt article. It also appeared in CNET."
The more that can be done automatically, the more of the IT staff's precious time can be dedicated to more complex tuning tasks, and/or new development. This will make IT more effective, not obsolete.
Using the human body as an analogous self-maintaining system, would there be a coresponding lifespan to such a system? A point that is reached when the body can no longer repair and regulate itself and it simply quits.
For that matter would there be analogous doctors, hospitals and life support systems? How about gymnasiums for keeping in shape? (and I ask that last one only half-jokingly...)
Gordon
What do you think you are doing, Dave?
I would worry about these systems if I had one. I for one enjoy the fine-grained control I have over systems I manage.
I would hate to see my web server decide to bump up the number of allowed simultaneous connections in response to a denial of service attack, or decide that the ogg encoder in the background is indeed more important than domain control services.
... and of course the manditory gripe - that my system decides that it doesn't like my pirated MP3s and deletes them automatically.
If computers become smarter than the people who design their software, how are they any use as a tool anymore?
In the end it turns out that the most complex problem arise in trying to coordinate a collection of "autonomic" (?) components. Distributed systems with unrully objects... This is what the autonomous agent community is mainly concerned with ( see the UMBC agents page or this very useful overview paper for example).
Of course IBM pushing this it might mean a kick up rear for the academic to actually get some of this potentially cool stuff working. Chances are you never want the end user to know how it works anyway.
.sig
Hmmm... a computer that's supposed to run perfectly all the time and doesn't let the user get in and mess with anything. It sounds vaguely familiar, like a fleet of old Macs booting up at the same time. One thing I know, don't make the power switch software-dependent, or we'll never be able to turn the bastards off without unplugging them... or throwing them out of the window.
It seems, you never looked at the code of virus programs. They are not self-maintaining or seld-tuning. Most of the time, they are even written very badly and tend to crash in unknown environments.
Actually, I have, and I know that many are very amateurish, but you come across the occasional gem - I once found a very cunning polymorphic macro virus lurking round. Funnily enough, those ones are the ones that tend to do the least damage - correlation?
Two possibilities rear their ugly heads here:
1) An autonomic virus, written with the capability to "heal itself" once installed. Does this make sense? It seems to me that some existing virii already have some self-healing properties, such as those that hide a copy of themselves on a user's HD and insert a registry key in a Winodws registry to have themselves restored at reboot time. Thoughts?
2) A virus designed to insert itself into an autonomic system would conceivably be able to use the system's "self-healing" properties to protect itself (a funny memory springs to mind. I went to remove Outlook Express from my Win2K box at work, and discovered that Win2K does not have the option to uninstall Outlook Express. Undaunted, I went into the folder the executable was in and deleted it. Within five seconds, the system detected my "user error" in deleting a system file, and restored it. It took me a while to figure out how to prevent this, but it really threw me for a loop when I first saw it happen).
"Can't you see that everyone is buying station wagons?"
That was in the original Apple "Inside Macintosh".
The hardware side is reasonably close on this. All the newer interfaces (USB, IEEE-1394, PCI, PCMCIA) have identity info on all devices. And it's been that way for a few years now. It's time to pull the plug on the old stuff and insist that everything autoconfigure.
This is key. And again, Apple almost had it right, once. The original Apple model was that the system had two main repositories of system state - the Desktop file, and application preferences. The Desktop file could be regenerated if needed (and had to be, due to lousy database design), and application preferences were cosmetic only - you could delete preferences at any time, and just went back to the defaults.
Apple never faced up to checkability, though. And it hurt them, because they were running an unprotected OS with a tendency to trash its internal data structures.
Broken things must not contaminate other things.
It's unacceptable to ever get bad data from a disk. Reported errors, yes; undetected errors, no. Everything must have error checking. Memory parity must always be on. (And ECC ought to be standard.)
Stafford Beer has been writing about this topic for three decades. There was the Chilean Experiment in 1973, which was an experiment in autonomic computer control systems. This is nothing new, it's just something that almost everyone is ignorant of. Perhaps because the US government staged a coup in Chile in order to stop the experiment. In all my years on Slashdot I have yet to mention Stafford Beer and have anyone say, "Yeah, I've heard of him".
No, it's really nothing new, and it's not as complex as the IBMers would have you believe [and it has nothing to do with XML!]. It's not some new way of writing software - Beer's system was implemented I believe in straight COBOL. It's a new way of designing software, and it is indeed a paradigm shift in the true sense of the word - which is how the research has gone unnoticed for 30 years.
Actually, it's all supply and demand. Programming, engineering, and medical are common fields yet the pay is good.
Art is a fairly rare field, and the pay generally sucks. Acting, music too. Sucks, unless you bedome popular, then you become a natural monopoly on "you" and your pay skyrockets.
I am for the complete Trantorization of Earth.
Homeostatsis and self-regulation are not properties that you implement once in some abstract data type and that henceforth works for everything, or that require breakthrough new technology, they are design goals that you need to take into account when you design each and every part of a system. Biological organisms have been forced from day one to deal with these issues. The reason real software systems don't do this is not that people don't know how to, it's that software developers don't bother and aren't trained to do it, and that they can get away with it because there are always smart humans around to help it.
So, next time you write a new piece of software, think about how you can make it more self adapting and less reliant on numerous environment variables and other arguments supplied by the user. The pathsearch library is a simple example of this.
My high school biology teacher must've said a thousand times, "Evolution proceeds towards what works, not towards what is best."
Erm, sort of true. Evolution actually works to do what is 'best' in terms of the fitness function... i.e. seeks to maximise or minimise the result of some metric. If you pick your fitness function correctly, you can make the system optimise towards any required goal.
Just make sure you don't have any bugs - because GA's and GP's will find and exploit bugs that give higher fitness metrics faster than the programmer.
-- Mike