Next Generation in Computing with Agent Oriented Distributed System : Protocols and Features

Distributed structure of programming and computing has evolved in all facets of development and spawned a new era of distributed computing. In these structures, the isolated processing nodes have been networked to form a powerful processing and communication device. Now, they need an integrated infrastructure for communication that is capable of providing and developing strong and secure mobility features. The mobile agent technology is becoming a promising solution for widely distributed systems like the Internet. Mobile agent based infrastructure is capable of forming migratory environment efficiently using the network resources. The mobile agent is software code capable of moving closer to the required resource in contrast to systems that incorporate the mobility of non-executable code only. It is also required for various agent-oriented languages to support architectural heterogeneity and less or no dependency on the previous system once an agent is transmitted to another system in the network. This paper reviews the architectural components that exist and required for agent-based systems. It also reviews various software components of universal mobile agent system and explores some aspects of migration and intercommunication of agentoriented approaches. Oriental Journal of Computer Science and Technology Journal Website: www.computerscijournal.org ISSN: 0974-6471, Vol. 11, No. (2) 2018, Pg. 126-134

introduction Mobile agents are collaboration of programmable code and variables which can pass on from one system to other on its own within a network environment.The agent performs processing at each host and decides when and where to move next and how it moves.The movements of mobile agent are evolved from remote procedure call (RPC) methods.In RPC communication methodology a programme calls for a remote method situated within another computer without actually going through the depths of network.Any mobile agent can travel across the network by saving its execution or data state on the current host and then migrate the save state to next ChOWhAN & DAyyA, Orient.J. Comp.Sci.& Technol., Vol.11 (2)  126-134 (2018)   host in the network.Another way to achieve this is to move through data duplication by copying and cloning itself 1 .
A mobile agent can be termed as a particular formation of mobile code in domain of code mobility.They are useful to implement applications that are capable to work in distributed environment since with their active participation they can move on from one machine to other in their period of execution.There are two types of mobile agent and they are classified as per their dynamic itinerary planning or pre-stored IP-addresses.The mobile agent selects the path depending on its current network conditions 2 .There are two fundamental kinds of mobile agents itinerary planning as mentioned under:

•
Predefined itinerary based mobile agent-fixed travel plan.

•
Dynamic itinerary based mobile agentmigration path on the fly.
Mobile agent comes under the umbrella of software agent technology though they need not require offering intelligent functionalities like interactive to underlying environment, decision making, competing or collaborative methods.These are the supportive and integrated capabilities of software agent technology.Mobile agents do not preoccupy or make intensive use of computational ability or processing power of resources such as RAM, file processors and network connections.This environment is a buildup of distributed mobile agent systems that can intelligently make decision or simply distribute the task across multiple nodes 3 .This review paper contributed in various aspects of agent oriented programming capable of serving numerous benefits like mobility, remote execution, autonomous control, goal oriented working etc over existing traditional frameworks.In this paper, various basic needs for execution of mobile agents, required programming languages for development of agents and many other fundamental to advanced features and solutions that mobile agent technology promises to resolve as it evolve to become the most prominent featured standard.

Platform for Execution of Mobile Agent
The mobile agent execution platform comprises of two fundamental things: mobile agents and agent runtime environment/ agency.For the purpose of migration over connected nodes agents need to initiate a request/call mechanism then execution environment is responsible to transfer that particular agent on an execution environment of next hop 4 .The execution environment is basically the software that executes as a middleware above the underlying operating system.This system in reality takes helps from interpreters and virtual machines to execute agent codes.Sometimes in this concept of marshaling is also used, for which the idea came into existence from stub and skeleton that are used in Remote Procedure Calling mechanism.The marshaling allows a server procedure to be called on client that is altogether a different machine.In mobile agent technology the concept of marshaling is called agent marshaling as the incoming and outgoing communication is based on agents and not just on message passing mechanism 5 .

Agent Marshaling
The process of marshalling involves acquisition of data and transforming them in suitable format that is understandable by current host.Data items like class objects, multiple values associated with a agent code cannot be propagated across the network.
For the purpose of transmission it is necessary to convert them into a pre-specified format of data representation like in binary form or stream of bits.The agent migrates to accomplish a task/goal or simply for monitoring of available resources 6 .During its migration it may suspends/deactivates its execution in current environment, save its current data state or execution state and restarts or resumes its execution from the previous point of suspension.The migration helps agents to move close to the host with information resources.This way they introduces a layer of abstraction because for the user it may seems like agent is accessing the information from local resources but in reality it has migrated to another host in the network and communicating back to the home server 7 .Based on this fact the migration of agent can happen in two ways:

Strong migration
This is the capability of mobile agent to transfer itself along with its business logic, execution state and data state.

Features within an Agent Environment
Agents are allowed on network nodes by use of simple mobile agent server on each and every node.This agent server captures the various states of agent during its migration, registers a new agent in its registry and also provides the security at some extent.The handling of mobile agent depending upon the client features like thin or thick client it maintains the various life-cycle methods of the various incoming and outgoing agents 9 .

Mobile Agent languages
Mobile agents showcase a novice paradigm for network computing and parallel processing.Mobile agents are the programming entities and that's why developers need programming languages for defining mobile agent.There is wide range of programming languages in which mobile agents can be developed and each of it requires their own agent server compatible to understand that language.Some agent programming languages are confined to research systems under supervised network conditions while others are used in commercial systems.

Agent Execution Management
Mobile agents require an execution environment to run and execute.All hosts willing to accept the agent needs to configure a mobile agent server, also called as agency or home server, for successful execution of mobile agents on them.This process is analogous to execution of processes on operating system.In the same way agency acts as operating environment for the type of mobile agents it is dealing with.In general, mobile agents are developed in various language so different execution environment is required based on the language used for development of agents 11 .Mobile agents will be allowed to execute on only those hosts in network that are capable of running the appropriate agent server for a particular type of agents.There is a need of such agent servers that can involve and allow the agents from different platforms developed in different language.The multi support of programming language within an agent execution environment is more needed in the multi agent system where multiple agents can interact, compete or collaborate for the goal assigned to them.So for successful execution of any agent, the agent server must support the semantics and syntaxes of that language in which agents are developed 12 .

Security
Security is the crucial part of any network system as the intercommunication happens frequently among the network nodes which may make security breaches and leaks.For most of mobile agent system security is an integral component of agency or agent server bur few agents are dependent on security features provided by programming language.The security manager available with the agency allows or disallows the outside access and nature of access of environment.This can be built within the language that a object will be permitted with special permission over the network or not.The various agent server serves with different security mechanism like Agent TCL provides administrator based security policies to interpret security checks, Telescript uses authority property which is need to be proved when agent migrates between regions, Java based agents use digital signature for authentication and many more 15 .
There exists three major issues while dealing with security of mobile agents: • Protecting host from malicious mobile agents • Protecting mobile agents from malicious hosts.

• Protecting mobile agents from other mobile agents
There are few possible solutions: • Allowing the agents based on security control mechanism while discarding or restricting the unauthorized access to resource without the server permission.

•
Provide authentication mechanism by use of digital signature.They allow execution system to acknowledge only those agents that posses verified certificate or signature.Agents may also contain the history of unauthenticated or authenticated machines they have migrated previously.

•
Encryption of an agent and its sensitive data on the agent server may also help to reduce security risks.

•
Agent server may allow an isolated execution of incoming mobile agents from other hosts.

•
Mobile agents must not be allowed to access the technical details of host and resource information until it is specified with proper credentials.

•
Monitoring or control mobile agents may be granted with open privileges to migrate or monitor the network hosts for any malicious activities.

•
Some agents may get denied with access or execution if their authentication fails.

•
The source of mobile agent may be verified based on the certificate or signature it carries to other hosts.

Mobility and Distribution
Code mobility structures for development of distributed applications can be categorized as client/ server (CS), remote evaluation (REV), code-ondemand (COD) and mobile agent (MA) methods: • The customer server approach is broadly utilized as a par t of conventional and modern dispersed frameworks.For instance the information code and execution stay settled at machine A while machine B asks for service from the server with same information contentions of the demand, the code and remaining information to give the administration are inhabitant inside machine B, as reaction machine B gives service asked by getting to computational assets on it, later on agent returns the execution state to machine A.

•
Agents based approach expect that the code and information facilitated by machine A gets migrated and relocates the information and code it needs on machine B, where code is executed.

•
In remote evaluation it is assumed that actual business logic lies with the client whereas the computational resource is available with the server.The business logic is sent to server for execution for which in return server gives computed results.

•
Code-on-Demand as the name states where data and code are called on client from only when needed.The complete execution and processing of business logic takes place on the processing elements of client.Examples are Java applets 16 .

Advantages of Mobile Agent
There are several advantages of mobile agent to develop and deploy multiple services not only in distributed environment but also in smart environments:

Minimized Cost of Communication
Agent oriented programming allows remote communication to appear as if it is happening locally.This creates a new level of abstraction and transparency for the user as the capability of mobile agents to move near to resourceful station and execute locally is completely hidden from the home server on which the agent has spawned its execution 17 .

Asynchronous Performance
An agent once migrated to the destination doesn't need to interact with its source computer.Though advanced agent structures provides the backtrack algorithm that can keep intimating the source about the current status of agent in a confined itinerary.Though it becomes difficult in case of huge internetworks like Internet.This facility of an agent allows remote processing even after the source is shut down.

Dynamic deployment of software
Mobile agents can decide destinations', codes and data that can be dynamically deployed there only while they are needed.It's done in computers whose computational resources are limited and are useful in smart environments.

Direct manipulation
They are locally executed on the computers it visits.By installing real time system based mobile agents network congestions can be delayed.Upcoming mobile agent systems are capable of dividing their loads to other agents reducing the network load while carrying various saved states of objects.Alsovarious system implements the recovery mechanism which sends the data after a time interval to the home server making the light weight migration for mobile agents 18 .

Mobile Agent Application Areas
Mobile agent technology is not just a canonical name for future distributed technologies but it is highly capable of supporting the traditional applications as well as distributed applications.Typical applications for mobile agent system may contain the following:

Remote iR
Most data has been managed in text format on dispersed machines.They require remote searching and indexing to open, read and write files.Mobile agents execute locally on the destination host.
Communication among agents and agencies may be reduced as agent has the business logic to filter information that their users need from databases 19 .

Network management
With mobility feature mobile agents can navigate to remote hosts and observe local resources.Adoption of agents in existing technologies simply eradicates the need of administration for mentoring multiple network activities like upgrading and many others.Network management has several advantages: • Transfer of mobile agent on source generates less network traffic than the transfer of raw data because the code comparatively less in size than the processed information.

•
It access functions of devices on the node easily it's locally executed on the node.

Computing Mobility
For processing of various tasks mobile agents make use of nodes local capabilities and resources.If an agent is willing to migrate to another node it must first send request to local agency.The agency grants the condition for mobile agent to successfully migrate over the networking nodes.The system can automatically store the moving agent a queue if the destination cannot be reached 20 .

Software Testing
Mobile agents can be used in development phase of software operations and mobile computing setting.
There are different testing methodologies for software like the code running on machines with mobility is called flying emulator.This kind of code executing within a machine depends on its application logic and services with a local area network.

Active networking
Mobile agent can be termed as an active packet in the terminology of active networks 21 .Basically two methodologies can be used for implementation of active networks: The first is active packet methodology which changes the destination address of host within the packets existing in current architecture

•
The another is active node approach which allows novice rules being dynamically executed at intermediary and terminal nodes 22 .

Active Documents
Mobile code technology is broadly utilized as a part of module modules for rich web applications (RIA) in web programs for instance java applet; this gives us intuitive client encounters in light of virtual machines.Portable specialist based modules for RIA can normally convey the two codes and state at customer PCs for instance mobi Doc which fabricates versatile parts reports where archives can be powerfully made out of versatile operator based segments.

Cloud Computing
Load balancing is a process of relocation mechanism that allows appropriate migration of processes loaded on single node.The use of versatile operator advances the use of load balancing that helps in migration of stack frame of program.In a disseminated framework for instance distributed computing framework, PCs have a tendency to be various and their computational burdens are unique.PCs may likewise be powerfully added to or expelled from the framework.Since versatile specialists can move to different PCs, errands that are actualized as portable operators can be migrated at reasonable PCs whose processors can execute the assignments 23 .

Operational Ambient Computing using Mobile Agents
This mobile agent's application is useful in building and operational ambient computing environment.

Middleware for Ambient Computing
This comprises of machines having constrained assets, for example, confined levels of CPU and measure of memory space.Mobile agents help in preserving this constrained asset since agent should be available at the machine.Ambient computing environment are utilized as social infrastructure which underpins enormous clients and additionally it can bolster a decentralized framework for ambient computing environment 24 .

Context-Aware Mobile Agent
Some exploration projects also endeavor to relocate agents among connected nodes as per genuine changes in surroundings.Fractional and partial framework supports encasing of mobile agent and gives an extension between development of physical entities and development of mobile agents to help and explain the elements utilizing current context.For instance RFID innovation which ties physical elements with mobile agents and navigate agents to stationary or portable clients close to the spots to which the agents are located.

Personal Assistant Agents
Agents are frequently used to aid true and additionally cyberspaces where their help ought to be given in customized frame as indicated by their client's prerequisites 25 .Mobile Agents can keep up client references and experiences inside them and relocate at adjacent machines to cooperate with clients immediately amongst client and agents.

Conclusion
Agent oriented programming is becoming a promising paradigm in computing, mobile systems and distributed systems.are only a usage strategies utilized as a part of the advancement and task of disseminated frameworks including savvy condition as other programming operators, including multispecialists which are not objectives themselves but rather devices for displaying and dealing with our social orders and frameworks.Consequently future portable specialists will be utilized as fundamental advances in dispersed figuring or surrounding processing.Encompassing processing situations end up social foundation in building and urban areas and with speculation of versatile operators they can go about as helpful apparatus for building and working huge scale surrounding figuring conditions which comprises of huge clients and various gadgets.This new face of object oriented programming is supporting the transition of objects becoming agents and agents becoming smart agents with the development of new communication standards and ubiquitous execution platforms.
10atures that helps and needed in development of mobile agents like multithreading, intermediate byte codes, extended support of communication libraries, and many more.This has allowed developers to come up with Java based environment for development of mobile agents like IBM Aglets, Odyssey, Voyager etc.There exists a few programming languages specially developed for agents like Telescript and Obliq10.Programming languages allowing development of mobile agents must possess features as under: General programming languages like Java can also be used to develop mobile agents by extending special libraries in development environment.Java possess most of required