エンタープライズへの適用

Webアプリケーションとホストを連携する手法を教えてください

テンアートニ 中越智哉
2001/8/10

 1つは、CORBA(Common Object Requet Broker Architecture)です。CORBAそのものについての詳細は、当フォーラムでもほかに紹介記事があります(参考「いまなぜCORBAなの?」)。CORBAは、IDLを使うことによって、Java、C、C++、COBOLなど複数の言語で記述されたオブジェクトの間のインターフェイスを作り、通信を行うことができるようにするというものです。ホスト系のプログラムはCOBOLをはじめ、Java以外の言語で書かれていることがほとんどですから、これをCORBAに対応させればJavaのオブジェクトとも通信を行うことができます。

 ほかの方法としては「メッセージング(Messaging)」があります。メッセージングとは、2つのアプリケーションの間で、メッセージをやりとりすることによって通信を行う方法です。RMIなどと異なり、常に接続を確立している必要がなく、非同期的にお互いがそのメッセージに対する処理と応答を行うことができるようになっており、異機種間や異なるプラットフォーム間での通信に適しているといわれています。

 メッセージングの手法には、イベント駆動型のPublish/Subscribeモデルと、キューベースのPoint-to-Pointモデルがあります。ここでは、ミドルウェアでも多く用いられているPoint-to-Pointモデルについて簡単にご説明しましょう。

 Point-to-Pointモデルは、キューというメッセージの入れ物を使って通信を行います。キューとはメッセージを保管しておく入れ物のようなものです。通信を行う各アプリケーションは、このキューに対してアクセスを行います(キューへのアクセスは、メッセージング用のミドルウェアのAPIを使って行われます)。メッセージを送信したい場合は、相手側のキューにメッセージを送信して格納します。メッセージを受信したい場合は、自分側のキューからメッセージを取り出して受信します。

アプリケーション間のメッセージのやりとりは、いったんキューの中にたくわえられる。アプリケーションはキューからメッセージを取り出して処理を行う

 メッセージは直接アプリケーション間でやりとりされるのではなく、キューを介してやりとりされますので、アプリケーション同士が接続を確立している必要はなく、また、メッセージに対して同期的に処理を行う必要もありません。

 また、これらの方法のほかにも、特定ホスト向けのミドルウェアとして、ホスト上のモジュールを、プログラム単位で同期的に呼び出すことのできるような製品も存在します。

「Java Solution FAQ」




Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間