次の方法で共有


分散システムの実装

分散システムにソフトウェアを実装する方法の 1 つは、生のネットワーク サポートを使用することです。 このアプローチには、ソケット、名前付きパイプ、HTTP POST、GET などが含まれます。 これらのモデルはすべて、開発者が低レベルのプログラミング プリミティブを何方向か別の方法で使用することを強制します。これにより、開発者はネットワーク データ表現 (NDR) の処理、データのパッケージ化、ネットワーク トラフィックと障害状態の管理、データの整合性の保護と暗号化などを行う必要があります。

RPC にはプログラミング モデルが用意されており、開発者は豊富な API を使用してクライアントとサーバー間のネットワーク相互作用をきめ細かく制御しながら、分散システムが導入する傾向のある詳細と負担から開発者を節約できます。

たとえば、分散システムでのメッセージ交換の整合性とプライバシーを保護するためのさまざまなアプローチに関連する負担について考えてみましょう。 パケット交換のネットワーク セキュリティを検討する場合、一部の保護は弱く、一部は強化されます。 真のネットワーク セキュリティはなく、さまざまなパケット ベースのセキュリティ メカニズムのみです。呼び出し元を識別するセキュリティ (パケットの内容は転送中に変更される場合が多いため、脆弱になる傾向があります)、プライバシーを保護せずにパケットの整合性を保護するセキュリティ (さまざまな署名とハッシュ)、およびメッセージ交換のプライバシーを保護するセキュリティ (さまざまな暗号化メカニズム)。

セキュリティで保護された分散システムを実装するもう 1 つの負担は、暗号化、署名、認証などのセキュリティ プリミティブを実装するために必要なアルゴリズムです。 開発者はこれらのアルゴリズムを実装できますが、結果として得られるアルゴリズムには微妙なセキュリティ上の欠陥があるため、これを行うことは困難で、エラーが発生しやすく、危険です。 または、開発者は、利用可能なセキュリティ プロバイダーを使用して、分散システム内のネットワーク相互作用の保護を実装できます。

RPC を使用すると、これらの両方の負担が非常に簡単に解決されます。 開発者は、使用するセキュリティ パッケージと、メッセージ交換に適用する必要があるセキュリティ保護 (認証、暗号化、相互認証、呼び出し元 ID の追跡など) を RPC に指示するだけで済みます。 RPC は、バックグラウンドのすべての詳細を効率的な方法で処理しますが、開発者はデータの保護方法を正確に制御できます。