RDK Documentation (Open Sourced RDK Components)
IARM Manager

Description

IARM (Inter Application Resource Management) is a mechanism for interprocess 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.

Basically there are three IARM entities involved for development

  1. IARM Bus
  2. IARM Application (Consumers/Listeners)
  3. IARM Manager (Publishers)
IARM Bus
  • 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 is 'Subscribe for system events' and 'Invoke RPC Methods'
IARM Application
  • 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
  • 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

Modules

 Events and Remote Procedure Calls
 IARM-Bus is a platform agnostic Inter-process communication (IPC) interface. It allows applications to communicate with each other by sending Events or invoking Remote Procedure Calls. The common programming APIs offered by the RDK IARM-Bus interface is independent of the operating system or the underlying IPC mechanism.
 
 HAL Types and Public API
 Described herein are the IARM-Bus HAL types and functions that are part of the Power Manager, Deep Sleep Manager and IR Manager applications.