3.1 Mobile agent
Mobile agents are a class of agents whose predominant feature is the ability to transport between nodes on a network or between nodes across networks. They are the basis upon which true distributed information management agents can be built.
Mobile (or transportable) agents are a direct extension of the client/server technology. In the client/server paradigm, communicating entities have fixed and well-defined roles; a server offers a set of services and a client makes use of those services. This model also implies a strict sense of dependency; clients are dependent upon servers to provide the services that they require. The communication mechanism that takes place between a client and a server is through a message passing protocol since network communication is assumed. However, message passing has been criticized as being too low level, requiring programmers to determine network addresses and synchronization points themselves.
However, a fundamental problem exists with client/server architectures when considering distributed information system. If the server does not provide the exact service that the client requires, for example the server only provides low-level services, and then the client must make a series of remote calls to obtain the end service that it requires. This may result in an overall latency increase and in intermediate information being transmitted across the network which is wasteful and inefficient, especially for high volume of spatial data. Moreover, if servers attempt to address this problem by introducing more specialized services, then, as the number of clients grow, the amount of services required per server becomes unfeasible to support.
The mobile agent paradigm attempts to address the issues that are raised by the client/server and paradigms. Typical characteristics of mobile agents are their ability to migrate at will, autonomy in their actions, a peer-to-peer personality and a processing and network independence from their original location.
Mobility is a desirable characteristic in agents for a number of reasons
- Efficiency. If an agent can move across networks to the location where resources reside, then network traffic can be reduced since the agent can preprocess data and decide which the most important information to transfer is. This is a crucial aspect when considering users who connect through a low bandwidth link.
- Persistence. Once a mobile agent is launched, it should not be reliant on the system that launched it and should not be affected if that node fails. The concept of an agent moving between network nodes gives it the ability to `survive' and to reach as many resources as possible. This is useful for mobile computer users due to the fact that they can log on, launch an agent, log off and check later on its progress.
- Peer-to-peer communication. A failure of the client/server paradigm is the inability of servers to communicate. Mobile agents are considered to be peer entities and, as such, can adopt whichever stance is most appropriate to their current needs. For example, when a mobile agent is interrogating a resource it takes the role of a client. However, when another mobile agent wishes to query it, then it becomes a server. This allows for great flexibility in dealing with network entities and distributed resources[4].
4. Design of agent-based GIS
To design and develop an Agent-Based GIServices (AGIS) one should make a plan in a long run. Since the technology is developing so fast nowadays, adding new functionalities to existing system should be possible and easy; system maintenance should be simple and fast as well. These can be achieved by software engineering and object-oriented technology. Since Unified Modeling Language (UML) provides a standard notation for modeling and design, UML must be ined
4.1 What is object-oriented?
Barroca et al. (2000) describe object-oriented as follows: "A software system whose basic structuring is around things rather than around actions is said to be object-oriented"[5]. The reason is that although businesses change frequently, it has been observed that the things, which are manipulated by computer systems, stay quite stable, while the ways in which they are used change rapidly. This leads to structuring software around things that are manipulated instead of around actions that manipulate them. For example, we may develop one unit of software for spatial analysis, another unit of software for network analysis etc. No matter how application will change, these units are still needed; only the way of how they are coupled will change.
4.2 Distributed object technology
Distributed object computing extends an object-oriented programming system by allowing objects to be distributed across a heterogeneous network. Each of these distributed object components inter-operates as a unified whole. Currently, the three most popular industry standards for fulfilling distributed computing tasks are Microsoft's Distributed Component Object Model (DCOM), Object Management Group's (OMG's) Common Object Request Broker Architecture (CORBA) , Sun's Java Remote Method Invocation (Java RMI) and ObectSpace Co. Voyager[6].
4.3 UML
In this paper, Unified Modeling Language (UML) is used for AGIS modeling and design. The reason for it is that UML dominates recently object-oriented techniques. UML is the result of the merging of several object-oriented methods. It defines a number of diagrams to describe a system, and what these diagrams mean.
4.3.1. Agent-Oriented Design Process with UML
We can divide the traditional software development process in two fundamental steps: the analysis phase in which system requirements are to be captured and the design phase where the identified system functionalities are implemented. In other words, while in the system analysis phase we focus on "what", in the implementation phase we focus on "how". Dealing with the design of agent based software, we use a slight different approach: the AODPU (Agent-Oriented Design Process with UML)[7]. In this approach there are three steps: