J2EEのアプリケーションサーバを導入する場合、クラスタ構成をとることが推奨される。Webサーバからのリクエストを受けるトランザクション処理に対して、Webコンテナが画面系の処理を行い、さらにEJBコンテナがロジック処理を行う形態となる。
クラスタ構成
【図1】2台のクラスタで構成する基本型 |
図1は、2台のクラスタで構成する基本型である。n台の場合でも基本的には同じだ。
HTTPサーバ、Webコンテナ、EJBコンテナ、メッセージキューあるいはデータベースを、それぞれ独立したサーバ上で稼動させ、8台のサーバで稼動させるのが理想形となる。しかし、システムサイズが小規模な場合や、予算的な理由からHTTPサーバとWebコンテナ、EJBコンテナは2台、もしくは1台のサーバで稼動させることもある(図2。実際にはこのケースのほうが多いと思われる)。
このように、リクエストの流れに対してHTTPサーバ、Webコンテナ、EJBコンテナの3つの層を分散させることを垂直方向のクラスタリングと呼ぶことができる。対して、先の図1のように、リクエストに対して受けるサーバの数をn台まで増やして分散させることを、水平方向のクラスタリングと呼ぶこともできる。こうした構成は、システムサイズ、予算とダウンリスクのバランスでサーバの台数をスケーラブルに構築できる。もちろんアプリケーションを作る側は、このスケーラビリティを失わせる設計をしてはならない。
近年のコンピューティングトレンドとしてクラスタ構成をとるのはあたり前になってきている。コンピュータを群集化することで負荷分散と耐障害性を上げる発想である。
【図2】HTTPサーバ、Webコンテナ、EJBコンテナ2台の構成 |
クラスタの発想は社会生活を営んでいれば身近に溢れている。片側2車線以上の自動車道路、銀行や市役所の窓口などは、いずれか1つが何らかの事情で停止しても全体が停止することを防止する。同じようにコンピューティングでは、メールサーバにDNSサーバ、Webサーバにアプリケーションサーバ、データベースサーバのノードに対する構成などがクラスタといえる。意味からすると、物理ネットワーク設計でのトランキング構成もクラスタといえるが、紛らわしいためか、トランキングは区別されている。なお、負荷分散は行わず、耐障害性を高めるためだけにシステム構成を二重化する場合はクラスタと呼ばない。
グリッド構成
こうした負荷分散のトレンドになりつつあるのがグリッドである。ではグリッドとは何であろうか? 直訳すると、クラスタは「群れ」だが、グリッドは「格子状のもの」となる。身近なもので格子状のものを思い起こし、それがなぜグリッド形状になっているのかを考えてみるとよいだろう。漁師の投網やキッチンにあるザルなどでもいい。これらは、その格子1つ1つでは役をなさないが、全体として1つの目的のために存在しているものといえるだろう。グリッドコンピューティングは、複数のコンピュータが1つの目的のために集約されたものと考えてよい。複数というその数は、投網やザルからイメージしても、数十から数百、数千以上の数によって成り立つ規模となり、クラスタよりも数の規模としては大きくなる。
【図3】グリッド構成 |
クラスタのシステムでは多くの場合、1つが停止する場合の想定を緻密に検討する必要がある。たとえば、2台のクラスタの一方が停止すると、処理能力は半減する。しかし、グリッドの場合には確率的な扱いとなるほどの数の規模が想定されるため、こうした検討は必要とされない。
余談になるが、グリッドの数の規模がもっと大きくなった場合にはどうなるのであろうか。仮に数万から数千億以上の集合体規模と想定して、身近なもに何が該当するだろうか。手に取れるものを対象にすると、CPUや何らかの生体組織、つまり細胞(cell)が当てはまるだろう。CPUもバイオチップを目指しているので、乱暴だがセルといってしまおう。そのセルをセルコンピューティングとして標榜しているアーキテクチャが、すでに次世代ゲーム機で告知されている点は大変興味深いといえる。
話をグリッドコンピューティングに戻すと、グリッドコンピューティングは多数のコンピュータが1つのコンピュータとして集約され、仮想的な1つのシステムが実体化する。実際に、電波望遠鏡のデータを世界中のコンピュータを使用して解析することで宇宙人の存在を突き止めようとするプロジェクトや、臨界前核実験をコンピュータ上でシミュレートする米国国防省のプロジェクトがグリッドを採用している。これらは膨大な計算処理という用途のためであり、学術目的や予算規模が特別な国家プロジェクトでの利用が先陣を切っている。
グリッドはほかの用途として、企業間のデータや組織間のデータといった複数のシステムにまたがる、膨大なデータ空間を単一に扱うために使用される。これはデータ統合と呼ばれる。実績としては、ゲノム解析のバックボーンにあるデータベースがある。あまりにもデータ量が多すぎると、単一のデータベースでは処理しきれなくなるために使われるケースといえよう。
IBMの製品を例にとれば、WebSphere Application Server V5が、膨大な計算処理のためと、耐障害性を向上させるためにグリッド対応がなされている。また、DB2 Information Integratorでは、異機種システムのデータベースを透過的に扱うためにグリッド対応がなされている。