次に示すシナリオは、ToolTalk サービスを利用することによって、業務上の問題をどのように解決できるかを示す例です。これらのシナリオで使用するプロトコルは、架空のものです。
ToolTalk デスクトップサービスメッセージセットを使用することにより、アプリケーションは、ユーザーの介入なしで他のアプリケーションを統合および制御できます。この節では、デスクトップサービスメッセージセットの実行方法を示す 2 つのシナリオを説明します。
フロントエンドのグラフィカルユーザーインタフェース (GUI) が、データファイルがアプリケーションに気づく (または「知っている」) ように要求するには、アプリケーションレベルのプログラムが、ユーザーの要求を翻訳する必要があります。このアプリケーションレベルのプログラム (「スマートデスクトップ」と言います) には、Solaris のファイルマネージャ、Apple 社の Macintosh ファインダ、Microsoft 社の Windows ファイルマネージャなどがあります。スマートデスクトップの主な共通要件は、次のとおりです。
ファイルを取得する
アプリケーションを決定する
アプリケーションを起動する
ToolTalk サービスは、ツールのクラスが特定のデータ型を編集できるようにすることによって柔軟性を増します。次のシナリオでは、デスクトップサービスメッセージセットを、エンドユーザーに対して透過的なスマートデスクトップとして実行する方法を説明します。
「ファイルマネージャ」アイコンをダブルクリックします。
ファイルマネージャが開き、カレントディレクトリ内のファイルが表示されます。
データファイルのアイコンをダブルクリックします。
ファイルマネージャは、アイコンで表現されるファイルの表示を要求します。また、「表示」メッセージ内のファイルタイプを符号化します。
ToolTalk セッションマネージャは、登録されたアプリケーション (この場合はアイコンエディタ) に「表示」メッセージ内のパターンを照合して、デスクトップ上で実行中の、アプリケーションのインスタンスを見つけます。
ToolTalk セッションマネージャが、アプリケーションで実行中のインスタンスを見つけられない場合は、静的に定義した ptype を検査し、メッセージ内のパターンに最も一致するアプリケーションを起動します。一致する ptype がないと、ファイルマネージャに失敗を報告します。
アイコンエディタは「表示」メッセージを受け取り、自分のアイコン化を解除し、自分を一番上に表示します。
ファイルを手作業で編集します。
デスクトップサービスメッセージセットを実行できるもう 1 つの重要なアプリケーションは、「統合ツールセット」です。これらの環境は、垂直のアプリケーション (CASE ソフトウェア開発者用ツールセットなど) または水平の環境 (複合文書など) に適用できます。その両方のアプリケーションの共通点は、解決法全体が、1 つの特定のタスクをうまく実行するように設計されている専門のアプリケーション以外で構築されたという前提があることです。統合ツールセットアプリケーションには、テキストエディタ、描画パッケージ、ビデオディスプレイツール、オーディオディスプレイツール、コンパイラのフロントエンド、デバッガなどがあります。統合ツールセット環境には、相互に呼び出して対話し、ユーザーからの要求を処理するアプリケーションが必要です。たとえば、ビデオを表示するには、エディタがビデオディスプレイプログラムを呼び出します。また、完了コードのブロックを確認するには、エディタがコンパイラを呼び出します。次のシナリオでは、デスクトップサービスメッセージセットを統合ツールセットとして実行する方法を説明します。
エディタを使用して複合文書を扱う作業をします。
ソースコードテキストの一部を変更します。
「ソースコードテキスト」をダブルクリックします。
文書エディタは、まずソースコードを表すテキストを判定し、その後そのソースコードがどのファイルに入っているかを判定します。
文書エディタは、ファイル名をメッセージのパラメタとして使用し、「編集」メッセージ要求を送信します。
ToolTalk セッションマネージャは、登録されたアプリケーション (この場合はソースコードエディタ) に「編集」メッセージ内のパターンを照合して、デスクトップ上で実行中のアプリケーションのインスタンスを見つけます。
ToolTalk セッションマネージャが、アプリケーションの実行中のインスタンスを見つけられない場合は、静的に定義した ptype を検査し、メッセージ内のパターンに最も一致するアプリケーションを起動します。一致する ptype がないと、文書エディタアプリケーションに失敗を報告します。
ソースコードエディタが「編集」メッセージ要求を受け取ります。
ソースコードエディタは、ソースコードファイルが構成制御を受けていることを判定し、ファイルを検査するためのメッセージを送信します。
そのメッセージをソースコード制御アプリケーションが受け取り、要求されたファイルの読み取りまたは書き込み用コピーを作成します。その後、ファイル名をソースコードエディタに戻します。
ソースコードエディタは、ソースファイルが入っているウィンドウを開きます。
ソースコードテキストを編集します。
ToolTalk 文書メディア交換メッセージセットは、非常に柔軟性があり、強力です。この節では、次のような ToolTalk 文書メディア交換メッセージセットの 3 つのアプリケーションについて説明します。
マルチメディアとオーサリングアプリケーションの統合
既存のアプリケーションへのマルチメディア拡張機能の追加
メディア変換機能による「X」の「カット&ペースト」機能の拡張
マルチメディア機能をアプリケーションに統合することによって、アプリケーションのユーザーは、さまざまなメディアの型をそれらの文書に埋め込むことができます。
通常、メディアオブジェクトを表すアイコンは、文書に埋め込まれます。埋め込まれたオブジェクトを選択すると、ToolTalk サービスは自動的に適切な外部メディアアプリケーションを起動し、オブジェクトは次のように処理されます。
マルチメディアオブジェクトが入っている文書を開きます。
ウィンドウが、さまざまなメディアの種類 (音声、画像、グラフィックスなど) を表す複数のアイコンで文書を表示します。
音声アイコンをダブルクリックします。
音声アプリケーション (「プレイヤ」と呼びます) が起動され、録音済みの音声が再生されます。
録音状態を編集するために、アイコンを 1 回クリックして選択し、3 番目のマウスボタンを使用して「編集」メニューを表示します。
編集アプリケーションが起動され、メディアオブジェクトを編集します。
ToolTalk 文書メディア交換メッセージセットによって、アプリケーションは他のマルチメディアアプリケーションを使用して、その機能または性能を拡張することもできます。たとえば、次に示すように、カレンダマネージャを拡張して、オーディオツールを使って音声ファイルをアポイントメントの覚え書きとして再生することもできます。
自分のカレンダマネージャを開いて、アポイントメントを設定します。
音声応答ボタンをクリックすると、サウンドツールが表示されます。
たとえば、「レポートを持ち返る」というメッセージを記録します。
アポイントの覚え書きを実行すると、カレンダマネージャはオーディオツールを起動し、録音した覚え書きを再生します。
ToolTalk 文書メディア変換メッセージセットは、拡張可能な無制限の変換機能をサポートできます。次に、拡張可能なマルチメディアの「カット&ペースト」機能の動作を示します。
メディア型の異なる 2 つの文書を開きます。
「文書 A」の一部分を選択し、標準の「X」Window System の「カット」機能を使用してその部分を切り取ります。
カットした部分を「文書 B」に貼り付けます。
「文書 B」は、カットしたデータの転送について「文書 A」と折衝します。
文書 Aが提供するデータのどの型についても「文書 B」が認識しない場合、「文書 B」は「タグ付きメディア型」を要求します。「文書 B」は、タグ付きメディア型を使用して、そのメディア型を認識可能なメディア型へ変換するように要求する ToolTalk メッセージを送ります。
登録されている変換ユーティリティはその要求を受け、変換された後のバージョンのメディア型を「文書 B」へ返します。
変換されたデータの「文書 B」へのペーストが実行されます。
CASE 連携メッセージセットによって、アプリケーションは、ユーザーの介入なしで他のアプリケーションを統合または制御できます。この節では、CASE 連携メッセージセットの使用方法を示すいくつかのシナリオを示します。
このシナリオでは、リリースされたアプリケーションに対するバグの修正方法の完全なサイクルを通して進みます。まず、バグレポートを受け取り、バグ修正に必要な処理を記述することから始まります。
自分のアプリケーションに問題があるというバグレポートを受け取ります。
自分の CASE 環境を起動します。
CASE ユーザーインタフェースが表示されます。実行したい機能は、この CASE ユーザーインタフェースで利用可能です。
バグレポートに記述されている問題点の写しとして、テストケースを書きます。
デバッグ機能を選択して、テストケースに対してアプリケーションを実行します。
デバッグ要求が送信されます。
メッセージ環境は、デバッグアプリケーションを選択します。CASE 環境で実行中のアプリケーションのインスタンスが見つけられない場合は、自動的にデバッガを起動します。
デバッグアプリケーションは、要求を受信し、バイナリをロードします。
コードをテストし、デバッグウィンドウでデバッグ状態を再検査します。
関数呼び出しが誤った引数で渡されているところを見つけます。
編集機能を選択して、このコードを編集します。
デバッグツールは、編集要求を送信します。
ソースエディタは、指定されたソースファイルを編集するようにというメッセージを受信します。
ソースコードを修正したいので、チェックアウト機能を選択します。
ソースコードエディタは、チェックアウト要求を送信します。
ソースコードエディタは、チェックアウト通知を受信し、バッファ状態を修正可能にします。
ソースコードを編集してバグを修正し、構築機能を選択して、アプリケーションを構築します。
構築要求が送信されます。
構築アプリケーションは、構築要求を受信し、構築を実行します。
構築を完了すると、構築アプリケーションは「構築完了」通知を送信します。
デバッガは、「構築完了」通知を受信し、新たに構築されたアプリケーションバイナリを再ロードします。
アプリケーションを再テストして、バグ修正がうまくいったかどうかを確認します。
CASE 環境を終了します。
終了要求は、ソースコードエディタ、デバッガ、バージョンマネージャ、および構築アプリケーションへ送信されます。
ファイル名マッピング機能は、ToolTalk APL の一部を構成するものです。ToolTalk メッセージパッシングとは、独立してこれらを使用することによって、ネットワークから見えるファイル名の標準形式のエンコードまたはデコードを行います。共通ファイルにアクセスする必要のあるアプリケーション内に、これらの標準形式を渡すことができます。ファイルの参照を行うホストによって、このファイルのパス名は異なる可能性があります。たとえば、ホスト A のファイルが /home/fred/test.c でも、他のホストでは /net/A/export/home/fred/test.c の場合もあります。ファイル名マッピング API は、NFS から見ることができるファイル名を標準的な名前に変換し (tt_host_file_netfile() で)、それが各ホストのアプリケーションに渡されます。別のホストは、その標準名を API (tt_host_netfile_file()) に渡して起動プログラムで使える UNIX パス名に戻します。
Solaris 2.6 リリースおよびその互換バージョンでは、ToolTalk ライブラリは、マルチスレッド対策が施されています。マルチスレッド環境で ToolTalk を実行したいユーザーは、そのままシングルスレッドで使用することも、必要に応じてスレッドごとのデータを提供する (たとえば、procid やセッション ID など) 複数の新規 API 呼び出しを使用することもできます。