Mobile agent system and method for controlling a mobile agent system

The present invention relates to a mobile agent system (1) for a communication unit (5, 6, 7) of a communication system, with at least one mobile agent (3) comprising an allocated agent policy (8), in which migration parameters of the respective mobile agent (3) are defined, migration control means (16) for controlling the migration behavior of a mobile agent (3) in the communication system on the basis of a current migration policy of the mobile agent (3) and current parameters of the communication system. The present invention further relates to a method for controlling such a mobile agent system (1) and allows a flexible way of controlling the migration behavior of mobile agents (3) depending on system parameters.

The present invention relates to a mobile agent system for a communication unit of a communication system. The present invention further relates to a method for controlling a mobile agent system in a communication unit of a communication system. Particularly, the communication system can be a wireless telecommunication system and/or a mobile computing system.

Mobile communication, such as wireless telecommunication or mobile computing, is concerned with providing networked services over wireless networks to mobile users. Mobile agents are a computing paradigm enabling the transfer of an executing piece of code or software from one node of the computer/communication network to another node. In the U.S. Pat. No. 5,603,031, a basic approach to mobile agents is described. The basic operation of mobile agent systems is schematically shown in FIG.1. An agent system1which is implemented in a node of a communication system, e. g. a mobile station or a base station of a wireless telecommunication system or a notebook of a mobile computing system, offers mobile agents3an execution environment, which is called a place4. Mobile agents3are pieces of executing software, which can migrate from one agent system1to another agent system1. On all places4of the different agent systems1, the mobile agents3can access local services offered by a so-called system agent2, which is a local piece of executing software.

In the current state of the art mobile agents are migrating between computing nodes of the internet. Because the communication costs in the internet are very low and the available bandwidth is sufficient, the migration step does not cause any problems and as many migration steps as necessary can be performed without significant limitation. However, the communication costs over wireless communication links are high and the available bandwidth is low. The future communication systems will consist of combinations of wireless telecommunication, mobile computing and so on, so that the available quality of service will vary on a large scale as users will move back and forth between high-speed wireless networks and costly low-speed cellular networks.

The object of the present invention is therefore to provide a mobile agent system for a communication unit of a communication system and a method for controlling a mobile agent system in a communication unit of a communication system, which enable to control the migration of mobile agents in an effective and flexible way.

This object is solved by a mobile agent system for a communication unit of a communication system, with at least one mobile agent comprising an allocated agent policy, in which migration parameters of the respective mobile agent are defined, and migration control means for controlling the migration behavior of a mobile agent in the communication system on the basis of a current migration policy of the mobile agent and current parameters of the communication system.

The above object is further solved by a method for controlling a mobile agent system in a communication unit of a communication system, whereby the mobile agent system includes at least one mobile agent comprising an allocated agent policy, in which migration parameters of the respective mobile agent are defined, and the migration behavior of a mobile agent in the communication system is controlled on the basis of a current migration policy of the mobile agent and current parameters of the communication system.

The communication unit might e. g. be a base station or a mobile station of a wireless telecommunication system, a network server or a personal computer of a computing. system. The current parameters of the communication system are e. g. the quality of service information of the current network. The mobile agent migration is controlled so that the mobile agents only migrate if the available current parameters of the communication system match the requirements of the current migration policy of the mobile agent wishing to migrate. The present invention enables a control of the mobile agent migration, which is flexible and adaptable to different requirements.

Advantageously, the mobile agent system according to the present invention further comprises policy managing means for storing a system policy, in which migration behavior parameters for mobile agents of the mobile agent system are defined and policy control means for selecting the current migration policy of a mobile agent on the basis of the allocated agent policy of the mobile agent and the system policy. The system policy can be stored in a system policy data base. Advantageously, the data base comprises a default system policy, in which default migration behavior parameters for all agents in the mobile agent system are defined, and one or more agent type specific policies, whereby the system policy is selected from the default system policy and the corresponding agent type specific policies. Further, the agent policy allocated to a mobile agent can be selected from a default agent policy and a per-migration policy.

Advantageously, the policy control means selects the current migration policy of a mobile agent depending on the type of the provided policies. The provided policies are thereby the allocated agent policy, the system policy and/or the corresponding agent type specific policy. Alternatively, the policy control means selects the current migration policy of a mobile agent depending on additional priority parameters of the provided policies. In an further alternative, the policy control means selects the current migration policy of a mobile agent depending on weighted parameters of the provided policies. Further, a combination of the three above-described ways of selecting the current migration policy can be used.

The mobile agent system according to the present invention can further comprise user input means for inputting a migration policy which is taken as the current migration policy for a mobile agent, overwriting the current migration policy determined by the policy control means. After performing a migration on the basis of the user defined policy, said policy control means always returns to a normal mode for the next migration policy to be selected. Thus, in case that a migration policy is input, this input migration policy overrules the allocated policy, the system policy and/or the agent type specific policy. Alternatively or in combination thereto, the user input means can be provided for inputting a migration mode for the mobile agent system, whereby said input migration mode defines a particular migration policy which is kept by said policy control means until a new migration mode is input.

The mobile agent system according to the present invention can further comprise user operation means for changing the allocated agent policy of a mobile agent, the system policy and/or an agent type specific policy. Further, an application programming interface connected to the migration control means retrieves the communication system parameters, as e. g. the quality of service information.

The migration control means advantageously decides on the basis of a comparison of the current migration policy of a mobile agent and the current parameters of the communication system, if the migration of the mobile agent is allowed, suspended or rejected.

FIG. 1shows, as stated above, in a general way how mobile agents are used. An agent system1, which is implemented in a node of a communication system, provides an execution environment, a so-called place4, for mobile agents3. A mobile agent is a piece of software, which has one or more execution threads attached to it. It is executed in a dedicated execution environment, which is called a place4, that controls the actions performed by the mobile agent very tightly. The place4is managed by its agent system1. The mobile agents3can migrate from one agent system1to another agent system1, which is implemented in a different node of the communication system. On all places4, the mobile agents3can access local services offered by so-called system agents2, which are local pieces of executing software.

FIG. 2shows the basic structure of a wireless telecommunication system comprising mobile devices5, base stations or gateways6and network servers7. The network servers7and the base stations6are linked by a wired connection, whereas the mobile devices5and the base stations6communicate by means of a wireless link. The agent system1according to the present invention can be implemented in each of the three different type of nodes of the shown telecommunication system, namely a mobile device5, a base station6or a network server7.

In the migration process, e. g. if a mobile agent3is migrating from a mobile device5to a base station6, the mobile agent is serialized on the respective place4, and the state and the code of the mobile agent3are transferred to the base station6. There the mobile agent3is recreated from the state and the code. Thereafter, the execution of the mobile agent3can continue.

The migration process is thereby controlled on the basis of a current migration policy of a mobile agent3. The current migration policy thereby defines the way the agent system1checks the current network parameters and determines the migration behavior of a mobile agent3. InFIG. 3, the way of defining and computing a current migration policy of a mobile agent3is shown. The behavior of a migrating mobile agent3is influenced by different principals. The system administrator defines the system policy11, which can be a default system policy12or an agent type policy13. The default system policy12comprises the default behavior parameters for all mobile agents3of the agent system1. In case that the mobile agents3used in an agent system1can be classified into different agent types, an agent type policy13can be defined, in which different type specific policies for the different specific types of mobile agents are defined. In this case, the agent type policy13normally overrules the default system policy12. With the agent type policies, different system behaviors can be associated. For example, most agent systems1only differentiate between mobile and stationary agents. Mobile agents are allowed to roam in the network and are tightly controlled. Stationary agents are supplied by the agent system and might access local system resources. Provision of agent type specific policies13allows classifying a mobile agent3not only according to its basic characteristics, which are defined in the default system policy12, but also according to other properties and enables thus a more flexible and adaptable control of the migration process of a mobile agent3.

During the policy determination, the agent system computes the system policy11valid for the mobile agent3who wants to migrate on the basis of the default system policy12and the agent type policy13.

Every mobile agent3has an allocated agent policy8, which is either a default agent policy10or a Per-Migration policy9. The Per-Migration policy9is only valid for the next migration step. A migrating mobile agent3always carries its allocated agent policy8. The agent policy8defines parameters of the appropriate mobile agent properties in the agent system1. Usually, the Per-Migration policy9overrules the default agent policy10in the next migration step. The conflict resolution required to decide, which of the competing system policy11and agent policy8are selected to become the current migration policy can be solved in different ways, which are explained below.

Further, the current user can input user commands14to influence the current migration policy. Either the policy resulting from the conflict resolution between the system policy11and the agent policy8or the user command determines the migration behavior15, which is defined by the current migration policy. Usually, a user command defining the current migration policy directly overrules the policy emerging from the conflict resolution between the system policy11and the agent policy8.

InFIG. 4, a system policy data base is shown, which is defined by an system administrator and stored in the agent system. The system policy data base comprises a default system policy12and agent type policies13, from which the system policy11is chosen. InFIG. 5, an agent system1with an agent place4is shown. A mobile agent3in the place4has its allocated agent policy8stored in the agent properties. The parameters describing the properties of the respective mobile agent3are e. g. its owner, its resource constraints etc. The properties can thereby be stored in an agent property data base of the agent system11. One of the properties stored in the agent property data base can be the agent policy8.

In case that the mobile agent3migrates to another agent system1, it takes its agent properties along to the other agent system. The agent policy8being a part of the agent properties can be changed by a set operation performed e. g. by an operator. A set operation is performed by a mobile agent3during execution to retrieve parameters needed for processing.

A policy is described through its type, its name and its set of parameters (<policySpec>) defining the intended behavior of the system. The <policySpec> defines a set of policy parameters, that will be checked when the migration of the mobile agent3shall actually be performed.

The parameters of the policies are key/value pairs. The parameters can e. g. be divided into several classes, namely threshold parameters, action parameters and preference parameters. The threshold parameters define limits on the current parameters of the communication system, e. g. network quality of service parameters, which the communication system must meet to allow a migration of a mobile agent3. The action parameters define parameters for certain actions which the agent system1might perform to enforce this particular policy, e. g. action parameters define the timeout values if the mobile agent3has to wait for migration, allow the agent system1to dial, etc. The preference parameters define preferences of the user in certain situations, e. g. when to decide between different options. The following table gives an example of possible policy parameters:

Name of ParameterDescriptionMinNetworkSpeedMinimum Speed of the Network required to allowmigration.MaxTransferTimeMaximum Time for Transferring the AgentMaxCostPerMinMaximum Cost of the Network usage per minute(in the case of connection oriented networks)MaxCostPerByteMaximum Cost per Byte(in the case of packet oriented networks)SuspendTimeoutTimeout value in case the agent will be suspendeddoNotSuspendIf the migration policy does not allow the agentto migrate, the agent will not be suspended,but the attempt will be rejected.

InFIG. 6, the detailed configuration of an agent system1according to the present invention is shown. The agent system1is implemented in a node of a communication system and comprises a place4, which is an execution environment for mobile agents3. The agent system1comprises a migration control means16connected to a migration means19and a suspend means20. The migration control means16is further connected to a policy control means18and to an application programming interface23. The policy control means18is connected to a policy managing means17. The agent policy8of a mobile agent3of the agent system I is e. g. stored together with other agent properties in the policy control means18. In the policy managing means17, the system policy data base for the system policy11is stored. The system policy.11in the policy managing means17can be changed by a user through a user operation means22connected to the policy managing means17.

The migration control means16controls the migration behavior of a mobile agent3on the basis of a current migration policy of the mobile agent3and current parameters of the communication system retrieved over the application programming interface23. Thereby, the current migration policy of the mobile agent3is determined on the basis of the agent policy8of the mobile agent3and the system policy11stored in the policy managing means17. The policy control means18thereby performs a conflict processing to select a respective system policy11or agent policy8as the current migration policy. This selected current migration policy can be overruled by a direct input from a user over the user input means21connected to the policy control means18. Over the user input means21, either a migration policy which is taken as the current migration policy for the mobile agent3or a migration mode for the mobile agent system1can be input. In case that a migration policy as the current migration policy is input through the user input means21, the policy control means18always returns to a normal mode for the next migration policy to be selected, whereas, in case that a migration mode is input, the migration mode is kept by said policy control means18until a new migration mode is determined.

The selected current migration policy is supplied from the policy control means18to the migration control means16, which executes the resulting migration behavior by comparing the respective parameters of the resulting current migration policy with the current parameters of the communication system to determine, if a mobile agent3may migrate or not. If the mobile agent3is allowed to migrate, the migration means18transfers the mobile agent3to another agent system1. If the mobile agent3is not or not yet allowed to migrate, the suspend means20suspends the migration. In case that the migration control means16rejects the migration attempt, the mobile agent3is restarted and the failure is signaled to the mobile agent3. In case that the mobile agent3is allowed to migrate, the migration means19might dial into the communication system and set up a connection for the transmission of the mobile agent3, e. g. from a mobile device5to a base station6as shown in FIG.2.

In the following, different mechanisms for the conflict resolution upon the selection of a current policy from the system policy11or the agent policy8in the policy control means18is described. Since the different policies are defined by several entities, e. g. a current user, a system administrator or the mobile agent3itself, a conflict resolution scheme is required if two policies are conflicting. This conflict resolution is performed in the policy control means18, which takes the conflicting policies, e. g. the system policy11from the policy managing means17and the agent policy8from the mobile agent3, and determines the resulting policy. For the conflict resolution, different schemes are possible. Firstly, the policy control means18can select the current migration policy depending on the type of the provided policies. In this so-called source emphasis strategy, the policy control means18will simply emphasize a specific source of the policy, e. g. the agent policy8or the system policy11. Secondly, the policy control means18may select the current migration policy depending on additional priority parameters of the provided policies. In this so-called priority strategy, the different policies comprise additional priority parameters defining the respective priority of the policy. The policy control means18determines the current policy according to the defined priorities. Thirdly, the policy control means18can select the current migration policy depending on weighting parameters of the provided policies. In this case, all possible settings of the policies are weighted. The policy control means18selects the policy with the highest weight. The weighting function can be computed such that e. g. more cost-effective strategies gain higher weights. Further, the policy control means18can combine several policies by combining the policy parameters of the conflicting policies. In this case, a conflict resolution must be performed for each individual parameter.

By means of the user input means21connected to the policy control means18, a current user might overrule the current policy selected by the policy control means18by defining the particular actions or switching to a specific modus. Actions defer from setting a modus in the sense that an action is performed and the agent system returns to the normal modus after the action, namely the migration of a particular mobile agent3, is terminated. If a user selects a specific modus, the modus will remain selected until the user switches to another modus. Actions will always terminate a special modus and thereafter, the policy control means18returns to the normal modus.

Possible actions are e. g. an allow migration action, a stop migration action or an enforce migration action. At an allow migration action, all waiting mobile agents3are migrated to the corresponding remote nodes. Further agent migration attempts will be handled using the current migration policy determined by the policy control means18. At a stop migration action, all migrations are stopped and no other migrations are performed during a predetermined time period. At an enforce migration action, all mobile agents3are forced to leave the current agent system1, which will be enforced by the policy control means18and the migration control means16.

As example, a mobile agent3is assumed, which has an allocated default system policy12comprising the parameters of a minimum network speed of 9,6 Kbit, maximum costs per minute of 1,-DM and suspension of timeout of 30 minutes. In this case, the migration control means16will check if the network speed of the current available network is equal or higher than 9,6 Kbit (which is enough for GSM), and if the costs per minute are not higher than 1,-DM per minute (which is usually the case after 6 p.m.). If one or both of the requirements cannot be achieved, the agent will be suspended. During this time, the conditions will be reevaluated over the application program interface23regularly until the agent is allowed to migrate. The suspension of time-out parameter defines that the mobile agent3will only be suspended for 30 minutes. After that period the migration attempt is rejected.

The present invention therefore provides a mobile agent system, which can adapt the migration operation to the current parameters of the communication system, thus saving expensive communication costs particularly over wireless networks. Further, the proposed policy mechanism allows a flexible specification of the migration behavior. The proposed policy determination and conflict resolution mechanism allow a definition and enforcement of policies by the system administrator and the mobile agent itself. Further, the proposed overruling mechanism allows a current user of the communication unit to overrule the current migration policy settings, thus giving him full control over the behavior of the agent system.