intra-mart Accel Platform IM-MessageHub プログラミングガイド 第3版 2021-04-01

3. IM-MessageHub 概要

ここでは IM-MessageHub の概要と構成要素について説明します。

3.1. IM-MessageHub とは

IM-MessageHub とは、メッセージ配信の共通機構です。
intra-mart Accel Platform 上のアプリケーションや各機能は、共通の受け口にメッセージの配信を依頼することで、メッセージを一斉配信することができます。
IM-MessageHub が提供する主な機能は以下の通りです。
  • メッセージ配信の共通的な受け口

    アプリケーションや各機能は、 IM-MessageHub へ配信を依頼するだけで、 IM-MessageHub に登録されている全ての配信先メディアにメッセージを配信することができます。

  • 配信先をプラガブルに追加可能

    新たに配信先メディアやデバイスが増えた場合でも、送信元のアプリケーションや各機能のソースコードへの修正は不要です。

  • メッセージの宛先指定方法を拡張可能

    IM-MessageHub では指定された宛先をユーザ単位に自動解決した上でメッセージ配信する仕組みが備わっています。
    これにより、例えば「ある組織に所属するメンバー全員」というようなグループ単位で宛先を指定するといった拡張が可能です。

3.2. IM-MessageHub の全体の流れ

IM-MessageHub を利用したメッセージ配信は、下図のように行われます。
../../_images/immh_overview.png
図:メッセージの流れ
メッセージ配信は、大きく3つの部分に分けられます。
  1. 配信先メディア (図中の DeliveryMedia
  2. 上記2つの間でメッセージ配信の制御を行う「 IM-MessageHub 」(図中の IM-MessageHub
そのうち、本書では「 メッセージ配信アプリケーション 」側 と「 配信先メディア 」側に分けて、実装の流れを説明します。

3.2.1. IM-MessageHub を利用してメッセージを配信する

../../_images/immh_overview_deliver_only.png
IM-MessageHub を利用して、メッセージを配信するために必要な資材は以下の通りです。
  1. 配信の契機を表すイベントクラス(図中の Event
  2. 配信するメッセージのテンプレート(図中の TemplateFile
    • 処理フローとして「 配信先メディア 」側にありますが、実際には配信する側が用意すべき資材になります。
  3. 配信するメッセージ(図中の Message
  4. 配信処理を依頼するサービスクラス(図中の MessageService
  5. (1~4の資材・クラスを用いて)配信処理を実際に行うクライアント(図中の Client
各資材の準備方法についての詳細は「 IM-MessageHub を利用してメッセージを配信する 」を参照してください。

3.2.2. IM-MessageHub に配信先を追加する

IM-MessageHub に配信先を追加する配信先メディア 」側の構成は、下図の通りです。
../../_images/immh_overview_mediapp_only.png
IM-MessageHub を利用して、配信されるメッセージを受け取る(配信先メディアを追加する)ために必要な資材は以下の通りです。
  1. 配信先メディアの定義(図中の DeliveryMedia
  2. 配信先メディアへメッセージを配信するクラス(図中の MessageDeliverer(Per Media)
各資材の準備方法についての詳細は「 IM-MessageHub に配信先を追加する 」を参照してください。

3.3. IM-MessageHub を構成する要素

IM-MessageHub を構成する主要な要素と、その詳細について説明します。

3.3.1. メッセージ

IM-MessageHub が一回の処理で取り扱う情報です。
IM-MessageHub の扱うメッセージの構成内容は以下の通りです。
  • メッセージID(ユニーク)
  • メッセージが発生した イベント
  • メッセージの送信者
  • メッセージの宛先
  • メッセージの付帯情報(属性)

3.3.2. メッセージ配信受付API

IM-MessageHub が提供する、メッセージ配信の受け口となるAPIです。
IM-MessageHub を利用してメッセージ配信を行うすべてのアプリケーションは、配信依頼を行う際にこのAPIを利用します。

3.3.3. メッセージ配信アプリケーション

IM-MessageHub を用いてメッセージの配信を行っているアプリケーションを指します。
intra-mart Accel Platform が提供するアプリケーションでは「 IM-Workflow 」「 IMBox 」「 intra-mart Accel Collaboration 」などが挙げられます。

3.3.4. イベント

IM-MessageHub に対してメッセージ配信依頼を行う契機となった情報です。
イベントを構成する具体的な要素は以下の通りです。
  • メッセージの配信依頼をしたアプリケーション
  • メッセージの配信依頼の契機となった処理
IM-MessageHub はイベントの情報からテンプレートの決定などを行います。

3.3.5. 配信先メディア

IM-MessageHub が依頼されたメッセージを実際に配信する先となる媒体やアプリケーションなどの総称を指します。
intra-mart Accel Platform が提供している配信先メディアには 「メール」「 IMBox 」「 IM-Notice 」などが挙げられます。

3.3.6. 配信先メディア解決

IM-MessageHub が配信するメッセージの配信先メディアを決定する機能です。
通常、IM-MessageHub は、登録されている全ての配信先メディアへ配信処理を行います。
配信先メディア解決では、配信を依頼されたメッセージのイベント情報などから、登録されている配信先メディアを絞り込みます。
IM-MessageHub では配信先メディア解決を利用した場合、絞り込まれた配信先メディアにのみ配信処理を行います。

3.3.7. 配信クラス

IM-MessageHub に配信依頼されたメッセージを、登録されている配信先メディアへ実際に配信するクラスです。
IM-MessageHub が依頼されたメッセージを配信先メディアへ配信する場合、内部的にはそれぞれの配信先メディアに紐づく配信クラスへ、配信処理を依頼する形となります。
開発者が新しい配信先メディアを追加しようとした場合、新しい配信先メディアへ配信処理を行う配信クラスを作成することとなります。

3.3.8. テンプレート

IM-MessageHub がメッセージを配信する際に利用するテンプレートを指します。
IM-MessageHub を利用してメッセージを配信する際、メッセージ配信アプリケーションは、利用するテンプレートを作成することが可能です。
その他、 IM-MessageHub では、従来 intra-mart Accel Platform で利用してきたメールテンプレートについてもサポートしています。

3.3.9. テンプレートエンジン

メッセージ配信アプリケーションから渡ってきた情報 と テンプレートを元に、配信先メディアに配信される実際のメッセージを生成する機能です。