1. 序章

このチュートリアルでは、分散システムと分散コンピューティングについて見ていきます。 まず、両方の用語を定義し、それらのプロパティと特性の概要を説明します。 また、それらの使用法とアプリケーションを確認し、分散システムと分散コンピューティングの違いを強調します。

2. 分散システム

分散システムを定義することから始めて、次にその基本的な原則と特性のいくつかについて議論していきましょう。

2.1. 分散システムとは

分散システムは、通常は地理的に異なる場所にある、異なるデバイスに存在するいくつかのコンポーネントを含むシステムです。 これらの物理的に分離されたコンポーネントは通常、ネットワークを介して接続され、メッセージパッシングを介して通信します。 これらのコンポーネントは、コンピューターシステム、リソース、およびプロセスであり、ノードとも呼ばれます。

分散システムのさまざまなコンポーネントはさまざまな場所に配置されていますが、システム全体が単一のユニットとして機能し、タスクを処理してリソースを共有します。 さらに、分散システムには、ピアツーピアシステムとクライアント/サーバーシステムの2つの主要なタイプがあります。

ピアツーピアシステムは、その名前が示すように、すべてのコンポーネントがタスクを処理し、リソースを平等に共有します。 ノード間のピアツーピア接続により、通常、ネットワークを集中管理する必要はありません。

ピアツーピア分散システムとは対照的に、クライアント/サーバーシステムのノードはクライアントとサーバーの役割を果たします。 クライアントデバイスまたはコンポーネントはリソースを要求しますが、サーバーはクライアントにリソースを提供します。 n層および3層分散システムなど、他の代替分散システムもあります。

2.2. 分散システムのプロパティ

分散システムは、次のような明確な機能によって特徴付けられます。

  • フォールトトレランス:分散システム内のノードの障害は、システム全体の全体的なパフォーマンスに影響を与えません。
  • スケーラビリティ:分散システムは、ネットワークに参加するノードの数に関して柔軟性があります。 このシステムは、サイズの拡大または縮小に対応できます。
  • リソース共有:分散システム内のノードの接続により、リソースの共有が可能になります。 たとえば、各コンピュータシステムを1台のプリンタに接続する代わりに、システムに参加しているすべてのノードで1台のプリンタを共有できます。
  • 透明性:分散システムがそれ自体を単一のユニットとして提示し、そのリソースが物理的に分離され、複数のコンポーネントに配置されているという事実を隠す機能。

2.3. 分散システムの利点と問題点

以下の理由から、分散システムをお勧めします。

  • 分散システムは、主に複数のコンピュータシステムがあるため、信頼性が高くなります。 したがって、1つのコンポーネントに障害が発生した場合でも、分散システムは通常どおり機能します。
  • 分散システムは、複数のノードの処理機能を組み合わせて、最大のパフォーマンスを実現します。
  • 分散システムの柔軟性により、システムにコンポーネントを追加できます。
  • 複数のデバイスを接続すると、リソースを共有できます。
  • 単一の集中型システムを使用する場合とは対照的に、複数のデバイスが接続してリソースを共有する分散システムを実装する方が実質的に安価です。

分散システムに存在するいくつかの課題は次のとおりです。

  • 複数のノードが参加しているため、応答時間にばらつきが生じる可能性があります。 ただし、システムプロセスの同期を確保するには、これに対処する必要があります。
  • 分散環境でのセキュリティの確保は複雑になる可能性があります。 単一ノードのセキュリティ違反は、分散システム全体に影響を及ぼし、無効にする可能性があります。
  • 分散システムに関連するネットワーク設定コストは通常高いです。

2.4. 分散システムのアプリケーション

分散データベース、分散コンピューティング、分散ファイルシステム、分散メッセージングシステムで分散システムを採用しています。 インターネットは、分散システムの最も広く知られている例です。 インターネットは、情報やリソースを共有するために、地理的に異なる場所にある多くの異なるコンピュータシステムの接続を容易にします。

3. 分散コンピューティング

次に、分散コンピューティングの詳細について詳しく説明します。

分散コンピューティングとは、分散システムを使用してコンピューティングタスクを完了することを指します。 分散システムの原理を適用して、分散システムに接続されたさまざまなコンピューターシステムでプログラムを実行します。 そのため、分散コンピューティングで実行されるプログラムのさまざまな部分が分割され、ネットワークに存在するさまざまなコンピューティングシステムに割り当てられます。

さまざまなコンピューターシステムを使用すると、利用可能な計算能力が向上し、より大きく、より複雑なタスクを実行できるようになります。 分散コンピューティングと分散システムは、スケーラビリティ、フォールトトレランス、リソース共有、および透過性という同じ基本的なプロパティを共有します。

分散コンピューティングと分散システムは同じ利点を共有しています。 つまり、信頼性が高く、集中型システムよりも安価で、処理能力が高くなっています。 ただし、分散コンピューティングで直面する課題にはわずかな違いがあります。 たとえば、計算タスクを、さまざまなコンピュータシステムで並行して実行できるさまざまな部分に分割することは困難です。

さらに、分散コンピューティングのタスクを調整する必要があります。

3.1. 分散コンピューティングのアプリケーション

分散コンピューティングの顕著な利点により、モバイルシステム、ソーシャルメディアネットワーク、気象監視システム、およびeコマースシステムで使用しています。 たとえば、 Apache Hadoop は、分散処理と分散ストレージを容易にするよく知られたフレームワークです。

4. 違い

微妙ではありますが、分散コンピューティングと分散システムの間には顕著な違いがあります。 たとえば、分散コンピューティングは分散システムのカテゴリです。 その他の違いは次のとおりです。

5. 結論

この記事では、分散システムと分散コンピューティングを定義しました。 それらのプロパティとアプリケーション、およびそれぞれに存在する利点と課題について概説しました。 また、分散システムと分散コンピューティングの間には微妙な違いがあるため、2つの用語が互いにどのように関連しているかについても説明しました。