A Generic Mobile Agent Framework
for Ambient Intelligence
Yung-Chuan Lee, Elham S.Khorasani, Shahram Rahimi, Bidyut Gupta
Southern Illinois University
Department of Computer Science
Carbondale, IL 62901, USA
{ylee, elhams, rahimi, bidyut}@cs.siu.edu
learning, parallel and distributed computing domains [12]. Both
traditional client-server approach and mobile agent technology are
capable of being applied for implementation of AmI environment.
However, multi-agent systems (MAS) in nature is superior fit and
shares many of its characteristics with AmI environments [2].
MAS facilitates design and development of AmI environment by
providing features such as autonomous reasoning, learning,
mobility, and collaboration among others. Agents can migrate into
different hosts to perform computation, while communicate with
other agents, and carry the results back to its origin. Many believe
that MAS is the Holy Grail to completely reveal the promising
future of AmI environment [4][11][12][13][15].
ABSTRACT
The purpose of this paper is to introduce an innovative framework
for implementation of ambient intelligence (AmI) environments.
Compared to the existing state-of-the-art approaches, this
framework creates a more decentralized and distributed AmI
environment. In addition, the proposed approach is not limited to
one specific domain, unlike many others. The openness of the
presented architecture allows it to support a variety of devices
ranged from small-embedded sensors to complex computing
facilities. Finally, given that this approach is formulated based on
multi-agent standard concepts, it can be easily implemented as
add-on for existing software agent platforms to achieve rapid
deployment. Implications for the development of this framework
and future directions are discussed.
While a few MAS-base AmI architectures have been proposed,
none has appropriately evaluated the integrity and correctness of
its model. Because of the dynamicity posed by AmI environment
and the complexity of the criteria of migrations and
communications among agents and hosts, it is necessary for the
models to be verifiable. Software verification employs formal
methods such as -Calculus [9][10] that are mathematical
provable formulations to perform program analysis and model
checking. It provides a mechanism to warrant the correctness of a
program and enhance the reliability at each stage of software life
cycle [14][7]. With the help of formal methods, a dynamic and
complex system can be mathematically formulated which can then
be analyzed to verify its correctness. Thus, it is critical to
incorporate a verification procedure as part of the AmI framework
to offer the above benefits to both system developers and regular
users.
Categories and Subject Descriptors
I.2.11 [Distributed Artificial Intelligence]: Intelligent agents and
Multiagent systems
General Terms
Management, Design.
1. INTRODUCTION
Ambient Intelligence (AmI) implies a ubiquitous environment of
computing, networking, and interfacing that is aware of and
reactive to the presence of people. It provides personalized
knowledge and services to each individual by intelligently
interacting with the environment and the individuals [5] [6]. With
the advance of mobile technology, the technology disappears into
our surroundings and only the user interface remains perceivable.
In an ambient intelligence environment, people are supported in
carrying out their activities in an easy and natural way, using
intelligence that is embedded in the environment. By utilizing
sensors and other small devices, AmI enabled systems can retrieve
profile of a user and provide relevant information and services to
her, and even further, intelligently learn from the interactions with
the user to refine her profile.
This work presents a framework that utilizes mobile agents for
ambient intelligence in a distributed ubiquitous environment to
provide users with personalized knowledge and intelligent
interactions as well as to sustain expeditious performance under
dynamic resource demands. In this paper, general formulation
using -Calculus is included to model the proposed system and to
construct the framework for future system verification
implementation. Some important features such as integrity
verification on a given system, communication verification among
agents and performance verification of giving scenario will be
included in the initial implementation; however, detailed
formulations of those features are out of the scope of this paper
and will be elaborated in forthcoming works.
AmI environment presents a mixed combination of autonomy,
Permission to make digital or hard copies of all or part of this work for
personal or classroom use is granted without fee provided that copies are
not made or distributed for profit or commercial advantage and that
copies bear this notice and the full citation on the first page. To copy
otherwise, or republish, to post on servers or to redistribute to lists,
requires prior specific permission and/or a fee.
SAC’08, March 16-20, 2008, Fortaleza, Ceará, Brazil.
Copyright 2008 ACM 978-1-59593-753-7/08/0003…$5.00.
1.1 The State of the Art Approaches
There are several studies related to utilization of mobile agents in
ambient intelligent environment. Satoh employed RFID and
software agents, creating location-aware service to provide
personalized information to users [13]. Each user is assumed to
1866
carry a RFID tag and can be uniquely identified by RFID sensors
in each equipped location server. According to the user profile,
the location server then assigns the user to a host within its
coverage area. Then a mobile agent is spawned to assist the user
and moves from one host to another to “follow” the user.
like Pi . If I = Φ , P actually behaves like 0. Here λi denotes
any actions that could take place in P (such as τ , y(x) , and
so on).
•
As another example, a similar approach was developed by
AMILAB research group to apply software agents in attempting to
create an AmI manufacturing environment [11]. In this approach,
AMICO architecture is formulated to interact intelligently with
users to provide user-specified context information and machine
functionalities. Furthermore, Yong and et al. proposed a contextaware AmI application system based on a multi-agent architecture
[15].
yx.P : Agent P sends free name x out along channel y and
then behaves like P.
Name x is said to be free if it is not bound to agent P. In the same
way, if x is bound to P (also say private to P), that means x can
only used inside of P. The following example could best explain
the relationship between the free name and the bound name.
Suppose a system consists of agent P and Q. The name x in P is
free while name y in P is not free. Q contains free name x and
bound name y. Here the free name x in P and the free name x in Q
are the same one, while the bound name y in P and the bound
name y in Q are different although they have the same name.
Several approaches are centered at facilitating people in daily
tasks. Kidd and et al. presented “the aware home project” to study
how ubiquitous computing could assist people in daily life [8].
Because of the different characteristics of office and home
environments, where activities in office environment are more
goal oriented while in home environment are more flexible, the
project concentrated on developing a methodology that discovers
useful applications from the latest advances for each application.
Hagras and et al. implemented an ambient-intelligence
environment, iDorm, using embedded sensors, actuators, and
software agents [4]. Users can interact with the agents in the
embedded controller, robots or mobile devices to control the
environment. The system evolves from those interactions to
provide more precise user-friendly living environment.
•
y ( x).P : Agent P sends bound name x out along channel y
and then behaves like P.
•
y ( x).P : Agent P receives name x along channel y and then
behaves like P.
•
•
τ .P : ( τ is a silent prefix.) τ .P performs the silent action τ
and then behaves like P.
P1 | P2 is a composition. The agent P has P1 and P2
executing in parallel. P1 and P2 may behave independently
or they may interact with each other. E.g. if P1 = τ 1.P1 and
The current state of the art approaches are domain-specific and
cannot be flexibly applied to other domains. Moreover, one of the
mentioned approaches have addressed the performance of the
system or load balancing among agencies in an AmI environment.
Because of the autonomy of the agents and the dynamicity of the
environment, any approach should take the performance criteria
into consideration to provide users with responsive services.
Furthermore, the complexity of such architectures highlights the
importance of rigorous verification of the integrity of the system.
Hence, we propose a verifiable generic agent-based AmI system
with concentrations on optimized communication costs and load
balancing among agents and agencies.
•
The sum P1 + P2 means either P1 or P2 will be exercised,
but can not be both.
•
( x) P is a restriction action. Agent P does not change
except for that x in P becomes private to P. That means any
outside communication through channel x will be
prohibited.
1.2 -Calculus Overview
•
A match [x=y]P
P2 = τ 2 .P2 , then P1 and P2 will behave independently.
Otherwise, if P1 = y ( x ).P1 and P2 = y ( x ).P2 , then P1 will
send x to P2 through channel y.
Since the proposed system is modeled in -Calculus, this section
provides a brief overview to the main entities of -Calculus. The
interested reader is referred to [10][11] for more information on
pi-calculus syntax and reduction rules.
If x = y, this agent behaves like P, otherwise like 0.
•
names occurring in P.
In -Calculus, two main entities are specified, “names” and
“processes” (or “agents”). “Name” is defined as a channels or a
value that can be transferred by a channel. We follow the naming
rule and syntax in [10] in which u, v, w, x, y, z range over names
and A, B, C, ... range over process (agent) identifiers.
•
i∈I
channel x and x(U ) means receive name or process through
channel x.
λi .Pi | yx.P | y(x).P | x(K ) | x(U ) | y(x).P |
τ .P | P1 | P2 | P1 + P2 |(x)P | [ x = y]P | A(y1 ,...,y n ) | !P
•
•
Based on the above syntax, different components of the proposed
framework are defined.
0 means agent P does not do anything.
i∈I
! P is called replication and can be thought of as an infinite
composition P | P | P | ... , i.e. P = P |! P .
In addition to the basic -Calculus, higher-order -Calculus has
the ability to send and receive process (agent). So in higher-order
-Calculus, x(K ) means send a name or process K through
The syntax of process is defined as follows:
P ::= 0 |
A( y1 ,..., yn ) is an agent identifier where y1 ,..., yn are free
λi .Pi is called summation. P will behave as either one of
λi .Pi where i ∈ I , but not more than one, and then behaves
1867
environment to perform various services and computation for its
owner. Additionally, it can use the environmental information
which is provided by the agency.
2. PROPOSED FRAMEWORK
Our framework for ambient environment allows users to obtain
their personalized information such as their profile, preferences,
likings and habits, while having the minimum interaction with the
environment. As the user moves, this information will be available
to her at the new location. The framework presented here aims to
be flexible, high performance and easy to implement.
Figure 2 depicts the internal structure of a mobile device. A
mobile device (MDi) consists of registration module (MD_REGi),
administration module (ADMINi), load-balancing module (LBi),
learning module (LEARNi) and agent database (MD_DBi) and
and be formulated as following:
Figure 1 illustrates the overview of the framework. The system is
formed from multiple geographically distributed environments.
Each environment may provide different services to users such as
banking, shopping, etc. Each environment consists of three main
components: (1) mobile devices (2) hosts or agencies and (3)
directory service center (DSC). Different environments are
connected through their directory service centers. In the following
sections, we describe each of the elements in figure 1 in more
details. As mentioned before we model our ambient framework
using higher order -Calculus in order to provide mathematical
infrastructure for evaluation and verification of the system. More
specifically, an environment is a cluster consists of one DSC,
multiple mobile devices and multiple hosts and can be formulated
as following.
MD i = MD _ REG i | ADMIN i | LEARN i | LB i | MD _DB i
Figure 2. Mobile device structure
ENVIRONMENT = DSC | MD1 | ... | MDn | HOST1 | ... | HOSTk
Registration module (MD_REGi) is responsible for registering the
mobile device with new environments as user goes from one
environment to another one. Whenever a user enters to a new
environment, her mobile device submits its ID, the physical
network adapter address, to the DSC of the environment. DSC
then decides whether to accept or reject the mobile device
registration request due to the security considerations.
Where DSC is the Directory Service Center, MD1…MDn
represents mobile devices and HOST1…HOSTk indicates different
host/agencies in the environment.
MD _ REG i = υ (x,id )(md (x ).x (id )).0
Where md is a communication channel between MD _ REG i and
DSC.
Mobile device acts as a master agent. It can create numerous
mobile agents and dispatches them to different hosts. The
administrative module ( ADMIN i ) is responsible for creating and
keeping track of the mobile agents that belong to the mobile
device and reside in different agencies. This module consists of
the following processes:
ADMIN i = MERGE i | TERMINATE i | INQUIRY i | RETREIVE i | UPDATE i
•
Figure 1. Overview of proposed framework
2.1 Mobile Device
For simplicity we assumed that each user carries at least one
computing device such as tablet PCs, PDAs, cell phones,
notebooks or even wearable. User carries these portable devices to
store her personalized information as well as to communicate with
the environment over the wireless media. We refer to these
portable devices as mobile devices. These devices are dedicated to
a single person; therefore, the user is responsible for the security
of her personalized information which is stored in her mobile
device. Due to the limited capabilities of the portable devices in
terms of CPU power, amount of memory, and input/output
facilities, mobile agent technology is employed. The mobile agent
can merge into a suitable host (also called agency) in an
MERGE: This process creates a mobile agent and sends
its requirements to DSC through channel a. These
requirements specify agency capabilities that are
needed by mobile agent to perform its services. If the
request was approved, DSC sends back a list of
candidate hosts (h1,h2,…,hm) that fulfill the
requirements. This list contains the agency’s network
address and other necessary information. MERGE
process then sends the list of candidate hosts to the
load balancing module ( LB i) through channel ad and
receives the address of the most appropriate host (hopt)
to which the mobile agent immigrates.
MERGE i = υ (AGENT,req,c )(τ create .a(c ).c(req ).
c(h1 ,...,h m ).ad (c ).c(h1 ,...,h m ).c(h opt ).
h opt (AGENT )).MERGE i
1868
where
τ creat
MD _ LB i = (ad(c).c(h1 ,h 2 ,...,h m ).(h 1 m.h1 (resp1 )|
is the internal action for creating AGENT;
h 2 m.h 2 (resp 2 )| ...| h m m.h m (resp m )).τ opt .c(h opt )).MD _ LB i
req is the host capabilities needed by AGENT, which is
sent to DSC along the private channel c. h1 ,..., hm is the
list of the hosts received from DSC and sent to LBi
module. h is the preferred host sent back by LB i for
migrating agent.
•
Where hopt is the selected host for the agent’s migration and τ opt
is the internal action for computing the underutilized host based
on the response time and process load.
The user profile as well as hosts and agents’ information are
stored in the database of the mobile device. Users are responsible
for updating their sensitive information,
such as
username/password, credit card information and etc. explicitly
and are responsible for the security of this information. The other
information of the user profile, such as preferences and habits, are
automatically updated by learning module, based on user’s
interactions with the environment. The learning module
concentrates on the behavior of the user and employs computing
with words and gesture recognition methodologies to achieve its
objectives. Because the complexity of learning cannot be fully
comprehended within few paragraphs and the main purpose of
this paper is to sketch the blueprint of the framework, details on
learning module will be included in an upcoming paper.
RETREIVE: This process retrieves the mobile agent
from the environment to the mobile device. This
includes retrieving the current address of the mobile
agent from the agent database and sending a ret signal
to the agent and receiving the agent along a private
channel (c).
RETREIVEi = ν (c)(h i (c).cret.c( AGENT ).RETRIEVEi
Where hi is the current address of the Agent.
•
INQUIRY: This process enquiries the mobile agent
about the completeness of its current task, by sending
inq signal.
•
TERMINATE: This process sends termination signal,
term, to the mobile agent to cease it. After sending the
termination signal, the record of this mobile agent
should be deleted from the mobile device database.
2.2 Host/Agency
The agencies provide the facilities for the mobile agents to be
executed and to perform various services for their owners. Java
Application Development Framework (JADE) [1] is the platform
of the choice to provide the runtime environment for mobile
agents and the agencies to execute. Figure 3 illustrates the host’s
structure. It consists of user-history database (HOST_DBi),
registration module (HOST_REGi), information module
(INFORMATIONi) and JADE system (AGENT_EXECi) and is
modeled as follows:
j
TERMINATE i = ag i term.TERMINATE i
j
INQUIRYi = ag i inq.ag i (res).INQUIRYi
AGENTi j = ag ij (m ).([m = term]τ term .0 |
j
[m = inq]ag i (res).AGENTi j )
Where ag
j
i
HOSTi = HOST _ REG i | AGENT _ EXEC i | INFORMATION i | HOST _ DB i
is the channel of communicate between the
mobile device (MDi) and AGENT i j , τ term is the internal
action for terminating the agent and res is the result of
inquiry.
•
UPDATE: This process updates agents’ list in the
database of the mobile device. For each mobile agent
that belongs to the mobile device, there exists a record
in the database that contains the mobile agent’s ID and
its current address. If the mobile agent migrates from
one host to another, it will send its new address to the
mobile device and UPDATE process updates the record
of this mobile agent in the database.
Figure 3. Host/agency structure
The registration module (HOST_REGi) registers the host with the
directory service center. It sends a registry request to DSC that
contains the agency’s network address and its device profile.
The load balancing module ( LB i ) is responsible for spreading the
communication and computation loads among the hosts in the
environment to get close-optimal utilization and minimum
computation and communication delay. Whenever the admin
module creates a mobile agent, it forwards the list of the candidate
hosts (h1,h2,…,hm) for that mobile agent to the load-balancing
module through the channel (ad). The load balancing module then
sends a message (m) to each host (HOSTi) through channel (hi) in
the list to obtain the hosts’ resource utilization and to determine
the response time ( resp i ) of each one of them. It estimates the
HOST _ REGi = ν (b)h(b).b(prf )
Where hi is the channel between HOSTi and DSC and prf is the
device profile.
AGENT_EXECi process receives and executes agents ( τ exec ). It
can also return back the agent to its mobile device upon receiving
the ret signal.
cost of migrating the agent to each of these hosts and provides the
most underutilized one to the administrator module.
AGENT _ EXEC i =!(h i (AGENT ).τ exec | h i (c ).c(m ).[m = ret]cAGENT )
1869
When a mobile device communicates with an agency, either by
dispatching an agent to the agency or by remote method
invocation (RMI), the agency records the user history in the user
history DB. The information update module stores and updates
the user’s history according to the user activities. This history
could include the user interaction with the agency, or in the case
of agent migration, it could be the result of the execution of the
mobile agent. After migration, the agency can request the mobile
device for the summary of the agent execution results and update
the user’s history based on this information. The user can decide
whether to provide this information to the agencies or not, by
configuring its mobile device.
The communication module manages the communication among
the mobile agents as well as the communication between the
mobile device and the hosts. If the mobile device asks for a
service that is not provided by a host in the same environment
then DSC broadcasts a message to DSCs in other environments to
obtain the network address of a host that provides such a service.
It then forwards the network address of that agency to the mobile
device so that the mobile device can communicate directly with
the agency.
The mobile agents’ communication is more complicated since
their network addresses change upon each migration. Our
proposed approach employs hierarchical methodology for mobile
agent communication in our framework. The proposed framework
benefits from a two-level hierarchy for tracking agent locations.
Figure 5 demonstrates this hierarchy. Each mobile agent belongs
to a mobile device. Upon migration, the agent notifies its mobile
device regarding its new location. The directory service center
stores the network address of all mobile devices that are
registered. Each mobile agent is associated with a unique ID. This
ID consists of two parts: (1) its master-agent-ID that shows to
which mobile device this agent belongs, and (2) the agent-ID. As
described earlier the mobile device acts as a master agent and
keeps track of the location of its agents. And the directory service
center records the network addresses of all mobile devices in the
environment. Figure 5 depicts our communication scheme. The
numbers shows the sequence of communications. When agent1
needs to communicate with agent2, it sends agent2’s ID to DSC
and asks for the location of agnet2. The directory server extracts
the master-agent-ID part and sends a request to the mobile device
associated with the master-agent-ID and asks for the location of
agent2. As mentioned, the mobile device has a record of the actual
location of the host in which agent2 resides. This location is then
sent back to the DSC by the master agent. Consequently DSC
forwards this address to agent1. Now agent1 can communicate
directly with agent2.
By employing the above approach, the environment could learn
from the user activities, and in consequence, the next time the user
comes to the environment, it can access its past information stored
in the agencies. The user should first authenticate itself to the host
to be able to access its history.
Due to the excessive amount of details and lack of space, we skip
modeling user history database and information modules in calculus.
2.3 Directory Service Center
The Directory Service Center (DSC) is responsible for managing
mobile devices, host/agencies and their intercommunication as
well as communicating with other DSCs in other environments.
Figure 4 depicts the DSC structure. It consists of registration
module (DSC_REG), communication module (COMM) and
registration Database (DSC_DB) and is formulated as follows.
DSC = COMM | DSC _ REG | DSC _ DB
Figure 4. Directory Service Center Structure
Registration module (DSC_REG) is responsible for storing and
updating registry information of mobile devices, agents and
host/agencies in the registration database. For host and mobile
device registration, DSC receives the device profile and mobile
device id respectively and stores them in its database. For agent
registration, DSC receives the agent device requirements and
sends back the list of hosts that satisfy the requirements. Other
than host, agent and mobile device registration, the registration
module also periodically verifies the network connectivity to the
hosts and the mobile devices to validate existing records in the
registration database. The -calculus formulation is:
Figure 5. Communication Scheme
This communication scheme can be represented as following.
COMM = DSC _ COMM | MD _ COMM i | TAGENT _ COMM | SAGENT _ COMM
DSC _ COMM = υ (ma1 ,ma 2 ,..,ma m )!(c(ma,sub).([ma = ma1 ]d1 sub.d1 (addr )|
DSC _ REG = HOST _ REG | AGENT _ REG | MD_ REG
[ma = ma 2 ]d 2 sub.d 2 (addr )| ... | [ma = ma m ]d m sub.d m (addr )).caddr ).DSC _ COMM
HOST _ REG =!(h(b).b(prf )
MD _ COMM i =!(d i (sub.).d i (addr ))
AGENT _ REG =!(a(b).b(req).b(h1,..,hm )
SAGENT _ COMM = υ (m )c(ma,sub ).c(addr ).!addr(m )
TAGENT _ COMM =!addr(m )
MD _ REG =!(md (b).b(id))
1870
[3] Ferguson, R., Charrington, S., “Building an Intelligent IT
Infrastructure”, Intelligent Enterprise, Vol. 7, No. 18, P. 18, Dec.
2004.
Where DSC_COMM, MD_COMMi, SAGENT_COMM and
TAGENT_COMM are the communication processes of DSC,
master agent, source mobile agent and target mobile agent
respectively. ma is the master-agent-ID and sub represents the
mobile agent-ID, and addr is the address of target agent.
[4] Hagras, H., Callaghan, V., Colley, M., Clarke, G., PoundsCornish, A., Duman, H., “Creating an Ambient-Intelligence
Environment Using Embedded Agents”, IEEE Intelligent Systems
Vol. 19, pp. 12-20, Nov. 2004.
3. CONCLUSION AND FUTURE WORK
[5] ISTAG, “Scenarios for Ambient Intelligence in 2010”,
http://www.cordis.lu/istag.htm.
By utilizing the proposed framework, we believe that a more
intelligent and responsive interface between users and computing
infrastructure can be implemented in a seamless environment. The
framework employs mobile agents to eliminate hard-coded and
fixed features of computing. This realizes intelligence capability
where an intelligent infrastructure is more dependable,
manageable, adaptable and affordable [3]. Mobile agents are
deployed by demand and “live” in computing infrastructures to
interact with users intelligently and intuitively, to provide
personalized information, and to assist users on both daily and
specific tasks. The proposed framework is designed to have
performance advantages over the current state of the art when the
number of the users increases.
[6] ISTAG, “Ambient Intelligence: from vision to reality”,
http://www.cordis.lu/istag.htm.
[7] Jackson, M., “What Can We Expect from Program
Verification?”, Computer, Vol. 39, No. 10, pp. 65-71, Oct. 2006.
[8] Kidd, C., Abowd, G., Atkeson, C., Essa, I., MacIntyre, B.,
Mynatt, E., Starner, T., “The Aware Home: A Living Laboratory
for Ubiquitous Computing Research”. In the Proceedings of the
Second International Workshop on Cooperative Buildings, pp.
191-198, Oct. 1999.
[9] Milner, R., Parrow, J., Walker, D., "A Calculus of Mobile
Processes - Part I" – LFCS Report 89-85. University of Edinburgh
June 1989.
In the near future, a simulated system with mentioned
characteristics will be implemented for the framework to
demonstrate the practicality and advantages of the proposed
approach. -Calculus will be employed to evaluate the system
integrity, validation, and performance.
[10] Milner, R., Parrow, J., Walker, D., "A Calculus of Mobile
Processes - Part II" – LFCS Report 89-86. University of
Edinburgh June 1989.
[11] Perez, M. A., Susperregi, L., Maurtua, I., Ibarguren, A.,
Tekniker, F., Sierra, B., “Software Agents for Ambient
Intelligence based Manufacturing”, IEEE Workshop on
Distributed Intelligent Systems: Collective Intelligence and Its
Application, DIS ’06, 2006.
The authentication and other security issues need to be studied
further to concrete the reliability and stability of our approach.
Currently, we assume that authentication method uses public key
cryptography and the public key of each user and hosts are
repopulated in the directory service centers when a regular user or
host administrator physically registers to join the system. Finally,
to find the optimal network throughput in our framework,
communication protocols among agents and migrations of agents
among agencies will be further examined.
[12] Remagnino, P., Foresti, G. L., “Ambient Intelligence: A New
Multidisciplinary Paradigm”, IEEE Transactions on Systems, Man
and Cybermetrics, Part A, Vol. 35, pp. 1-6, Jan. 2005.
[13] Satoh, I., “Software Agents for Ambient Intelligence”, IEEE
International Conference on Systems man and Cybernetics, 2004.
4. REFERENCES
[14] Woodcock, J., “First Steps in the Verified Software Grand
Challenge”, Computer, Vol. 39, No. 10, pp. 57-64, Oct. 2006.
[1] Bellifemine, F., Caire, G., Trucco, T., Rimassa, G., “Jade
Programmer’s
Guide”,
JADE
2.5
http://sharon.cselt.it/projects/jade/, 2002.
[15] Zhang, Y., Hou, Y., Huang, Z., Li, H., Chen, R., “A contextaware AmI system based on MAS model”, IEEE Proceedings of
the 2006 International Conference on Intelligent Information
Hiding and Multimedia Signal Processing, IIH-MSP ’06, pp. 703706, Dec.2006.
[2] Braun, P., Rossak, W. R. (2004). Mobile Agents: Basic
Concepts, Mobility Models, and the Tracy Toolkit. San Fransisco:
Morgan Kaufmann.
1871