【 ここから本文 】
- TOP
- > Topics : データセンター
- >
データセンター
ソーシャルブックマークに登録 :
印刷用ページの表示
SOAで市場競争を勝ち抜け!──「システム開発の迅速化」のメリットを究める
(2006年09月22日)
アーキテクチャの分散化
ザッグのシステムを構成する10のコンポジット・アプリケーションは、2つのプラットフォーム(.NETとJava)上で展開されるが、アプリケーション内でのやりとりはそれぞれのネーティブ・プロトコルで行われる。
「このアプローチを採用したことで、開発をシンプルに行うことができたし、パフォーマンスも向上した」と強調するのは、ザッグのソフトウェア開発担当副社長、ヨシ・オカヤマ氏だ。なお、コンポジット・アプリケーションのいくつかは、専用のデータベースやサーバを備えている。
例えば、装備および価格のコンポジット・アプリケーションは、どちらも独自の自動車情報データベースを備えている。
企業は一般に、ESB(Enterprise Service Bus)やオブジェクト・ブローカといったオーケストレーション・メカニズムを利用してサービス・コールを管理することが多い。しかしながら、6カ月という期限を切られていたザッグには、そうしたインフラを開発・導入する時間的余裕がなかった。そこでノイ氏のチームは、サービスの提供やコンポジット・アプリケーション間の連携管理に分散化アプローチを採用することにした。
ザッグのコンポジット・アプリケーションはポイント・ツー・ポイント接続で統合されており、サービスが予定外の方法で組み合わされることがないよう、パス・リライアビリティ製のアプリケーション・モニタによって、プロセス・コールを厳密に定義されている。このアプローチを採用すれば、SOAのアドバンテージを得るために、事前にすべてのインフラを構築しておく必要はない。状況に応じて段階的に整備していけばよいのだ。
ポイント・ツー・ポイントの通信メカニズムは、使われる環境によって変化する。ザッグでは、パフォーマンス上の理由から、アプリケーション内の通信には通常、ネーティブ.NETまたはJavaバイナリ・プロトコルを用いている。また、.NETアプリケーションとJavaアプリケーションのインタフェースとしては、ベーシックなWebサービス・プロトコルであるSOAPとWSDLを選択することにした。
一方、他のケースでは、REST(Representational State Transfer)アプローチが効果的なこともある。RESTでは、メソッド・コール・パラメータがURLとしてパスされ、データはシンプルなXMLドキュメントとして返される。
「この手法は、基本的にWebページをコンポジット・アプリケーションにするもので、Ajax(Asynchronous JavaScript and XML)クライアントには特に有効だ」とパーンブラッド氏は説明する。例えば、在庫アプリケーションは、在庫情報を検索して抽出するノウハウを持つ、完全自己充足型のAjaxアプリケーションだ。
パフォーマンスの改善
Ajaxアプローチのもう1つのメリットは、クライアントに処理の負荷を転嫁できることだ。「Ajaxと最新のクライアントがあれば、フロントエンドでより多くのことを処理できる。古典的なWebサービス・アプローチは、(クライアント・ページが)リモート・サービスをコールし、XSL(Extensible Stylesheet Language)の変換を行うというものだった。だが、方法は1種類しかないわけではない」とノイ氏。
ザッグのWebページはコンポジット・アプリケーション・マトリクスの一部であり、ネットワークの先端(エッジ)でアカマイ製のサーバによってアセンブルされる。これにより、システムは、変更が加えられないページ・フラグメントをキャッシュしながら、変更が必要になる(ダイナミックな)ページ・フラグメントについては、複数のコンポジット・アプリケーション・サービスと個別にやり取りを行うことになる。
こうすることで、すべての顧客に対して共通のアクセスを提供しながら、特定の顧客のニーズにはアセンブルされたHTMLで対応することができるわけだ。
| 図2:ザッグのハイパフォーマンス・アーキテクチャ |
新しい道を切り開く
ザッグの統合化モデルは、ESBやEAIソフトウェアによるメッセージ・ブローカリングではなく、サービス間のダイレクト接続によって実現されている。だが、サービス間のやり取りが複雑化すれば、もっと一元化されたオーケストレーション・アプローチが必要になると、ノイ氏は見ている。そうして今後、ESBインフラへの移行が進めば、既存のサービスをバスにプラグインすることで中央からの監視、管理が可能になり、ESBが提供するセキュリティやプロトコル変換サービスを活用できるようにもなるはずだ。
本稿で紹介したザッグの挑戦は、SOAへの正しいアプローチが決して1つではないことを示している。アーキテクチャが違っても、機能のアブストラクション、コンポーネントのモジュラリティ、ビジネス・プロセスに対応したサービス、というSOAの基本原理は変わらない。「インタフェースが厳密に定義され、責任範囲が明確に線引きされていれば、ピースをどのように配列するかはプロジェクトのニーズに基づいて決めればよく、既存のモデルにしばられることはない」(ノイ氏)のである。
SOAパフォーマンスを改善させるための5つのテクニック
革新的な自動車販売および自動車ローン・サービスを提供するザッグは、以下のテクニックでパフォーマンスを向上させた。
【1】 シンクライアントAjaxアプリケーションを利用して、処理負荷をデスクトップ・クライアントに転嫁する
【2】 HTMLやAjax Webサービス・コールをキャッシュするアカマイなどのコンテンツ配信サービスと契約する
【3】 パス・リライアビリティなどが提供する自動配信ソリューションで監視し、パフォーマンス改善のための優先リストを作成する
【4】 可能であれば、同じプラットフォーム上に関連サービス/コンポーネントを置く
【5】 データ集約型タスクはXMLミドル層ではなく、データベース上で実行し、可能なかぎりデータ構造を共有する



















