(57)【要約】  ネットワーク接続可能な機器（１８ａ、１８ｂ）に遠隔アクセスし制御するシステム（１０）および方法により、シームレスな、そしてファイアウォールの影響を受けない接続を複数のユーザ（１２ａ−ｎ）と複数の機器（１８ａ、１８ｂ）との間に実現可能である。また、このシステムにより、複数のユーザ（１２ａ−ｎ）もしくは遠隔地にある機器（１８ａ、１８ｂ）が協調的に作業可能である。さらに１ユーザによる複数の機器制御が可能であり、高速かつ安全な接続が、リモートユーザ（１２ａ−ｎ）と機器（１８ａ、１８ｂ）の間で実現可能である。システムは少なくともひとつの接続サーバー（１４）と、公衆または大域的ネットワーク（１６）を経由で接続サーバーに動作可能な状態で接続された少なくとも二つのコンピュータ（１２ａ、３６ａ）とを含む。一例としては、少なくともひとつのクライアントコンピュータ（１２ａ）が公衆または大域的ネットワーク（１６）を経由で接続サーバー（１４）を介して少なくともひとつのネットワーク接続可能機器（１８ａ）に接続されており、その接続サーバー（１４）はクライアント（１２ａ）からの制御指令をネットワーク接続可能機器（１８ａ）にルーティングするとともに、そのネットワーク接続可能機器（１８ａ）からのデータをクライアント（１２ａ）にルーティングする。
2005509977.tif 000002
【特許請求の範囲】
【請求項１】
公衆ネットワークからの意図的な侵入を防ぐように設定された第１のファイアウォールを経由し、安全な情報伝達経路を経由し公衆ネットワークに接続された、第１のファイアウォールにより守られた第１のコンピュータと、
公衆ネットワークからの意図的な侵入を防ぐように設定された第２のファイアウォールを経由し、安全な情報伝達経路を経由し公衆ネットワークに接続された、第２のファイアウォールにより守られた第２のコンピュータと、
安全かつファイアウォールの影響を受けない接続を第１のコンピュータと行う機能と、また安全かつファイアウォールの影響を受けない接続を第２のコンピュータと行う機能と、第１のコンピュータからの受け取った情報を第２のファイアウォールの影響を受けずに第２のコンピュータに送信する機能と、第２のコンピュータからの受け取った情報を第１のファイアウォールの影響を受けずに第１のコンピュータに送信する機能を備えた接続サーバーを有する、
シームレスな、ファイアウォールの影響を受けない、公衆ネットワークを経由したユーザ間の接続ができるリモートコミュニケーションを行うシステム。
【請求項２】
請求項１のシステムにおいて、第１のファイアウォールと２のファイアウォールがそれらを通過する情報トラフィックの制限においてそれぞれ異なる基準を有することを特徴とするシステム。
【請求項３】
請求項１のシステムにおいて、第１のコンピュータがクライアントコンピュータであり、第２のコンピュータが機器制御コンピュータであり、少なくともひとつのネットワーク接続可能な機器が公衆ネットワークに対して第２のファイアウォールの背後にある当該機器制御コンピュータに、プライベートネットワーク的に接続されていることを特徴とするシステム。
【請求項４】
請求項１のシステムにおいて、第１のコンピュータが第１のクライアントコンピュータであり、第２のコンピュータが第２のクライアントコンピュータであることを特徴とするシステム。
【請求項５】
請求項１のシステムにおいて、第１のコンピュータが第１の機器制御コンピュータであり、第２のコンピュータが第２の機器制御コンピュータであり、システムとしては、少なくともひとつの第１のネットワーク接続可能な機器が公衆ネットワークに対して第１のファイアウォールの背後にある第１の機器制御コンピュータに、プライベートネットワーク的に接続されており、少なくともひとつの第２のネットワーク接続可能な機器が公衆ネットワークに対して第２のファイアウォールの背後にある第２の機器制御コンピュータに、プライベートネットワーク的に接続されていることを特徴とするシステム。
【請求項６】
請求項１のシステムにおいて、第１のコンピュータが第１のファイアウォールの背後にある第１のプライベートネットワークに接続されており、第２のコンピュータが第２のファイアウォールの背後にある第２のプライベートネットワークに接続されていることを特徴とするシステム。
【請求項７】
請求項１のシステムにおいて、接続サーバーが、プライベートネットワーク内にあり、そのプライベートネットワークが第３のファイアウォールを介して、公衆ネットワークに動作可能な状態で接続されていることを特徴とするシステム。
【請求項８】
請求項２のシステムにおいて、第２のクライアントコンピュータが存在し、少なくとも２つのそれらのクライアントコンピュータが同時的に、少なくともひとつのネットワーク接続可能な機器に接続サーバーと機器制御コンピュータを介して同時に接続を確立し、同時的かつ協調的なネットワーク接続可能な機器の使用を行うことを特徴とするシステム。
【請求項９】
請求項１のシステムにおいて、公衆ネットワークからの意図的な侵入を防ぐように設定された第３のファイアウォールを経由し、安全な情報伝達経路を経由し公衆ネットワークに接続された、第３のファイアウォールにより守られた第３のコンピュータが存在し、第１、第２、第３のコンピュータを構成するコンピュータのうち少なくとも３つのコンピュータが接続サーバーを介して同時に接続を確立し、相互的に、同時的かつ協調的な情報送受信を行い、また、第１のコンピュータにより送受信される情報は、第１のファイアウォールの影響を受けず、第２のコンピュータにより送受信される情報は、第２のファイアウォールの影響を受けず、第３のコンピュータにより送受信される情報は、第３のファイアウォールの影響を受けないことを特徴とするシステム。
【請求項１０】
請求項９のシステムにおいて、第１のファイアウォールと第２のファイアウォールと第３のファイアウォールのうち、少なくとも２つのファイアウォールがそれらを通過する情報トラフィックの制限においてそれぞれ異なる基準を有することを特徴とするシステム。
【請求項１１】
請求項１のシステムにおいて、接続サーバーが、第１のコンピュータと安全な接続のための認証を行う手段を備え、その手段により第１のコンピュータからの認証データを受信するとともに認証データによって第１のコンピュータのユーザを認証するかどうか決定し、安全かつ第１のファイアウォールの影響を受けない第１のコンピュータとの接続を行った後にのみ、第１のコンピュータの指令に基づき、第２の安全かつファイアウォールの影響を受けない第２のコンピュータとの接続を確立することを特徴とするシステム。
【請求項１２】
請求項１１のシステムにおいて、認証データは暗号化され、接続サーバーは認証データの解読を行う手段を有することを特徴とするシステム。
【請求項１３】
請求項１１のシステムにおいて、接続サーバーは、第１のコンピュータから接続サーバーへのデータ転送時に、認証データが改変されさたか否かを判断する手段を有することを特徴とするシステム。
【請求項１４】
請求項１１のシステムにおいて、第１のコンピュータが認証された場合に、第１のコンピュータのユーザに対して、暗号化鍵を用意し、また照合する手段を接続サーバーが有することを特徴とするシステム。
【請求項１５】
請求項１のシステムにおいて、接続サーバーが、第２のコンピュータと安全な接続のための認証を行う手段を備え、その手段により第２のコンピュータからの認証データを受信するとともに認証データによって第２のコンピュータのユーザを認証するかどうか決定し、安全かつ第２のファイアウォールの影響を受けない接続を第２のコンピュータと行った後にのみ、第２のコンピュータの指令に基づき、第２の、安全かつファイアウォールの影響を受けない第１のコンピュータとの接続を確立することを特徴とするシステム。
【請求項１６】
請求項１５のシステムにおいて、認証データは暗号化され、接続サーバーは認証データの解読を行う手段を有することを特徴とするシステム。
【請求項１７】
請求項１５のシステムにおいて、接続サーバーは、第２のコンピュータから接続サーバーへのデータ転送時に、認証データが改変されさたか否かを判断する手段を有することを特徴とするシステム。
【請求項１８】
請求項１５のシステムにおいて、第２のコンピュータが認証された場合に、第２のコンピュータのユーザに対して、暗号化鍵を用意し、また照合する手段を接続サーバーが有することを特徴とするシステム。
【請求項１９】
請求項１のシステムにおいて、接続サーバーは、第１のコンピュータと第２のコンピュータの間に全２重接続を確立することを特徴とするシステム。
【請求項２０】
請求項８のシステムにおいて、接続サーバーは、クライアントコンピュータと機器制御コンピュータの間に全２重接続を確立することを特徴とするシステム。
【請求項２１】
請求項９のシステムにおいて、接続サーバーは、少なくとも３つのコンピュータの間に全２重接続を確立することを特徴とするシステム。
【請求項２２】
請求項１のシステムにおいて、さらに、プライベートネットワークに接続された分散的な制御構造を有し、その分散的な制御構造において請求項１の接続サーバーはプライマリ接続サーバーとして動作し、その分散的な制御構造はさらに、少なくとも一つの、第１の接続サーバーへ動作可能な状態で接続された第２の接続サーバーからなることを特徴とするシステム。
【請求項２３】
請求項２２のシステムにおいて、プライマリ接続サーバーは負荷均一化アルゴリズムを有し、それにより第１もしくは第２のコンピュータによって開始された接続を、少なくともひとつの第２の接続サーバーへ割り当てる機能を有することを特徴とするシステム。
【請求項２４】
請求項２２のシステムにおいて、分散的な制御構造はスケーラブルであり、コンピュータ間の接続の数および性質により、接続サーバーの追加または、削減を行うことを特徴とするシステム。
【請求項２５】
請求項２２のシステムにおいて、分散的な制御構造は、さらに、接続サーバーそれぞれについて動的に接続された少なくともひとつのデータベースを有することを特徴とするシステム。
【請求項２６】
請求項２５のシステムにおいて、分散的な制御構造は複数のデータベースを有し、接続サーバーは当該クライアントコンピュータのユーザに関するデータをデータベースに格納し、また、当該機器制御クライアントコンピュータに動的に接続されたリモート機器の使用に関するデータをデータベースに格納することを特徴とするシステム。
【請求項２７】
請求項２６のシステムにおいて、当該クライアントコンピュータのユーザはデータベースのデータにアクセスできることを特徴とするシステム。
【請求項２８】
公衆ネットワークからの意図的な侵入を防ぐように設定された第１のファイアウォールを経由し、その第１のファイアウォールにより守られた安全な情報伝達経路を経由し公衆ネットワークに接続された、クライアントコンピュータと、
公衆ネットワークからの意図的な侵入を防ぐように設定された第２のファイアウォールを経由し、その第２のファイアウォールにより守られた安全な情報伝達経路を経由し公衆ネットワークに接続された、機器制御コンピュータと、その機器制御コンピュータにプライベートネットワーク的に接続された少なくともひとつのネットワーク接続可能な機器と
安全かつファイアウォールの影響を受けない接続を、クライアントコンピュータに対して行う機能と、また安全かつファイアウォールの影響を受けない接続を、機器制御コンピュータと、その機器制御コンピュータにプライベートネットワーク的に接続された少なくともひとつのネットワーク接続可能な機器とに対して行う機能と、クライアントコンピュータからの受け取った情報を第２のファイアウォールの影響を受けずに、機器制御コンピュータを介してネットワーク接続可能な機器に送信する機能と、機器制御コンピュータから受け取った少なくともひとつのネットワーク接続可能な機器の情報を第１のファイアウォールの影響を受けずにクライアントコンピュータに送信する機能を備えた接続サーバーを有する、
シームレスな、ファイアウォールの影響を受けない、公衆ネットワークを経由したユーザ間の接続ができるリモートコミュニケーションを行うシステム。
【請求項２９】
請求項２８のシステムにおいて、第１のファイアウォールと２のファイアウォールがそれらを通過する情報トラフィックの制限においてそれぞれ異なる基準を有することを特徴とするシステム。
【請求項３０】
請求項２８のシステムにおいて、クライアントコンピュータからの受け取った情報は、すくなくともひとつのネットワーク接続可能な機器への、ユーザからの指令であることを特徴とするシステム。
【請求項３１】
請求項２８のシステムにおいて、機器制御コンピュータから受け取った、少なくともひとつのネットワーク接続可能な機器に関する情報は、そのネットワーク接続可能な機器の動作状態の性質を現すデータであることを特徴とするシステム。
【請求項３２】
請求項２８のシステムにおいて、接続サーバーは、クライアントコンピュータと、少なくともひとつのネットワーク接続可能な機器の間に、全２重接続を確立することを特徴とするシステム。
【請求項３３】
請求項２８のシステムにおいて、クライアントコンピュータが第１のファイアウォールの背後にある第１のプライベートネットワークに接続されており、機器制御コンピュータが第２のファイアウォールの背後にある第２のプライベートネットワークに接続されていることを特徴とするシステム。
【請求項３４】
請求項３３のシステムにおいて、少なくとも二つ以上のクライアントコンピュータが第１のプライベートネットワークに接続されており、少なくともひとつの接続サーバーが、それらの複数のクライアントコンピュータとすくなくともひとつのネットワーク接続可能な機器との間に、機器制御コンピュータを介した全２重接続を確立することを特徴とするシステム。
【請求項３５】
請求項３３のシステムにおいて、少なくとも二つ以上のクライアントコンピュータが第３のファイアウォール背後の第３のプライベートネットワークに接続されており、接続サーバーは第３のファイアウォールの影響を受けないような第３のプライベートネットワーク内のクライアントコンピュータとの接続手段を有し、
その第３のプライベートネットワーク内のクライアントコンピュータから、第２のプライベートネットワーク内の機器制御コンピュータを介して、少なくともひとつのネットワーク接続可能な機器へ第２のファイアウォールの影響を受けずにデータ送信を行うとともに、そのネットワーク接続可能な機器から第３のプライベートネットワーク内のクライアントコンピュータへデータ送信を行い、
第２のプライベートネットワーク内の機器制御コンピュータから受け取った、ネットワーク接続可能な機器の情報を第１のファイアウォールの影響を受けずに第１のネットワーク内のクライアントコンピュータに送信する機能と、第３のファイアウォールの影響を受けずに第３のネットワーク内のクライアントコンピュータに送信する機能とを備え、
第３のプライベートネットワーク内のクライアントコンピュータから第２のプライベートネットワーク内の機器制御コンピュータを介してネットワーク接続可能な機器に第２のファイアウォールの影響を受けずに送信する機能と、第２のプライベートネットワーク内のネットワーク接続可能な機器から第１のファイアウォールの影響を受けずに第１のクライアントコンピュータへデータ送信する機能を有するような接続サーバーを有するシステム。
【請求項３６】
請求項３５のシステムにおいて、第１のファイアウォールと第２のファイアウォールと第３のファイアウォールのうち、少なくとも２つのファイアウォールがそれらを通過する情報トラフィックの制限においてそれぞれ異なる基準を有することを特徴とするシステム。
【請求項３７】
請求項３３のシステムにおいて、少なくとも二つ以上の機器制御コンピュータが第２のプライベートネットワークに接続され、さらに少なくともひとつのネットワーク接続可能な機器がそれらの機器制御コンピュータに接続され、また接続サーバーは、クライアントコンピュータ、二つ以上の機器制御コンピュータ、それらに接続された機器の間に全２重接続を行い、クライアントコンピュータからネットワーク接続可能な機器への同時的かつ１点から多点的な動作指令を行うことを特徴とするシステム。
【請求項３８】
請求項３３のシステムにおいて、少なくとも１つ以上の機器制御コンピュータが第３のプライベートネットワークに接続され、さらに少なくともひとつのネットワーク接続可能な機器がそれらの第３のファイアウォールの背後にある機器制御コンピュータに接続されており、接続サーバーは第３のファイアウォールの影響を受けないような第３のプライベートネットワーク内の機器制御コンピュータとの接続手段を有し、
第１のプライベートネットワーク内のクライアントコンピュータから第２のプライベートネットワーク内の機器制御コンピュータを介して第２のプライベートネットワーク内のネットワーク接続可能な機器に第２のファイアウォールの影響を受けずに送信する機能と、
第２のプライベートネットワーク内の機器制御コンピュータから第１のプライベートネットワーク内のクライアントコンピュータへ第１のファイアウォールの影響を受けずに送信する機能と、第２のプライベートネットワーク内の機器制御コンピュータから第３のプライベートネットワーク内の機器制御コンピュータへ第１のファイアウォールの影響を受けずに送信する機能と、
第３のプライベートネットワーク内の機器制御コンピュータから第２のプライベートネットワーク内のネットワーク接続可能な機器へ第２のファイアウォールの影響を受けずに送信する機能と、第３のプライベートネットワーク内の機器制御コンピュータから第１のプライベートネットワーク内のクライアントコンピュータへ第１のファイアウォールの影響を受けずに送信する機能と、を有する接続サーバーを有することを特徴とするシステム。
【請求項３９】
請求項３８のシステムにおいて、第１のファイアウォールと第２のファイアウォールと第３のファイアウォールのうち、少なくとも２つのファイアウォールがそれらを通過する情報トラフィックの制限においてそれぞれ異なる基準を有することを特徴とするシステム。
【請求項４０】
請求項３８のシステムにおいて、接続サーバーは、第１のプライベートネットワーク内のクライアントコンピュータ、第２のプライベートネットワーク内の機器制御コンピュータ、および第３のプライベートネットワーク内の少なくともひとつの機器制御コンピュータ、の間に全２重接続を行い、クライアントコンピュータからネットワーク接続可能な機器への同時的かつ１点から多点的な動作指令を行うことを特徴とするシステム。
【請求項４１】
請求項４０のシステムにおいて、少なくとも１つ以上のクライアントコンピュータが第４のファイアウォールに守られた第４のプライベートネットワークに接続され、サーバーはクライアントコンピュータと機器制御コンピュータの間に全２重接続を行い、すべてのファイアウォールの影響を受けることがなく、ネットワーク接続可能な機器をクライアントコンピュータのユーザがリアルタイムかつ協調的に操作できることを特徴とするシステム。
【請求項４２】
請求項２８のシステムにおいて、少なくともひとつの接続サーバーが、プライベートネットワーク内にあり、そのプライベートネットワークが第３のファイアウォールを介して、公衆ネットワークに動作可能な状態で接続されていることを特徴とするシステム。
【請求項４３】
請求項２８のシステムにおいて、すくなくともひとつの接続サーバーが、その分散的な制御構造を有するネットワークに接続された複数の接続サーバー群より構成されており、この分散的な制御構造において、請求項２８の接続サーバーはプライマリ接続サーバーとして動作し、その他の接続サーバー群は、プライマリ接続サーバーへ対するセカンダリ接続サーバーとして動作することを特徴とするシステム。
【請求項４４】
請求項４３のシステムにおいて、プライマリ接続サーバーは負荷均一化アルゴリズムを有し、これによりプライマリ接続サーバーが、請求項２８のクライアントコンピュータまたは機器制御コンピュータによって開始されたコミュニケーションを、セカンダリ接続サーバーへ割り当てる機能を有することを特徴とするシステム。
【請求項４５】
請求項４３のシステムにおいて、分散的な制御構造はスケーラブルであり、コンピュータ間の接続の数および性質により、接続サーバーの追加または、削減を行うことを特徴とするシステム。
【請求項４６】
請求項４３のシステムにおいて、分散的な制御構造は、さらに、接続サーバーそれぞれについて動的に接続された少なくともひとつのデータベースを有することを特徴とするシステム。
【請求項４７】
請求項４６のシステムにおいて、分散的な制御構造は複数のデータベースを有し、接続サーバーは当該クライアントコンピュータのユーザに関するデータをデータベースに格納し、また、当該機器制御クライアントコンピュータに動的に接続されたリモート機器の使用に関するデータをデータベースに格納することを特徴とするシステム。
【請求項４８】
請求項４７のシステムにおいて、当該クライアントコンピュータのユーザはデータベースのデータにアクセスできることを特徴とするシステム。
【請求項４９】
請求項２８のシステムにおいて、すくなくともひとつの接続サーバーが、分散的な制御構造を有するネットワークに接続された複数の接続サーバー群より構成されており、この分散的な制御構造において、複数のセキュリティサーバーが動作可能な状態で接続サーバーに接続されており、複数のクライアントコンピュータおよび機器制御コンピュータがそれらのセキュリティサーバーに動作可能な状態で接続されていることを特徴とするシステム。
【請求項５０】
請求項４９のシステムにおいて、複数の機器制御コンピュータが少なくともひとつのネットワーク接続可能な機器と接続され、それぞれの機器制御コンピュータがセキュリティサーバーに動作可能な状態で接続されていることを特徴とするシステム。
【請求項５１】
請求項２８のシステムにおいて、すくなくともひとつの接続サーバーが、分散的な制御構造を有するネットワークに接続された複数の接続サーバー群より構成されており、この分散的な制御構造において、セキュリティサーバーが動作可能な状態で複数の接続サーバーに接続されているとともに、複数のクライアントコンピュータおよび、少なくともひとつのネットワーク接続可能な機器と接続された機器制御コンピュータが、それらのセキュリティサーバーに動作可能な状態で接続されており、それらの機器制御コンピュータがセキュリティサーバーに動作可能な状態で接続され、さらに、それらのクライアントコンピュータがセキュリティサーバーに動作可能な状態で接続されていることを特徴とするシステム。
【請求項５２】
請求項５０のシステムにおいて、セキュリティサーバーが、クライアントコンピュータもしくは機器制御コンピュータからの要求により、それらのクライアントコンピュータもしくは機器制御コンピュータを認証する手段を備え、その手段により、クライアントコンピュータもしくは機器制御コンピュータの認証データを受信し、受信した認証データがクライアントコンピュータもしくは機器制御コンピュータのユーザを認証するか否かの決定を行うことを特徴とするシステム。
【請求項５３】
請求項５２のシステムにおいて、クライアントコンピュータもしくは機器制御コンピュータからの要求はHTTPリクエストにより構成されることを特徴とするシステム。
【請求項５４】
請求項５３のシステムにおいて、HTTPリクエストにユーザ認証データを埋め込むことを特徴とするシステム。
【請求項５５】
請求項５４のシステムにおいて、埋め込まれたユーザ認証データは暗号化され、セキュリティサーバーはその暗号化されたユーザ認証データを解読する手段を有することを特徴とするシステム。
【請求項５６】
請求項５２のシステムにおいて、セキュリティサーバーは、クライアントコンピュータもしくは機器制御コンピュータから接続サーバーへのデータ転送時に、認証データが改変されさたか否かを判断する手段を有することを特徴とするシステム。
【請求項５７】
請求項５２のシステムにおいて、セキュリティサーバーが、コンピュータユーザが認証された場合にそのコンピュータのユーザに対して暗号化鍵を用意し、また、照合する手段を有することを特徴とするシステム。
【請求項５８】
請求項５２のシステムにおいて、セキュリティサーバーが、クライアントコンピュータもしくは機器制御コンピュータを接続サーバーのひとつに割り当てる機能を有することを特徴とするシステム。
【請求項５９】
請求項５２のシステムにおいて、セキュリティサーバーは負荷均一化アルゴリズムを有し、これによりセキュリティサーバーが、クライアントコンピュータまたは機器制御コンピュータによって開始されたコミュニケーションを、それらのコンピュータが認証された場合に接続サーバーのひとつに割り当てる機能を有することを特徴とするシステム。
【請求項６０】
請求項５９のシステムにおいて、負荷均一化アルゴリズムは、ユーザ形式、セッション形式、接続サーバーが使用可能か否かの情報、および、接続サーバーの現在の負荷のうち少なくともひとつの情報に基づいて、コミュニケーションの割り当てを行うことを特徴とするシステム。
【請求項６１】
請求項５９のシステムにおいて、負荷均一化アルゴリズムは、ユーザ形式、セッション形式、接続サーバーが使用可能か否かの情報、および、接続サーバーの現在の負荷の情報に基づいて、コミュニケーションの割り当てを行うことを特徴とするシステム。
【請求項６２】
請求項５９のシステムにおいて、セキュリティサーバーは、請求項５９に記されたコミュニケーションの確立後、さらに他のクライアントコンピュータもしくは機器制御コンピュータの少なくともどちらか一方との接続を確立する手段を有することを特徴とするシステム。
【請求項６３】
請求項６２のシステムにおいて、セキュリティサーバーは、さらに他のクライアントコンピュータもしくは機器制御コンピュータの少なくともどちらか一方との接続を、認証されたコンピュータからの要求によって確立する手段を有することを特徴とするシステム。
【請求項６４】
請求項６２のシステムにおいて、分散的な制御構造は、認証されたコンピュータと、クライアントコンピュータもしくは機器制御コンピュータの少なくともどちらか一方との間に全２重接続を確立することを特徴とするシステム。
【請求項６５】
請求項４９のシステムにおいて、分散的な制御構造は、さらに、接続サーバーそれぞれについて動作可能な状態で接続されたデータベースを有することを特徴とするシステム。
【請求項６６】
請求項６２のシステムにおいて、分散的な制御構造は接続サーバーに動作可能な状態で接続された少なくともひとつのデータベースを有し、認証されたコンピュータと、クライアントコンピュータもしくは機器制御コンピュータの少なくともどちらか一方との間のコミュニケーション情報は、それらデータベースのうち少なくともひとつのデータベースに格納され、認証された他のユーザまた他のコンピュータにより後日の利用に供されることが可能なことを特徴とするシステム。
【請求項６７】
公衆ネットワークに動作可能な状態で接続された少なくともひとつの接続サーバーと、第１のファイアウォールの影響を受けない接続を第１のコンピュータと行う手段と、第２のファイアウォールの影響を受けない接続を第２のコンピュータと行う手段と、第１のコンピュータから第２のコンピュータへ２のファイアウォールの影響を受けないデータ送信を行う手段と、第２のコンピュータから第１のコンピュータへ第１のファイアウォールの影響を受けないデータ送信を行う手段とを備えた少なくともひとつの接続サーバーとを有する、それぞれ異なるコミュニケーショントラフィックの制限基準を有する２つ以上のファイアウォールによって守られた２つ以上のコンピュータ間で公衆ネットワークを介した安全なデータ転送を行う分散的な制御構造。
【請求項６８】
請求項６７の分散的な制御構造において、第１のコンピュータと第２のコンピュータの間に全２重接続を確立することを特徴とすることを特徴とする分散的な制御構造。
【請求項６９】
請求項６７の分散的な制御構造において、少なくともひとつの接続サーバーが、プライベートネットワーク内にあり、そのプライベートネットワークが接続サーバーのファイアウォールを介して、公衆ネットワークに動作可能な状態で接続されていることを特徴とする分散的な制御構造。
【請求項７０】
請求項６７の分散的な制御構造において、少なくともひとつの接続サーバーが、複数のクライアントコンピュータとともに、少なくともひとつのネットワーク接続可能な機器と接続された複数の機器制御コンピュータと、動作可能な状態で接続されていることを特徴とする分散的な制御構造。
【請求項７１】
請求項６７の分散的な制御構造において、少なくともひとつの接続サーバーが、その分散的な制御構造を有するネットワークに接続された複数の接続サーバー群より構成されており、この分散的な制御構造において、請求項６７の接続サーバーはプライマリ接続サーバーとして動作し、その他の接続サーバー群は、プライマリ接続サーバーへ対するセカンダリ接続サーバーとして動作することを特徴とする分散的な制御構造。
【請求項７２】
請求項７１の分散的な制御構造において、少なくともひとつの接続サーバーが、複数のクライアントコンピュータとともに、少なくともひとつのネットワーク接続可能な機器と接続された複数の機器制御コンピュータと、動作可能な状態で接続されていることを特徴とする分散的な制御構造。
【請求項７３】
請求項７１の分散的な制御構造において、プライマリ接続サーバーは負荷均一化アルゴリズムを有し、これによりセキュリティサーバーが、他のコンピュータによって開始されたコミュニケーションを、セカンダリ接続サーバーのひとつに割り当てる機能を有することを特徴とする分散的な制御構造。
【請求項７４】
請求項７１の分散的な制御構造において、接続サーバーそれぞれについて動作可能な状態で接続されたデータベースを有することを特徴とする分散的な制御構造。
【請求項７５】
請求項７１の分散的な制御構造において、複数のデータベースが接続サーバーに動作可能な状態で接続されており、  コンピュータのユーザに関するデータ、データベース内のコンピュータに関するデータ、および、コンピュータに接続されたネットワーク使用可能な機器に関するデータをデータベースに格納することを特徴とする分散的な制御構造。
【請求項７６】
請求項７１の分散的な制御構造において、すくなくともひとつの接続サーバーが、分散的な制御構造を有するネットワークに接続された複数の接続サーバー群より構成されており、この分散的な制御構造において、セキュリティサーバーが動作可能な状態で複数の接続サーバーに接続されているとともに、その分散的な制御構造が、複数のクライアントコンピュータと少なくともひとつのネットワーク接続可能な機器と接続された機器制御コンピュータとに、動作可能な状態で接続されていることを特徴とする分散的な制御構造。
【請求項７７】
請求項７６の分散的な制御構造において、セキュリティサーバーが、クライアントコンピュータもしくは機器制御コンピュータからの要求により、それらのクライアントコンピュータもしくは機器制御コンピュータを認証する手段を備え、また、その手段により、クライアントコンピュータもしくは機器制御コンピュータの認証データを受信し、そのデータに基づいて、クライアントコンピュータもしくは機器制御コンピュータのユーザを認証するか否かの決定を行うことを特徴とする分散的な制御構造。
【請求項７８】
請求項７７の分散的な制御構造において、セキュリティサーバーが、HTTPリクエスト形式でクライアントコンピュータもしくは機器制御コンピュータからの要求を受信することを特徴とする分散的な制御構造。
【請求項７９】
請求項７８の分散的な制御構造において、セキュリティサーバーが、クライアントコンピュータもしくは機器制御コンピュータから受信したHTTPリクエスト形式データに埋め込まれた認証データを分離することを特徴とする分散的な制御構造。
【請求項８０】
請求項７７の分散的な制御構造において、セキュリティサーバーはその暗号化されたユーザ認証データを解読する手段を有することを特徴とする分散的な制御構造。
【請求項８１】
請求項７７の分散的な制御構造において、セキュリティサーバーは、クライアントコンピュータもしくは機器制御コンピュータから接続サーバーへのデータ転送時に、認証データが改変されさたか否かを判断する手段を有することを特徴とする分散的な制御構造。
【請求項８２】
請求項７７の分散的な制御構造において、セキュリティサーバーが、コンピュータユーザが認証された場合にそのコンピュータのユーザに対して暗号化鍵を用意し、また、照合する手段を有することを特徴とする分散的な制御構造。
【請求項８３】
請求項７７の分散的な制御構造において、セキュリティサーバーが、クライアントコンピュータもしくは機器制御コンピュータを接続サーバーのひとつに割り当てる機能を有することを特徴とする分散的な制御構造。
【請求項８４】
請求項７７の分散的な制御構造において、セキュリティサーバーは負荷均一化アルゴリズムを有し、これによりセキュリティサーバーが、クライアントコンピュータまたは機器制御コンピュータによって開始されたコミュニケーションを、それらのコンピュータが認証された場合に接続サーバーのひとつに割り当てる機能を有することを特徴とする分散的な制御構造。
【請求項８５】
請求項８４の分散的な制御構造において、負荷均一化アルゴリズムは、ユーザ形式、セッション形式、接続サーバーが使用可能か否かの情報、および、接続サーバーの現在の負荷のうち少なくともひとつの情報に基づいて、コミュニケーションの割り当てを行うことを特徴とする分散的な制御構造。
【請求項８６】
請求項８４の分散的な制御構造において、負荷均一化アルゴリズムは、ユーザ形式、セッション形式、接続サーバーが使用可能か否かの情報、および、接続サーバーの現在の負荷の情報に基づいて、コミュニケーションの割り当てを行うことを特徴とする分散的な制御構造。
【請求項８７】
請求項８４の分散的な制御構造において、セキュリティサーバーは、コミュニケーションの確立後、さらに他のクライアントコンピュータもしくは機器制御コンピュータの少なくともどちらか一方との接続を確立する手段を有することを特徴とする分散的な制御構造。
【請求項８８】
請求項８７の分散的な制御構造において、セキュリティサーバーは、さらに他のクライアントコンピュータもしくは機器制御コンピュータの少なくともどちらか一方との接続を、認証されたコンピュータの要求に基づいて確立する手段を有することを特徴とする分散的な制御構造。
【請求項８９】
請求項８８の分散的な制御構造において、分散的な制御構造は、認証されたコンピュータと、クライアントコンピュータもしくは機器制御コンピュータの少なくともどちらか一方との間に全２重接続を確立することを特徴とする分散的な制御構造。
【請求項９０】
請求項７６の分散的な制御構造において、さらに、接続サーバーそれぞれについて動的に接続されたデータベースを有することを特徴とする分散的な制御構造。
【請求項９１】
ファイアウォールで防御された第１のプライベートアドレスを有する第１のコンピュータを認証する手段と、
その第１のコンピュータの認証後、公開されたアドレスを有する接続サーバーと第１のコンピュータとの間にファイアウォールの影響を受けない第１の接続を確立する手段と、公開されたアドレスを有する接続サーバーと第２のコンピュータとの間にファイアウォールの影響を受けない第２の接続を確立する手段と、
ファイアウォールの影響を受けない第１および第２の接続手段とにより、第１のコンピュータからのコミュニケーションを第２のコンピュータへ接続サーバーがルーティングするとともに、ファイアウォールの影響を受けない第２および第１の接続手段とにより、第２のコンピュータからのコミュニケーションを第１のコンピュータへ接続サーバーがルーティングを行うような、プライベート−公衆−プライベートといった経路を有するコミュニケーション経路を確立するような手段とを有する、プライベートアドレスへのコミュニケーション経路は少なくともファイアウォールで防御されているプライベート−公衆−プライベートといった経路を有しているようなコミュニケーション経路を確立する方法。
【請求項９２】
請求項９１の方法において、第１のコンピュータがクライアントコンピュータであり、第２のコンピュータが少なくともひとつのネットワーク接続可能な機器が動作可能な状態で接続された機器制御コンピュータであり、第１のコンピュータから第２のコンピュータへのコミュニケーションは、その少なくともひとつのネットワーク接続可能な機器に対する動作指令を含み、第２のコンピュータから第１のコンピュータへのコミュニケーションは、そのネットワーク接続可能な機器からその第２のコンピュータが受け取ったデータを含むことを特徴とする、コミュニケーション経路を確立する方法。
【請求項９３】
請求項９１の方法において、そのコミュニケーションは、HTTPリクエストとHTTPレスポンスから構成され、そのHTTPリクエストとHTTPレスポンスは、第１と第２のコンピュータへのコミュニケーションを行う場合、第１と第２のファイアウォールの影響を受けないことを特徴とする、コミュニケーション経路を確立する方法。
【請求項９４】
請求項９１の方法において、第１のコンピュータからのユーザ認証データを含むリクエストを接続サーバーが受信し、接続サーバーに保存された第１のコンピュータの認証データと受信した認証データが合致するか否かを決定する認証方法を有することを特徴とする、コミュニケーション経路を確立する方法。
【請求項９５】
請求項９４の方法において、ユーザ認証データはリクエストに埋め込まれ、さらに第１のコンピュータから接続サーバーへのデータ転送時に、認証データが改変されさたか否かを判断する手段を認証プロセスが有することを特徴とする、コミュニケーション経路を確立することを特徴とする方法。
【請求項９６】
請求項９４の方法において、認証データは暗号化され、認証プロセスは認証データ合致判断に先立って、暗号化された認証データを解読することを特徴とする、コミュニケーション経路を確立することを特徴とする方法。
【請求項９７】
請求項９６の方法において、当該認証ステップの後に、第１のユーザに対して、暗号化鍵を準備し、また暗号化鍵をベリファイすることを特徴とするコミュニケーション経路を確立することを特徴とする方法。
【請求項９８】
請求項９１の方法において、接続サーバーが、公衆ネットワークからアクセス可能なネットワークに接続された分散的な制御構造を有する複数の接続サーバーより構成されており、また、請求項９１の方法は、それらの複数の接続サーバーを第１と第２のファイアウォールの影響を受けない接続の確立のために割り当てを行う機能を有し、その割り当ては、第１のコンピュータによりリクエストされ確立されたセッション形式、特定のセッション形式用接続サーバーの設定、接続サーバーが使用可能か否かの情報、接続サーバーのステータス、当該セッション時の接続サーバーの負荷の情報のうち少なくともひとつの情報に基づいて決定されることを特徴とするコミュニケーション経路を確立する方法。
【請求項９９】
請求項９１の方法において、接続サーバーに接続された少なくともひとつのデータベースに、当該コミュニケーションの少なくともある一部分のデータを格納し、さらに第１のコンピュータ、第２のコンピュータ、や他のコンピュータなどアクセスを認められたコンピュータが、その格納されたデータにアクセス可能なことを特徴とするコミュニケーション経路を確立する方法。
【請求項１００】
請求項９９の方法において、当該コミュニケーションや、引き続き行われるコミュニケーションセッションの最中にも、その格納されたデータにアクセス可能なことを特徴とするコミュニケーション経路を確立する方法。
【請求項１０１】
ファイアウォールで防御された第１のプライベートアドレスを有する第１のコンピュータに関する認証データを準備し、公開鍵を用いてその認証データを暗号化し、公開されたサーバーに暗号化された認証データを含むリクエストを、公衆ネットワークを介して送信し、その暗号化された認証データを公開されたサーバーにおいてプライベートなセキュリティ鍵を用いて解読し、解読された認証データを用いてその認証データが認証ユーザのものであるか否かを決定し、その認証データが認証ユーザのものである場合第１のコンピュータユーザを認証し、第１のコンピュータのユーザに対して接続経路のセキュリティを確保しながらデータを送信可能なシークレットセキュリティ鍵を生成し、公開セキュリティ鍵を用いてシークレットセキュリティ鍵を暗号化し、その暗号化されたシークレットセキュリティ鍵を公開されたサーバーに送信し、その暗号化されたシークレットセキュリティ鍵を公開されたサーバーにおいてプライベートなセキュリティ鍵を用いて解読し、公開されたサーバーとファイアウォールで防御された第２のプライベートアドレスを有する第２のコンピュータとの間にファイアウォールの影響を受けない第２の接続を確立し、プライベート−公衆−プライベートといった経路を有するコミュニケーション経路を、第１のコンピュータと公開されたサーバーと第２のコンピュータとの間に確立することを特徴とする、プライベートネットワーク間やファイアウォールで防御された場所間において安全で高速なデータ転送を、公衆ネットワークを介して実現する方法。
【請求項１０２】
請求項１０１の方法において、公開されたサーバーを介して第１のコンピュータから第２のコンピュータへデータを転送する機能を有することを特徴とする安全で高速なデータ転送を、公衆ネットワークを介して実現する方法。
【請求項１０３】
請求項１０１の方法において、公開されたサーバーを介して第２のコンピュータから第１のコンピュータへデータを転送する機能を有することを特徴とする安全で高速なデータ転送を、公衆ネットワークを介して実現する方法。
【請求項１０４】
請求項１０３の方法において、第１のコンピュータと公開されたサーバーとの間に、また、公開されたサーバーと第２のコンピュータとの間に全２重接続を確立することを特徴とする安全で高速なデータ転送を、公衆ネットワークを介して実現する方法。
【請求項１０５】
請求項１０３の方法において、プライベート−公衆−プライベートといった経路を有するコミュニケーション経路を確立する際に送信されるデータはシークレット鍵を用いて暗号化されていることを特徴とする安全で高速なデータ転送を、公衆ネットワークを介して実現する方法。
【請求項１０６】
請求項１０３の方法において、第１のコンピュータから送信されたデータはシークレット鍵を用いて暗号化され、第２のコンピュータから送信されたデータは第２のコンピュータで生成されたシークレット鍵を用いて暗号化されていることを特徴とする安全で高速なデータ転送を、公衆ネットワークを介して実現する方法。
【請求項１０７】
請求項１０３の方法において、プライベート−公衆−プライベートといった経路を有するコミュニケーション経路を確立する際に送信されるデータは暗号化されていないことを特徴とする安全で高速なデータ転送を、公衆ネットワークを介して実現する方法。
【請求項１０８】
請求項１０２の方法において、第１のコンピュータから送信されたデータはシークレット鍵を用いて暗号化され、第２のコンピュータから送信されたデータはシークレット鍵を用いて暗号化されていることを特徴とする安全で高速なデータ転送を、公衆ネットワークを介して実現する方法。
【請求項１０９】
請求項１０２の方法において、プライベート−公衆−プライベートといった経路を有するコミュニケーション経路を確立する際に送信されるデータは暗号化されていないことを特徴とする安全で高速なデータ転送を、公衆ネットワークを介して実現する方法。
【請求項１１０】
請求項１０１の方法において、暗号化された認証データはリクエストに埋め込まれていることを特徴とする安全で高速なデータ転送を、公衆ネットワークを介して実現する方法。
【請求項１１１】
請求項１１０の方法において、リクエストにはHTTPリクエストであることを特徴とする安全で高速なデータ転送を、公衆ネットワークを介して実現する方法。
【請求項１１２】
請求項１０１の方法において、加えて、第１のコンピュータにおいて認証データのメッセージダイジェスト値を計算し、認証データとともにメッセージダイジェスト値を暗号化し、暗号化された認証データとメッセージダイジェスト値をリクエストに埋め込み、暗号化された認証データを解読するとともにメッセージダイジェスト値を解読し、解読された認証データのメッセージダイジェスト値を計算し、その計算されたメッセージダイジェスト値と、解読されたメッセージダイジェスト値を比較し認証データが改変されたかまたは破壊されたかを検証し、計算されたメッセージダイジェスト値と、解読されたメッセージダイジェスト値が一致する場合のみ認証プロセスを進めることを特徴とする安全で高速なデータ転送を、公衆ネットワークを介して実現する方法。
【請求項１１３】
請求項１０１の方法において、加えて、シークレット鍵のメッセージダイジェスト値を計算し、シークレット鍵とともにメッセージダイジェスト値を暗号化し、暗号化されたシークレット鍵とメッセージダイジェスト値を公開サーバーに送信し、解読においては、暗号化されたシークレット鍵を解読するとともにメッセージダイジェスト値を解読し、
解読されたシークレット鍵のメッセージダイジェスト値を計算し、その計算されたメッセージダイジェスト値と、解読されたメッセージダイジェスト値を比較しシークレット鍵が改変されたかまたは破壊されたかを検証し、計算されたメッセージダイジェスト値と、解読されたメッセージダイジェスト値が一致する場合のみ第２のコンピュータとのファイアウォールの影響を受けない接続の確立を進めることを特徴とする安全で高速なデータ転送を、公衆ネットワークを介して実現する方法。
【請求項１１４】
特定のセッションにおいて、公開された分散制御構造を通過するコミュニケーションの種類によって接続されるコンピュータのユーザ形式を決定し、さらにセッション形式を決定し、決定されたユーザ形式とセッション形式をその分散制御構造に接続された少なくともひとつのデータベースに収められたサーバー形式情報と比較し、そのサーバー形式情報に基づき、決定されたユーザ形式とセッション形式を扱うことのできるような接続サーバーを選択し、選択された接続サーバーが動作可能であるか否かを決定し、動作可能である場合、その接続サーバーが当該セッションの接続を行うにあたり十分な処理能力を有するか否かを判断し、また、さらに、その接続サーバーが動作可能でありまた当該セッションの接続を行うにあたり十分な能力を有する場合、その接続サーバーが当該セッションを取り扱うにあたり、条件を満たす複数のサーバーの中でもっとも適切な処理能力を有するか否かを、平均処理能力と利用率に基づいて決定することを特徴とする、複数のプライベートネットワーク内の複数のコンピュータが公衆回線を通したコミュニケーション確立のためにアクセス可能な公開分散制御構造におけるネットワークに接続された複数の接続サーバー間の負荷が均一化されたコミュニケーションを行える方法。
【請求項１１５】
請求項１１４の方法において、当該セッションに参加するコンピュータ間の接続確立において、動作可能でもっとも適当な処理能力レベルを有する接続サーバーを割り当てることを特徴とする負荷が均一化されたコミュニケーションを行える方法。
【請求項１１６】
公衆ネットワークに動作可能な状態で接続された接続サーバーに対して、その接続サーバーの公開されたアドレスへ第１のコンピュータからのリクエストを送ることによりアクセスを行い、第１のコンピュータと接続サーバーの間に安全な接続を確立し、その後、接続サーバーは第１のコンピュータから受け取った接続先コンピュータ選択に関する指示に従い少なくともひとつの第２のコンピュータとの間に安全な接続を確立し、
接続に関係する第１のコンピュータと第２のコンピュータのうちいかなるコンピュータも接続先、または接続元のプライベートアドレスを知ることがなく接続サーバーを介して安全、持続的な全２重接続を行うことを特徴とする、ファイアウォールで防御され、プライベートアドレスを有する少なくとも２つのコンピュータ間で、公衆ネットワークを介した接続をおこなう方法。
【請求項１１７】
請求項１１６の方法において、第１のコンピュータは第１のデータ制御プロセスを有し、第２のコンピュータは第２のデータ制御プロセスを有し、接続サーバーは第３のデータ制御プロセスを有し、接続サーバーを介して第１のコンピュータと第２のコンピュータ間の安全なコミュニケーションチャンネルの確立後、第１のデータ制御プロセスはアダプティブなデータ送信要求確認を、第１のコンピュータの送信バッファに対して行い、当該送信バッファ内に送られるべきデータがあるかどうかの判断を行い、データがある場合はそのデータを接続サーバーへのリクエストとともに接続サーバーへ送信することを特徴とする接続方法。
【請求項１１８】
請求項１１７の方法において、第３のデータ制御プロセスは第１のコンピュータに対して、リクエストが送信されたか否かを判断するためアダプティブなデータ送信要求確認を行い、リクエスト受信の際には、第３のデータ制御プロセスはそのリクエストを読み取り、リクエストに関する接続サーバーバッファ内の全てのデータをバッファし、第３のデータ制御プロセスはさらにアダプティブなデータ送信要求確認を、接続コンピュータの送信バッファに対して行い、当該接続サーバーの送信バッファ内に第１のコンピュータへ送られるべきデータがあるかどうかの判断を行い、データがある場合はそのデータを第１のコンピュータへのレスポンスとともに第１のコンピュータへ送信することを特徴とする接続方法。
【請求項１１９】
請求項１１８の方法において、第１のデータ制御プロセスはレスポンスを受信し、そのレスポンスに関する全てのデータをバッファし、第１のコンピュータへデータが到着した旨を知らせることを特徴とする接続方法。
【請求項１２０】
請求項１１９の方法において、そのプロセスステップを繰り返し実行することにより持続的な接続を維持することを特徴とする接続方法。
【請求項１２１】
請求項１１７の方法において、第３のデータ制御プロセスは接続サーバーの送信バッファに対して、その送信バッファ内に第２のコンピュータへ送信されるデータが有するか否かを判断するためアダプティブなデータ送信要求確認を行い、第２のコンピュータへ送信されるデータがある場合は、そのデータを第２のコンピュータへのレスポンスとともに第２のコンピュータへ送信することを特徴とする接続方法。
【請求項１２２】
請求項１１７の方法において、第３のデータ制御プロセスは第２のコンピュータに対して、リクエストが送信されたか否かを判断するためアダプティブなデータ送信要求確認を行い、リクエスト受信の際には、第３のデータ制御プロセスはそのリクエストを読み取り、リクエストに関する接続サーバーバッファ内の全てのデータをバッファし、第３のデータ制御プロセスはさらにアダプティブなデータ送信要求確認を、接続コンピュータの送信バッファに対して行い、当該接続サーバーの送信バッファ内に第２のコンピュータへ送られるべきデータがあるかどうかの判断を行い、第２のコンピュータへのデータがある場合はそのデータを、リクエストに対する接続サーバーへのレスポンスとともに接続サーバーへ送信することを特徴とする接続方法。
【請求項１２３】
請求項１２２の方法において、第２のデータ制御プロセスはレスポンスを受信し、そのレスポンスに関する全てのデータをバッファし、第２のコンピュータへデータが到着した旨を知らせることを特徴とする接続方法。
【請求項１２４】
請求項１２２の方法において、そのプロセスステップを繰り返し実行することにより持続的な接続を維持することを特徴とする接続方法。
【請求項１２５】
単数または複数のネットワーク接続可能な機器が単数または複数の異なるプライベートネットワーク内において動作可能な状態で接続され、かつ、単数またはクライアントコンピュータが単数または複数の異なるプライベートネットワーク内において動作可能な状態で接続され、少なくともそれらのプライベートネットワークのひとつはファイアウォールで防御されており、それらのネットワーク接続可能な機器を、公衆回線を介してそれらのクライアントコンピュータで遠隔的に操作する方法において、少なくともひとつのクライアントコンピュータが、少なくともひとつの動作可能な状態で公衆回線に接続された接続サーバーにアクセスし、そのクライアントコンピュータとその接続サーバー間の接続を確保し、その後、少なくともひとつの接続サーバーが、クライアントコンピュータから接続を行うよう指定されたネットワーク接続可能機器との接続を、ネットワーク接続可能機器に接続された機器制御コンピュータを介して確立し、その接続においては、接続に関係するいかなるコンピュータも接続先、または接続元のプライベートアドレスを知ることがなく接続サーバーを介した安全、持続的な全２重接続を行い、少なくともひとつのクライアントコンピュータから少なくともひとつのネットワーク接続可能機器へ少なくともひとつの接続サーバーを介して動作指令を送信し、少なくともひとつのネットワーク接続可能機器から少なくともひとつのクライアントコンピュータへのデータを少なくともひとつの接続サーバーを介して受信する接続方法。
【請求項１２６】
請求項１２５の方法において、複数のクライアントコンピュータが少なくともひとつのネットワーク接続可能機器に対して、その機器を協調的に操作するための制御指示を送信することを特徴とする接続方法。
【請求項１２７】
請求項１２５の方法において、単数もしくは複数のクライアントコンピュータが複数のネットワーク接続可能機器に対して、一点から多点にデータを送信する形式で、それらの機器を協調的に操作するための制御指示を送信することを特徴とする接続方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークへ接続可能な機器へのリモートアクセスを行うシステムおよび方法を提供するものであり、そのシステムおよび方法により、複数の利用者と複数の機器とのあいだに、シームレスかつファイアウォールの影響を受けない接続を提供し、また、複数の利用者が複数の遠隔操作可能な機器を協調的に操作すること可能とし、さらに、遠隔地における利用者と、遠隔操作可能な機器との間に、安全かつ迅速なデータの受け渡しを提供するものである。
【背景技術】
【０００２】
大量の情報がインターネットのような公共のコンピュータネットワークによって個人のコンピュータ使用者間でやり取りされており、また、その情報は継続的に増加しつつある。インターネットとインターネットで結ばれたコンピュータ群が形成するシステム一般について特に魅力的な点は、ユーザが実際の装置の操作を行うことなく、ネットワーク制御が可能な装置にアクセスし、またそれらの装置を実際に制御可能なことである。 このような遠隔的にアクセス可能な装置としては、例えば、監視カメラ、製造装置などが挙げられる。 コンピュータネットワークを介して遠隔操作可能な装置の操作を行うユーザには、個人ユーザに加えて、企業のイントラネットあるいはローカルエリアネットワークのような、プライベートネットワークを介して操作を行うような企業ユーザが想定される。
【０００３】
インターネットを介して装置へ遠隔的にアクセスするためにはこれまで多くの問題があった。
【０００４】
装置に遠隔的アクセスするためには、当該用途のために用意された専用のプライベートネットワークまたはバーチャルプライベートネットワーク（VPN）を用意する必要がある。それらのネットワーク内には当該用途のために用意されたインターネットとの通信を行う専用サーバーが必要であり、加えて、制御される装置とサーバー間の通信のためには、専用の電話線、デジタル加入者ライン（DSL）または類似の通信インターフェースが必要である。上述するようなシステムの設置および維持は高価な上に一般にさまざまな困難を伴うものであると言える。遠隔操作可能な装置への接続にはモデム接続が一般的であり、そのため装置と遠隔ユーザの間のデータ転送レートは一般的に低い。DSLや他のブロードバンド環境が遠隔操作可能な装置の操作に使用可能である場合でも、たとえば、ビデオ画像の転送や、大きなデータ容量を必要とする操作は実際には実行不可能であった。また装置の遠隔操作において、一人のユーザが操作中には、他のユーザが操作をすることは不可能であった。この問題は、特に、装置使用者と、その装置をサポートする者と、当該装置のいずれもが同一場所になく、加えて同時に遠隔的に当該装置へのアクセスが必要とされる場合においては致命的な問題であった。
【０００５】
インターネットを介する遠隔操作においては、特定のプライベートネットワークに属するユーザが、他の異なる種類のプライベートネットワークに属する装置を操作する場合が多い。インターネットを介して、異なるプライベートネットワーク間で情報のやり取りする場合、その特定のプライベートネットワークに属するコンピュータ内の情報のセキュリティ確保の問題が発生する。プライベートネットワークに接続されたコンピュータをインターネットに接続する場合、仮想的には全世界のいかなる場所より、無許可のアクセス、もしくは、意図的なコンピュータへの攻撃がなされ、その結果、内密とされるべきデータが開示されてしまうケースがありうる。ハッカーにより巧妙に仕組まれた、いわゆる“論理爆弾（Logic Bomb）”、“仕掛け扉（Trap Door）”、“トロイの木馬（Trojan horse）”、コンピュータウイルス、および、コンピュータワームなどは、セキュリティ上の脅威となっている。このようなソフトウエアは独立に、または、当該ソフトウエアによって呼び出されたホストソフトウエアを介して、不法にセキュリティ障壁を突破し、当該ネットワークの動作を阻害する。また、電子ファイルの破壊、データベースの破壊、コンピュータウイルスによるプライベートネットワークの障害、そのネットワークに接続されたコンピュータ自体およびそのネットワークに接続可能な機器の障害を引き起こし、その結果、損害を生じせしめる。
【０００６】
インターネットを介する悪意を持った侵入に対して、プライベートネットワークのセキュリティを確保するための方法としては、ハードウエア、もしくはソフトウエアとして実装された、ファイアウォールの使用が挙げられる。一般的にファイアウォールはプライベートネットワークと公共ネットワークの分岐点、つまり、ゲートウエイに設置される。ネットワーク管理者は、送受信トラフィックを選別することにより、特定のインターネットサービスが、プライベートネットワーク内の特定のユーザに対してのみ供給されるようにすることができる。外部からの侵入より、データを保護するために、ほとんどすべてのプライベートネットワークがファイアウォールを備え付けているのが現状である。
【０００７】
TCP/IP（トランスポートコントロールプロトコール、インターネットプロトコール、Transport Control Protocol  Internet Protocol）の層構造内のそれぞれの層に属するバイナリデータは、ファイアウォールによって検査可能である。その結果、トラフィックを制限するために、それぞれ個別に異なる基準を使用することが可能になっている。最上層、つまり、アプリケーション層からのバイナリデータは、たとえば、ツイストペアケーブル、光ファイバ、ワイヤレス接続といった物理層を含むすべての下層構造プロトコールとしてカプセル化されている。パケットフィルタリングファイアウォールは、インターネットプロトコール、つまりネットワークレイヤーにおいて使用されている。回路レベルゲートウエイはTCP、つまりセッションレイヤーにおいて動作しており、パケット間のTCPハンドシェイクをモニターすることにより、要求されたセッションが適正なものであるか否かを判断している。アプリケーションレベルゲートウエイ、つまりプロキシは個々の特定アプリケーションに対して使用される。アプリケーションレベルゲートウエイは、http：post、getといった、パケットフィルタリング、もしくは回路レベルゲートウエイでは不可能な、個々の特定アプリケーション固有のコマンドのフィルタリングが可能である。全状態多層検査ファイアウォールは上述した各種ファイアウォールの機能を統合しており、その結果、高度のセキュリティが確保されている。
【０００８】
プライベートネットワークのセキュリティを確保するためには、ファイアウォールの使用は概しては有用である。しかしながら、特に、性質の異なるプライベートネットワークが、インターネットを介して情報の受け渡しを行うソフトウエアが頻繁に使用される状況においては、ファイアウォールの実装にはいくつかの重要な欠点がある。さまざまな場所から、LANもしくはWANを経由して、ネットワークに接続可能な機器に対して、遠隔的な診断、校正、制御、モニターリングなどを行う機会はますます増加している。一例としては、科学者、もしくは技術者が、特定ファイアウォールによって保護されたプライベートネットワーク内にいながら、他のファイアウォールによって保護されたプライベートネットワーク内に存在するネットワーク接続可能な機器に対して接続を行い、データの取得、機器の調整、または他の作業を遠隔的に行うことを要請されるような場合である。個々のセキュリティ上の必要性や事業環境は個々のプライベートネットワークそれぞれにおいて異なるため、ファイアウォール自体もまた個々のプライベートネットワークそれぞれにおいて異なっている。このことが、性質の異なるプライベートネットワーク間のデータのやり取りに深刻な制限を課している。
【０００９】
この種の状況に対して共通の状況の一例としては、ある会社のプライベートネットワーク内でネットワーク接続可能な機器、または装置を使用する顧客が、その装置の校正を、装置を製作した会社のプライベートネットワーク内にいる熟練技術者に依頼する場合である。この場合、顧客のネットワーク接続可能な機器は、ファイアウォールを介して公共ネットワークに接続されており、そのため、その装置のネットワークアドレスは、公共ネットワークを介しては判別できない状況にある。その熟練技術者もまた、装置製造会社のファイアウォールを介して公共ネットワークに接続されているのが典型的な場合である。このため、その熟練技術者は外部のプライベートネットワークに接続することが不可能な状態にある。このように、保守を行う技術者は、ネットワーク接続可能な機器に対して公共ネットワークを介して接続をすることができない状況にある。この状況を容易に改善するのは困難である。なぜならば、ファイアウォールシステムには、しばしば異なるソフトウエア、もしくはハードウエアが使用されており、必要とされる接続やデータのやり取りを行えるよう改修することは容易に行うことができないからである。
【００１０】
LAN間において安全な接続を行える方法のひとつとして、仮想プライベートネットワーク（Virtual Private Network, VPN）の使用がある。しかしながら、そのようなVPNを使用するためには、高価でかつ複雑なソフトウエア、もしくはハードウエアを、ネットワークのアクセス場所に新たに設置する必要がある。さらにはVPNシステムを使用する場合、ネットワーク管理者は、当該ネットワークに接続する他のネットワークに対して、相互的なネットワークセキュリティ指針を遵守させる必要があるが、これは、多くの場合において困難が伴うものである。さらには、VPNシステムは現在なお発展途上の技術であり、複数のプライベートネットワークへのVPNを用いた同時接続は制限されている場合が多い。
【００１１】
このように、顧客と、遠隔地にあるネットワーク接続可能な機器との迅速かつ簡便な通信を可能にし、さらに、簡便かつ安価な、複数の利用者による遠隔操作可能な機器の協調的な使用を可能とし、また、ファイアウォールで保護されたプライベートネットワーク間の安全な接続を提供可能なシステムが要求されている。またこのシステムは、遠隔操作可能な機器が有する、遠隔診断、校正、制御およびモニターリング機能といった、今後発展が期待され、ますます重要となる機能と整合性を有している。本発明はこれらの必要性を満足するとともに、現存する技術における欠点を克服することが可能である。
【発明の開示】
【００１２】
発明の概要
本発明は、ネットワークへ接続可能な機器へのリモートアクセスを行うシステムおよび方法を提供するものであり、そのシステムおよび方法により、複数の利用者と複数の機器とのあいだに、シームレスかつファイアウォールの影響を受けない接続を提供し、また、複数の利用者が複数の遠隔操作可能な機器を協調的に操作すること可能とし、さらに、遠隔地における利用者と、遠隔操作可能な機器との間に、安全かつ迅速なデータの受け渡しを提供するものである。一般的にはこのシステムは、少なくともひとつの接続サーバー、公衆的もしくは大域的なネットワークを介して当該の接続サーバーに動作可能な状態で接続された少なくともひとつのクライアント、および、公衆的もしくは大域的なネットワークを介して当該の接続サーバーに動作可能な状態で接続された少なくともひとつのネットワーク接続可能な機器により構成される。当該の接続サーバーは、クライアントからの制御指令をネットワーク接続可能な機器へルーティングするとともにネットワーク接続可能な機器からクライアントへデータをルーティングする。
【００１３】
本発明はこの例に限定されるものではないが、一例として、本システムは、インターネットのような公衆的もしくは大域的なネットワークを介して、単独または複数の接続サーバーに動作可能な状態で接続された単独または複数のクライアントと、それら接続サーバーにインターネットを介して動作可能な状態で接続された単独もしくは複数のネットワーク接続可能な機器により構成される。クライアントは、単独もしくは複数のパーソナルコンピュータもしくは他のデータプロセッサにより構成されている。それらのパーソナルコンピュータもしくは他のデータプロセッサは、単独もしくは複数のプライベートネットワーク内にある。それらのプライベートネットワークは単独もしくは複数のネットワーク内サーバーを介して動作可能な状態でインターネットに接続されている。クライアントはそれらのプライベートネットワーク内にあってもよい。場合によっては、クライアントはモバイルネットワークの一部を構成するワイヤレスデータ処理機器で構成されてもよい。ネットワーク接続可能な機器は、コンピュータネットワークを経由して指令を受信しデータを送信可能なあらゆる種類の装置、もしくは部品から構成される。そのネットワーク接続可能な機器は単独または複数のプライベートネットワーク内にある。そのネットワーク接続可能な機器は内部にデータ処理能力を有する装置により構成されるが、パーソナルコンピュータのような外部のデータ処理プロセッサとともに使用されても良い。そのようなネットワーク接続可能な機器は、たとえば、科学技術用装置、化学反応装置、ビデオ監視装置、外科医療装置、発電機、家庭用セキュリティ装置、オフィス用セキュリティ装置、もしくは類似の装置であり、ネットワーク接続を介して、遠隔的に、制御、モニター、もしくは、作動させることが可能となるように設定されている。
【００１４】
接続サーバーは拡張可能な複数のサーバーモジュールにより構成されが、そのサーバーモジュール構成は複数のユーザが協調的に複数のネットワーク接続可能な機器に対して指令可能なように分散的な制御構造を有するものとなっている。この分散的な制御構造は、接続サーバーに動作可能な状態で接続された単独もしくは複数のデータベースからなっており、その接続サーバーは、利用者データ、機器制御に関するデータ、ユーザセキュリティに関するデータ、および、分散的な制御構造をモニターおよび動作させるために必要なデータの保守を行っている。この分散的な制御構造には、ユーザ認証のためのセキュリティサーバーとセキュリティデータベースが付加的に含まれても良い。また、必要な場合には、認証時にユーザにサーバーモジュールを割り振るために負荷均一化システムが含まれても良い。このシステムはネットワーク接続可能な機器の複数ユーザによる協調的な使用が可能なように、ユーザと実行プログラムいずれかの、もしくはユーザと実行プログラム両方の情報を考慮して負荷の均一化をはかる。
【００１５】
接続サーバーそれぞれは、複数の接続を実行する機能を有している。それらの接続実行機能は、複数のクライアントと、単独もしくは複数のネットワーク接続可能な機器との間の接続、もしくは、単独のクライアントと、単独もしくは複数のネットワーク接続可能な機器との間の接続、あるいは、単独のクライアントと単独のネットワーク接続可能な機器との間の接続を維持するよう設定されている。このように、接続サーバーにより、複数のクライアントから複数のネットワーク接続可能な機器への制御指示が協調的に振り分けられているとともに、複数のネットワーク接続可能な機器から、複数のクライアントへのデータも接続サーバーにより協調的に振り分けられている。この結果、複数のクライアントは、単独もしくは複数の遠隔地にある装置に接続サーバーを介した通信を行うことができる。
【００１６】
発明されたシステムおよび方法はファイアウォールによる影響を受けない。つまり、仮にプライベートネットワークの設定はそのネットワーク個々に異なっていたとしても、現存するファイアウォール、もしくはプロキシに変更を加えることなしに、ファイアウォールやプロキシもしくは両者により防御されたプライベートネットワーク内のネットワーク接続可能な機器に対してアクセスし、制御することが可能となる。また、ユーザ認証が行われユーザとネットワーク接続可能な機器間の接続が確立された後は、暗号化鍵のやり取りは不要となる。これにより、ユーザとネットワーク接続可能な機器間の接続サーバーを介して交換されるデータ量が減少し、ひいてはコンピュータの計算量を低減可能である。これに対して、現在の技術では、新規の指示命令、もしくは通信を行う毎に、暗号化鍵のやり取りが必要であり、これにより、データのやり取りが非常に低速となるのみならず、コンピュータの計算能力、および計算時間への負荷が多大なものとなってしまっている。
【００１７】
本システムは、少なくともひとつの接続サーバー、ファイアウォールにより防御された第1のプライベートネットワーク内にあるか、もしくは使用毎に付与される単独の接続アドレスを有し、公衆的もしくは大域的なネットワークを介して接続サーバーに動作可能な状態で接続する、少なくともひとつのクライアント、および、ファイアウォールにより防御された第２のプライベートネットワーク内にあるか、もしくは使用毎に付与される単独の接続アドレスを有し、公衆的もしくは大域的なネットワーク、あるいは、電話回線を介して接続サーバーに動作可能な状態で接続する、少なくともひとつのネットワーク接続可能な機器により構成される。接続サーバーはユーザと、個々プライベートネットワーク内のネットワーク接続可能な機器間の通信を確立するが、そのために接続サーバーは、個々プライベートネットワーク内のファイアウォールの影響を受けない上に、それぞれのプライベートネットワークに対して共通の通信プロトコールを使用する。
【００１８】
本発明はまた、ファイアウォールにより防御されたプライベートネットワーク内にあるネットワーク接続可能な機器とユーザとの間に、安全な通信接続を確立する方法を提供することができる。また、この方法はプライベートネットワークのファイアウォールシステムにより影響を受けない。本発明による方法は一般的に、ファイアウォールシステムにより保護された第1のプライベートネットワーク内にあるか、同システムで保護された接続アドレスを有するユーザに対する認証を行い、ついで、第２の、ファイアウォールシステムにより保護されたプライベートネットワーク内にあるネットワーク接続可能な機器とユーザとの間に接続チャンネルを確立する。以上の手順は公衆ネットワークに接続された接続サーバーを介して行われる。この接続チャンネルを確立するためには、ファイアウォールシステムと共通の、または、プライベートネットワークもしくは接続アドレスを保護するファイアウォールシステムによって影響を受けない通信プロトコールを使用する。以上に述べたように、プライベートおよび公衆ネットワークを横断して、ネットワーク接続を行うためには、それぞれ、各自のプライベートネットワーク内にあるユーザは、ファイアウォールシステムの影響を受けないネットワーク接続を確立することが必要であり、これは、中央接続サーバーにクライアントとして各ユーザが接続を行うことにより実現される。さらに本方法においては、ネットワーク接続可能機器へのユーザによる指示コマンドの送信、および、ネットワーク接続可能機器からユーザへのデータ送信は、接続サーバーによって行われている。また、ネットワーク接続可能機器からユーザへ送信されたデータは、当該ユーザもしくは他のユーザによって後日利用されるべくサーバーに保存されている。
【００１９】
接続サーバーは、たとえば会社のプライベートネットワーク内にあるネットワーク接続可能機器への接続において、情報の、受信、認証、および、ルーティングを行うよう設定されている。また、接続サーバーの接続ハンドリング機能と接続モニター機能により、信頼性の高いネットワーク接続と、データ転送状態のモニターおよび維持が可能となる。接続サーバーは、それぞれ異なる会社のプライベートネットワーク内にあるユーザとネットワーク接続可能機器との間の橋渡しを行うメディアとして作用している。つまり、ネットワーク接続可能な機器からユーザへ、また、ユーザからネットワーク接続可能な機器へ、ユーザからユーザへ、およびネットワーク接続可能な機器からネットワーク接続可能な機器への橋渡しを行うメディアとして作用している。ユーザおよびネットワーク接続可能な機器は単独であっても複数であっても良い。接続サーバーは、ネットワークとのインターフェース、または、他種のデータネットワーク接続手段を備えた標準的なサーバーコンピュータ内に実装可能である。接続サーバーは、また、HTTPまたは他の適当な形式によるクライアントからの要求を処理する機能を備えている。
【００２０】
現存するシステムに対して、本発明の有するプライベート公衆―プライベートといった接続を行うタイプのシステムと方法における利点としては以下が挙げられる。異なるプライベートネットワーク内にあるユーザ同士はデータ転送時において直接には接続していない。このため、それぞれのユーザおよびネットワーク接続可能な機器のアドレスは相互に秘匿されている。ハッカーによる公衆トネットワークを介する攻撃は主として接続サーバーのみに向けられる。このため、プライベートネットワーク内のデータはファイアウォールにより防御されており安全である。個々のユーザは接続サーバーのアドレスのみ知る必要があり、アクセスしているネットワーク接続可能な機器のアドレスや協調的に作業を行っている他のユーザのアドレスを知る必要はない。これにより、個々のユーザとネットワーク接続可能な機器が接続サーバーと接続を維持している限り、ユーザの居所とネットワーク接続可能な機器の設置場所が変わったとしても、ユーザはネットワーク接続可能な機器へのアクセスが可能となる。接続サーバーは多点的にデータを振り分ける働きをしているため、ユーザは複数の同タイプのネットワーク接続可能な機器へ指令を送ることが可能である。同時に他のユーザへも協調的作業を行うためのデータの送受信が可能である。本発明における、以上に述べたような、また、それら以外の優位点は以下に述べる発明の詳細において明らかにされる。
【発明を実施するための最良の形態】
【００２１】
発明の詳細な説明
ここに開示されるのは、ネットワーク接続可能な機器に遠隔アクセスし制御するシステムである、このシステムにより、シームレスな、そしてファイアウォールの影響を受けない接続を、複数のユーザと複数の機器との間に実現可能である。また、このシステムにより、複数のユーザが協調的に、遠隔地にある機器において作業可能となる。この発明の詳細を開示するに先立って、本発明は以下に示す、特定の実施例に限定されるべきものでなく、以下に示される実施例のバリエーションも、後に示される請求項の範疇にあることを理解せしめたい。さらに、使用される用語は、特定に実施例を説明するために使用されるものであり、その用語によるいかなる限定を意味するものではない。本発明の意味するところは、後述する請求項により明らかにされる。本説明において使用される定義群は、より明確な説明のために使用されるものであり、その用語によるいかなる限定を意図するものではない。使用される科学技術用語は本発明に関連する領域において標準的な技術を有する者によって意図されるものと同一の意味において用いられる。
【００２２】
本項において議論される開示項目は、本発明の申請日時に先立って開示されていることを示すために用いられている。つまり、それらが先に開示された発明であるというだけで、本発明がそれらに先行するものではないと認めうる解釈を示唆するものではない。本項において記載された開示日は、実際の開示日と異なることがあり、それらの開示日は個々に検証されるべきものである。本項において述べられる開示例は、当該開示例が引用された領域における、方法、システム、または他の関連項目を開示もしくは記述するための参考例として使用されている。
【００２３】
図１から図８に示される機器図もしくはフローチャートに本発明の実施例が示されている。図１から図８は図による本発明の説明のために使用されるものである。ここに開示される機器は、その使用形態、または部分の詳細に関しては変更されることがあり、また、フローチャート内の各事象の詳細、また順番も変更されることがあるが、それらの変更はここに開示される発明の基本から逸脱するものではない。本項において使用される用語は、特定に実施例の説明のために用いられるものである。本発明の理念は後述する請求項によりのみ限定されているため、用語の用例は限定を目的とするものではない。本発明は一例としてここに示された以外の各種のネットワーク化されたコンピュータシステムにおいて実施されることが可能である。本発明は、主にHTTPの使用を想定して記載されているが、他のデータ転送プロトコールの使用も可能である。本発明領域においては自明であるが、本発明における各種の部分構成品は、論理構成の多くを共通としており、同一または異なる電気回路に実装することができる。
【００２４】
図１にネットワーク接続可能な機器に遠隔アクセスし制御するシステム１０を発明に関連して述べる。システム１０は、単数もしくは複数のユーザコンピュータ１２ａ、１２ｂを含み、それらのコンピュータはインターネットのような、公衆もしくは広域ネットワーク１６を介して、接続サーバー１４に接続されている。また、システム１０には、18ａ、18bといった単数もしくは複数のネットワーク接続可能な機器が含まれており、それらも、動作可能な状態で、広域ネットワーク１６を介して、接続サーバー１４に接続されている。また図示されているように、プライベートコンピュータ１２ａ、１２ｂは第1のプライベートネットワーク内にありファイアウォール要素２２をとおして、広域ネットワーク１６に動作可能な状態で接続されている。第２のプライベートネットワーク２４内にネットワーク接続可能な機器18ａ、18bがあり、ファイアウォール要素２６をとおして、広域ネットワーク１６に動作可能な状態で接続されている。図１の実施例に関しては、接続サーバー１４はプライベートネットワーク２８内にあり、ファイアウォール要素３０をとおして広域ネットワーク１６に動作可能な状態で接続されている。
【００２５】
ユーザもしくはクライアントコンピュータ１２ａ、１２ｂは標準的なコンピュータにより構成される。それらのコンピュータとしては、ミニコンピュータ、マイクロコンピュータ、ＵＮＩＸ（登録商標）マシン、メインフレームマシン、インテル、アップル、サンなどのパーソナルコンピュータ（ＰＣ）もしくはそのクローンや、他のコンピュータがあげられる。クライアントコンピュータ１２ａ、１２ｂには、図示されない典型的なコンピュータ構成要素である、マザーボード、中央演算装置（ＣＰＵ），ランダムアクセスメモリ（ＲＡＭ）形態のメモリ、ハードディスクドライブ、ディスプレイアダプタ、ディスケットドライブ、ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ、ＣＤ−ＲＷ，ＤＶＤ−ＲＷ、フラッシュＲＯＭ、テープドライブ、ＰＣＭＣＩＡカードや他の取り外し可能なメディア、モニター、キーボード、マウスや他のインターフェース、モデム、ネットワークインターフェースカード（ＮＩＣ）、他の標準的な入出力デバイスを備える。多くの実施例においては、クライアントコンピュータ１２ａ、１２ｂは、デスクトップ、もしくは、タワーマシンで構成されるが、ポータブル、もしくはラップトップコンピュータ、ノートブックコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、もしくは“パームトップ“コンピュータ、タブレットコンピュータ、ウエブ閲覧機能を有する携帯電話、ウエブ閲覧機能を有する独立機能を持たないダム端末、ウエブＴＶや他のウエブ閲覧機能を有するネットワーク接続可能な機器からなるインターネット端末で構成されてもよい。
【００２６】
クライアントコンピュータ１２ａ、１２ｂはそのメモリ内に、図示されない、UNIX（登録商標）, WINDOWS98（登録商標）, WINDOWS ME（登録商標）, WINDOWS2000（登録商標）, LINUX、SystemＸ、AppleOSなどのオペレーティングシステムを有する。クライアントコンピュータ１２ａ、１２ｂはそのメモリ内に、図示されない、NETSCAPE NAVIGATOR, INTERNET EXPLORER, AOLといったウエブ閲覧ソフトウエアを有する。発明に関連しては、以下に詳しく述べるように、クライアントコンピュータ１２ａ、１２ｂはそのメモリ内に、ネットワーク接続可能な機器18ａ、18bに、接続サーバー１４をとおして指示を送り、接続サーバー１４からのレスポンスをとおしてデータを受け取る機能を実現するプログラミング３２を有する。
【００２７】
接続サーバー１４は標準的データ処理機器、もしくはコンピュータにより構成される。それらのコンピュータとしては、ミニコンピュータ、マイクロコンピュータ、ＵＮＩＸ（登録商標）マシン、メインフレームマシン、インテル、アップル、サンなどのパーソナルコンピュータ（ＰＣ）もしくはそのクローン、や、他のコンピュータがあげられる。
【００２８】
接続サーバー１４には、図示されない典型的なコンピュータ構成要素である、マザーボード、中央演算装置（ＣＰＵ），ランダムアクセスメモリ（ＲＡＭ）形態のメモリ、ハードディスクドライブ、ディスプレイアダプタ、ディスケットドライブ、ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ、ＣＤ−ＲＷ，ＤＶＤ−ＲＷ、フラッシュＲＯＭ、テープドライブ、ＰＣＭＣＩＡカードや他の取り外し可能なメディア、モニター、キーボード、マウスや他のインターフェース、モデム、ネットワークインターフェースカード（ＮＩＣ）、他の標準的な入出力デバイスを備える。以下に詳しく述べられるように、複数の接続サーバーを使用しても良い。
【００２９】
接続サーバー１４はメモリ内に、図示されない、UNIX（登録商標）, WINDOWS NT（登録商標）, NOVELL, SOLARIS,などのオペレーティングシステムか、ＮＥＣ用システムのような独自のオペレーティングシステムを備える。接続サーバー１４はまたメモリ内に、図示されないNETSCAPE, INTERNET INFORMATION SERVERTM (IIS)や他の適当なウエブサーバー機能を有し、クライアントコンピュータ１２からのＨＴＴＰもしくはウエブページ閲覧要求を取り扱うことができる。接続サーバー１４はまた、接続ハンドリングアレイ３４を有し、複数のクライアントコンピュータ１２と単数もしくは複数のネットワーク接続可能な機器18との間の複数の接続を確立することができる。それぞれの接続ハンドリングアレイ３４はクライアントコンピュータ１２からのリクエストとネットワーク接続可能な機器18からのレスポンスを読み取ることによって、クライアントコンピュータ１２とネットワーク接続可能な機器18との間の接続を維持している。このリクエストとレスポンスはＨＴＴＰ形式もしくは他の適当な通信プロトコールが使用される。本発明による方法が使用可能な接続サーバーの記載がＵＳＰ特許申請、シリアル番号09/454,178にありこれを参考例として挙げる。
【００３０】
プライベートネットワーク２４には、ネットワーク接続可能な機器18ａ、１８ｂがあり、それぞれは機器制御コンピュータ３６に動作可能な状態で接続されている。また、機器制御コンピュータ３６は広域ネットワーク１６に動作可能な状態で接続されている。プライベートネットワーク２４には、複数の機器制御コンピュータ３６があり、それぞれの機器制御コンピュータ３６ａ、３６ｂ、３６ｃは単数もしくは複数のネットワーク接続可能な機器18ａ、１８ｂをサポートできる。機器制御コンピュータ３６は、前述したような標準的な、ミニコンピュータ、マイクロコンピュータ、ＵＮＩＸ（登録商標）マシン、ＬＩＮＵＸマシン、メインフレームマシン、インテル、アップル、サンなどのパーソナルコンピュータ（ＰＣ）もしくはそのクローンや、他のコンピュータから構成される。機器制御コンピュータ３６は標準的データ処理機器、もしくはコンピュータにより構成される。それらのコンピュータとしては、ミニコンピュータ、マイクロコンピュータ、ＵＮＩＸ（登録商標）マシン、メインフレームマシン、インテル、アップル、サンなどのパーソナルコンピュータ（ＰＣ）もしくはそのクローン、や、他のコンピュータがあげられる。機器制御コンピュータ３６には、図示されない典型的なコンピュータ構成要素である、マザーボード、中央演算装置（ＣＰＵ），ランダムアクセスメモリ（ＲＡＭ）形態のメモリ、ハードディスクドライブ、ディスプレイアダプタ、ディスケットドライブ、ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ、ＣＤ−ＲＷ，ＤＶＤ−ＲＷ、フラッシュＲＯＭ、テープドライブ、ＰＣＭＣＩＡカードや他の取り外し可能なメディア、モニター、キーボード、マウスや他のインターフェース、モデム、ネットワークインターフェースカード（ＮＩＣ）、他の標準的な入出力デバイスを備える。機器制御コンピュータ３６ａ、３６ｂ、３６ｃは、図示されない、UNIX（登録商標）, WINDOWS98（登録商標）, WINDOWS ME（登録商標）, WINDOWS2000（登録商標）, LINUXなどか、もしくは独自ＯＳを備え、また、NETSCAPE NAVIGATORS, INTERNET EXPLORER, AOLといったウエブ閲覧ソフトウエアを備える。機器制御コンピュータ３６ａ、３６ｂ、３６ｃはまた、格納されたプログラム３８を有し、接続
サーバー１４を介してクライアントコンピュータ１２からの指示とネットワーク接続可能な機器18からのレスポンスを読み取ることができる。
【００３１】
ネットワーク接続可能な機器1８ａ、１８ｂはコンピュータネットワークを介して、指示を受け取り、データを送信することが可能な機器より構成される。そのような機器の実施例としては、たとえば、科学技術用装置、化学反応装置、ビデオ監視装置、外科医療装置、発電機、家庭電気機器、製造生産装置、オフィス用セキュリティ装置、もしくは類似の装置、遠隔制御可能な機器の制御、監視、もしくは遠隔制御を行う電気的制御モジュール、が挙げられる。機器制御コンピュータ３６ａ、３６ｂ、３６ｃについては、複数のネットワーク接続可能な機器1８ａ、１８ｂが制御可能である。ネットワーク接続可能な機器1８ａ、１８ｂはいわゆる“プラグアンドプレイ”機器であり、機器制御コンピュータ３６ａ、３６ｂ、３６ｃ自体の動作に影響を与えることなしにコンピュータ３６ａ、３６ｂ、３６ｃ自体に接続が可能である。もしくは、ＵＳＢ，ＩＥＥＥ１３９４，ＦＩＲＥＷＩＲＥ，ＲＳ２３２Ｃ，パラレル、ＰＣＩといったようなインターフェースで機器制御コンピュータ３６ａ、３６ｂ、３６ｃに接続される。
【００３２】
プライベートネットワーク２０、２４、２８は、企業内ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトポリタンエリアネットワーク（ＭＡＮ）や他の、私的、または広域でないネットワークからなる。プライベートネットワーク２０には図示されない単数もしくは複数の内部サーバーを含み、この内部サーバーが、ファイアウォール２２をとおして、クライアントコンピュータ１２ａ、１２ｂと広域ネットワーク１６の間の通信を制御している。クライアントコンピュータ１２ａ、１２ｂはプライベートネットワーク２０内で、スタートポロジ、バストポロジ、トークンリングなどの形式で配置される。広域ネットワーク１６への接続は、ＤＳＬ，ＩＳＰ経由のモデムと電話回線、ワイヤレス接続、衛星接続、赤外線通信などで行われる。プライベートネットワーク２４は、図示されない内部サーバーを含み、単数もしくは複数のプライベートネットワークサーバーには機器制御コンピュータ３６ａ、３６ｂ、３６ｃが接続されているとともに、広域ネットワーク１６へ、ＤＳＬ，ＩＳＰ経由のモデムと電話回線、ワイヤレス接続、人工衛星接続、赤外線通信などで接続されている。
【００３３】
ファイアウォール要素２２，２６，３０には、ソフトウエアもしくはハードウエア、あるいはソフトウエアとハードウエアの形で組み込まれたセキュリティ要素からなり、プライベートネットワーク２０、２４、２８へ出入りする情報の、フィルタリング、制限、もしくは制御を行っている。ファイアウォール要素には、例えば、パケットフィルタリングファイアウォール、回路レベルゲートウエイ、特定の命令をフィルタするプロキシ、全ステート多層検査ファイアウォール、ネットワークアドレストランスレータ（ＮＡＴ）などがあり、これにより、プライベートネットワーク内で複数のＩＰアドレスを使いながらも、外部からは特定のＩＰアドレスが必要となり安全性が向上する。これらに加えて、情報を制限し、安全性を向上するソフトウエアが併用されてもよい。
【００３４】
図1に示されるシステム１０は本発明において使用される、ネットワーク化されたコンピュータシステムの多数の例の中の一例である。簡単のために、プライベートネットワーク２０中にクライアントコンピュータ１２ａ、１２ｂは２個のみ、プライベートネットワーク２４中に機器制御コンピュータ３６ａ、３６ｂ、３６ｃのみが示されている。システム１０中にはこれら以外のプライベートネットワーク、機器制御コンピュータ、ネットワーク接続可能な機器が含まれても良い。さらには、クライアントコンピュータとネットワーク接続可能な機器は同一のプライベートネットワーク中に合っても良い。このほか多くの変化例にも応用可能である。
【００３５】
システム１０の動作にあたっては、クライアントマシン１２のユーザは、広域ネットワーク１６を経由して、接続４０を確立する。接続サーバー１４は、機器制御コンピュータ３６とネットワーク接続可能な機器１８への接続４２を、広域ネットワーク１６を経由して確立する。クライアントプロセス３２と機器制御コンピュータプロセス３８は、ファイアウォールに影響されないＨＴＴＰ形式のリクエストを、接続サーバー１４を介して、お互いに送ることができる。ネットワーク接続可能な機器１８ａ、１８ｂへのユーザからの指令、および機器からのデータはＨＴＴＰ形式のリクエストとレスポンスとして実装する。接続サーバー１４のプロセス３４がこれらをつかさどる。接続サーバー１４を介してネットワーク接続可能な機器１８ａ、１８ｂへの接続が行われるため、クライアントマシン１２のユーザへネットワーク接続可能な機器１８ａ、１８ｂのＩＰアドレスが開示されることはないし、また、ネットワーク接続可能な機器１８ａ、１８ｂのＩＰアドレスがクライアントマシン１２のユーザへ開示されることもない。さらに、大部分のファイアウォールやプロキシはＨＴＴＰリクエストを受け付けるため、シームレスな、そしてファイアウォールの影響を受けない接続を確立することができる。
【００３６】
以下に述べるように、クライアントコンピュータ１２ａ、１２ｂと接続サーバー１４の接続には安全な接続の確立のために認証が必要になる。またネットワーク接続可能な機器１８ａと１８ｂとの間の接続にも認証が必要になる。クライアントコンピュータ１２ａ、１２ｂと接続サーバー１４の安全な接続の確立と、接続サーバー１４とネットワーク接続可能な機器１８ａと１８ｂとの間の安全な接続の確立後は、以降のＨＴＴＰ形式のリクエストとレスポンスは暗号化される必要はない。これにより、クライアントコンピュータ１２ａ、１２ｂとネットワーク接続可能な機器１８ａと１８ｂとの間のデータのやり取りに要するコンピュータの計算能力を大幅に削減できる。なぜなら、セキュリティの確立はクライアントコンピュータ１２ａ、１２ｂとネットワーク接続可能な機器１８ａと１８ｂとの間の接続時に行われるので、以降のＨＴＴＰ形式に埋め込まれたリクエストとレスポンスは安全な接続経路をとおして、暗号化されて送られてもよいし、暗号化なしに送られてもよいからである。情報が暗号化されて送られる場合でさえも、新たなセキュリティ鍵がデータの送受信のたびに必要とはならない。以上により、クライアントコンピュータ１２ａ、１２ｂと、例えば、監視カメラ映像のリアルタイムモニターリング、遠隔医療応用、発電機、生産設備プロセス、遠隔生産、スマートホームコントロール、オフィス用機器遠隔遠隔操作、といった、高速なデータ転送が供給される、ネットワーク接続可能な機器１８ａと１８ｂとの間にインターネットを介した安全で高速なデータ転送が可能になる。これに対して、現在の技術では、新規の指示命令、もしくは通信を行う毎に、暗号化鍵のやり取りが必要である。認証と暗号化情報の解読をデータのやり取り毎に行っており、コンピュータの計算能力、および計算時間への負荷が多大なものとなってしまっている。その結果、安全な情報のリアルタイム伝達効率が非常に低下している。
【００３７】
大部分のファイアウォールやプロキシはＨＴＴＰに対応しているため、本実施例においては、ネットワーク接続可能な機器１８ａ、１８ｂとクライアントコンピュータ１２ａ、１２ｂのあいだのバイナリデータのやり取りがＨＴＴＰを利用して行われている。しかしながら、ファイアウォールやプロキシが受け付ける限り、他のプロトコールの使用も可能である。本発明による方法が使用可能な他のプロトコールの記載がＵＳＰ特許申請、シリアル番号09/454,178にありこれを参考例として挙げる。
【００３８】
プライベートネットワーク２０内の複数のクライアントコンピュータ１２ａ、１２ｂや、図示されない、他のプライベートネットワーク内のクライアントコンピュータは同時にネットワーク接続可能な機器１８ａ、１８ｂとの接続を行う、また、ネットワーク接続可能な機器１８ａ、１８ｂは協調的作業を行うため同一のものが複数あってもよい。プライベートネットワーク２８内のサポート担当者４４も接続サーバー１４を介して、クライアントコンピュータ１２ａ、１２ｂからアクセスが行われている、単数もしくは複数のネットワーク接続可能な機器１８ａ、１８ｂへ接続できる。例えばクライアントコンピュータ１２ａ、１２ｂのユーザはネットワーク接続可能な機器１８ａ、１８ｂの顧客と販売業者の関係にあり、購入者と販売者が、ネットワーク接続可能な機器１８ａ、１８ｂの購入に際して、同時に、安全に、協調的に接続サーバー１４を通して、広域ネットワーク１６を介した作業が行える。
【００３９】
図2に本発明に関する、遠隔アクセス制御システムに関する他の実施例を示す。システム４６は分散制御構造を有し、複数の接続サーバー１４ａ、１４ｂ、１４ｃ、１４ｄ、１４ｅ、１４ｆ、１４ｇ、１４ｈ、１４ｎを有する。接続サーバー１４ａ-ｎは図1の接続サーバーに示されたものと同一コンポーネントとソフトウエアを有する。図示されたように接続サーバー１４ａはプライマリ接続サーバーとして機能し、１４ｂ-ｎは接続サーバー１４ａに動作可能な状態で接続されている。
【００４０】
接続サーバー１４ａは動作可能な状態でクライアントコンピュータ１２ａ、１２ｂ、１２ｃ、１２ｎとネットワーク接続可能な機器１８ａ、１８ｂ、１８ｃ、１８ｄ、１８ｅ、１８ｆ、１８ｇ、１８ｎへ、インターネットもしくは他の広域ネットワークにより接続されている。クライアントコンピュータ１２ａ-ｎは、図１に示された、クライアントプロセスプログラム３２を有し、機器制御コンピュータ３６ａ-ｎは図１に示された、機器制御プログラム３８を有する。本システムの作動中、クライアントコンピュータ１２ａ-ｎは接続サーバー１４ａに接続する。接続サーバー１４ａはクライアントユーザを、負荷均一化プログラム５０に基づく負荷均一化アルゴリズムにより、それぞれの接続サーバー１４ｂ-ｎに割り振る。接続サーバー１４ｂ-ｎの割り振りに関する負荷均一化は、ユーザ認証の際に行われてもよい。図１に示したように、クライアントコンピュータ１２ａ-ｎは、図示されない、それぞれに異なるファイアウォールによって防御された、異なるプライベートネットワーク内にあってもよい。同様に、機器制御コンピュータ３６ａ-ｎと対応するネットワーク接続可能な機器１８ａ-ｎは、図示されない、それぞれに異なるファイアウォールによって防御された、異なるプライベートネットワーク内にあってもよい。
【００４１】
分散制御構造を有するシステム４６は、スケーラブルであり、クライアントコンピュータ１２ａ-ｎ、機器制御コンピュータ３６ａ-ｎおよびネットワーク接続可能な機器１８ａ-ｎの機能と個数により、また、クライアントコンピュータ１２ａ-ｎとネットワーク接続可能な機器１８ａ-ｎのあいだの通信の性質により設定を変えることが可能である。接続サーバー１４ａ-ｎはモジュラー構造を有するため、クライアントコンピュータ１２ａ-ｎとネットワーク接続可能な機器１８ａ-ｎの数が増えた場合でも良い、図示されないさらなる接続サーバー数の増加により接続を確保することができる。
【００４２】
この分散制御構造はデータベース５２ａ、５２ｂ，５２ｎを有しており、それぞれのデータベースは動作可能な状態でそれぞれの接続サーバー１４ａ-ｎに接続されている。接続サーバー１４ａ-ｎは、ＳＱＬ，ＤＢ２といった、図示されないデータベース管理プログラムを有し、データベース５２ａ-ｎに関するデータを読み書きできる。接続サーバー１４ａ-ｎは、図示されない単数もしくは複数のデータベースサーバーを経由して動作可能な状態でデータベース５２ａ-ｎに接続している。
【００４３】
データベース５２ａ-ｎはクライアントマシン１２ａ-ｎのユーザに関する、また、ネットワーク接続可能な機器１８ａ-ｎに関する、さらには、接続サーバー１４ａ-ｎに関する情報を保持している。様々なネットワーク接続可能な機器１８ａ-ｎに関する情報はデータベース５２ａ-ｎに単数もしくは複数の制御セッション時に蓄積される。この蓄積されたデータは、以降のセッション時にクライアントマシン１２ａ-ｎのユーザが利用可能である。ネットワーク接続可能な機器１８ａ-ｎから得られたデータは企業顧客ソフトウエアソリューションとして利用可能である。先に述べられたように、クライアントマシン１２ａ-ｎのユーザは多くの場合において、ネットワーク接続可能な機器１８ａ-ｎに関して顧客と販売業者の関係にある。蓄積されたデータは企業のリソース管理、顧客管理、販売計画管理などのビジネスソフトウエアソリューションとして利用可能である。クライアントマシン１２ａ-ｎのユーザとネットワーク接続可能な機器１８ａ-ｎのオーナーは、システム４６をサービス購買形式において本システムを利用することも可能である。つまり、ユーザとオーナーは、一回または複数回本サービスを購買する。ユーザとオーナーはネットワーク接続可能な機器１８ａ-ｎへの安全な接続が保障されるとともに、データベース５２ａ-ｎに蓄積されたデータへのアクセスが可能となる。
【００４４】
本発明における アクセス制御システム５４の他の例を図3に示す。図3中の番号は各パーツなどに対応する。アクセス制御システム５４は分散制御構造５６とセキュリティサーバー５４を備える。複数の接続サーバー１４ａ、１４ｂ、１４ｃ、１４ｄ、１４ｅ、１４ｆ、１４ｇ、１４ｈ、１４ｎは、動作可能な状態で、セキュリティサーバー５８と複数のデータベース５２ａ、５２ｂ，５２ｎに接続されている。セキュリティサーバー５８は、動作可能な状態で、クライアントコンピュータ１２ａ、１２ｂ、１２ｃ、１２ｎ、機器制御コンピュータ３６ａ、３６ｂ、３６ｃ、３６ｄ、および、ネットワーク接続可能な機器１８ａ、１８ｂ、１８ｃ、１８ｄ、１８ｅ、１８ｆ、１８ｇ、１８ｎへ、インターネットもしくは他の広域ネットワークにより、前述された方法によって接続されている。クライアントコンピュータ１２ａ-ｎは、クライアントプロセスプログラム３２を有し、機器制御コンピュータ３６ａ-ｎは機器制御プログラム３８を有する。分散制御構造を有するシステム５６は、スケーラブルであり、システム５４内のクライアントコンピュータ、機器制御コンピュータ、およびネットワーク接続可能な機器１８の、それぞれの個数により、設定を変えることが可能である。必要な場合システム５６内にはセキュリティサーバー５８があってもよい。
【００４５】
システム５４の動作中に、ネットワーク接続可能な機器１８ａ-ｎへ接続を、インターネットを介して行うために、クライアントコンピュータ１２ａ-ｎのユーザはセキュリティサーバー５８にコンタクトを行う。
【００４６】
セキュリティサーバー５８は、セキュリティもしくは認証プログラム６０を備え、クライアントコンピュータ１２ａ、１２ｂとネットワーク接続可能な機器１８ａと１８ｂとの間の接続の確立に先立って、クライアントコンピュータユーザの認証を行う。セキュリティサーバー５８は、内包される負荷均一化プログラム５０により、負荷均一化基準に基づいて、クライアントコンピュータ１２ａ-ｎとネットワーク接続可能な機器１８ａ-ｎを、接続サーバー１４ａ-ｎへ割り振る。
【００４７】
図１，２、３示された本発明におけるシステムは、他の各種のネットワークコンピュータシステムにおいても実施可能である。ソフトウエアの観点から見れば、本発明は本質的に高度な分散性を有しており、ソフトウエアは図１，２、３示された特定のコンピュータ内にある必要はない。よって、クライアントアプリケーション３２と機器制御アプリケーション３６の一部は、接続サーバー１４ａ-ｎ、セキュリティサーバー５８、もしくは図示されない他のサーバー内にあってよい。これらのサーバーはクライアントコンピュータ１２ａ-ｎやネットワーク接続可能な機器１８ａ-ｎにより、インターネットを介して接続が行われる。
【００４８】
本発明における アクセス制御システム５４は図3とともに図４を参照することによりさらに詳細に理解される。図４内の各イベントは、クライアントコンピュータ１２ａ-ｎと機器制御コンピュータ（Ｄｅｖｉｃｅ  Ｃｏｎｔｒｏｌ  Ｃｏｍｐｕｔｅｒ、ＤＣＣ）３６ａ-ｎの両方に適用される。図４内および他のフローチャートに記載される各イベントは、クライアントコンピュータ１２ａ-ｎ、もしくは機器制御コンピュータ３６ａ-ｎのいずれか、もしくは両方が関与するイベントが発生するような、フローチャート内の相当場所に記されている。簡単のために、しかしながら、図４内の各イベントはクライアントコンピュータ１２ａ-ｎが使用される場合を主として記載されている。図４内の各イベントは機器制御コンピュータ３６ａ-ｎが実行する場合があるのももちろんである。さらには、複数のクライアントコンピュータ１２ａ-ｎが、同時的に複数の機器制御コンピュータ３６ａ-ｎと、複数のネットワーク接続可能な機器１８ａ-ｎにより、接続サーバー１４ａ-ｎを介して接続が行われる場合もあり、以降の記述においては、複数のクライアントコンピュータ１２ａ-ｎ、接続サーバー１４ａ-ｎ、および、ネットワーク接続可能な機器１８ａ-ｎを、それぞれ、クライアントコンピュータ１２の集合、接続サーバー１４の集合、および、ネットワーク接続可能な機器１８の集合として記載する。
【００４９】
イベント４００の発生時には、分散制御構造を有するシステム５６におけるセキュリティサーバー５８にクライアントコンピュータ１２ａ-ｎがコンタクトする。このコンタクトには、クライアントコンピュータ１２ａ-ｎとセキュリティサーバー５８の間のＴＣＰソケット接続の確立による、一般的な方法にて行われる。
【００５０】
クライアントコンピュータ１２ａ-ｎのユーザがイベント４００の発生時に認証されたか否かを、イベント４１０の発生時に、セキュリティサーバー５８が判断する。ユーザ認証イベント４１０においては、クライアントコンピュータ１２ａ-ｎ内のクライアントアプリケーション３２がユーザ認証情報を含むＨＴＴＰリクエスト送信を行う。リクエストに埋め込まれたユーザ認証情報は暗号化されてもよい。認証情報にはユーザ名とパスワード情報、とともに、ユーザが接続を確立しようとする特定のネットワーク接続可能な機器１８ａ-ｎのＩＤ情報が含まれる。セキュリティサーバー５８内の認証アプリケーション６０は、クライアントコンピュータ１２ａ-ｎからの送信中に認証情報が改ざんされたかどうか、また、クライアントコンピュータ１２ａ-ｎを認証情報により認証可能かどうかを検証する。この認証が拒否された場合、イベント４００が繰り返される。セキュリティサーバーからクライアントコンピュータ１２ａ-ｎのユーザへ、セキュリティエラーであるためネットワーク接続可能な機器１８ａ-ｎへ接続が拒否された旨のＨＴＴＰ形式による返信がされる。イベント４１０においてクライアントコンピュータ１２ａ-ｎが認証された場合、暗号化鍵が準備され、それらのユーザのために暗号化鍵の認証が行われる。ついでユーザ認証イベント４２０が行われる。この認証イベントと本アクセス制御システム５４のセキュリティ面に関しては、図５に示されたフローチャート参照しながらさらに詳細に説明を行う。
【００５１】
イベント４２０において、セキュリティサーバー５８は、接続サーバー１４ａ-ｎのうちのひとつを、ユーザ認証イベント４１０において認証されたクライアントコンピュータ１２ａ-ｎのユーザに割り当てる。セキュリティサーバー５８の負荷均一化プログラム５０によって接続サーバー１４ａ-ｎの割り当てがなされる。接続サーバー１４ａ-ｎのユーザへの割り当ては、ユーザが確立しようとするセッションの種類、また、ユーザが確立しようとするセッションをサポートできる接続サーバーの状態と利用可能性、および接続サーバー１４ａ-ｎの負荷を鑑みて決定される。本発明における負荷均一化に関しては、図６に示されたフローチャート参照しながらさらに詳細に説明を行う。
【００５２】
イベント４３０において、イベント４２０において割り当てがなされた接続サーバー１４ａ-ｎと、イベント４１０で認証されたユーザにより選択されたネットワーク接続可能な機器１８ａ-ｎとの間に接続が確立される。本接続は、ユーザにより選択されたネットワーク接続可能な機器１８ａ-ｎとセキュリティサーバー58の間のＴＣＰソケット接続により実行される。
【００５３】
イベント４４０において、クライアントコンピュータ１２ａ-ｎはネットワーク接続可能な機器１８ａ-ｎに向けて操作指令またはコマンドを送信する。イベント４５０において、ネットワーク接続可能な機器１８ａ-ｎはクライアントコンピュータ１２ａ-ｎに向けてデータを送信する。全二重接続の場合にはこれらのイベントは同時に発生してもよい。クライアントコンピュータ１２ａ-ｎのクライアントプロセス３２は、接続サーバー１４ａ-ｎへ、指令データが埋め込まれたＨＴＴＰリクエストを周期的に送信する。機器制御コンピュータ３６ａ-ｎの機器制御プログラム３８は、接続サーバー１４ａ-ｎへ、ネットワーク接続可能な機器１８ａ-ｎからのデータが埋め込まれたＨＴＴＰリクエストを周期的に送信する。これらのプロセスは、接続サーバー１４ａ-ｎのプロセス３４により実行される。プロセス３４は、クライアントコンピュータ１２ａ-ｎからのデータが埋め込まれたＨＴＴＰリクエストを、機器制御コンピュータ３６ａ-ｎに送信する。機器制御コンピュータ３６ａ-ｎ内のプロセス３８はＨＴＴＰレスポンスから指令データを読み出し、機器１８ａ-ｎと通信を行う。同様に、プロセス３４は、機器１８ａ-ｎからのデータを含んだＨＴＴＰレスポンスをクライアントコンピュータ１２ａ-ｎへ送信し、プロセス３２がこれを読み出す。イベント４４０および４５０におけるクライアントプロセス３２、機器制御プロセス３８、および接続サーバープロセス３４は、図７、８に示されたフローチャート参照してさらに詳細に説明される。
【００５４】
イベント４６０において、ネットワーク接続可能な機器１８ａ-ｎ（もしくはクライアントコンピュータ１２ａ-ｎ）からのデータはデータベース５２ａ-ｎに格納される。データは他の認証されたユーザ、または、後に行われるセッションにおいて使用される。
【００５５】
前述したように、図４のイベントは双方向的である。つまり、機器制御コンピュータ３６ａ-ｎがまずセキュリティサーバー５８にコンタクトし、認証を得、接続サーバー１４ａ-ｎに割り当てられた後、単数もしくは複数のクライアントコンピュータ１２ａ-ｎや、単数もしくは複数のネットワーク接続可能な機器１８ａ-ｎに接続されてもよい。さらには、図４のイベントは、まず第1のクライアントコンピュータ１２ａ-ｎと、その他のクライアントコンピュータ１２ａ-ｎとの間になされてもよい。この場合、その他のクライアントコンピュータ１２ａ-ｎには、単数もしくは複数の機器制御コンピュータ３６ａ-ｎとの接続がなされていてもよいし、また、なされていない場合でもイベントの実行が可能である。ある場合には、セキュリティサーバー５８を使用せずに、負荷均一化および認証プログラムが単数もしくは複数の接続サーバー１４ａ-ｎにおいて実行される場合もある。また、図１に示されたような単独の接続サーバーが使用される場合、認証アプリケーション６０と、負荷均一化プログラム５０はその接続サーバー内にあり、当該接続サーバーが更なるアプリケーションの実行に起因する負荷に対応可能かどうかを、負荷均一化プログラム５０が判断する場合もある。また、ある場合には、負荷均一化および認証プログラムは省略されても良い。各イベントの相対的実行順序には、非常に多種の変形例があり、現有技術において様々な形で実装されるものであるが、それらの変形例も本発明開示の範疇として考えられるべきものである。
【００５６】
本発明におけるシステムと方法は、安全で高速なデータ転送を、複雑な暗号化をＨＴＴＰリクエストごとに行うことなく、リモートユーザと機器との間にインターネットを介して実現できる。これにより、前例のない、安全なデータストリームのリアルタイム転送が可能となる。また、データ送受信の最後にリモートユーザと機器との間で共通認識可能なセキュリティプロトコールを付与することなく、安全にネットワーク接続可能な機器のリモート操作が可能となる。安全なデータ転送には暗号化が大きな役割をはたしている。現在の鍵ベースの暗号化では、計算機暗号化アルゴリズムとバイナリ暗号化鍵を用いて、データは解読不可能な形式にスクランブルされる。このスクランブルデータは暗号化鍵と関連性を有する解読鍵によって解読される。現在の鍵ベースの暗号化では、暗号化および解読アルゴリズムは周知であるが、解読鍵、またある場合には暗号化鍵は秘密にされる。よって、そのような暗号化アルゴリズムの強靭度は鍵の長さによって決定される。典型的には、鍵に使用されるデータのバイナリビット長が用いられる。例えば、４０ビットの長さの鍵を使用する場合１０９９５１１６２７７７６種類の鍵が使用可能である。
【００５７】
インターネットにおいて送受信される鍵を用いる暗号化は、シークレット鍵（対称）暗号化もしくはパブリック鍵（非対称）暗号化の2種の暗号化が主に用いられている。シークレット鍵（対称）暗号化の場合、暗号化と解読には共通の鍵が使用されるため、この共通の鍵は送信者、受信者とも秘密にしておく必要がある。このシステムでは、送信者受信者間に、鍵使用に関する事前調整が必要となる。データ暗号化標準（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ、ＤＥＳ）は、秘密鍵暗号化アルゴリズムの一例であり、米国Ｎａｔｉｏｎａｌ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｓｔａｎｄａｒｄ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ、（ＮＩＳＴ）により採用されている。ＤＥＳは暗号化と解読に共通の56ビット長の鍵を使用する。ＤＥＳのバリエーションとして、ＴｒｉｐｌｅＤＥＳ、ＤＥＳｅｄｅがある。ＴｒｉｐｌｅＤＥＳは3つの異なる鍵を用いて、３回の暗号化および３回の解読を繰り返し行う。これによりＴｒｉｐｌｅＤＥＳは実質鍵長１６８ビットを有する強力なシステムとなっている。
【００５８】
パブリック鍵（非対称）暗号化は、一対の鍵を使用するアルゴリズムを有する。つまり、パブリック鍵を暗号化に、プライベート鍵を解読に使用する。パブリック鍵暗号化の場合、プライベート鍵はパブリック鍵からは容易に生成されない仕組みとなっている。これにより、パブリック鍵はインターネット上で暗号化アルゴリズムのセキュリティを悪化させることなしに発行が可能である。ＲＳＡアルゴリズムとして知られるパブリック鍵アルゴリズムは、大きな整数が因数分解困難であることを利用している。他の有名なパブリック鍵アルゴリズムにはＥｌＧａｍａｌアルゴリズムがあり、これは有限場の離散的対数を容易に計算できないことを利用している。本発明においては、ＲＳＡアルゴリズム、ＥｌＧａｍａｌアルゴリズムとも、クライアントコンピュータ１２ａ-ｎとネットワーク接続可能な機器１８ａ-ｎの通信に使用可能である。
【００５９】
シークレット鍵（対称）暗号化とパブリック鍵（非対称）暗号化はどちらもデータの計算機スクランブルを行いデータのプライバシーを確保している。しかしながらこれらのアルゴリズムは、データそれ自体の改ざんを防止し、データの真正性を保障するものではない。メッセージダイジェストアルゴリズムは一方向性関数として知られる特殊なアルゴリズムであり逆変換が困難（ハッシュ）である。メッセージダイジェスト関数はメッセージダイジェスト値をメッセージそのものから生成するが、これによりそのメッセージの署名を生成できる。
【００６０】
適当なメッセージダイジェスト関数を用いた場合、同一のメッセージダイジェスト値を生成するようなメッセージそのものを、計算機的に生成することは非常に困難である。また、異なる２つのメッセージそのものから、同一のメッセージダイジェスト値を得ることも非常に困難である。公開された鍵のように、メッセージダイジェスト関数は周知である。仮にメッセージが改ざんされた場合、メッセージダイジェスト値もまた変化する。送信データのメッセージダイジェスト値と計算されたメッセージダイジェスト値を比較すると、データ改ざんの有無を検証できる。本方式において使用可能なメッセージダイジェストアルゴリズムには、メッセージダイジェスト５（ＭＤ５）、とセキュアハッシュアルゴリズム（ＳＨＡ−１）がある。ＮＩＳＴは２から最大６４ビットのメッセージに対して、１６０ビットのメッセージダイジェスト値を生成できる。
【００６１】
パブリック鍵暗号化アルゴリズムの欠点は、シークレット鍵暗号化アルゴリズムに比して計算負荷が大きいことにある。例えば、ＥｌＧａｍａｌアルゴリズムは、そのアルゴリズムが用いている数学的問題の性質により、すべての可能な鍵の組み合わせの内、ある部分的な組み合わせのみを用いることができる。しかしながらークレット鍵暗号化アルゴリズムの場合、すべての可能な鍵の組み合わせを用いることができる。この結果、６４ビット鍵長のＤＥＳと同一の暗号化強靭性を得るには、ＥｌＧａｍａｌアルゴリズムは少なくとも５１２ビットが必要となる。シークレット鍵暗号化は大容量データ転送においては計算負荷において有利であるが、共通鍵のセキュリティ確保のため、鍵交換過程の管理が必要である。以下の実施例では、５１２ビット鍵長のＥｌＧａｍａｌアルゴリズムのようなパブリック鍵暗号化が送受信者間の、つまりクライアントコンピュータ１２ａ-ｎとネットワーク接続可能な機器１８ａ-ｎ間の、認証と暗号化鍵のやり取りに使用される。その結果、全二重接続は暗号化されないか、もしくは、１６８ビット鍵長のＴｒｉｐｌｅＤＥＳのようなシークレット鍵暗号化アルゴリズムで暗号化される。
【００６２】
以上を踏まえて図３、５に、本発明の認証、暗号化プロセスが図示されている。図５のイベントはクライアントコンピュータ１２ａ-ｎの使用を仮定して記述されている。図５内の各イベントは機器制御コンピュータ３６ａ-ｎが実行する場合があるのはもちろんである。図５のイベントは図４のイベント４１０と同時的に実行されうる。本システムの認証、暗号化プロセスは図４に示される実施例において詳述される。
【００６３】
イベント５００において、クライアントコンピュータ１２ａ-ｎのプロセス３２は認証データを準備しセキュリティサーバー５８へ送信する。また、その認証データのメッセージダイジェスト値を計算する。認証情報にはユーザ名とパスワード情報とともに、ユーザが接続を確立しようとする特定のネットワーク接続可能な機器１８ａ-ｎのＩＤ情報が含まれる。
【００６４】
イベント５０２において、クライアントコンピュータ１２ａ-ｎのプロセス３２は認証データを暗号化し、イベント５００のメッセージダイジェスト値とともに、パブリック鍵を用いてセキュリティサーバー５８に送信する。パブリック鍵はインターネットで公開されるか、クライアントコンピュータ１２ａ-ｎの特定のユーザと機器制御コンピュータ３６ａ-ｎへ送信される。
【００６５】
イベント５０４において、クライアントコンピュータ１２ａ-ｎのプロセス３２は暗号化認証データとメッセージダイジェスト値がうめこまれたＨＴＴＰリクエストをセキュリティサーバー５８へ送信する。
【００６６】
イベント５０６において、セキュリティサーバー５８は、クライアントコンピュータ１２ａ-ｎからのＨＴＴＰリクエストを受信する。セキュリティサーバー５８のプロセス６０はうめこまれた暗号化認証データとメッセージダイジェスト値をプライベート鍵で解読する。認証プロセス５０は、ＨＴＴＰリクエスト中の暗号化認証データをメッセージダイジェスト値から分離する。
【００６７】
イベント５０８において、プロセス６０は解読された認証データからメッセージダイジェスト値を計算しイベント５０６において受信したメッセージダイジェスト値と比較する。
【００６８】
イベント５１０において、認証プロセス６０は、メッセージダイジェスト計算値と、受信したメッセージダイジェスト値の合致を検証する。メッセージダイジェスト計算値と、受信したメッセージダイジェスト値が合致しない場合、クライアントコンピュータ１２ａ-ｎからの認証データはセキュリティサーバー５８への送信途上で破壊されている。この場合、イベント５１２が発生する。メッセージダイジェスト計算値と、受信したメッセージダイジェスト値が合致する場合、イベント５１４が発生する。
【００６９】
イベント５１２において、セキュリティサーバー５８は、クライアントコンピュータ１２ａ-ｎへ、セキュリティエラーメッセージをＨＴＴＰで送る。このメッセージにより、クライアントコンピュータ１２ａ-ｎのユーザは、認証データが有効でないことを知り、再度認証データを送信する必要があることを知る。クライアントコンピュータ１２ａ-ｎがイベント５００-５１０を規定回数以上繰り返した場合、認証エラーであるむねのメッセージがクライアントコンピュータ１２ａ-ｎに送られる。
【００７０】
イベント５１０においてメッセージダイジェスト計算値と、受信したメッセージダイジェスト値が合致する場合、認証データはセキュリティサーバー５８への送信途上で破壊されていない。よってイベント５１４が発生する。
【００７１】
イベント５１４において、セキュリティサーバー５８のプロセス６０は、クライアントコンピュータ１２ａ-ｎからのユーザ名とパスワード情報をデータベース５２ａのセキュリティデータと照合し、イベント５０６において取り出された認証データを照合する。このセキュリティデータには、クライアントコンピュータ１２ａ-ｎのあらかじめ知られているユーザのユーザ名とパスワードが含まれる。
【００７２】
イベント５１６において、認証プロセス６０はユーザ名とパスワードが認証ユーザのものであるか確認する。
【００７３】
ユーザ認証された場合、イベント５１８が発生する。ユーザ認証されない場合、イベント５１２が発生する。イベント５１２はクライアントコンピュータ１２ａ-ｎへ前述したＨＴＴＰメッセージが送られる。
【００７４】
イベント５１８において、セキュリティサーバー５８は、クライアントコンピュータ１２ａ-ｎがユーザ認証され、ネットワーク接続可能な機器１８ａ-ｎや他のクライアントコンピュータ１２ａ-ｎのどちらかもしくは両方に、ネットワーク接続可能である旨のＨＴＴＰレスポンスを送る。
【００７５】
イベント５２０において、プロセス３２は、クライアントコンピュータ１２ａ-ｎから、ネットワーク接続可能な機器１８ａ-ｎや他のクライアントコンピュータ１２ａ-ｎのどちらかもしくは両方に送られる暗号化データに使用されるシークレット鍵を生成する。シークレット鍵は、クライアントコンピュータ１２ａ-ｎ内の図示されない、擬似乱数発生装置（Ｐｓｅｕｄｏ−ｒａｎｄｏｍ  ｎｕｍｂｅｒ  ｇｅｎｅｒａｔｏｒ、  ＰＲＮＧ）により生成される。このシークレット鍵は対称鍵で、クライアントコンピュータ１２ａ-ｎからネットワーク接続可能な機器１８ａ-ｎへ、またはネットワーク接続可能な機器１８ａ-ｎからクライアントコンピュータ１２ａ-ｎへのデータ送信に同一も鍵が使用される場合もある。または、機器制御コンピュータ３６ａ-ｎがネットワーク接続可能な機器１８ａ-ｎからクライアントコンピュータ１２ａ-ｎへのデータ送信に独自のシークレット鍵を生成してもよい。
【００７６】
イベント５２２において、クライアントコンピュータ１２ａ-ｎのプロセス３２は、イベント５２０において生成したシークレット鍵のメッセージダイジェスト値を計算する。
【００７７】
イベント５２４において、プロセス３２は、イベント５２０において生成したシークレット鍵と、イベント５２２において生成したメッセージダイジェスト値を、セキュリティサーバー５８のためのパブリック鍵で暗号化する。
【００７８】
イベント５２６において、クライアントコンピュータ１２ａ-ｎのプロセス３２は、セキュリティサーバー５８へ、暗号化シークレット鍵と暗号化メッセージダイジェスト値を含むＨＴＴＰリクエストを送信する。
【００７９】
イベント５２８において、セキュリティサーバー５８は、イベント５２６で送られたクライアントコンピュータ１２ａ-ｎからのＨＴＴＰリクエストを受信する。セキュリティサーバー５８のプロセス６０は、ＨＴＴＰリクエスト中の暗号化シークレット鍵と暗号化メッセージダイジェスト値をプライベート鍵で解読する。認証プロセス５０は、ＨＴＴＰリクエスト中のシークレット鍵を当該シークレット鍵のメッセージダイジェスト値から分離する。
【００８０】
イベント５３０において、プロセス６０は解読されたシークレット鍵のメッセージダイジェスト値を計算しイベント５２８において受信したシークレット鍵のメッセージダイジェスト値と比較する。
【００８１】
イベント５３２において、認証プロセス６０は、シークレット鍵のメッセージダイジェスト計算値と、受信したメッセージダイジェスト値の合致を検証する。メッセージダイジェスト計算値と、受信したメッセージダイジェスト値が合致しない場合、クライアントコンピュータ１２ａ-ｎからのシークレット鍵はセキュリティサーバー５８への送信イベント５２６において、送信途上で破壊されている。この場合、イベント５３４が発生する。メッセージダイジェスト計算値と、受信したメッセージダイジェスト値が合致する場合、イベント５３６が発生する。
【００８２】
イベント５３４において、セキュリティサーバー５８は、クライアントコンピュータ１２ａ-ｎのセキュリティエラーメッセージをＨＴＴＰで送る。このメッセージにより、クライアントコンピュータ１２ａ-ｎのユーザはシークレット鍵が有効でないことを知り、イベント５２２−５２６を繰り返す必要があることを知る。クライアントコンピュータ１２ａ-ｎがシークレット鍵送信を規定回数以上繰り返した場合、接続不可能であるむねのメッセージがクライアントコンピュータ１２ａ-ｎに送られる。
【００８３】
イベント５３６において、セキュリティサーバー５８は、クライアントコンピュータ１２ａ-ｎへシークレット鍵が到着し、認証された旨のメッセージが送られる。この時点においてセキュリティサーバー５８は、クライアントコンピュータ１２ａ-ｎを認証し、クライアントコンピュータ１２ａ-ｎからのデータ送信を暗号化するためのシークレット鍵を安全に受信したことになる。
【００８４】
イベント５３８において、クライアントコンピュータ１２ａ-ｎから、ネットワーク接続可能な機器１８ａ-ｎや他のクライアントコンピュータ１２ａ-ｎのどちらかもしくは両方への安全な接続が確立される。このイベントは、図６に示される負荷均一化アルゴリズムにより選択された接続サーバー１４ａ-ｎが行う。
【００８５】
この接続が確立された後は、クライアントコンピュータ１２ａ-ｎと、ネットワーク接続可能な機器１８ａ-ｎや他のクライアントコンピュータ１２ａ-ｎのどちらかもしくは両方との間のデータ転送は、対称暗号化を仮定した場合、このシークレット鍵で暗号化され、接続サーバー１４ａ-ｎで取り扱われるＨＴＴＰリクエストやＨＴＴＰレスポンスに埋め込まれる。もしくは、機器制御コンピュータ３６ａ-ｎや他のクライアントコンピュータ１２ａ-ｎが上述されたイベントを実行し、非対称暗号化用の自身のシークレット鍵を生成してもよい。この場合、クライアントコンピュータ１２ａ-ｎからのデータは第１のシークレット鍵で暗号化される。ネットワーク接続可能な機器１８ａ-ｎや、機器制御コンピュータ３６ａ-ｎ、もしくは他のクライアントコンピュータ１２ａ-ｎからのデータは第２のシークレット鍵で暗号化される。クライアントコンピュータ１２ａ-ｎ、機器制御コンピュータ３６ａ-ｎは自身のシークレット鍵を生成する。
【００８６】
ＴｒｉｐｌｅＤＥＳ暗号化のようなシークレット鍵暗号化を使うと、クライアントコンピュータ１２ａ-ｎとネットワーク接続可能な機器１８ａ-ｎ間のデータを、接続サーバー１４を介して、高速、安全にやりとりできる。また、暗号化、解読のための計算負荷も小さい。クライアントコンピュータ１２ａ-ｎと機器制御コンピュータ３６ａ-ｎ
のシークレット鍵が、セキュリティサーバー５８により安全に実装され、クライアントコンピュータ１２ａ-ｎと機器制御コンピュータ３６ａ-ｎで共有された後は、シークレット鍵層は接続サーバー１４内に容易に実装可能である。
【００８７】
各イベントと各イベント相対的実行順序には、非常に多種の変形例があり、現有技術において様々な形で実装されるものである。ある実施例の場合には、イベント５２０−５３６は省略可能で、シークレット鍵はデータ転送に使用されない。つまり、ユーザ認証イベント５１６のあとには、クライアントコンピュータ１２ａ-ｎとネットワーク接続可能な機器１８ａ-ｎとの間では、暗号化せずにデータが転送される。認証アプリケーションプロセス６０を含む複数のセキュリティサーバー５８が、クライアントコンピュータ１２ａ-ｎとネットワーク接続可能な機器１８ａ-ｎとの間のトラフィックレベルに応じて使用されてもよい。ユーザ認証と鍵生成はクライアントコンピュータ１２ａ-ｎが実施例には使われているが、クライアントコンピュータ１２ａ-ｎとプロセス３２によって行われるイベントは、機器制御コンピュータ３６ａ-ｎと機器制御プロセス３８によって行われてもよい。
【００８８】
この発明では、サーバーは、クライアントコンピュータ１２ａ-ｎとネットワーク接続可能な機器１８ａ-ｎからの多くの要求を処理し、これらの要求は、分散された接続サーバー１４ａ−ｎ上で協調的に処理されている。イベント５１６以降は、データ送受信ごとに新しいセキュリティ鍵が不要であるので、本発明により、より高速で、リアルタイムで、かつ協調的な作業が、いまだかつてないレベルで実現可能である。これは、分散制御構造４８がつかさどり、これにより、いかなるユーザの間でも、（つまり、クライアントコンピュータ１２ａ-ｎ、機器制御コンピュータ３６ａ-ｎの単独、もしくは双方から構成されるあらゆる種類の組み合わせにおいて）、安全な接続を、暗号化もしくは非暗号化データの送信に先立って、安全な接続を確立することができる。接続サーバー１４ａ−ｎではクライアントコンピュータ１２ａ-ｎとネットワーク接続可能な機器１８ａ-ｎからの要求に起因する負荷は、適正に均一化されているため、高い信頼性と高い作業効率が確保されている。この均一化は負荷均一化アルゴリズムにより、セッションが予定されるたびに適正な接続サーバーの選択を行うことによって実現されている。
【００８９】
接続セッションが、単数または複数のクライアントコンピュータ１２ａ-ｎのあいだで、もしくは、単数または複数のネットワーク接続可能な機器１８ａ-ｎのあいだで、あるいは単数または複数のクライアントコンピュータ１２ａ-ｎとネットワーク接続可能な機器１８ａ-ｎのあいだで確立される際、接続サーバー１４ａ-ｎにいずれのセッションが割り当てられるか決定する必要がある。セッションのスケジューリングは接続に先立って、もしくは接続最中にリアルタイムで行われる。クライアントコンピュータ１２ａ-ｎ間の、または、ネットワーク接続可能な機器１８ａ-ｎ間の、あるいはクライアントコンピュータ１２ａ-ｎとネットワーク接続可能な機器１８ａ-ｎ間の接続はセッション開始の際に接続サーバー１４に割り当てられる。
【００９０】
図３に示されるように、データベース５２ｂは本発明における負荷均一化に関するデータを有している。データベース５２ｂのデータ（図示されない）としては、ユーザの種類、ユーザが確立しようとするセッションの種類、そのような、ユーザやセッションに対して使用されるサーバーの種類、がある。また、サーバーの空きの有無、と接続サーバー１４のパワー消費に関するデータも含まれる。クライアントコンピュータ１２ａ-ｎとネットワーク接続可能な機器１８ａ-ｎ間の、もしくは、クライアントコンピュータ１２ａ-ｎ同士間、あるいはネットワーク接続可能な機器１８ａ-ｎ同士間のセッションには、いくつかの異なるタイプのクライアントコンピュータ１２ａ-ｎとネットワーク接続可能な機器１８ａ-ｎが使用される。“ユーザ形式”はどのような種類のユーザかを、また、それぞれの“ユーザ形式”は“セッション形式”を参照する。ユーザそれぞれに固有の特性を定義することにより、より正確な負荷均一化が可能である。ユーザ形式はどのようなネットワーク接続可能な機器１８ａ-ｎが使用されるか、どのようなビジネスがセッションで行われるか、などの情報に基づいて決定される。例えば、ひとつのセッションにおいて、あるユーザはあるネットワーク接続可能な機器で（例えばビデオモニターリングを行う場合）ビデオデータ送信を行うが、他のユーザはビデオデータを送らない場合がある。他のユーザは例えば、発電状態と電気の分配をモニターしたり、医療診断機器を用いて患者をモニターしたり、あるいは、ロボット生産装置のモニターを行う場合など様々なケースが想定される。それぞれのユーザ形式の要求を区別することにより、より効果的な負荷均一化が可能になる。“ユーザ形式”はその語義において、接続サーバー１４ａ−ｎの両終端におけるユーザ、つまり、クライアントコンピュータ１２ａ-ｎと機器制御コンピュータ（ＤＣＣ）３６ａ-ｎに関する情報と同義である。
【００９１】
セッションとしては、単数もしくは複数のネットワーク接続可能な機器１８ａ-ｎをユーザのグループが協調的に使用もしくはモニターする場合がある。それぞれのセッションはユーザと機器との間の接続をつかさどる接続サーバーにより管理されている。セッションによっては、セッション開始時間と終了時間があらかじめ決められているものもある。セッション形式はユーザのタイプ、もしくは機器のタイプ、機器使用スケジューリング、ビジネスの形態、や他の要因により決定される。 あるセッション形式においては、はたとえば、ロボット組み立てマシンやプリンタ、複写機などの遠隔的に共有される機器を顧客とベンダの関係においてユーザが使用する場合がある。また別のセッション形式においては、はたとえば、遠隔医療診断機器を患者と医療者の関係において、随時的に、もしくはスケジュールに従ってユーザが使用する場合がある。また、複数の技術者が、化学反応プラントを監視する場合もある。他の様々なセッション形式が技術的に可能である。接続サーバー１４ａ-ｎは異なるサーバー形式を有するサーバーによって構成されてもよい。例えば、接続サーバー１４ａ-ｎのうちある特定のサーバー群とそれらに含まれるアプリケーション３４はそれぞれ異なるユーザ形式とセッション形式を管理するように設定されていてもよい。例えば、商業使用を目的とするユーザは特定のビジネスデータ送受信のための特別な設定をされた接続サーバー１４ａ-ｎを使用することを望む場合がある。このように、例えば、ある接続サーバー１４ａ-ｎがビデオモニターリング用に設定されていても、他の接続サーバー１４ａ-ｎは、発電データ監視、患者データのモニターリング、生産装置、家庭電気機器、セキュリティ機器、オフィス機器とセキュリティ機器などの特定用途向きの機器１８ａ-ｎからの特定のデータを扱うような設定がなされていてもよい。さらには、ある接続サーバー１４ａ-ｎが、特に大多数のユーザがネットワーク接続可能な機器１８ａ-ｎを協調的に使用できるように設定されている場合もありうる。他の様々な特定のサーバー形式が技術的に可能である。
【００９２】
負荷均一化において重要な点は、個々のサーバーが処理できる負荷には上限があるということである。負荷は通信帯域、計算機パワー、データへのアクセススピードや他の要因によって制限されている。接続を維持するためのサーバーの性能を示す、単一の指標として表すことができるパラメータを定義することができる。このパラメータは以降、“パワー”として表す。接続サーバー１４ａ-ｎは、ある時点で、接続を維持するためのサーバーの最大性能を意味するパワー値を持っている。あるセッションが特定の接続サーバー１４ａに割り当てられる際には、そのセッションのパラメータが上述されたセッション形式である。セッション形式によって、そのセッションで使用されるユーザ形式が決められるが、このためにはデータベース５２内の、図示されないリスト内の過去に蓄積されたデータが参照されている。サーバーのパワーを計算するためには、それぞれユーザ形式に特有の性質が使用される。ここでいうパワーには、クライアントコンピュータ１２ａ-ｎとネットワーク接続可能な機器１８ａ-ｎ間の接続それぞれの平均パワーや、各セッションのために確保されなければならない最小の必要回線数や、平均の必要回線数などが含まれる。このように、シングルセッションの場合は、あるユーザ形式における最小要求パワーは平均のパワーと確保されなければならない最小の必要回線数の積を、そのセッション形式内の、ユーザ形式の数だけ加え合わせものとして表すことができる。この最小要求パワーを、ある時点においてスケジュールされているセッション分足しあわすと、単独の接続サーバー１４ａ−ｎに必要なパワー消費量の期待値が計算できる。最小要求パワー値を満たすことの出来るこの最小要求パワー値によって、セッションが予定される時点において接続サーバー１４ａ-ｎが持つ最小要求パワー値を満たすことの出来るセッションのみが選択されるように、当該接続サーバー１４ａ-ｎの割り当て選択の制限を行う。この当該接続サーバー１４ａ-ｎの割り当て選択の制限によりさらに接続の信頼性が向上し、最小の必要回線数を確保しながら、接続サーバー１４ａ-ｎは、そのパワー上限値を超えない状態を維持することが可能となる。以上を元に、図６の負荷均一化フローチャート、および図３を参照して説明を行う。
【００９３】
イベント６００において、セキュリティサーバー５８内の負荷均一化アプリケーション５０は、セッション内でのどのようなユーザ形式が使用されることになるかを判別する。この判別は、クライアントコンピュータ１２ａ-ｎや機器制御コンピュータ３６ａ-ｎからセキュリティサーバー５８へのＨＴＴＰリクエストに埋め込まれたユーザ同定データと、データベース５２ａ-ｎ内ユーザ形式”データに基づいて行われる。セキュリティサーバー５８によりＨＴＴＰリクエストから取り出されたユーザ同定データは、データベース５２ａ-ｎ内のユーザ形式データと比較され、当該セッションのユーザ形式が決定される。
【００９４】
イベント６１０において、負荷均一化アプリケーション５０セッション形式“決定する。この判別は、クライアントコンピュータ１２ａ-ｎや機器制御コンピュータ３６ａ-ｎからのＨＴＴＰリクエストに埋め込まれたユーザ同定データと、データベース５２ａ-ｎ内のユーザ形式データとの比較結果に基づいて行われる。
【００９５】
ユーザ形式とセッション形式が決定された後、負荷均一化プロセス５０がイベント６２０において、サーバーを選択する。サーバー選択は、イベント６００，６１０におけるユーザ形式およびセッション形式をデータベース５２ｂ内のサーバー形式情報と比較によりおこなう。クライアントコンピュータ１２ａ-ｎ、機器制御コンピュータ３６ａ-ｎ、ネットワーク接続可能な機器１８ａ-ｎそれぞれの間の接続を取り扱う特定形式の接続サーバーをこの情報をもとに決定する。イベント６３０では、負荷均一化プロセス５０は、イベント６２０で選択した接続サーバー１４ａ-ｎが動作可能であるか否かを判断する。その接続サーバーは例えば、メンテナンス、アップグレードのために電源を落としている場合や、動作不良の場合、あるいは他の理由によりアクセス不可能であるかもしれないからである。選択されたサーバーが動作可能な場合、イベント６４０が発生する。動作不可能な場合はイベント６２０が繰り返され、異なる接続サーバー１４ａ-ｎが選択される。接続サーバー１４ａ-ｎの選択には、すべての接続サーバーが選択され解析されるより以前に、一度選択された接続サーバーが選ばれないように、あらかじめ定められた選択ルールによって行われてもよい。
【００９６】
イベント６４０においては、負荷均一化プロセス５０が、イベント６２０で選択された接続サーバーが、イベント６００で決定された特定のユーザ形式をサポートしているか否かを判断する。前述されたように、特定の接続サーバーが特定のユーザ形式をサポートするように設定されていることもある。仮に選択された接続サーバーがイベント６００において決定されたユーザ形式をサポートしていない場合、イベント６２０を繰り返し、異なる接続サーバーを選択する。選択された接続サーバーがイベント６００において決定されたユーザ形式をサポートしている場合、イベント６５０を実行する。
【００９７】
イベント６５０では、負荷均一化プロセス５０がイベント６５０で選択した接続サーバー１４ａ-ｎがイベント６１０で選択した特定のセッション形式 をサポートしているか否かを判断する。仮に選択された接続サーバーがイベント６１０において決定されたセッション形式をサポートしていない場合、イベント６３０−６５０を繰り返し、異なる接続サーバーを選択する。選択された接続サーバーがセッション形式をサポートしている場合、イベント６６０を実行する。
【００９８】
イベント６６０では、負荷均一化プロセス５０は、イベント６２０で選択された接続サーバーが当該セッションの接続をサポートする十分なパワーを有するか否かが判断される。接続サーバーに割り当てられたすべてのセッションによる最小要求パワーを接続サーバー１４ａ-ｎが有するかどうかの確認のため、クエリが実行される。当該セッション中の接続において、接続サーバー１４ａ-ｎが十分なパワーを有しない場合、イベント６２０が繰り返され、異なる接続サーバー１４ａ-ｎが選択される。
【００９９】
選択された接続サーバーが十分なパワーを有する場合、イベント６７０が実行される。この際、選択された接続サーバーは、他の使用可能なサーバーと、負荷均一化の観点から比較のため、一時的に選択される。イベント６８０では、すべての接続サーバーが負荷均一化の観点から比較され解析されたかどうかが判断される。最後のサーバーが選択されていない場合、イベント６２０が繰り返され次のサーバーが選択される。すでに最後のサーバーが選択された場合は、プロセスはイベント６９０へ移行する。
【０１００】
この時点において、複数の接続サーバー１４ａ-ｎが確立されるセッションの要求を満たせる場合もある。イベント６９０では、イベント６７０で一時的に選択された接続サーバー１４ａ-ｎのうちいずれがもっともパワーを有するかが判定される。仮に、単独のサーバーが６７０で一時的に選択された場合、このサーバーが最もパワーを有することになる。接続サーバーを選択するこれらのイベントにより接続サーバー１４ａ-ｎの効果的利用が行われる。接続サーバーはそれぞれ多くの同時接続をとりあつかうことができる。そのため、この計算には統計的に求められる平均 パワー使用値が用いられる。あるユーザ形式に対する平均パワー使用値は、各接続のパワーに平均接続数を乗じて求められる。あるセッションの際に使用される平均パワー 使用値はそのセッション形式で以前に用いられたすべてのユーザ形式における結果を足し合わせて求められる。この平均パワー使用値を予定されるセッションのある時点において足し合わせると、接続サーバー１４ａ-ｎのその時点におけるパワー使用期待値を計算できる。このパワー使用期待値と接続サーバーの最大パワー使用可能値の比をとると、接続サーバーそれぞれのパワー利用率を求めることができる。接続サーバー１４ａ-ｎのそれぞれに対して予定されるセッション継続時間にわたるパワー利用率を求める。イベント６７０で一時的に選択された接続サーバー１４ａ-ｎの中から最小のパワー利用率を有するサーバーが選択され、セッションに供される。イベント６９０において使用可能なサーバーの中で最良のサーバーが選択され、クライアントセッション、クライアント、およびＤＣＣに割り当てられる。イベント６９５では、これから開始されるセッションに使用可能なサーバーの中で最良のサーバーが選択された後、その接続サーバー１４ａ-ｎは、当該セッション中で使用されるクライアントコンピュータ１２ａ-ｎと機器制御コンピュータ３６ａ-ｎ、ネットワーク接続可能な機器１８ａ-ｎに割り当てられる。
【０１０１】
以上に記載された負荷均一化プロセスを用いると、ユーザが期待する最小の接続数を常に維持しながら、使用可能な接続サーバー１４ａ-ｎに統計的に各セッションが割り当てられる。
【０１０２】
これまでに、本発明におけるユーザ認証、暗号化、および負荷均一化を述べた。ここで、クライアントコンピュータ１２ａ-ｎ、機器制御コンピュータ３６ａ-ｎに接続されたネットワーク接続可能な機器１８ａ-ｎの間のデータ転送プロセスについて述べる。これまでに一貫して述べたように、本データ転送方法はクライアントコンピュータ１２ａ-ｎ内、機器制御コンピュータ３６ａ-ｎ内におけるデータのやりとりにも適用される。データ転送は、図７のフローチャートに示されるクライアントプロセス３２と機器制御プロセス３８と、図８のフローチャートに示される接続サーバープロセス３４が実行する。クライアントコンピュータ１２ａ-ｎから機器制御コンピュータ３６ａ-ｎへのデータ転送と、機器制御コンピュータ３６ａ-ｎからクライアントコンピュータ１２ａ-ｎへのデータ転送とは同一プロセスである。以下に述べる図７，８の説明には、主にクライアントコンピュータ１２ａ-ｎの使用を前提として行われる。しかしながら、クライアントコンピュータ１２ａ-ｎのクライアントプロセス３２と同様のデータ転送プロセスは、機器制御コンピュータ３６ａ-ｎの機器制御プロセス３８も行うことができる。
【０１０３】
図７には、クライアントプロセス３２と機器制御プロセス３８を用いたデータ転送が説明されている。
【０１０４】
イベント７００で、データ転送プロセスがスタートする。イベント７００は、たとえば、図５に示された認証とシークレット鍵生成と図６に示された負荷均一化の後に発生しても良い。
【０１０５】
イベント７１０では、クライアントプロセス３２はクライアントコンピュータ１２ａ-ｎがネットワーク接続可能な機器１８ａ-ｎに何らかのデータを送ったか否かを判断する。そのようなデータとしてはネットワーク接続可能な機器１８ａ-ｎへのコマンドデータなどが考えられる。このイベントは、ネットワーク接続可能な機器１８ａ-ｎへ送られるデータがストアされるクライアントコンピュータ１２ａ-ｎの図示されない送信バッファをチェックすることにより実行される。ネットワーク接続可能な機器１８ａ-ｎへのデータがない場合、イベント７２０，および７３０が実行される。ネットワーク接続可能な機器１８ａ-ｎへのデータがある場合、イベント７４０が実行される。
【０１０６】
クライアントプロセス３２は定期的にHTTPリクエストを接続サーバー１４ａ-ｎに送り、接続サーバー１４ａ-ｎとの接続を維持している。イベント７１０において、ネットワーク接続可能な機器１８ａ-ｎへのデータがクライアントコンピュータの送信バッファにない場合、クライアントプロセス３２はイベント７２０において、あらかじめ定められた期間、たとえば、ｎミリ秒、待機する。この待機プロセスにより、クライアントコンピュータは他のタスクをマルチタスク環境下において実行できる。この方法においては、クライアントプロセス３２はアダプティブに接続サーバー１４ａ-ｎへのHTTPリクエストの送信間隔を変えることができる。つまり、仮にデータが送信バッファにある場合には、リクエストは即座に送信される。同様に、当初データがクライアントコンピュータの送信バッファにないが、ｎ秒後には送信バッファにある場合、その時点においてリクエストは即座に送信される。この待機およびチェックプロセスループは所定の時間繰り返される。所定の最大経過時間の到達後は、送信バッファないのデータの有無にかかわらず、接続サーバー１４ａ-ｎにHTTPリクエストが送信される。この方法により、データは送信バッファにストアされる時刻とほぼ同一時刻に効率よく送信される。その結果、データが継続的に送信バッファにストアされる場合、リクエストは非常に高速に送信される。一方、リクエストに関するデータが送信バッファから送信されたか否かにかかわらず、所定の最大経過時間に到達後にHTTPリクエストが送信されるので、システムは継続的に動作している。
【０１０７】
ネットワーク接続可能な機器１８ａ-ｎからクライアントコンピュータ１２ａ-ｎに送信されたデータを接続サーバー１４ａ-ｎがチェックを行うための周期的なHTTPリクエストを、接続サーバー１４ａ-ｎへ送る時刻であるか否かは、イベント７３０においてクライアントプロセス３２が決定する。イベント７２０の繰り返し待機プロセスを開始する以前に、クライアントプロセス３２は、イベント７３０の時間切れパラメータを初期化する。イベント７３０において、接続サーバー１４ａ-ｎへのHTTPリクエスト送信時期と判断された場合には、イベント７４０を実行する。そうでない場合は、イベント７１０が繰り返される。
【０１０８】
イベント７４０において、クライアントプロセスは接続サーバー１４ａ-ｎへHTTPリクエストを送信する。イベント７１０においてネットワーク接続可能な機器１８ａ-ｎへのデータがクライアントの送信バッファにあった場合は、その送信データもHTTPリクエストに埋め込まれる。このデータはシークレット鍵を用いて、前述された方法で暗号化される。データの埋め込みは、たとえばHTTP POSTを用いて行われる。
【０１０９】
イベント７５０において、クライアントプロセス３２は接続サーバー１４ａ-ｎからのHTTPレスポンスを読み取る。
【０１１０】
イベント７６０において、クライアントプロセス３２は、ネットワーク接続可能な機器１８ａ-ｎからクライアントコンピュータ１２ａ-ｎに送信されたデータが、イベント７５０における接続サーバー１４ａ-ｎからのHTTPレスポンスに埋め込まれているか否かを判断する。
【０１１１】
HTTPレスポンスにそのデータが埋め込まれている場合、イベント７６０が発生する。HTTPレスポンスにそのデータが埋め込まれていない場合イベント７８０が発生する。
【０１１２】
イベント７７０において、イベント７５０におけるHTTPレスポンスに埋め込まれているデータはクライアントコンピュータ１２ａ-ｎが読み、メモリにバッファされる。さらにクライアントコンピュータ１２ａ-ｎはネットワーク接続可能な機器１８ａ-ｎからのデータが存在することを通知される。ネットワーク接続可能な機器１８ａ-ｎからのデータが暗号化されている場合、このイベント内で解読が行われる。
【０１１３】
イベント７８０において、クライアントプロセスは、データ転送を継続するかどうか判断する。クライアントコンピュータ１２ａ-ｎのユーザからの指令、もしくは接続サーバー１４ａ-ｎからのHTTPレスポンスに基づいてこの判断はおこなわれる。接続サーバー１４ａ-ｎからのHTTPレスポンスにはネットワーク接続可能な機器１８ａ-ｎが故障中である旨の通知も含まれる場合がある。このデータ転送を継続する場合イベント７１０−７８０が繰り返される。このデータ転送を継続しない場合イベント７８０で終了される。
【０１１４】
接続サーバー１４ａーｎは、クライアントコンピュータ１２ａ-ｎと（機器制御コンピュータ３６ａ-ｎ経由の）ネットワーク接続可能な機器１８ａ-ｎの間の、また、クライアントコンピュータ１２ａ-ｎとクライアントコンピュータ１２ａ-ｎとの間の、あるいは機器制御コンピュータ３６ａ-ｎと機器制御コンピュータ３６ａ-ｎの間の橋渡しを行うメディアとして作用している。これらのコンピュータは単数、もしくは複数であっても良い。ネットワーク接続可能な機器１８ａ-ｎからクライアントコンピュータ１２ａ-ｎに向けてのデータは前述のHTTPリクエストにより接続サーバー１４ａーｎに送信される。このＨＴＴＰリクエストを受け取った接続サーバー１４ａーｎは、そのリクエストからのあらゆるデータを一時的にメモリ（送信バッファ）に格納する。クライアントコンピュータ１２ａ-ｎからのＨＴＴＰリクエストを接続サーバー１４ａーｎが受け取ると、接続サーバー１４ａーｎは送信バッファのデータを読み取りクライアントコンピュータ１２ａ-ｎへ送信する。この際、ＨＴＴＰリクエストに対するレスポンスも送付される。この例においては、ＨＴＴＰリクエストは機器制御コンピュータ３６ａ-ｎによってなされても良い。ＨＴＴＰリクエスト送信手順と同様に、ＨＴＴＰリクエストとともに何らかのデータが送信されたか否かにかかわらず、あらかじめ設定された最大時間間隔内で少なくとも１回は実行されるＨＴＴＰリクエストによる継続的な送信要求確認により、レスポンス送信手順もまた、迅速に行われる。
【０１１５】
次に図８により、データ送受信中の接続サーバープロセス３４の動作を説明する。
【０１１６】
イベント８００で、データ転送プロセスがスタートする。このイベントは、少なくとも２ユーザが認証され、少なくとも２ユーザのための接続が確立される事に一回行われる。この２ユーザは、たとえは、少なくとも２つのクライアントコンピュータ１２ａ-ｎ、少なくとも２つの機器制御コンピュータ３６ａ-ｎ、もしくはこの例にあるように、少なくとも１つのクライアントコンピュータ１２ａ-ｎと少なくとも１つの機器制御コンピュータ３６ａ-ｎにより構成される。この例においては、少なくとも１つのクライアントコンピュータ１２ａ-ｎと、少なくとも１つの機器制御コンピュータ３６ａ-ｎにより２ユーザが構成されるが、本発明はこの形態に限定されるものではない。
【０１１７】
イベント８１０において、接続サーバープロセス３４はクライアントコンピュータ１２ａ-ｎ（もしくは機器制御コンピュータ３６ａ-ｎ）から何らかのＨＴＴＰリクエストが送られたか否かを判断する。ＨＴＴＰリクエストが受信されていない場合、イベント８２０が実行され、プロセス３４はあらかじめ決められた時間待機し、クエリ８１０を実行する。ＨＴＴＰが受信されている場合、イベント８３０が実行される。
【０１１８】
イベント８３０では、サーバープロセス３４は、イベント８１０のＨＴＴＰリクエストを読みこむ。
【０１１９】
イベント８４０では接続サーバープロセス３４はクライアントコンピュータ１２ａ-ｎからのデータがＨＴＴＰリクエスト中に埋め込まれているか否かを判断する。データがある場合、イベント８５０を実行する。データがない場合イベント８６０を実行する。
【０１２０】
イベント８５０では、接続サーバー１４ａ−ｎの図示されない送信バッファにＨＴＴＰリクエストに埋め込まれていたデータが格納される。このデータは暗号化されている場合もあるが、接続サーバー１４ａ−ｎが解読を行う必要はない。
【０１２１】
イベント８６０では、接続サーバープロセス３４は、ネットワーク接続可能な機器１８ａ-ｎからクライアントコンピュータ１２ａ-ｎへのデータが存在するか否かを確認する。送信バッファにデータがない場合、接続サーバープロセス３４はイベント８７０において、ｎミリ秒待機する。接続サーバープロセス３４はクライアントコンピュータ１２ａ-ｎへ定期的にＨＴＴＰレスポンスを送ることにより、クライアントコンピュータ１２ａ-ｎとの接続を維持している。また接続サーバープロセス３４は、クライアントコンピュータ１２ａ-ｎからのＨＴＴＰリクエストに対応することもできる。
【０１２２】
イベント８８０において接続サーバープロセス３４は、クライアントコンピュータ１２ａ-ｎへの定期的なＨＴＴＰレスポンスの送信周期が経過したか否かを判断する。送信周期が経過した場合、イベント８９０が発生する。
【０１２３】
送信周期が経過していない場合、イベント８６０が繰り返される。
【０１２４】
ＨＴＴＰリクエスト送信手順と同様に、ＨＴＴＰリクエストとともに何らかのデータが送信されたか否かにかかわらず、あらかじめ設定された最大時間間隔内で少なくとも１回は実行されるＨＴＴＰリクエストによる継続的な送信要求確認により、レスポンス送信手順もまた、迅速かつ効果的に行われる。
【０１２５】
ＨＴＴＰレスポンスが最終的に送られるような最大経過時間に至るｎミリ秒ごとに、送信バッファ内のデータはＨＴＴＰレスポンスとともに送信されるため、この方法は、アダプティブな送信要求確認方法である。つまり、ｎが１０ミリ秒の場合、たとえば、データが送信バッファに３０ミリ秒の時点で現れたと仮定する。この場合、データは３０ミリ秒の時点で送信される。もしくは、データが送信バッファに７０ミリ秒の時点まで現れないと仮定する。この場合、データは７０ミリ秒の時点になってはじめてレスポンスとともに送信される。
【０１２６】
ＨＴＴＰリクエストは並列的に行われる。つまりＨＴＴＰリクエストを送信するクライアントプロセス３２は常にあらかじめ定められた数の（送信要求確認のための）ＨＴＴＰリクエストを送信する。一般的にこの、あらかじめ定められた数は２かまたはそれ以上の数である。ＨＴＴＰリクエストの対する返答としてＨＴＴＰレスポンスが返された場合これにより送信要求確認が完了され、また、クライアントプロセス３２は新たなＨＴＴＰリクエストを送信し、以前に送信されたＨＴＴＰリクエストと置き換える。ＨＴＴＰリクエストとＨＴＴＰレスポンスの送信レートはそれぞれの通信方向に対応したデータ通信レートに依存する。このためプロセス３２は、それぞれの通信方向のデータレートに基づいて、送信要求確認頻度をアダプティブに変化させている。仮にデータの送受信がない場合でも、この送信要求確認は継続的に行われる。なぜならば、最大時間経過後は、データがない場合でもＨＴＴＰリクエストとＨＴＴＰレスポンスが送信されるからである。
【０１２７】
イベント８９０では、接続サーバー１４ａーｎはクライアントコンピュータ１２ａ-ｎへＨＴＴＰレスポンスを送信する。接続サーバー１４ａーｎの送信バッファにデータがある場合、ＨＴＴＰレスポンスに埋め込まれて送信される。
【０１２８】
イベント８９０発生以降は、イベント８１０から８８０が繰り返し実行される。クライアントコンピュータ１２ａ-ｎへの接続が終了すると、図８のイベントは終了する。図８に示された各イベントは、クライアントコンピュータ１２ａ-ｎｔｐ機器制御コンピュータ３６ａ-ｎの通信のため、機器制御コンピュータ３６ａ-ｎに関連して行われても良い。図７、図８のイベントは、クライアントコンピュータ１２ａ-ｎ、機器制御コンピュータ３６ａ-ｎ、ネットワーク接続可能な機器１８ａ-ｎの間の継続的かつ全２重接続を行うため繰り返し実行される。この継続的、連続的なコミュニケーション方法により、ＨＴＴＰプロトコールにおいては通信状態の定義が困難であることに起因する各種の限界を打破することが可能である。
【０１２９】
本発明における通信方法により、標準的なＨＴＴＰプロトコールを使って連続的なデータストリーム転送が、プライベート−公衆−プライベートネットワーク配置においても実現できる。本方法は、ネットワーク接続可能な機器１８ａ-ｎからクライアントコンピュータ１２ａ-ｎへのデータ転送を、プライベート−公衆ネットワークを経由しても行えるようにする、いわば、コミュニケーション“トンネル“を提供する。認められたユーザのみが機器にアクセスできるようにするためには、そのようなデータ転送における、セキュリティとプライバシーの確保は非常に重要である。セキュリティとプライバシーは、接続サーバーとの接続確保時に行われる、セキュリティ認証プロセスにより確保されており、このプロセスは、クライアントコンピュータ１２ａ-ｎおよび機器制御コンピュータ３６ａ-ｎの両方に適用可能である。安全な接続の確立後は、新たなデータ送受信の度に、暗号鍵の生成と送信を新たに行う必要がない。これにより通信速度の大幅な高速化、および述べられたような高速通信を現在のシステムで行う場合と比較して大幅なコストの削減が可能である。また、図５に示されたり、上述されたりしたように通信データは共有鍵によって暗号化されていても良い。
【０１３０】
別の実施例においては、暗号化されたデータが埋めこまれたHTTPリクエストはメッセージダイジェスト値を含む場合もありうる。クライアントコンピュータ１２ａ-ｎもしくは、機器制御コンピュータ３６ａ-ｎは埋めこまれた暗号化データを受信し、メッセージダイジェスト計算値と、受信したメッセージダイジェスト値の合致を検証する。メッセージダイジェスト計算値と、受信したメッセージダイジェスト値が合致しない場合、セキュリティエラーがあることになり、その旨を伝えるHTTPリクエストが送信される。
【０１３１】
以上からわかるように、本発明により、接続サーバーを介して、プライベートネットワーク内のファイアウォールまたプロキシシステムの後ろにあるネットワーク接続可能な機器へのユーザからのデータ送信、もしくはネットワーク接続可能な機器からユーザへのデータ送信を安全に行うことができる。接続サーバーが、リモートユーザとリモート機器との接続をおこなうため、ユーザおよびネットワーク機器のネットワークアドレスは、ユーザおよびネットワーク機器の相互に対し公開されない。このため、公衆回線からの攻撃は、ファイアウォール、またプロキシシステムにより防御される。接続サーバーがプライベートネットワーク内にあるような実施例の場合も、接続サーバーへの攻撃によってファイアウォールまたプロキシシステムにより防御されているユーザまたはネットワーク接続可能な機器のセキュリティに危険が生じる恐れはない。
【０１３２】
本発明による方法によれば、多点的なデータの振り分け（ルーティング）が可能である。これにより、単独または複数の機器の協調的な使用、単独または複数の機器の協調的な監視、また他の形式の、たとえば、学習や教育セッションといった協調的作業が可能になる。上述した、認証データの利用には、リモート使用された機器がどのようなタイプの機器であるかに関するデータも含まれる。典型的に使用されるデバイス、もしくはその機器の制御や監視に使用される典型的命令は、その機器がどのようなタイプの機器であるかに基づいて、分類することが可能である。機器が接続サーバーに接続されているため、ユーザはHTTPリクエストを使って、接続サーバーに、機器すべて、もしくは、特定のタイプの機器に、命令を再度送信するように指令することができる。このように本発明に示された接続サーバーを利用することにより、多点的なデータのルーティングが可能である。ユーザが直接接続しているのは接続サーバーのみである。このため、ユーザは、接続サーバーのネットワークアドレスのみを、（つまり、ただひとつのネットワークアドレスのみを）知っていれば良い。よって、機器がネットワークのどこに接続されていようと、機器が接続サーバーに接続されている限り、ユーザは機器の位置を同定しに接続可能である。この機器の位置を同定する機能はネットワークにわたって分散している機器の制御において非常な利点となる。
【０１３３】
本発明は特定に実施例に基づいて説明されたが、本発明の本旨から乖離することなく、現有技術において様々な変更がなされ、本発明の部分品が同等の機能を有する部分品にておきかられることがありえる。加えて、特定の状況、部分構成品、プロセス、プロセスステップ、に応じて、本発明の目的、および本旨に対して変更が加えられることがある。そのような変更すべては本発明の本旨に沿ったものである。
【図面の簡単な説明】
【０１３４】
本発明は以下の説明用にのみ使用される図面を参照することによりさらによく理解される。
【図１】図１は本発明における、ネットワーク接続可能な機器にアクセスし制御するためのシステムの機能ブロック図である。
【図２】図２は、複数の接続サーバーをからなる分散制御構成を有する、ネットワーク接続可能な機器にアクセスし制御するためのシステムの機能ブロック図である。
【図３】図３は接続サーバー内にセキュリティサーバーが使用された、ネットワーク接続可能な機器にアクセスし制御するためのシステムの機能ブロック図である。
【図４】図４は本発明における、ユーザ認証と接続のフローチャートである。
【図５】図５は本発明における、認証とセキュリティ保持に関するフローチャートである。
【図６】図６は本発明における負荷均一化を行う場合のサーバー選択方法に関するフローチャートである。
【図７】図７は本発明方式におけるクライアントプロセスとコンピュータによる機器制プロセスに関するフローチャートである。
【図８】図８は本発明方式における接続サーバープロセスに関するフローチャートである。
【図１】
2005509977.tif 000003
【図２】
2005509977.tif 000004
【図３】
2005509977.tif 000005
【図４】
2005509977.tif 000006
【図５】
2005509977.tif 000007
【図６】
2005509977.tif 000008
【図７】
2005509977.tif 000009
【図８】
2005509977.tif 000010
【国際調査報告】
2005509977.tif 000011