Sunday, January 28, 2007

The Open Agent Architecture



by
Francois Nadeau


Table of Content
Chapter 1: The Open Agent Architecture
Chapter 2: Trends in Distributed Software System


1 The Open Agent Architecture


The Open Agent Architecture (OAA) is a framework used for constructing distributed software agents[1]. It was created by SRI International, which is a nonprofit research institution[2].

1.1 The Strengths of the OAA Framework


The strength of the OAA framework are as follows:
  • It provides software programmers with an environment to deploy software agents which can cooperate together to achieve common goals[3].
  • Agents allow the creation of system incrementally[1]. This is accomplished by developing a system's features as independent agents which provide services to each other, but do not relie exclusively on each other to function.
  • Agents allows software developers to more easily incorporate 3rd party and legacy systems within a system[1].
  • Agents can be used to process tasks in parallel[4]. The OAA framework accomplishes this with the use of a Facilitator agent, which is a centralized component used by all agents to communicate with each other. In this manner, the Facilitator can retain performance information about the agents in the system, and use this for selecting which agent should be used to accomplish new requests.
  • It supports the following programming languages: PROLOG, C, C++, Java, Lisp, Visual Basic, and Delphi[3]


1.2 The Limitations of the OAA Framework


The following are the limitations of using the OAA framework:
  • Agent oriented frameworks, such as the OAA, are not suited for static systems[1]. That is, systems which do not need to continuously adapt or upgraded should use more traditional methods such as Object Oriented architectures.
  • An OAA system must have a Facilitator agent, who coordinates all of the other agents[3]. This architectural decision creates a central point of failure in the system since this agent can become unavailable or unreliable. An other problem with this architecture is a decrease in performance since agents must communicate with the Facilitator first before communicating with each other.
  • The Facilitator agent must be executed on a Unix workstations or a PC[1]. This means that all agents in the OAA system are heterogeneous except the Facilitator agent.
  • The OAA is not an open source project, and requires a license for commercial use[1]. Although this does not affect academic projects, commercial development teams need to properly analyse the legal issues of using this framework. That is, the users will be required to spend time to understand, comply, and monitor the legal requirements imposed on them by a commercial license.
  • The OAA framework is no longer listed as an active project on the SRI International web­page[5]. Furthermore, the mailing list activity for this project has very few threads 25 threads in 2005, and some have do not have comments), which indicates a very small and un­supportive user community. I believe that this is by far the worst dis­advantage of using the OAA framework as a distributed system platform. The lack of support and interest will be reflected in a lack of information required by a software development team, and therefore a more active framework should be sought and used.


1.3 Agent Oriented Architectural Pattern


I believe that the Agent Oriented Architectural Pattern is a sound one, but that an other framework then the OAA should be used by software development teams wishing to develop agent based distributed systems. For instance, most of the limitations which I have listed in section 1.2 are specific to SRI International implementation of the AOO framework, and do not apply to other Agent Oriented framework such as Jade.

Jade, like OAA, is an agent based framework which can be used to create systems with distributed agents. However, unlike AOO,(FIPA) organisation standard. This non­profit IEEE organisation is the authoritative entity for distributed agent applications[7].

2 Trends in Distributed Software System


The Internet is unquestionably the biggest man­made distributed systems in existence, and because of this I believe that most trends in distributed software systems deal with the technologies used within this field. Until recently, most web services, such as web­sites, simply responded to client requests and did not allow their users to interact in the same manner as a traditional non­networked
application. I also believe the biggest trend within the Internet, and therefore greatly influencing distributed software systems, is the Web 2.0 movement.

As of the writing of this paper, the Information System community has not been able to agree on the exact scope or meaning of the term Web 2.0. However, most practitioners seem to agree that this term can be used to define the second generation of services available on the Internet[8]. I believe that the most significant difference between these newer services, when comparing them to the ones previously offered, is that the users now uploads information to the Internet. For example, the Picasa program allows its users to publish pictures on the Internet without having to worry about web­ server hosting[9]. This means that a user can now store images on the Internet, instead of locally on his hard disk.

Images are not the only user generated artifacts which is now being created and stored on the Internet. For example, documents can be created and saved with Writely[10], spreadsheet files with Google's Spreadsheets[11], music with I­Tune[12] as Podcasts, videos with YouTube[13], and a
user's thoughts can now be published on a seemingly unlimited number of Blog[14] and chat servers.

The implications of having users store their information on the Internet, instead of locally on their computer, is changing the way people see and use the Internet. I believe that as more and more users become relient on such storing mechanisms, applications will exclusively store information on the Internet, and this will mean that our current PCs will become little more then dumb­terminals used for displaying user­interfaces and collecting user inputs. This will also mean that web based agents, such as the ones described in M. Huns Agents as Web Services article, will have access to all the necessary information for processing many of our bureaucratic responsibilities on our behalf.

For software developers working on distributed systems, this shift in user philosophy is creating the following challenges:
  • Security issues: Until now, end­users have been responsible for their digital security when accessing the Internet. Users have been expected to use firewalls, virus checkers, safe passwords, and various other tools and techniques to protect their data from unwanted access. Web 2.0 services cannot follow such a strategy since the data is now being stored on the Internet.
  • Data distribution: Data for Web 2.0 services needs to be distributed all over the world. Currently, most web servers use mirroring to do this. However, distributed data­sets create serious challenges for distributed systems, such as the continuous need to have all of the data on the servers synchronized.
  • Mobile Users: An increasing number of users are now accessing the Internet with mobile devices such as mobile phones. For example, a survey in 2001 found that 40,000 web sites in Japan could be viewed on Internet­capable mobile phones[15]. These devices, due primarily to their size, use a different interface for accessing the Internet, and therefore needs to be linked in a different manner then traditional web­sites.


Bibliography


[1] "Open Agent Architecture (OAA) v2.x FAQ", [Online document], Available at HTTP:
http://www.ai.sri.com/~oaa/distribution/doc//oaa­faq­v2.html#PG_1.1
[2] "About: SRI International", [Online document], Available at HTTP: http://www.sri.com/about/
[3] D. Martin, A. Cheyer, D. Moran, "The Open Agent Architecture: A Framework for Building
Distributed Software", [Online document], Available at HTTP:
[4] "OAA vs Agent Communication Language (KQML,FIPA)", [Online document], Available at
HTTP: http://www.ai.sri.com/~oaa/oaaslides/sld023.htm
[5] "Artificial Intelligence Center: Current Projects", [Online document], Available at HTTP:
http://www.ai.sri.com/project_list/mode=Current/
[6] F. Bellifemine, G. Caire, A. Poggi, G. Rimassae, "JADE A White Paper", [Online document],
Available at HTTP: 1.1 Agent Oriented Architectural Pattern/
[7] "The Foundation for Intelligent Physical Agents", [Online document], Available at HTTP:
http://www.fipa.org//
[8] "Web 2.0", [Online document], Available at HTTP: http://en.wikipedia.org/wiki/Web_2.0/
[9] "Picasa", [Online document], Available at HTTP: http://picasa.google.com//
[10] "Writely", [Online document], Available at HTTP: http://www.writely.com//
[11] "Google Spreadsheet", [Online document], Available at HTTP:
http://spreadsheets.google.com//
[12] "Apple's I­Tune Overview", [Online document], Available at HTTP:
http://www.apple.com/itunes/overview//
[13] "YouTube", [Online document], Available at HTTP: http://www.youtube.com/
[14] "Blog", [Online document], Available at HTTP: http://en.wikipedia.org/wiki/Blog/
[15] "CYBER COUNSELLOR:Support Offered via Cell Phone for Quitting Smoking", [Online
document], Available at HTTP: http://web­japan.org/trends00/honbun/tj010321.html/

No comments: