SOFTWARE AGENTS

Prev don't be afraid of buying books Next

In this last example in this chapter, we need to review and understand the significance of software agents in an autonomic environment. This technology is one of the key and core technologies that drive true autonomic functionality.

Software agents—or, to use a standard industry term, agents—can be defined as autonomous, problem-solving computational entities capable of effective operation in dynamic and open environments. Agents are often deployed in environments in which they interact, and maybe cooperate, with other agents (including both people and software) that have possibly conflicting aims. Such environments are known as multiagent systems. Agents can be distinguished from objects (in the sense of object-oriented software) in that they are autonomous entities, capable of exercising choice over their actions and interactions. Agents cannot, therefore, be directly invoked like objects. However, they may be constructed using object technology.

Agents provide designers and developers with a way of structuring an application around autonomous, communicative elements, and lead to the construction of software tools and infrastructure to support the design metaphor. In this sense, they offer a new and often more appropriate route to the development of complex systems, especially in open and dynamic environments. In order to support this view of systems development, particular tools and techniques need to be introduced. For example, methodologies to guide analysis and design are required, agent architectures are needed for the design of individual components, and supporting infrastructure (including more general, current technologies, such as Web services) must be integrated.

Agent Technologies

Agent technologies span a wide range of specific techniques and algorithms for dealing with interactions with others in dynamic and open environments. These include issues such as balancing reaction and deliberation in individual agent architectures, learning from and about other agents in the environment and user preferences, finding ways to negotiate and cooperate with agents and developing appropriate means of forming and managing coalitions. Moreover, the adoption of agent-based approaches is increasingly influential in other domains. For example, multiagent systems can provide faster and more effective methods of resource allocation in complex environments, such as the management of utility networks, than any human-centered approach. Similarly, the use of agent systems to simulate real-world domains may provide answers to complex physical or social problems, which would be otherwise unobtainable. Examples include the modeling of the impacts of climate change on various biological populations or modeling the impact of government policy on the economic or global landscape.

Attributes of Agents

  • Adaptability— Agents must be able to work on multiple platforms, networks and software operating systems—and at the same time be able to solve technical problems by themselves without input from the owner.

  • Mobility— An agent should be able to roam networks and the Internet according to decisions made internally by itself about where to find data to achieve its predefined goals. It must be able to interact and negotiate with other agents in multiple networks and environments.

  • Transparency and accountability— An agent must be completely transparent to the owner/user if required—but it must have features for logging where it has been, what it has done, and who it contacted and when. And it must produce this information on demand.

  • Rugged— If an agent is required to traverse Web sites, and networks—large and small—it must be rugged, able to deal with errors, low resources, underpowered servers, incomplete data, and so on. It should be able to solve as many problems as it can without human intervention.

  • Self-starters— Agents must be able to start and stop based on their own criteria, deciding to gather information on their own based on the owners' priorities. The required frequency may be as soon as possible, hourly, daily, weekly, monthly, or whenever. The agent must have the ability to decide when to start/stop and when to deliver its results and through what interface.

  • User-centered— The agent must act in the best interests of its owners and the preferences that have been set for it. It must carry out its duties as prescribed without deviating.

The schematic in Figure 12.1 illustrates these attributes in the triangle of information.

  1. The user describes/collaborates with the agent.

  2. The agent interacts with the information sources or applications.

  3. The agent delivers the results to the user.

Figure 12.1. Software agents—a simple schematic.

graphics/12fig01.gif




Mobile Agent Systems

Many researchers and programmers in the autonomic community see agents as programs roaming corporate networks in search of specific code or the Internet to collect business-related data in order to help users to buy goods or implement platform-independent code-on-demand, for example. This need for mobile agents is acknowledged and builds on European strengths, where much of this work has been done. But mobility brings added security problems. The research effort concentrates on how to guarantee termination, security, and exactly once protocols. To protect against malicious hosts, agents should contain time limit validity and electronic money with an expiration date. A key issue that needs to be addressed here is administrability of mobile agent systems—e.g., authorization policies. This has been a major reason why mobile agents have not yet been taken up by the mainstream. Note also that hosts, as well as agents, need to be self-protected.

One of the commercial application areas in which the added value of mobile agents is very high is large-scale distributed or decentralized system integration with highly adaptive and dynamic business logic. Existing solutions are generally centralized, pulling everything onto one platform, limiting the complexity and changes that can be handled. A decentralized agent approach divides and conquers complexity by pushing a large part of the business logic out to source systems so that monitoring and aggregation can be done on each. This distributes workload and increases robustness because local processing can be performed independently of other systems, resulting in fewer and more relevant interactions with these systems, at a higher level of abstraction. In turn, mobility, mainly single hop, is the answer to the increasing need for flexibility and adaptability in business logic. Agents can easily be deployed to source systems, carrying new database drivers, code to interact with new application or file types, or new data processing rules. Software is updated at the component level at runtime, proving a level of dynamism and flexibility that goes far beyond current release policies. Agent communication and behavior capabilities complete the picture, being very well suited to high-level service—based on the decentralized implementation of business logic—and for adapting and handling change in the on demand environment. A nice property of the dynamic, component-level approach is that it naturally fits step-by-step system integration, with each step resulting in added value for the business.

This is a particularly significant advantage in the current economic climate, in which many companies have seen megaprojects fail.

Amazon


Autonomic Computing
Autonomic Computing
ISBN: 013144025X
EAN: 2147483647
Year: 2004
Pages: 254
Authors: Richard Murch

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net