Research on the Construction of Embedded Lightweight Agent Platform

Publisher:gamma14Latest update time:2012-03-21 Source: 微计算机信息 Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

1 Introduction

A multi-agent system is a computing system in which multiple distributed and parallel agents collaborate to complete certain tasks or achieve certain goals. Embedded multi-agent is a technology that combines embedded systems with multi-agents, giving full play to the advantages of both [1]. However, multi-agent systems have not been applied to embedded devices for many years. This is because there is no suitable agent platform that can adapt to embedded systems with limited software and hardware resources. The emergence of KVM (Kilo-bytes Virtual Machine) has enabled the cross-platform language JAVA to be successfully applied to embedded devices, and it has also facilitated the implementation of lightweight agents in embedded environments. This article tests the lightweight agent platform in an ARM embedded environment.

2 Agent-oriented software development platform

JADE is a software development framework based on the cross-platform JAVA language that is designed to develop multi-agent systems or programs that comply with the FIPA (Foundation for Intelligent Physical Agents) Agent standard [2]. The remote management agent (RMA) running on the host consists of three parts: AMS (Agent Management System), DF (Directory Facilitator), and ACC (Agent Communication Channel).

If you use the JDAE platform to develop a multi-agent system, the operating environment must have a JAVA virtual machine. However, the size of such a software running space is far greater than the storage space that an ordinary embedded system can provide. Therefore, a new lightweight Agent development platform and framework must be adopted to adapt it to the embedded environment.

3 Research on Lightweight Agent Platform

3.1 Research on lightweight LEAP

LEAP (Lightweight Extensible Agent Platform) is a version of JADE that runs under J2ME/CLDC and is specifically designed to run in resource-constrained environments such as handheld devices. LEAP runs on the upper layer of communication, and containers communicate with each other through TCP/IP without worrying about the physical connection method [4].

J2ME calls embedded devices with limited computing power and limited power as devices that can connect to the outside world and have limited resources. It stipulates that such devices must meet certain specific conditions (CPU speed, etc.) to execute JAVA programs. These conditions are defined in the CLDC specification. Compared with the standard version of JAVA-J2SE, J2ME/CLDC only supports a subset of the standard core class library, and the storage space required is between 160KB and 512KB. In addition, J2ME/CLDC adds extended class libraries to support embedded systems, such as the javax.microedition.io.* class library, which does not contain RMI. Therefore, LEAP directly uses TCP/IP socket communication to connect different containers [4]. LEAP does not have AMS and DF. In order to implement these functions, LEAP directly accesses the JADE platform running on other machines. The amount of code distributed on each embedded device will be greatly reduced, and the functions of each agent will not be weakened.

3.2 Operation of lightweight platform

LEAP has two distinct operation modes. One is to run a complete container on an embedded device, which is the Stand alone mode. The other is the Split mode, which divides the container into the frontend and the backend. The frontend runs on the embedded device, and the backend runs on the host with J2SE installed.

To start a complete container, you need to start AMS and DF first. According to the literature [3], the frontend is a device with limited storage space and cannot run a large amount of code. It is lightweight. As a result, AMS and DF are not created after the frontend is started. At the same time, the reduction in the amount of code speeds up the frontend startup. The backend runs on a common host. The frontend's dependence on the backend is reflected in the fact that the backend must be working before the frontend is started.

3.3 Improvements to the Lightweight Agent Platform

3.3.1 KDDIAP

Due to the influence of environmental factors, mobile embedded devices often encounter problems such as unstable communication connection and the device is out of signal coverage during wireless communication. Running Agent on wireless devices cannot provide services anytime and anywhere due to the above problems.

When this happens, JADE-LEAP cannot meet people's needs well. This is determined by the characteristics of LEAP. LEAP is applied to wireless devices and completely relies on the JADE platform on the main PC, that is, it adopts the Split operation mode. Therefore, to implement Agent management on embedded wireless devices, the communication must be stable, which is somewhat difficult to achieve in a wireless environment. In response to these problems, the document [6] proposed an Agent platform architecture KDDIAP specifically for wireless communication devices such as mobile phones. The mobile device and the central server are decomposed into sub-platforms that comply with FIPA. FIPA is followed to facilitate information exchange with other similar platforms. The biggest difference from LEAP is that the sub-platform running on the mobile device also has AMS and DF functions. Each mobile phone has a relatively complete container.

3.3.2 Hybrid Mode Lightweight Agent Platform

KDDIAP is suitable for wireless applications, and it needs to create AMS and DF when it is first started. However, JADE-LEAP does not need to create AMS and DF when it is started, and its speed is obviously faster than KDDIAP. In an actual complex system, there are many embedded devices, which work in wired and wireless network environments respectively, and their storage resources are also different. According to their different characteristics, we combine KDDIAP and LEAP technologies to improve the existing Agent operating system framework. As shown in Figure 1, there are three containers, Main Container runs on J2SE, Container-1 runs on J2ME/CLDC or Personal Java, and Container-2 runs on J2ME/CLDC; Container-2 is in Split mode, and Container-1 is similar to KDDIAP mode. It will create AMS and DF when it starts. The device corresponding to Container-2 should have better communication guarantee. If the foreground also creates AMS and DF after startup, a total of about 40 JAVA classes will be used, which is not suitable for embedded devices with limited resources. We only create a Client Agent in the foreground, which can access the background at any time and exchange information with the background, ensuring the real-time communication when the storage space is limited or the processor speed is slow. In contrast, Container-1 is in a wireless environment. The method provided by KDDIAP can enable the Agent to provide services at any time. The code of the software Agent will also increase accordingly, and the requirements for the computing power of the device will be higher. For example, the software Agent can work on high-end hardware platforms such as ARM.

This improvement can ensure the normal operation of lightweight Agent in heterogeneous network environment and make the entire Agent system software streamlined and flexible. At the same time, the changes we made still follow the FIPA standard to facilitate interaction with other FIPA-compliant platforms. [page]


Figure 1 Hybrid-mode lightweight agent platform

4 Lightweight Agent Deployment in Embedded Environment

4.1 KVM Migration

To test the lightweight Agent platform, we ported the Agent platform to an ARM-based embedded system. This embedded system uses Samsung's S3C2410 chip (ARM9 core) as the application processor and the Linux operating system as the real-time operating system. In view of the limited hardware resources of embedded devices, the CLDC specification defines a simplified version of the JAVA virtual machine, which is usually called KVM (Kilo-bytes Virtual Machine) [5].

Figure 2 Lightweight system structure

Figure 3 Compiled KVM

To establish a lightweight agent running environment, it is necessary to transplant KVM on a platform based on ARM and embedded operating system so that JAVA language can run, as shown in Figure 2. The purpose of KVM is to create a JAVA virtual machine that is as small and complete as possible, so that developers do not need to worry about hardware like developing C language, but can develop through JAVA language, so as to achieve the purpose of compiling once and using various platforms. Figure 3 shows that the compiled KVM can run on ARM. Burning KVM to the target platform can execute JAVA programs.

4.2 Lightweight Agent Deployment

The Agent platform is deployed according to the improved lightweight Agent framework. JADE shown in Figure 4 is installed on a PC running J2SE. Container-1 and Container-2 correspond to different environments where lightweight Agent runs.

The PDA in Figure 1 is in wireless communication mode. Once its Agent platform is started, it will automatically create AMS and DF. At the same time, Container-1 on the PDA will immediately register on the JADE platform on the PC. The embedded device in Figure 1 is a network device based on s3c2410, which communicates with the adjacent PC through a network cable. The software Agent platform on the embedded device here will not create AMS and DF after it is started. To obtain the corresponding services, the embedded device only needs to create a Client Agent, and use this agent to access the background at any time through the network cable. All Agents in Container-1 and Container-2 in Figure 4 will register with the Agent platform where the Main-Container is located.

After completing the registration, each remote agent communicates with the Agent platform where the Main-Container is located, providing their own information for use by the Agent on other platforms. In a heterogeneous network environment, the collaborative work of various embedded real-time devices is based on this information. If the Agent in Container-1 wants to interact with the Agent in Container-2, it needs to find a nearby host to register. After registering on the host where the Main-Container is located, it exchanges information with the Agent in Container-2 that has already registered on the main platform. [page]

Not all containers can provide registration services, such as Container-2. Platforms that provide registration and deregistration services generally run on resource-rich PCs, which reduces the corresponding services and code for the software agent running on the embedded device.

Figure 4 Agent registration and deployment results

5 Conclusion

Under the JADE-LEAP framework, the Agent located on the resource-limited device does not have the function created by AMS and DF. To achieve this function, it can only be accessed remotely through the network. In a wired network environment, it is not difficult to achieve these functions, but once in a wireless environment, the platform is unstable. As an improvement on the original lightweight platform LEAP, KDDIAP solves the problem of obtaining Agent services in real time in a wireless environment, but this is at the cost of increasing the amount of code and platform startup time. The hybrid lightweight Agent platform combines the advantages of the two lightweight platforms to ensure the lightweight and flexibility of the Agent platform.

Innovation of this paper: There are many multi-agent system development platforms used at home and abroad, but few are suitable for embedded system platforms. The main reasons are that the embedded system resources are limited, the working environment is changeable, and the original agent development platform has a large amount of code. This paper makes lightweight improvements to the original development platform to make it suitable for embedded systems, and takes S3C2410 as an example to study the system construction method.

References:

[1] Jiang Peng, Huang Xianying. Application research of embedded intelligent agent technology. Microcomputer Information. 2005 (2): 126-127

[2] FIPA HomePage. http://www.fipa.org ,2001

[3] LeapUserGuide: http:// jade.tilab.com,2006

[4] Antonio Moreno, Aida Valls, Alexandre Viej Using JADE-LEAP to implement agents in mobile devices, http://jade.tilab.com /papers/ EXP, 2006

[5] J2ME Building Blocks for Mobile Devices: http://java.sun.com/products/cldc/wp/KVMwp. pdf, 2006

[6] Gen Hattori ,Satoshi Nishiyama, Chihiro Ono, Hiroki Horiuchi. Making Java-enabled Mobile Phone As Ubiquitous Terminal by Lightweight FIPA Compliant Agent Platform .Proceedings of the First IEEE International Conference on Pervasive Computing and Communications, 2003: 553~ 556

Reference address:Research on the Construction of Embedded Lightweight Agent Platform

Previous article:Research on Nand Flash Write Balance in Embedded Systems
Next article:Construction of embedded Linux application platform based on PXA255

Recommended ReadingLatest update time:2024-11-16 21:39

Design and implementation of pulse wave measurement system based on J2ME
In traditional Chinese medicine, pulse diagnosis plays an important role in TCM diagnosis. Pulse diagnosis is to perceive the pathological information of the human body from the pulse signal. With the development of modern science and technology, especially the development of information technology such as signal de
[Medical Electronics]
Design and implementation of pulse wave measurement system based on J2ME
Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号