(57)【特許請求の範囲】
【請求項１】
アプレットがそれからダウンロードされるところの第１のサーバ以外の他のサーバにHTTPプロトコルによってアクセスすることを可能とする方法であって、当該方法は、前記アプレットが前記他のサーバをアクセスすることを防止する前記アプレットのサンドボックス・セキュリティ制限を克服するために動作する方法であって、
前記方法は、
選択されたアプレットを前記第１のサーバからユーザワーク・ステーションにダウンロードするステップであって、前記第１のサーバは独自のアドレスを有する、前記ダウンロードするステップと、
前記第１のサーバの前記アドレスを検出するステップと、
前記選択されたアプレットから前記第１のサーバ上のリダイレクタ機能へ第１のソケット接続を開くステップと、
前記選択されたアプレットから前記リダイレクタ機能へターゲット・ホスト・サーバに対するアドレスを送るステップと、
前記選択されたアプレットに代わって前記リダイレクタ機能から前記ターゲット・ホスト・サーバ上のホスト機能へ第２のソケット接続を前記リダイレクタ機能によって開くステップと、
前記第１のソケット接続及び前記第２のソケット接続を用いて前記リダイレクタ機能を介してデータをリダイレクトすることによって前記選択されたアプレットから前記ホスト機能に間接的にアクセスし、前記第１のソケット接続と前記第２のソケット接続との間で前記データを転送するステップと
を含む前記方法。
【請求項２】
１以上のターゲット・リソースにアクセスすることを目的として、コンピュータ・ネットワークにおける複数のアプレットが、１以上のリモート・サーバとHTTPプロトコルによって通信することを可能とする方法であって、前記ターゲット・リソースは前記リモート・サーバからアクセス可能であり、前記リモート・サーバは前記アプレットがそれからダウンロードされるところの第１のサーバとは異なるものであり、
前記方法は、
前記第１のサーバ上の１以上のアプレットを記憶するステップであって、前記アプレットは前記第１のサーバを除いた他のサーバとのメッセージの直接的な交換に対する固有の禁止を有する、前記記憶するステップと、
前記アプレットのうちの選択されたアプレットをクライアント・マシン上にダウンロードするステップと、
前記クライアント・マシン上に前記ダウンロードされた選択されたアプレットを実行するステップと、
前記第１のサーバ上のリダイレクタ機能を実行するステップと、
前記選択されたアプレットと前記リダイレクタ機能との間で第１の接続を確立するステップと、
前記アプレットから前記リダイレクタ機能へ接続要求を送るステップであって、前記接続要求は、(i)前記第１のサーバ以外の前記サーバの選択されたサーバのサーバ・ホスト・アドレスと、(ii)前記選択されたサーバのポート番号とを特定する、前記送るステップと、
前記リダイレクタ機能によって、前記接続要求を受信するステップと、
前記受信ステップに応答してフィルター・テーブルを確認して、前記クライアント・マシンが前記選択されたサーバにアクセスすることを承認されたかどうかを判断するステップと、
前記確認するステップが肯定的な結果である場合に、前記リダイレクタ機能と前記選択されたサーバとの間で第２の接続を前記リダイレクタ機能によって確立するステップであって、前記第２の接続は前記アプレットの代わりである、前記確立するステップと、
前記リダイレクタ機能を使用して前記アプレットと前記選択されたサーバとの間でメッセージを間接的に交換して、前記第１の接続と前記第２の接続との間で前記交換されたメッセージを転送するステップと
を含む前記方法。
【請求項３】
サンドボックス・セキュリティ制限が、前記固有の禁止を実施する、請求項２に記載の方法。
【請求項４】
前記フィルター・テーブルは複数のエントリを有し、前記エントリの各々は、前記第１のサーバ以外の前記サーバの特定のサーバのアドレスと、前記特定のサーバへアクセスが承認されたクライアント・マシン・アドレスの範囲とを含み、
前記確認するステップは、
前記接続要求からクライアント・アドレスを取り出すステップと、
前記テーブル中の特定のエントリを位置付けるステップであって、前記特定のエントリの前記アドレスは前記接続要求からの前記サーバ・ホスト・アドレスと一致するものである、前記位置付けるステップと、
前記取り出されたクライアント・アドレスと前記位置付けられたエントリからのアドレスの前記範囲とを比較するステップと
をさらに含む、請求項２に記載の方法。
【請求項５】
アプレットがそれからダウンロードされるところの第１のサーバとは異なるサーバとHTTPプロトコルによって通信することを可能とするためのコンピュータ・ネットワークにおけるシステムであって、
１以上のアプレットであって、前記アプレットの各々は第１のサーバに記憶され、前記アプレットは前記第１のサーバを除いた他のサーバとのメッセージの直接的な交換に対する固有の禁止を有する、前記１以上のアプレットと、
ターゲット・リソースであって、前記ターゲット・リソースの各々は前記第１のサーバと以外のサーバからアクセス可能である、前記ターゲット・リソースと、
前記アプレットのうちの選択されたアプレットがダウンロードされたクライアント・マシンと、
前記クライアント・マシン上に前記ダウンロードされた選択されたアプレットを実行する手段と、
前記第１のサーバ上のリダイレクタ機能を実行する手段と、
前記選択されたアプレットと前記リダイレクタ機能との間で第１の接続を確立する手段と、
前記アプレットから前記リダイレクタ機能へ接続要求を送る手段であって、前記接続要求は、(i)前記第１のサーバ以外の前記サーバの選択されたサーバのサーバ・ホスト・アドレスと、(ii)前記選択されたサーバ上のポート番号とを特定するものである、前記送る手段と、
前記リダイレクタ機能によって、前記接続要求を受信する手段と、
前記受信手段に応答してフィルター・テーブルを確認して、前記クライアント・マシンが前記選択されたサーバにアクセスすることを承認されたかどうかを判断する手段と、
前記確認する手段が肯定的な結果である場合に、前記リダイレクタ機能と前記選択されたサーバとの間で第２の接続を前記リダイレクタ機能によって確立する手段であって、前記第２の接続は前記アプレットの代わりである、前記確立する手段と、
前記リダイレクタ機能を使用して前記アプレットと前記選択されたサーバとの間でメッセージを間接的に交換して、前記第１の接続と前記第２の接続との間で交換されたメッセージを転送する手段と
を含む前記システム。
【請求項６】
サンドボックス・セキュリティ制限が、前記固有の禁止を実施する、請求項５に記載のシステム。
【請求項７】
前記フィルター・テーブルは複数のエントリを有し、前記エントリの各々は、前記第１のサーバ以外の前記サーバの特定のサーバのアドレスと、前記特定のサーバへアクセスが承認されたクライアント・マシン・アドレスの範囲とを含み、
前記確認する手段は、
前記接続要求からクライアント・アドレスを取り出す手段と、
前記テーブル中の特定のエントリを位置付ける手段であって、前記特定のエントリの前記アドレスは前記接続要求からの前記サーバ・ホスト・アドレスと一致するものである、前記位置付ける手段と、
前記取り出されたクライアント・アドレスと前記位置付けられたエントリからのアドレスの前記範囲とを比較する手段と
をさらに含む、請求項５に記載のシステム。
【請求項８】
前記第１のサーバ上でアド・オン機能を実行する手段と、
前記アド・オン機能を使用して交換されたメッセージの実行をさらに行う手段と
を含む、請求項５に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はコンピュータ・システムに関し、ネットワークに接続されたこのようなコンピュータ・システムを操作して、コンピュータ・システムがネットワークによってデータ及びコードにアクセスできるようにする方法に関する。具体的にいえば、アプレットにより、これらの発信元ではないホストとの通信に関する。
【０００２】
関連出願
１９９７年６月４日付出願で、インターナショナル・ビジネス・マシーンズ・コーポレイションに譲渡された「Ｈｏｓｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ａｃｃｅｓｓ  ｖｉａ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｐｒｏｇｒａｍｍｅｄ  Ｏｂｊｅｃｔｓ」なる名称の米国特許願第８６８８７３号。
【０００３】
【従来の技術】
過去数年間で、インターネット、詳細にいえばインターネットの上に設けられた機構の１つであるワールドワイド・ウェブ（ＷＷＷないしＷｅｂ）が爆発的に成長してきている。ＷＷＷは多くの異なるサーバに分散された多くのページないしファイルの情報を含んでいる。各ページはユニバーサル・リソース・ロケータ（ＵＲＬ）によって識別される。ＵＲＬはサーバ・マシンとそのマシン上の特定のファイルないしページの両方を指定する。単一のサーバには多数のページないしＵＲＬが常駐していることができる。
【０００４】
ＷＷＷを使用するために、クライアントはＷｅｂＥｘｐｌｏｒｅｒ（オペレーティング・システム／２（ＯＳ／２）(c)ＩＢＭコーポレイション）またはＮｅｔｓｃａｐｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｃｏｒｐｏｒａｔｉｏｎから入手可能なＮａｖｉｇａｔｏｒ（(c)）プログラムなどのＷｅｂブラウザといわれるソフトウェアを実行する。クライアントはブラウザと対話をして、特定のＵＲＬを選択し、これによりブラウザはそのＵＲＬないしページに対する要求をＵＲＬで特定されたサーバに送る。通常、サーバは要求されたページを検索し、そのページに関するデータを要求元のクライアントへ送り返すことによって、要求にこたえる（クライアント・サーバの対話はハイパーテキスト・トランスポート・プロトコル（「ＨＴＴＰ」）にしたがって行われる）。このページが次いでクライアントの画面でユーザに対して表示される。クライアントはサーバにアプリケーションを起動させて、たとえば、特定の話題に関するＷＷＷページを探索することも行う。場合によっては、ユーザに対するアクセスを選別して、特権ユーザだけに情報にアクセスすることを認める、ファイアウォールなどのセキュリティ機構のため、サーバに連絡を取れないことがある。これらの場合には、プロキシ・サーバまたはプロキシ・アプリケーションを使用して、このようなアクセスを管理させることもできる。プロキシ・サーバは保護及び非保護ネットワーク域にまたがり、関与しているユーザ及びこれらのユーザに対して構成されている特権に基づいてこれらの域の間の通過トラフィックを容易とするエンティティとみなすことができる。使用されるネットワーク接続はソケットと呼ばれ、これはネットワークからのデータストリームがどこと送受信されるかに過ぎない。サーバの番号付のポートを開いて、特定のソケットのデータストリームを聴取することができる。
【０００５】
ほとんどのＷＷＷページはＨＴＭＬ（ハイパーテキスト・マークアップ言語）という言語にしたがってフォーマットされる。それ故、典型的なページはテキストを、タグと呼ばれる埋め込みフォーマット・コマンドとともに含んでおり、タグを使用して、フォント・サイズ、フォント・スタイル（たとえば、イタリックか太字か）、テキストをどのようにレイアウトするか、及びその他のページのオプションを制御することができる。ＷｅｂブラウザはＨＴＭＬスクリプトを分析して、指定されたフォーマットにしたがってテキストを表示する。さらに、ＨＴＭＬページは、マルチメディア・データ、たとえば画像、ビデオ・セグメントまたはオーディオ・ファイルに対する、他のＵＲＬによる参照も含んでいる。Ｗｅｂブラウザはデータを検索し、これを表示または再生することによってこのような参照に応答する。あるいは、このようなマルチメディア・データは、周囲のＨＴＭＬテキストなしで、それ自体のＷＷＷページを形成することもできる。
【０００６】
ほとんどのＷＷＷページは他のＷＷＷページに対する１つまたは複数の参照も含んでいるが、これらはもとのページと同じサーバにある必要はない。このような参照は一般に、画面上の特定の位置を選択するユーザにより、通常は、マウス制御ボタンを（ダブル）クリックすることによって活動化される。これらの参照またはロケーションはハイパーリンクとして知られており、通常、特定の態様でブラウザによってフラグがつけられている（たとえば、ハイパーリンクに関連付けられたテキストは他の色であってもよい）。ユーザがハイパーリンクを選択した場合、参照つきのページが検索され、現在表示されているページと置き換わる。
【０００７】
ＨＴＭＬ及びＷＷＷに関する詳細な情報はＤｏｕｇｌａｓ  ＭｃＡｒｔｈｕｒの「Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  ａｎｄ  ＨＴＭＬ」、１８〜２６ページ、Ｄｒ  Ｄｏｂｂｓ  Ｊｏｕｒｎａｌ、１９９４年１２月及びＩａｎ  Ｇｒａｈａｍの「Ｔｈｅ  ＨＴＭＬ  ＳｏｕｒｃｅＢｏｏｋ」（Ｊｏｈｎ  Ｗｉｌｅｙ，Ｎｅｗ  Ｙｏｒｋ，１９９５年）に記載されている。
【０００８】
以上で述べ、また広い意味で、現在実施されているＷＷＷには、サーバからクライアントにダウンロードされたページが本質的に受動的なものである、換言すると、これらがクライアント・マシンで実行されるコードを含んでいないという欠点がある。これが意味することの１つは、サーバがクライアントとサーバの間の対話に関連する処理をクライアントへオフロードできないということである。それ故、クライアントが、たとえば、電話番号の入っている書式を作成している場合、電話番号の桁数に関する正式なチェックはサーバで行わなければならない。これはまずサーバに高い処理負荷をもたらし、次いで、何らかの修正すべき誤りがあった場合に、サーバとクライアントの間での時間のかかる余分な通信をもたらすものである。さらに、サーバがクライアントでの実行のためにコードをダウンロードできないことは、ＷＷＷを活用するために作成できるアプリケーションのタイプに対して大きい制限となる。
【０００９】
特にＳｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ  Ｉｎｃ．のＪａｖａ（(c)Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ  Ｉｎｃ．）技術に基づく最近の開発は上記の難点を克服することを求めたものである。Ｊａｖａ技術は主として、（ｉ）Ｃ及びＣ＋＋に若干類似した新しいプログラミング言語、及び（ｉｉ）仮想機械を含んでいる。本質的に、Ｊａｖａプログラミング言語で作成されたプログラムはバイト・コード形式にコンパイルされてから、クライアントで実行されているＪａｖａ仮想機械で実行時に解釈される。Ｊａｖａ仮想機械はバイト・コードを基礎となる物理機械によって実行できる命令に変換する。
【００１０】
Ｊａｖａを使用して作成されたプログラムはＷＷＷによってバイト・コードの形式でダウンロードして、クライアントにあるＪａｖａ仮想機械で実行できる。このようなプログラムは「アプレット」と呼ばれている。ＷＷＷによりコードをダウンロードするためにＪａｖａ技術を使用することには、２つの主要な利点がある。まず、各クライアントがＪａｖａ仮想機械のコピーを持っていると想定すると、アプレットはプラットフォーム・インデペンデントである（クライアントのシステムにある仮想機械は通常、オペレーティング・システムまたはＷｅｂブラウザそのもののいずれかに組み込まれている）。換言すると、クライアントそれぞれのオペレーティング・システム及びマシンにしたがってクライアントへダウンロードするために各種のコードをサーバが持っている必要がない。したがって、単一のバージョンの関連コードだけを作成し、維持することが必要であり、これはソフトウェア開発者にとっての人生を大幅に単純化する。第２に、アプレットが物理機械ではなく、仮想機械で実行されるため、セキュリティが大幅に改善される。この場合、ネットワークによってコードをダウンロードする場合、クライアントに記憶されているデータまたはプログラムに損傷を与える何らかの不当なコード（偶然その他の）を含んでいる危険が常に存在している。仮想機械は、しかしながら、アプレットの動作を監視し、このような不当な活動を監視し、防止することができる。
【００１１】
ソフトウェアをバイト・コードの形式でサーバからクライアントへダウンロードして、仮想機械で実行するという概念もＪａｖａ技術とは無関係であることが知られていることに留意されたい（たとえば、米国特許第５３４７６３２号参照）。
【００１２】
Ｊａｖａアプレットを呼び出すために、ＨＴＭＬテキストのＷｅｂページは、そのアプレットを含んでいるＵＲＬを特定する＜ＡＰＰＬＥＴ＞タグを含んでいる。ブラウザはアプレットを検索し、実行することによってこのタグに応答する。＜ＰＡＲＡＭ＞というタグも定義されており、このタグは一対の対応する＜ＡＰＰＬＥＴ＞及び＜／ＡＰＰＬＥＴ＞タグの内部に含まれており、実行時にアプレットに渡されるパラメータを指定するのに使用できる。（ＡＰＰＬＥＴ及びＰＡＲＡＭタグがＨＴＭＬの標準に正式に組み込まれているものではないが、それにもかかわらず多くのＷｅｂブラウザによって認識されていることに留意されたい。）Ｊａｖａ技術及びアプレットの詳細情報はＬａｕｒａ  Ｌｅｍａｙ及びＣｈａｒｌｅｓ  Ｐａｒｋｉｎｓの「Ｔｅａｃｈ  Ｙｏｕｒｓｅｌｆ  Ｊａｖａ  ｉｎ  ２１  Ｄａｙｓ」（Ｓａｍｓ．ｎｅｔ  Ｐｕｂｌｉｓｈｉｎｇ、米国インディアナポリス、１９９６年）に記載されている。
【００１３】
このようなアプレットの大きい制限は、標準Ｊａｖａモデルがアプレットに認めているのが、ダウンロード元のサーバと通信することだけであるということである。これはＪａｖａ「サンドボックス」セキュリティ制限と呼ばれている。これはある種のセキュリティの利便をもたらすが、ある種のアプリケーションでＪａｖａを使用することを大幅に制限する。たとえば、ネットワーク内の多くの他のシステムとの通信を達成することが目的であるコネクティビティが主な目的であるアプレット（ネットワーキング・アプレット）には、これは望ましくない。Ｊａｖａ開発キット（ＪＤＫ）バージョン１．１などの最近のＪａｖａのリリースはこの呼出しトラステッド・アプレットに対する解決策を提供するものであるが、この解決策はすべてのシナリオに当てはまるものではない。まず、１．０２などの以前のＪＤＫバージョンのユーザを対象としていない。第２に、最新のウェブ・ブラウザはまだＪＤＫ１．１に完全に準拠していない。第３に、最も重要なことは、ネットワーク・アドミニストレータはそのユーザがそのネットワーク中の任意のホストに接続することを望んでいないことである。その代わり、ネットワーク・アドミニストレータはアドミニストレーション管理及びセキュリティ機能という利点を備えたマルチホスト・アプレット通信の融通性を望んでいる。これらの利点のすべてを備えている解決策は入手できない。
【００１４】
【発明が解決しようとする課題】
本発明は発信元のサーバにおけるアプレット通信をリダイレクトすることによってアプレットが複数のホストと通信することを可能とし、発信元サーバがフィルタ及びアドオン・アドミニストレーション機能によりこのようなリダイレクトを管理する機能を備えている方法及び装置を提供する。この機能は対象アプレットも収納しているウェブ・サーバに常駐しているサーバ・アプリケーション（リダイレクタともいう）によって可能となる。「Ｊａｖａ」及び一般的にＪａｖａに関連した用語「アプレット」を本発明の説明に使用するが、このような用法は本発明を特定のプログラミングまたはネットワーク環境に限定することを目的とするものではない。
【００１５】
【課題を解決するための手段】
本発明はウェブ・サーバにインストールされ、通信を同一のサーバに常駐しているネットワーキング・アプレットにリダイレクトするアプリケーション（リダイレクタ）を定義する。ネットワーキング・アプレットをウェブ・サーバからダウンロードして、異なるホストに対するセッションを確立する場合、アプレット・コードはウェブ・サーバ名を検出し、リダイレクタのポート番号とのソケット接続を開く。リダイレクタは接続を確認し、ネットワーキング・アプレットは遠隔ホスト・サーバ名とソケットを、これが接続するリダイレクタに応答する。リダイレクタが要求されたホスト接続を行うと、２つの接続がネットワーキング・アプレットとホストの間の通信パイプを形成し、リダイレクタは中間転送トラフィック内におかれる。このような手法により、ネットワーキング・アプレットの機能を可能とするために、既存のネットワーク環境のいかなる個所の変更も必要なくなる。このようにして、ネットワーキング・アプレットは遠隔ホスト及びウェブ・サーバ・アドミニストレータと通信を行うことができ、かつリダイレクタの構成を変更することにより、このようなアプレットのリダイレクトを制御することができる。
【００１６】
本発明はこのようなアプレットのリダイレクトを管理する手法を特に画定する。リダイレクタはホスト・アクセス・フィルタリング・テーブルによって構成される。このテーブルは管理されているすべてのホスト・アドレス、及びこれらにアクセスすることが認められているユーザ・アドレス範囲を含んでいる。たとえば、ネットワーキング・アプレットがダウンロードされ、ホストＡへの接続を要求している場合、アプレットが実行される機械アドレスをチェックして、これがホストＡへのアクセスに認められている範囲内であるかどうかを調べる。範囲内でない場合、接続要求は拒絶され、フィルタの拒絶についての記録保存のため恐らくはログされる。「発明の実施の形態」の項で検討する例はこの対話を詳細に検討するものである。
【００１７】
本発明はネットワーキング・アプレットにかかる負荷を検索して、いくつかのホスト・アドレスを知り、要求する静的ホスト接続のための方法も画定する。その代わりに、上述のフィルタリング・テーブルを使用して、ユーザ・アドレス範囲によりホスト接続を経路指定することもできる。リダイレクタがこの機能に合わせて構成されている場合、ネットワーキング・アプレットはホスト接続が割り当てられるリダイレクタに接触することが必要なだけである。ホスト固有の接続要求なしにネットワーキング・アプレットが接触した場合、リダイレクタはフィルタ・テーブルを調べて、どのホストをアプレットのアドレス範囲へデフォルトで接続するべきかを判定する。
【００１８】
本発明はアドオン・モジュールを使用してリダイレクタ機能を強化する方法も画定する。この手法により、負荷機能を希望する場合に、リダイレクタの機能をウェブ・サーバに再プログラムまたは再分配する必要がなくなる。その代わりに、リダイレクタがアドオン・モジュールと対話し、リダイレクタが認識する必要さえない機能を達成する手法を画定する。発明の実施の形態の項で例として検討するこのようなアドオンの１つは、クライアントからサーバへのセッション・データを暗号化するセキュリティ・アドオンのものである。このような機能により、ネットワーキング・アプレットはこのような暗号化を達成するようにリダイレクタの機能を変更する必要なしに、暗号化セッションの利益を得られる。
【００１９】
【発明の実施の形態】
本発明の好ましい実施の形態はＪａｖａプログラミング・クラス及びＷｅｂクライアント／サーバ・ネットワーク環境を使用して実現される。これはユーザ作成クライアント・ネットワーキング・アプレット、ネットワーク上のターゲット・リソース及び本発明によって画定されるＷｅｂサーバに常駐するリダイレクタ・アプリケーションを含んでいる。この枠組における対話は特定の例を使用することによって最もよく理解されよう。
【００２０】
図１に示したネットワークの例は、現在のＪａｖａサンドボックス・セキュリティ制限によるネットワーキング・アプレット機能を表している。Ｊａｖａイネーブル・ウェブ・ブラウザまたはＪａｖａアプレット・ビューワなどのＷｅｂクライアント（１０１）を使用して、ユーザはＷｅｂサーバ（１０３）から動的にダウンロードしたアプレット（１０２）を実行する。しかしながら、サンドボックス制限により、アプレットはその発信元サーバ（１０３）と通信を行えるだけである。サーバ（１０４）上のアプリケーション及びリソースをアプレットが使用して、情報を記憶したり、そのタスクを完了するのを補助したりするが、アプレットがネットワーク上にあるほかのサーバにアクセスするのを認められていない。上述したように、Ｊａｖａ標準の最近の進歩は他のリソースにアクセスできるトラステッド・アプレットに関する枠組を定義しているが、この手法は今日のブラウザによって広くサポートされておらず、さらに重要なことは、どのリソースにアプレットがアクセスできるかについてのアドミニストレーション管理を備えていない。
【００２１】
図２に示すネットワークは本発明で可能なアクセスの範囲、ならびにそのアクセスに対して与えられるアドミニストレーション管理を表している。Ｗｅｂクライアント（２０１）でＪａｖａイネーブル・ブラウザまたはＪａｖａアプレット・ビューワを使用して、ユーザはＷｅｂサーバ（２０３）から動的にダウンロードしたアプレット（２０２）を実行する。Ｊａｖａで利用可能な機能により、アプレット（２０２）はリダイレクタ・プロキシ（２０４）を含む発信元サーバ（２０３）上のリソースに直接アクセスできるだけである。しかしながら、リダイレクタ（２０４）とのこの対話から、アプレット（２０２）はネットワーク（２０５）のどこかにあるアプリケーション及びリソースに間接的にもアクセスできる。リダイレクタ（２０４）はアプレット（２０２）と接触した後、アプレットに代わって他のネットワーク・リソース（２０５）に接触し、アプレット（２０２）とこれらのリソース（２０５）の間で情報を送る。このようにして、アプレット（２０２）が利用できる通信の範囲は本発明のリダイレクタ（２０４）を使用して拡張される。この拡大したアクセスはチェックなしに与えられるものではないが、これはリダイレクタ（２０４）が中心に存在することによって、リダイレクタを他のネットワーク・リソースへのアクセスを管理するために使用できるからである。外部アクセスがどのように与えられるか、また管理されるかについての詳細な説明を、図３及び図４について行う。
【００２２】
図３は本発明のリダイレクタ（３０３）機能を使用して、ホスト・サーバ（すなわちリモート・サーバ）（３０５）にアクセスしているＷｅｂクライアント（３０１及び３０６）のユーザＡ及びＢを示す。明確にするために、図の流れはＪａｖａアプレットがＷｅｂサーバ（すなわち第１のサーバ）（３０２）からＷｅｂクライアント（すなわちユーザワーク・ステーション）（３０１及び３０６）にダウンロードされた後で始まる。通信はアプレットがＷｅｂサーバ（３０２）におけるそのポート番号（３１１）を介してリダイレクタ（３０３）を開くことを要求することから始まる。前記接続要求はターゲット・サーバのサーバ・ホスト・アドレスを特定しないものである。図は、ユーザ（３０１及び３０６）がＷｅｂサーバ（３０２）から離隔していることを示している。これらは同一のコンピュータに常駐していてもかまわない。リダイレクタ（３０３）はクライアント（３０１）からのオープン要求を認識し、これを受け入れる（３１２）。クライアント（３０１）は次いで、Ｗｅｂサーバ（３０２）とは異なるホスト・サーバ（３０５）に接続することを要求する。リダイレクタ（３０３）はユーザのテーブル（ホスト・アクセス・フィルタリング・テーブル）（３０４）及び特権を確認して、ユーザＡがホスト・サーバ（３０５）に接触することを認められているかどうかを調べる（３１４）。フィルター・テーブルは、複数のエントリを有し、該エントリの各々は、該第１のサーバ以外の前記サーバの特定のサーバのアドレスと、前記特定のサーバへアクセスが承認されたクライアント・マシン・アドレスの範囲とを含む。前記確認は、接続要求からクライアント・アドレスを取り出すステップと、前記テーブル中の特定のエントリを位置付けるステップであって、前記特定のエントリの前記アドレスは前記取り出されたクライアント・アドレスと一致するものである、前記位置付けるステップをさらに含む。このシナリオにおいては、ユーザＡが接続することを認められており、リダイレクタがポートを開いて、ホスト・サーバ（３０５）と通信するものと想定する（３１５）。ホスト・サーバ（３０５）はこの要求（３１６）に正常に応答し、リダイレクタ（３０３）はクライアントに、ホスト・サーバ（３０５）と通信できるようになったことを通知する（３１７）。Ｊａｖａサンドボックス制限がＷｅｂサーバ（３０２）への直接アクセスを認めるだけであり（すなわち、サンドボックス・セキュリティ制限が、アプレットの有するＷｅｂサーバを除いたホスト・サーバとのメッセージの直接的な交換に対する固有の禁止を実施する）、ホスト・サーバ（３０５）へのこのさらなる接続は本発明によってのみ可能となることに留意されたい。この時点から、クライアント（３０１）は任意にホスト・サーバ（３０５）と情報を交換することができ、リダイレクタ（３１８）は仲介者（３１８）として活動する。
【００２３】
図３は適切な特権を有していないものと想定しているウェブ・クライアント（３０６）のユーザＢも示している。クライアント（３０６）はリダイレクタ・ポート（３１９）を開き、リダイレクタ（３０３）は成功と応答する（３２０）。クライアント（３０６）は次いで、接続することを許可されていない遠隔ホスト・サーバ（３０５）に接続することを要求する（３２１）。リダイレクタ（３０３）はそのホスト・アクセス・テーブルをチェックして、ユーザＢがこの接続に対して必要な特権を有していないことを調べる（３１４）。リダイレクタ（３０３）は次いで接続要求を拒絶し、クライアント（３０６）にアクセスが受け入れられなかったことを通知する（３２２）。ユーザＡを受け入れ、ユーザＢを受け入れないホスト・アクセス・テーブルをサーバで、あるいはホストごとにホストで遠隔で変更するか、あるいは既存のホストの流れを動的にリダイレクトするように変更することができる。このフィルタリング機能により、アドミニストレータはウェブ・クライアントに拡張アクセスを与えることができるとともに、セキュリティのための制御も維持できる。
【００２４】
図４は本発明によって画定されたアドオン機能を組み込んだ流れの例を示す。好ましい実施の形態で使用される特定のアドオンはクライアントとサーバの間の暗号化／暗号解読機能を可能とするものである。明確とするため、図の流れはＪａｖａアプレットがＷｅｂサーバ（４０２）からＷｅｂクライアント（４０１）にダウンロードされた後で始まる。リダイレクタ（４０３）を開くことを要求しているアプレットとの通信が、Ｗｅｂサーバ（４０２）におけるそのポート番号を介したセキュア接続によって始まる（４１１）。安全な接続が要求されたことがわかると、リダイレクタ（４０３）はクライアントをそのセキュア・ポート機能（４０４）と接続し、成功を返す（４１２）。クライアント（４０１）は次いで、ホスト・サーバ（４０７）に接続を要求し（４１３）、リダイレクタ（４０３）はホスト・アクセス・テーブル（ホスト・アクセス・フィルタリング・テーブル）（４０５）のユーザ特権をチェックする。ユーザがこのホスト・サーバ（４０７）へのアクセスが認められていることがわかると、リダイレクタ（４０３）はホスト・サーバ・ポート（４１５）を開き、正常な確認を受信し（４１６）、クライアントに接続の成功を通知する（４１７）。これでセキュア接続が確立され、クライアント（４０１）は暗号化されたデータ・フローをウェブ・サーバ（４０２）に送る（４１８）。セキュア・ポート（４０４）機能はデータ・フローが暗号化されることを知って、データを暗号化／暗号解読アドオン（４０６）へ渡す（４１９）。暗号化アドオンはシステムがサポートしている任意の形態の暗号化でよい。アドオンはデータを暗号解読し、正規のデータ・フロー（４２０）としてリダイレクタ（４０３）へ戻す。リダイレクタはデータ・フロー（４２１）を取り入れ、これをホスト・サーバ（４０７）へ送る。ホスト（４０７）が正常なデータをリダイレクタへ戻し、リダイレクタがこれを通して暗号化する場合にはいつでも、これと同じプロセスが逆にされる。このようにして、アプレットはサーバ・コードまたはリダイレクタ・コードへの変更なしにセキュア・セッションを得る機能を獲得する。この例はセキュリティ・アドオンを示しているが、アドオンの概念は特定の形態のアドオンに限定されるものではなく、リダイレクタに関する管理の知識を必要とすることのない任意のその他の機能のアドオンに適用できるものである。
【００２５】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００２６】
（１）  アプレットがそれからダウンロードされるところの第１のサーバ以外の他のサーバにアクセスすることを可能とする方法であって、当該方法は、前記アプレットが前記他のサーバをアクセスすることを防止する前記アプレットのサンドボックス・セキュリティ制限を克服するために動作する方法であって、
前記方法は、
選択されたアプレットを前記第１のサーバからユーザワーク・ステーションにダウンロードするステップであって、前記第１のサーバは独自のアドレスを有する、前記ダウンロードするステップと、
前記第１のサーバの前記アドレスを検出するステップと、
前記選択されたアプレットから前記第１のサーバ上のリダイレクタ機能へ第１のソケット接続を開くステップと、
前記選択されたアプレットから前記リダイレクタ機能へターゲット・ホスト・サーバに対するアドレスを送るステップと、
前記選択されたアプレットに代わって前記リダイレクタ機能から前記ターゲット・ホスト・サーバ上のホスト機能へ第２のソケット接続を開くステップと、
前記第１のソケット接続及び前記第２のソケット接続を用いて前記リダイレクタ機能を介してデータをリダイレクトすることによって前記選択されたアプレットから前記ホスト機能に間接的にアクセスするステップと
を含む前記方法。
（２）  １以上のターゲット・リソースにアクセスすることを目的として、コンピュータ・ネットワークにおける複数のアプレットが、１以上のリモート・サーバと通信することを可能とする方法であって、前記ターゲット・リソースは前記リモート・サーバからアクセス可能であり、前記リモート・サーバは前記アプレットがそれからダウンロードされるところの第１のサーバとは異なるものであり、
前記方法は、
前記第１のサーバ上の１以上のアプレットを記憶するステップであって、前記アプレットは前記第１のサーバを除いた他のサーバとのメッセージの直接的な交換に対する固有の禁止を有する、前記記憶するステップと、
前記アプレットのうちの選択されたアプレットをクライアント・マシン上にダウンロードするステップと、
前記クライアント・マシン上に前記ダウンロードされた選択されたアプレットを実行するステップと、
前記第１のサーバ上のリダイレクタ機能を実行するステップと、
前記選択されたアプレットと前記リダイレクタ機能との間で第１の接続を確立するステップと、
前記アプレットから前記リダイレクタ機能へ接続要求を送るステップであって、前記接続要求は、(i)前記第１のサーバ以外の前記サーバの選択されたサーバのサーバ・ホスト・アドレスと、(ii)前記選択されたサーバのポート番号とを特定する、前記送るステップと、
前記リダイレクタ機能によって、前記接続要求を受信するステップと、
前記受信ステップに応答してフィルター・テーブルを確認して、前記クライアント・マシンが前記選択されたサーバにアクセスすることを承認されたかどうかを判断するステップと、
前記確認するステップが肯定的な結果である場合に、前記リダイレクタ機能と前記選択されたサーバとの間で第２の接続を前記リダイレクタ機能によって確立するステップであって、前記第２の接続は前記アプレットの代わりである、前記確立するステップと、
前記リダイレクタ機能を使用して前記アプレットと前記選択されたサーバとの間でメッセージを間接的に交換して、前記第１の接続と前記第２の接続との間で前記交換されたメッセージを転送するステップと
を含む前記方法。
（３）  サンドボックス・セキュリティ制限が、前記固有の禁止を実施する、（２）に記載の方法。
（４）  前記フィルター・テーブルは複数のエントリを有し、前記エントリの各々は、前記第１のサーバ以外の前記サーバの特定のサーバのアドレスと、前記特定のサーバへアクセスが承認されたクライアント・マシン・アドレスの範囲とを含み、
前記確認するステップは、
前記接続要求からクライアント・アドレスを取り出すステップと、
前記テーブル中の特定のエントリを位置付けるステップであって、前記特定のエントリの前記アドレスは前記接続要求からの前記サーバ・ホスト・アドレスと一致するものである、前記位置付けるステップと、
前記取り出されたクライアント・アドレスと前記位置付けられたエントリからのアドレスの前記範囲とを比較するステップと
をさらに含む、（２）に記載の方法。
（５）  １以上のターゲット・リソースにアクセスすることを目的として、コンピュータ・ネットワークにおける複数のアプレットが、１以上のリモート・サーバと通信することを可能とする方法であって、前記ターゲット・リソースは前記リモート・サーバからアクセス可能であり、前記リモート・サーバは前記アプレットがそれからダウンロードされるところの第１のサーバとは異なるものであり、
前記方法は、
前記第１のサーバ上の１以上のアプレットを記憶するステップであって、前記アプレットは前記第１のサーバを除いた他のサーバとのメッセージの直接的な交換に対する固有の禁止を有する、前記記憶するステップと、
前記アプレットのうちの選択されたアプレットをクライアント・マシン上にダウンロードするステップと、
前記クライアント・マシン上に前記ダウンロードされた選択されたアプレットを実行するステップと、
前記第１のサーバ上のリダイレクタ機能を実行するステップと、
前記選択されたアプレットと前記リダイレクタ機能との間で第１の接続を確立するステップと、
前記アプレットから前記リダイレクタ機能へ接続要求を送るステップであって、前記接続要求は前記リモート・サーバのうちのターゲット・サーバのサーバ・ホスト・アドレスを特定しないものである、前記送るステップと、
前記リダイレクタ機能によって、前記接続要求を受信するステップと、
前記受信ステップに応答してフィルター・テーブルを確認して、前記クライアント・マシンとともに使用されるべきデフォルト・ターゲット・サーバを決定するステップと、
前記確認するステップが肯定的な結果である場合に、前記リダイレクタ機能と前記デフォルト・ターゲット・サーバとの間で第２の接続を前記リダイレクタ機能によって確立するステップであって、前記第２の接続は前記アプレットの代わりである、前記確立するステップと、
前記リダイレクタ機能を使用して前記アプレットと前記デフォルト・ターゲット・サーバとの間でメッセージを間接的に交換して、前記第１の接続と前記第２の接続との間で前記交換されたメッセージを転送するステップと
を含む前記方法。
（６）  サンドボックス・セキュリティ制限が、前記固有の禁止を実施する、（５）に記載の方法。
（７）  前記フィルター・テーブルは、複数のエントリを有し、前記エントリの各々は、前記第１のサーバ以外の前記サーバの特定のサーバのアドレスと、前記特定のサーバへアクセスが承認されたクライアント・マシン・アドレスの範囲とを含み、
前記確認するステップは、
前記接続要求からクライアント・アドレスを取り出すステップと、
前記テーブル中の特定のエントリを位置付けるステップであって、前記特定のエントリの前記アドレスは前記取り出されたクライアント・アドレスと一致するものである、前記位置付けるステップと
をさらに含む（５）または（６）のいずれかに記載の方法。
（８）  アプレットがそれからダウンロードされるところの第１のサーバとは異なるサーバと通信することを可能とするためのコンピュータ・ネットワークにおけるシステムであって、
１以上のアプレットであって、前記アプレットの各々は第１のサーバに記憶され、前記アプレットは前記第１のサーバを除いた他のサーバとのメッセージの直接的な交換に対する固有の禁止を有する、前記１以上のアプレットと、
ターゲット・リソースであって、前記ターゲット・リソースの各々は前記第１のサーバと以外のサーバからアクセス可能である、前記ターゲット・リソースと、
前記アプレットのうちの選択されたアプレットがダウンロードされたクライアント・マシンと、
前記クライアント・マシン上に前記ダウンロードされた選択されたアプレットを実行する手段と、
前記第１のサーバ上のリダイレクタ機能を実行する手段と、
前記選択されたアプレットと前記リダイレクタ機能との間で第１の接続を確立する手段と、
前記アプレットから前記リダイレクタ機能へ接続要求を送る手段であって、前記接続要求は、(i)前記第１のサーバ以外の前記サーバの選択されたサーバのサーバ・ホスト・アドレスと、(ii)前記選択されたサーバ上のポート番号とを特定するものである、前記送る手段と、
前記リダイレクタ機能によって、前記接続要求を受信する手段と、
前記受信手段に応答してフィルター・テーブルを確認して、前記クライアント・マシンが前記選択されたサーバにアクセスすることを承認されたかどうかを判断する手段と、
前記リダイレクタ機能によって、前記確認する手段が肯定的な結果である場合に、前記リダイレクタ機能と前記選択されたサーバとの間で第２の接続を確立する手段であって、前記第２の接続は前記アプレットの代わりである、前記確立する手段と、
前記リダイレクタ機能を使用して前記アプレットと前記選択されたサーバとの間でメッセージを間接的に交換して、する前記第１の接続と前記第２の接続との間で交換されたメッセージを転送する手段と
を含む前記システム。
（９）  サンドボックス・セキュリティ制限が、前記固有の禁止を実施する、（８）に記載のシステム。
（１０）  前記フィルター・テーブルは複数のエントリを有し、前記エントリの各々は、前記第１のサーバ以外の前記サーバの特定のサーバのアドレスと、前記特定のサーバへアクセスが承認されたクライアント・マシン・アドレスの範囲とを含み、
前記確認する手段は、
前記接続要求からクライアント・アドレスを取り出す手段と、
前記テーブル中の特定のエントリを位置付ける手段であって、前記特定のエントリの前記アドレスは前記接続要求からの前記サーバ・ホスト・アドレスと一致するものである、前記位置付ける手段と、
前記取り出されたクライアント・アドレスと前記位置付けられたエントリからのアドレスの前記範囲とを比較する手段と
をさらに含む、（８）に記載のシステム。
（１１）  前記第１のサーバ上でアド・オン機能を実行する手段と、
前記アド・オン機能を使用して交換されたメッセージの実行をさらに行う手段と
を含む、（８）に記載のシステム。
（１２）  アプレットがそれからダウンロードされるところの第１のサーバとは異なるサーバと通信することを可能とするためのコンピュータ・ネットワークにおけるシステムであって、
１以上のアプレットであって、前記アプレットの各々は第１のサーバに記憶され、前記アプレットは前記第１のサーバを除いた他のサーバとのメッセージの直接的な交換に対する固有の禁止を有する、前記１以上のアプレットと、
ターゲット・リソースであって、前記ターゲット・リソースの各々は前記第１のサーバと以外のサーバからアクセス可能である、前記ターゲット・リソースと、
前記アプレットのうちの選択されたアプレットがダウンロードされたクライアント・マシンと、
前記クライアント・マシン上に前記ダウンロードされた選択されたアプレットを実行する手段と、
前記第１のサーバ上のリダイレクタ機能を実行する手段と、
前記選択されたアプレットと前記リダイレクタ機能との間で第１の接続を確立する手段と、
前記アプレットから前記リダイレクタ機能へ接続要求を送る手段であって、前記接続要求はターゲット・サーバのサーバ・ホスト・アドレスを特定しないものである、前記送る手段と、
前記リダイレクタ機能によって、前記接続要求を受信する手段と、
前記受信手段に応答してフィルター・テーブルを確認して、前記クライアント・マシンとともに使用されるべきデフォルト・ターゲット・サーバを決定する手段と、
前記確認する手段が肯定的な結果である場合に、前記リダイレクタ機能と前記デフォルト・ターゲット・サーバとの間で第２の接続を前記リダイレクタ機能によって確立する手段であって、前記第２の接続は前記アプレットの代わりである、前記確立する手段と、
前記リダイレクタ機能を使用して前記アプレットと前記デフォルト・ターゲット・サーバとの間でメッセージを間接的に交換して、前記第１の接続と前記第２の接続との間で前記交換されたメッセージを転送する手段と
を含む前記システム。
（１３）  サンドボックス・セキュリティ制限が、前記固有の禁止を実施する、（１２）に記載のシステム。
（１４）  前記フィルター・テーブルは複数のエントリを有し、前記エントリの各々は、前記第１のサーバ以外の前記サーバの特定のサーバのアドレスと、前記特定のサーバへアクセスが承認されたクライアント・マシン・アドレスの範囲とを含み、
前記確認する手段は、
前記接続要求からクライアント・アドレスを取り出す手段と、
前記テーブル中の特定のエントリを位置付ける手段であって、前記特定のエントリの前記アドレスは前記取り出されたクライアント・アドレスと一致するものである、前記位置付ける手段と
をさらに含む、（１２）または（１３）のいずれかに記載のシステム。
【図面の簡単な説明】
【図１】サンドボックス制限（従来技術）のあるネットワーク環境の図である。
【図２】非発信元ホストへのアクセスを可能とする本発明によるネットワーク環境の図である。
【図３】被管理拡張アクセスに対して本発明を使用した場合のアプレット、リダイレクタ及びホスト・サーバの間の流れを示す図である。
【図４】本発明による暗号化などのアドオン機能を使用するのに関与する流れの図である。
【符号の説明】
１０１  ウェブ・ユーザ・クライアント
１０２  アプレット
１０３  ウェブ・サーバ
１０４  サーバ・アプリケーション及びリソース
【図１】
0003966487.tif 000002
【図２】
0003966487.tif 000003
【図３】
0003966487.tif 000004
【図４】
0003966487.tif 000005