今まで、共通デスクトップ環境のテクノロジは、GUI を画面に表示させることに直接関係していると述べてきました。この節で説明する統合テクノロジは、GUI プロバイダではなく基本インフラストラクチャです。
ネットワーク使用環境を提供するため、リモート・ホストで実行しているアプリケーションの起動、管理、結果収集を行うサブ・プロセス・コントロール (SPC) 機能を、共通デスクトップ環境は提供しています。リモート・ホストは、ソケットベースのコントロール機能のリモート側として供給される SPC デーモンをインストールします。このコントロール機能はリモート・プロセスが親プロセスに対するローカルな子であるような錯覚を起こさせます。親プロセスを管理するユーザの認証は、ユーザのホーム・ディレクトリに setuid ファイルを書く親プロセスの権限と、結果を読む子プロセスの権限に基づいています。
SPC API および関連するコントロール・プログラムは、共通デスクトップ環境専用です。アクションは、リモートで実行するアプリケーションに対する公開している API を表します。
ToolTalk メッセージ・サービスは共通デスクトップ環境用のアプリケーション・メッセージ機能です。アプリケーション・メッセージ機構は、単一ユーザのために動作している複数のアプリケーション間のコントロールおよび協調を指示します。ToolTalk セッション・デーモンは、コントロール範囲が通常は X サーバのコントロール範囲と対応しているローカル・メッセージ・ルーティング・プロセスです。つまり、セッション内のクライアントが要求を出すと、ToolTalk セッション・マネージャが要求を処理できるクライアントをセッション内から見つけるか起動し、ToolTalk セッション・デーモンが、要求を完了するまで追跡します。
デスクトップはメッセージ・セットという 2 つの標準 ToolTalk プロトコルを提供します。メッセージ・セットには、プロセスの送信側と処理側とで交換できる多くのメッセージが入っています。これらのメッセージは、関連する要求や通知を記述しているものによってグループ化されています。送信側および受信側は、同じプロセスまたは異なるホスト上に存在できます。メッセージ・セットには、ロー・レベル・メッセージングの詳細に関係なく、プロトコルのセマンティクスを集められる関連のユーティリティ機能があります。一部のメッセージ・セット機能には、デフォルト動作をほとんど何もせずに区別できるようにするものもあります。
このセットは 3 つの領域に分類されます。 1 番目はウィンドウ動作に関するメッセージです。2 番目はファイル・アクセスと短期ファイルのライフ・サイクル・コントロールに関連するメッセージです。3 番目は拡張言語を備えているが、ライブラリのサポートを一般的に保証できないアプリケーションに特有のメッセージです。
このセットは、アプリケーションを任意のメディア用コンテナ、またはそのようなコンテナから駆動されるメディア・プレイヤ/エディタにします。メディア・メッセージ・インタフェースは、コンテナ・アプリケーション (メール・プログラムやファイル・マネージャなど) が、メディア型のフォーマットを認識していなくても、任意のメディア型のファイルまたはバッファの作成、表示、編集、印刷を可能にします。ToolTalk は、指定されたメディアの型とオペレーションに適するツールに対するコンテナの要求のルートを決定します。すでに実行されているインスタンスがその要求を処理するのに最適である場合は、そのインスタンスが選ばれます。
共通デスクトップ環境は、デスクトップのオブジェクトに対する一定のユーザ・インタフェースを提供します。このため、デスクトップにはデータ型の作成と呼ばれる機能があり、一連の規準によってオブジェクトの型を決定します。規準には、名前のパターンや内容のパターンなど、ファイルベースおよびバッファベースのオブジェクトが共有する潜在的な属性が含まれています。他の規準はファイルに関するもので、パス名のパターンとファイル・アクセス権を含んでいます。各デスクトップ型に関連するのは、アイコン名、名前のテンプレート、ユーザに提示するアクションのリスト、他の型スペース (MIME 型など) に相当する型の名前、この型のテキスト記述などの、拡張可能な一連の属性です。アクションおよびデータ型データベースはデータ規準とデータ属性を格納します。
一連のデスクトップ型定義は、共通デスクトップ環境が定義し、プラットフォーム・ベンダが供給します。アプリケーションのインストール時に、専用データ型およびパブリックなデータ型の両方について、アプリケーションのデータベースを増やしてください。
共通デスクトップ環境ライブラリ API によって、アクションおよびデータ型から情報が抽出されます。データ型作成 API は、オブジェクトのデスクトップ型を決定するためのデータベース型規準に、オブジェクトの属性を一致させます。そのアルゴリズムは、重複を解決するため一連の優先規則を使用します。
共通デスクトップ環境型スペースは、X/Open 共通デスクトップ環境標準で定義され、アイコン表示やアクション指定などのデスクトップ指向アクティビティをサポートするために存在しています。MIME 型スペースは Internet Engineering Task Force で定義され、メール・メッセージ部分の交換を行うために存在しています。ToolTalk メディア型スペースは、データをハンドラに一致させるために存在し、X コンソーシアムで定義される X 選択ターゲット型のサブセットです。したがって型の定義を完全に行うには、共通デスクトップ環境型、X 選択ターゲット型、MIME 型を定義してください。プライベートな共通デスクトップ環境型については、組織名に型名を追加してください。こうすると、型の割り当ての集中管理なしにネーム・スペースが区切られます。共通デスクトップ環境ではデスクトップを表す Dt という接頭辞を付ける必要があります。
共通デスクトップ環境の型は、デスクトップ・オブジェクトのクラスと見なすことができます。この類似性により、アクションをクラスのインスタンスで使用できる方法と見なすことができます。したがって、型属性リストのアクション属性は、型に使用できるオペレーションを記述しています。アクションおよびデータ型のデータベースにある 1 つのアクションは複数の部分から構成されていますが、その多くはオプションです。次のような部分があります。
オペレーション起動方法の記述。ToolTalk による方法、SPC 機能へ渡す実行文字列による方法、端末エミュレータから行う方法などがあります。
アクションに関連する引数の型についての記述。受け入れられるデスクトップ・オブジェクト (ファイルおよびバッファ) の型は、アクションおよびデータ型のデータベースで定義されます。アクションはデータ型によってさまざまです。たとえば [開く] アクションはテキスト・ファイルが引数の場合はテキスト・エディタを、グラフィック・ファイルが引数の場合はグラフィック・エディタを起動します。
アクションに関連する引数があれば、引数の数の記述
オペレーションを実行する場所のオプション指定。ローカル・マシン、特定のリモート・マシン、実行可能ファイルのあるマシンなどです。さらに、これらの場所はリストされるので、ホストが使用できない場合、リストにある次のホストで実行されます。これにより、リモート・ホストが使用不可能になった場合でも、アプリケーションを起動できる可能性を高められるような冗長性が提供されます。したがって、組み込み ToolTalk 機能または SPC 機能を直接使用することによって、アクションはネットワーク分散ガイダンスを提供できます。
アクションの GUI と対話するときにユーザが見るオプションのラベル、ヘルプ文字列、アイコン。アプリケーションがアクションをユーザに示すときのヒントとして役立ちます。フロントパネル構成ファイルが代替アイコンを提供する場合は、フロントパネルがこのアイコンを無視し、これらのヒントを無視します。
ユーザが使用できるアクションの集まりは、システムが型データベース情報を集めるのと同時に組み立てられます。実際、関連するアクションと型情報は、通常は同じファイルに同時に存在します。デスクトップ定義ファイル、システム管理者定義 (ホスト固有) ファイル、ユーザ定義ファイルはこの順序で単一の (アクションおよびデータ型) データベースに組み込まれ、後の定義が優先されます。この検索パス優先順位と検索の順序は、ヘルプ・ボリュームおよびアイコン・ファイル検索用などデスクトップで一般的に使用されます。
アクションおよびデータ型のデータベースとファイル・マネージャは、アクション・ファイルを使用して、表示、起動、移動、コピーなどを行えるファイル・システム・オブジェクトとしてアクションをインスタンス化します。データベースにはアクションの実装に対するリファレンスが含まれます (「net_app_svr 上の /usr/bin/app を実行する」など)。ただし、ユーザが直接処理できるオブジェクトとしてアクションを表示することが必要です。これはオブジェクト名を使用して実行されます。オブジェクト名は、アクションを検索する任意のオブジェクト・マネージャに対するアクションとして識別されます。したがって、Dtstyle という実行可能ファイルと Dtstyle というアクションがある場合、ファイル・マネージャはそのファイルを内容に関わらず Dtstyle アクションが参照するものとして解釈します。また、ファイル・マネージャはアクションのラベルを、ユーザがファイルを見るための名前として使用します。アクション・ラベルはローカライズできますが、アクション名はローカライズできないプログラムのエンティティです。
アクションおよびデータ型のデータベースへのポインタとしてファイルを使用する場合の利点は、ユーザが何もしなくても基本の実装を展開できることです。しかし、あるユーザのアクションおよびデータ型のデータベースが、他のユーザのアクションとデータ型に一致しないこともあります。したがって、ユーザはアクションのリファレンスを、たとえばメール・メッセージのアタッチメントなどとして交換したり、そのアクションに対して比較できる定義を持つユーザが他にいるかどうかを予期することができません。この問題を解決するには、デスクトップ Korn シェル・スクリプトを交換するのが最善の方法です。
アクションは継承したコマンド行アプリケーションと ToolTalk アプリケーションを、デスクトップ・オブジェクト上の多様な分散オペレーションとしてデスクトップに統合するので便利です。