An Agent-Based Approach to Service-Oriented Architectures
A prominent approach in modern software development is to reuse existing code and functionality by wrapping them with service descriptions. These services are then made available to other applications via the Internet. As this service-based approach to software engineering is influencing all areas of information technology, agent-oriented technologies are also being refined with this paradigm. To achieve the combination of service-oriented architectures (SOA) and multi-agent systems, we describe an agent architecture named JIAC V that follows the defining principles of service-oriented architectures. This means that the traditional strengths of agent technology, namely coordination, cooperation, and intelligent behavior, are employed to realize and augment the vision of a flexible service-oriented architecture. Our architecture features three types of agents that follow the SOA principles. These range from agents that simply provide basic services up to agents that are able to compose the services and reason about their objectives. In detail, we describe a simple reactive agent type, a BDI-based agent type, and last but not least an agent that supports learning, reasoning, and other advanced AI-techniques. All of these coexist within the same architecture and consequently within the same applications, as we regard an architecture with only a single agent model as too static for real world applications. The objective of this approach is to create an agent framework for the development of various applications that provides appropriate tools for different tasks. For example, simple tasks within an application can be solved by simple agents, while the more complex and powerful agent types are employed for the real challenges. The core components and concepts of the JIAC V architecture have been tested and evaluated within proof-of-concept implementations and application projects. We describe our experience with these projects and give an analysis of the performance of the architecture in different applications.