Distributed Computing Environment
Distributed Computing Environment(DCE)は、1990年代初期にアポロコンピュータ(現在のヒューレット・パッカードの一部)、IBM、DECなどが結成したコンソーシアムが開発したソフトウェアシステムである。DCE はクライアントサーバモデルのアプリケーション開発のためのフレームワークとツールキットを提供する。フレームワークには、遠隔手続き呼出し (RPC) 機構 DCE/RPC、ネーミング(ディレクトリ)サービス、タイムサービス、認証サービス、認可サービス、分散ファイルシステム DCE/DFS が含まれる。
歴史
[編集]DCE は1980年代のUNIX戦争と深い関係がある。サン・マイクロシステムズとAT&Tが共同で UNIX System V Release 4 (SVR4) を開発するようになると、他のUNIXベンダーは彼らの製品が市場で不利になると考えた。そこで彼らは Open Software Foundation (OSF) を結成し、BSDベースのUNIXで対抗しようとした。OSF はMachカーネルに基づいた OSF/1 を完成させたが、SVR4 に比較すると性能が悪く、DEC 以外ではほとんど使われなかった。
OSF の結成に伴い、メンバー各社が様々な進行中プロジェクトの成果を持ち寄った。当時、ネットワークコンピューティングが重要な課題となっており、多くの企業がRPCシステムの開発を行っていた。それらを統合して「公式の」RPC機構を再構築することで、OSF は SVR4 に対して優位に立とうとした。それが DCE であり、DCE をサポートするのが OSF/1 である。
DCEシステムは、その大部分が個々のメンバー企業が独自に開発したものに基づいている。DCE/RPC はアポロコンピュータの開発した Network Computing System (NCS) がベースとなっている。ネーミングサービスは DEC の成果に基づいている。DCE/DFS はカーネギーメロン大学が開発した Andrew File System (AFS) に基づいている。認証システムはケルベロス認証に基づき、認可システムはアクセス制御リスト (ACL) に基づいている。これらの機能を統合して、DCE はC言語ベースの完全なネットワークコンピューティングシステムを提供するようになった。ネットワーク上の任意のマシンがユーザーを認証し、リソースへのアクセスを許し、単一の統合された API で遠隔から呼び出すことを可能にした。
1980年代末期から1990年代初期に想定されたほど、この種の分散処理は広く利用されることはなかった。インターネット、Java、Webサービスといった新たな技術が1990年代中盤以降に盛んになり、CORBAのようなシステムも競合することとなった。皮肉なことに、DCE/RPC はマイクロソフトの DCOM や ODBC でトランスポート層(MSRPC)として使われることで生き延びた。
OSF とそのプロジェクト群は The Open Group に統合され、2005年1月12日にLGPLライセンスで DCE 1.2.2 がリリースされることとなった。それ以前にも DCE 1.1 は OSF BSD ライセンスでリリースされており、2000年には FreeDCE が登場している。FreeDCE には DCOM の実装も含まれている。
アーキテクチャ
[編集]DCE における大きな管理単位を「セル; cell」と呼ぶ。セル内の最高特権を持つものを「セル管理者; cell administrator」と呼び、一般に cell_admin というユーザー名が割り当てられる。これは通常のOSレベルのユーザーである必要はない。cell_admin はセル内の全DCEリソースについての全ての権利を有する。権限はDCEリソース毎に user_obj、group_obj、other_obj、any_other の4つのカテゴリ毎に付与または制限される。このうち、最初の3つは、所有者、グループメンバー、それ以外に対応する。any_other は DCE のユーザーでない者を意味する。複数のセル間でリソースを共有し通信するような構成が可能である。セル外部からのアクセスについては "foreign" ユーザーとして扱い、必要に応じて権限を付与・制限できる。さらに、特定のユーザーやグループに任意のDCEリソースについての権限を与えることもできる。これは ACL のない従来のUNIXでは不可能だったことである。
DCE のセルに存在する主な構成要素は以下の通りである。
- セキュリティサーバ - 認証を行う
- Cell Directory Server (CDS) - リソースやACLのリポジトリ
- Distributed Time Server - セル全体に正確な時刻を供給する。
IBM の DCE 実装では、セキュリティサーバにはケルベロス、CDS には LDAP、タイムサーバには Network Time Protocol が使われている。
DCE で分散ファイルシステムを実装するには、ファイル名をCDSに登録し、それに適切なACLを設定することで実現できるが、これでは扱いにくい。DCE/DFS は DCE における分散ファイルシステム機能を提供するアプリケーションである。DCE/DFS では複数のサーバ上にファイルシステム(DCE/DFS ではファイルセットと呼ぶ)の複製を持つ。そのうち1つが読み書き可能なコピーであり、他は読み込みのみ可能である。読み書き可能なコピーとその他のコピーの間で複写が行われる。さらに DCE/DFS にはバックアップ機能もあり、最新の複写の前の状態のファイルセットを保持する。
DCE/DFS は POSIX のファイルシステムを完全に正しく実装した唯一の分散ファイルシステムとされている(バイト単位のロック機構など)。DCE/DFS の信頼性を実証したのは、1996年のアトランタオリンピックのWebサイトであった。IBM はそのバックエンドに DCE/DFS を使い、編集と参照を世界中から行えることを示した。