集中コンピューティングと分散コンピューティング
1. 序章
ネットワークが生まれる前は、ビッグデータセンターを使用して、作業のいくつかのバッチを一元的に処理していました。 このシナリオでは、オペレーターは手動でマシンを各作業バッチを実行できるようにします。
ネットワークやインターネットの普及に伴い、マナーを拡大し、ユーザーに計算サービスを提供しています。 現在、クライアントサーバーモデルは、集中型コンピューティングを実装するための最も魅力的なオプションです。 さらに、分散コンピューティングが現実のものとなりました。
このチュートリアルでは、集中型および分散型コンピューティングを採用することの機能、長所、および短所について説明します。 まず、集中型コンピューティングシステムに特にアプローチします。 したがって、分散コンピューティングとその主な特徴を研究します。 したがって、両方のコンピューティングアーキテクチャを比較する体系的な要約があります。
2. 一元化されたコンピューティング
現在、集中型コンピューティングで最も使用されているモデルはクライアントサーバーモデルです。このモデルは、大規模な計算機能を備えたサーバーの存在を考慮しています。 このサーバーは、リクエストの受信と複数のユーザーへのサービスの提供を担当するエンティティです。
つまり、複数のクライアントが、集中型サーバーによって提供される同じ計算リソースを共有します。 したがって、特定の期間に応答されたクライアントの数は、使用可能な計算リソースの合計から見積もることができます。
ただし、集中型システムの他の運用特性も重要です。 例としては、リソース割り当てとスケジュールアルゴリズムがあります。 これらのアルゴリズムは、特定の要求にいつどのように応答するかを定義します。
次の画像は、クライアントサーバーモデルに従って開発された集中型システムのスケッチ例を示しています。
ただし、集中型コンピューティングはクライアントサーバーモデルに限定されないことに注意してください。 たとえば、定期的に収集された情報のみを保存し、他のシステムと相互作用しないデータベースサーバーを使用できます。
次のサブセクションでは、集中型コンピューティングの長所と短所について説明します。 それらについての議論は、集中型コンピューティングの特定のモデルに限定されるのではなく、集中型コンピューティングアーキテクチャの任意のモデルの任意のシステムに限定されません。
2.1. 一元化されたシステムの長所と短所
一元化されたシステムで最も興味深いのは、サーバーとクライアントが明確に分離されていることです。 これらのエンティティは緩く結合されています。 このようにして、必ずしもクライアントを変更せずにサーバーを変更できます。 さらに、異なるクライアントが同じサーバーにアクセスすることもできます。
たとえば、サーバーをホストしている企業は、計算リソース(メモリや処理能力など)を拡張し、クライアントを変更せずにサーバーで他の種類のメンテナンスを行うことができます。
もう1つの興味深いプロパティは、サーバーからクライアントを切り離すことです。一意のサーバーがすべてのサービスを提供するため、特定のクライアントをサーバーから切り離すのは簡単です。たとえば、クライアントの接続を切断し、ファイアウォールを介して新しい接続をブロックします。
ただし、集中型システムにもいくつかの落とし穴があります。
最初の潜在的な問題は、スケールアッププロセスの制限です。 ある時点で、サーバーにより多くのリソースを提供するだけでは、パフォーマンスが向上しません。 OSやネットワーク機能など、他にも制限があり、追加の計算リソースでは解決できません。
もう1つの落とし穴は、サーバーが単一障害点であるということです。 このように、サーバーが使用できなくなった場合、すべてのクライアントが動作していても、サービス全体がダウンします。 したがって、エクスプロイト、攻撃、または障害は潜在的に壊滅的です。
落とし穴はありますが、集中型システムは多くのアプリケーションに適したオプションです。 現在、いくつかのコマンドで起動できるWebサーバーなどの既製のサーバーがいくつかあり、新しいサービスの展開が容易になっています。
さらに、一元化されたサービスのための複数のオープンソースデータ分析ツールがあります。 これらのツールを使用すると、サーバーの所有者は、提供されたサービスで何が起こっているかを追跡できます。
説明したシナリオでは、集中型システムから通常恩恵を受けるサービスの例として、集中型データベース、シングルプレイヤーゲーム、およびデバッグサンドボックスがあります。
3. 分散コンピューティング
分散型エンティティが独自に意思決定を行う場合、システムは分散化されていることを強調することが重要です。 ただし、エンティティが何らかの方法で調整して決定を下す場合、システムは分散システムになります。
分散コンピューティングにはさまざまなモデルがあります。 たとえば、ワールドワイドウェブ自体を分散システムモデルとして見ることができます。 ただし、ピアツーピアモデルは、分散システムの特定の特性を調査するための優れたモデルです。
ピアツーピアモデルは、ネットワークを介して接続された独立したコンピューターのコレクションで構成されています。 各ピアには、提供されたサービスと連携して、データを処理し、他のピアと通信するのに十分な容量があります。
一般に、サービスにアクセスしたい人は、1つ以上のピアと通信してサービスを取得します。 特定のケースでは、サービスを要求するエンティティは、サービスを提供するピアにもなります。 したがって、サービスは有機的に成長します。サービスを要求するエンティティの数が多いほど、サービスは大きくなります。
以下の画像は、ピアツーピアモデルでの分散コンピューティングの提示された特性を例示しています。
分散コンピューティングは複数の面で有望なアーキテクチャですが、いくつかの課題があります。 このような課題の例は、分散エンティティの調整と合意です。 これらの課題のために、分散システムはコンピュータサイエンスの特定の分野になります。
次のサブセクションでは、分散システムを実装するために採用されたモデルに関係なく、分散システムの長所、短所、およびユースケースを検討します。
3.1. 分散システムの長所と短所
分散システムを採用することの大きな利点の1つは、集中型コンピューティングの単一障害点を排除することです。 分散システムでは、ピアに障害が発生してもサービスは引き続き利用可能です。
これは、他のピアが失敗したピアのタスクを引き受けるか、少なくとも、特定のピアが失敗したことを要求元のエンティティに適切に通知できることを意味します。 このようにして、適切に設計された分散システムを堅牢なシステムとして理解できます。
分散システムを採用するもう1つの利点は、プロセスのスケールアップとスケールアウトです。 したがって、システム内のエンティティに追加の計算リソースを追加できます(スケールアップ)。 ただし、システムでサービスを提供するために新しいエンティティを追加することもできます(スケールアウト)。
システムに新しいエンティティを追加できる可能性があるため、サービスプロバイダーは、特定の地理的地域の特定の必需品にさまざまな方法で取り組むことができます。 たとえば、サービスユーザーの密度が高い地域では、複数の密接な提供エンティティを持つことができます。
ただし、分散システムにも複数の落とし穴があります。
関連する問題は、分散システムの管理です。 自律型エンティティが連携しているため、それぞれを追跡および監視することは困難です。
さらに、サービスを提供するすべてのエンティティに一般的な更新を広める必要があり、これには複雑な戦略が必要です。 たとえば、スケジュールされた時間に複数の宛先にパッチを送信してインストールするための更新戦略が必要です。
システム内のエンティティの容量とクロックの違いは、もう1つの課題です。 実際、それは正確には問題ではなく、特徴です。 ただし、プロバイダーは、ボトルネックや十分に活用されていないシナリオを回避して、エンティティの容量のバランスをとる必要があります。
課題に関係なく、分散システムにはさまざまな用途があります。 例えば:
- BitTorrent Networks :データを共有するための分散型ピアツーピアネットワーク
- ブロックチェーン:データが複数のエンティティによって安全に維持される分散型および分散型データベース
4. 体系的な要約
前のセクションでは、主な長所と短所に焦点を当てて、集中型および分散型コンピューティングの特性を研究しました。
集中型コンピューティングと分散型コンピューティングの多くの違いを特定できました。たとえば、集中型システムはスケールアップに制限されていますが、分散型システムはスケールアップとスケールアウトが可能です。
さらに、分散システムでは、集中型システムよりも管理が難しい傾向があります。
次の表は、集中型システムと分散型システムの関連機能の比較を示しています。
5. 結論
このチュートリアルでは、集中型システムと分散型システムの主な相違点と類似点を調査しました。最初に、集中型システム、その長所、および短所について学習しました。 したがって、同様の方法で、分散システムの特性を調査しました。 最後に、それらの間の要約された比較を見ました。
調査した両方のシステムアーキテクチャは、現実の世界で使用できる大きな可能性を秘めていると結論付けることができます。さらに、どちらが良いか悪いかを指摘するだけでは不十分です。
一般に、集中型アーキテクチャと分散型アーキテクチャのどちらを選択するかは、目的のシステムの要件に依存します。 したがって、私たちはそれらの利点から利益を得ることができ、それらの欠点の影響を軽減することができます。