1.1 Background
Agents are specialized kinds of components, offering greater flexibility than traditional components. As will be explained, agents use dynamically adaptable rich message-based interaction, and flexible knowledge-based techniques to make it much easier to build and evolve systems as requirement and technologies change.The term “agent” describes a software abstraction, an idea, or a concept, similar to OOP terms such as methods, functions, and objects. The concept of an agent provides a convenient and powerful way to describe a complex software entity that is capable of acting with a certain degree of autonomy in order to accomplish tasks on behalf of its user. But unlike objects, which are defined in terms of methods and attributes, an agent is defined in terms of its behavior. Software agents are an innovative technology designed to support the development of complex, distributed, and heterogeneous information systems. They rely on an infrastructure that provides services and mechanisms, allowing agents to have simpler interfaces and be more composable.
An agent system is composed of components with simple interfaces, but complex behavior results from the messages that the components process and communicate with each other. The agents are only able to communicate with each other because they all conform to some common, well-defined interaction standard. The agency serves as a “home base” for locating and messaging mobile and detached agents and collecting knowledge about groups of agents Services include agent management, security, communication, persistence, naming, and agent transport in the case of mobile agents. In addition to basic agent infrastructure and agent communication, a FIPA compliant agent system, such as Zeus (Nwana, 1996), provides additional services in the form of specialized agents residing in some (possibly remote) agency.
Various authors have proposed different definitions of agents, these commonly include concepts such as
The Agent concept is most useful as a tool to analyze systems, not as a prescription. The concepts mentioned above often relate well to the way we naturally think about complex tasks and thus agents can be useful to model such tasks. (“http://en.wikipedia.org/wiki/Software_agent“)
In general,
“An agent can be many things. The broadest accepted definition is that of an entity that acts on, or has the power and authority to act on, behalf of another. An agent can be thought of as a means by which something is accomplished or is caused. In any agent-based model, a human being(or even a non-human agent) may delegate some authority to the agent, which may be “intelligent,” mobile, or both.” (Goff, 2004)
A mobile agent is a composition of computer software and data which is able to migrate (move) from one computer to another autonomously and continue its execution on the destination computer. Mobile Agent, namely, is a type of software agent, with the feature of autonomy, social ability, learning, and most important, mobility. Mobile agents are the basis of an emerging technology that promises to make it very much easier to design, implement, and maintain distributed systems [White, 1996]. Mobile agents help to reduce network traffic, provide an effective means of overcoming network latency, and perhaps most importantly, through their ability to operate asynchronously and autonomously of the process that created them, help us to construct more robust and fault-tolerant systems.
These software agents called mobile agents are able to migrate from one computer to another computer. Even if the host machine, which launched the agents, is eliminated from the network, the agents can still work. Thus, mobile agents are very powerful programs, which can act even in the absence of the machine that initiated them. After completion of their assigned tasks, the mobile agents return to the host machine to report the results or else they simply terminate.
Thus, a mobile agent is not bound to the system where it begins execution; therefore it has the unique ability to transport itself from one system in a network to another. The ability to travel allows a mobile agent to move to a system that contains an object with which the agent wants to interact, and then to take advantage of being in the same host or network as that object.
Java, the language that changed the Web overnight, offers some unique capabilities that are fueling the development of mobile agent systems. (Lange and Oshima, 1998)
Mobile agent developers implement these solutions in java for several reasons. First and foremost, Java’s in-built Object oriented language features are conducive to agent technology. Secondly, developers can be extremely productive using java. Essentially, Java provides tools that simplify and expedite complex software development tasks. (Byassee, 2002)
It would be an understatement to say that the Java programming language [Arnold and Gosling, 1998] has revolutionized the mobile agent field, we think of it as jet fuel for mobile agents.
1.2 SCOPE OF STUDY
Mobile agents allow code to be able to move from the host to other systems within a network ensuring that the initial state of the agent is saved before it leaves the host computer. They help make robust applications that are able to reduce network bandwidth by sending an agent to remote location where it can execute locally, act autonomously and adapt dynamically to heterogeneously environments.
This project work is intended to detect the systems in the network which are in use or which have been used. For this study I will be using a local area network also called a LAN as it is the best possible considering time constraints and financial constraints.
1.3 AIMS AND OBJECTIVE OF STUDY
1.4 SIGNIFICANCE OF STUDY
This study helps to provide a mechanism whereby systems willing to connect to a network first submit their IP addresses and the time they got connection. As a result the activities of each system in the network will be monitored thereby making the network more secure as fraudulent acts or unauthorized activities will be easily checked. Also it becomes easier to detect faulty or disconnected systems within the network.
1.5 LIMITATIONS OF STUDY
During the course of this project, some challenges were encountered and they have been itemized below: