記事
Mihoko Iijima · 2020年10月27日 4m read

【はじめてのInterSystems IRIS】Interoperability(相互運用性):動作の仕組みを知ろう

この記事はこちらの投稿の続きの内容です。

この記事では、Interoperability(相互運用性)メニューを利用してシステム統合を行う際、どのような仕組みで動作しているのかについて解説します。

 

 

図の左側は、外部システムから送信される情報の受け入れ窓口です。

情報の受信方法としては、ファイルを読むために指定ディレクトリを一定間隔で監視したり、データベースへ定期的に問い合わせを行ったり、入力を待機したり、または他システムのアプリケーションから直接呼び出して渡してもらうなど、様々な方法を用意しています。

IRIS の Interoperability(相互運用性)メニューで作成するシステム統合の仕組みの中では、受信した情報を メッセージ と呼ぶオブジェクトに格納し、次の処理を担当するコンポーネントへ メッセージ を送信します。
メッセージ は受信した情報を全て利用して作成することも、一部抜粋した情報のみを利用することも自由に選択できます。

メッセージ に含まれる情報を外部システムへ 送信したい場合は、外部システムへ処理を依頼する役割があるコンポーネント(図の右側)へメッセージ を送信します。メッセージ を受信したコンポーネントは、外部システムへ処理を依頼します。

また、メッセージ に対して人の審査を必要としたり、データ変換やデータの付け足しなどが必要な場合は、処理の流れを調整する役割の図の中央のコンポーネント(BPM)へ メッセージ を送信します。

各コンポーネント間のデータ送受信には、メッセージ を利用します。
メッセージ の送受信が発生すると、自動的に メッセージ をデータベースに格納しています。

メッセージ がデータベースに保存されることを利用して、データ変換前後の違いを確認したり、運用中の場合はトラブル発生時に処理の元となった メッセージ を確認したり、途中からのやり直し(再送)を行ったり、開発・テスト・運用のそれぞれの段階で メッセージ を利用した状態の確認が行えます。

システム統合のための仕組みをシンプルな絵にすると、下図のように3つのコンポーネント(ビジネス・サービス、ビジネス・プロセス、ビジネス・オペレーション)に分かれた絵になります。

また、使用するコンポーネントの情報(接続先情報など)を保存しておく「プロダクション」と呼ぶ定義もあります。

 

各コンポーネントの役割は、以下の通りです。

ビジネス・サービス
外部からの情報を受付、メッセージ を作成し他コンポーネントへ メッセージ を送信する役割

ビジネス・プロセス
メッセージ を受信すると起動し、処理の調整(定義した順番どおりにコンポーネントを呼び出す/応答待ちを行う/人が審査する結果を待つ など)を行う役割

ビジネス・オペレーション
メッセージ を受信すると起動し、外部システムへ処理の依頼を行う役割

コンポーネント間のデータの送受信には、メッセージ が利用されます。
ビジネス・サービス以外のコンポーネントは、メッセージ を受信することで処理を開始します。

 

さて、この メッセージ 、どのような意図で作成し、利用するものなのでしょうか。

メッセージ は、ビジネス・サービスに入力された情報の中から外部システムへ中継したい情報を取り出して作成します。

IRIS に接続する外部システム全てが同種のデータフォーマットで送信するわけではないのと、中継内容も様々なので、プロダクションでは中継したい情報にあわせ自由にメッセージクラスを定義できます 。

また、メッセージ はリクエスト(=要求メッセージ)とレスポン(=応答メッセージ)の2種類を用意していて、コンポーネントの起動のきっかけになる メッセージ をリクエスト(=要求メッセージ)、コンポーネントが処理を終え、呼び出し元へ応答する メッセージ をレスポンス(=応答メッセージ)として、実装を分けています。

これらメッセージ は、具体的に中継の流れを考えながら設計していきます。

以降の記事では、サンプルのテーマを利用しながらプロダクションメッセージ 、コンポーネントの作成概要について順番に解説していきます。

10
0 0 34 1