共通デスクトップ環境 プログラマ概要

パート I 共通デスクトップ環境アーキテクチャの概要

第 1 章 アーキテクチャの概要

この章では、共通デスクトップ環境のハイレベルなアーキテクチャを説明します。デスクトップ実行環境の詳細は、実行時のマニュアル・セットとオンライン・ヘルプ・ボリュームを参照してください。デスクトップ開発環境のコンポーネントの詳細は、第 6 章「推奨する統合方法」第 7 章「オプションの統合方法」付録 A 「共通デスクトップ環境 Motif」、開発環境用マニュアル・セット、およびオンライン・マニュアル・ページを参照してください。

概念

共通デスクトップ環境アーキテクチャにはプロセスの相互関係が多数あります。X クライアント、ウィンドウ・マネージャ、X Window System サーバの 3 つの関係は、比較すると簡単です。共通デスクトップ環境が適用される範囲は広いですが、システムの階層は Motif、Xt、Xlib ほどに厳格なものではありません。この章ではテクノロジをグループ化し、それぞれのデスクトップ・コンポーネントを図解します。共通デスクトップ環境は次のように分類されます。

図 1-1 共通デスクトップ環境の概念

Graphic

データ対話型 GUI

共通デスクトップ環境は登録サービスである ToolTalk メッセージ・サービスを提供します。これによりアプリケーションは使用可能なサービス・プロバイダを見つけることができます。ToolTalk はローレベルのメッセージ機構インフラストラクチャを提供します。アクション・システムと呼ばれるガイド機能は、アプリケーションに対する従来の UNIX コマンド行インタフェースと共通デスクトップ環境で推奨する ToolTalk インタフェースの両方の上に一貫した抽象的な階層を提供します。アクションは意味を持つエンティティとして、ソフトウェアの上位レベルによってエンド・ユーザに示されます。アクションおよび ToolTalk の詳細は、いずれも 「統合テクノロジ」で説明します。

デスクトップには、アクションまたは ToolTalk API が使用できるコンポーネントがあります。ディレクトリの表示、印刷ジョブの発行、[ごみ箱] の内容表示、テキストの編集、ヘルプ情報の表示、カレンダ・アポイントの作成、およびメール・メッセージの作成などを行う GUI があります。

アクションや ToolTalk メッセージのサポートをアプリケーションに組み込んで、アプリケーション固有のサービスをデスクトップおよび他のアプリケーションで使用できるようにすることもできます。特に、専用フォーマット・データおよび標準フォーマット・データの両方で、作成、表示、編集、印刷のサービスを行います。このように、拡張可能な一連のデータを受け入れるようにコード化されたアプリケーションは、システムにメディア・ハンドラを追加すればするほどその機能が自動的に向上します。このようなアプリケーションには、共通デスクトップ環境のファイル・マネージャ、フロントパネル、およびメール・プログラム接続 GUI などがあります。

「メディア」は、情報をユーザに伝えるものを指す一般用語として使用されています。デスクトップはアポイント、メール・メッセージ、メール・フォルダ、テキスト、アイコン、およびヘルプ・データ用のメディア・ハンドラを提供します。ベンダは、PostScriptTM、あらゆる種類のイメージ・ファイル・フォーマット、オーディオ・データなどその他のメディア・ハンドラを追加することによりデスクトップを拡張できます。

マルチユーザでの共用

ToolTalk およびアクションの機能はアプリケーション間の連携を強化しますが、デスクトップもユーザ間での共用テクノロジを定義します。つまり、共有のユーザ・データへの分散アクセスです。デスクトップはいくつかの基本共有機能を定義し、既存の機能の一番上に構築しています。

既存機能上での構築の例としては、カレンダ管理の遠隔手続き呼び出し (RPC) クライアント/サービスがあります。デスクトップは、ユーザがアポイント情報を共有できるようにクライアント側ライブラリと API、RPC プロトコル、およびデーモン/サービスを提供します (API は X.400 アプリケーション・プログラミング・インタフェース・アソシエーション (XAPIA) によって標準化され、UNIX、PC、パームトップ・カレンダで相互に使用できる標準になります)。RPC プロトコルにより、ユーザは他のユーザのカレンダをブラウズし、直接編集できます。アクセスはユーザ固有のアクセス・コントロール機能で制御されます。カレンダはホストに結びつけられ、カレンダのデータはホスト固有のデーモンが管理します。デスクトップは user@host フォーマットによりカレンダを管理します。

共通デスクトップ環境は従来の分散ファイル・システムを使用して、ネットワークで共有できるファイルを管理します。分散ファイル・システムに依存しないインタフェースを提供するため、デスクトップは ホスト関連ファイル名をローカルに表現できるファイル名に変換する API を提供します。デスクトップは NFSTM システムに基づいていますが、他の分散ファイル・システムへ移植できます。デスクトップ・ファイル名マッピング API を使用すると、遮断されたファイル名オブジェクトを構築したり、ネットワークのデスクトップ・クライアント間で渡したり、ホスト固有の方法で解釈できます。また、プログラミング・タスクとエンド・ユーザ・メタファを単純にするため、共通デスクトップ環境のアプリケーションはローカル・ファイル・パスとしてリモート・ファイルのリファレンスを提供できます。

マルチユーザの共用アプリケーションを構築する基礎となるものの 1 つに、ファイルの共有機能があります。ネットワーク・ファイルの命名規則は、ファイル範囲指定と呼ばれる ToolTalk ファイル共有機能と結合して、ファイル共有によってマルチユーザでの共用を可能にします。ファイル範囲指定は、単純で排他的なアクセス・コントロールのためのメカニズムをもっています。協調するクライアントは、ファイル範囲指定アクセスを使用してファイルへのアクセスを調整できます。たとえばファイルに排他的アクセスをしているアプリケーションは、他のアプリケーションがファイルへの排他的アクセスを望んでいるときに、ユーザがアクセスを終了したかどうかを確認します。

デスクトップ管理

共通デスクトップ環境に対応する物理メタファは、たくさんの机 (ワークスペース) に囲まれて、椅子に座っているユーザの 1 人のようなものです。ユーザが椅子を (フロントパネルの押しボタンをクリックすることによって) 回転させると、他の机にアクセスできます。各机では次のものを使用できます。

ユーザはオブジェクトをドラッグ&ドロップして位置を変更しコピーします。サービスにオブジェクトをドロップすると、アポイント・スケジュール、編集、メール作成、印刷などの補助を受けられます。

セッション管理

デスクトップの状態は保存しておくことができます。後で、あるいは別のコンピュータで、デスクトップの状態を再現できます。セッションは、ユーザのデスクトップの状態の、ある瞬間におけるスナップショットです。共通デスクトップ環境は次のような 2 つのセッションをサポートし、いずれかをユーザが選択できるようにしています。

共通デスクトップ環境セッション・マネージャはこれらのアクティビティを調整しますが、アプリケーションの状態の保存についてはアプリケーションが責任を持ちます。

デスクトップは X11R5 で採用されたセッション管理のクライアント間通信規約のスタイルを使用します。これには、トップレベル・ウィンドウの属性を設定するための規約のほとんどが含まれています。デスクトップはこれを拡張し、アプリケーションが状態を格納できる特定のファイルを割り当てる機能を提供します。アプリケーションを再起動するときにコマンド行フラグがこのファイルを指します。複数のトップレベル・ウィンドウを管理するアプリケーションは、それぞれの状態を保存しなければなりません。

セッションは特定のユーザに関連付けられます。共通デスクトップ環境では、ログイン・マネージャがユーザの最初のログインに責任を持ちます。ログイン・マネージャは、UNIX ログイン・プログラムに代わる GUI です。通常は入力されたパスワードがユーザの登録したパスワードかどうかチェックします。ただし、ベンダは各プラットフォームに最適な認証スキーマを提供できます。

ログイン・マネージャはネットワークを認識します。ユーザは、ホスト A がサーバである X ディスプレイに向かい、ホスト B からのセッションを実行することにより、ユーザのディスクトップにログインできます。このセッションにより、ユーザの通常のファイルやホスト B のサービスにアクセスできます。これはデスクトップの X11 ディスプレイ・マネージャ (XDM) としてログイン・マネージャを動作させることにより可能です。XDM コントロール・プロトコル (XDMCP) は、ネットワーク上で X11 ウィンドウ・サーバと XDM との間で使用されます。ログイン・マネージャはログイン・ウィンドウまたはホスト選択ウィンドウを、XDM サービスを要求する任意の X11 サーバに表示します。これにより、XDMCP を認識する X 端末で共通デスクトップ環境が使用できます。

X サーバへ接続するため、デスクトップは X マジック・クッキー・スキーマを使用してアクセスをコントロールします。あるホスト・マシン上でユーザが、セッション所有者のホーム・ディレクトリ内の特定のファイルを読むことができる場合、X サーバへアクセスが許可されます。このユーザごとの利用権の他にホストごとの利用権があります。X マジック・クッキー・スキーマを使用して X サーバへ接続できない X11R4 以前のクライアントをサポートするインストールを行う場合に便利です。

X リソース・ファイルは共通デスクトップ環境のセッションのコンテキストで次のように処理されます。まず、一連の共通デスクトップ環境のデフォルト・リソースはホストのリソース・ファイルとマージされ、次にユーザの $HOME/.Xdefaults ファイルが続き、次にスタイル・マネージャでのユーザ対話により変更されるリソースのセッション固有ファイルが続きます。その結果はルート・ウィンドウの RESOURCE_MANAGER 属性に格納されます。精密なカスタマイズを可能にするために、リソース・ファイル上に C プリプロセッサを実行します。

アプリケーション管理

エンド・ユーザがネットワーク環境を十分に活用できない理由の 1 つに、リモート・アプリケーションへアクセスしづらいという点があります。共通デスクトップ環境は以下の内容に関する規約を提供します。

ユーザは使用可能なアプリケーションの集まりをアプリケーション・マネージャと呼ばれる GUI ツールでブラウズできます。アプリケーションは簡単にアクセスできるようデスクトップにドラッグできます。リモート・アプリケーションでも、実行アプリケーションのネットワークの位置を隠したまま、単にダブルクリックするだけで起動できます。ユーザはローカル・アプリケーションとリモート・アプリケーションとの違いに気付きません。

このようなネットワークの透過性は、アプリケーション・サーバとして指定したネットワーク・ホスト上にアプリケーションをインストールすると実現されます。デスクトップに関するインストールの一部では、アプリケーションのインストール階層の規定の場所に特定のファイルを置く必要があります。アプリケーション・サーバはそれが提供するアプリケーションのリストを管理します。ネットワークの各ホストは、ユーザがデスクトップにログインしたときに照会するネットワーク上のアプリケーション・サーバのリストを管理します。このプロセスはアプリケーションの収集といいます。これにより、動的に生成されたアクションのファイル階層がフォルダに配置されます (アクションとは、アプリケーションの開始など、エンド・ユーザが起動できるオペレーションのことです)。

共通デスクトップ環境のアプリケーション・マネージャはエンド・ユーザに対してファイル・システムの特殊な表示を提供します。アプリケーションはグループ化され、グループは (ディレクトリ階層のように) 入れ子にできます。アプリケーションのインストール・スクリプトは、アプリケーションをグループと関連づけます。この関連は、アプリケーション・サーバの構成の一部としてシステム管理者が変更できます。アプリケーション・マネージャが表示するアクションのセットと配列は、一般に複数のユーザ間で共有されているシステム・リソースです。ユーザは表示を変更できません。

ユーザはアプリケーション・マネージャからデスクトップ、ファイル・マネージャ、フロントパネルなどへアイコンをドラッグできます。収集されたアプリケーションが有効な間、関連したアクションは有効です。アクションは抽象化された形式および間接形式で示されるため、アプリケーションの実際の位置はいつでも変更できます。この変更はエンド・ユーザに対して透過的です (詳細は 「メソッドの実行」で説明します)。ユーザはアクション・アイコンをダブルクリックして、アクションを起動できます。

オブジェクト管理

共通デスクトップ環境は、完全なオブジェクト指向のインフラストラクチャに依存せずに、オブジェクト指向のシステム属性を取り込んでいます。デスクトップはユーザが選択および移動でき、これを任意の場所でドロップするとセマンティックを作成するグラフィック・オンスクリーン・イメージを提供します。これらはオブジェクトとしてユーザに表示されます。ファイル・マネージャは、ファイル・システム内でファイルおよびディレクトリ・オブジェクトをグラフィカルにブラウズおよび変更する方法を提供し、オブジェクトの考え方を実現しています。また、アクションを呼び出すための GUI を提供します。ユーザがファイルを選択すると、選択したファイルのタイプに定義されたアクションがユーザに示されます。

デスクトップ・ベースのアプリケーションが管理するオブジェクトは、ファイルベースである必要はありません。メモリ・バッファ内でデスクトップ・オブジェクトを示すこともできます。共通デスクトップ環境のメール・プログラムは、スクロール可能なパネルのアイコンでメッセージへのアタッチメントを表示することにより、MIME (Multipurpose Internet Mail Extensions) メッセージを処理します。これらはドラッグ&ドロップなどを行なっている間、ファイルベースのオブジェクトのように動作します。ユーザはファイル・マネージャとメール・プログラムとの間でドラッグできます。ドラッグ&ドロップを使用するアプリケーションは、ファイルベースのオブジェクトとバッファベースのオブジェクトの両方をサポートすることにより、この重要なユーザ・モデルを管理します。デスクトップ・ドラッグ&ドロップ API およびプロトコルがこれを容易にします。

ウィンドウ管理

ウィンドウ・マネージャは、基本的には、フロントパネル GUI とワークスペースを提供するよう拡張した Motif 1.2 ウィンドウ・マネージャです。

フロントパネルは、多くのウィンドウ・マネージャがサポートするルート・ウィンドウ・メニューのグラフィック・バージョンと見なすことができます。また、ユーザが共通オブジェクトを使用できるように変更したオブジェクト・マネージャとも見なされます。フロントパネルは動的システム情報を示し、ユーザがアクションおよびシステム機能を起動できるようにします。ユーザはアプリケーション・マネージャおよびファイル・マネージャからサブパネルへアクション・アイコンをドラッグ&ドロップすることにより、フロントパネルを動的にカスタマイズします。アプリケーションは、フロントパネルを拡張する特殊構成ファイルを備え、ドロップの動作やドロップ領域のアニメーションによるフィードバックなどを定義します。これらの構成ファイルはカスタマイズの設定に依存してオプションでインストールできます。図 1-2 に一般的なデスクトップ・フロントパネルを表示します。

図 1-2 一般的なフロントパネル

Graphic

ワークスペースとは、仮想デスクトップと見なされるウィンドウ・マネージャがサポートする概念です。アプリケーション・ウィンドウは、1 つ以上、またはすべての使用可能なワークスペースに存在します。通常は、ユーザのカスタマイズの一部としてアプリケーション・ウィンドウがどのワークスペースに存在するかをユーザが決定します。セッションの再起動時にどのワークスペースにアプリケーションが表示されるかを明示的に指定する以外には、ワークスペース API を使用しないでください。一般にアプリケーションを複数のワークスペースに置くとユーザの優先権が無効になるので、置かないでください。

スタイル管理

スタイル・マネージャにより、ユーザは GUI を使用してデスクトップをカスタマイズできます。ユーザはほとんどの共通カスタマイズ・オプションについて X リソースなどの高度な概念を気にしないですみます。スタイル・マネージャは、背景の設定、キーボード設定、マウス設定、スクリーンセーバ・オプション、ウィンドウ管理、セッション管理などデスクトップ全体の属性を制御できるようにします。これらの属性は、アプリケーションに直接影響を与えないか、X サーバまたはウィンドウ・マネージャによって間接的に影響を与えます。

アプリケーション開発者は、フォントの選択、カラーの選択、入力デバイス・マッピングによってより直接的に影響を受けます。Motif ツールキットおよび共通デスクトップ環境は、これらの設定のほとんどをウィジェットに対して透過的に処理します。ただし、アプリケーションがユーザのフォントとカラーの設定に対応する場合、アプリケーションはデスクトップに対して、より統合されているように見えます。直接マウスで対話するアプリケーションは、たとえばマウス・ボタンのダブルクリックに同じ最小間隔の値 (multiClickTime リソース) を使用するなど他のアプリケーションと一貫した動作をすれば、デスクトップにより統合されているように感じられます。

プラットフォーム・ベンダのディスプレイと使用可能なフォント・セットとの相違点をなくすため、共通デスクトップ環境は実際のフォント名の二次的な名前であるフォント別名を定義します。デスクトップが使用するように別名を使用してください。

スタイル・マネージャはユーザにカラー選択オプションを提供して、デスクトップのカラー・スキーマを調整できるようにします。このカラー情報は共通デスクトップ環境だけで使用されるものです。ウィジェットをサブクラス化するアプリケーションは、継承されたバックグラウンド・ピクセル値を参照することによって、カラー・スキーマの一部に間接的にアクセスできます。XmGetColors() を呼び出すと、3D シャドウ・カラーが生成されます。

共通デスクトップ環境は、アイコンで使用するような固定のカラーに対してカラーの使用法を指定しません。ただしこの場合、カラーの共有を増進するため、アプリケーションは共通デスクトップ環境アイコン・エディタが提供するカラーを使用してください。

Motif GUI エンジン

Motif ツールキットはデスクトップの GUI エンジンとして考えてください。この節では共通デスクトップ環境 Motif、共通デスクトップ環境ウィジェット、および Motif プログラミングの代替モードについて説明します。

共通デスクトップ環境 Motif ツールキット

共通デスクトップ環境 Motif ツールキットは、Motif 1.2.3 のバグを修正し、機能を拡張し、いくつかの新機能を加えたものです。新機能を使用できるよう、明示的にリソースを設定してください。追加された機能には、ファイル選択ボックス GUI の変更、既存のリソースの別のデフォルト設定 (あらかじめデフォルトのボーダ幅を目立たせてあります)、カラー管理機能の向上、エラー・メッセージの国際化対応、使いやすさの向上 (OPEN LOOK ユーザの共通デスクトップ環境への移行を容易にする効果があります) などがあります。

共通デスクトップ環境 Motif と Motif 2.0 も互換性が高くなっています。共通デスクトップ環境 Motif にある機能のほとんどが Motif 2.0 に導入されています。したがって、開発者はアプリケーションを共通デスクトップ環境 Motif でコンパイルし、Motif 2.0 に再リンクして、アプリケーションを正常に実行できます。ウィジェットサイズの変更からプログラムを保護するように設計されている Motif 1.2 サブクラス化ガイドラインに従っていないウィジェットのサブクラス化は、うまく動作しない可能性が高くなります。

ドラッグ&ドロップ簡易階層は、Motif 1.2 ドラッグ&ドロップ API の最上位に追加されます。また、共通デスクトップ環境は Motif 1.2 登録済みドラッグ・フィードバック・プロトコルを使用します。ドロップ・サイト・ドラッグ・マネージャ・プロセスは、デスクトップの可視ドロップ領域を追跡しています。ドラッグ・ソース・クライアント・プロセスはこのデータを使用してドラッグ・フィードバック対話を管理します。ドロップ領域の制限付きドラッグ時の有効性は、ドロップ時まですべて継承され、ドロップが失敗した場合は、もとにスナップ・バックするアニメーションが行われます。

共通デスクトップ環境 Motif には、Motif 1.2 スタイル・ガイドを大幅に拡張した GUI スタイル・ガイドと確認チェックリストが入っています。追加事項は入力モデル、ウィンドウ管理、GUI 設計原理に関係するものです。

共通デスクトップ環境 Motif ウィジェット

共通デスクトップ環境 Motif は、Motif 1.2.3 では使用できない 2 種類のウィジェットを提供します。

ヘルプは、Standard Generalized Markup Language (SGML) 形式のファイルをヘルプタグでコンパイルした、セマンティック記述言語 (SDL) ファイル形式のアプリケーションで提供されます。ヘルプ・システムの特徴は、テキストとグラフィックス、ハイパーリンク、テキストの動的フォーマット変更、構造化ナビゲーション機能を統合したことです。

GUI シェル

共通デスクトップ環境には、デスクトップ Korn シェルがあります。これは Motif ツールキットの C プログラミングの代わりのインタプリンタ・スクリプト言語です。デスクトップ Korn シェルには、選択された頻繁に使用される共通デスクトップ環境 API、Xt API、Xlib API があります。環境の機能を十分活用するには、コンパイル言語でアクセスしてください。しかし、ドラッグ&ドロップ、セッション管理、ToolTalk メッセージなどのデスクトップ統合アクティビティを利用するデスクトップ Korn シェルスクリプトを書くことができます。

シェル・プログラミングに習熟している場合は、次のような理由により、簡単なプログラミング・タスクにデスクトップ Korn シェルを使用した方がいいこともあります。

GUI 構築

共通デスクトップ環境アプリケーションを生成するのに最も簡単で、たぶん最も早い方法は、Motif ツールキット・プログラミングをなるべく使わないことです。共通デスクトップ環境のアプリケーション・ビルダ (AppBuilder) を使用し、アプリケーションの GUI コントロール部分を構築してください。AppBuilder はデフォルト・ウィジェット動作をアクセスしやすくすることを目的としています。これは、多くのウィジェットで使用可能な難解なリソースをほとんど隠してしまうことにより実現します。また、ドラッグ&ドロップ、セッション管理、ToolTalk メッセージなどのデスクトップ統合インフラストラクチャをアプリケーションに組み込みやすくします。


ヒント -

アプリケーションビルダはよい教材になります。Sun Microsystems Advanced Developer Tools から、全機能 Motif GUI ビルダである XDesigner を購入することができます。


AppBuilder は、ビルダ・インタフェース言語 (BIL) ファイルに、ユーザ・インタフェースの状態を保管します。コード・ジェネレータは BIL ファイルを取り込んで、Motif ツールキット・コードを作成します。AppBuilder はユーザ・インタフェース言語 (UIL) ファイルを生成することもできます。

アプリケーションのユーザ・インタフェースを変更すると、AppBuilder はカスタム・コードを生成したコードにマージします。生成されたコードは、アプリケーションの GUI 状態を保持するために AppBuilder を使用していない場合でも、良いソースコード例になります。

さらに、プログラマ以外の人も AppBuilder を使用してアプリケーション GUI プロトタイプを作成できます。プロトタイプは、開発の製造過程でプログラマに渡すことができます。

統合テクノロジ

今まで、共通デスクトップ環境のテクノロジは、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 つのアクションは複数の部分から構成されていますが、その多くはオプションです。次のような部分があります。

ユーザが使用できるアクションの集まりは、システムが型データベース情報を集めるのと同時に組み立てられます。実際、関連するアクションと型情報は、通常は同じファイルに同時に存在します。デスクトップ定義ファイル、システム管理者定義 (ホスト固有) ファイル、ユーザ定義ファイルはこの順序で単一の (アクションおよびデータ型) データベースに組み込まれ、後の定義が優先されます。この検索パス優先順位と検索の順序は、ヘルプ・ボリュームおよびアイコン・ファイル検索用などデスクトップで一般的に使用されます。

アクションおよびデータ型のデータベースとファイル・マネージャは、アクション・ファイルを使用して、表示、起動、移動、コピーなどを行えるファイル・システム・オブジェクトとしてアクションをインスタンス化します。データベースにはアクションの実装に対するリファレンスが含まれます (「net_app_svr 上の /usr/bin/app を実行する」など)。ただし、ユーザが直接処理できるオブジェクトとしてアクションを表示することが必要です。これはオブジェクト名を使用して実行されます。オブジェクト名は、アクションを検索する任意のオブジェクト・マネージャに対するアクションとして識別されます。したがって、Dtstyle という実行可能ファイルと Dtstyle というアクションがある場合、ファイル・マネージャはそのファイルを内容に関わらず Dtstyle アクションが参照するものとして解釈します。また、ファイル・マネージャはアクションのラベルを、ユーザがファイルを見るための名前として使用します。アクション・ラベルはローカライズできますが、アクション名はローカライズできないプログラムのエンティティです。

アクションおよびデータ型のデータベースへのポインタとしてファイルを使用する場合の利点は、ユーザが何もしなくても基本の実装を展開できることです。しかし、あるユーザのアクションおよびデータ型のデータベースが、他のユーザのアクションとデータ型に一致しないこともあります。したがって、ユーザはアクションのリファレンスを、たとえばメール・メッセージのアタッチメントなどとして交換したり、そのアクションに対して比較できる定義を持つユーザが他にいるかどうかを予期することができません。この問題を解決するには、デスクトップ Korn シェル・スクリプトを交換するのが最善の方法です。

アクションは継承したコマンド行アプリケーションと ToolTalk アプリケーションを、デスクトップ・オブジェクト上の多様な分散オペレーションとしてデスクトップに統合するので便利です。