Phindowsは、Win32sプラットフォームのユーザと、リモートQNXコンピュータで実行されているグラフィカルなPhotonアプリケーションとの対話を可能にする連結ツールです。Phindowsは、以下のWin32sプラットフォームで作動します。
PhindowsをWindowsコンピュータにインストールするには、Phindowsフロッピ・ディスクからA:\INSTALL.BATを実行します。
Phindowsインストール・プログラムは、必要なファイルを\USR\PHOTONディレクトリにコピーします。このディレクトリには、FONTおよびCACHEディレクトリが作成され、Photonのフォント及びイメージのキャッシュ・データが格納されます。インストールが終了したら、Phindows アイコンまたはショートカットを作成するとよいでしょう。
Phindowsを起動するには、Phindowsアイコンをクリックします。(または\USR\PHOTON\PHINDOWS.EXEを実行します)
PhindowsがConnectダイアログを表示します。この中で、接続のタイプを指定することができます。(TCP/IP または直接シリアル接続)さまざまな接続オプションが使用できますが、通常、デフォルトのオプションで問題なく作動します。
接続パラメータを選択したら、ApplyをクリックしてPhindowsをこれらのパラメータで接続します。接続をする前に設定を保存するには、Apply & Saveをクリックします。これで、保存された設定が次回のPhindowsセッションからデフォルト設定になります。
TCP/IP接続を行う場合、接続するQNXマシンのインターネット・アドレスを指定しなければなりません (例: 198.53.31.1)。リモート・コンピュータのコンフィギュレーションが正しければ、Photonログイン・プロンプトが表示されます。これで接続が終了し、Photonが実行されました。
シリアル接続を行う場合(Windows 95及び NTのみ)、COMポート (例: COM1またはCOM2)を指定しなければなりません。ボーレートが指定されない場合、Windowsのデフォルト設定が使用されます。 シリアル接続では、Phindowsはまず単純なテキスト端末として作動するので、モデムに直接コマンドを入力(例: ATDT1-613-591-0934)します。接続されたら、QNXにログインし、次のコマンドを入力します。
/usr/photon/bin/phrelay
このコマンドにより、Phindowsはテキスト端末モードから、Pnotonのグラフィカルな端末に変わります。この時点で、Photonログイン画面が現れます。
TCP/IPを使用している場合、Phindowsを使用する前に、以下のコンフィギュレーションの問題を解決してください。
まず、リモートQNXホストにTCP/IPがインストール済みで、実行されていなければなりません。加えて、inetdが実行されていなければなりません。また、以下に示すコマンド行が、TCP/IPコンフィギュレーション・ファイルに含まれていなければなりません。
/etc/inetd.conf ファイルに次の行を加えてください。
phrelay stream tcp nowait root /usr/photon/bin/phrelay phrelay
/etc/services ファイルに、次の行を加えてください。
phrelay 4868/tcp
この2つのエントリにより、inetdは、外から入ってくる新しいPhotonセッション要求を受け付けるようになります。リモートPhindowsクライアントからの要求を検知すると、inetdは自動的に完全なTCP/IP接続を行い、その接続の上にphrelayを実行します。これで、Phindowsがローカル・マシンに完全に接続されます。
最後に、TCP/IPをサポートするようにWindowsクライアントを構成します。この構成は、ご使用のWindowsプラットフォームのタイプ、すでにインストールされたサービス、また、SLIP/PPPに対するEthernetまたはダイヤルアップ・ネットワークが使用されているかどうかによって異なります。Microsoftのマニュアルを参照してください。
通常、Windows 95とWindows NTには、すぐに使えるTCP/IPパッケージがあります。Windows 3.11プラットフォームでは、TCP/IPを介してPhindowsを使うことができますが、Win32sとWINSOCKが両方ともインストール済みで作動していなければなりません。(これらは両方ともMicrosoftのftpサイトftp.microsoft.comから無料で入手が可能です。)
PhindowsのConnectダイアログで、以下の三種類のデータ圧縮オプションの一つを指定することができます。
Phindowsは、ホスト・マシンからクライアント・マシンへ転送されるデータの量を極力押さえるために、さまざまなデータ・キャッシング・テクニックを使っています。この集約的なデータ・キャッシングにより、モデム・リンク速度が9600という低速でもPhindowsを使用することができます。
Photonの「大きな」静的データのほとんどには、ユニークな32ビットid(タグ)が「タグ付け」されています。タグ付けされるオブジェクトには、ビットマップ・データ、イメージ・データ、カラー・パレットが含まれます。これらのオブジェクトは、通常Photonプログラム開発者が最初に作成するときにタグ付けされます。このプロセスはPhoton開発ツールによって自動的に処理されるので、プログラム開発者は、多くの場合、タグ付けプロセスを意識していません。
Photonは、データ・オブジェクトがPhotonイベント空間に流れるときに、これらのタグをデータ・オブジェクトと一緒に渡します。結果として、Photonグラフィックス・ドライバ(phrelayなど)は、前もって計算された、オブジェクトに固有の小さなタグによって、より大きなPhotonグラフィカル・オブジェクトを識別することができます。
Phrelay(Phindows接続のホスト側)は、通信リンクを通して、Photon の画像イベントをPhindowsクライアントに転送します。PhrelayとPhindowsは、プライベート・プロトコルを使用し、これらの大きな画像オブジェクトをリモート・クライアントに一度だけ送ります。その後は、そのデータ・オブジェクトはすべて前述の小さなタグで参照されます。Phindowsのクライアントがそのデータ・オブジェクト全体のローカル・コピーを持っているということを知っているからです。時間が経過すると、よく使われるオブジェクト(アイコンやバックドロップなど)はキャッシュされます。
Phindowsは、これらのタグ付けされたデータをローカル・メモリにキャッシュするだけでなく、終了するときに、最も以前に使われたオブジェクトを自動的にディスクから取り除き、キャッシュされたすべてのオブジェクトをディスクに保存します。次回にPhindowsが起動するとき、最近使用されたディスク・キャッシュからメモリ内のキャッシュを前もってロードし、リモート・セッションに対し、どのオブジェクトをすでに「知っているか」を伝達します。これは、Phindowsが一度ある画像オブジェクトを見ると、通常は、次回のPhindowsセッションにおいても、同じデータを再送する必要がないということを意味します。
PhindowsのConnectダイアログで、メモリ内データ・キャッシュのサイズと、最も最近に見られたオブジェクトを保存するディスク・スペースの最大サイズを指定することができます。デフォルト値はRAMキャッシュが1024K、ディスク・キャッシュが20Mです。通常はデフォルト値で十分です。
PHINDOWS.EXEは、以下のコマンド行オプションをサポートしています。通常、Phindowsを起動するアイコンまたはショートカットを作成する際に、これらのパラメータがコマンドに加えられます。
-tと-mのいずれも指定されない場合、PhindowsはConnectダイアログを表示して通信パラメータを尋ねてきます。
Phindowsの通常モード( -nオプションなし)では、接続したQNXマシンでの、個人のPhotonセッションがスタートします。PhotonのJumpgatesおよびDitto機能により、同じQNXマシン(または同じQNXネットワークのどのマシンでも)のほかのPhotonセッションと対話することができますが、これらの機能を使用しない場合のPhotonセッションは、他のユーザから独立したセッションとなります。
-nコマンド行オプションを指定すると、Phindowsクライアントは、接続しているQNXネットワーク上のQNXマシンですでに実行されているPhotonセッションと対話ができます。リモートPhotonユーザの画面とまったく同じコピーが、Windowsのデスクトップに表示されます。さらに、マウスやキーボードも直接リモートPhotonセッションと連動して使うことができます。事実上、リモート画面の前に座っているかのように、リモート・セッションに「乗り移って」しまうことができるのです。
例えば、Photonを実行しているリモートQNXサイトにサポートを提供するには、次のようなコマンドでPhindowsを使用し、そのQNXマシンにダイヤルアップ及びログインできます。
phindows.exe -mcom2 -n/dev/photon
ログインしたら、次のようにphrelayを起動します。
/usr/photon/bin/phrelay
この時点で、すでに存在している/dev/photonという名のPhotonセッション(ローカル・コンソールで実行されているPhoton)に対する接続要求が出されたことがphrelayに知らされます。Phrelayは、コンソールのグラフィックス領域をすべてを覆うグラフィックス領域を形成し、自分のマウスと、リモート・マウスが同じカーソルをコントロールできるようにします。こうして、リモート・デスクトップを、リモート・ユーザと共有することができます。
このタイプのリモート連結性は、さまざまな用途に利用することができます。例えば、次のような目的にかなっています。
もちろん、リモート・コンソールの前に、実際に人が座っていなければならない必要はありません。また、物理的にスクリーンやキーボードがリモート・サイトになくてもかまわないのです。Photonの連結性を利用して、まったくの無人のリモート・サイトを制御することが可能です。これにより、遠隔診断や維持にかかる交通費だけでなく、キーボードやモニタのコストがかからなくなるので、リモート・サイトにかかるハードウェア・コストを節約することも可能です。
自分がモデムで接続しているQNXマシンではないQNXマシンで実行されているPhotonアプリケーションを見たい場合でも、問題はありません。-nオプションでは、そのリモートQNXネットワークのいかなるPhotonセッションでも、QNXフルパス名指定をすることができます。例えば、 QNXノード1にダイヤルインしているが、ノード2のコンソールで実行されているPhotonと対話したい場合は、次のコマンドを使います。
phindows.exe -n//2/dev/photon
QNXネットワークにログインしたら(最初はノード1にログインします)、次のようにphrelayを起動します。
/usr/photon/bin/phrelay
phrelayは、実際にはノード2のPhotonに接続したいということを認識し、自動的にそのノードへ移りますが、ダイヤルインに使用されたモデム(ノード1のモデム)を使いつづけます。QNXは、もともとオペレーティング・システムとして販売されているので、これはシームレスに、かつ効率的に行われます。
ログインしたQNXマシンには多くのモデムがあるが、CPUスペアまたはメモリがあまり無いとします。個人的なセッションをノード2でスタートし、ノード2の豊富なスペア・リソースを利用する場合(QNXでは、どのノードでもよいのです)、次のコマンドでこれを指定します。
phindows.exe -n//2/dev/ph+
Phindowsとphditto(Photonに標準で添付されています)は、両方ともひとつのPhoton空間を、複数のデスクトップに「引き伸ばす」ために使用できます。これら複数のデスクトップのいくつか(またはそのすべて)は、QNXコンピュータ、Windowsデスクトップ、またはXワークステーション(phinxプログラムで)として使用することもできます。
これを可能するために、phdittoとPhindowsでは、-x, -y, -hおよび-wオプションが提供されています。これは、次のような働きをします。
QNXマシンの解像度1024x768のコンソールでPhotonを実行していて、そのQNX画面のすぐ右横にある1024x768のWindows画面を取り入れる(2048x768のPhoton空間を作る)ために、Photonを引き伸ばしたいとします。このとき、Windowsマシンで、次のようにPhindowsをスタートします。
phindows.exe -x1024 -n/dev/photon
接続されると(TCP/IPが適切に作動します)、通常はPhoton画面の下にあるPhotonデスクトップ・マネージャが、右手のMS-Windows画面の下の部分を含むように「引き伸ばされ」たのに気づかれるでしょう。これで、どちらかのマウスを取って、新しいアプリケーションをスタートしたり、画面から画面へとドラッグしたり、広がった作業領域を有効に使うことができます。
-x, -y (および -hや-w)オプションを有効に使うことによって、面白いコンビネーションをいろいろ作ることができます。(ひとつの大きなPhoton画面を形成するモニタ配列や、マルチメディア・プレゼンテーションなど。)
通常モードでの、他のユーザのPhotonセッションのコピー(-n 指定)は、ローカルまたはリモート・ユーザどちらかのカーソルしか受け付けません。同じく、キーボードの入力は、キーボード・フォーカスによって、どちらか一方のキーストロークがアプリケーションに入力されます。これは、通常リモート・トレーニングやリモート・デバッギングで必要なものです。
しかし、リモート・ユーザには、こちらの動きには関係なく仕事を続けてほしいことがあります。Phindowsのコマンド行で、-uオプションを指定すると、これを実現することができます。このモードでは、マウス、キーボード、モニタのすべてが、別のユーザのコンソールから独立した状態になります。両方のユーザに二つのカーソルが見えますが、(自分のカーソルははっきり見え、他のユーザのカーソルは「ぼかし」の状態で見えます)これらのカーソルは別々に動きます。
ユーザは、Photonの用語で言うところの、自分の入力グループでPhotonを実行しています。他のユーザに影響することなく、Photon空間を自由に動くことができます。自分のマウスクリックやキーストロークは、自分の入力グループにフォーカスがあるアプリケーションに向けられます。したがって、Photon空間のどこにでも新しいアプリケーションをスタートすることができます。(ほかの人の邪魔にならないように、別のコンソールを使うのがいいでしょう)自分の作業領域があるデスクトップに他のユーザが移動してこなければ、お互い影響を受けることはありません。
このようにして共有できる作業領域の数には、構造的な制限はありませんが、現実的には、一度に二人以上のユーザとの共有を望まれることはあまりないでしょう。複数のユーザがひとつのQNXマシンに接続することのほうが、よくあるパターンでしょう。この場合、それぞれのユーザが個人のPhotonセッションを実行(Phindowsのデフォルト)し、Photonのビルトイン連結機能(Jumpgates, phditto, および msgpadなど)を使います。ひとつのQNXマシンは、高速で十分なRAMがあれば、このようなPhindowsクライアントを数十人サポートすることができます。
-sコマンド行オプションは、WindowsデスクトップでのPhotonアプリケーションのショートカット作成を簡単にするために提供されています。
-sオプションを使用すると、(個人のPhindowsセッションの)WindowsデスクトップでPhotonアプリケーションを自動的に起動するアイコンまたはショートカットを作成できます。リモート・ウィンドウ・マネージャの設定が適切であれば、PhotonアプリケーションをWindowsに固有なアプリケーションであるかのように見せることができます。
QNXホスト・マシンでphrelayが実行されると、phrelayはコンフィギュレーション・ファイル(/etc/config/phrelay[.node]) の中で、-sパラメータで指定されたPhotonサービスを検索します。一致するサービスが見つかると、phrelayはデフォルトのPhotonデスクトップの代わりに、指定されたPhotonコマンドを起動します。ウィンドウ・マネージャの他のオプションも指定することができますが、デフォルトのモードでは、リモートPhotonアプリケーションは、Windowsアプリケーションであるかのように表示され、作動します。
-Uオプションは、通常-sオプションと共に使用され、リモートPhotonコマンドを実行するときに使うQNXのuseridを指定します。useridが与えられず、phrelayサービスがデフォルトのuseridを指定していない場合、PhotonはまずQNXのuseridを要求するログイン・ダイアログを表示します。-Uオプションでuseridを指定することにより、このダイアログ表示を避けることができます。
例えば、次のようにWindowsショートカットが作成されたとします。
phindows -tx.x.x.x -svpoker -Ujoe
ここで、IPアドレスがQNXノード2のTCP/IPアドレスを指定し、ノード2のphrelayコンフィギュレーション・ファイル(/etc/config/phrelay.2)が次の行を含んでいるとします。
vpoker % /usr/photon/bin/vpoker
これで、ユーザjoeは、Windowsデスクトップでアイコンまたはショートカットをクリックして、QNXのuserid joeとして、Photonのvpokerセッションを実行することができます。
phrelayコンフィギュレーション・ファイルの、それぞれのサービス・エントリは、次のようになります。
service user [-W pwm_options] command
ここで、
serviceは、Photonサービスのシンボリック名(-s Phindows パラメータに一致)です。
commandは、デフォルトのPhotonデスクトップの代わりに起動するPhotonコマンドです。
userは、次のうちのどれかです。
pwm_optionsは、次のPhotonウィンドウ・マネージャのうち1つ(あるいは以上)です。
ここで、 remote_optionは、次のうちの1つ(あるいは以上)です。
上記のどのオプションも指定されない場合、デフォルトのウィンドウ・マネージャ・オプションは、"PWRcbtfr" です。