おれさまラボ

実際に手を動かして理解を深めるブログ。

分散システムの透過性

分散システムの透過性とは、システムを利用するユーザーからはリソースやプロセスを隠蔽することで、ユーザーにはあたかも単一のシステムであるかのように認識させるシステム特性のことです。

たとえば、いわゆるWeb(World Wide Web)は分散型の文書管理システムであり、ユーザーはHTML文書が世界のどこのサーバ上にあるのか意識する必要はありません。また、DNSも分散型のレコード管理システムであり、世界中に点在するどこのサーバからIPアドレスを得たのか、ユーザーは知る必要がありません。

このような透過性にはいくつかの区分が存在するので、それを一覧表化してみました。

▼ 分散システムの透過性

透過性の区分 英語表記 概要 DNSを当てはめた例
アクセス透過性 access transparency リソースにどのようにアクセスされるか、ユーザーは意識する必要がない。 DNSによる名前解決がどのように行われ必要なIPアドレス情報が入手されるのか、ユーザーは知る必要がない。
位置透過性 location transparency リソースが物理的にどこにあるか、ユーザーは意識する必要がない。 DNSのゾーンファイルが、物理的にどこにあるのか、ユーザーは知る必要がない。
移動透過性 migration transparency リソースが物理的または論理的な場所に移動する可能性があることを、ユーザーは意識する必要がない。 DNSサーバがリプレースされるとしても、ユーザーは知る必要がない。
再配置透過性 relocation transparency リソースが使用中にどこか別の場所に移動する可能性があることを、ユーザーは意識する必要がない。 サーバのリプレース等で新しいDNSサーバに切り替えられたとしても、ユーザーは気が付かない(場合がある)。
レプリケーション透過性 replication transparency リソースが複製されていることを、ユーザーは意識する必要がない。 DNSが何台のサーバで構成されているか、ユーザーには関係ない。
並行透過性 concurrent transparency リソースが競合ユーザーに共有されていることを、ユーザーは意識する必要がない。 他のユーザーと同じゾーンファイル、レコードを参照していることをユーザーは意識する必要がない。
障害透過性 failure transparency リソースに障害が発生したことを、ユーザーは意識する必要がない。 DNSサーバに障害が発生したとしても、ユーザーは気が付かない(場合がある)。
永続透過性 persistence transparency リソースが揮発性の高いメモリ上に存在するか、永続性の高いディスク上に存在するか、ユーザーは意識する必要がない。 DNSレコードがメモリ上にあろうとディスク上にあろうと、ユーザーには関係ない。

以上