|
|
機能概要〜リアリティ実現のために |
4. メッセージキューイング
メッセージキューイングを利用した非同期処理は、システムの可用性、信頼性を高度化すると共に、プログラムを単機能化することで開発効率の向上とバグの少ないプログラミングを可能にします。
キューイングされるメッセージにデータ型の制約はありません。通常のトランザクションの他XMLメッセージなどもキューイングすることができます。キューファイルは、アプリケーションからのリクエストに対してキューメッセージを戻し、内容を削除します。
同時に他のキューファイルにメッセージを転送することも可能です。また、キューファイルへの登録時、更新時(削除含む)にキューファイルからイベントを発行して外部アプリケーションを起動することもできます。これらによりポーリング型のシステム、イベント駆動型のシステムのいずれも容易に構築することができます。
|
負荷分散 |
|
|
SyOM は負荷分散として、同系分散と異系分散をサポートしています。同系分散では、キューイングされたメッセージを、1つ又は複数のアプリケーションサーバで起動する同一のサーバアプリケーションによって処理します。
例えば、分散入力された売上トランザクションを売上トランザクションキューに登録し、それを非同期に実行される複数サーバ上の販売データベース更新アプリケーションにてデータベースへ更新することが可能です。
異系分散は、垂直分散と特異分散に分けられます。前者は、処理プロセスを実施手順に従ってグループ化し、グループ間をキューで連携し、それぞれのグループを異なるアプリケーションサーバで処理させるものです。
後者は、例外処理や高負荷処理だけを別のアプリケーションサーバで処理させるものです。
|
フォールトトレラント |
|
|
同系分散下では、いずれかのサーバアプリケーションが停止した場合でも、他のサーバアプリケーションが稼動していれば処理を継続することができます。アプリケーションサービスを継続したまま、障害が発生したサーバ機を交換し、再稼動させることも可能です。
また、アプリケーションの実行結果を監視するためのキューを用意することで、異常が発生した処理系を自動的に発見し、管理者に警告を発することも可能です。後述するバッチジョブとの連携機能を使えば、こうしたアプリケーション単位での極めて詳細な監視システムを容易に構築することができます。
|
バッチジョブとの連携 |
|
|
SyOM では、キューファイルを介して、トランザクション処理とバッチ処理とをシームレスに連携する機能を有しています。トランザクション処理で特定のキューファイルにメッセージが登録されると、それをイベントとみなしてジョブ自動化機能で登録されたバッチ処理を起動することができます。
これらによって従来にない、トランザクション処理とバッチ処理をイベント連携したアプリケーションを構築することができます。現実のほとんどの業務は、トランザクション処理とバッチ処理との連携です。
SyOM を使うことでこれらをシームレスに連携したアプリケーションを構築することができると共に、それぞれを異なるサーバで実行させることができます。
|
プログラムの単機能化と高速化 |
|
|
トランザクションを処理するためには、トランザクションデータの生成、データベースへの登録、不整データの通知、トランザクションデータの修正及び削除などの一連の機能が必要です。
従来の多くのオンラインシステムでは、これらを1つのトランザクション処理プログラムで構築しているがゆえに大量のコードを抱えるメンテナンス性が低いものとなっています。メッセージキューを利用すれば、これら機能を分別し、単純化された機能単位にプログラミングすることができます。
ゆえにデバッグが大変、容易になります。また、プログラム単位での機能や使い方の習得が、容易なため、開発されたプログラムを他のシステム内でプログラム部品として活用することが容易です。
単機能に区分化されたプログラムとすることで、トランザクションの登録はメッセージキューへの登録にて完結し、以降のデータベースへの更新処理等からは分別されるために、利用者には極めて高速なレスポンスなシステムを構築することができます。
|
|
機能概要 Page 4 / 10 |
|
|