IARM (Inter Application Resource Management) is a mechanism for inter-process communication among different RDK applications. Its a platform agnostic inter process communication (IPC) mechanism for the other RDK components. The inter communication is possible between IARM application using events and RPC method.
IARM-Bus offers two basic functionalities:
- Send Events to application.
- Invoke application's RPC methods.
An IARM Application that runs as a linux daemon process is considered a Manager Component. The IARM-Bus Daemon is a special Manager component that belongs to the IARM core. Such manager components normally register Events and RPC methods for other applications to use.
Basically there are three IARM entities involved for development
- IARM Bus
- IARM Application (Consumers/Listeners)
- IARM Manager (Publishers)
- Invoke methods in other processes via Remote Procedure Call.
- Send inter-process messages.
- Manage shared and exclusive access to resources.
- Register for event notification.
- Publish Event notification to registered listener.
- There are two ways for application to use IARM Bus ie 'Subscribe for system events' and 'Invoke RPC Methods'
- IARM Application utilize the IARM utilities and it register for event notification.
- For example, IR Application registering for the events and the same event appears in the IARM Bus so that the notification of the IARM Bus event shall be transfer to the IARM Bus application.
- IARM application can also invoke the RPC method which has been registered by the other IARM process.
- IARM Manager is an IARM Application that runs as Linux daemon process.
- The IARM Bus Daemon is a Manager Component with Special privileges to manage resources.
- The Other IARM Manager components include Power Manager, IR Manager, Disk Manager, Sys Manager, DS Manager, etc
IARM Publisher and Listeners Concept
IARM Manager modules
To know more about SoC/Application level APIs details use in RDK, refer the link IARM MANAGER API Documentation