前回は、CORBAとEJBが仲のいい兄弟で、それぞれの得意分野で両者を使い分けることが重要であるという話をしました。今回は、CORBAが実際にどこでどのように使われているのか、CORBAベースのアプリケーションサーバの優位点は何なのかを解説します。前半は事例をご紹介し、後半はやや技術的な話をしたいと思います。
CORBAは、特定の用途に限定されない汎用的な分散オブジェクト基盤ですから、非常に広い範囲をカバーします。その中でも、CORBAが特に得意とするのは、次のような分野です。
●通信ミドルウェアとしての利用
これは、従来CORBAが最も得意とする分野です。例えば、テレコムのネットワーク管理システムでの交換機や伝送装置の監視や制御のための通信、銀行や証券会社のトレーディング・システムのクライアントとサーバ間の通信、工場のプロセス制御システムでの各装置やサーバ間の通信、交通制御システムでのトラフィック監視や遠隔操作、といった分野でCORBAが広く使われています。
●異機種分散システムを統合するための共通基盤としての利用
これも、CORBAがもともと得意としてきた分野ですが、インターネットの爆発的な普及によって、ニーズが急増している分野です。いわゆるドット・コム企業ではない既存の企業が、eビジネスで競争力のあるサービスを提供していくためには、単なるスタンドアロンのWebサーバやアプリケーションサーバではなく、これまで蓄積してきたシステム資産とインターネットを統合していく必要があります。このためののりになるのがCORBAです。この分野では、アメリカン航空、ボーイング、フォードといった幾多の成功例があります。
●アプリケーション・サーバとしての利用
連載1回目に、「アプリケーション・サーバ=EJB」という常識(?)にあえて挑戦しましたが、実際にCORBAをアプリケーション・サーバとして使用するケースが増えています。これらのケースでは、当然、CORBAでなければ実現できなかったメリットがあります。
1つ目の「通信ミドルウェアとしての利用」は、これまでに膨大な事例があり、CORBAの適用分野としては広く知れ渡っていますので(例えば、http://www.iona.co.jp/aboutus/customers/index.htmlをご参照ください)、今回は、2つ目の「異機種分散システムを統合するための共通基盤としての利用」と、3つ目の「アプリケーションサーバとしての利用」を重点に、適用事例を交えて解説したいと思います。
■成功の要因
アメリカン航空が運営する「AA.com」は、大手航空会社によるこの分野での最初の総合旅行サイトです。
あまり知られていませんが、このシステムを裏から支えているのがCORBAなのです。AA.comは、パトリシア・シーボルトの『ネットビジネス戦略入門』(鈴木純一監訳、翔泳社)で、ネットビジネスの成功事例として真っ先に取り上げられています。同書では、このアメリカン航空が成功した要因を次のように分析しています。
■バックエンド・システムをコンポーネントととらえる
これらのサービスを実現するためには、既存のバックエンド・システムである、SABRE座席予約システム、Aアドバンテージ会員データベース、パートナーのホテル予約システム、レンタカー予約システムなどとの統合が求められました。この中でもSABRE座席予約システムは、1960年代初期にアメリカン航空とIBMの合弁ベンチャーによってメインフレーム上に開発された、トランザクション処理システムの草分けであり、現在でも引き続き世界最大規模のシステムです。
ここで、アメリカン航空は、既存のバックエンド・システムを再設計するのではなく、既存システムを「サービス」と考え、これらのサービスを組み合わせて、顧客に直接サービスを提供する、フロント・エンド・サービスを開発するというアプローチをとりました。この過程で当然これまでのシステムには、認証、セッション管理、パーソナリゼーションといった機能が不足していることが明らかになっていきます。これらのサービスも、既存システムと同様に、交換可能な、いわゆるコンポーネントとして設計しました。そして、これらのコンポーネントを束ねる共通基盤としてCORBAを採用したのです(図1)。
このようなアプローチによって、1960年代にメインフレーム・ベースで開発された巨大トランザクション処理システムが、最新のWeb技術と結びつくことによって、インターネット・サービスを提供しているのです。しかも、Webによる座席予約が余剰座席を販売する最も効率の良い方法であることが実証されており、同社にとって、ほかの座席予約システムを凌ぐ収益性の高さを実現しているのです。
DLJ direct SFG証券(http://www.dljdirect-sfg.co.jp/)は、1999年に営業を開始した日本を代表するオンライン証券会社です。
オンライン証券会社にとっては、インターネット・サービスの停止がすべてのサービスの停止を意味します。そのようなミッション・クリティカルな分野で、CORBAベースのアプリケーション・サーバが使用されています。しかも、同社は稼働率99.97パーセントという、インターネット証券取引としては驚異的な可用性目標を掲げ、実際にそれを達成しています(『日経コンピュータ』2000年5月22日号「特集 稼働率の極限に挑む」)。
同社のシステムの特長は、ビジネス・ロジックをCORBAベースのアプリケーション・サーバで実装することにより、さまざまなプラットフォームと開発言語に対応したことです(図2)。連載第1回目にも述べましたが、フロント・エンド・システムの技術進歩は急速で、次々とトレンドが移り変わっていきます。この点に関しては、Java Solutionフォーラムの読者の皆さんには釈迦に説法でしょう。ここで、ビジネス・ロジック層までもが、このフロント・エンドの早い動きに振り回されて、個々に対応しなければならないとしたら、開発者にとっては悪夢の連続です。
フロント・エンドが、C++ベースの専用ソフトウェアでも、HTTPベースのWebブラウザでも、あるいはi-モード端末でも、ビジネス・ロジックは共通に使えるというのが理想です。DLJ ディレクト SFG証券で、この理想を実現しているのがCORBAベースのアプリケーションサーバなのです。すべてのフロント・エンドがCORBAクライアントとして書かれているため、さまざまなプラットフォームのさまざまな開発言語から、共通のIDL(Interface Definition Language)インターフェイスでアプリケーションサーバにアクセスできるのです。しかも、同社は3カ月間という驚異的に短い開発工期でシステムを公開しています。
CORBAベースのアプリケーションサーバの優位点は、プラットフォームとプログラミング言語からの独立性だけではありません。CORBAの優位性のもう1つは、スケーラビリティと柔軟性の高さです。ここで、CORBAアプリケーションとEJBアプリケーションを比較した、連載第2回掲載の図1を思い出してください。前回の説明のように、EJBアプリケーションがビジネス・ロジックを実装したメソッドだけからなり、EJBコンテナ上で実行されるのに対して、CORBAアプリケーションは、スタンドアロンで実行されます。このため、開発生産性という点では、一般的にEJBの方が優れていますが、スケーラビリティと柔軟性という点では、CORBAの方が優れています。ただし、開発生産性と同じく、これにもただし書きがあり、スケーラビリティと柔軟性を享受できるのは、CORBAのアーキテクチャとアプリケーションの要求を十分に理解して設計した場合の話です。ここでは、CORBAベースのアプリケーションサーバのスケーラビリティと柔軟性の源泉について、少し技術的な説明をしたいと思います。
Copyright © ITmedia, Inc. All Rights Reserved.