Documente Academic
Documente Profesional
Documente Cultură
I. Introduction
Data and programs in centralized applications are kept
at one site and this creates a bottleneck in performance
and availability of information in remote desktop computers. Distributed systems have emerged to remove this
flaw. Advances in communication technology, especially
the Internet and increasing desktops power, have helped
distributed computing systems. Distributed Computing
Systems (DCSs) [31] consist of different computers connected to each other and located at geographically remote
sites. Several flavours emerged such as Peer-to-Peer (P2P)
Computing [21], agents [36], and grid computing [24]. The
complexity of these systems has revolutionized their management. Today, IT organizations have encountered growing challenges in the management and maintenance of large
scale heterogeneous distributed computing systems because
these systems have to be active and available at all hours.
Therefore, it is difficult for administrators to manage such
systems and handle changes occured at all hours and IT operators may also make mistakes in their work. IT managers
look for ways to improve the Return On Investment (ROI)
by reducing Total Cost of Ownership (TCO), increasing
Quality of Services (QoSs), and decreasing the cost of managing IT. It seems that existing management methods and
tools are inadequate to handle the complexity, heterogenity, uncertainty, dynamism, and scale of today s and future
information systems. Furthermore, such systems will become too complex and large-scale for skilled persons who
install, optimize, protect, and maintain them. Research by
the university of California shows that almost half of the
total budget is spent to prevent and recover systems from
crashes [26]. Another study [19] shows that 25 to 50 percent of IT resources are spent on problem determination
and according to IBM studies, in the 1990s, approximately
538
Characteristics
Self-configuration
Self-healing
Self-optimization
Self-protection
Self-awareness
Openness
Context-awareness
Anticipatory
Metrics
Maintainability, Usability, Functionality, and Portabil
Reliability and Maintainability
Efficiency, Maintainability, and Functionality
Reliability and Functionality
Functionality
Portability
Functionality
Efficiency and Maintainability
TABLE I
Relationships Between Autonomic Computig Properties and
Quality factors
539
540
ture runs on another machine, therby, we called this approach as loosely-coupled. This approach is also an architecture model-based because the autonomic infrastructure
uses an architecture model of the running system for desiging the system. Components and their connections are
evaluated with a list of properties and constraints in the autonomic infrastructure. The running system is monitored,
its data is collected and mapped to the architecture model.
The architecture model may be updated based on current
status of the running system. Then, the architecture model
is analysed and if the system needs adaptation or repair,
appropriate plan is executed. The use of knowledge of past
successful plans improves decision about adaptation. The
plan descibes which components must be removed or which
components must be inserted. An advantage of the complete separation of autonomic behavior and the running
system is that software adaptation can be plugged into a
pre-existing system [32]. Since this approach is centralized,
problems related to centralized systems such as failure in
the central architecture manager affect performance of the
system. Therefore, fault management must be considered
in the infrastructure and individual components. Figure
3 (based on the figure from [20]) shows a diagram of a
loosely-coupled autonomic system.
IV. Challenges and Issues
Since autonomic computing is a new concept in largescale heterogeneous systems, there are different challenges
and issues. Some of them are explained in the following:
A. Applying Agent-Oriented Paradigm
As discussed in [16] and [13], agent-based technology,
grid computing, and software engineering methodologies
are research areas that can help researchers to achieve the
aims of AC. An outstanding property of software agent
is autonomy. An agent not only reacts to environmental changes but also acts autonomously. Software agents
can be viewed as autonomic elements and this means that
agent-oriented architecture can help for the implementation of self-management. For example, Rudder [17] is a decentralized scalable agent-based composition infrastructure
that addresses the development of autonomic grid applications, focusing on the dynamic selection and composition
of autonomic elements and negotiation between them to
execute self-managing behaviors. Rudder consists of three
types of context-aware software agents including Component Agents (CAs), System Agents (SAs), and Composi-
tion Agents (CSAs). CAs dynamically and locally configure and manage autonomic components. SAs are embedded within resources such as CPU to monitor, schedule, and optimize their utilization with dynamically workload balancing. CSAs define rules based on application
requirements to choose an enacted workflow plan and insert rules into the tuple-space as reactive rules. They dynamically search and select the appropriate registered autonomic components and resources according to goals and
requirements of the application. These agents interact with
each other and scalable tuple-space provides the coordination for their interactions. Self-management is provided
with software agents, tuple-space, and composition rules.
B. Component-Based approach for Developing Autonomic
Computing Systems
Hot swapping [2] is a component-based technique to develop self-management systems by either replacing codes
(components) with same functionality or inserting a new
code (component) between two existing component. The
stages include terminating a component that should be replaced, suspending components and connections related on
this component, adding a new component that is determined according to a repair plan, establishing the relationships between new components and suspended components and connections, reconfiguring the system. Although
adaptation is established into the system, but the system
needs extra time to load a new component and link it to
the system, thereby, overhead increases. Another research
themes has been introduced to address self-management at
the level of middlewares and frameworks such as dynamic
composition [25] and smart components. Smart components are used to adapt to environmental changes and support self-management. Composition formalisms help to automate generation of global configuration by considering
certain constraints and/or optimization criteria [29].
C. Issues in Relationships among AEs
Relationships among AEs have a key role in implementing self-management. These relationships have a life cycle
consisting of specification, location, negotiation, provision,
operation, and termination stages. Each stage has its own
challenges [16]. Challenges in specification include lack of
the establishment of the syntax and semantics of standard
services for AEs, because AEs should interact together and
use from their services. Moreover, an AE must dynamically locate input services that it needs and other AEs
that need its output services must dynamically locate this
element with looking it up. Therefore, AE reliability can
be a research area. AEs also need protocols and strategies
to establish rules of negotiation and to manage the flow of
messages among the negotiators. One of these challenges
is to develop and analyze negotiation algorithms and protocols, then determine which negotiation algorithm can be
effective. After negotiation and reaching to an agreement,
how both agreed AEs provision their resources in an important issue. An AE can provide agreed service itself or
other elements can help it in providing part of agreed service. This is a research area. Automated provision can
541
V. Related Work
542
VI. Conclusion
Current programming languages, methods, and management tools are not adequate to handle the complexity, scale, dynamism, heterogeneity, and uncertainty. Autonomic Computing has gained world attention in recent
years for the reason of developing applications with selfmanaging behavior. Automatic computing is a grand challenge that requires advances in several fields such as software architecture, learning and reasoning, modelling behavior, policies, multi-agent systems, and knowledge base
design. In this paper, a survey of autonomic computing systems, their importance, their architectures, and some challenges was presented. The lifecycle of relationships between
AEs, learning, and robustness express some challenges in
ACSs. Issues about applying agent-oriented paradigm and
component-based development and management was also
described.
References
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
543