RMSをより理解しやすくするため、オブジェクト指向の考え方に基づき、RMS BM (ベースモニタ) の内部機構を簡単に説明します。
個々のオブジェクトは、自らの状態およびディテクタ等の他のオブジェクトから受信したメッセージに基づき、定められた規則に従って動作する (通常はシェルスクリプトで実装されています) 独立したインスタンスです。状態、ディテクタ、スクリプトについては、"第1章 概要"で説明しています。以下のセクションでは、RMSの内部構造とオブジェクト間通信について詳しく説明します。
RMSウィザード は、RMSの監視対象であるすべてのアプリケーションの記述を生成します。この記述では、RMS固有のメタ言語を使用し、以下の特徴を持つ論理グラフによってすべてのアプリケーションを表現します。
アプリケーションが必要とする資源は、このグラフ中のオブジェクトで表す。
オブジェクト間の親子関係は、それを表す資源間の依存関係を表す。
オブジェクトの属性とは、各種資源の特性と、その資源にとって必要とされる動作を表す。
特定のオブジェクトをOnlineにしたり、Offlineにしたりする場合の事前の手順は、オブジェクトの属性として設定されたシェルスクリプトに記述されます。また、他のオブジェクトからのメッセージを受けて、オブジェクトの状態遷移に対応して実行されるべき処理を記述するスクリプトもあります。
userApplicationオブジェクトにはディテクタがありません。また、RMS Wizard Toolsまたは、RMS Wizard Kitによって作成される場合には、スクリプトも指定されません。しかし、子であるCmdlineリソースには適切なスクリプトが与えられます。オペレーティングシステム環境において、実際のユーザ業務と通信を行うのはこのオブジェクトです。この場合、userApplicationはRMSグラフにおける資源の複合状態を表す論理的なシンボルになります。
RMSオブジェクトは以下の目的でメッセージ通信を行います。
他のオブジェクトへ要求を送信する。
オブジェクトの状態変化を通知する。
通常、オブジェクトは直接の親と子のみ通信を行います。
RMSは受信した外部要求を、まず親userApplicationオブジェクトへ送信し、それから子に転送します。userApplicationオブジェクトは、状態の変化 (Faulted状態への状態の遷移など) に基づいて固有の要求を生成することもできます。userApplicationオブジェクトから発生する要求は、親から子へ転送されます (トップダウン)。