タンパク質を研究している科学者はコンピューターにログインし、コンピューターのネットワーク全体を使用してデータを分析します。ビジネスマンは、特定の株の将来を予測するために、 PDAを通じて会社のネットワークにアクセスします。陸軍当局者は、3 つの異なる軍事ネットワーク上のコンピューター リソースにアクセスして調整し、戦闘戦略を策定します。これらのシナリオにはすべて、グリッド コンピューティングと呼ばれる概念に依存しているという共通点があります。
最も基本的なレベルでは、グリッド コンピューティングは、各コンピュータのリソースがシステム内の他のすべてのコンピュータと共有されるコンピュータ ネットワークです。処理能力、メモリ、データ ストレージはすべて、承認されたユーザーが特定のタスクに活用できるコミュニティ リソースです。グリッド コンピューティング システムは、同じオペレーティング システム上で実行される同様のコンピューターの集合のような単純なものもあれば、考えられるすべてのコンピューター プラットフォームで構成される相互ネットワーク システムのような複雑なものもあります。
グリッド コンピューティングの概念は新しいものではありません。これは特殊な種類の分散コンピューティングです。分散コンピューティングでは、同じネットワーク内の異なるコンピュータが 1 つ以上のリソースを共有します。理想的なグリッド コンピューティング システムでは、すべてのリソースが共有され、コンピューター ネットワークが強力なスーパーコンピューターに変わります。適切なユーザー インターフェイスがあれば、グリッド コンピューティング システムへのアクセスは、ローカル マシンのリソースにアクセスするのと何ら変わりません。許可されたすべてのコンピュータは、膨大な処理能力とストレージ容量にアクセスできるようになります。
このコンセプトは新しいものではありませんが、まだ完成していません。コンピューター科学者、プログラマー、エンジニアは現在も標準とプロトコルの作成、確立、実装に取り組んでいます。現在、既存のグリッド コンピューター システムの多くは独自のソフトウェアとツールに依存しています。信頼できる標準とプロトコルのセットに人々が同意すると、組織がグリッド コンピューティング モデルを採用するのがより簡単かつ効率的になります。
では、グリッド コンピューティング システムとは一体何でしょうか?読み続けて調べてください。
グリッドコンピューティングの概要
グリッド コンピューティング システムは、プールされたリソースの原理に基づいて動作します。あなたと数人の友人がキャンプ旅行に行くことにしたとします。あなたは大きなテントを所有しているので、他の人たちとそれを共有することを志願しました。あなたの友人の 1 人が食べ物を持ってくると申し出、もう 1 人は自分の SUV でグループ全員を連れて行くと言いました。旅に出たら、3人で知識やスキルを共有し、旅を楽しく快適にします。もし自分で旅行を行っていたら、必要なリソースを集めるのにもっと時間がかかり、おそらく旅行自体にもっと労力を費やす必要があったでしょう。
グリッド コンピューティング システムも同じ概念を使用しています。つまり、複数のコンピューター間で負荷を共有し、タスクをより効率的かつ迅速に完了します。さらに詳しく説明する前に、コンピューターのリソースを簡単に見てみましょう。
- 中央処理装置 (CPU) : CPU は、数学的演算を実行し、データをさまざまなメモリ位置に送信するマイクロプロセッサです。コンピュータには複数の CPU が搭載されている場合があります。
- メモリ: 一般に、コンピュータのメモリは一時的な電子ストレージの一種です。メモリは、関連データをマイクロプロセッサの近くに保管します。メモリがなければ、マイクロプロセッサはハードディスクドライブなどのより永続的な記憶装置からデータを検索して取得する必要があります。
- ストレージ: グリッド コンピューティングの用語では、ストレージとは、ハードディスク ドライブやデータベースなどの永続的なデータ ストレージ デバイスを指します。
通常、コンピュータはそれ自体のリソースの制限内でのみ動作できます。操作を完了できる速度や保存できる情報の量には上限があります。ほとんどのコンピューターはアップグレード可能です。つまり、1 台のコンピューターにさらに電力や容量を追加することができますが、それでもパフォーマンスは段階的に向上するだけです。
グリッド コンピューティング システムは、1 台のコンピュータを使用して、システム内のすべてのコンピュータの収集された能力にアクセスして活用できるように、コンピュータ リソースをリンクします。ユーザー個人にとっては、ユーザーのコンピューターがスーパーコンピューターに変身したかのようです。
グリッド コンピューティングに関するレポートを読むと、珍しい用語や専門用語がたくさん出てきます。それはどういう意味ですか?読み続けて調べてください。
グリッド コンピューティングはまだ発展途上の分野であり、他のいくつかの革新的なコンピューティング システムと関連しており、その一部はグリッド コンピューティングのサブカテゴリです。共有コンピューティングは通常、特定のタスクを完了するために処理能力を共有するコンピューターの集合を指します。さらに、ユーティリティ コンピューティングとして知られるSoftware-as-a-Service ( SaaS ) システムもあり、企業は従量料金で特定のサービス (データ ストレージやプロセッサ能力の向上など) を提供します。クラウド コンピューティングは、アプリケーションとストレージがユーザーのコンピュータではなく Web 上に「存在」するシステムです。
グリッドコンピューティング辞典
専門用語を知らないと、グリッド コンピューティングについて読むと非常に混乱する可能性があります。ここでは、グリッド コンピューティングについて議論するときに遭遇する可能性のある用語のいくつかを簡単にまとめます。
- クラスター: 同じリソースのセットを共有する、ネットワークに接続されたコンピューターのグループ。
- Extensible Markup Language ( XML ): 他のデータを記述し、コンピューターで読み取り可能なコンピューター言語。制御ノード(ノードとは、データを送信、受信、再ルーティングできるネットワークに接続されたデバイスです) は、 Web サービス記述言語( WSDL ) などの XML 言語に依存します。これらの言語の情報は、制御ノードにデータとアプリケーションの処理方法を指示します。
- ハブ: さまざまなデバイスが相互に接続されるネットワーク内のポイント。
- 統合開発環境( IDE ): コンピューター プログラマーがプラットフォーム用のアプリケーションを作成するために必要なツールと機能。アプリケーションのテスト場を指す用語は、サンドボックスです。
- 相互運用性: ソフトウェアがまったく異なる環境内で動作できる能力。たとえば、コンピュータ ネットワークには PC と Macintoshコンピュータの両方が含まれる場合があります。相互運用可能なソフトウェアがなければ、オペレーティング システムとアーキテクチャが異なるため、これらのコンピュータは連携して動作できません。
- オープンスタンダード: 公的に利用可能な標準を作成する手法。単一の組織に独占的に属することができる独自の標準とは異なり、オープン標準は誰でも採用して使用できます。同じオープン標準に基づいたアプリケーションは、異なる独自の標準に基づいて構築されたアプリケーションよりも統合が容易です。
- 並列処理: 複数の CPU を使用して 1 つの計算問題を解決します。これは、ネットワーク上の未利用のリソースを活用してタスクを達成する共有コンピューティングと密接に関連しています。
- プラットフォーム: 開発者がアプリケーションを作成できる基盤。プラットフォームには、オペレーティング システム、コンピューターのアーキテクチャ、コンピューター言語、さらにはWebサイトなども含まれます。
- サーバー ファーム: 単一サーバーでは複雑すぎるタスクを実行するために使用されるサーバーのクラスター。
- サーバー仮想化: ソフトウェア アプリケーションが 1 台の物理サーバーを複数の専用サーバー プラットフォーム (仮想サーバー) に分割する技術。各仮想サーバーは、他の仮想サーバーから独立して独自のオペレーティング システムを実行できます。オペレーティング システムは同じシステムである必要はありません。つまり、1 台のマシンにLinuxサーバーとして機能する仮想サーバーと、Windows プラットフォームを実行する別のサーバーを含めることができます。これが機能するのは、ほとんどの場合、サーバーがフルキャパシティに近い状態で実行されていないためです。グリッド コンピューティング システムでは、さまざまなタスクを処理するために多数のサーバーが必要ですが、仮想サーバーはハードウェア コストの削減に役立ちます。
- サービス: グリッド コンピューティングでは、サービスとは、コンピュータがネットワーク上で相互に通信できるようにするソフトウェア システムです。
- Simple Object Access Protocol (SOAP): XML で記述されたメッセージをネットワーク上で交換するための一連のルール。 Microsoft がプロトコルの開発を担当します。
- 状態: IT の世界では、状態とはあらゆる種類の永続データを指します。アプリケーションで使用された後も、何らかの形で存在し続ける情報です。たとえば、 Amazon.com のショッピング カートに入れる本を選択すると、その情報はステートフルになります。Amazon は、ユーザーが Web サイトの他の領域を閲覧する際に選択内容を追跡します。ステートフル サービスを使用すると、複数のステップを持つが同じコア データに依存するアプリケーションを作成できます。
- 一時性:他の操作に影響を与えることなく、ネットワーク全体でサービスをアクティブ化または非アクティブ化できる機能。
それでは、グリッド コンピューティング システムは正確にどのようにしてコンピューター リソースをリンクするのでしょうか?次のセクションで調べてください。
リソースの共有
いくつかの企業や組織が協力して、グリッド コンピューティング環境のセットアップを容易にするプロトコルと呼ばれる標準化されたルールのセットを作成しています。グリッド コンピューティング システムは今すぐに作成することが可能であり、すでにいくつかのシステムが存在しています。しかし、欠けているのは合意されたアプローチです。つまり、2 つの異なるグリッド コンピューティング システムは、それぞれ独自のプロトコルとツールのセットを使用して動作するため、相互に互換性がない可能性があります。
一般に、グリッド コンピューティング システムには次のものが必要です。
- 少なくとも 1 台のコンピュータ (通常はサーバー)。システムのすべての管理業務を処理します。多くの人は、この種のコンピューターを制御ノードと呼びます。他のアプリケーションおよび Web サーバー (物理サーバーと仮想サーバーの両方) は、システムに特定のサービスを提供します。
- 特別なグリッド コンピューティング ネットワーク ソフトウェアを実行するコンピューターのネットワーク。これらのコンピュータは、ユーザーへのインターフェイスのポイントとして、またシステムがさまざまなアプリケーションのために利用するリソースとして機能します。グリッド コンピューティング システムには、同じオペレーティング システム上で動作する同じメーカーの複数のコンピュータ (同種システムと呼ばれる) か、考えられるすべてのオペレーティング システム上で動作するさまざまなコンピュータの寄せ集め (異種システム) が含まれます。ネットワークには、すべてのコンピュータが物理的なワイヤでシステムに接続する有線システムから、コンピュータがインターネット経由で相互に接続するオープン システムまで、さまざまなものが含まれます。
- ミドルウェアと呼ばれるコンピュータソフトウェアの集合体。ミドルウェアの目的は、さまざまなコンピューターがマシンのネットワーク全体でプロセスまたはアプリケーションを実行できるようにすることです。ミドルウェアはグリッド コンピューティング システムの主力製品です。これがなければ、システム全体の通信は不可能になります。一般的なソフトウェアと同様に、ミドルウェアにも単一の形式はありません。
ミドルウェアがグリッド コンピューティング システムの主力である場合、制御ノードはディスパッチャーです。制御ノードは、ネットワーク全体でタスクに優先順位を付け、スケジュールを設定する必要があります。各タスクがアクセスできるリソースを決定するのは制御ノードの仕事です。制御ノードは、システムが過負荷になっていないことを確認するためにシステムを監視する必要もあります。ネットワークに接続している各ユーザーのコンピューターのパフォーマンスが低下しないことも重要です。グリッド コンピューティング システムは、他のすべてに影響を与えることなく、未使用のコンピューター リソースを活用する必要があります。
標準化されたプロトコルとツールについて全員が同意すれば、グリッド コンピューティング アプリケーションの可能性は無限大です。標準フォーマットがなければ、サードパーティ開発者(グリッド コンピューティング プラットフォーム上でアプリケーションを作成したい独立系プログラマ)は、さまざまなシステムで動作するアプリケーションを作成する能力に欠けていることが多いためです。異なるシステム用に同じアプリケーションの異なるバージョンを作成することは可能ですが、それには時間がかかるため、多くの開発者は同じ作業を 2 回行いたくありません。標準化されたプロトコルのセットにより、開発者はアプリケーションの作成中に 1 つの形式に集中できます。
グリッド コンピューティングに対して人々が抱いている批判や懸念にはどのようなものがありますか?読み続けて調べてください。
- Open Grid Forum (OGF) は、Open Grid Services Architecture (OGSA) と呼ばれる重要な標準セットを作成しました。
- IBM
- マイクロソフト
- 構造化情報標準推進機構 (OASIS)、非営利コンソーシアム。
- Globus Alliance、コンピューター科学者の国際協力。
グリッドコンピューティングに対する懸念
2 台以上のコンピュータをリンクするときは常に、特定の質問に備える必要があります。個人情報のプライバシーをどのように保っていますか?悪意のあるハッカーからシステムをどのように保護しますか?誰がシステムにアクセスしてそのリソースを使用できるかをどのように制御しますか?ユーザーがシステムのリソースをすべて使い果たしていないことを確認するにはどうすればよいでしょうか?
この質問に対する簡単な答えはミドルウェアです。グリッド コンピューティング システムには、これらの質問に答えることができる本質的なものは何もありません。グリッド コンピューティング システム用の新しいプロトコルは、開発者がアプリケーションを簡単に作成し、コンピューター間の通信を容易にするように設計されています。
コンピュータ エンジニアがデータを保護するために使用する最も一般的な技術は暗号化です。データの暗号化とは、適切なキーを持っている人だけがデータを復号してアクセスできるように、データをエンコードすることです。皮肉なことに、ハッカーが暗号化された情報を解読する目的でグリッド コンピューティング システムを作成する可能性もあります。暗号化技術では複雑なデータのエンコードが使用されるため、通常のコンピューターではコードを解読するには数年かかります (通常、コードを解読するには、信じられないほど大きな数の最大 2 つの素約数を見つける必要があります)。十分に強力なグリッド コンピューティング システムがあれば、ハッカーは暗号化データの解読にかかる時間を短縮する方法を見つけられるかもしれません。
特にシステムがオープン スタンダードに依存している場合、ハッカーからシステムを保護することは困難です。グリッド コンピューティング システム内のすべてのコンピューターには、システム全体に接続して対話できるようにするための特定のソフトウェアが必要です。コンピューターは、それを自分で行う方法を知りません。コンピュータ システムのソフトウェアが独自のものである場合、ハッカーがシステムにアクセスするのはより困難になる可能性があります (不可能ではありません)。
ほとんどのグリッド コンピューティング システムでは、特定のユーザーのみがネットワークの全機能へのアクセスを許可されています。そうしないと、制御ノードに処理要求が殺到し、何も起こらなくなります (IT ビジネスでデッドロックと呼ばれる状況)。セキュリティ目的でアクセスを制限することも重要です。そのため、ほとんどのシステムには認可プロトコルと認証プロトコルが備わっています。これらのプロトコルは、ネットワーク アクセスを選択された数のユーザーに制限します。他のユーザーは引き続き自分のマシンにアクセスできますが、ネットワーク全体を利用することはできません。
グリッド コンピューティング システムのミドルウェアと制御ノードは、システムをスムーズに実行し続ける責任を負います。これらは連携して、各コンピューターがネットワークのリソースにどれだけアクセスできるかを制御し、またその逆も制御します。 1 台のコンピュータがネットワークを支配しないようにすることは重要ですが、ネットワーク アプリケーションが 1 台のコンピュータのすべてのリソースを占有しないようにすることも同様に重要です。システムがユーザーのコンピューティング リソースを奪う場合、それは効率的なシステムとは言えません。
現在、人々はグリッド コンピューティング システムをどのように使用していますか?読み続けて調べてください。
グリッドコンピューティングアプリケーション
グリッド コンピューティング システムはいくつかありますが、そのほとんどは真のグリッド コンピューティング システムの定義の一部にしか当てはまりません。現在運用されているシステムの多くは学術研究機関のプロジェクトが占めています。これらのシステムは、未使用のコンピュータ処理能力を利用します。このようなネットワークを表す最も正確な用語は、共有コンピューティング システムです。
Search for Extraterrestrial Intelligence ( SETI ) プロジェクトは、最も早くから世間の注目を集めたグリッド コンピューティング システムの 1 つです。 SETI プロジェクトの使命は、宇宙人との知的通信の証拠を求めて、電波望遠鏡によって収集されたデータを分析することです。 1 台のコンピューターで効果的に分析するには情報が多すぎます。 SETI プロジェクトは、 SETI@homeと呼ばれるプログラムを作成しました。これは、コンピュータをネットワーク化して代わりに仮想スーパーコンピュータを形成します。
同様のプログラムとして、スタンフォード大学化学科の非営利機関である Pande Group が運営する Folding@home プロジェクトがあります。 Pande Group はタンパク質を研究しています。この研究には、タンパク質がどのようにして折り目と呼ばれる特定の形状をとるのか、そしてそれがタンパク質の働きにどのように関係するのかが含まれます。科学者たちは、タンパク質の「ミスフォールディング」がパーキンソン病やアルツハイマー病などの病気の原因である可能性があると考えています。パンデ・グループはタンパク質を研究することで、これらの病気を治療したり、治したりする新しい方法を発見する可能性があります。
同様のアクティブなグリッド コンピューティング プロジェクトが数十件あります。これらのプロジェクトの多くは永続的ではないため、それぞれのプロジェクトの目標が達成されるとシステムは解散します。場合によっては、完了したプロジェクトの代わりに、新しい関連プロジェクトが登場する可能性があります。
これらのプロジェクトにはそれぞれ独自の特徴がありますが、一般的に、参加プロセスは同じです。参加に興味のあるユーザーは、それぞれのプロジェクトのWeb サイトからアプリケーションをダウンロードします。インストール後、アプリケーションはそれぞれのプロジェクトの制御ノードに接続します。コントロール ノードは、分析のためにデータのチャンクをユーザーのコンピューターに送信します。ソフトウェアは、未利用の CPU リソースを利用してデータを分析します。プロジェクトのソフトウェアのリソース優先度は非常に低く、ユーザーが大量の処理能力を必要とするプログラムをアクティブにする必要がある場合、プロジェクト ソフトウェアは一時的にシャットダウンします。 CPU 使用率が通常に戻ると、ソフトウェアはデータの分析を再開します。
最終的に、ユーザーのコンピュータは要求されたデータ分析を完了します。その時点で、プロジェクト ソフトウェアはデータを制御ノードに送り返し、制御ノードはそれを適切なデータベースに中継します。次に、コントロール ノードが新しいデータ チャンクをユーザーのコンピュータに送信し、このサイクルが繰り返されます。プロジェクトに十分なユーザーが集まれば、比較的短い期間で野心的な目標を達成できる可能性があります。
グリッド コンピューティング システムの洗練度が高まるにつれて、より多くの組織や企業が多用途のネットワークを構築するようになるでしょう。企業が他の企業とインターネット接続する日も来るかもしれません。その環境では、今は不可能と思われる計算問題が、数時間かかるプロジェクトに短縮される可能性があります。様子を見る必要があります。
グリッド コンピューティングと関連トピックの詳細については、次のページのリンクを参照してください。
3,500 以上の生物のタンパク質配列を相互に比較する研究プロジェクトであるゲノム比較プロジェクトは、2006 年 12 月 20 日に開始されました。このプロジェクトは、グリッド コンピューティング システムを使用することにより、2007 年 7 月 21 日までにすべての目標を達成しました。