A Language-Independent Agent Architecture
Muhametsin, Stanislav (2011)
Muhametsin, Stanislav
2011
Tietotekniikan koulutusohjelma
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2011-11-09
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-2011112114900
https://urn.fi/URN:NBN:fi:tty-2011112114900
Tiivistelmä
In a software environment composed of multiple collaborating applications, an agent architecture is a suitable option for an integration architecture. The reason for this is that functionality requiring many applications as participants can be easily mapped to a single agent. Thus, maintainability increases, and functionality may be developed incrementally. However, the environment is often heterogeneous.
The applications expose different APIs, potentially written in different programming languages. Therefore, an agent, during its lifetime, may need to use APIs written in different languages.
Most of the existing agent architectures are meant to be used in a single-language environment. Using such architectures directly in multi-language environment requires ad hoc solutions, which is undesirable. Expectedly, there are few agent architectures designed for multi-language environment. However, from the perspective of heterogeneous application integration, their approach is not feasible. Using application APIs written in different languages is cumbersome and prone to errors in these approaches.
This thesis presents a model for agent architectures aimed for heterogeneous application integration. The model allows mobile agents to use application APIs written in different languages in native way. The native API usage along with the mobility of the agents implies that agents must be transportable between applications written in different languages. Therefore, the full state of any agent is defined using formal methods to guarantee the interoperability between languages.
The agent architecture adhering to the presented model was implemented in two languages to validate the approach. Furthermore, the architecture is used in real-life software environment consisting of applications written in different languages. The native way of using application APIs is efficient and frees developers to concentrate on domain-related problems. However, integration of additional applications written in new language into existing software environment requires implementing agent architecture in that language. A benefit outweighing this extra work is increased maintainability. Since an agent is decomposed into tasks, they may be reused in other agents throughout the software environment. /Kir11
The applications expose different APIs, potentially written in different programming languages. Therefore, an agent, during its lifetime, may need to use APIs written in different languages.
Most of the existing agent architectures are meant to be used in a single-language environment. Using such architectures directly in multi-language environment requires ad hoc solutions, which is undesirable. Expectedly, there are few agent architectures designed for multi-language environment. However, from the perspective of heterogeneous application integration, their approach is not feasible. Using application APIs written in different languages is cumbersome and prone to errors in these approaches.
This thesis presents a model for agent architectures aimed for heterogeneous application integration. The model allows mobile agents to use application APIs written in different languages in native way. The native API usage along with the mobility of the agents implies that agents must be transportable between applications written in different languages. Therefore, the full state of any agent is defined using formal methods to guarantee the interoperability between languages.
The agent architecture adhering to the presented model was implemented in two languages to validate the approach. Furthermore, the architecture is used in real-life software environment consisting of applications written in different languages. The native way of using application APIs is efficient and frees developers to concentrate on domain-related problems. However, integration of additional applications written in new language into existing software environment requires implementing agent architecture in that language. A benefit outweighing this extra work is increased maintainability. Since an agent is decomposed into tasks, they may be reused in other agents throughout the software environment. /Kir11