TACKTECH,INC.
top >
labo >
Ajaxその1
Ajaxその1 リモートコントロールソフトの作成 (1)
2006年2月 実験開始
はじめに
最近はWeb2.0の話で持ちきりのネット業界です。
もちろんタックテックも黙って見ている訳にはいきません。
弊社はソフトウェア開発を主な業務としていますのでWeb2.0の中でもAjaxとうい技術に興味を持たされます。
という事でAjaxの可能性を探ってみる事にしました。
弊社はファクトリーオートメーション等生産現場にかかわるシステム開発を得意分野の一つとしています。
そんな中でSCADAパッケージの開発なども手がけているのですが、この分野にも以前からWeb技術が取り入れられています。
ユーザの「Webブラウザで遠隔現場の状況をモニタリングしたい」という要求に対応するものです。
これまでは「Javaアプレット」や「ActiveXコントロール」等を使ってこれらを解決してきました。
そんな経験からAjaxもそっち方向に使えないかとついつい考えてしまいます(頭が固いです)。
そこでネットワーク上にあるPCの画面を監視し簡単な操作をリモートで行えるようなシステムを考えました。
VNCやpcAnywareといったリモートコントロールソフトのようなものです。
ネットワーク上にあるPCの中央監視がブラウザのみで可能になります。
見られる側にはサーバソフトが必要になりますが、見る側はアドインなど一切必要がありません。
どんなソフトにするか
次のようなクライアント要求を実現する事にします。
- 任意のPCの画面をモニタリングする
- モニタリング画面は縮小表示する
- 複数のPC画面を同じページ上に表示する
- マウスによるコントロールを行う
- キー入力によるコントロールを行う
また、プログラムの構成は次のようにします。
- クライアント(見る側)
JavaScript(Ajax)
- サーバ(見られる側)
サーバ側は2種類の形態で用意します。
どちらも機能的にはほぼ同じで形態が違うだけです。
・実行形式(EXEファイル)
HTTPサーバの機能を含みますので、Apache等の大げさなHTTPサーバを用意することなく簡単にサーバ機能を実現します。
・サーブレット(WARファイル)
既にApacheなどのHTTPサーバとサーブレットコンテナが動作している場合に有効です。
プログラムの概要
次のような動きをプログラミングします。
| |
クライアント |
|
サーバ |
| |
モニタ画面の初期化
※規定サイズのタイル状にイメージを配置
|
|
|
| |
サーバへログイン
|
→ |
スクリーンキャプチャの開始
※規定サイズのタイル状にイメージを分割して格納
|
| (1) |
画面更新領域の位置情報を要求
|
→ |
画面が更新されたタイルの位置情報を返信
|
| (2) |
更新されたタイルイメージの表示を再描画するためにimgのidを更新
|
← |
|
| (3) |
マウス/キーボードイベントを取得してサーバへ通知
|
→ |
受信したイベントをエミュレート
|
| |
サーバからログアウト
|
→ |
ログインクライアント数が0になればスクリーンキャプチャを停止
|
※ (1),(2)及び(3)を繰り返す。
ポイントは「いかにレスポンスを上げるか」という事になります。
仕様上VNCなどの専用ソフトのようなレスポンスは到底無理ですが、「我慢すれば何とか使えなくもない」といった程度にもっていければ実験は成功とします。
実験室のTOP 次ページ
©2006 TackTech,Inc.