ルーティング制御機能は、フロー定義にしたがってメッセージをルーティングし、アプリケーションを自動的に呼び出す機能です。
従来、アプリケーションの制御ロジックで行っていたアプリケーションの呼び出しやメッセージのルーティング先を判断し、送信する処理をルーティング制御機能が代替して実行します。これにより、アプリケーションを連携するシステム構築を早期に実現することが可能となります。
ルーティング制御機能が行うメッセージルーティングの概念図を以下に示します。
フロー定義ツールで定義したルーティング定義および呼出し定義は、データベースサーバのフロー定義DBへ格納されます。
メッセージを発行する業務処理開始アプリケーションでは、アプリケーション連携実行基盤が提供するAPIにフロー定義名および業務データの内容などを指定して、メッセージを発行します。
ルーティング制御機能では、活性保守の観点から、リアルタイムに定義情報を反映していくため、フロー定義DBに格納されたフロー定義および運用情報の更新確認を行い、定義情報が更新されている場合は、フロー定義名を検索キーとしてルーティング定義および呼出し定義を獲得します。
フロー定義および運用情報の更新確認時におけるフロー定義DBへの接続は、データベースアクセス管理機能(非同期ワークユニット)またはワークユニットのDBコネクション設定(IJServerの場合)で事前コネクトを行うことにより接続にかかるオーバヘッドはなく、高速に更新確認を行うことが可能になります。そのため、業務処理開始アプリケーションは、単体のアプリケーションからメッセージを発行する運用よりもワークユニット上で動作するアプリケーションから発行する運用とすることで処理を高速化することができます。
ルーティング制御機能では、獲得したルーティング情報をもとに最初に送信するキューを決定します。
ルーティング制御機能では、ルーティング定義情報、呼出し定義情報、フローの制御情報および業務データを格納したメッセージを生成し、ルーティングされるキューへ送信します。フローの制御情報は、アプリケーション連携実行基盤の各機能が内部管理する制御データです。
業務処理実行アプリケーションでは、受信したメッセージから呼出し定義情報を獲得し、ユーザアプリケーションに業務データの受渡しを行います。
ルーティング制御機能では、メッセージから獲得したルーティング情報をもとに次に送信するキューを決定します。送信先が分岐されている場合は、フロー定義で指定された分岐するための条件式でメッセージに格納されている業務データを評価し真となる送信先へメッセージを分岐します。
ルーティング制御機能は、決定した次のキューへメッセージを自動的に送信します。