(57)【特許請求の範囲】
【請求項１】
ネットワークを介してリモート装置を操作するシステムであって、
ａ）１人以上のユーザと対話することにより、前記リモート装置の状態を定義する１以上のパラメータを取得し、前記リモート装置に対してコマンドを発行し、前記リモート装置から結果を受信するとともに、前記リモート装置を制御することを可能にする、１つ以上のクライアント・コンピュータと、
ｂ）前記クライアント・コンピュータに接続され、前記クライアント・コンピュータからの前記発行コマンドを受信し、前記発行コマンドを翻訳し、翻訳された前記コマンドが実行され得るか否かを判断し、前記リモート装置に対する翻訳された前記コマンドが実行されるまで、該コマンドを待ち行列化し、前記リモート装置から受信された結果及びステータス情報を、前記クライアント・コンピュータにとって好適な形式に変換し、同報されるべき前記クライアント・コンピュータのすべてに、変換された前記結果及びステータス情報を同報通信するプロキシ・サーバ・コンピュータと、
ｃ）前記プロキシ・サーバ・コンピュータ及び前記リモート装置に接続され、前記待ち行列化されたコマンドを前記プロキシ・サーバ・コンピュータから取り出し、取り出された前記コマンドに従い前記リモート装置を操作し、前記リモート装置から受信された結果及びステータス情報を、前記プロキシ・サーバ・コンピュータに提供する、デバイス・サーバ・コンピュータと
を含む、システム。
【請求項２】
前記プロキシ・サーバ・コンピュータがインターネット上のクライアント・コンピュータに接続される、請求項１記載のシステム。
【請求項３】
前記リモート装置が科学計器である、請求項１記載のシステム。
【請求項４】
前記発行コマンドが前記科学計器を使用する実験を含む、請求項３記載のシステム。
【請求項５】
前記プロキシ・サーバ・コンピュータが、ユーザが前記発行コマンドに対する十分なアクセス許可を有するか否かを判断する、請求項１記載のシステム。
【請求項６】
前記クライアント・コンピュータの各々が、ブラウザと、ユーザが前記リモート装置を操作し、前記リモート装置からの前記結果を見ることを可能にするクライアント・コマンド・プロセッサとを実行する、請求項１記載のシステム。
【請求項７】
前記クライアント・コンピュータの各々が、ユーザが前記リモート装置に対して１つ以上のパラメータを指定することを可能にするコマンド・プロセッサを実行する、請求項１記載のシステム。
【請求項８】
前記クライアント・コンピュータ、プロキシ・サーバ・コンピュータ、及びデバイス・サーバ・コンピュータの各々が、前記クライアント・コンピュータから前記リモート装置へのコマンドの伝送、及び前記リモート装置から前記クライアント・コンピュータへの結果の伝送を容易にするコマンド・プロセッサを実行する、請求項１記載のシステム。
【請求項９】
前記プロキシ・サーバ・コンピュータが、コマンドのアクセス許可を管理するユーザ・マネージャを含む、請求項１記載のシステム。
【請求項１０】
前記ユーザ・マネージャが各コマンドに対するアクセス制御リストを含み、前記ユーザ・マネージャが前記アクセス制御リストに従い、前記発行コマンドを実行するための許可を与えるかまたは拒否する、請求項９記載のシステム。
【請求項１１】
前記プロキシ・サーバ・コンピュータが、同報されるべきユーザが前記リモート装置の制御を獲得することを保証する、セッション・マネージャを含む、請求項１記載のシステム。
【請求項１２】
前記プロキシ・サーバ・コンピュータが、同報されるべきユーザが前記リモート装置から前記結果及びステータス情報を受信することを保証する、セッション・マネージャを含む、請求項１記載のシステム。
【請求項１３】
前記プロキシ・サーバ・コンピュータが、時間が超過したとき、前記リモート装置を操作するユーザのセッションを終了するセッション・マネージャを含む、請求項１記載のシステム。
【請求項１４】
前記プロキシ・サーバ・コンピュータが、前記発行コマンドを処理し、該コマンドを優先キューに記憶するためのタスク・マネージャを含む、請求項１記載のシステム。
【請求項１５】
前記優先キューが、前記発行コマンドが前記リモート装置に達する以前に、該コマンドを待ち行列化するための一時データ構造である、請求項１４記載のシステム。
【請求項１６】
前記デバイス・サーバ・コンピュータが、前記優先キューをポーリングし、ポーリングされた前記優先キューから１度に１つ以上のコマンドを取り出し、取り出された前記コマンドを実行のために前記リモート装置に送信し、前記リモート装置からの結果を前記プロキシ・サーバ・コンピュータに送信することにより、前記クライアント・コンピュータに配布するための、コマンド・プロセッサを含む、請求項１４記載のシステム。
【請求項１７】
前記コマンド・プロセッサが前記コマンドからの結果を、前記プロキシ・サーバ・コンピュータ上のセッション・マネージャに送信し、前記セッション・マネージャが前記結果が全ての観察ユーザに同報されることを保証する、請求項１６記載のシステム。
【請求項１８】
ネットワークを介してリモート装置を操作する方法であって、
ａ）前記リモート装置を制御することを可能にする１つ以上のクライアント・コンピュータを介して、１人以上のユーザと対話することにより、前記リモート装置の状態を定義する１以上のパラメータを取得し、前記リモート装置に対してコマンドを発行し、前記リモート装置から結果を受信するステップと、
ｂ）プロキシ・サーバ・コンピュータにおいて、前記クライアント・コンピュータからの前記発行コマンドを受信し、前記発行コマンドを翻訳し、翻訳された前記コマンドが実行され得るか否かを判断し、前記リモート装置に対する翻訳された前記コマンドが実行されるまで、該コマンドを待ち行列化し、前記リモート装置から受信された結果及びステータス情報を、前記クライアント・コンピュータにとって好適な形式に変換し、変換された前記結果及びステータス情報を、前記プロキシ・サーバ・コンピュータから、同報されるべき前記クライアント・コンピュータのすべてに同報通信するステップと、
ｃ）前記待ち行列化されたコマンドを前記プロキシ・サーバ・コンピュータから、前記リモート装置に接続されたデバイス・サーバ・コンピュータに取り出し、取り出された前記コマンドに従い前記リモート装置を操作し、前記リモート装置から受信された結果及びステータス情報を、前記プロキシ・サーバ・コンピュータに提供するステップと
を含む、方法。
【請求項１９】
コンピュータに、１人以上のユーザがリモート装置を制御することを可能にし、ネットワークを介してリモート装置を操作する方法を実行させるためのプログラムを記録したコンピュータにより読出し可能な記録媒体であって、前記方法が、
ａ）前記リモート装置を制御することを可能にする１つ以上のクライアント・コンピュータを介して、１人以上のユーザと対話することにより、前記リモート装置の状態を定義する１以上のパラメータを取得し、前記リモート装置に対してコマンドを発行し、前記リモート装置から結果を受信するステップと、
ｂ）プロキシ・サーバ・コンピュータにおいて、前記クライアント・コンピュータからの前記発行コマンドを受信し、前記発行コマンドを翻訳し、翻訳された前記コマンドが実行され得るか否かを判断し、前記リモート装置に対する翻訳された前記コマンドが実行されるまで、該コマンドを待ち行列化し、前記リモート装置から受信された結果及びステータス情報を、前記クライアント・コンピュータにとって好適な形式に変換し、変換された前記結果及びステータス情報を、前記プロキシ・サーバ・コンピュータから、同報されるべき前記クライアント・コンピュータのすべてに同報通信するステップと、
ｃ）前記待ち行列化されたコマンドを前記プロキシ・サーバ・コンピュータから、前記リモート装置に接続されたデバイス・サーバ・コンピュータに取り出し、取り出された前記コマンドに従い前記リモート装置を操作し、前記リモート装置から受信された結果及びステータス情報を、前記プロキシ・サーバ・コンピュータに提供するステップと
を含む、コンピュータにより読出し可能な記録媒体。
【請求項２０】
ネットワークを介して、１人以上のユーザがリモート装置を制御することを可能にし、前記リモート装置を操作するシステムであって、
ａ）１人以上のユーザと対話し、前記リモート装置に対してコマンドを発行する手段と、
ｂ）前記１人以上のユーザと対話し、前記リモート装置の状態を定義する１以上のパラメータを取得する手段と、
ｃ）プロキシ・サーバ・コンピュータにおいて前記コマンドが実行され得るか否かを判断する手段と、
ｄ）前記プロキシ・サーバ・コンピュータにおいて前記コマンドを前記リモート装置にとって好適な形式に任意に翻訳する手段と、
ｅ）前記プロキシ・サーバ・コンピュータにおいて前記コマンドが前記リモート装置により実行されるまで、該コマンドを任意に待ち行列化する手段と、
ｆ）前記コマンドに従い、前記リモート装置を操作する手段と、
ｇ）前記プロキシ・サーバ・コンピュータにおいて前記リモート装置から結果及びステータス情報を収集する手段と、
ｈ）前記プロキシ・サーバ・コンピュータにおいて前記結果及びステータス情報をフォーマットする手段と、
ｉ）前記プロキシ・サーバ・コンピュータにおいて前記結果及びステータス情報を、同報されるべきユーザのすべてに同報通信により提供する手段と
を含む、システム。
【請求項２１】
ネットワークを介して、１人以上のユーザがリモート装置を制御することを可能にし、前記リモート装置を操作する方法であって、
ａ）１人以上のユーザと対話し、前記リモート装置に対してコマンドを発行するステップと、
ｂ）前記１人以上のユーザと対話し、前記リモート装置の状態を定義する１以上のパラメータを取得するステップと、
ｃ）プロキシ・サーバ・コンピュータにおいて前記コマンドが実行され得るか否かを判断するステップと、
ｄ）前記プロキシ・サーバ・コンピュータにおいて前記コマンドを前記リモート装置にとって好適な形式に任意に翻訳するステップと、
ｅ）前記プロキシ・サーバ・コンピュータにおいて前記コマンドが前記リモート装置により実行されるまで、該コマンドを任意に待ち行列化するステップと、
ｆ）前記コマンドに従い、前記リモート装置を操作するステップと、
ｇ）前記プロキシ・サーバ・コンピュータにおいて前記リモート装置から結果及びステータス情報を収集するステップと、
ｈ）前記プロキシ・サーバ・コンピュータにおいて前記結果及びステータス情報をフォーマットするステップと、
ｉ）前記プロキシ・サーバ・コンピュータにおいて前記結果及びステータス情報を、同報されるべきユーザのすべてに同報通信により提供するステップと
を含む、方法。
【請求項２２】
コンピュータに、１人以上のユーザがリモート装置を制御することを可能にし、ネットワークを介してリモート装置を操作する方法を実行させるためのプログラムを記録したコンピュータにより読出し可能な記録媒体であって、前記方法が、
ａ）１人以上のユーザと対話し、前記リモート装置に対してコマンドを発行するステップと、
ｂ）前記１人以上のユーザと対話し、前記リモート装置の状態を定義する１以上のパラメータを取得するステップと、
ｃ）プロキシ・サーバ・コンピュータにおいて前記コマンドが実行され得るか否かを判断するステップと、
ｄ）前記プロキシ・サーバ・コンピュータにおいて前記コマンドを前記リモート装置にとって好適な形式に任意に翻訳するステップと、
ｅ）前記プロキシ・サーバ・コンピュータにおいて前記コマンドが前記リモート装置により実行されるまで、該コマンドを任意に待ち行列化するステップと、
ｆ）前記コマンドに従い、前記リモート装置を操作するステップと、
ｇ）前記プロキシ・サーバ・コンピュータにおいて前記リモート装置から結果及びステータス情報を収集するステップと、
ｈ）前記プロキシ・サーバ・コンピュータにおいて前記結果及びステータス情報をフォーマットするステップと、
ｉ）前記プロキシ・サーバ・コンピュータにおいて前記結果及びステータス情報を、同報されるべきユーザのすべてに同報通信により提供するステップと
を含む、コンピュータにより読出し可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般に、インターネットに関連するアプリケーションに関して、特に、インターネットなどの広域ネットワークに渡り、科学計器を操作するシステム及び方法に関する。
【０００２】
【従来の技術】
高機能な科学計器へのアクセスは、しばしば、大部分の研究者にとって困難であり、問題となる。通常、裕福な組織だけがこうした計器を揃えることができ、小さなまたは裕福でない組織の研究者達にとっては、必要な実験を行うことが困難である。教育機関は特に、十分な科学的訓練を提供するために必要とされる全ての装置を揃えることが、めったにできない。その上、こうした計器がしばしば地理的な領域内に、または世界中に１台または数台しかなかったりし、研究者がこれらを使用するために出張しなければならない場合もある。結果的に、こうした計器が有効的にまたは継続的に使用されないことになる。
【０００３】
インターネットの登場は、これらの及び他の問題を解決するために有望である。特に、本発明はインターネットを用いて、科学計器などのリモート装置へのリアルタイム・アクセスを提供することにより、これらの問題を解決する。
【０００４】
【発明が解決しようとする課題】
前述の従来技術の制限を克服するために、また本明細書を参照し理解した上で明らかになるように、本発明はインターネットなどの広域ネットワークを通じて、リモート装置を操作する方法、システム、及び装置を開示する。本発明の目的は、十分なアクセス特権を有するインターネット上のユーザが、リアルタイムにリモート装置上でコマンドを実行することを可能にすることである。本発明の別の目的は、リモート装置の操作の結果を、インターネットを介する同報機能により、任意の数の観察者にとって使用可能にすることである。
【０００５】
【課題を解決するための手段】
前述の目的を達成するために、本システムは、ユーザと対話することにより、コマンドを受諾し、結果を表示するクライアント・コンピュータと、コマンド及び結果の中間処理を実行するプロキシ・サーバ・コンピュータと、リモート装置に接続され、コマンドを実行し、結果を生成するデバイス・サーバ・コンピュータとを含む。
【０００６】
【発明の実施の形態】
以下の説明では、本発明の幾つかの実施例の１部を示す図面を参照する。しかしながら、本発明の範囲から逸脱することなく、他の実施例も使用され、構造的な変更も可能であることが理解されよう。
【０００７】
概要：
ウェブ・スコープ（ＷＳ）として知られる本発明は、インターネットなどの広域ネットワークを通じて、リモート装置を操作するシステム及び方法を提供する。好適な実施例では、ウェブ・スコープは、遠隔的に配置されるユーザのために、コマンドを実行可能な高機能な科学計器への、リアルタイム・アクセスを提供するために使用される。
【０００８】
ウェブ・スコープは２つの重要な領域において、既存の分析装置とは異なる。第１に、ウェブ・スコープは、十分なアクセス許可を与えられたインターネット上の任意のユーザが、リアルタイムに実験を行うことを可能にする。ウェブ・スコープを用い、ユーザは単にコマンドを科学計器に発行し、特定の操作を実行し、各操作の結果を受信することができる。
【０００９】
計器の性質に応じて、ウェブ・スコープのコマンドは多大に変化し得る。例えば、ネットワーク接続された走査トンネル顕微鏡（ＳＴＭ）が、リモート・ユーザのコマンドに応答して、サンプルの表面を走査し、表面上の原子を移動することができる。この例では、ユーザがＳＴＭにコマンドを発行することにより、ＳＴＭがサンプルをリアルタイムに操作し、操作されたサンプルのイメージにより応答する。
【００１０】
第２に、科学計器の操作はインターネットを介する同報機能により、大きな異質のユーザ社会にとって使用可能になる。その結果、"観察（view）"許可を有するインターネット上の任意のユーザが、科学計器の操作及び実験の進行を観察することができる。この同報機能は科学的目的同様に、教育目的にも使用され得る。
【００１１】
リモート装置への、特に高機能な且つ高価な科学計器へのインターネットを介するこうしたリアルタイム・アクセスは、科学計器の使用及びアプリケーションに大きな影響を与える潜在性を有する。更に、本発明はインターネットにより動的なアプリケーション、例えば科学計器によるリアルタイム実験から生じる生の内容などを提供する。
【００１２】
ハードウェア環境：
図１は、本発明の好適な実施例で使用される一般的なハードウェア環境を示す。本発明はネットワーク１００により、１つ以上のクライアント・コンピュータ１０２を、１つ以上のサーバ・コンピュータ１０４に接続することにより実現される。この実施例では、サーバ・コンピュータ１０４の１つが、リモート装置１０６のためにコマンドの中間処理を提供するプロキシ・サーバ・コンピュータ１０４であり、別のサーバ・コンピュータ１０４が、リモート装置１０６を実際に制御するデバイス・サーバ・コンピュータ１０４である。資源の典型的な組み合わせは、パーソナル・コンピュータまたはワークステーションを含むクライアント・コンピュータ１０２と、パーソナル・コンピュータ、ワークステーション、ミニコンピュータ、またはメインフレームを含むサーバ・コンピュータ１０４とを含む。ネットワーク１００はこれらのコンピュータを接続し、ＬＡＮ、ＷＡＮ、インターネットなどを構成する。
【００１３】
一般に、本発明は、クライアント・コンピュータ１０２及びサーバ・コンピュータ１０４により実行される、１つ以上のコンピュータ・プログラムを用いて実現される。図１の一般的な実施例では、これらのコンピュータ・プログラムが、１）クライアント・コンピュータ１０２により実行される、ブラウザ・プログラム１０８及びクライアント・コマンド・プロセッサ１１０と、２）プロキシ・サーバ・コンピュータ１０４により実行される、プロキシ・コマンド・プロセッサ・プログラム１１２、アクセス制御リスト（ＡＣＬ）１１６を含むユーザ・マネージャ・プログラム１１４、セッション・マネージャ・プログラム１１８、及びタスク・マネージャ・プログラム１２０と、３）デバイス・サーバ・コンピュータ１０４により実行される、デバイス・コマンド・プロセッサ・プログラム１２２及びハードウェア・インタフェース・プログラム１２４とを含む。
【００１４】
コンピュータ・プログラムの各々は、それぞれのコンピュータにより読出され、実行されるとき、そのコンピュータに本発明のステップまたは要素を実行するように指示する命令を含む。コンピュータ・プログラムは通常、コンピュータ読出し可能装置、媒体またはキャリア内に埋め込まれるか、またはそれらから読出される。それらには例えば、コンピュータに直接接続される、またはコンピュータにデータ通信装置を介して接続される、ローカルまたはリモート・データ記憶装置またはメモリ装置が含まれる。
【００１５】
従って、本発明は、標準のプログラミング技法またはエンジニアリング技法を用い、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを生成する方法、システム、または装置として実現される。ここで用語"装置（article of manufacture）"（或いは"コンピュータ・プログラム・キャリアまたは製品"）は、任意の装置、媒体、またはキャリアからアクセス可能な、１つ以上のコンピュータ・プログラムを含むように意図される。
【００１６】
もちろん当業者であれば、図１に示される一般的な環境が、本発明を制限するものでないことが理解できよう。例えば、プロキシ・サーバ・コンピュータ１０４及びデバイス・サーバ・コンピュータ１０４の機能が、１つのサーバ・コンピュータ１０４により実行され得る。更に、クライアント／サーバ・アーキテクチャが要求される訳ではなく、本発明がワークステーションなどの１つのコンピュータ上で実現されてもよい。実際、当業者であれば、本発明の範囲から逸脱することなしに、他の代替ハードウェア環境が使用され得ることが理解できよう。
【００１７】
ウェブ・スコープの操作：
ウェブ・スコープはその操作において、多数の新規の要素を使用する。これらの要素には、ユーザ・インタフェース、コマンド・プロセッサ、ユーザ・マネージャ、セッション・マネージャ、及びタスク・マネージャが含まれる。
【００１８】
ユーザ・インタフェース：
ブラウザ１０８及びクライアント・コマンド・プロセッサ１１０により提供されるユーザ・インタフェースは、個々のユーザがリモート装置１０６の現状況を操作及び見ることを可能にする。通常、こうしたインタフェースは、特定の装置１０６または計器に特有であり、それらにはリモート位置にある走査トンネル顕微鏡、望遠鏡、及びロボットや、他の遠隔的に配置された装置が含まれる。本質的に、このインタフェースは生の実験の状況を反映し、複数のクライアント・コンピュータ１０２において、複数のユーザにより同時に呼び出され得る。
【００１９】
好適な実施例では、ユーザ・インタフェースがリモート装置１０６を制御し、リモート装置１０６の結果を見るためのグラフィック・ユーザ・インタフェース（ＧＵＩ）を含む。更に、オーディオ要素または他のマルチメディア要素が、ユーザの経験を高めるために使用され得る。
【００２０】
一般に、このインタフェースにおいて、ユーザが制御できる２つの主な要素が存在する。それらは、１）装置依存型パラメータ、及び２）装置の操作である。装置依存型パラメータについては、リモート装置１０６及びそのソフトウェアの状態が、任意の時点にパラメータのセットにより定義される。これらのパラメータは通常、数字、ストリング、ブール変数、配列などのデータ・オブジェクトである。
【００２１】
可能なパラメータが、アプリケーションのニーズ及びリモート装置１０６の特性に従い決定される。例えば、リモート装置１０６が走査トンネル顕微鏡を含む場合、アプリケーションに応じて、様々なパラメータを用いサンプルが走査トンネル顕微鏡により分析され得る。ほとんどの装置依存型パラメータは静的性質を有し、頻繁に変化しない。しかしながら、ユーザは異なる表現により様々な動的パラメータを見る必要があるかも知れず、実験を行うためにこうしたパラメータを操作する必要があるかも知れない。
【００２２】
装置１０６の操作に関しては、ユーザ・インタフェースはユーザがリモート装置１０６をリアルタイムに操作することを可能にする。こうした操作の間、装置１０６に送信されるコマンドは、結果及びステータス情報により応答され得る。例えば、ユーザが走査トンネル顕微鏡の先端部の制御を有する場合、マウス入力装置の移動がユーザ・インタフェースと協働し、顕微鏡の先端部の移動を直接制御し、サンプルに直接影響を及ぼす。更に、操作の結果を示す情報、例えば原子がマウスの移動に追従したことを示す情報が、ユーザ・インタフェースに送り返される。更に、前述の例のユーザ・インタフェースは、サンプルの現構造を示す画像表示装置を含み、マウス・ポインタが画像表示装置の要素と対話するために使用され、結果が画像表示装置内に反映される。ユーザ・インタフェースは、更にオーディオなどのリモート装置１０６の観察結果を向上させる他のマルチメディア要素を含み得る。
【００２３】
コマンド・プロセッサ：
コマンド・プロセッサ１１０、１１２及び１２２は、ユーザからリモート装置１０６へのコマンドの伝送、及びリモート装置１０６からユーザへの結果及びステータス情報の結合ストリームの伝送を容易にする分散要素である。コマンド・プロセッサ１１０、１１２及び１２２は基本的に、アーキテクチャの３つの全てのレベル、すなわちクライアント・コンピュータ１０２、プロキシ・サーバ・コンピュータ１０４、及びデバイス・サーバ・コンピュータ１０４上で動作する。
【００２４】
通常、コマンドが中間マシン上、すなわちプロキシ・サーバ・コンピュータ１０４上で処理され、リモート装置１０６の特定のフィーチャに適応化する。コマンドを処理するために使用可能な方法の豊富なセットが存在し、それらには、例えば複雑なコマンドを一連の基本命令に変換したり、異なる座標系にマップする方法が含まれる。
【００２５】
コマンド・プロセッサ１１０、１１２及び１２２の１つの重要なフィーチャは、各コマンドがユーザへのフィードバックを生成することである。例えば、装置１０６が走査トンネル顕微鏡の場合、ユーザ・インタフェースからの原子移動コマンドの伝送が、ユーザ・インタフェースにおいて、原子が装置１０６により移動されたか否かを示す応答の受信を生じる。更に、装置１０６の現状態が複数のユーザにより同時にモニタされ得る。
【００２６】
ユーザ・マネージャ：
本発明のユーザ・マネージャ１１４は、リモート装置１０６へのアクセス制御を提供する。当然ながら、インターネット上の多数のユーザが、リモート装置１０６を操作することに関心があろう。コマンドを制御可能に発行するために、各ユーザ及びコマンドは、関連付けられるアクセス制御リスト（ＡＣＬ）１１６を有し得る。ユーザ・マネージャ１１４がＡＣＬ１１６に従い、個々のユーザまたはユーザのグループにより発行されるコマンドに許可を与えるか、または拒否する。もちろん、リモート装置１０６の性質は、任意の時点にリモート装置１０６を制御可能なユーザの数を制限し得るが（通常、１度に１ユーザだけがリモート装置１０６にコマンドを発行できる）、任意の数のユーザが、装置１０６からの結果及びステータス情報を観察することができる。
【００２７】
セッション・マネージャ：
セッション・マネージャ１１８は、最大数以下のユーザがリモート装置１０６の制御を獲得することを保証する。すなわち、観察ユーザの数に対しても、同様に制限が設定される。セッション・マネージャ１１８はまた、ユーザに割当てられた時間が超過したとき、ユーザ・セッションを終了する。更に、セッション・マネージャ１１８は、リモート装置１０６に関する更新結果及びステータス情報が、リモート装置１０６の操作を現在観察している全てのユーザにディスパッチされることを確認する。インターネット接続の帯域幅によってのみ制限され、こうした観察者はリモート装置１０６の操作または進行をリアルタイムに、または実質的にほぼリアルタイムに観察することができる。
【００２８】
タスク・マネージャ：
ユーザからのコマンドが、プロキシ・サーバ・コンピュータ１０４上のユーザ・マネージャ１１４及びセッション・マネージャ１１８により許可されるとき、タスク・マネージャ１２０が次に呼び出される。タスク・マネージャ１２０はコマンドを、１つ以上の装置１０６依存型サブコマンドに変換し得る。
【００２９】
更に、タスク・マネージャ１２０が、これらのコマンドまたはサブコマンドを優先キュー１２６に記憶する。優先キュー１２６は、コマンドがリモート装置１０６に達する以前に、コマンドを待ち行列化する一時データ構造であり、遅い装置１０６が余りに多くのコマンドにより過負荷とならないように保証する。こうしたキュー１２６に優先順位を追加することにより、"スーパ・ユーザ"がいつでも装置１０６の制御を支配することが可能である。
【００３０】
デバイス・サーバ・コンピュータ１０４上のコマンド・プロセッサ１２２は、入力のためにキュー１２６をポーリングし、１度に１つのコマンドを受信し、それをハードウェア・インタフェース１２４を介して装置１０６に実行のために送信する。リモート装置１０６からの結果及びステータス情報が、コマンド・プロセッサ１２２により、プロキシ・サーバ・コンピュータ１０４上のセッション・マネージャ１１８に返送される。コマンド・プロセッサ１２２は、結果及びステータス情報が全ての観察ユーザに同報されることを保証する。プロキシ・サーバ・コンピュータ１０４上のセッション・マネージャ１１８により保持されるタイムアウト機構は、ユーザがリモート装置１０６が応答し損なった時を知らされるように保証する。
【００３１】
ウェブ・スコープの論理：
本発明のウェブ・スコープの論理を示すフローチャートが、図２、図３及び図４に示される。当業者であれば、この論理が説明の目的のためにだけ提供され、異なる論理が同一の結果を達成するために使用され得ることが理解できよう。
【００３２】
クライアント・コンピュータ：
図２は、本発明のステップを実行するときの、クライアント・コンピュータ１０２の一般的な論理を示すフローチャートである。
【００３３】
ブロック２００は、クライアント・コンピュータ１０２が、ブラウザ１０８及びコマンド・プロセッサ１１０を初期化することを表す。ブラウザ１０８及びコマンド・プロセッサ１１０は、クライアント・コンピュータ１０２上のユーザと対話するために使用される。こうした対話はとりわけ、プロキシ・サーバ・コンピュータ１０４及びデバイス・サーバ・コンピュータ１０４を含む、インターネット上のサーバ及びページへのアクセスを含む。
【００３４】
ブロック２０２は、クライアント・コンピュータ１０２が次の事象の発生を待機すること、すなわち、ユーザまたはインターネットを介して接続されるサーバ・コンピュータ１０４から、次の入力を待機することを表す。
【００３５】
ブロック２０４は、クライアント・コンピュータ１０２が、事象がユーザによりブラウザ１０８を介して呼び出されるウェブ・スコープ・コマンドの受信を含むか否かを判断することを表す、判断ブロックである。肯定の場合、制御はブロック２０６に移行し、否定の場合、制御はブロック２０８に移行する。
【００３６】
ブロック２０６は、コマンド・プロセッサ１１０がブラウザ１０８とユーザとの間の対話を分析し、リモート装置１０６に対するコマンドをフォーマットし、次にリモート装置１０６に対するコマンドを、プロキシ・サーバ・コンピュータ１０４に送信することを表す。その後、制御がブロック２０２に移行する。
【００３７】
ブロック２０８は、クライアント・コンピュータ１０２が、事象がプロキシ・サーバ・コンピュータ１０４からの結果及びステータス情報の受信を含むか否かを判断することを表す、判断ブロックである。肯定の場合、制御はブロック２１０に移行し、否定の場合、制御はブロック２１２に移行する。
【００３８】
ブロック２１０は、コマンド・プロセッサ１１０が、プロキシ・サーバ・コンピュータ１０４から受信されたリモート装置１０６に関する結果及びステータス情報を分析し、情報をフォーマットし、次にフォーマットされた情報をブラウザ１０８に提供し、クライアント・コンピュータ１０２上のユーザに表示することを表す。その後、制御はブロック２０２に移行する。
【００３９】
ブロック２１２は、クライアント・コンピュータ１０２が他の処理を実行することを表す。その後、制御はブロック２０２に移行する。
【００４０】
プロキシ・サーバ・コンピュータ：
図３は、本発明のステップを実行するときの、プロキシ・サーバ・コンピュータ１０４の一般的な論理を示すフローチャートである。
【００４１】
ブロック３００は、プロキシ・サーバ・コンピュータ１０４がコマンド・プロセッサ１１２、ユーザ・マネージャ１１４、セッション・マネージャ１１８、及びタスク・マネージャ１２０を初期化することを表す。
【００４２】
ブロック３０２は、プロキシ・サーバ・コンピュータ１０４が次の事象の発生を待機すること、すなわち、クライアント・コンピュータ１０２またはデバイス・サーバ・コンピュータ１０４からの次の入力を待機することを表す。
【００４３】
ブロック３０４は、プロキシ・サーバ・コンピュータ１０４が、事象がクライアント・コンピュータ１０２からのコマンドの受信を含むか否かを判断することを表す、判断ブロックである。肯定の場合、制御がブロック３０６に移行し、否定の場合、制御はブロック３１４に移行する。
【００４４】
ブロック３０６は、プロキシ・サーバ・コンピュータ１０４上のコマンド・プロセッサ１１２が、クライアント・コンピュータ１０２から受信されたコマンドを、ユーザ・マネージャ１１４に送信することを表す。
【００４５】
ブロック３０８は、プロキシ・サーバ・コンピュータ１０４上のユーザ・マネージャ１１４が、そのアクセス制御リスト１１６に照らしてコマンドを分析し、その分析にもとづき、ユーザのコマンドに許可を与えるか、それとも拒否するかを決定することを表す。
【００４６】
ブロック３１０は、プロキシ・サーバ・コンピュータ１０４上のセッション・マネージャ１１８が、ユーザ・マネージャ１１４から許可情報を受信し、とりわけ、ユーザがリモート装置１０６の制御を要求しているか否か、またはユーザがリモート装置１０６の操作を観察することを要求しているか否かなどにもとづき、受信コマンドが進行することを保証することを表す。更に、ユーザがリモート装置１０６の制御を有するとき、セッション・マネージャ１１８がそれらの割当て時間を超過したユーザ・セッションを終了する。
【００４７】
ブロック３１２は、プロキシ・サーバ・コンピュータ１０４上のタスク・マネージャ１２０が、ユーザ・マネージャ１１４及びセッション・マネージャ１１８から許可及び権限情報を受信し、次にデバイス・サーバ・コンピュータ１０４上のコマンド・プロセッサ１２２による続くアクセスのために、コマンドを優先キュー１２６内で待ち行列化することを表す。その後、制御はブロック３０２に移行する。
【００４８】
ブロック３１４は、プロキシ・サーバ・コンピュータ１０４が、事象がユーザ・セッションに関連付けられたタイマの満了であるか否かを判断することを表す、判断ブロックである。肯定の場合、制御はブロック３１６に移行し、否定の場合、制御はブロック３２０に移行する。
【００４９】
ブロック３１６は、セッション・マネージャ１１８がタイマの満了を分析し、次にどのアクションが取られるべきか、例えば、どのユーザが満了を知らされるべきかを決定することを表す。
【００５０】
ブロック３１８は、プロキシ・サーバ・コンピュータ１０４上のコマンド・プロセッサ１１２が、セッション・マネージャ１１８から満了情報を受信し、次にこの情報を１つ以上のクライアント・コンピュータ１０２及びそれらのユーザに配布することを表す。その後、制御はブロック３０２に移行する。
【００５１】
ブロック３２０は、プロキシ・サーバ・コンピュータ１０４が、事象がデバイス・サーバ・コンピュータ１０４上のコマンド・プロセッサ１２２からの、結果及びステータス情報の受信を含むか否かを判断することを表す、判断ブロックである。肯定の場合、制御はブロック３２２に移行し、否定の場合、制御はブロック３２６に移行する。
【００５２】
ブロック３２２は、プロキシ・サーバ・コンピュータ１０４上のセッション・マネージャ１１８が、デバイス・サーバ・コンピュータ１０４上のコマンド・マネージャ１２２から結果及びステータス情報を受信し、その情報を如何に１つ以上のクライアント・コンピュータ１０２及びそれらのユーザに配布するかを決定することを表す。
【００５３】
ブロック３２４は、プロキシ・サーバ・コンピュータ１０４上のコマンド・プロセッサ１１２が、セッション・マネージャ１１８から結果及びステータス情報を受信し、次にその情報を１つ以上のクライアント・コンピュータ１０２及びそれらのユーザに配布することを表す。その後、制御はブロック３０２に移行する。
【００５４】
ブロック３２６は、プロキシ・サーバ・コンピュータ１０４が他の処理を実行することを表す。その後、制御はブロック３０２に移行する。
【００５５】
デバイス・サーバ・コンピュータ：
図４は、本発明のステップを実行するときの、デバイス・サーバ・コンピュータ１０４の一般的な論理を示すフローチャートである。
【００５６】
ブロック４００は、デバイス・サーバ・コンピュータ１０４がリモート装置１０６のために、コマンド・プロセッサ１２２及びハードウェア・インタフェース１２４を初期化することを表す。
【００５７】
ブロック４０２は、デバイス・サーバ・コンピュータ１０４が次の事象の発生を待機すること、すなわち、プロキシ・サーバ・コンピュータ１０４またはリモート装置１０６からの次の入力を待機することを表す。
【００５８】
ブロック４０４は、デバイス・サーバ・コンピュータ１０４が、事象がプロキシ・サーバ・コンピュータ１０４上の優先キュー１２６からのコマンドの受信を含むか否かを判断することを表す、判断ブロックである。肯定の場合、制御がブロック４０６に移行し、否定の場合、制御はブロック４１２に移行する。
【００５９】
ブロック４０６は、デバイス・サーバ・コンピュータ１０４上のコマンド・プロセッサ１２２が、リモート装置１０６自身による続く実行のために、コマンドをハードウェア・インタフェース１２４に送信することを表す。
【００６０】
ブロック４０８は、デバイス・サーバ・コンピュータ１０４上のハードウェア・インタフェース１２４が、リモート装置１０６のためにコマンドをフォーマットし、フォーマットされたコマンドをリモート装置１０６に送信することを表す。
【００６１】
ブロック４１０は、デバイス・サーバ・コンピュータ１０４に接続されたリモート装置１０６が、コマンドを実行することを表す。その後、制御はブロック４０２に移行する。
【００６２】
ブロック４１２は、デバイス・サーバ・コンピュータ１０４が、事象がリモート装置１０６からの結果及びステータス情報の受信を含むか否かを判断することを表す、判断ブロックである。肯定の場合、制御はブロック４１４に移行し、否定の場合、制御はブロック４１８に移行する。
【００６３】
ブロック４１４は、デバイス・サーバ・コンピュータ１０４上のハードウェア・インタフェース１２４が、リモート装置１０６から結果及びステータス情報を受信し、次にその情報をコマンド・プロセッサ１２２に送信することを表す。
【００６４】
ブロック４１６は、デバイス・サーバ・コンピュータ１０４上のコマンド・プロセッサ１２２が、ハードウェア・インタフェース１２４から結果及びステータス情報を受信し、次にその情報をプロキシ・サーバ・コンピュータ１０４上のセッション・マネージャ１１８に送信することを表わす。続いて情報が、１つ以上のクライアント・コンピュータ１０２及びそれらのユーザに配布される。その後、制御はブロック４０２に移行する。
【００６５】
ブロック４１８は、デバイス・サーバ・コンピュータ１０４が他の処理を実行することを表す。その後、制御はブロック４０２に移行する。
【００６６】
結論：
これで本発明の好適な実施例の説明を終結することにする。次に、本発明を達成するための特定の代替実施例について述べる。
【００６７】
例えば、任意のタイプのリモート装置が本発明と共に使用され得る。更に、任意のタイプのコンピュータ構成及びネットワーク構成が、本発明から利益を得ることができる。
【００６８】
当業者であれば、情報のリアルタイム表示が、予め記録された情報の表示により追加され得ることが理解できよう。実際、リモート装置１０６とのユーザ対話が、リモート装置１０６からの結果及びステータス情報同様、後の吟味のために記録され得る。
【００６９】
要するに、本発明はインターネットなどの広域ネットワークを介して、リモート装置を操作するシステムを開示する。本システムは、ユーザと対話し、コマンドを受諾し、結果を表示するためのクライアント・コンピュータと、コマンド及び結果の中間処理を実行するためのプロキシ・サーバ・コンピュータと、コマンドを実行し、結果を生成するリモート装置に接続されるデバイス・サーバ・コンピュータとを含む。
【００７０】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００７１】
（１）ネットワークを介してリモート装置を操作するシステムであって、
ａ）１人以上のユーザと対話することにより、前記リモート装置に対してコマンドを発行し、前記リモート装置から結果を受信する、１つ以上のクライアント・コンピュータと、
ｂ）前記クライアント・コンピュータに接続され、前記クライアント・コンピュータからの前記発行コマンドを受信し、前記発行コマンドを翻訳し、翻訳された前記コマンドが実行され得るか否かを判断し、前記リモート装置に対する翻訳された前記コマンドが実行されるまで、該コマンドを待ち行列化し、前記リモート装置から受信された結果及びステータス情報を、前記クライアント・コンピュータにとって好適な形式に変換し、変換された前記結果及びステータス情報を前記クライアント・コンピュータに送信する、プロキシ・サーバ・コンピュータと、
ｃ）前記プロキシ・サーバ・コンピュータ及び前記リモート装置に接続され、前記待ち行列化されたコマンドを前記プロキシ・サーバ・コンピュータから取り出し、取り出された前記コマンドに従い前記リモート装置を操作し、前記リモート装置から受信された結果及びステータス情報を、前記プロキシ・サーバ・コンピュータに提供する、デバイス・サーバ・コンピュータと
を含む、システム。
（２）前記プロキシ・サーバ・コンピュータがインターネット上のクライアント・コンピュータに接続される、前記（１）記載のシステム。
（３）前記リモート装置が科学計器である、前記（１）記載のシステム。
（４）前記発行コマンドが前記科学計器を使用する実験を含む、前記（３）記載のシステム。
（５）前記プロキシ・サーバ・コンピュータが、ユーザが前記発行コマンドに対する十分なアクセス許可を有するか否かを判断する、前記（１）記載のシステム。
（６）前記プロキシ・サーバ・コンピュータが前記リモート装置からの前記結果を、同報機能を介して、大きな異質のユーザ社会の前記クライアント・コンピュータに伝送する、前記（１）記載のシステム。
（７）前記クライアント・コンピュータの各々が、ブラウザと、ユーザが前記リモート装置を操作し、前記リモート装置からの前記結果を見ることを可能にするクライアント・コマンド・プロセッサとを実行する、前記（１）記載のシステム。
（８）前記クライアント・コンピュータの各々が、ユーザが前記リモート装置に対して１つ以上のパラメータを指定することを可能にするコマンド・プロセッサを実行する、前記（１）記載のシステム。
（９）前記クライアント・コンピュータ、プロキシ・サーバ・コンピュータ、及びデバイス・サーバ・コンピュータの各々が、前記クライアント・コンピュータから前記リモート装置へのコマンドの伝送、及び前記リモート装置から前記クライアント・コンピュータへの結果の伝送を容易にするコマンド・プロセッサを実行する、前記（１）記載のシステム。
（１０）前記プロキシ・サーバ・コンピュータが、ユーザの収集及びコマンドのアクセス許可を管理するユーザ・マネージャを含む、前記（１）記載のシステム。
（１１）前記ユーザ・マネージャが各コマンドに対するアクセス制御リストを含み、前記ユーザ・マネージャが前記アクセス制御リストに従い、前記発行コマンドを実行するための許可を与えるかまたは拒否する、前記（１０）記載のシステム。
（１２）前記プロキシ・サーバ・コンピュータが、最大数以下のユーザが前記リモート装置の制御を獲得することを保証する、セッション・マネージャを含む、前記（１）記載のシステム。
（１３）前記プロキシ・サーバ・コンピュータが、最大数以下のユーザが前記リモート装置から前記結果及びステータス情報を受信することを保証する、セッション・マネージャを含む、前記（１）記載のシステム。
（１４）前記プロキシ・サーバ・コンピュータが、時間が超過したとき、前記リモート装置を操作するユーザのセッションを終了するセッション・マネージャを含む、前記（１）記載のシステム。
（１５）前記プロキシ・サーバ・コンピュータが、前記リモート装置から受信される結果が、前記リモート装置の操作を観察する全てのユーザにディスパッチされることを保証する、セッション・マネージャを含む、前記（１）記載のシステム。
（１６）前記プロキシ・サーバ・コンピュータが、前記発行コマンドを処理し、該コマンドを優先キューに記憶するためのタスク・マネージャを含む、前記（１）記載のシステム。
（１７）前記優先キューが、前記発行コマンドが前記リモート装置に達する以前に、該コマンドを待ち行列化するための一時データ構造である、前記（１６）記載のシステム。
（１８）前記優先キューが"スーパ・ユーザ"が前記リモート装置を制御することを可能にする、前記（１７）記載のシステム。
（１９）前記デバイス・サーバ・コンピュータが、前記優先キューをポーリングし、ポーリングされた前記優先キューから１度に１つ以上のコマンドを取り出し、取り出された前記コマンドを実行のために前記リモート装置に送信し、前記リモート装置からの結果を前記プロキシ・サーバ・コンピュータに送信することにより、前記クライアント・コンピュータに配布するための、コマンド・プロセッサを含む、前記（１６）記載のシステム。
（２０）前記コマンド・プロセッサが前記コマンドからの結果を、前記プロキシ・サーバ・コンピュータ上のセッション・マネージャに送信し、前記セッション・マネージャが前記結果が全ての観察ユーザに同報されることを保証する、前記（１９）記載のシステム。
（２１）ネットワークを介してリモート装置を操作する方法であって、
ａ）１つ以上のクライアント・コンピュータを介して、１人以上のユーザと対話することにより、前記リモート装置に対してコマンドを発行し、前記リモート装置から結果を受信するステップと、
ｂ）プロキシ・サーバ・コンピュータにおいて、前記クライアント・コンピュータからの前記発行コマンドを受信し、前記発行コマンドを翻訳し、翻訳された前記コマンドが実行され得るか否かを判断し、前記リモート装置に対する翻訳された前記コマンドが実行されるまで、該コマンドを待ち行列化し、前記リモート装置から受信された結果及びステータス情報を、前記クライアント・コンピュータにとって好適な形式に変換し、変換された前記結果及びステータス情報を、前記プロキシ・サーバ・コンピュータから前記クライアント・コンピュータに送信するステップと、
ｃ）前記待ち行列化されたコマンドを前記プロキシ・サーバ・コンピュータから、前記リモート装置に接続されたデバイス・サーバ・コンピュータに取り出し、取り出された前記コマンドに従い前記リモート装置を操作し、前記リモート装置から受信された結果及びステータス情報を、前記プロキシ・サーバ・コンピュータに提供するステップと
を含む、方法。
（２２）コンピュータにより読出し可能なコンピュータ・プログラム・キャリアを含み、ネットワークを介してリモート装置を操作する方法を実行する、前記コンピュータにより実行可能な１つ以上の命令を実現する装置であって、前記方法が、
ａ）１つ以上のクライアント・コンピュータを介して、１人以上のユーザと対話することにより、前記リモート装置に対してコマンドを発行し、前記リモート装置から結果を受信するステップと、
ｂ）プロキシ・サーバ・コンピュータにおいて、前記クライアント・コンピュータからの前記発行コマンドを受信し、前記発行コマンドを翻訳し、翻訳された前記コマンドが実行され得るか否かを判断し、前記リモート装置に対する翻訳された前記コマンドが実行されるまで、該コマンドを待ち行列化し、前記リモート装置から受信された結果及びステータス情報を、前記クライアント・コンピュータにとって好適な形式に変換し、変換された前記結果及びステータス情報を、前記プロキシ・サーバ・コンピュータから前記クライアント・コンピュータに送信するステップと、
ｃ）前記待ち行列化されたコマンドを前記プロキシ・サーバ・コンピュータから、前記リモート装置に接続されたデバイス・サーバ・コンピュータに取り出し、取り出された前記コマンドに従い前記リモート装置を操作し、前記リモート装置から受信された結果及びステータス情報を、前記プロキシ・サーバ・コンピュータに提供するステップと
を含む、装置。
（２３）ネットワークを介して、リモート装置を操作するシステムであって、
ａ）１人以上のユーザと対話し、前記リモート装置に対してコマンドを発行する手段と、
ｂ）前記コマンドが実行され得るか否かを判断する手段と、
ｃ）前記コマンドを前記リモート装置にとって好適な形式に任意に翻訳する手段と、
ｄ）前記コマンドが前記リモート装置により実行されるまで、該コマンドを任意に待ち行列化する手段と、
ｅ）前記コマンドに従い、前記リモート装置を操作する手段と、
ｆ）前記リモート装置から結果及びステータス情報を収集する手段と、
ｇ）前記結果及びステータス情報をフォーマットする手段と、
ｈ）前記結果及びステータス情報をユーザに提供する手段と
を含む、システム。
（２４）ネットワークを介して、リモート装置を操作する方法であって、
ａ）１人以上のユーザと対話し、前記リモート装置に対してコマンドを発行するステップと、
ｂ）前記コマンドが実行され得るか否かを判断するステップと、
ｃ）前記コマンドを前記リモート装置にとって好適な形式に任意に翻訳するステップと、
ｄ）前記コマンドが前記リモート装置により実行されるまで、該コマンドを任意に待ち行列化するステップと、
ｅ）前記コマンドに従い、前記リモート装置を操作するステップと、
ｆ）前記リモート装置から結果及びステータス情報を収集するステップと、
ｇ）前記結果及びステータス情報をフォーマットするステップと、
ｈ）前記結果及びステータス情報をユーザに提供するステップと
を含む、方法。
（２５）コンピュータにより読出し可能なコンピュータ・プログラム・キャリアを含み、ネットワークを介してリモート装置を操作する方法を実行する、前記コンピュータにより実行可能な１つ以上の命令を実現する装置であって、前記方法が、
ａ）１人以上のユーザと対話し、前記リモート装置に対してコマンドを発行するステップと、
ｂ）前記コマンドが実行され得るか否かを判断するステップと、
ｃ）前記コマンドを前記リモート装置にとって好適な形式に任意に翻訳するステップと、
ｄ）前記コマンドが前記リモート装置により実行されるまで、該コマンドを任意に待ち行列化するステップと、
ｅ）前記コマンドに従い、前記リモート装置を操作するステップと、
ｆ）前記リモート装置から結果及びステータス情報を収集するステップと、
ｇ）前記結果及びステータス情報をフォーマットするステップと、
ｈ）前記結果及びステータス情報をユーザに提供するステップと
を含む、装置。
【図面の簡単な説明】
【図１】本発明の好適な実施例を実現するために使用される一般的なハードウェア環境を示す図である。
【図２】本発明のステップを実行するクライアント・コンピュータの一般的な論理を示すフローチャートである。
【図３】本発明のステップを実行するプロキシ・サーバ・コンピュータの一般的な論理を示すフローチャートである。
【図４】本発明のステップを実行するデバイス・サーバ・コンピュータの一般的な論理を示すフローチャートである。
【符号の説明】
１００  ネットワーク
１０２  クライアント・コンピュータ
１０４  プロキシ・サーバ・コンピュータまたはデバイス・サーバ・コンピュータ
１０６  リモート装置
１０８  ブラウザ
１１４  ユーザ・マネージャ
１１６  アクセス制御リスト（ＡＣＬ）
１１８  セッション・マネージャ
１２０  タスク・マネージャ
１２６  優先キュー
【図１】
0003919370.tif 000002
【図２】
0003919370.tif 000003
【図３】
0003919370.tif 000004
【図４】
0003919370.tif 000005