アプリケーション間を連携するにはさまざまな技術があり,適材適所に使い分ける必要がある。Part1では「ファイル転送」「RPC」「メッセージ・キューイング」「EAI」という4種類の技術の特徴を解説する。
4種類のシステム間連携方法にはそれぞれ長所,短所があり,導入時のポイントは異なる(図1,表1)。4種類の技術は,同期と非同期の技術に分類できる。同期連携はプロシージャ・コールで,非同期連携はファイル転送とメッセージ・キューイング,EAIになる。
ファイル転送とメッセージ・キューイングの違いは,送信に適したデータ・サイズと送信頻度にある。ファイル転送は,大きなファイルを少ない頻度で送信するのに適している。一方メッセージ・キューイングは,小さいデータを頻繁に送信するのに適している。ただし,ファイル転送で小さいデータを頻繁に送信できないわけではない。メッセージ・キューイングで大きなデータを送信することももちろんできる。適用範囲は完全に分かれているわけではなく,かなり重なっている。
EAIツールは,前述した3種類の技術の上位に位置する応用製品になる。EAIツールが効果を発揮するのは,連携するシステム数が増えて運用管理や連携用のプログラム開発が複雑になった時である。以下,図1と表1で示した4種類の技術を使う上でのポイントや注意点などを順番に解説していこう。
(1)ファイル転送
システム間連携技術の中で最も導入しやすいのがファイル転送である。使い古された技術であるが,応用範囲は広い。ファイル転送には多くの市販製品があるが,多くのOSに付随するFTP(File Transfer Protocol)で実現できる。ただ,OS添付のFTPは無償で利用できるが,多くの場合,業務システムで使うにはログの採取や失敗時の再送機能などを作り込まなければならない。
ファイル転送は,大量データをまとめて送るのに適している。この後紹介するメッセージ・キューイングよりも,大量データの送信速度は概ね速い。また,システム間の密接度が低いため,他システムの影響を受けにくい。これはシステムがダウンしても,他のシステムに与える影響が小さいことを意味する。もう一つ忘れてならないのは,既存のプログラムを変更しなくてもよい点だ。送信プログラムをアプリケーションとは別に作成する必要があるが,業務アプリケーションそのものに手を加えないため,アプリケーションがシンプルになる。
ファイル転送の欠点は,リアルタイムで転送できない点である。ファイル転送の送信間隔を短くすればリアルタイムに近づくものの,プロシージャ・コールのような同期処理は不可能。メッセージ・キューイングに比べても即時性が低い。
(2)プロシージャ・コール
厳密なリアルタイム処理が必要な場合は,プロシージャ・コールを選ぶことになる。ただこの技術は,システム間を密に結合する場合に限定して使った方が良い。プロシージャ・コールの代表は,米OMGの分散オブジェクトの規格「CORBA(Common Object Request Broker Architecture)」や米Microsoftの「DCOM(Distributed Common Object Model)」などだ。ソケットなどを使って独自に作り込むことも可能だが,高いプログラム・スキルが要求される。
プロシージャ・コールを利用する場合は,連携するアプリケーションにネットワーク・モジュールを組み込み,プログラムの中から他システムのプロシージャを直接呼び出す。ファイル転送のように別途プログラムを用意する必要はない。
プロシージャ・コールの特徴は,何といってもリアルタイム性だ。通常の同一プロセス内での関数呼び出しのように,システム間をまたがるプロシージャ・コールもプロシージャからの応答があるまで待ち,応答があってから処理を継続する。同期を保証するのだ。ただ,この特徴はトラブルに弱いという面を併せ持つ。プロシージャ・コールで連携している場合,連携先のシステムがダウンするとただではすまない。一緒にダウンする可能性が高い。