08-16-2017, 10:30 PM
1.0 Abstract:
The Autonomic controls in any human body uses motor neurons to send indirect messages to the body organs at a subconscious level. These messages regulate temperature, breathing and heart-rate without conscious thought. The new model of computing, conceptualised on these controls in our body, is called Autonomic Computing.
Autonomic Computing systems that are self-healing will not only cut costs, but also ensure maximum system uptime, and automate the management of increasingly complex systems. Autonomic computing is an approach to self-managed computing systems that will work independently. With Autonomic Computing applications like server load balancing, process allocation, monitoring power supply, automatic updating of software, will become possible.
Autonomous systems are based on intelligent components and objects, which are capable of self-governing actions in dynamic and heterogeneous environments that regulate themselves. The development of autonomous systems involves interdisciplinary research in: artificial intelligence, distributed systems, parallel processing, software engineering and user interface. While artificial intelligence is a vital area that will help bring about autonomic computing, such computing does not require the duplication of conscious human thought as a key goal.
2.0 What is Autonomic Computing?
Autonomic the name suggests, is a metaphor based on biology. The aim of using this metaphor is to express the vision to enable something similar to be achieved in computing, in other words, to create the self-management of a substantial amount of computing function to relieve users of low level management activities allowing them to place emphasizes on the higher level concerns of running their business, their experiments or their entertainment. That is to say, its ultimate aim is to create self-managing computer systems to overcome their rapidly growing complexity and to enable their further growth.
The need and justification for Autonomic Computing is based on the ever increasing complexity in today s systems. It has been expressed that the IT industry s single focus has been on improving hardware performance with software burgeoning with additional features to maximize on this additional capacity, at the neglect of other vital criteria. This has created a trillion dollar industry with consumers consenting to the hardware-software upgrade cycle. Its legacy though is a mass of complexity within systems of systems resulting in an increasing financial burden per computer (often measured as the TCO: total cost of ownership). In addition to the TCO implications of complexity, complexity is a blocking force to achieving Dependability. Dependability, a long-standing desirable property of all computer-based systems, integrates such attributes as reliability, availability, safety, security, survivability and maintainability. The autonomic initiatives offer a means to achieve dependability while coping with complexity.
Autonomic Computing has as its vision the creation of self managing systems to address today s concerns of complexity and total cost of ownership while meeting tomorrow s needs for pervasive and ubiquitous computation and communication.
The multi-disciplinary nature of autonomic computing is the automation of the information technology administration, management, deployment and implementation, while the "systems" are straight implied as every computing or automation will be a system without a word being said. Basically autonomic computing involves double automation. Taking business automation as example, while the normal computing/information infrastructures have already automated the business processes, an autonomic computing system aims to further automate the service and system management of the computing/information infrastructures.
3.0 The Autonomic Properties Self Management:
The essence of autonomic computing systems is self-management, the intent of which is to free system administrators from the details of system operation and maintenance and to provide users with a machine that runs at peak performance 24/7. Like their biological namesakes, autonomic systems will maintain and adjust their operation in the face of changing components, workloads, demands, and external conditions and in the face of hardware or software failures, both innocent and malicious. The autonomic system might continually monitor its own use, and check for component upgrades, for example, if it deems the advertised features of the upgrades worthwhile, the system will install them, reconfigure itself as necessary, and run a regression test to make sure all is well. When it detects errors, the system will revert to the older version while its automatic problem-determination algorithms try to isolate the source of the error.
Early autonomic systems may treat these aspects as distinct, with different product teams creating solutions that address each one separately. Ultimately, these aspects will be emergent properties of a general architecture, and distinctions will blur into a more general notion of self-maintenance. The journey toward fully autonomic computing will take many years, but there are several important and valuable milestones along the path.
At first, automated functions will merely collect and aggregate information to support decisions by human administrators. Later, they will serve as advisors, suggesting possible courses of action for humans to consider. As automation technologies improve, and our faith in them grows, we will entrust autonomic systems with making and acting on lower-level decisions. Over time, humans will need to make relatively less frequent predominantly higher-level decisions, which the system will carry out automatically via more numerous, lower level decisions and actions. Ultimately, system administrators and end users will take the benefits of autonomic computing for granted. Self-managing systems and devices will seem completely natural and unremarkable, as will automated software and middleware upgrades.
A system is said to be autonomic if it incorporates the four key autonomic properties: self-configuring, self-healing, self-optimizing and self-protecting. Like the autonomic nervous system of the human body, an autonomic system should react to events as a reflex, without conscious thought.
3.1 Self-Configuring:
Installing, configuring, and integrating large, complex systems is challenging, time-consuming and error-prone even for experts. Most large Web sites and corporate data centres are haphazard accretions of servers, routers, databases, and other technologies on different platforms from different vendors. It can take teams of expert programmers months to merge two systems or to install a major e-commerce application such as SAP.
Autonomic systems will configure themselves automatically in accordance with high-level policies representing business-level objectives, for example that specify what is desired, not how it is to be accomplished. When a component is introduced, it will incorporate itself seamlessly, and the rest of the system will adapt to its presence much like a new cell in the body or a new person in a population. For example, when a new component is introduced into an autonomic accounting system, it will automatically learn about and take into account the composition and configuration of the system. It will register itself and its capabilities so that other components can either use it or modify their own behaviour appropriately.
3.2 Self-Healing:
In today s world of on-demand computing, the terms availability and quality of service have taken on new meanings. It is no longer sufficient for a program to be defect free; in addition, it must be operational at all hours and running at peak performance for months, or even years, at a time. In practice, this necessitates hiring staff to monitor the service and fix any problems with as little disruption to the user as possible. If the system could recover from faults and errors on its own, then the need for monitors and around-the-clock staff would be eliminated, and resources could be applied elsewhere. This is the idea behind self-healing; that is, developing a system that can recover from faults and resume service seamlessly without human interaction.
IBM and other IT vendors have large departments devoted to identifying, tracing, and determining the root cause of failures in complex computing systems. Serious customer problems can take teams of programmers several weeks to diagnose and fix, and sometimes the problem disappears mysteriously without any satisfactory diagnosis.
Autonomic computing systems will detect, diagnose, and repair localized problems resulting from bugs or failures in software and hardware, perhaps through a regression tester. Using knowledge about the system configuration, a problem - diagnosis component (based on a Bayesian network, for example) would analyze information from log files, possibly supplemented with data from additional monitors that it has requested. The system would then match the diagnosis against known software patches (or alert a human programmer if there are none), install the appropriate patch, and retest.
3.3 Self-Optimizing:
The performance of a system or an application depends on its goal and current configuration. When the configuration changes or a new application is introduced, a system often requires fine-tuning in order to get the best performance. This is another task system administrators are faced with when change is introduced to a networked environment such as a cluster.
Complex middleware, such as WebSphere, or database systems, such as Oracle or DB2, may have hundreds of tuneable parameters that must be set correctly for the system to perform optimally, yet few people know how to tune them. Such systems are often integrated with other, equally complex systems. Consequently, performance-tuning one large subsystem can have unanticipated effects on the entire system.
Autonomic systems will continually seek ways to improve their operation, identifying and seizing opportunities to make themselves more efficient in performance or cost. Just as muscles become stronger through exercise, and the brain modifies its circuitry during learning, autonomic systems will monitor, experiment with, and tune their own parameters and will learn to make appropriate choices about keeping functions or outsourcing them. They will proactively seek to upgrade their function by finding, verifying, and applying the latest updates. An autonomic system is self-optimizing and once again frees the system administrator from this burden. In the context of clusters, the key optimization issue is load balancing. Load balancing is deciding where to assign new processes so that the resources in the cluster are efficiently used to provide the best performance.
3.4 Self-Protecting:
Despite the existence of firewalls and intrusion detection tools, humans must at present decide how to protect systems from malicious attacks and inadvertent cascading failures. Autonomic systems will be self-protecting in two senses. They will defend the system as a whole against large-scale, correlated problems arising from malicious attacks or cascading failures that remain uncorrected by self-healing measures. They also will anticipate problems based on early reports from sensors and take steps to avoid or mitigate them.
An autonomic system must provide security in order to prevent attacks and protect private information. The system must take a proactive approach and be self-protecting. It can recognize intrusion attempts and prevent them by itself. This avoids the unnecessary loss of time inherent in current systems, where an intrusion attempt must first be found and then patched. If the system alone can handle the encounter, the intrusion can be stopped immediately and the damage contained. In this way, the system offers greater security and confidence than traditional approaches.
Redundancy and encryption are used to realize self-protection. Redundancy is used to protect the system from failure so that it can use its properties of self-healing to recover.
Table 1. Four aspects of self-management as they are now and would be with autonomic computing.
Concept Current Computing Autonomic computing
Self-configuration Corporate data centres have multiple vendors and platforms. Installing, configuring, and integrating systems is time-consuming and error prone. Automated configuration of components and systems follow high level policies. Rest of the system adjusts automatically and seamlessly.
Self-healing Systems have hundreds of manually set, nonlinear tuning parameters, and their number increases with each release. Components and systems continually seek opportunities to improve their own performance and efficiency.
Self-optimization Problem determination in large, complex systems can take a team of programmer s weeks. System automatically detects, diagnoses, and repairs localized software and hardware problems.
Self-protection Detection of and recovery from attacks and cascading failures is manual. System automatically defends against malicious attacks or cascading failures. It uses early warning to anticipate and prevent system-wide failures.
4.0 The Eight Elements of Autonomic Computing:
The various elements of Autonomic computing are:
4.1 TO BE AUTONOMIC, A COMPUTING SYSTEM NEEDS TO KNOW ITSELF AND COMPRISE COMPONENTS THAT ALSO POSSESS A SYSTEM IDENTITY.
Since a system can exist at many levels, an autonomic system will need detailed knowledge of its components, current status, ultimate capacity, and all connections with other systems to govern itself. It will need to know the extent of its owned resources, those it can borrow or lend, and those that can be shared or should be isolated.
Such system definition might seem simple, and when a computer system meant one room-filling machine, or even hundreds of smaller machines networked within the walls of one company, it was. But page link those hundreds of computers to millions more over the Internet, make them interdependent, and allow a global audience to page link back to those hundreds of computers via a proliferating selection of access devices cell phones, TVs, intelligent appliances and we have blurred the once-clear concept of a system. Start allowing all those devices to share processing cycles, storage and other resources, add to that the possibility of utility-like leasing of computing services, and we arrive at a situation that would seem to defy any definition of a single system. But it s precisely this awareness at an overall system-wide level that autonomic computing requires. A system can t monitor what it doesn t know exists, or control specific points if its domain of control remains undefined.
To build this ability into computing systems, clearly defined policies embodied in adaptable software agents will have to govern a system s definition of itself and its interaction with IT systems around it. These systems will also need the capacity to merge automatically with other systems to form new ones, even if only temporarily, and break apart if required into discrete systems.
4.2 AN AUTONOMIC COMPUTING SYSTEM MUST CONFIGURE AND RECONFIGURE ITSELF UNDER VARYING AND UNPREDICTABLE CONDITIONS.
System configuration or setup must occur automatically, as must dynamic adjustments to that configuration to best handle changing environments. Given possible permutations in complex systems, configuration can be difficult and time-consuming some servers alone present hundreds of configuration alternatives. Human system administrators will never be able to perform dynamic reconfiguration as there are too many variables to monitor and adjust in too short a period of time often minutes, if not seconds. To enable this automatic configuration ability, a system may need to create multiple images of critical software, such as an operating system (a kind of software cloning), and reallocate its resources (such as memory, storage, communications bandwidth, and processing) as needed. If it is a globally distributed system, it will need to leverage its multiple images and backup copies to recover from failures in localized parts of its network. Adaptive algorithms running on such systems could learn the best configurations to achieve mandated performance levels.
4.3 AN AUTONOMIC COMPUTING SYSTEM NEVER SETTLES FOR THE STATUS QUO IT ALWAYS LOOKS FOR WAYS TO OPTIMIZE ITS WORKINGS.
It will monitor its constituent parts and fine-tune workflow to achieve predetermined system goals, much as a conductor listens to an orchestra and adjusts its dynamic and expressive characteristics to achieve a particular musical interpretation. This consistent effort to optimize itself is the only way a computing system will be able to meet the complex and often conflicting IT demands of a business, its customers, suppliers and employees. And since the priorities that drive those demands change constantly, only constant self-optimization will satisfy them. Self-optimization will also be a key to enabling the ubiquitous availability of e-sourcing, or a delivery of computing services in a utility-like manner. E-sourcing promises predictable costs and simplified access to computing for IT customers. But to be able to optimize itself, a system will need advanced feedback control mechanisms to monitor its metrics and take appropriate action. Although feedback control is an old technique, we ll need new approaches to apply it to computing. We ll need to answer questions such as how often a system takes control actions, how much delay it can accept between an action and its effect, and how all this affects overall system stability. Innovations in applying control theory to computing must occur in tandem with new approaches to overall systems architecture, yielding systems designed with control objectives in mind. Algorithms seeking to make control decisions must have access to internal metrics. And like the tuning knobs on a radio, control points must affect the source of those internal metrics. Most important, all the components of an autonomic system, no matter how diverse, must be controllable in a unified manner.
4.4 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.
It must be able to discover problems or potential problems, then find an alternate way of using resources or reconfiguring the system to keep functioning smoothly. Instead of growing replenishment parts, as our cells do, healing in a computing system means calling into action redundant or underutilized elements to act as replacement parts. Of course, certain types of healing have been a part of computing for some time. Error checking and correction, an over 50-year- old technology, enables transmission of data over the Internet to remain remarkably reliable, and redundant storage systems like RAID allow data to be recovered even when parts of the storage system fail. But the growing complexity of today s IT environment makes it more and more difficult to locate the actual cause of a breakdown, even in relatively simple environments. We see this even with personal computers how many times is the solution to a problem shut down, reboot and see if it helps? In more complex systems, identifying the causes of failures calls for root-cause analysis (an attempt to systematically examine what did what to whom and to home in on the origin of the problem). But since restoring service to the customer and minimizing interruptions is the primary concern, an action-oriented approach (determining what immediate actions need to be taken given current information available) will need to take precedence in an autonomic solution. Initially, healing responses taken by an autonomic system will follow rules generated by human experts. But as we embed more intelligence in computing systems, they will begin to discover new rules on their own that help them use system redundancy or additional resources to recover and achieve the primary objective: meeting the goals specified by the user.
4.5 A VIRTUAL WORLD IS NO LESS DANGEROUS THAN THE PHYSICAL ONE, SO AN AUTONOMIC COMPUTING SYSTEM MUST BE AN EXPERT IN SELF-PROTECTION.
It must detect, identify and protect itself against various types of attacks to maintain overall system security and integrity. Before the Internet, computers operated as islands. It was fairly easy then to protect computer systems from attacks that became known as viruses. As the floppy disks used to share programs and files needed to be physically mailed or brought to other users, it took weeks or months for a virus to spread. The connectivity of the networked world changed all that. Attacks can now come from anywhere. And viruses spread quickly in seconds and widely, since they re designed to be sent automatically to other users. The potential damage to a company s data, image and bottom line is enormous. More than simply responding to component failure, or running periodic checks for symptoms, an autonomic system will need to remain on alert, anticipate threats, and take necessary action. Such responses need to address two types of attacks: viruses and system intrusions by hackers.
By mimicking the human immune system, a digital immune system an approach that exists today can detect suspicious code, automatically send it to a central analysis center, and distribute a cure to the computer system. The whole process takes place without the user being aware such protection is in process. To deal with malicious attacks by hackers, intrusion systems must automatically detect and alert system administrators to the attacks. Currently, computer security experts must then examine the problem, analyze it and repair the system. As the scale of computer networks and systems keeps expanding and the likelihood of hacker attacks increases, we will need to automate the process even further. There won t be enough experts to handle each incident.
4.6 AN AUTONOMIC COMPUTING SYSTEM KNOWS ITS ENVIRONMENT AND THE CONTEXT SURROUNDING ITS ACTIVITY, AND ACTS ACCORDINGLY.
This is almost self-optimization turned outward: an autonomic system will find and generate rules for how best to interact with neighboring systems. It will tap available resources, even negotiate the use by other systems of its underutilized elements, changing both itself and its environment in the process in a word, adapting. This context-sensitivity includes improving service based on knowledge about the context of a transaction. Such ability will enable autonomic systems to maintain reliability under a wide range of anticipated circumstances and combinations of circumstances (one day perhaps covering even unpredictable events). But more significantly, it will enable them to provide useful information instead of confusing data. For instance, delivering all the data necessary to display a sophisticated web page would be obvious overkill if the user was connected to the network via a small-screen cell phone and wanted only the address of the nearest bank. Or a business system might report changes in the cost of goods immediately to a salesperson in the middle of writing a customer proposal, where normally weekly updates would have sufficed. Autonomic systems will need to be able to describe themselves and their available resources to other systems, and they will also need to be able to automatically discover other devices in the environment. Current efforts to share supercomputer resources via a grid that connects them will undoubtedly contribute technologies needed for this environment-aware ability. Advances will also be needed to make systems aware of a user s actions, along with algorithms that allow a system to determine the best response in a given context.
4.7 AN AUTONOMIC COMPUTING SYSTEM CANNOT EXIST IN A HERMETIC ENVIRONMENT.
While independent in its ability to manage itself, an autonomic computing system must function in a heterogeneous world and implement open standard s in other words, an autonomic computing system cannot, by definition, be a proprietary solution. In nature, all sorts of organisms must coexist and depend upon one another for survival (and such biodiversity actually helps stabilize the ecosystem). In today s rapidly evolving computing environment, an analogous coexistence and interdependence is unavoidable. Businesses connect to suppliers, customers and partners. People connect to their banks, travel agents and favorite stores regardless of the hardware they have, or the applications they are using. As technology improves, we can only expect new inventions and new devices and an attendant proliferation of options and interdependency.
Current collaborations in computer science to create additional open standards have allowed new types of sharing: innovations such as Linux, an open operating system; Apache, an open web server; UDDI, a standard way for businesses to describe themselves, discover other businesses and integrate with them; and from the Globus project, a set of protocols to allow computer resources to be shared in a distributed (or grid-like) manner. These community efforts have accelerated the move toward open standards, which allow for the development of tools, libraries, device drivers, middleware, applications, etc., for these platforms. Advances in autonomic computing systems will need a foundation of such open standards. Standard ways of system identification, communication and negotiation perhaps even new classes of system-neutral intermediaries or agents specifically assigned the role of cyber-diplomats to regulate conflicting resource demands need to be invented and agreed on.
4.8 PERHAPS MOST CRITICAL FOR THE USER, AN AUTONOMIC COMPUTING SYSTEM WILL ANTICIPATE THE OPTIMIZED RESOURCES NEEDED WHILE KEEPING ITS COMPLEXITY HIDDEN.
This is the ultimate goal of autonomic computing: the marshaling of IT resources to shrink the gap between the business or personal goals of our customers, and the IT implementation necessary to achieve those goals without involving the user in that implementation. Today our customers must adapt to a computing system by learning how to use it, how to interact with it, and how to collect, compare and interpret the various types of information it returns before deciding what to do. Even custom-made solutions rarely interact seamlessly with all a company s other IT systems, let alone all its data and documents. While some aspects of computing have improved for general users graphical interfaces, for instance, are far easier for most people to use than command prompts and their corresponding dictionaries of commands tapping the full potential of entire IT systems is still too difficult. But does this mean autonomic computing systems must begin to possess human intelligence so as to anticipate, perhaps even dictate, a user s IT needs? No. Think again of the analogy of our bodies and in particular one aspect of the autonomic nervous system responsible for what s commonly known as the fight or flight response. When faced with a potentially dangerous or urgent situation, our autonomic nervous system anticipates the potential danger before we become aware of it. It then optimizes our bodies for a selection of appropriate responses specifically, the autonomic nervous system triggers our adrenal glands to flood the body with adrenaline, a hormone that supercharges the ability of our muscles to contract, increases our heart rate and breathing, and generally constricts blood vessels to increase our blood pressure (while dilating those that feed key areas such as the skeletal muscles). The net result: our body is superbly prepped for action, but our conscious mind remains unaware of anything but the key pieces of information required to decide whether to stay and act (the fight response) or run for the hills. An autonomic system will allow for that kind of anticipation and support. It will deliver essential information with a system optimized and ready to implement the decisions users make and not needlessly entangle them in coaxing results from the system.
Realistically, such systems will be very difficult to build and will require significant exploration of new technologies and innovations. That s why we view this as a Grand Challenge for the entire IT industry. We ll need to make progress along two tracks: making individual system components autonomic and achieving autonomic behavior at the level of global enterprise IT systems (extremely challenging). Unless each component in a system can share information with every other part and contribute to some overall system awareness and regulation, the goal of autonomic computing will not really be reached. So one huge technical challenge entails figuring how to create this global system awareness and management.
5.0 Architectural Considerations:
Autonomic systems will be interactive collections of autonomic elements individual system constituents that contain resources and deliver services to humans and other autonomic elements. Autonomic elements will manage their internal behaviour and their relationships with other autonomic elements in accordance with policies that humans or other elements have established. System self-management will arise at least as much from the myriad interactions among autonomic elements as it will from the internal self-management of the individual autonomic elements just as the social intelligence of an ant colony arises largely from the interactions among individual ants. A distributed, service-oriented infrastructure will support autonomic elements and their interactions.
As Figure 1 shows, an autonomic element will typically consist of one or more managed elements coupled with a single autonomic manager that controls and represents them. The managed element will essentially be equivalent to what is found in ordinary non-autonomic systems, although it can be adapted to enable the autonomic manager to monitor and control it. The managed element could be a hardware resource, such as storage, a CPU, or a printer, or a software resource, such as a database, a directory service, or a large legacy system. At the highest level, the managed element could be an e-utility, an application service, or even an individual business. The autonomic manager distinguishes the autonomic element from its non-autonomic counterpart. By monitoring the managed element and its external environment, and constructing and executing plans based on an analysis of this information, the autonomic manager will relieve humans of the responsibility of directly managing the managed element. Fully autonomic computing is likely to evolve as designers gradually add increasingly sophisticated autonomic managers to existing managed elements. Ultimately, the distinction between the autonomic manager and the managed element may become merely conceptual rather than architectural, or it may melt away leaving fully integrated, autonomic elements with well-defined behaviours and interfaces, but also with few constraints on their internal structure. Each autonomic element will be responsible for managing its own internal state and behaviour and for managing its interactions with an environment that consists largely of signals and messages from other elements and the external world. An element s internal behaviour and its relationships with other elements will be driven by goals that its designer has embedded in it, by other elements that have authority over it, or by subcontracts to peer elements with its tacit or explicit consent. The element may require assistance from other elements to achieve its goals. If so, it will be responsible for obtaining necessary resources from other elements and for dealing with exception cases, such as the failure of a required resource. Autonomic elements will function at many levels, from individual computing components such as disk drives to small-scale computing systems such as workstations or servers to entire automated enterprises in the largest autonomic system of all the global economy.
At the lower levels, an autonomic element s range of internal behaviours and relationships with other elements, and the set of elements with which it can interact, may be relatively limited and hard-coded. Particularly at the level of individual components, well-established techniques many of which fall under the rubric of fault tolerance have led to the development of elements that rarely fail, which is one important aspect of being autonomic. Decades of developing fault-tolerance techniques have produced such engineering feats as the IBM zSeries servers, which have a mean time to failure of several decades.
At the higher levels, fixed behaviours, connections, and relationships will give way to increased dynamism and flexibility. All these aspects of autonomic elements will be expressed in more high level, goal-oriented terms, leaving the elements themselves with the responsibility for resolving the details on the fly.
Hard-coded behaviours will give way to behaviours expressed as high-level objectives, such as maximize this utility function, or find a reputable message translation service. Hardwired connections among elements will give way to increasingly less direct specifications of an element s partners from specification by physical address to specification by name and finally to specification by function, with the partner s identity being resolved only when it is needed. Hard-wired relationships will evolve into flexible relationships that are
Fig 1
established via negotiation. Elements will automatically handle new modes of failure, such as contract violation by a supplier, without human intervention. While service-oriented architectural concepts like Web and grid services will play a fundamental role, a sufficient foundation for autonomic computing requires more. First, as service providers, autonomic elements will not unquestioningly honour requests for service, as would typical Web services or objects in an object-oriented environment. They will provide a service only if providing it is consistent with their goals. Second, as consumers, autonomic elements will autonomously and proactively issue requests to other elements to carry out their objectives. Finally, autonomic elements will have complex life cycles, continually carrying on multiple threads of activity, and continually sensing and responding to the environment in which they are situated. Autonomy, proactivity, and goal-directed interactivity with their environment are distinguishing characteristics of software agents. Viewing autonomic elements as agents and autonomic systems as multi-agent systems makes it clear that agent-oriented architectural concepts will be critically important.
6.0 Autonomic computing Vs. Proactive Computing:
Autonomic and proactive computing both provide solutions to issues that limit the growth of today's computing systems. In the 1990s, the ubiquitous computing vision extended what has been traditionally called distributed systems, a field in which the application focus has been primarily office automation.
To date, the natural growth path for systems has been in supporting technologies such as data storage density, processing capability, and per-user network bandwidth, with growth increasing annually for 20 years by roughly a factor of 2 (disk capacity), 1.6 (Moore's Law), and 1.3 (personal networking; modem to DSL [Digital Subscriber Line]), respectively. The usefulness of Internet and intranet networks has fuelled the growth of computing applications and in turn the complexity of their administration. The IBM autonomic vision seeks to solve some of the problems from this complexity by using eight principles of system design to overcome current limitations. These principles include the ability of systems to self-monitor, self-heal, self-configure, and improve their performance. Furthermore, systems should be aware of their environment, defend against attack, communicate with use of open standards, and anticipate user actions. The design principles can be applied both to individual components and to systems as a whole, the latter providing a holistic benefit that satisfies a larger number of users.
While Intel Research supports the aims of autonomic systems and at the same time consider how computing systems will be used in the future. To date, the familiar personal computer (PC) infrastructure has been applied most effectively in the realm of the office and the home. Going forward, they are intrigued by other areas of human endeavour that are ripe for the application of computer-based technology. Proactive computing extends the horizon by recognizing a need to monitor and shape the physical world, targeting professions that have complex real-world interactions but are currently limited by the degree of human involvement required. We are addressing some of the challenges that exist beyond the scope of earlier ubiquitous computer systems to enable future environments involving thousands of networked computers per person. Proactive system design is guided by seven underlying principles: connecting with the physical world, deep networking, macro-processing, dealing with uncertainty, anticipation, closing the control loop, and making systems personal.
An emphasis on human-supervised systems, rather than human-controlled or completely automatic systems, is an overarching theme within proactive computing. Computer-to-user ratios have been changing over time: 1:many turned into 1:1 with the advent of the PC in the 1980s, and into many:1 with the explosion of mobile devices in the new millennium. Currently, most people in the United States typically own (sometimes indirectly) many tens of computers, ranging from portable devices to consumer electronics. These systems compete for human attention, an increasingly scarce resource in modern living. Before the sheer number of devices overwhelms us, solutions need to be found to remove people from the control loop wherever possible, elevating their interaction to a supervisory role. One way would be to use pure artificial intelligence, a lofty goal that will not be attainable in the near future. Proactive computing, therefore, focuses on human-supervised operation, where the user stays out of the loop as much as possible until required to provide guidance in critical decisions.
A simple present-day example that illustrates a human-supervised system is a modern home central heating system. Such systems typically have a simple regime for morning, day, evening, and night temperature settings. Normally, the system operates untended and unnoticed; however, users can readily override these settings at any time if they feel hot or cold, or to address an impending energy crisis. Furthermore, if the system were instrumented with a sensor network and knowledge of a family's calendar, the temperature and energy consumption could be optimized proactively to allow for in-house microclimates, late workdays, and family vacations. However, extending this example to more complex systems is quite a challenge most decisions do not simply become a selection between too hot or too cold.
As illustrated in Figure 2, there is considerable intellectual overlap between research into autonomic and proactive systems. Both autonomic and proactive systems are necessary to provide us with tools to advance the design of computing systems in a wide range of new fields.
Fig 2
Case Study
1. Autonomous Unmanned Spacecraft
2. ANTS A Concept Mission By NASA
7.1 Case Study: Autonomous Unmanned Spacecraft
The autonomic vehicle concept is similar to the autonomic computing paradigm initiated by IBM to make future computing systems self-managing and self-optimizing, to eliminate the expensive management services needed today. The computing systems considered in that activity consist of large collections of computing engines, storage devices, visualization facilities, operating systems, middleware, and application software.
An autonomic air vehicle can be piloted or uninhabited, and will exhibit a number of advanced characteristics. The vehicle will be self-defining, in that it will have detailed knowledge of its components, current status, internal constraints, ultimate performance, and its relation to other vehicles and to the airspace system. It will be able to reconfigure itself under varying and unpredictable conditions. For example, it will reconfigure wing and airframe geometry to satisfy requirements for a wide range of flight speeds and manoeuvres.
The vehicle will look for ways to optimize its performance across the entire flight regime. It will monitor subsystems, components, and metrics by using advanced feedback control mechanisms and will make changes to achieve predetermined performance goals. Flexible, highly adaptive structures and active sensing materials will enable it to adapt for optimum performance. The aircraft will be able to recover gracefully from routine and extraordinary events that might cause some components to malfunction or take damage.
Self-learning concepts will be incorporated into flight-control software to discover problems and to reconfigure the system to keep functioning smoothly. The vehicle will collect, analyze, and share information about itself and its local environment with other craft in the air and with supervisors on the ground to enable a coordinated and optimized airspace system.
The realization of the autonomic vehicle concept requires a paradigm shift in some technologies. For example, current, flutter-free designs based on the idea of aeroelastic avoidance result in stiff and heavy vehicles. That idea must be replaced by aeroelastic exploitation a controlled, flexible, and continuously self-adapting configuration that will enable an expanded operational envelope. Passive materials that have limited properties will be replaced by active multifunctional materials that can adapt their properties to the changing environments and significantly enhance structural performance
7.2 Case Study: ANTS Autonomous Nanotechnology Swarm
7.2.1 Swarms and Intelligence
Swarms consist of a large number of simple entities that have local interactions (including interactions with the environment). The result of the combination of simple behaviours (the microscopic behaviour) is the emergence of complex behaviour (the macroscopic behaviour) and the ability to achieve significant results as a team. Intelligent swarm technology is based on swarm technology where the individual members of the swarm also exhibit independent intelligence. With intelligent swarms, members of the swarm may be heterogeneous or homogeneous. Even if members start as homogeneous, due to their differing environments they may learn different things, develop different goals, and therefore become a heterogeneous swarm. Intelligent swarms may also be made up of heterogeneous elements from the outset, reflecting different capabilities as well as a possible social structure. Agent swarms are being used as a computer modelling technique and have also been used as a tool to study complex systems.
Examples of simulations that have been undertaken include swarms of birds, as well as business and economics and ecological systems. In swarm simulations, each of the agents is given certain parameters that it tries to maximize. In terms of bird swarms, each bird tries to find another bird to fly with, and then flies off to one side and slightly higher to reduce its drag. Eventually the birds form flocks. Other types of swarm simulations have been developed that exhibit unlikely emergent behaviour. These emergent behaviours are the sums of often simple individual behaviours, but, when aggregated, form complex and often unexpected behaviours. Swarm behaviour is also being investigated for use in such
applications as telephone switching, network routing, data categorizing, and shortest path optimizations.
Swarm intelligence techniques (note the slight difference in terminology from intelligent swarms) are population-based stochastic methods used in combinatorial optimization problems, where the collective behaviour of relatively simple individuals arises from their local interactions with their environment to give rise to the emergence of functional global patterns. Swarm intelligence represents a metaheuristic approach to solving a wide variety of problems.
Swarm robotics refers to the application of swarm intelligence techniques to the analysis of swarms where the embodiment of the agents is as physical robotic devices.
7.2.2 NASA Swarm Technologies
Future NASA missions will exploit new paradigms for space exploration, heavily focused on the (still) emerging technologies of autonomous and autonomic systems. Traditional mission concepts, reliant on one large spacecraft, are being complemented with mission concepts that involve several smaller spacecraft, operating in collaboration, analogous to swarms in nature. This offers several advantages: the ability to send spacecraft to explore regions of space where traditional craft simply would be impractical, greater redundancy (and, consequently, greater protection of assets), and reduced costs and risk, to name but a few. Planned missions entail the use of several unmanned autonomous vehicles (UAVs) flying approximately one meter above the surface of Mars, which will cover as much of the surface of Mars in three seconds as the now famous Mars rovers did in their entire time on the planet; the use of armies of tetrahedral walkers to explore the Martian and Lunar surface; constellations of satellites flying in formation; and the use of miniaturized pico-class spacecraft to explore the asteroid belt.
These new approaches to exploration missions simultaneously pose many challenges. The missions will be unmanned and necessarily highly autonomous. They will also exhibit the classic properties of autonomic systems, being self-protecting, self-healing, self-configuring, and self-optimizing. Many of these missions will be sent to parts of the solar system where manned missions are simply not possible, and to where the round-trip delay for communications to spacecraft exceeds 40 minutes, meaning that the decisions on responses to problems and undesirable situations must be made in situ rather than from ground control on Earth. The degree of autonomy that such missions will possess would require a prohibitive amount of testing in order to accomplish system verification. Furthermore, learning and adaptation towards continual improvements in performance will mean that emergent behaviour patterns simply cannot be fully predicted through the use of traditional system development methods. The result is that formal specification techniques and formal verification will play vital roles in the future development of NASA space exploration missions.
7.2.3 ANTS: A Concept Mission
Autonomous Nano Technology Swarm (ANTS) is a joint NASA Goddard Space Flight Centre and NASA Langley Research Centre collaboration to develop revolutionary mission architectures and exploit artificial intelligence techniques and paradigms in future space exploration. The mission will make use of swarm technologies for both spacecraft and surface-based rovers. ANTS consists of a number of concept missions:
SARA: The Saturn Autonomous Ring Array will launch 1000 pico-class spacecraft, organized as ten subswarms, each with specialized instruments, to perform in situ exploration of Saturn s rings, by which to understand their constitution and how they were formed. The concept mission will require self-configuring structures for nuclear propulsion and control, which lies beyond the scope of this paper. Additionally, autonomous operation is necessary for both manoeuvring around Saturn s rings and collision avoidance.
PAM: Prospecting Asteroid Mission will also launch 1000 pico-class spacecraft, but here with the aim of exploring the asteroid belt and collecting data on particular asteroids of interest.
LARA: ANTS Application Lunar Base Activities will exploit new NASA-developed technologies in the field of miniaturized robotics, which may form the basis of remote landers to be launched to the moon from remote sites, and may exploit innovative techniques to allow rovers to move in an amoeboid-like fashion over the moon s uneven terrain.
7.2.3.1 PAM The ANTS PAM (Prospecting Asteroid Mission) concept mission will involve the launch of a swarm of autonomous pico-class (approximately 1kg) spacecraft that will explore the asteroid belt for asteroids with certain characteristics. Figure 5 gives an overview of the PAM mission concept. In this mission, a transport ship, launched from Earth, will travel to a point in space where gravitational forces on small objects (such as pico-class spacecraft) are all but negligible. From this point, termed a Lagrangian, 1000 spacecraft, which will have been assembled en route from Earth, will be launched into the asteroid belt. As much as 60 to 70 percent of them are expected to be lost during the mission, primarily because of collisions with each other or with an asteroid during exploration operations, since, having only solar sails to provide thrust, their ability to manoeuvre will be severely limited. Because of their small size, each spacecraft will carry just one specialized instrument for collecting a specific type of data from asteroids in the belt. Approximately 80 percent of the spacecraft will be workers that will carry the specialized instruments (e.g., a magnetometer or an x-ray, gamma-ray, visible/IR, or neutral mass spectrometer) and will obtain specific types of data. Some will be coordinators (called leaders) that have rules that decide the types of asteroids and data the mission is interested in and that will coordinate the efforts of the workers. The third type of spacecraft are messengers that will coordinate communication between the rulers and workers,
and communications with the Earth ground station. The swarm will form sub-swarms under the control of a ruler, which contains models of the types of science that it wants to perform. The ruler will coordinate workers, each of which uses its individual instrument to collect data on specific asteroids and feed this information back to the ruler, who will determine which asteroids are worth examining further. If the data matches the profile of a type of asteroid that is of interest, an imaging spacecraft will be sent to the asteroid to ascertain the exact location and to create a rough model to be used by other spacecraft for manoeuvring around the asteroid. Other teams of spacecraft will then coordinate to finish mapping the asteroid to form a complete model.
Fig 3
7.2.3.2 SMART The ANTS SMART (Super Miniaturized Addressable Reconfigurable Technology) architectures were initiated at Goddard Space Flight Centre (GSFC) to develop new kinds of structures capable of:
goal-oriented robotic motion,
changing form to optimize function (morphological capabilities),
adapting to new environmental demands (learning & adaptation capabilities) &
repairing-protecting itself (autonomic capabilities).
Fig 4
The basic unit of the structures is a tetrahedron (Figure 6) consisting of four addressable nodes interconnected with six struts that can be reversibly deployed or stowed. More complex structures are formed from interconnecting these reconfigurable tetrahedra, making structures that are scalable, and leading to massively parallel systems. These highly-integrated 3-dimensional meshes of actuators/nodes and structural elements hold the promise of providing a new approach to robust and effective robotic motion. The current working hypothesis is that the full functionality of such a complex system requires fully autonomous intelligent operations at each node.
The tetrahedron (tet) walks by extending certain struts, changing its centre of mass and falling in the desired direction. As the tetrahedral structure grows by interfacing more and more tets, the falling motion evolves to a smoother walking capability, i.e., the smoother walking, climbing- avoiding capabilities emerge from the orchestration of the capabilities of the tetrahedra involved in the complex structure.
Currently, the basic structure, the tetrahedron, is being modelled as a communicating and cooperating/collaborating four-agent system with an agent associated with each node of the tetrahedron. An agent, in this context, is an intelligent autonomous process capable of bi-level deliberative and reactive behaviours with an intervening neural interconnection (the structure of the neural basis function).
The node agents also possess social and introspective behaviours. The problem to be solved is to scale this model up to one capable of supporting autonomous operation for a 12-tet rover (a structure realized by the integration of 12 tets in a polyhedral structure). The overall objective is to achieve autonomous robotic motion of this structure.
7.2.4 Swarm Technologies Require Autonomicity:
The ANTS mission will exhibit almost total autonomy. The mission will also exhibit many of the properties required to qualify it as an autonomic system.
Self-Configuring: ANTS resources must be fully configurable to support concurrent exploration and examination of hundreds of asteroids. Resources must be configured at both the swarm and team (sub-swarm) levels, in order to coordinate science operations while simultaneously maximizing resource utilization.
Self-Optimizing: Rulers self-optimize primarily through learning and improving their ability to identify asteroids that will be of interest. Messengers self-optimize
through positioning themselves appropriately. Workers self-optimize through learning and experience. Self-optimization at the system level propagates up from the self-optimization of individuals.
Self-Healing: ANTS must self-heal to recover from damage due either to solar storms or (possibly) to collision with an asteroid or other ANTS spacecraft. Loss of a ruler or messenger may involve a worker being upgraded to fulfil that role. Additionally, loss of power may require a worker to be killed off.
Self-Protecting: In addition to protection from collision with asteroids and other spacecraft, ANTS teams must protect themselves from solar storms, where charged particles can degrade sensors and electronic components, and destroy solar sails (the ANTS spacecrafts sole source of power and thrust). ANTS teams must re-plan their trajectories, or, in worst-case scenarios, must go into sleep mode to protect their sails and instruments and other subsystems.
The concept of autonomicity can be further elaborated beyond the self-CHOP properties listed above. Three additional self-properties: self-awareness, self-monitoring and self-adjusting, will facilitate the basic self-properties. Swarm (ANTS) individuals must be aware (have knowledge) of their own capabilities and their limitations, and the workers, messengers, and rulers will all be involved in constant self-monitoring and (if necessary) self-adjusting, thus forming a feedback control loop. Finally, further elaborated, the concept of autonomicity would require environmental awareness: the swarm (ANTS) individuals will need to be constantly aware of the environment around them not only to ensure mission success but also to self-CHOP and adapt when necessary.
7.2.4.1 . Why Other Swarm Based Systems Should be Autonomic?
It is been argued elsewhere that all computer based systems should be autonomic. It can certainly be justified that in the case of most NASA missions, due to the high levels of autonomy, the difficulties of dealing with reduced communication bandwidth while at the same time responding rapidly to situations that threaten the mission, and the remoteness of the operation.
Swarms are being used in devising solutions to various problems principally because they present an appropriate model for that problem. Several application areas of swarm technology were described where the approach seems to be particularly successful. But swarms (in nature or otherwise) inherently need to exhibit autonomic properties. To begin with, swarms should be self directed and self governing. Recall that this is achieved through the complex behaviour that emerges from the combination of several simple behaviours and their interaction with the environment. It can be said that in nature, organisms and groups/colonies of individuals, with the one fundamental goal of survival, would succumb as individuals and even as species without autonomicity. The conclusion that invented swarms with planned mission objectives must similarly possess autonomicity is inescapable.
Advantages & Applications
8.0 Advantages & applications of Autonomic computing:
Autonomic computing will reduce our dependence on human intervention to maintain complex systems, and this will be accomplished by an appreciable decrease in costs.
It will lead to a simpler user experience through a more responsive, real-time system.
Scaled power, storage and costs that optimise usage across both hardware and software can be expected.
Autonomous computing will help us make full use of processing power (a substantial portion of which was going waste).
Even home PCs can be used via a networked system. A high availability system with high security can be produced. Moreover, there are likely to be fewer system or network errors due to self-correction.
Usage areas like weather forecasting, or complex medical-related calculations like protein folding, which require processors to run 24/7 for as long as a few years at a time, will become simpler.
Progressively, autonomic computers will enable the tools to analyse complex problem. Fro instance, machines with cellular architecture, such as the Blue Gene, will enable the study of phenomena occurring in fractions of a second at an atomic scale.
Moreover, access to more computing power through Grid computing, combined with the implementation of open standards, will enable researchers to more easily collaborate on complex problems for the global good.
Autonomic computing will be better able to harness existing processing power to run complex problems for functions such as weather simulations and other scenarios that inform public systems and infrastructure.
Human intervention in most tasks associated with systems management will very soon seem as historic and as unnecessary as asking an operator to help in making a phone call.
Simultaneously, Autonomic features will begin to appear in client level devices so that your individual PC will complete for itself many of the tasks that currently make you a part-time administrator.
Autonomic computing will enable E-sourcing that ability to deliver information technology as a utility, when you need it, in the amount you must have to accomplish the task at hand. And autonomic computing will create big opportunities for such services, which are emerging.
Challenges Ahead
9.0 The Challenges Ahead:
In order to create autonomic systems researchers must address key challenges like:
A system must know the extent of its own boundaries before it transacts with other system. How will we design our systems to define and redefine themselves in dynamic environments?
Multi-platforms create a complex situation for system administrators. How will we build consistent interfaces and points of control while allowing for a heterogeneous environment?
The final result need to be transparent to the user. How will we create human interfaces that remove complexity and allow users to interact naturally with IT systems?
Just creating autonomic components is not enough. How can we unite a constellation of autonomic components into a federated system?
Standardisation is important, as the age of proprietary solutions is over. How can we design and support open standards that will work?
Innovative and novel methods will be needed to equip our systems to deal with changing environments and transactions. How will we create adaptive algorithms to take previous system experience and use that information to improve the rules?
Research into creating autonomic systems is complex and challenging. However, future computer systems require increased levels of automations if they are expected to manage the exponentially increasing amounts of data, the ever-expanding network and the increasing strength of processing power. Autonomic computing is set to make an entry into our life and into numerous services that influence it.
9.1 Engineering Challenges:
Virtually every aspect of autonomic computing offers significant engineering challenges. The life cycle of an individual autonomic element or of a relationship among autonomic elements reveals several challenges. Others arise in the context of the system as a whole, and still more become apparent at the interface between humans and autonomic systems.
9.1.1 Life cycle of an autonomic element: An autonomic element s life cycle begins with its design and implementation; continues with test and verification; proceeds to installation, configuration, optimization, upgrading, monitoring, problem determination, and recovery; and culminates in un-installation or replacement. Each of these stages has special issues and challenges.
9.1.1.1 Design, test, and verification: Programming an autonomic element will mean extending Web services or grid services with programming tools and techniques that aid in managing relationships with other autonomic elements. Because autonomic elements both consume and provide services, representing needs and preferences will be just as important as representing capabilities. Programmers will need tools that help them acquire and represent policies high-level specifications of goals and constraints, typically represented as rules or utility functions and map them onto lower-level actions. They will also need tools to build elements that can establish, monitor, and enforce agreements. Testing autonomic elements and verifying that they behave correctly will be particularly challenging in large-scale systems because it will be harder to anticipate their environment, especially when it extends across multiple administrative domains or enterprises. Testing networked applications that require coordinated interactions among several autonomic elements will be even
more difficult. It will be virtually impossible to build test systems that capture the size and complexity of realistic systems and workloads. It might be possible to test newly deployed autonomic elements in situ by having them perform alongside more established and trusted elements with similar functionality. The element s potential customers may also want to test and verify its behaviour, both before establishing a service agreement and while the service is provided. One approach is for the autonomic element to attach a testing method to its service description.
9.1.1.2 Installation and configuration: Installing and configuring autonomic elements will most likely entail a bootstrapping process that begins when the element registers itself in a directory service by publishing its capabilities and contact information. The element might also use the directory service to discover suppliers or brokers that may provide information or services it needs to complete its initial configuration. It can also use the service to seek out potential customers or brokers to which it can delegate the task of finding customers.
9.1.1.3 Monitoring and problem determination: Monitoring will be an essential feature of autonomic elements. Elements will continually monitor themselves to ensure that they are meeting their own objectives, and they will log this information to serve as the basis for adaptation, self-optimization, and reconfiguration. They will also continually