透過性 (情報工学)
以下はヒトとコンピュータとのインタラクションにおける透過性(とうかせい、transparency)の説明である。プログラミングにおける透過性は参照透過性を参照。
ヒューマンマシンインターフェースにおいてユーザーが技術的詳細に悩まずに済む使い易さの側面であり、例えば、プログラムがディスプレイの解像度を自動認識する方がユーザーにいちいち質問するものよりも「透過的」であると言える。
ネットワークにおいては、同一のユーザーインターフェイスやアプリケーションインターフェイスで異なる論理動作をサポートするソフトウェアは「透過的」であると言える。例えば、Network File System は遠隔地にあるファイルをあたかもローカルな記憶装置に置かれているかのようにアクセスできるようにしている。
同様に、一部のファイルシステムは「透過的」にデータの圧縮と解凍を行い、より多くのファイルを記憶媒体上に格納できるようにしており、ユーザーは特別な技術的知識を必要としない。他にも透過的にファイルを暗号化するファイルシステムもある。また、様々なデータベースを利用できるようにアプリケーションにデータベースアクセスのための抽象化層を開発することがある。この抽象化層はデータベースへの「透過的」なアクセスを実現するものである。オブジェクト指向プログラミングでは、実装の異なる同一インターフェイスを使用することによって透過性を実現する。
8ビットクリーンな通信ネットワークは、制御文字がどのように送られるかといった知識なしに任意のファイルを転送できる。電子メール等の8ビットクリーンではない通信ネットワークでは、制御文字や8ビット文字の通過できない文字を送信する前に通過できる文字に変換し、受信した後で元に戻すことによって、該通信ネットワークで転送できる文字の知識なしにファイルを転送できる透過性を実現する。
分散コンピューティング
編集分散システムでの透過性とは、分散された構成をユーザーから隠し、あたかも集中型システムであるかのように見せることである。
以下のような透過性がある:
- アクセス透過性
- 各ノードでのリソースの実際の配置やアクセス方法はどうであれ、ユーザーから見て分散システムは常に同じリソースアクセス方法を提供すべきである。
- 位置透過性
- 分散システムはユーザーにリソースの配置を意識させるべきではない。
- マイグレーション透過性
- リソースやプロセスが分散システム内で物理的/論理的に異なる位置に移動できるかどうかをユーザーに意識させるべきではない。
- リロケーション透過性
- 使用中のリソースもユーザーに気づかれずに移動可能であるべきである。
- 複製透過性
- リソースが複数の位置に複製され配置される場合、ユーザーにはそれらが1つのリソースとして見えるようにすべきである。
- 並行透過性
- 複数のユーザーが1つのリソースを共有して使用するとき、それらユーザーに競合状態を気づかせてはならない。
- 障害透過性
- リソースやノードの障害をなるべくユーザーから隠して復旧させるよう努めるべきである。
- 永続透過性
- リソースが永続的な記憶装置にあるか、揮発性の記憶装置にあるかで違いが発生しないようにしなければならない。
- セキュリティ透過性
- 暗号化されたセキュアなリソースへのアクセスの際、ユーザーには必要最小限の手続きでアクセスできるようにしなければならない。さもなくば、ユーザーは手間を惜しんでセキュリティを出し抜くだろう[1]。
- 規模透過性
- システムが容易にスケールできなければならない。
実際に、これらの透過性をどの程度実現しているかは様々である。必ずしもあらゆる透過性を常に実現しなければならないわけではない。実際、光速度の制限により、遠隔にあるリソースへのアクセスには時間がかかる。分散システムでリアルタイム性を求めるなら、この点は注意しなければならない。