Autonomic Computing
Posted by
michael
on Tue Oct 16, 2001 08:41 AM
from the telltale-heart dept.
from the telltale-heart dept.
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."
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Karma Whoring (Score:2, Informative)
"Civilization advances by extending the number of important operations which we can perform without thinking about them." - Alfred North Whitehead"
Anyways, here is the link to their Autonomic Computing R&D site:
http://www.research.ibm.com/autonomic/ [ibm.com]
Sounds familiar... (Score:2, Funny)
Can you say "SysAd"?
It this merely a Quest? (Score:1)
The future (Score:5, Interesting)
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.
Is there a life expectancy? (Score:3, Interesting)
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?
single cell systems, etc. (Score:4, Insightful)
This means that we would need modular units in a network, say, that would be autonomic. The desktop PCs would have to be autonomic before you could bet the network to truly be so.
It would be a whole new way of computer design for software, and I doubts that some of the OSs out there would have code bases that could be viable in this regard.
Note that you can do this sort of thing as an optical illusion. You can pretend that everything is doing all right, when in fact it is going to hell in a hand basket. The vaporware diagnostic that merely pretends everything is all right, or the repair that cause more damage than was present in the first place.
But I think we have had enough of that over the past decade or two to know to avoid it. And, of course, the guilty have not been named because everyone knows who they are already.
Microsoft's "self-healing" server (Score:4, Funny)
"Autonomic Computing": bad name? (Score:1)
Marketing alert (Score:3)
While I think that designing system components with feedback capabilities is a neat idea, remember that doing this in a safe way requires actual computer science. Or at least extensive modeling. It's cool, sure, but it's going to be a while.
Hmmm... (Score:1)
So... they want to cut on I/T staff by letting the computers manage themselves? This seems a very bad idea to me.
I currently work as a sysadmin and I also have a lot of contact with end-users. Users like it when they have a problem, someone comes over, talks a little, fixes the probem.
They want to be helped by a person that acts nice to them, that's why I think you'll probably always will need I/T staff.
and from a more technical point of view: What if the computer fucks up? All these systems will probably "think alike" and if one Computer thinks that considering the managment of the PC it's a good idea to whipe the harddrive... more will probably follow...
must...go....home....to...much...work...
Re:Hmmm... (Score:5, Informative)
In my opinion, part of a autonomous PC is to be self-sufficient, not act like a lemming and follow other PC's just to follow.
Plus, just as human have a basic survial instinct to survive, I think you'd write this instinct into the PC as well and not have it destroy itself (unless it was doing major harm to its master, etc. Remember Asimov's rules for robots).
Finally, I agree humans will never be replaced as the final decision maker in fixing and running PC's, servers, networks, etc., but when I was a sys admin, I'd have killed for PC's to be smart enough to do some of the basic, mundane, man-hour, labourious tasks such as upgrading Service Packs if I told them all to do it, install programs, etc. Then I could have done more fun stuff. Plus when I had to fix a problem, people weren't glad to see me, because I was only there when something went wrong. Granted they were happy someone was there to fix the problem, but all would have preferred that there was no problem in the first place (PC fixed itself).
Evolution proceeds towards what works... (Score:3, Insightful)
The body works so well because it's highly highly highly redundant at the cellular level, not because there is a brilliant master control program controlling the most efficient implementation. You can't even imagine a number as big as the number of hormone receptors in your body.
That kind of duplication in a computer system costs real money, and while a noble goal, people don't spend money on reliable systems, they buy Windows.
This is a terribly useful approach in the battlefield, and the right thing to do once bandwidth and computational power are practically unlimited, but we're still in the stage of computing where people just want more features, reliability be dammed. After all, Nimda follows an autonomic behavior.
Re:What virus writers have to teach.... (Score:4, Interesting)
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?
Control (Score:2, Interesting)
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?
Repackaging the future (Score:5, Interesting)
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 [umbc.edu] agents page or this very useful overview paper [liv.ac.uk] 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.
Does this strike a familiar chord? (Score:2)
Remember that one ST:TNG... (Score:4, Insightful)
sorry for the run-on, but that was my immediate thought when i read Paul Horn's statement that the creation of "computer systems and software that can respond to changes in the digital environment, so the systems can adapt, heal themselves and protect themselves" is the only thing which will reduce the need for "constant human maintenance, fixing and debugging of computer systems." freeing humans for higher pursuits sounds good, but is probably only likely in a utopia. Horn goes on to say "The only way to get efficiency gains in information technology is to take some of the people out." This trend sounds like the steel industry - we'll have more cost efficient processes in providing IT services, but all those educated in that field will end up working at mc donald's.
so what happens when we all forget exactly how this "autonomic software" regulates itself? i guess this is the final word in proving the importance of documentation! : ) ** begging for a flamebait mod**    or we could skip the documentation and just kidnap the children of visiting alien starships when we eventually start dying of radiation poisoning from our super-self-configuring systems.
the infamous penn state stalker server! [psu.edu]
This reminds me... (Score:2, Funny)
We can already do this (Score:4, Informative)
"The only way to get efficiency gains in information technology is to take some of the people out."
They're called managers.
as a contract programmer (Score:2, Funny)
ka-ching!![$$]
lots of overtime
Yeah, but.... (Score:4, Funny)
Yeah...but does the University know about it? :-)
Read carefully (Score:2)
Derisive laughter coming from the Mac lab techs (Score:2, Interesting)
Some academic thoughts... (Score:4, Insightful)
The problems I discovered were:
* The building blocks of the software itself, are human optimized algorithms and datastructures;
* In order to improve human optimized algorithmns (meta-optimization?), one could develop some form of trial and error optimization algorithmn, but this would complicate things even more (it's hard to determine whether the searchdirection makes any sense); designing such algorithmn is very hard, because, how long do we search before we give up? This is like the chess game, certain move may look silly in the first place, but it could be a very good move in the end...
* If the program is to optimize smart, it will need to use *known* optimizations, and be unable to improve human optimized algorithmns... Introducing the factor of meta-optimization gives the problem of CPU-time distribution: how much CPU time may content optimization take, and how much time may met-optimization take??
* If only known algorithmns are used, the program is bound to a limited level of complexities. Meaning that: lot's of human comprehension has high complexity, which is yet not very well understood by science; the "Perfect Human Interface" is likely to fail in this area - it's the area the user (again) needs to adapt to the machine.
But if these guys actually succeed in their quest... brilliant!!
Reacting to Complexity We Didn't Need (Score:3, Insightful)
Anyway, the idea of Autonomic Computing is hardly new (consider plug-and-play and autoinstallers). The really, really hard part of it is to impose autonomic computing on a system that was not designed for it. It is very difficult to make a complex system "simple" without redesigning the complex system.
What's next? (Score:2, Informative)
I think most of you, so far, are missing the idea here. I also think the good Dr. from IBM is too, but that is beside the point. The point here in redesigning the way systems work from the ground up is to make them more capable of doing what YOU as users/admins actually want them to do. The idea being that YOU set the policy and the computer learns how best to implement it.
I, personally, don't like this very much. It sounds like the next step in closing off the workings of the "operating system" from the user. What happens to Linux and open source when Windows starts to dynamically rearrange it's code to optimize for your preferences and specific uses? It gets left behind is what.
I've been thinking about where operating systems are headed and what I want in an operating system, lately. I had pretty much defined what I wanted, when I started to run across projects like this: TUNES [tunes.org], and ideas like this: Flow-Based Programming [http]. I then realized that I wasn't entirely original. People have been thinking about the same things and trying to work them out for some time. But there has been little mainstream work done to get things to happen.
In my opinion, the design of TUNES and the ideas expressed about Flow-Based programming are a perfect fit for open source programming. And, there's no reason that autonomic computing couldn't fit right into the mix as well, as long as it's an open-source feature rather than a built in proprietary unified piece of the system.
The new system I'd like to see would be completely dynamically restructurable, and reprogrammable from the ground up. I think this would be a prerequisite for full-blown autonomic computing, but I have a feeling that the corporates are going to slip it into Windows in such a way that Windows stays the same on the surface, but just tells you less and makes more decisions for you than it already does. Problem is, that's what most users think they want. What I suggest is doing it in such a way that each user has total choice about how his system is designed and operated. Of course there would be predefined templates for certain types of systems (web servers, web/e-mail clients, gaming system, desktop publishing workstation, etc). So a user could pick one or more open source templates on which to base his system and then modify it to his needs as he goes. These templates would define what optimum scheduling and resource allocation should be done for specific tasks and merge this at the lower level with the needs of other tasks and the priorities set by the user or learned dynamically by the system.
I think we'll see some very interesting advances in the next 10-15 years. Let's hope the open-source community doesn't miss the boat. Microsoft sure as hell won't.
ooh, IBM is so very totally (Score:1)
There have been various proposals over the years to emulate biological systems. Cybernetics in fact was all about self-regulating systems -- at a lower level than is proposed here.
I'm so glad they've got such a handle on things. I'll take shipment of the new autonomic computers in January.
Cool Stuff... (Score:2, Funny)
Joe, the world's leading Cyberneticist boards a plane bound for Athens, Greece. This flight is the maiden flight of American Airline's first totally automated flight.
As he walks to his seat, he is greeted by a slick looking robotic flight attendant of his design. After sitting down, another attendant of the same design brings him a scotch and water (just the way he likes it) and says in a tinny voice "Good Morning Dr. Davidson, I hope you enjoy the flight."
Settling back in his seat with his drink in hand, he thinks about the many thousands of hours he has put into the autonomic systems that entirely control this plane.
As he goes to give his empty glass back to the robotic attendant, the plane pushes back from the gate. After a short while, he hears a much smoother robotic voice come over the intercom; "Good Morning, ladies and gentlemen and welcome to American Airlines Flight 1644 from Los Angeles to Boston. This will be a 2 1/2 hour flight. We at American Arlines would like to take a moment and point out that this is the first trip made completely under the control of the latest IBM 36000 Autonomic Robotic Piloting Computer. Every aspect of this flight, from the attendants serving you drinks to myself, the pilot, have been developed with safety in mind."
As the flight trundles down the runway, picking up speed, the voice continues on; "So you can sit back, relax and enjoy the flight, secure in the knowledge that absolutely nothing can go wrong, go wrong, go wrong, go wrong......"
Seriously, we're not very far from this. Flights routinely take off and land with only the most minor human intervention, and cars are being developed which use visual cues to pilot themselves down the road (a company in Australia has converted a Humvee for a test bed).
Open the door Hal. (Score:3, Insightful)
Even limited self replication coupled with the ability to process information so rapidly and powerfully seems like borderline sentience to me. What happens when you attempt to replace an autonomic router and the computer as a whole deceides thats really something you shouldn't do, because the router is so useful. Can this be coded around or avoided altogether? The people that develop this technology are going to have to be weary of creating something that cares more about its own processes than the user trying to make use of them.
Gee, that's original... (Score:1)
Cynicism apart, it's a laudable initiative if it results in a large kick to existing research in these areas. SAGE [sage.org] are also turning their attention to the process of automating and scaling system administration tasks (see recent discussion on sysadmin "research" on sage-members list).
OTOH, I can think of a large part of the IT industry - those vendors with profitable integration services business units - who possibly won't be throwing their lot in with IBM on this one.
Ade_
/
No Silver Bullet (Score:2)
Not only are there no silver bullets now in view, the very nature of software makes it unlikely that there will be any--no inventions that will do for software productivity, reliablity, and simplicity what electronics, transistors and large-scale integration did for computer hardware. We cannot expect ever to see two-fold gains every two years.
It is curious that the paper mentioned in the article does not deal explicitly with Brooks' objections since they are the best known statements of the problem of complexity in software.
Among Brooks solution for reducing complexity is to use great design: Whereas the difference between poor conceptual designs and good ones may lie in the soundness of design method, the difference between good designs and great ones surely does not. Great designs come from great designers. Software construction is a creative process. Sound methodology can empower and liberate the creative mind; it cannot enflame or inspire the drudge.
I would also add that simplicity engenders complexity. Simplified systems become subsystems for more complex designs. When the complexity of a system becomes a barrier to its further enhancement, simplifying it only allows its complexity to continue to increase.
It is the objectives of the system that creates complexity, not the development techniques. The only way ultimately to reduce complexity is to artificially constrain the requirements.
Autonomic Virus? (Score:2, Interesting)
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).
Barnum science (Score:3, Insightful)
The popular press quickly grasps on to it, as these magic bullets increase the circulation of OMNI and Scientific American. Eventually the politicians hear about them and allot untold amounts of money to these efforts.
After 5-10 years nothing much comes out of this, and the snake oil peddlers move on to another area.
Among the thusly overinflated areas we have:
- AI
- neural networks
- expert systems
- nanotechnology
- chaos theory
- e-commerce
- parallel computing
- distributed computing
- complexity (a la Santa Fe Institute) theory
- logic programming
the latest two additions are
- the semantic web
- autonomic systems
/.ers are well advised to apply a healthy dose
of skepticism to any such magic bullet claim.
And what about us? (Score:1)
What will we do once the world is run by self programming self healing self repairing and maintaining machines.
What then?
Autonomic responses are based on microbiology (Score:2)
While the idea has the power of lucidity, it's not clear whether it can be implemented effectively. The development of autonomic responses in complex animals developed over millions of years using sexual reproduction as a means of pruning less viable branches while introducing sufficient variation to ensure species-level survival.
At the organism level, autonomy is accomplished through a combination of neural, hormonal, and physiological responses to external stimuli and internal state changes. How many proteins and hormones, etc are required for this? How many combinations of signals are there? Clearly the number of combinations is large enough to be considered "countless". That an organism as complex as a human being works at all is an impressive feat of biochemical integration and regulation.
"...we don't really need... sentient machines and androids programmed to love and laugh -- to overcome the largest obstacle standing in our way."
That's an assumption which remains to be validated! How does IBM know that it's not the other way around? Perhaps love and laughter (i.e. higher emotions) are a natural and inevitable byproduct of the ultimate expression of the ideas of autonomy. Put another way, it may be possible to provide some sort of low-level homeostasis without emotions, but the maximum expression of those concepts might lead to a deeper philosophical awareness. At that point, look for IBM's business systems to call in sick with "mental health days" once in a while.
Richard Powers' novel Galatea 2.2 [barnesandnoble.com] was an interesting examination of the relationship between self-awareness, emotion, and intelligence.
Finally, somebody gets it. (Score:3, Interesting)
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.)
Two Questions come to mind (Score:2, Informative)
Secondly, how do we accomplish this without advancing machine tecnology too far? If a machine becomes self aware and protective of itself, what happens when we want to shut it down? What are you doing Dave? I know there are ways of preventing this, but will they work, and will we be able to find out if they work before it is too late, so to speak. I'm not trying to be paranoid, but this is something that is a real concern.
Another piece of this that someoneelse mentioned is if the computer is maintaning the basic stuff, what happens when the computer dies and no one knows exactly how it did what it did? A very real example is the ubiquitus (sp?) of calculators. How many of you can still do long division in your head? There was some story I read in High School where this guy who could do simple math without a computer was such an oddity that he became a king or something like that.
Keep doing those math problems.
Recursive Composition and Paramterization (Score:3, Informative)
It tells your heart how fast to beat, checks your blood sugar and oxygen levels, and controls your pupils so the right amount of light reaches your
There's an OO principle called dimeter which advocates as few dependancies as possible between objects. This sounds like a lot of hooks all over the place which is not a model of simplicity. It would be better for "it" to step out of the way and let each object adjust itself based on its surroundings just as in natural systems. Nature has a tremendous advantage over computers. It is far more efficient because everything is happening literally in parallel. Computers can really only do a very limited number of things at a time although sometimes the user perceives concurrencey due to very rapid time-slicing.
As a result, programmers are forced to make tremendous compermises given the comparatively limited medium with which they have to work. It will take well established techniques and objective analysis to determine the be way to utilize bits on silica.
Over the years I have recognised one principle that transcends this issue -- the issue of dealing with complexity. Oversimply it is Recursive Composition. This "pattern" or OO construct as it is sometimes referred to does not have a Class or particular set of relationships between objects. It's completely arbitrary. The idea, is to recursively delegate the responsibilty of another part of the system to yet another module. At the leaves of this tree you have the primative operations and at the root you have one simple instruction for triggering a potentially very complex cascade of instructions. Thus you have reduced the complexity of the overall system. The key difference between this and just another group of functions calling one another (and thus target to reduceing complexity of programs and in real-life systems) is parameterization.
As a simple example, imagine trying to encode or decode a database file. The database file has a header, a record list, and data chunks. Like this one on PalmOS PDB files [palmos.com]. If one were to apply the principle of Recursive Composition the API for this PDB codec would be, at the top level, PDB_decode(char *src). At the next level down you have operations like Hdr_decode(char *src) and Record_decode(char *src). At the leaves you have dec_uint32be(char *src) to decode an unsigned 32 bit integer in Big Endian byte order.
If you can parameterize cleaning exactly what is required to perfrom a task and delegate it to another module you have broken the problem into at least two smaller problems which reduces the order of complexity. Simple!
about 30 years behind the times (Score:3, Interesting)
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.
Security? (Score:3, Insightful)
Vaporware (Score:2)
The article lists 8 characteristics of autonomic systems:
- To be autonomic, a computing system needs to "know itself " and comprise components that also possess a system identity.
- An autonomic computing system must configure and reconfigure itself under varying and unpredictable conditions.
- An autonomic computing system never settles for the status quo -- it always looks for ways to optimize its workings.
- An autonomic computing system must perform something akin to healing -- it must be able to recover from routine and extraordinary events that might cause some of its parts to malfunction.
- A virtual world is no less dangerous than the physical one, so an autonomc computing system must be an expert in self-protection.
- An autonomic computing system knows its environment and the context surrounding its activity, and acts accordingly.
- An autonomic computing system cannot exist in an hermetic environment.
- Perhaps, most critical for the user, an autonomic computing system will anticipate the optimized resources needed while keeping its complexity hidden.
The features indicate a system several orders of magnitude more complex than the one it is intended to correct. Given the fact that these autonomic systems are supposed to deal with the shortage of IT professionals, where are the IT professionals supposed to come from that will implement these systems? Are they solving the problem of complexity or just creating more complex systems to maintain?When they develop an autonomic programing language it will be time to give it some serious consideration.
So What (Score:2, Funny)
wakka smakka
Self rewriting software? (Score:1)
Request for paper mentioned (Score:1)
Auto-coding - Virtual Interaction Configuration:
Knowledge Navigational Mapping - Virtual Interaction Configuration [mindspring.com]
The Matrix Metaphores [mindspring.com]
VIC legal, equations, definitions and concepts [mindspring.com]
Command specs [mindspring.com]
Knowledge Calculator [mindspring.com]
Re:Bad for jobs? (Score:1)
Lay back and relax. Then after a while call you customer and tell 'em you'll need 20hrs more for finishing his program (and he'll pay).
Re:The day when computers program themselves (Score:1)
As automation increases, should we decrease the number of humans (Bender!), reduce the average workload to spread the jobs around, or should we maintain a purely competitive environment where those without means do not survive(thereby acheive the first option)?
I don't neccessarily think any of these is the best option, but I do think its silly that the number of hours in the American work week continues to grow along with the unemployment rate.
Re:Bad for jobs? (Score:1)