In the proposed framework, the mobile agent notion is utilized to provide autono- ... MAS facilitates the design and development of AmI environments by.
8 A Generic Mobile Agent Framework towards Ambient Intelligence Yung-Chuan Lee, Elham S. Khorasani, Shahram Rahimi, and Sujatha Nulu Southern Illinois University Carbondale, IL 62901 USA {ylee,elhams,rahimi,snulu}@cs.siu.edu
Abstract. Recent advances of computing and networking technology have shifted computing convention from stationary to mobile. A forecast conducted by Gartner indicates that global mobile handset sales will increase exponentially in 2008 by 10% from 1.3 billion units in 2007 [13]. Furthermore, the popularity of wireless networking topology including both Wi-Fi access point and cellular mobile telecommunications enables users with constant access to online connection and further intensifies the demand of mobile devices. This provides the fundamental elements for creating ubiquitous environments of computing, networking, and interfacing that is both aware of and reactive to the presence of people. Such an environment is defined as Ambient Intelligence (AmI). Existing approaches that attempt to understand AmI environment mainly focus on how to seamlessly integrate hardware, i.e. mobile device and sensors, into human society and intelligently provide personalized knowledge and services. This has, however, left many essential issues unanswered, especially in regards to the integrity and performance of such dynamically distributed environments. In this chapter, we formulate a generic framework in which an AmI environment is generalized to consist only of users with devices, hosts where services are provided, and directory servers that act as information desks to users and hosts. In the proposed framework, the mobile agent notion is utilized to provide autonomous reasoning, learning, mobility, and collaboration features to construct AmI systems. Performance issues of load balancing and communication overhead in such a framework are then examined and analyzed against existing AmI techniques. Because of the dynamicity posed by AmI environments and the complexity of migrations and communications among agents, hosts and directory servers, it is necessary to provide a mechanism to warrant the accuracy and enhance the reliability of such an environment. Software verification employs formal methods of mathematically provable formulations to perform program analysis and model checking. Thus, general formulation using π-calculus is included to model the proposed approach to provide verification mechanism. In conclusion, the implementation of the proposed framework simulation using NetLogo is currently ongoing to visually demonstrate its feasibility. Some implementation details are included to stimulate comprehension of this framework.
8.1 Introduction Ambient Intelligence (AmI) is defined as 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 [6][7]. With the advancement of L.C. Jain, N.T. Nguyen (Eds.): Knowl. Proc. & Dec. Mak. in Agent-Based Sys., SCI 170, pp. 175–192. springerlink.com © Springer-Verlag Berlin Heidelberg 2009
176
Y.-C. Lee et al.
mobile methodology, the technology disappears into our surroundings and only the user interface remains observable. 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 the profile of a user and provide relevant information and services to her autonomously, and even further, intelligently learn from the interactions with the user to refine her profile. Moreover, users in AmI environments may also manually request for information and services they desired. Recent technology advances have made this vision one step closer to reality. Moore’s Law states that the number of transistors placed on an integrated circuit can be inexpensively doubled every two years. Although researchers believe that Moore’s Law may not continue to be followed as the physical limitation of a transistor approaches, the Law can be extended beyond the number of transistors to the design of transistors or placement of transistors [5]. Thus, integrated circuits have improved exponentially in recent years with smaller size, more functionality, and less energy consumption. This extends mobile devices such as cell phones, personal media players (PMP), mobile Internet devices (MID), ultra portable PCs (UMPC) and personal digital assistants (PDA) from single applications to multimodal tools including media playback capability, wireless networking, office/Internet productivities, gaming, or location awareness with GPS capability. A forecast conducted by Gartner suggests that mobile devices can potentially reach a 10% increase in 2008 from 1.3 billion units in 2007 [13]. Furthermore, the popularity of wireless networking topology, including both Wi-Fi access point and cellular mobile telecommunications, provides users with constant access to online connection and further intensifies the demand of mobile devices. Finally, LiMo Foundation, founded from the beginning of 2007 and supported by all major mobile technology leaders, has committed to establishing a hardware-independent and open Linux-based platform that enables developers to contribute their innovations [10]. This provides the fundamental elements for creating AmI environments of computing, networking, and interfacing that is aware of and reactive to the presence of people. The AmI environment presents a mixture of autonomy, learning, parallel and distributed computing domains [15]. Both traditional client-server approaches and mobile agent technology are capable of being applied toward the implementation of AmI environments; however, the traditional client-server approach suffers from messagepassing methodology in which a network connection is mostly required through out the requested session. Multi-agent systems (MAS), on the other hand, utilizes a deploy-collect methodology in which the connection can be terminated after the deployment of mobile agents and shares many of its characteristics with AmI environments [2]. MAS facilitates the design and development of AmI environments by providing features such as autonomous reasoning, learning, mobility, and collaboration among others. Agents can migrate into different hosts to perform computation, while communicating with other agents, and then carry the results back to its origin. Many researchers also share the same belief that MAS is the Holy Grail to completely revealing the promising future of AmI environments [4][14][15][16][19]. While several MAS-based AmI architectures have been proposed, none have provided any mechanisms to appropriately evaluate the integrity and accuracy of its model. Because of the dynamicity posed by AmI environment and the complexity of
8 A Generic Mobile Agent Framework towards Ambient Intelligence
177
the criteria for migrations and communications among agents and hosts, integrity verification becomes essential to maintaining the AmI system’s reliability and scalability. Software verification employs formal methods such as π-calculus [11][12] that are mathematically-provable formulations to perform program analysis and model checking. It provides a mechanism to warrant the correctness of a program and enhances the reliability at each stage of the software life cycle [8][18]. With the help of formal methods, a dynamic and complex system can be mathematically formulated and can then be analyzed to verify its correctness if necessary. A concise formulation with πcalculus is included in this chapter to establish the preliminary work on incorporating a verification procedure as part of the proposed framework. In summary, this chapter 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. Furthermore, general formulations using π-calculus is included to model the proposed system and to construct the foundation for future implementation of system verification. Some important features such as integrity verification on a given system, communication verification among agents and performance verification of a giving scenario will be included in the initial implementation. Some of the implementation details with NetLogo will be included at the end of this chapter for reference. 8.1.1 State-of-the-Art Approaches The AmI domain has been gaining more and more attentions recently because of the advancement of its technology; therefore, some research studies related to the utilization of mobile agents in ambient intelligent environment will be discussed here. In creating location-aware services to provide personalized information to users, Satoh employed RFID technology and software agents in his approach [16]. Each user is assumed to carry a RFID tag and can be uniquely identified by RFID readers 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. A similar approach utilizing RFID technology was developed by the AMILAB research group to apply software agents in an attempt to create an AmI manufacturing environment [14]. In this approach, AMICO architecture was formulated to interact intelligently with users to provide user-specified context information and machine functionalities. Users are identified through fingerprint sensors and locationawareness is supported through RFID tags and sensor network. Instrumental and data devices, voice recognition and wearable computing provide context-awareness to interact with users. Various specific types of agent are introduced in AMICO to interact with users and evolve through those interactions. Yong and colleagues proposed a context-aware AmI application system based on a multi-agent architecture in which a smart agent introduced to perceive users’ needs and coordinate aware-agent and executive-agent groups [19]. The aware-agent group contains different agents to recognize and locate outside objects or information that are then imported to the smart agent to analysis. The executive-agent group provides
178
Y.-C. Lee et al.
services and equipment controls according to requests from the smart agent. Thus, the smart agent is the center of the approach that acts as a human brain to process input information and send appropriate commands to execute. In addition, several approaches have focused on facilitating people in daily tasks. Kidd and colleagues presented “the aware home project” to study how ubiquitous computing could assist people in daily life [9]. Because of the different characteristics of office and home environments, where activities in office environments are more goal-oriented while in home environments are more flexible, the project concentrated on developing a methodology that discovers the useful applications from the latest advances for each application. Hagras and colleagues implemented an ambient-intelligence environment, iDorm, using embedded sensors, actuators, and software agents [4]. Based on user preferences, the embedded agents of iDorm proactively and seamlessly adjust the environment. 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 a more precise user-friendly living environment. The current state-of-the-art approaches are domain-specific and cannot be flexibly applied to other domains. Moreover, none of the mentioned approaches have addressed the performance of the system as well as 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 a particular focus on optimized communication costs and load balancing among agents and agencies. 8.1.2 π-Calculus Overview 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 [11][12] for more information on pi-calculus syntax and reduction rules. In π-Calculus, two main entities are specified: “names” and “processes” (or “agents”). “Name” is defined as a channel or a value that can be transferred by a channel. We follow the naming rule and syntax in [11] in which u, v, w, x, y, z range over names and A, B, C, ... range over process (agent) identifiers. The syntax of process is defined as follows: P ::= 0 | ∑i ∈ I λ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,…, yn) | !P .
(8.1)
• 0: Agent P does not do anything. • ∑i ∈ I λi.Pi: Agent P will behave as either one of λi.Pi where i I, but not more than one, and then behaves 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). • ⎯yx.P: Agent P sends free name x out along channel y and then behaves like P. • ⎯y(x).P: Agent P sends bound name x out along channel y and then behaves like P.
∈
8 A Generic Mobile Agent Framework towards Ambient Intelligence
179
• y(x).P: Agent P receives name x out along channel y and then behaves like P. • τ.P: Agent P performs the silent action τ and then behaves like P (τ is a silent •
• • • • •
prefix). P1 | P2: Agent P has P1 and P2 executing in parallel independently or cooperatively. For instance, if P1 = τ1.P1 and P2 = τ2.P2, then P1 and P2 may behave independently. Otherwise, if P1 = ⎯y(x).P1 and P2 = y(x).P2, then P1 will send x tp P2 through channel y. P1 + P2: Agent P will exercise either P1 or P2 but not both. (x)P: Agent P does not change except for that x in P becomes private and restricted to P. That means any outside communication through channel x will be prohibited. [x = y]P: If x = y, this agent behaves like P, otherwise like 0 A(y1,…, yn): This is an agent identifier in which y1,…, yn are free names occurring in agent P. !P: This is a 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 processes (agents). So in higher-order π-Calculus, ⎯x(K) means “send a name or process K through channel x” and x(U) means “receive name or process U through channel x”. Based on the above syntax, different components of the proposed framework are defined.
8.2 Proposed Framework Our framework for ambient environments allows users to obtain their personalized information such as their profile, preferences, interests and habits, while engaging in minimum interactions with the environment. As the user moves, this information will be available to him/her at the new location. The framework presented here aims to be flexible, high performing and easy to implement. Fig. 8.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 can be generalized with three main components: (1) mobile devices, (2) hosts or agencies and (3) directory service centers (DSC). Different environments are connected through their directory service centers. In the following sections, we describe each of the elements in Fig. 8.1 in more detail. As mentioned before, we model our ambient framework using higher order π-calculus in order to provide a mathematical infrastructure for evaluation and verification of the system. More specifically, an environment is a cluster consisting of one DSC, multiple mobile devices and multiple hosts, and can be formulated as follows: ENVIRONMENT = DSC | MD1 | … | MDn | HOST1 | … | HOSTk .
(8.2)
Where DSC is the Directory Service Center, MD1 … MDn represents mobile devices and HOST1 … HOSTk indicates host/agencies in the environment.
180
Y.-C. Lee et al.
Fig. 8.1. This is an overview of the proposed framework. Some possible communication actions among mobile devices, hosts, and directory service servers are shown in dashed lines.
8.2.1 Mobile Devices For simplicity, we assumed that each user carries at least one computing device such as tablet PCs, PDAs, cell phones, notebooks or even wearable computing devices. The user carries these portable devices to store his/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 his/her personalized information stored in his/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 environment to perform various services and computation for its owner. Additionally, it can use the environmental information which is provided by the agency. Fig. 8.2 depicts the internal structure of an adequate mobile device. It consists of a registration module, administrative module, learning module, load balancing module and mobile device database. A mobile device (MDi) consists of a registration module (MD_REGi), administration module (ADMINi), load-balancing module (LBi), learning module (LEARNi) and agent database (MD_DBi) and can be formulated as follows: MDi = MD_REGi | ADMINi | LBi | LEARNi | MD_DBi .
(8.3)
The registration module (MD_REGi) is responsible for registering the mobile device to the new environment as the user goes from one environment to another.
8 A Generic Mobile Agent Framework towards Ambient Intelligence
181
Fig. 8.2. This is the fundamental structure of a mobile device in the proposed framework. A master agent resides in the device and executes different modules to assist its user.
Whenever a user comes to a new environment, her mobile device sends its ID and the physical network adapter address to the DSC of the current environment. The DSC then decides whether to accept or reject the mobile device registration request due to its security considerations. The module can then be represented in π-calculus as follows: MD_REGi = v(x, id)(⎯y(x)⎯x(id)).0 .
(8.4)
Where y is a communication channel between MD_REGi and DSC. The mobile device acts as a master agent. It can create numerous mobile agents and dispatches them to different hosts. The administrative module (ADMINi) is responsible for creating and keeping track of the mobile agents that belong to the mobile device and reside in different hosts or agencies. This module can be modeled with πcalculus as follows, in which each process is further explained in details: ADMINi = MERGEi | TERMINATEi | INQUIRYi | RETRIEVEi | UPDATEi .
(8.5)
• MERGE: This process creates a mobile agent and sends its requirements to DSC through channel a. These requirements specify the agency capabilities that are needed by the mobile agent to perform its services. If the request is approved, DSC will send back a list of candidate hosts (h1, h2,…, hn) that fulfill the requirements. This list contains the agency’s network address and other necessary information. The MERGE process then sends the list of candidate hosts to the load-balancing module (LBi) through channel y and receives the address of the most appropriate host (hopt) to which the mobile agent immigrates. MERGEi = v(AGENT, req, c)(τcreate. ⎯a(c). ⎯c(req).c(h1, h2,…, hn). ⎯y(c). ⎯c(h1, h2,…, hn). c(hopt). ⎯hopt(AGENT)). MERGEi .
(8.6)
Where τcreate is the internal action for creating AGENT; req is the host capabilities needed by AGENT that is sent to DSC through the private channel c. h1, h2,…, hn is
182
Y.-C. Lee et al.
the list of the hosts received from DSC and hopt is the preferred host computed by load-balancing module for the migrating agent. • RETRIEVEi: 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 database, sending a ret signal to it, and receiving the agent along a private channel. RETRIEVEi = v(c)(⎯hi(c). ⎯cret. c(AGENT)). RETRIEVEi .
(8.7)
Where hi is the current address of the agent.
• TERMINATEi: This process sends a 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. • INQUIRYi: This process enquiries the mobile agent about the completeness of its current task by sending an inq signal. TERMINATEi = ⎯bijterm. TERMINATEi . INQUIRYi = ⎯bijing. mi(res). INQUIRYi .
(8.8)
AGENTij =bij(m). ([m = term] τterm.0 |[m = ing] ⎯bij(res). AGENTij) . Where bij is the channel of communication between the mobile device (MDi) and the AGENTij, τterm is the internal action for terminating the agent, and res is the result of inquiry. • UPDATEi: This process updates agents’ lists 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 the UPDATE process updates the record of this mobile agent in the database. The load-balancing module (LBi) is responsible for spreading the communication and computation loads among the hosts in the environment to get a close-optimal utilization, minimum computation and communication delay. Whenever the admin module creates a mobile agent, it forwards the list of the candidate hosts (h1, h2,…, hn) for that mobile agent to the load-balancing module through the channel (y). The loadbalancing module then sends a message (m) to each host (HOSTi) through the channels (hi) in the list to obtain the hosts’ resource utilization and to determine the response time (respi) for each. It estimates the cost of migrating the agent to each of these hosts and provides the most underutilized one to the administrator module. LBi = (y(c). c(h1, h2,…, hn). (⎯h1m.h1(resp1) | ⎯h2m.h2(resp2) | … | ⎯hmm.hm(respm)). τopt. ⎯c(hopt)). LBi .
(8.9)
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 explicitly, such as username/password, credit card information, etc., and are responsible for the security of this information. The other information of the user profile, such
8 A Generic Mobile Agent Framework towards Ambient Intelligence
183
as preferences and habits, are automatically updated by the learning module based on the 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 a few paragraphs and the main purpose of this paper is to sketch the blueprint of the framework, details on the learning module will be delineated in an upcoming paper. 8.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 our choice to provide the runtime environment for mobile agents and the agencies to execute. Fig. 8.3 illustrates the host’s structure. It consists of a user-history database (HOST_DBi), registration module (HOST_REGi), information module (INFORMATIONi) and JADE system (AGENT_EXECi) and is modeled as follows: HOSTi = HOST_REGi | AGENT_EXECi | INFORMATIONi | HOST_DBi .
(8.10)
The registration module (HOST_REGi) registers the host with the directory service center. It sends a registry request to the DSC that contains the agency’s network address and its device profile. HOST_REGi = v(d)⎯hi(d). ⎯d(prf) .
(8.11)
Where hi is the channel between HOSTi and DSC, and prf is the device profile. The AGENT_EXECi process receives and executes the agents (τexec). It can also return the agent back to its mobile device upon receiving the ret signal. AGENT_EXECi = !( hi(AGENT). τexec | hi(c). c(m). [m = ret]⎯cAGENT .
(8.12)
Fig. 8.3. This is the fundamental structure of a host in the proposed framework. The agent functionalities, such as migration, execution, or communication, are supported by JADE.
184
Y.-C. Lee et al.
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. By employing the above approach, the environment could learn from the user activities, and in consequence, it can access its past information stored in the agencies the next time the user comes to the environment. The user should first authenticate itself to the host to be able to access its history. 8.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. Fig. 8.4 depicts the DSC structure. It consists of a registration module (DSC_REG), communication module (COMM) and registration Database (DSC_DB), and is formulated as follows: DSC = COMM | DSC_REG | DSC_DB.
(8.13)
The communication module (COMM) 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.
Fig. 8.4. This is the fundamental structure of a directory service center (DSC) in the proposed framework. A DSC can be best summarized as a Yellow Book, which provides the necessary information for contacting a service or person.
8 A Generic Mobile Agent Framework towards Ambient Intelligence
185
8.2.4 Communication among Mobile Agents The mobile agents’ communication is more complicated because they can proactively migrate from one host to another. Ensuring that a user can interact with the agent whenever necessary becomes crucial. One simple and straightforward solution is to generate a unique ID for each mobile agent per mobile device. Thus, each mobile agent’s ID is a combination of its mobile device’s ID with a unique number. A simple example is given in this section to demonstrate this concept. The mobile agents’ network addresses may change upon each migration. To address this issue, 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. Fig. 8.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.
Fig. 8.5. This is an example to demonstrate communications among mobile agents. The numbered dashed lines show the order of communication among the DSC, the Host and the mobile device. The line 5 is the communication channel between agent1 and agent2.
According to Fig. 8.5, where the numbers show 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, 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
186
Y.-C. Lee et al.
DSC by the master agent. Consequently, DSC forwards this address to agent1. Now agent1 can communicate directly with agent2. This communication scheme can be represented as follows: COMM = DSC_COMM | MD_COMMi | TAGENT_COMM | SAGENT_COMM .
(8.14)
DSC_COMM = v(ma1, ma2,…, mam)!(c(ma,sub).([ma= ma1] ⎯d1sub. d1(A) | [ma= ma2] ⎯d2sub. d2(A) |…| [ma= mam] ⎯dmsub. dm(A)). ⎯cA). DSC_COMM . MD_COMMi = !(di(sub). ⎯di(A)) . SAGENT_COMM = v(m) ⎯c(ma,sub). c(A). !⎯A(m) . TAGENT_COMM = !A(m) . Where DSC_COMM, MD_COMMi, TAGENT_COMM, and SAGENT_COMM are the communication processes of DSC, master agent, target mobile agent, and source mobile agent, respectively. ma is the master-agent-ID, sub represents the mobile-agent-ID, and A is the address of the target agent.
8.3 Current Implementation To examine our hypothesis, we are actively implementing the simulation system with NetLogo. NetLogo is a cross-platform and programmable multi-agent modeling environment for natural and social phenomena simulation [17]. Each Agent is created through turtle keyword in NetLogo and can follow instructions independently and simultaneously. In this section, some implementation details are explained with corresponding code sections. The following defines DSCs, hosts and users, breeds that in turn can be used to initiate a set of instances in each breed, and each instance has its own ID variable. Instances of users, breed has two more variables, NStatus and visited, to keep track of current network status and list of visited DSCs. Furthermore, in the setup procedure (to setup), each breed is first assigned with different shapes to represent itself in the NetLogo world and is then created with the create keyword where number of instances for each breed is defined in the GUI interface that can be referred to in Fig. 8.6. Other than setting up a unique ID when initiating each instance, each host needs to be carefully positioned inside the “wireless signal” coverage (DSC_radio_coverage) in order to announce services to the DSC. The coverage area is further colored grey to better distinguish from the NetLogo world background. After the setup, NetLogo will execute the go procedure (to go) repeatedly in an infinite loop fashion when the go button is clicked; however, the execution can be paused by clicking the go button again. Thus, the go procedure is more like the main function under C/C++. A section of codes that enabled the user agents to explore the environment is provided below: Breed [users user] Breed [hosts host] Breed [DSCs DSC]
8 A Generic Mobile Agent Framework towards Ambient Intelligence
turtle-own [ID] users-own [NStatus visited] . . to setup . . set-default-shape DSCs “face happy” set-default-shape users “person” set-default-shape hosts “house” create DSCs number_of_DSCs [setxy random-xcor random-ycor ask DSCs [set ID who + (random 9007199254740992)] ask patches in-radius DSC_radio_coverage [set pcolor radioCoverage] ] create hosts number_of_hosts [let tempDSC one-of DSCs set xcor ([xcor] of tempDSC) + (random DSC_radio_coverage) set ycor ([ycor] of tempDSC) + (random DSC_radio_coverage) ask hosts [set ID who + (random 9007199254740992)] ask patches in-radius host_radio_coverage [set pcolor radioCoverage] ] create users number_of_users [setxy random-xcor random-ycor ask users [set ID who + (random 9007199254740992) . . ] ] . . end to go ask users [let rand random 4 if rand = 0 [fd 2.1] if rand = 1 [bk 2.1] if rand = 2 [rt 90] if rand = 3 [lt 90] ifelse [pcolor] of patch-here = radioCoverage [set [NStatus] of self 1 set [visited] of self 1
187
188
Y.-C. Lee et al.
] [set [NStatus] of self 0] . . . ] . . . end Due to the simplicity of NetLogo, we could not find any library or functionality to simulate the communications among the agents (i.e. users, hosts, and DSCs) without
Fig. 8.6. This is a screenshot of current implementation in NetLogo. Setup button can initiate the Some possible communication actions among mobile devices, hosts, and directory service servers are shown in dashed lines.
8 A Generic Mobile Agent Framework towards Ambient Intelligence
189
setting up HubNet. HubNet is a powerful module for constructing a multi-devices environment to allow people to participant as agents through computing devices; however, it is too overwhelming to utilize HubNet for the initial implementation. Therefore, a simulated networking mechanism is currently under development to facilitate the observation among agents to study the performance.
8.4 Conclusion and Future Direction 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 hardcoded and fixed features of computing. This achieves an intelligence capability in which 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 approaches when the number of the users increases. 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’s integrity, validation, and performance. The authentication and other security issues need to be studied further to validate the reliability and stability of our approach. Currently, we assume that the 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. Furthermore, a pluggable module protocol will be study in the next revision of proposed framework to not only ease the addition of new hardware to existing AmI implementation, but to the extent of accomplishing multimodal interface by loading appropriate modules into a single device to dynamically support individuals with varying tasks. Finally, to find the optimal network utilization in our framework, communication protocols among agents and migrations of agents among agencies will be further examined.
References 1. Bellifemine, F., Caire, G., Trucco, T., Rimassa, G.: Jade Programmer’s Guide, http://jade.tilab.com/doc/programmersguide.pdf 2. Braun, P., Rossak, W.R.: Mobile Agents: Basic Concepts, Mobility Models, and the Tracy Toolkit. Morgan Kaufmann, San Fransisco (2004) 3. Ferguson, R., Charrington, S.: Building an Intelligent IT Infrastructure. Intelligent Enterprise 7(18), 18 (2004) 4. Hagras, H., Callaghan, V., Colley, M., Clarke, G., Pounds-Cornish, A., Duman, H.: Creating an Ambient-Intelligence Environment Using Embedded Agents. IEEE Intelligent Systems 19, 12–20 (2004)
190
Y.-C. Lee et al.
5. Hiremane, R.: From Moore’s Law to Intel Innovation-Prediction to Reality. Technology@Intel Magazine (April 2005) 6. ISTAG: Scenarios for Ambient Intelligence in 2010, http://www.cordis.lu/istag.htm 7. ISTAG: Ambient Intelligence: from vision to reality, http://www.cordis.lu/istag.htm 8. Jackson, M.: What Can We Expect from Program Verification? Computer 39(10), 65–71 (2006) 9. 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 (October 1999) 10. LiMo Foundation: Introduction, Overview & Market Positioning. Mobile World Congress (February 2008) 11. Milner, R., Parrow, J., Walker, D.: A Calculus of Mobile Processes - Part I. LFCS Report89-85. University of Edinburgh (June 1989) 12. Milner, R., Parrow, J., Walker, D.: A Calculus of Mobile Processes - Part II. LFCS Report89-86. University of Edinburgh (June 1989) 13. Parker, A.: Mobile phone players ring the changes. Financial Times (February 28, 2008) 14. Perez, M.A., Susperregi, L., Maurtua, I., Ibarguren, A., Tekniker, F., Sierra, B.: Software Agents for Ambient Intelligence based Manufacturing. In: IEEE Workshop on Distributed Intelligent Systems: Collective Intelligence and Its Application, pp. 139–144 (2006) 15. Remagnino, P., Foresti, G.L.: Ambient Intelligence: A New Multidisciplinary Paradigm. IEEE Transactions on Systems, Man and Cybermetrics 35, 1–6 (2005) 16. Satoh, I.: Software Agents for Ambient Intelligence. In: IEEE International Conference on Systems man and Cybernetics, pp. 1147–1152 (2004) 17. Wilensky, U.: NetLogo. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL (1999), http://ccl.northwestern.edu/netlogo/ 18. Woodcock, J.: First Steps in the Verified Software Grand Challenge. Computer 39(10), 57–64 (2006) 19. Zhang, Y., Hou, Y., Huang, Z., Li, H., Chen, R.: A context- aware AmI system based on MAS model. In: IEEE Proceedings of the 2006 International Conference on Intelligent Information Hiding and Multimedia Signal Processing, pp. 703–706 (December 2006)
Resources For more information regarding ambient intelligence, please refer to the following publications: 1. Abowd, G. D., Mynatt, E. D.: Charting past, present, and future research in ubiquitous computing. ACM Transactions Computer-Human Interaction, Vol. 7. 1 (March 2000), 2958 2. Alexopoulos, D., Soldatos, J., Kormentzas, G., Skianis, C.: UbiXML: programmable management of ubiquitous computing resources. International Journal of Network Management, Vol. 17. 6 (November 2007) 415-435 3. Cabri, G., Ferrari, L., Leonardi, L., Zambonelli, F.: The LAICA project: supporting ambient intelligence via agents and ad-hoc middleware. Enabling Technologies: Infrastructure for Collaborative Enterprise. (June 2005) 39-44
8 A Generic Mobile Agent Framework towards Ambient Intelligence
191
4. Charif-Djebbar, Y., Sabouret, N.: An agent interaction protocol for ambient intelligence. IEEE Intelligent Environments, Vol. 1. (July 2006) 275-284 5. Dey, A. K., Hamid, R., Beckmann, C., Li, I., Hsu, D.: a CAPpella: programming by demonstration of context-aware applications. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. (April 2004) 33-40 6. Dooley, J.; Callaghan, V., Hagras, H., Bull, P., Rohlfing, D.: Ambient intelligence Knowledge representation, processing and distribution in intelligent inhabited environments. IEEE Intelligent Environments, Vol. 2. (July 2006) 51-59 7. Doorn, M., Loenen, E., Vries, A. P.: Deconstructing ambient intelligence into ambient narratives: the intelligent shop window. In Proceedings of the 1st international Conference on Ambient Media and Systems. (February 2008) 1-8 8. Eccles, D. W., Groth, P. T.: Wolves, football, and ambient computing: facilitating collaboration in problem solving systems through the study of human and animal groups. In Proceedings of the Third Nordic Conference on Human-Computer interaction, Vol. 82. (October 2004) 269-275 9. Grimm, R., Anderson, T., Bershad, B., Wetherall, D.: A system architecture for pervasive computing. In Proceedings of the 9th Workshop on ACM SIGOPS European Workshop: Beyond the Pc: New Challenges For the Operating System. (September 2000) 177-182 10. Grimm, R., Davis, J., Lemar, E., Macbeth, A., Swanson, S., Anderson, T., Bershad, B., Borriello, G., Gribble, S., Wetherall, D.: System support for pervasive applications. ACM Transactions Computer Systems, Vol. 22. 4 (November 2004) 421-486 11. Higel, S., O'Donnell, T., Wade, V.: Towards a natural interface to adaptive service composition. In Proceedings of the 1st international Symposium on information and Communication Technologies, Vol. 49. (September 2003) 169-174 12. Iliasov, A., Romanovsky, A., Budi Arief, Laibinis, L., Troubitsyna, E.: On Rigorous Design and Implementation of Fault Tolerant Ambient Systems. Object and ComponentOriented Real-Time Distributed Computing. (May 2007) 141-145 13. Ipiña, D., Mendonça, P., Hopper, A.: TRIP: A Low-Cost Vision-Based Location System for Ubiquitous Computing. Personal Ubiquitous Computing, Vol. 6. 3 (January 2002) 206219 14. Loke, S. W., Krishnaswamy, S., Naing, T. T.: Service domains for ambient services: concept and experimentation. Mobile Networks and Applications, Vol. 10. 4 (August 2005) 395-404 15. Mamei, M., Zambonelli, F.: Pervasive pheromone-based interaction with RFID tags. ACM Transactions on Autonomous and Adaptive Systems, Vol. 2. 2 (June 2007) article 4 16. Mark W.: The Computer for the Twenty-First Century. Scientific American. (September 1991) 94-104 17. Mark W.: Some Computer Science Problems in Ubiquitous Computing. Communications of the ACM. (July 1993) 18. Mark W.: Hot Topics: Ubiquitous Computing. IEEE Computer. (October 1993) 19. Merdes, M., Malaka, R., Suliman, D., Paech, B., Brenner, D., Atkinson, C.: Ubiquitous RATs: how resource-aware run-time tests can improve ubiquitous software systems. In Proceedings of the 6th international Workshop on Software Engineering and Middleware. (November 2006) 55-62 20. Moraitis, P., Spanoudakis, N.: Argumentation-Based Agent Interaction in an AmbientIntelligence Context. IEEE Intelligent Systems, Vol. 22. 6 (November 2007) 84-93 21. Nehmer, J., Becker, M., Karshmer, A., Lamm, R.: Living assistance systems: an ambient intelligence approach. In Proceedings of the 28th international Conference on Software Engineering. (SMay 2006) 43-50
192
Y.-C. Lee et al.
22. Nielson, H. R., Nielson, F.: Shape analysis for mobile ambients. In Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. (January 2000) 142-154 23. Nygard, K. E., Xu, D., Pikalek, J., Lundell, M.: Multi-agent designs for ambient systems. In Proceedings of the 1st international Conference on Ambient Media and Systems. (February 2008) 1-6 24. Obermair, C., Ploderer, B., Reitberger, W., Tscheligi, M.: Cues in the environment: a design principle for ambient intelligence. In CHI '06 Extended Abstracts on Human Factors in Computing Systems. (April 2006) 1157-1162 25. Perez, M. A., Susperregi, L., Maurtua, I., Ibarguren, A., Sierra, B.: Software Agents for Ambient Intelligence based Manufacturing. Distributed Intelligent Systems: Collective Intelligence and Its Applications. (June 2006) 139-144 26. Ramos, C., Augusto, J. C., Shapiro, D.: Ambient Intelligence—the Next Step for Artificial Intelligence. IEEE Intelligent Systems, Vol. 23. 2 (March 2008) 15-18 27. Ren, K., Lou, W.: Privacy-enhanced, attack-resilient access control in pervasive computing environments with optional context authentication capability. Mobile Networks and Applications, Vol. 12. 1 (January 2007) 79-92 28. Satoh, I.: A location model for ambient intelligence. In Proceedings of the 2005 Joint Conference on Smart Objects and Ambient intelligence: innovative Context-Aware Services: Usages and Technologies, Vol. 121. (October 2005) 195-200 29. Scholz, J., Grigg, M., Prekop, P., Burnett, M.: Development of the software infrastructure for a ubiquitous computing environment: the DSTO iRoom. In Proceedings of the Australasian information Security Workshop Conference on ACSW Frontiers 2003, Vol. 21. (January 2003) 169-176 30. Sekiguchi, M., Naito, H., Ueda, A., Ozaki, T., Yamasawa, M.: "UBWALL", ubiquitous wall changes an ordinary wall into the smart ambience. In Proceedings of the 2005 Joint Conference on Smart Objects and Ambient intelligence: innovative Context-Aware Services: Usages and Technologies, Vol. 121. (October 2005) 47-50 31. Stokic, D., Neves-Silva, R., Marques, M., Reimer, P., Ibarbia, J. A.: Ambient Intelligence Based System for Life-cycle Management of Complex Manufacturing and Assembly Lines. Industrial Informatics, 2007 5th IEEE International Conference on, Vol. 2. (June 2007) 1197-1202 32. Sukthankar, R.: Towards Ambient Projection for Intelligent Environments. Computer Vision for Interactive and Intelligent Environment. (November 2005) 162-172 33. Weber, W.: Ambient intelligence: industrial research on a visionary concept. In Proceedings of the 2003 international Symposium on Low Power Electronics and Design. (August 2003) 247-251 34. Wedde, H. F., Lischka, M.: Role-based access control in ambient and remote space. In Proceedings of the Ninth ACM Symposium on Access Control Models and Technologies. (June 2004) 21-30