RIGHT:2003.11.04

 ここ数ヶ月、IT業界では「グリッド」がトレンドになっている。プロジェクトに参加して得た知識を元に、グリッドに関してまとめてみた。 

#norelated
#contents
#br

** グリッドとは
** グリッドとは [#zaf120c4]
 [[グリッドコンピューティング:http://www.atmarkit.co.jp/icd/root/14/30511114.html]]とは、ネットワークで接続された多数のコンピュータの資源を総合することで、大規模な処理能力を実現するためのアーキテクチャである。「グリッド」という言葉は「高圧線送電網(power grid)」からきており、物理的に分散したコンピュータを組み合わせることで、その処理能力を、あたかも電気のようにソースを気にせず使いたい分だけ使いたいという発想からきている。

** グリッドの分類 
** グリッドの分類 [#l5e5d0c0]
 一口にグリッドと言っても、その目的や利用法によって様々である。下図にその分類の一例を示した。 

CENTER:&ref(grid02.png);
CENTER:figure. グリッドの分類 

 まず大きく、特定のシステムを意識して連携させサービスを構築する本来のグリッドシステムと、使われていないリソースを有効活用するためにグリッド技術が用いられる場合の2種類に分けられる。本来のグリッドもその目的によって数種に分けられるが、発展するにつれてその境界は曖昧になっていくと思われる。 
 
** グリッドとクラスタの差異 
** グリッドとクラスタの差異 [#e995f75e]
 水平方向のスケーラビリティによってHPC(High Performance Computing)を実現する仕組みとしてはクラスタも同様である。では、グリッドとクラスタの差異は何であろうか?
 その答えは、グリッドのメインコンセプトである「''異機種分散''」にある。クラスタは同一の機種で、物理的に近傍に配置し、完全にパフォーマンスだけを第一に考えて利用される。グリッドは、''至るところに分散している様々な機種のマシンを統合・仮想化するところにその第一義がある''。 

CENTER:&ref(grid05.png);
CENTER:figure. グリッドとクラスタ 

 超大規模システムにおいては、「各組織が組織内にもつクラスタシステムやスーパーコンピュータを、グリッド技術を用いて、インターネット上で統合・仮想化する」という使い分けになるであろう。つまり、''インターネットにはグリッドを、イントラネットにはクラスタを適応する''ことになる。 

** グリッドを用いた事例 
** グリッドを用いた事例 [#m61ffc8b]
 ここ2,3年、グリッドを用いた事例が急増している。代表的なものでは 

-地球外文明探査プロジェクト [[SETI@Home:http://www.planetary.or.jp/setiathome/home_japanese.html]]
-米IBM社や米国防総省などの [[天然痘治療研究プロジェクト:http://www.grid.org/about/gs/index.htm]]
-オンライン・ビデオ・ゲームの [[Butterfly.net:http://www.butterfly.net/]]
~etc..... 国内でも
-超高速コンピューター網形成プロジェクト [[NAREGI:http://pcweb.mycom.co.jp/news/2003/07/04/09.html]] 
-[[NTTデータ:http://www.nttdata.co.jp/]]の [[cell computingプロジェクト:http://www.cellcomputing.jp/]] 
-[[産総研:http://www.aist.go.jp/]]の [[AISTスーパークラスタ:http://japan.internet.com/linuxtoday/20030730/3.html]]
~など、多数のプロジェクトが既に展開している。
 一昔前には、興味の対象でしかなかった技術が、ごく身近な実用レベルまできているという証であろう。 

** 大手ベンダーのグリッド対応 
** 大手ベンダーのグリッド対応 [#w1ba0a43]
 大手のベンダーも、他社に先んじようと積極的に動き出している。ビジネスへの適応は既に始まっているのだ。以下に代表を挙げよう。 

|[[IBM:http://www.ibm.com/jp/]]| [[WebSphere Application Server 5.0.2:http://www-6.ibm.com/jp/software/websphere/wv5/appserv_v5.html]]、[[DB2 Information Integrator:http://www-6.ibm.com/jp/software/data/ii/]]がグリッド対応を謳っている。また、同社はオープンソースの開発コミュニティである[[Globus Project:http://www.globus.org/]]との共同作業を進行しており、グリッドコンピューティングの標準案である[[OGSA(Open Grid Service Architecture):http://www.globus.org/ogsa/]]の策定を行った。|
|[[Sun Microsystems:http://jp.sun.com/]]| 2000年に[[Gridware:http://jp.sun.com/gridware/]]を買収し、[[Sun ONE Grid Engine:http://jp.sun.com/products/software/serverperf/gridware/s1geee/index.html]]で本格的にグリッド市場に参入した。同社のグリッドの事例は、すでに5000社に達している。次世代のグリッド構想として「[[N1:http://jp.sun.com/learnabout/n1/]]」を打ち出している。|
|[[Oracle:http://www.oracle.co.jp/]]| アプリケーション、ストレージ、データベースという3つのレイヤーで[[グリッドに対応した10gというバージョンをリリース:http://www.atmarkit.co.jp/news/200308/30/oracle.html]]した。|
|[[Microsoft:http://www.microsoft.com/]]| オープンソースプロジェクトに疎遠な同社でさえも、[[Globus Projectへの投資:http://www.anl.gov/OPA/whatsnew/020315globus.htm]]を行っている。|

** GGFとは 
** GGFとは [#i04d5b09]
 ベンダーの動きと並行して、オープンコミュニティによる標準化の動きもある。
 [[GGF(Global Grid Forum):http://www.gridforum.org/]]とは、グリッド・コンピューティングの標準化国際団体である。2000年11月に設立し、全体会議は年3回行われている。[[OGSA(Open Grid Services Architecure):http://www.globus.org/ogsa/]]によるグリッドアーキテクチャの標準化を推進している。第7回の会議は、[[2003年3月、日本で行われた:http://www.aist.go.jp/aist_j/press_release/pr2003/pr20030304/pr20030304.html]]。 

 日本におけるグリッドコンピューティングにおける取り組みは、[[産総研:http://www.aist.go.jp/]]や各ベンダの技術者から構成される[[グリッド協議会:http://www.jpgrid.org/]]を中心に活動している。 

** OGSAとは 
** OGSAとは [#hf28f919]
 グリッドは「異機種分散」を目的とする。しかし、従来のグリッドシステムでは、機能毎に様々な下位プロトコルを利用していることが、異機種分散コンピューティングの妨げであった。
 [[OGSA:http://www.globus.org/ogsa/]]は、Webサービスの各種仕様とその実装を活用して、分散コンピューティングを実現しようとするアーキテクチャである。''グリッドの下位インフラを全てWebサービスとする''ことで、''様々なプラットフォームが容易に接続・切断できるというWebサービスのメリットをグリッドにも生かそうとしている''。
 また、Webサービス関連の仕様や実装、スキルをもった技術者は、既に、各所で進化・発展を続けている。''[[OGSA:http://www.globus.org/ogsa/]]はそれらの成果や資産を、そのままグリッドコンピューティングの世界に横展開''しようというのである。

 [[OGSA:http://www.globus.org/ogsa/]]を実現する仕様として[[OGSI(Open Grid Services Infrastructure):http://www.gridforum.org/ogsi-wg/]]が策定されている。これはWebサービスを拡張したものだ。OGSI仕様に沿ったWebサービスは「グリッドサービス」と呼ばれる。 

** グリッドサービスとWebサービスの差異 
** グリッドサービスとWebサービスの差異 [#sf44b76a]
 では、グリッドサービスとWebサービスの違いは何だろうか? 
 一言で言うと「''WebサービスはRPC''でしかないが、''グリッドサービスは分散オブジェクト''を実現する」ということである。 


CENTER:&ref(grid03.png);
CENTER:figure. Webサービス 
 
 WebサービスのデファクトといってよいSOAP1.2には、セッション管理のための仕様が含まれていない。そのため、複数のリクエスト間でサービスの状態を共有することは実現しにくい。結果、WebサービスはRPCの代替として設計され、Webサービスを用いたシステムのモデリングは、サービス指向の範疇に留まらざるを得ない。 

CENTER:&ref(grid04.png);
CENTER:figure. グリッドサービス 

 グリッドサービスは、一般のローカルオブジェクトと同じように、サービスオブジェクトの''インスタンスを作成''し、そのインスタンスに対してリクエストするという形をとる。インスタンスには当然''インスタンス変数が保持''できる。更に、一般のオブジェクトと同じように、(1)インスタンス生成(2)活性期間(3)インスタンスの破棄というライフサイクルをとる。つまり、ローカルオブジェクトと同じように、''オブジェクト指向設計の中に組み込んでしまえる''のである。

 ただ、インスタンスの破棄のタイミングには注意が必要である。ローカルなインスタンスはガーベジコレクタによって破棄されるのが一般的だが、グリッドサービスでは"ライフタイム"というサービス生存期間を設定できるようにすることにより、インスタンスの破棄を実現している。両者の動作タイミングは異なる。
 
** [[Globus Toolkit 3(GT3):http://www-unix.globus.org/toolkit/]]について 
** [[Globus Toolkit 3(GT3):http://www-unix.globus.org/toolkit/]]について [#uc71a548]
 さて、上記のような仕様の策定を受けて、その実装を提供しているのが[[The Globus Alliance:http://www.globus.org/]]という団体である。[[The Globus Alliance:http://www.globus.org/]]は、[[Globus Toolkit:http://www-unix.globus.org/toolkit/]]というオープンソースのグリッド実装を提供していたが、そのVersion 3でOGSIに対応し、リファレンス実装の地位を得ている。
 2003年11月現在、Globus Toolkit[[最新バージョン:http://www-unix.globus.org/toolkit/download.html]]は3.0.2であるが、今回の******実証実験では、3.0.1というバージョンを用いた。両バージョンの相違はセキュリティ対策とバグフィックスであり、機能的に大きな違いはないと言ってよい。 

** 今後のグリッドの進化 
** 今後のグリッドの進化 [#b792048f]
 最後に、今後のグリッド技術の展望を述べたい。
 数年前までグリッド技術とは、多量の計算資源を集約・連携させた「仮想高速演算スーパーコンピュータ」のことを意味していたが、現在では「ユーティリティコンピューティングの基盤技術」として期待されている。
 そこへ辿り付くまでのマイルストーンが、下図になる 

CENTER:&ref(grid01.png);
CENTER:figure. グリッドの進化 

 現在主流となっているグリッドはプロセシングの部類に入るものだが、今後エンタープライズな分野に浸透していくにつれて、データグリッド、次世代のフォールトレランスシステム、そしてオンデマンドへと進化していくであろう。これを踏まえて今回の******実証実験ではデータグリッドの扉を叩いたわけである。 

 [[Globus Toolkit:http://www-unix.globus.org/toolkit/]]は、グリッドの基盤として、多くの実システムに適応できるポテンシャルを持っている。GT3上で動作し、特定の目的にカスタマイズされたフレームワークも出てきている。
 今、我々ソリューションプロバイダは、ユーザのニーズを解決する手段の1つとして、グリッド技術を準備しておくべきであろう。 

#br
#br

[あとがき]
 この文章を第一章にして、「第二章 GT3のインストール」「第三章 グリッドサービスの開発とセキュリティ設定」と書き綴ろうと思っていましたが、力尽きました。折を見て、提供できたらと思います。

今まで見た人:&counter(all);~
今日見た人:&counter(today);~
-今回のプロジェクトのような「ProcessGridとDataGridの融合」というパターンは、データマイングのような分野で必要になってくるかもしれませんね。 -- [[じょもら]] &new{2003-12-02 (火) 13:20:04};
-↑[訂正] (誤)マイング (正)マイニング -- [[じょもら]] &new{2003-12-02 (火) 13:21:40};

#comment
-今回のプロジェクトのような「ProcessGridとDataGridの融合」というパターンは、データマイニングのような分野で必要になってくるかもしれませんね。 -- [[じょもら]] &new{2003-12-02 (火) 13:20:04};

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS