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
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
- Popular Resources
- Popular amplifiers
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- LIN communication, checksum error.
- SensorTile.Box Kit Operation Mode: Entry Mode Trial
- [Atria Development Board AT32F421 Review] 5. Study the EC11 encoder
- 【RT-Thread Reading Notes】13. RT-Thread Learning Chapters 24-26 Reading Notes
- Renesas CPK-RA6M4 Development Board Review - Building Environment & UART
- CircuitPython 5.0.0 Alpha 5 released
- EEWORLD University Hall----Live Replay: Beineng International's New Glass Breakage Detection Solution
- Why do pirates wear eye patches? It turns out it’s not because they’re missing an eye!
- Solar Calculator Disassembly
- Overview of MCU bus, three-bus structure of MCU