レベル: 中級 Matt Haynos (mph@us.ibm.com), Product Manager, WebSphere Extended Deployment, IBM
2007年 1月 16日 グリッド・コンピューティングは多くの技術によって構成されるものですが、組織がさまざまな技術の統合とデプロイメントに四苦八苦することは珍しくありません。IBM® WebSphere® Extended Deployment は、J2EE (Java™ 2 Platform, Enterprise Edition) 1.4 と Java アプリケーション・サーバーを、仮想化および管理する統合グリッド・プラットフォームの実例です。WebSphere Extended Deployment にはアプリケーションと情報を仮想化する高度な機能だけでなく、広範な管理機能も組み込まれています。この記事では、WebSphere Extended Deployment の概要を紹介し、組織が SOA 環境に最適な仮想化を基盤とした動的かつ目標駆動型のグリッド・インフラストラクチャーを実現する際にどのように役立つかを説明します。
はじめに
連載「グリッドの展望 (Perspectives on grid)」では、これまでに広範な話題を取り上げてきました。話題のほとんどは事実上、概念に関するもので、これらの概念によってグリッド・コンピューティングの世界に関連する重要な傾向と分野を掘り下げてきました。ほとんどの話題は、グリッド・コンピューティングの世界に関連する重要な傾向と有力な領域について掘り下げたものであり、事実上、概念に関するものばかりでした。これに沿って主要な技術と関連製品についても触れてきましたが、今回は少々方針を変えて特定の製品に焦点を絞りたいと思います。その対象は、WebSphere Extended Deployment (XD) です。
WebSphere XD は、統合グリッド・プラットフォームまたはソリューションの代表的な例です。記事「全体は、部分の総和よりも大きい (The whole is greater than the sum of the parts)」でグリッド・コンピューティングを構成する各機能領域をひとまとめにする際の分類法について概説しましたが、これらの機能領域はワークロード仮想化と情報仮想化という 2 つの主要な領域にグループ分けできます。多くのベンダーや製品が特定の領域に重点を置いているなか、エンド・ツー・エンドのソリューションはほとんど提供されていないのが現状です。WebSphere XD はそんなエンド・ツー・エンドのソリューションとなります。
WebSphere XD のような統合グリッド製品には、高度なグリッド機能が事前に統合されているという利点があります。管理者が、まずはスケジューリング、次にプロビジョニング、そしてワークロード管理といったように段階的に新しい機能をテストとしてデプロイする必要はありません。ここには、事前に統合されている機能を容易に拡張してユーザーの環境に統合できるように、製品またはベンダーが考えられる限りの標準に基づく最善の機能、そしてアクセス可能なサービス・インターフェースを提供してくれるという信頼が暗黙で含まれています。
WebSphere XD は、J2EE アプリケーションを仮想化するプラットフォームの一例です。WebSphere XD は、WebSphere Application Server や Apache Tomcat のようなアプリケーション・サーバーではなく、アプリケーション・サーバー上またはアプリケーション・サーバーにまたがって実行され、一連のアプリケーション・サーバーを 1 つのグリッドまたは仮想化環境としてまとめます。また、WebSphere XD がアプリケーション・サーバーで提供しているさまざまなサービス品質を大幅に拡張するという点も見逃せません。例えば、WebSphere XD では同一アプリケーションの複数バージョンのデプロイメントや、これらのバージョンを使用可能もしくは使用不可能にする機能をサポートします。これはとても素晴らしい機能です。
ワークロードの仮想化に関しても、WebSphere XD はこの後説明する高度な機能を提供します。注目に値する点は、既存の OLTP (Online Transaction Processing) アプリケーションのコードを変更しなくても、グリッドおよびインフラストラクチャー仮想化に関連するすべてのメリットを手に入れられるということです。このこと自体も大きなメリットです。
さらに、WebSphere XD では OLTP に限らず、継続的に新しいタイプのアプリケーションに焦点を合わせたサポートを提供しています。V6.0 では、トランザクション・バッチおよび数値計算アプリケーションなどのアプリケーション・タイプが追加サポートされています。こうしたことが重要なのは、このように継続的にサポートが追加されることにより、組織は新しい革新的アプリケーション・タイプを既存の WebSphere アプリケーション・インフラストラクチャーにデプロイできるからです。その結果、インフラストラクチャーの使用効率および最適化レベルは引き上げられることになります。私たちはこの機能のことを、ビジネス・グリッドと呼んでいます。
WebSphere XD には、ObjectGrid や WebSphere Partitioning Facility などの重要な情報仮想化技術も含まれています。詳細はこの記事で説明しますが、ここで考慮すべきことは WebSphere XD でのデータ駆動型およびイベンド駆動型プログラミングのファースト・クラス表現です。このファースト・クラス表現は、データ・フローと関連イベントを中心とした新しいタイプのアプリケーションの開発を可能にするだけでなく、ビジネス・ロジックによる拡張データ表現および拡張機能とワークロード仮想化の融合もサポートします (「参考文献」を参照)。概して、グリッド・スペースではデータと計算は別々の領域とされていますが、この 2 つを効率的に区別することは不可能です。また区別すべきでもありません。
ワークロードおよび情報の仮想化をサポートする基礎技術の詳細を説明する前に、WebSphere XD、そして今日の IT 業界で大きな話題となっている仮想化とサービス指向アーキテクチャー (SOA) との関連性についてもう少し詳しく説明しましょう。
WebSphere XD と仮想化
WebSphere XD の V5.1 では、基礎インフラストラクチャーとそこで実行されるアプリケーションとを分離することによって、仮想化のコンセプトを WebSphere Application Server プラットフォームに導入しました。この分離は、アプリケーションを動的に配置し、一連のリソース (リソース・プール) 全体で管理することを可能にしました。これはアプリケーションまたはワークロード仮想化の本質として前にも強調しましたが、ここでも繰り返す価値はあります。この分離こそが、動的クラスターをはじめとする WebSphere XD に組み込まれた多数の高度な機能を有効にするからです。
さらに、個別のマシンあるいは一連のマシンとアプリケーションの間には密接な結合や 1 対 1 の関係がなくなるため、WebSphere XD ではビジネス・ポリシーに応じてワークロードをインテリジェントに管理およびシフトすることができます。また、優先順位の高いアプリケーションにはリソースの大半を割り当て、優先順位の低いアプリケーションは静止して後で実行したり、あるいは容量の少ないリソースに移動したりすることも可能です。ワークロードの優先順位付け、インテリジェントなリソース割り当て、そしてサービス・レベルの目標は、WebSphere XD には不可欠なものであり、アプリケーション・ユーザーにはシームレスな部分ですが、これらを実現するには高度なジョブ・スケジューリングおよびワークフロー管理を行う機能を組み込むか、あるいは事前に統合することが必要となります。
この仮想化の概念により、メインフレームなどのより大規模なマシン、対称型マルチプロセッサー・システム、そしてリソース・プール内の分散リソースをはじめとし、広範なプラットフォームを組み込むことも可能になります。これは通常、グリッドと呼ばれます。これらのリソースは大抵の場合、同種のリソースですが (ブレード・サーバーまたはクラスター)、異種にすることもできます (その場合もよくあります)。
異種リソースのサポートは重要な点には思えないかもしれません。しかし、仮想化インフラストラクチャーがこのまま勢いを増すにつれ、グリッドまたはリソース・プール内にさまざまなタイプのリソースを組み込み、これらのリソースをインフラストラクチャー管理ソフトウェアでシームレスに使用および管理できることが、組織固有のインフラストラクチャーに柔軟性と選択肢を与えることになります。WebSphere XD を使用することにより、アプリケーション開発者やシステム管理者は一様に、インフラストラクチャー・リソースを単一の一貫したエンティティーとして管理できるようになります。この仮想化はまた、組織が WebSphere XD プラットフォームに統合された高度な管理機能を使用して、インフラストラクチャーの価値の増大を実現する基盤にもなります。
WebSphere XD と SOA
SOA とは、IT リソース、アプリケーション、そしてビジネス・プロセス・フローを対象としたサービスの構築、デプロイ、統合を可能にするスタイルまたはフレームワークのことです。SOA は統合を促すと同時にアプリケーションのモジュール化を行い、組織的な (あるいは各種の要素から成る) ビジネス・サービスとしての、ビジネス・プロセスの明解な展望を提供します。これによって、組織は新規アプリケーションの作成を極めて迅速化できるとともに、企業全体やパートナー、サプライヤー、カスタマーとの間でアプリケーションとビジネス・プロセスを一層シームレスに統合できるようになります。
業界での SOA の勢いは顕著ですが、組織の SOA 環境がより高度になるにつれ、それに見合った柔軟性が組織の基礎インフラストラクチャーに必要となります。全体として柔軟性を備えた SOA の動的特性をサポートできるインフラストラクチャーがなければ、SOA のメリットを生かすのは困難です。仮想化とグリッド環境がこの基盤を提供してくれます。WebSphere XD は土台から、SOA によるビジネスおよびインフラストラクチャーの価値を実現するための最適なプラットフォームになるように作成されています。これについては、「SOA 環境でのサービス仮想化」セクションで技術的観点から説明します。
WebSphere XD でのワークロード仮想化
今までの記事で述べたように、ワークロード仮想化の特徴となっているのは、スケジューリング、ワークロード管理、そしてプロビジョニングという 3 つの主要要素の相互作用です。この 3 つの要素は独特に調整された方法で連動し、サービス・レベルやビジネス・ポリシーに従って作業を実行します。WebSphere XD はこの 3 つの要素すべてを扱いますが、その方法は従来慣れ親しまれてきた方法とは異なります。スケジューリングがその良い例です。
多くの人々はスケジューリングをバッチ・スケジューリングの概念と結び付けて考えます。バッチ・スケジューリングで作業の実行要求を特徴付けるのは、作業の記述、作業の依存関係、そして多くの場合はジョブに含まれる個別ステップの順序付けやコレオグラフィー (ワークフローとしても知られます) です。通常、このような情報はすべて JCL (Job Control Language) または JSDL (Job Submission Definition Language) のような言語で記述されます。
WebSphere XD にはトランザクション・バッチや数値計算などのバッチ・ワークロードの実行を調整するジョブ・スケジューラーが含まれてはいるものの、WebSphere XD が管理する大多数のワークロードは OLTP (Online Transaction Processing) です。OLTP 要求は動的であるため、事前に記述されません。したがってスケジューリングについて考える際には、スケジューリングの最終的な役目は作業要求 (例えば、銀行口座残高の通知要求など) をリソースに配置し、それから実行を開始することだという点を念頭に置いておかなければなりません。
厳密に言うと、スケジューリングとは結局のところアプリケーションの配置に関することです。そこで、ここでは OLTP ワークロードに適用されるワークロード仮想化の概念に焦点を当てて説明します。WebSphere XD のバッチ・ジョブ・スケジューラーは、従来のバッチ・スケジューリングの概念と同様です。
図 1. WebSphere XD でのワークロード仮想化
ワークロード仮想化の機能を提供するのは、WebSphere XD に含まれる 3 つの重要なエンティティーである、オンデマンド・ルーター (ODR)、アプリケーション配置コントローラー (APC)、そして動的クラスターです。
オンデマンド・ルーターを構成する複数の技術が 1 つにまとまって高度なワークロード管理を行います。処理対象の作業が到着すると、それぞれの要求が適切に検査および分類され、サービス・ポリシーに照合されます。作業は到着順ではなく重要度の高い順から処理されます。
重要なワークロード管理および制御手法はフロー制御と呼ばれるようなもので、オートノミック・フロー要求マネージャー (AFRM) によって提供されます。高度なキューイング手法を用いて、アプリケーション・サーバーのクラスターに送信される作業量を制御し、クラスター内のリソースでアクティブになっている作業タイプごとの量を変更することができます。
フロー制御は、誰でも空の旅で体験しているはずです。交通量が多かったり、天候によって飛行機同士の間隔を増やす必要が出てきたりすると、航空管制が効率的に過密エリアとその周辺の機体数に制限を設けます。機内で「地上待機命令」(離陸が禁止されているという意味) という言葉をよく耳にしたり、最終到着地ではない都市の上空で旋回を続けたりするのは、このためです。
サービス・レベルの目標を効率的に達成するため、インフラストラクチャーの拡大縮小をサポートするため、そしてシステムの過負荷や単一のアプリケーションが環境を占有するのを防ぐためには、フロー制御が極めて重要な手法になります。
オンデマンド・ルーターは、クラスター内のアプリケーション・サーバー間にトラフィックを分配し、バックエンドのアプリケーション・サーバーでの応答時間およびエラー状態に対する応答数が均等になるようにします。これは、動的重み付けルーティングおよび負荷分散と呼ばれることもあります。
オンデマンド・ルーターが処理する作業要求は、最終的にはアプリケーション配置コントローラーによって処理されます。アプリケーション配置コントローラーは動的クラスターとともに、オンデマンド・ルーターを補完して WebSphere XD のワークロード管理および仮想化を行います。
動的クラスターは、サービス・ポリシー実現と現行の負荷状態に基づいて、そのサイズをリアルタイムで自動的に調整するという点で動的です。WebSphere XD は、アプリケーションで使用可能な容量を常に制御するために、アプリケーション・サーバーを常時起動/停止することによって、動的クラスターからアクティブ・アプリケーション・サーバーを追加または除去します。これによって実現されるのが、リソース・プールの優れた使用効率です。なぜなら、多くのアプリケーションがリソース・プールを共有し、需要にあわせた変更に適応するようにリソース・プールを使用して、全体のトラフィックを処理するからです。
最終的に作業要求はアプリケーション配置コントローラーによって配置され、実行されます。配置の決定は、自動的に行うことも (オンデマンド・モード)、管理者に依頼することもできます (監視モード)。WebSphere XD は Tivoli® Provisioning Manager との統合もサポートします。この統合により、新しいハードウェアをリソース・プール内でプロビジョニングすることが可能になります。
SOA 環境でのサービス仮想化
SOA は、アプリケーション機能を継続的に、アプリケーション機能の構成要素であるサービスに分解し、さらに、これらのサービスは高位レベルのビジネス・サービスへと構成されます。「Virtualization as a foundation for SOA environments」では、魅力的で価値ある提案としての仮想化、そして WebSphere XD のような製品が SOA 環境を実現する方法について説明し、仮想化と SOA の相乗作用について要点をまとめました。
SOA のデプロイメントを仮想化するという特定のアプリケーションを表す言葉として、サービス仮想化、そしてサービス・ネットワークという用語が頻繁に使われるようになってきています。そこで、ここではサービス仮想化の技術特性について詳しく取り上げます。
図 2. サービス仮想化の技術特性
サービス仮想化の第一の特性は、サービスの配置に関するもので、サービスの実行時にサービスを実行する場所を動的に選択する機能です。この実行時のサービス配置は、サービスは次々と、しかも瞬時に行われることもあるため特に重要です。2 つ目の特性はサービスのライフサイクル管理に関連します。つまり、オンデマンドでサービスを動的に開始または停止する機能です。そして最後の特性であるサービス・モビリティーは、サービスを一連のリソース間で動的に移動させることに関するものです。
以上の特性を WebSphere XD およびそのワークロード仮想化機能の観点から考えると、WebSphere XD が SOA の基盤として何故それほど有力なのかがわかります。
WebSphere XD での情報仮想化
WebSphere XD には、分散グリッドでのデータ問題に対処する重要な機能が含まれています。このようなタイプのグリッドはデータ・グリッドと呼ばれることがありますが、私としては、グリッドを計算グリッドとデータ・グリッドに分ける必要があるとは思いません。もちろん、純粋な計算手法あるいはデータ中心の手法に帰属する特定クラスの問題もありますが、大抵のアプリケーションと興味深い問題にはデータと計算の両方に関わる重大な課題と要件があります。そのため、分散グリッドでは計算処理とデータ処理に対する全体的手法が正当なはずです。その点、WebSphere XD はアプリケーション全体での計算とデータの融合に向けたプラットフォームとなっています。
WebSphere XD には、一連の広範なアプリケーションにまたがる複雑なデータ問題を軽減することを目的とした 2 つのコンポーネントが組み込まれています。その 1 つはパーティション・モデルを提供する WebSphere Partitioning Facility で、これは非対称クラスタリングをサポートします。非対称クラスタリングとは、定義されたアプリケーション区画に基づくインテリジェントな要求ルーティングを可能にし、キャッシュ率とトランザクション・パフォーマンスを劇的に向上させる手法のことです。この手法は特定クラスの問題には理想的で、広範なアプリケーションの場合には大幅なパフォーマンスの向上につながる可能性があります。
もう 1 つのコンポーネントは ObjectGrid です。ObjectGrid を興味深いコンポーネントにしているのは、これが、保管されたデータを複数のアプリケーションで共有することを可能にする柔軟な分散キャッシュ・フレームワームになるという点です。ObjectGrid はトランザクション・スループットを効率化してトランザクション・パフォーマンスを向上させるだけでなく、多彩なデータ中心のアプリケーション・パターンを作成しやすくします。このようなパターンは一般的に、分散アプリケーション状態管理と呼ばれます。ObjectGrid は J2SE (Java 2 Standard Edition) をベースとしているため、さまざまな環境で使用することができます。また、プログラミング・モデルも軽量です。
以下にアプリケーション・パターンをいくつか紹介します。今後の記事ではこれらのパターンを拡張して一層包括的に扱う予定ですが、ここでは基本的なパターンに絞り、主に ObjectGrid が可能にするデータの観点からアプリケーション・パターンを説明します。
-
単純データ/データベース -- アプリケーションは ObjectGrid 構成をキャッシュとして使用し、単にアプリケーション自体のデータ構造にアクセスしてデータ・パフォーマンスとスループットを向上させます。これは従来のデータ・キャッシュのシナリオですが、ObjectGrid はトランザクション・セマンティクスを提供してこのシナリオを拡張します。
-
クライアント・サーバー -- Java 仮想マシンのローカル ObjectGrid が、リモート ObjectGrid の手前で、データのサブセットをキャッシュすることができます。これにより、クライアントは大規模なリモート・キャッシュを利用して、バックエンドの処理負荷を減らしたり、キャッシュに入れられた結果に高速にアクセスしたりすることが可能になります。クライアント間での共有データの調整には、リモート ObjectGrid が提供する分散ロック・サービスを使用できます。
-
超大型データ・グリッド -- 複数の ObjectGrid クライアントが、複数のエージェントを呼び出すことができ、これらのエージェントは ObjectGrid のすべてのマシンのデータに対して並行に実行されます。ObjectGrid に並行して保管されたデータは、クライアントによって統合されます。
さらに ObjectGrid の設計では、レプリカを使用してデータを重複して保管できるという点で堅牢性が促進されます。ユーザーの設定によっては、ObjectGrid は自動的に最小数のレプリカを維持して耐障害性をサポートすることになります。その上、ObjectGrid は区画間で自動的にデータの均衡を保つことで、データ・アクセス・パフォーマンスを効率化し、スケーラビリティーをサポートします。これらのサービス品質により、ObjectGrid アプリケーションは実動環境に確実にデプロイできるようになっています。
管理について一言
WebSphere XD のワークロード仮想化機能と情報仮想化機能、そしてこれらの機能の総合的な特性に重点を置いて説明してきましたが、WebSphere XD の管理機能の重要性について大ざっぱにでも触れておかなければ私は怠慢ということになるでしょう。
WebSphere XD の自動化されたインテリジェントな振る舞いには、一連の包括的な管理機能が伴っています。この包括的な管理機能は、組織がすでに持っている管理ツールを拡張および補完します。分散環境では、システムの振る舞いを詳細に理解できること、そして適切な措置をサポートできることが不可欠であるため、この管理機能は重要です。
そのため WebSphere XD には、正常性管理フレームワーク、高度な操作管理機能、そしてリソースとワークロードのパフォーマンスを可視化する革新的な方法が備わっています。
まとめ
WebSphere Extended Deployment は、J2EE アプリケーション・サーバー対応の統合グリッド・プラットフォームの実例で、連載「グリッドの展望 (Perspectives on grid)」をとおして説明している多くのグリッド技術の機能が、使用可能な状態で事前に統合されています。アプリケーションと情報の仮想化という土台の上に構築された WebSphere Extended Deployment は、操作の最適化、新しいアプリケーション・タイプおよびパターンのサポート、そして組み込みの正常性管理および操作管理など、広範な機能とサービス品質を提供します。
参考文献 学ぶために
議論するために
著者について  | 
|  | Matt Haynos は IBM WebSphere Extended Deployment の製品マネージャーです。それ以前は、グリッド・コンピューティングが新しいビジネス・チャンスとして登場して以来、IBM のグリッド・コンピューティング・チームの一員として、IBM のグリッド・コンピューティング・ビジネスの構築に関わる広範なイニシアチブとストラテジーの分野でさまざまな職務を果してきました。現在は、IBM のアプリケーション開発、プログラム・ダイレクション、ビジネス開発の分野で、技術および経営上のさまざまな役職に就いています。University of Rochester では優秀な成績でコンピューター・サイエンス、応用数学、認知科学の学士号を取得し、University of Vermont ではコンピューター・サイエンスの修士号を取得しました。彼は妻と 2 人の息子とコネチカット州に住んでいます。
|
記事の評価
|