この章では、Oracle User Messaging Serviceにパッケージ化されているユーザー・メッセージング・プリファレンスについて説明します。 ここでは、メッセージング・チャネルの使用方法、およびメッセージング・フィルタを使用した連絡ルールの作成方法について説明します。
注意: Oracle User Messaging Serviceのアーキテクチャおよびコンポーネントについては、『Oracle Fusion Middleware Oracle SOA Suiteスタート・ガイド』を参照してください。 |
項目は次のとおりです。
ユーザー・メッセージング・プリファレンスを使用すると、複数のチャネル(配信タイプ)にアクセスするユーザーは、メッセージを受信する方法、時期および場所を制御できます。 ユーザーは、フィルタ(配信プリファレンス)を定義して、メッセージの配信先チャネルとその環境を指定します。 ユーザーのデバイスおよびフィルタに関する情報は、Oracle Fusion Middlewareでの使用がサポートされているデータベースに格納されます。
アプリケーション開発者にとっては、ユーザー・メッセージング・プリファレンスを使用すると柔軟性が増します。 電子メールを送信するか、SMSメッセージを送信するかを決定するためのビジネス・ロジックが必要なアプリケーションとは異なり、このアプリケーションでは、単にユーザーにメッセージを送信するのみで、そのメッセージはユーザーのプリファレンスに従って配信されます。
プリファレンスはデータベースに格納されるため、プリファレンスの情報は、ドメイン内のユーザー・メッセージング・プリファレンスの全インスタンス間で共有されます。
oracle.sdp.messaging.userprefs
パッケージには、ユーザー・メッセージング・プリファレンスのAPIクラスが含まれています。 詳細は、Javadocを参照してください。
ユーザー・メッセージング・プリファレンスでは次の用語が定義されます。
チャネル: 電話、PDAなどの物理チャネル。
チャネル・アドレス: チャネルが通信できるアドレスの1つ。
フィルタ: 一連の通知配信プリファレンス。
システム条件: 管理者が拡張できない事前定義済のビジネス条件。
ビジネス条件: システム管理者がEnterprise Managerを通して定義し、管理するルール条件。ビジネス条件は、定義、追加または削除できます。
ルール条件: システム条件またはビジネス条件。
演算子: 比較演算子「等しい」、「等しくない」、「含む」または「含まない」。
ファクト: 送信時間や送信者など、評価のためにメッセージから渡されるデータ。
ルール・エンジン: フィルタを処理し、評価するユーザー・メッセージング・プリファレンスのコンポーネント。
チャネル: たとえば、電子メール、ボイスまたはSMSなどのトランスポート・タイプ。
比較: ルール条件および関連する比較演算子。
アクション: 全員に送信、フェイルオーバー、チャネルに送信しないなど、ルールで指定された条件がtrueである場合に実行されるアクション。
ユーザー・メッセージング・プリファレンスでは、次の内容に基づいて、通知配信プリファレンスを構成できます。
適切に定義された一連のルール条件(システム条件またはビジネス条件)
Oracle User Messaging Serviceによってサポートされる一連のチャネルおよび対応するアドレス
ルール・エンジンによって透過的に処理される一連のユーザー・メッセージング・プリファレンスのフィルタ
通知配信プリファレンスの1つのユースケースとして、不具合追跡システムに入力された不具合に対して使用される場合があります。 たとえば、ユーザーAlexは、担当している製品に対して顧客タイプ「Premium」(customer type = Premium)により優先度「1」(priority = 1)で報告された不具合については、SMSチャネルと電子メール・チャネルを介して通知されることを望んでいるとします。 その他すべての「priority > 1」の不具合については、電子メールによる通知のみを望んでいるとします。 Alexのプリファレンスは、次のように記述できます。
例42-1 通知配信プリファレンス
Rule (1): if (Customer Type = Premium) AND (priority = 1) then notify [Alex] using SMS and EMAIL. Rule (2): if (Customer Type = Premium) AND (priority > 1) then notify [Alex] using EMAIL.
ランタイム・サービス、Oracle Rules Engineは、ユーザー・リクエストの通知配信を処理するためにフィルタを評価します。
配信プリファレンス・ルールは、ルール比較およびルール・アクションで構成されています。ルール比較は、ルール条件(システム条件またはビジネス条件)および関連する比較演算子で構成されています。ルール・アクションは、ルールで指定された条件がtrueである場合に実行するアクションです。
表42-2に、ユーザー・メッセージング・プリファレンスによってサポートされるデータ型を示します。各システム条件およびビジネス条件には関連するデータ型があり、各データ型には一連の事前定義済比較演算子があります。管理者はこれらの演算子を拡張できません。
表42-1 ユーザー・メッセージング・プリファレンスでサポートされるデータ型
データ型 | 比較演算子 | サポートされる値 |
---|---|---|
日付 |
<、>、間、<=、>= |
日付は、 |
時間 |
==、!=、間 |
時刻を表す4桁のHHMM形式の整数。 最初の2桁は24時間形式の時間です。 後半の2桁は分です。 |
数値(小数) |
<、>、間、<=、>= |
|
文字列 |
==、!=、含む、含まない |
任意の文字列。 |
注意: 文字列データ型は正規表現をサポートしません。時間データ型は、システム条件でのみ使用できます。 |
ビジネス条件は、Oracle Application Server11g Enterprise Managerを通してシステム管理者が定義し、管理するルール条件です。 ビジネス条件の追加、定義および削除の詳細は、『Oracle Fusion Middleware Oracle SOA Suite管理者ガイド』を参照してください。ビジネス条件は、キー、データ型、オプションの説明およびオプションの値リスト(LOV)で構成されています。
表42-3に、ユーザー・メッセージング・プリファレンスによってサポートされる事前定義済のビジネス条件を示します。
表42-3 ユーザー・メッセージング・プリファレンス用の事前定義済ビジネス条件
ビジネス条件 | データ型 |
---|---|
組織 |
文字列 |
時間 |
数値(小数) |
優先度 |
文字列 |
アプリケーション |
文字列 |
アプリケーション・タイプ |
文字列 |
有効期限 |
日付 |
From |
文字列 |
To |
文字列 |
顧客名 |
文字列 |
顧客タイプ |
文字列 |
ステータス |
文字列 |
金額 |
数値(小数) |
期日 |
日付 |
プロセス・タイプ |
文字列 |
経費タイプ |
文字列 |
総費用 |
数値(小数) |
処理時間 |
数値(小数) |
オーダータイプ |
文字列 |
サービス・リクエスト・タイプ |
文字列 |
グループ名 |
文字列 |
ソース |
文字列 |
分類 |
文字列 |
期間 |
数値(小数) |
ユーザー |
文字列 |
ロール |
文字列 |
特定のルールに対して、ユーザー・メッセージング・プリファレンスのユーザーは、次のいずれかのアクションを定義できます。
全員に送信: ブロードキャスト・メッセージをブロードキャスト・アドレス・リストのすべてのチャネルに送信します。
フェイルオーバー: 1つのメッセージの送信に成功するまで、アドレス・リストのチャネルに対してメッセージを順に送信します。 つまり、現在のチャネルが失敗ステータスを戻すと、次のチャネルへの送信が実行されます。ユーザーは、ユーザー・メッセージング・プリファレンスを使用してチャネル固有のステータス・コードまたは有効期限を指定することはできません。
チャネルに送信しない: すべてのチャネルにメッセージを送信しません。
ヒント: ユーザー・メッセージング・プリファレンスでは、指定されたチャネルに送信しないように指示するフィルタ・アクションは提供されません。ルールには、肯定アクションのみを指定し、否定アクションを指定しないことをお薦めします。 |
デフォルト・アドレス: アクションを定義しない場合は、Enterprise Managerの「メッセージング・チャネル」ページで定義したデフォルト・アドレスにメッセージが送信されます。
ユーザーが作成したすべてのチャネルは、そのユーザーのシステムIDに関連付けられます。Oracle User Messaging Serviceにおけるチャネルは、携帯電話などの物理的なチャネルおよびデスクトップで実行している電子メール・クライアント・アプリケーションの両方を表し、「メッセージング・チャネル」タブ(図42-1)で構成できます。
「メッセージング・チャネル」タブで、ユーザーは次のタスクを実行できます。
チャネルを作成する手順は、次のとおりです。
チャネルを編集するには、そのチャネルを選択して「編集」をクリックします(図42-4)。 チャネルの編集ページが表示され、第42.2.1項「チャネルの作成」で説明したチャネル・プロパティを追加または変更できます。
チャネルがアイデンティティ・ストアのユーザー・プロファイルから取得した情報に基づいている場合、アドレスはユーザー・メッセージング・プリファレンスで変更できません(図42-5)。 このようなチャネルで実行できるのは、そのチャネルをデフォルトに設定する操作のみです。
電子メールが通知受信のデフォルトです。 他のチャネルをデフォルトとして設定するには、そのチャネルを選択して「編集」をクリックし、「デフォルト・チャネルとして設定」をクリックします。 選択したチャネルの横にチェックマーク(図42-7)が表示され、そのチャネルが通知受信のデフォルト手段であることを示します。
「メッセージング・フィルタ」タブ(図42-8)を使用すると、ユーザーは受信する通知のタイプを指定するフィルタのみでなく、比較演算子(「は次と等しい」、「は次と等しくない」など)の組合せでこれらの通知を受信するためのチャネル、通知タイプ、コンテンツやソースを説明するビジネス条件、そして最後に通知アクション(すべてのチャネルへの通知の送信、チャネルの通知受信のブロック、または最初に使用可能なチャネルへの通知の送信)を指定するフィルタを作成できます。
図42-9に、「Travel Filter」というフィルタの作成を示します。このフィルタは、weblogicという名前のユーザーが、自分が出張している間の顧客に関する通知の処理方法を指定しています。 すべてのフィルタ条件に一致した通知は、最初に「業務用携帯電話番号」チャネルに送信されます。 このチャネルが使用できない場合、次に使用できるチャネルとして「勤務先電子メール」が選択されているため、Oracle User Messaging Serviceは通知を電子メールとして送信します。
フィルタを作成する手順は、次のとおりです。
「フィルタ名」フィールドにフィルタの名前を入力します。
必要に応じて、「説明」フィールドにフィルタの説明を入力します。
次のように、「条件」セクションのリストおよびフィールドを使用して、フィルタ条件を定義します。
「次のすべての条件」または「次の任意の条件」オプションを選択して、通知がすべての条件を満たす必要があるのか、それとも一部の条件なのかを選択します。
通知の属性を選択します。属性またはビジネス・コンポーネントは次のとおりです。
組織
時間
優先度
アプリケーション
アプリケーション・タイプ
有効期限
From
To
顧客名
顧客タイプ
ステータス
金額
期日
プロセス・タイプ
経費タイプ
総費用
処理時間
オーダータイプ
サービス・リクエスト・タイプ
グループ名
ソース
分類
期間
ユーザー
ロール
選択した条件タイプを次の比較演算子と組み合せます。
は次と等しい
は次と等しくない
次を含む
次を含まない
「日付」属性を選択する場合は、比較演算子を次の中から1つ選択し、次にカレンダ・アプリケーションから適切な日付を選択します。
等しい
等しくない
は次より大きい
以上
は次より小さい
以下
その間
平日
週末
属性または演算を示す適切な値を追加します。
「追加」(図42-9)をクリックして、表に属性と比較演算子を追加します。
この手順を繰り返してフィルタ条件をさらに追加します。 フィルタ条件を削除するには、「削除」(図42-6)をクリックします。
次の配信ルールの1つを選択します。
選択したすべてのチャネルにメッセージを送信: リストしたすべてのチャネルにメッセージを送信するには、このオプションを選択します。
最初の使用可能なチャネルに送信(順にフェイルオーバー): フィルタ基準に一致するメッセージを優先チャネル(上矢印や下矢印を使用して設定)または次の使用可能なチャネルに送信するには、このオプションを選択します。
メッセージを送信しない: フィルタ条件に一致するメッセージの受信をブロックするには、このオプションを選択します。
フィルタを編集するには、最初にそのフィルタを選択し、次に「編集」をクリックします(図42-9)。 フィルタの編集ページが表示され、第42.3.1項「フィルタの作成」で説明したフィルタ・プロパティを追加または変更できます。
右上の領域からアクセスできる「設定」タブ(図42-10)を使用して、ユーザーは次のパラメータを設定できます。
アクセシビリティ・モード: 「標準」または「スクリーン・リーダー」を選択します。
ロケール・ソース: 「アイデンティティ・ストアから」または「ブラウザから」を選択します。