八つあるAISサービス
AISサービスはAMFで定義された環境を構築するためのAPIである。この仕様で定義されるAISサービスには,(1)クラスタ・メンバーシップ・サービス,(2)チェックポイント・サービス,(3)イベント・サービス,(4)メッセージ・サービス,(5)ロック・サービス,(6)情報モデル管理サービス,(7)ノーティフィケーション・サービス,(8)ログ・サービスがある。
(1)クラスタ・メンバーシップ・サービス
論理クラスタに関するメンバーシップ情報(クラスタを構成するノードの集合)を管理する。論理クラスタは,ユニークなノード名を持つクラスタ・ノードの集合で構成される。クラスタ・ノードが障害でダウンしたり,新規ノードの追加などクラスタ構成に変更があったりすると,クラスタ・メンバーシップ構成が更新される。
クラスタ・メンバーシップ・サービスは,アプリケーションがクラスタ・メンバーシップとクラスタ・ノードに関する情報を得るためのAPI関数を提供する。メンバーシップが変化した場合には,アプリケーションが変更通知を受け取るために「CallBack機能」を登録することも可能である。すべての関数はクラスタ内の全ノードで利用可能である。
(2)チェックポイント・サービス
故障時にアプリケーションを保護するために使うチェックポイント・データを処理するためのサービスである。再起動やフェイルオーバー手続きによってプロセスが回復する時に,前のチェックポイント・データを基に回復し,故障の前に記録された状態から実行を再開できるようにして,故障のインパクトを最小限にとどめる。
チェックポイントはクラスタにとらわれずユニークな名前を定義する。チェックポイントで格納されたデータのコピーはチェックポイント・レプリカと呼ばれ,高速にアクセスできるように主記憶上に格納される。
チェックポイントは,ノード故障からの保護のため,クラスタの異なるノードにいくつかのレプリカを持てる。ただしシステムで使っていないチェックポイントを蓄積しないように,レプリカには保持時間が設定されている。
(3)イベント・サービス
イベントを通して通信するイベントの発行者と参加者の非同期通信をベースにした,発行/参加通信メカニズムを提供する。ここで使われるメカニズムを「イベント・チャネル」と呼ぶ。
イベント・サービスを実装するプロセスは,イベントを発行したりイベントの受信に参加するためにイベント・チャネルを実行する。発行者も同じイベント・チャネルに参加できる。 参加者は匿名であり,発行者とは関係なくいつでもイベント・チャネルに参加・退出できる。
(4)メッセージ・サービス
メッセージ・キューのコンセプトに基づき,バッファ化されたメッセージ交換システムを提供し,メッセージ・キュー・グループを通した負荷分散をサポートする。
メッセージ・キューは優先度の異なるメッセージを格納するデータ領域の集まりで構成する。各メッセージはメッセージ・キューに蓄積され順次読み出される。
(5)ロック・サービス
クラスタ内の異なるノード上のプロセス間で,共有リソースの排他制御をする分散型のサービスである。
ロック・サービスは,ロック・リソースと呼ばれるエンティティを提供する。このエンティティはアプリケーション・プロセスが共用リソースに同時アクセスする際などに使われる。ロック・サービスは,排他アクセスと共用アクセスという二つのロック・モードをサポートすることで,単純なロック・モデルを提供する。
(6)情報モデル管理サービス
情報モデルのオブジェクトをすべて管理し,アクセスし,かつこれらのオブジェクトを管理するためのAPIを提供する。情報モデルはオブジェクト属性をUML(unified modeling language)と呼ぶ言語で記述する。
ここで情報モデルのオブジェクトは管理オブジェクトを定義する「構成オブジェクト」とその構成要素(チェックポイント・サービスのチェックポイントなど)を定義する「ランタイム・オブジェクト」に分かれる。
(7)ノーティフィケーション・サービス
インシデントやエンティティの状態変化を通知するサービスである。通知にはアラーム,状態変更,オブジェクト生成/削除,属性値変更,セキュリティ・アラームの5種類がある。イベント・サービスと同様に発行/参加通信メカニズムを取る。