JP2009508260A - 複数のプロセスにおけるポートの共有 - Google Patents

複数のプロセスにおけるポートの共有 Download PDF

Info

Publication number
JP2009508260A
JP2009508260A JP2008531207A JP2008531207A JP2009508260A JP 2009508260 A JP2009508260 A JP 2009508260A JP 2008531207 A JP2008531207 A JP 2008531207A JP 2008531207 A JP2008531207 A JP 2008531207A JP 2009508260 A JP2009508260 A JP 2009508260A
Authority
JP
Japan
Prior art keywords
connection
application
port
client
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008531207A
Other languages
English (en)
Other versions
JP4965574B2 (ja
Inventor
ウィルヘルム シュミーダー ロバート
チック ジョイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009508260A publication Critical patent/JP2009508260A/ja
Application granted granted Critical
Publication of JP4965574B2 publication Critical patent/JP4965574B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Abstract

システムレベルで動作するポートリスニングサービスが静的ポートで聴取するように割り当てられている。静的ポートはセッションレベルで動作する複数のアプリケーションに関連した複数の固有のIDにインデックスを付けることができる。サーバアプリケーションはクライアントに固有の接続ID、サーバのIPアドレス、接続のための静的なポート番号を提供する。クライアントが固有の接続IDを参照して接続を行うと、アプリケーションがセッションレベルで動作するように、ポートリスニングサービスはアプリケーションがセッションレベルで更に動作するように接続のための対応するソケットを適切なアプリケーションインスタンスに転送することができる。このようにして、ポートリスニングサービスは、セッションレベルで動作している複数の異なったアプリケーションに1つの静的ポート用の接続サービスを供給することができる。

Description

本発明は、複数のプロセスにおけるポートの共有に関する。
コンピュータ化されたシステムの普及が進むにつれて、大規模なものでも小規模なものでもネットワーク上でファイルやコンピュータシステムのリソースの分散化が要求される。一般的に、コンピュータシステムとその関連装置は、様々な理由からネットワーク上で情報のやりとりを行うが、例えば個人的な電子メールの交換、商品の購買、会計情報の提供等がある。コンピュータシステムとその関連アプリケーションがますます高度なものになるほど、ネットワーク上でのデータやリソース共有に関連する難題も増えてくることは想像に難くない。
ネットワーク内にリソースを分散する現行のいくつかの方法は、1または複数のクライアントとリソースを共有してローカルにはリソースをインストールしない、集中ネットワークサーバを含む集中コンピューティングシナリオを含む。この種の機能性のために使用されているプロトコルの1つに、リモートデスクトッププロトコル(「RDP」)がある。リモートデスクトッププロトコルを使用すれば、集中ネットワークサーバはネットワーク上にある他のクライアントとデータやリソースを共有することができる。クライアントはリソースがあたかもローカルにインストールされているようにして、リソースとのやりとりが行なえる場合もある(例えば、マウス、キーボードにイベントを送信する)。クライアントのコンピュータシステムとネットワークサーバとのやりとりは、あたかもクライアントのコンピュータシステムが自身にインストールされているリソースでローカルにデータ処理しているかのようにシームレスに行われるのが理想である。
上記の集中化共有モデルとある面で類似している別のタイプのシステムには、ネットワーク上で他のクライアントコンピュータシステムとアプリケーションデータを共有するように構成されたサーバ(あるいは「送信」)コンピュータシステムを含む。この例では、サーバは、1または複数のクライアント(あるいは「受信」)コンピュータシステムとデータビューの共有に使用する「コラボレーションAPI」のようなAPI(Application Program Interface)を起動する。クライアントのコンピュータシステムは、ローカルで共有データ処理して表示することが可能であり、それは上述の集中コンピューティングシナリオと類似している。
残念ながら、このようなタイプのシステムには潜在的に困難な問題が多数あり、アプリケーションにより作成されたデータを、ネットワーク上で比較的少数以上のクライアントコンピュータシステムと共有することを困難にしている。例えば、共有コンピュータシステムがデータ共有のアプリケーションを開始すると、サーバアプリケーションは共有コンピュータシステムにてポートリスナーを開始し、呼び出されたクライアントと通信して、そのポートを通じて接続する。呼び出された様々なクライアントは、このポートを通じてそのサーバアプリケーションに接続できる。残念ながら、サーバアプリケーションが異なれば、同じポート上に別のリスナーをたてることは除外されてしまい、異なったネットワーク接続を受信することになる。
ポート当たりアプリケーションリスナーが典型的に1人しかいない理由の1つは、TCP(Transmission Control Protocol)の事情により、接続を開始するのに使用するデータがIP(Internet Protocol)アドレスとコンピュータポート番号だけということがあげられる。単一のポートを通して接続データを受信する際、ネットワークサーバがアプリケーションを区別するためには、一般的にこれだけでは十分な情報ではない。特に、たとえ別のクライアントが別のアプリケーションでリザーブされた単一のポートでアプリケーションの別のインスタンスに接続しようと試みても、サーバができるのはクライアントの接続要求データを最初にリザーブしていたアプリケーションのインスタンスに送付することだけであろう。
1つのアプリケーションだけが典型的に1つの所与のポートをリザーブする別の理由は、上述のようにポートリスナーを開始する際、所与のアプリケーションはセッションレベル(例えば、コンピュータアクセスの限られたレベル)で動作している可能性があるからである。セッションレベルの実行は、かなり限定された動作レベルであり、コンピュータシステムの他のコンポーネントに対するアプリケーションの露出を最小化している。システムレベル(例えば、コンピュータ全体へのアクセス)で操作すると、サーバに対して動作責任が生じるので、一般的にセッションモードでアプリケーションを動作させるのが望ましい。例えば、システムレベルでアプリケーションを実行すると、アプリケーションはサーバ上の複数の異なったポートに制限なくアクセスすることはできるが、アプリケーションの危険要素(例えば、バグ)により、サーバ全体を危険にさらす可能性がある。
代案として異なったアプリケーションをセッションレベルの動作のままにすることも考えられるが、同じ静的ポートに由来する異なった動的ポートを単に開放しておくことも考えられる。しかしながら動的ポートは、ファイアウォール内で発見したり管理することが難しいので、ネットワークによっては利用できないことがよくある。更に、ネットワーク管理者は、動的ポートを禁止するだけでなく、同様の理由によりセキュリティを気にする余り、第一に、利用できる静的ポート数を制限してしまう。このためアプリケーションが異なると、利用可能なポートすべてがリザーブされている場合には、サーバの別の異なったポートを単に開放するだけでも除外されてしまう場合がある。
従って、現在のリソース共有技術には取り組むべきたくさんの難題がある。
本発明を実施すれば、セッションレベルでアプリケーションを実行しながらも、同一の静的ポートを通して異なったアプリケーションを区別できるシステム、方法、コンピュータプログラム製品の技術に関する上記の1または複数の問題を解決する。特に、セッションで動作している1または複数のサーバアプリケーション(およびその異なったインスタンス)は、対応する1または複数の固有の接続識別子(「ID」)により登録可能であり、多数の固有の接続IDをポートと関連付けることができる。システムレベルで動作しているポートリスナーは、割り当てられたポートを通してクライアントの接続を受信すると固有の接続IDを聴取することができる。固有の接続IDを認識すると、ポートリスナーはセッションレベルで動作している対応するアプリケーションに接続用ソケットを渡すことが可能になり、固有の接続IDで登録される。
例えば、単一のポートを通して複数のアプリケーションにネットワーク接続を提供するサーバか共有コンピュータの観点からの方法は、第一の接続識別子を第一のアプリケーションに関連付け、第二の接続識別子を第二のアプリケーションに関連付けることを含むことができる。この場合、第一と第二のアプリケーションはセッションレベルで動作している。この方法には、ポートにはポート番号、共有コンピュータシステムにはネットワークアドレス、および第一の接続識別子を含むクライアントの接続要求を受信することも含むことができる。更に、この方法はクライアントの接続要求を第一のアプリケーションに転送することを含むこともでき、そのポートを通して第一のアプリケーションがクライアントに接続することができる。更にまた、この方法は、ポート番号に対応するポートを通して異なったクライアント接続を、第二のアプリケーションに提供することを含むこともできる。
クライアントの観点から本発明を実行する場合の別の方法では、第一の呼び出しを受信して、サーバコンピュータシステムにて第一のアプリケーションと通信することを含むことができる。第一の呼び出しには少なくともポート番号と第一の接続識別子が含まれる。この方法は、第二の呼び出しを受信してサーバコンピュータシステム上で第二のアプリケーションと通信することも含まれ、第二の呼び出しもまた少なくともポート番号と第二の接続識別子を含んでいる。クライアントはポート番号を通してサーバ上で第一と第二のアプリケーションと通信するステップを行うことが可能であり、特に同じ静的ポートを通して多数のアプリケーションと通信をするようになる。
この要約は、概念の抽出を単純な形で紹介するために提供するものであり、以下の発明の詳細説明にて更に説明を加える。この要約は、請求された発明の対象の主要な特徴あるいは本質的な特徴を確認するためのものではなく、また請求された発明の対象の範囲を判定する際の補助用に使用されるものでもない。
本発明のさらなる特徴や利点は以下に説明するが、一部は説明だけで明確になるし、あるいは発明を実施することにより理解することができるものもある。本発明の特徴や利点は、特に添付の請求項内で指摘している機器とその組合せによって、実現し獲得することができる。本発明の様々な特徴は以下の記述や添付の請求項から更に明確になる、あるいは以下に説明する発明の実施により理解することができる。
上記およびその他の本発明の利点や特徴を得ることかできる方法を説明するために、添付図面に描かれている具体的な実施形態を参照することにより上記では簡単に説明した本発明についてさらにしく説明する。このような図面は発明の典型的な実施形態を描くだけであり、発明の範囲を制限するものでないが、添付図面を使用することにより、本発明は特異性と詳細を加味して記述し、説明することができる。
本発明の実現範囲は、アプリケーションをセッションレベルで実行していても、同じ静的ポートを通して異なったアプリケーションと区別するシステム、方法、コンピュータプログラム製品に及ぶ。特に、セッションで動作している1または複数のサーバアプリケーション(および異なったそのインスタンス)は、対応する1または複数の固有の接続識別子(「ID」)に登録することが可能であり、その複数の固有の接続IDはポートと関連付けすることができる。システムレベルで動作しているポートリスナーは、割り当てられたポートを通してクライアントの接続を受信する際、固有の接続IDを聴取することができる。固有の接続IDを認識すると、ポートリスナーは、セッションレベルで動作している対応するアプリケーションの接続のためのソケットを渡すことができて、固有の接続IDに登録される。
以下の説明と特許請求の範囲から更によく理解されるように、重大なセキュリティの懸案事項には配慮を続けながら、これらおよび他の特徴はネットワーク通信にこれまでよりも大きな柔軟性を提供している。例えば、ネットワーク管理者は、動的なポート割り当てをしないで同じ静的ポートを通して通信する、あるいはシステムレベルでこれらのネットワークアプリケーションを動作させるいくつかのネットワークアプリケーションを有することができる。ある面では、このことにより、ネットワーク通信から重要なアプリケーションが除外されてしまわないかという不当な心配をせずに、ネットワーク管理者は、ポート数をかなり制限しておくことができる。更に、ネットワークアプリケーションは、セッションレベルの動作で通信ができるので1つのアプリケーションに対する問題がシステム全体に移転することの心配は最小限である。
図1Aは、システムがどうようにして本発明の態様に従って動作するかの1つの概要例を示す。特に、図1Aは、アプリケーション115とアプリケーション120が各々同じ静的ポート140を通して対応する異なったクライアント145とクライアント150とが通信することを示す。アプリケーション115とアプリケーション120がこのようにできるのは、少なくとも一部は各々のアプリケーションが個別の対応するネットワーク通信ソケット190、195にそれぞれ関連付けられているからである。
特に、通信ソケット190、195は、固有の接続識別子(「ID」、ここでは「固有のID」とも呼ぶ)と関連付けられており、双方とも同じ静的ポート140を使用するように登録されている。クライアントが明確に識別可能であり動作させることができる所与のアプリケーションのインスタンスだけがある場合のように、固有のIDがクライアントのユーザ名または電子メールアドレスを含むことができる。固有の接続IDがランダムに作成した数字である場合もある。とにかく、ポート140がクライアント145からアプリケーション115に向けられたTCP通信を受信すると、ポート140にてポートリスニングサービス(図1Aの135)により開かれたリスナーは、接続IDを使用してそのクライアント通信をアプリケーション115かアプリケーション120(または、図示していない他のアプリケーション)に伝えるか否かを確認することができる。
図1Bは、セッションレベルでの動作を維持しながら、複数のアプリケーションがサーバ上でどのようにリスニングサービスに登録することができるかを更に詳細に示した概略図である。事前問題としては、以下の説明や請求項は頻繁に「サーバ」と呼んでいるが、それは一例であって限定するものではないことは理解されよう。特にサーバ100は普通に理解されているようなネットワークサーバである必要はなく、ネットワークを介して別のクライアントコンピュータシステムとデータ共有することにより、コンピュータシステムを共有するように動作している単なる別のクライアントコンピュータシステムであってもよい。
図1Bにより、サーバ(あるいは「共有コンピュータ」)100が、少なくとも動作のセッションレベル105(すなわち、コンピュータアクセスの限定レベル)と動作のシステムレベル110(例えば、「セッション0」)とを備えることを示す。一般的に動作のセッションレベルとは、コンピュータ上でアプリケーションが典型的に動作するモードであり、動作の所与の「セッション」に対する限定されたパラメータ内でメモリとハードウェアへのアクセスが制限される。一方、動作のシステムレベルとは、コードがコンピュータシステム内のすべてのハードウェアとメモリに直接アクセスできるようにする処理モードである。
図1Bは、サーバ100がセッションレベル105で動作するサーバアプリケーション115、120(アプリケーション120は、アプリケーション115の別のインスタンス、あるいは全く別のアプリケーションであることができる)を含むことを示す。アプリケーション115、120は、サーバ100にインストールできる複数のサーバアプリケーションの単なる例であり、単一の静的ポートを通して通信しようとするサーバ100上のサーバアプリケーションはもっと沢山ある。アプリケーション115,120の例としては、一般的なワードプロセッシング、スプレッドシートプログラム、データベースプログラム等と同様に、サーバ100から1または複数の他のクライアントにデータビューをブロードキャストするネットワーク表示プログラムも含まれる。
図1Bは、サーバ100がポートリスニングサービス135を含んでいることを更に示す。一実施例では、サーバ100がスタートアップ時あるいは初期起動時にポートリスニングサービス135を開始するが、その際リスニングサービス135はシステムレジストリから任意の適切な構成データ(図示せず)を読み込む。一般的に、リスニングサービス135は、システムレジストリ(図示せず)で指示された多くの静的ポートへのアクセスを保証するために、システムレベル110で動作しながらこれらの様々な起動関数を実施する。特に、サーバ100は、例えば図1Aのポート140のような1または複数の静的ポートを聴取するようにリスニングサービス135を割り当てる。更に、サーバ100は、複数の他の静的ポート(図示せず)を聴取するようにリスニングサービス135を割り当てることができる。例えば、内部ネットワークと外部ネットワークにサービスを行うネットワークカードのような複数のネットワークカードを搭載したコンピュータシステムは、両方のカードおよび両方のネットワーク用の複数の静的ポート上で同じリスニングサービスを開始する場合もある。所与のポートを介して通信する必要があるサーバアプリケーションが開始されると、そのサーバアプリケーションは、適切なポートリスニングサービス(例えば、135)に「レディ(ready)」メッセージ(例えば、123)を送信することができる。レディメッセージは、多くの事象を発生させることができる。例えば、一実施例では、レディメッセージによりリスニングサービスが接続IDアプリケーションプログラムインタフェース(API)(図示せず)を呼び出し、それが固有の接続IDを生成して、それがランダムに作成した数のように任意の適切で安全な識別子であることができる。この接続IDは、システムメモリ中に記憶されてリスニングサービスに関連して接続IDインデックス130の中で参照される。例えば、リスニングサービスは、この固有の接続IDを接続ID APIから取り出して、この接続IDを、接続IDインデックス130のような適切な接続IDインデックスまたはテーブル内のアプリケーション用の識別子に関連付ける。
特に、サーバアプリケーション120は、レディメッセージ123をポートリスニングサービス135に送信するが、プロセス最中のサーバアプリケーション115は、レディメッセージ113を既に送信していることを図1Bに示す。一般的に、サーバアプリケーションは、ソケット(例えば、図1A、図1Dの190、195)を通してレディメッセージを送信し、サーバ100がソケットを制御してそれを提供する際に、サーバアプリケーションが最終的に使用する。メッセージを送信する際、サーバアプリケーションにはアプリケーション用識別子が含まれており、それは生成した接続IDと関連付けることができる。例えば、メッセージ113は、アプリケーション識別子「App115」を含んでいるが、メッセージ123はアプリケーション識別子「App120」を含むことを図1Aに示す。
レディメッセージは、適切なリスニングサービスにコンポーネントオブジェクト、あるいはそれと等価なものを設定して、サーバ100のシステムレベル110およびセッションレベル105の間のインタフェースになることができる。一実施例では、これはコンポーネントオペレーティングモデル(COM)であり、別の実施例ではこのコンポーネントオブジェクトは、パイプと呼ばれるリモートプロシージャコール(RPC)メカニズム、あるいは任意の他のプロセス間通信メカニズムである。いずれにせよ、ポートリスニングサービス135はコンポーネントオブジェクト115を収容しており、それにはアプリケーション115用識別子(例えば、「App115」)とインデックス130にある固有の接続ID160との両方へ参照することが含まれ、接続ID APIにより生成されることを図1Bに示す。
生成されたコンポーネントオブジェクトは、この固有のIDをサーバアプリケーションに返して、クライアント接続時に後で使用することができる。例えば、図1Bはコンポーネント155がメッセージ117をアプリケーション115に送信するが、メッセージ117には固有のID160が含まれていることを示す。場合によっては、メッセージ117は、他のクライアントとの接続に使用されるネットワークアドレスとポート番号(すなわちポート140)を含むこともできる。しかしながら、ごく一般的には、接続前データは少なくともポート140に関連付けられた固有の接続ID160とポート番号(図示せず)を備えることができる。上述のように、サーバアプリケーションは、究極的には接続前データをクライアントに送信する。
例えば、図1Cにおいてアプリケーション115は、呼び出しメッセージ163をクライアント145に送信するが、呼び出しメッセージ163には接続前データ170が含まれることを示す。アプリケーション115は、必ずしもこの接続前データ170を送信する特別なステップを事前に行う必要はない。具体的には、サーバが実際にクライアントに送信しなくても、クライアント145が接続前データ170内で発見した識別子を既に知っている実施例もある。例えば、クライアントコンピュータ名(アプリケーション115には既知である)またはクライアント145がログインしているユーザのユーザ名に識別子を基づかせるなど、よく知られた規則を確立することにより、識別子を完成させることができる。サーバは、何らかの事前に確立したプロトコルにより、ポートリスニングサービス135を通して接続を受け付けるアプリケーション115などの適切なアプリケーションにユーザ名を関連付けることがわかる。
図1Cは、アプリケーション120が呼び出しメッセージ167をクライアント150に送信するが、呼び出しメッセージ167には接続前データ175が含まれていることを示す。一般的に、メッセージ163、167は、電子メール、インスタントメッセージング、何らかの他のネットワーク通信形式等、任意の種類のデータ通信を備えることができる。少なくとも一実施例では、メッセージ163、167は、対応するクライアント145、150にインストールされたコラボレーションAPI(図示せず)にストリームされるXML(eXtensible Markup Language)文書を備える。一実施例において、接続前データ、特に固有の接続ID160、165は、ベース64テキストとして更に提供されている。
一般的に、所与のクライアントアプリケーションは、サーバ100と通信するための返信ネットワークアドレスおよびポート番号を確認する以外には、恐らく受信した所与の接続前データを読み出し、解析、処理するか、そうでなければ解釈する必要はない。場合によっては、クライアントは、単に接続前データを使用して普通に使用されている静的ポートを通して特定のアプリケーションに接続することもできる。例えば、1つの所与のクライアントは、いくつかの異なる呼び出しメッセージを同じサーバ上で異なるサーバアプリケーションから受信することができる。そのクライアントの使用法が正しければ、異なった組合せの接続前データの各々によって、クライアントは同じサーバ上の同じ静的ポートを通して、対応する異なったサーバアプリケーション接続が可能となる。
例えば、図1Dはクライアント145がネットワーク103を介して接続要求180を送信し、サーバ100との接続要求をするが、接続要求180には接続前データ170が含まれていることを示す。上述のように、この接続前データは、サーバ100のネットワークアドレス、ポート140のポート番号、以前アプリケーション115より送信された固有の接続ID160を含む。これらのデータは各々、接続要求をポートの背後にある適切なアプリケーションに特に割り当てるのに使用することができる。例えば、ネットワークアドレスは、サーバ100が受信するメッセージ180の経路情報を提供し、ポート番号は、サーバ100への特定の入力点を確認し、固有のID160は、接続を取り扱う際使用するアプリケーションの識別を提供している。
例えば、図1Dにおいて、受信時にポート140のリスニングサービス135(例えば、リスニングサービス135により割り当てられた図示しないリスナーにより)は、ソケット190をアプリケーション115に渡すが、ソケット190は接続要求180で提供された接続ID160に対応することを示す。一実施例では、この転送にソケット190の取り扱いをアプリケーション115に渡すことを含むことができる。したがって、アプリケーション115は、ソケット190の制御を行い、ポート140を通してクライアント145(および接続要求で固有のID160を送出している任意の他のクライアント)と自由に通信することができる。適切な通信プロトコルであればどのようなものでもアプリケーションとリモートクライアントの間でこの通信を行うことが可能であるが、普通に使用されているプロトコルの中にはRPC(Remote Procedure)と同様に、RDP(Remote Desktop Protocol)を含むことができる。
このように、複数のアプリケーションは、このクライアントまたは任意の他のクライアントとポート140を通して通信することができる。けれども、そうするためには、この接続には各々固有の接続IDがそれぞれ含まれる必要があるので、異なったアプリケーション、およびアプリケーションが同じでも異なったインスタンスを区別することができる。例えば、図1Dは、クライアント150がネットワーク103を介してサーバ100に接続要求183を送信することも示す。この場合、接続要求183は、いかなる接続前データも含まず、したがって一般のTCP通信で必要とされるネットワークアドレスとポート140に対するポート番号だけ含んでいることが多い。接続要求183は、いかなる接続前データも含まないので、リスニングサービス135は、アプリケーションにソケットを提供できない。むしろ図1Dは、リスニングサービス135がクライアント150のためのソケットを「ペンディング接続」185の格納場所に渡すのを示す。
具体的には、リスニングサービス135は、ポート140を通してリスニングサービス135とクライアント150との間で一時的なネットワーク接続を可能にするが、クライアント150がこのデータを提供するまではいかなるアプリケーションとの通信も許可しない。リスニングサービス135が接続を中断したり、あるいは単に接続前データを受信するまで一定の時間待つ場合もある。いったんクライアント150がこの接続前データ(例えば、データ175)を提供すると、リスニングサービス135は、固有のIDが正しいか否かを判定することができ、もし正しければその固有IDのソケットをアプリケーション120のような適切なアプリケーションに渡す。
従って、図1Aから図1Dは、複数のアプリケーションのセッションレベルでの動作を可能にして同じ静的ポートを通して通信するのに使用できる多数の異なるコンポーネントや構成図を示す。上記で確認したように、このようなコンポーネントや構成図によりこの機能が使用できるのは、少なくとも一部は接続を特定のアプリケーションに関連付けるために使用できる接続前データを追加で使用しているためである。複数のサーバアプリケーションが同じポートを使用できることに加えて、この機能は、ある種のサービス妨害(DOS)型攻撃を抑制するのにも使用することができることがわかる。
具体的には、DOSのいくつかの種類は、外部の者がネットワーク接続要求によりコンピュータシステムを過負荷状態にし、最終的にはコンピュータシステムをシャットダウンして起こる可能性があり、場合によっては、外部の者にコンピュータ上のシステムレベル情報を変えさせてしまうこともある。接続前データを含まない接続要求では、サーバアプリケーションへの接続に対するソケットの制御を行うリスニングサービス135にはならないので、上述のコンポーネントはこの種の攻撃を抑制するのに役立てることができる。むしろ各接続は、接続要求の第一のパケットの中に接続前データが見つからないと明白に拒否されるか、あるいはペンディング接続ストア185の中で、ある一定時間保管してから捨てられる。従って、本発明を実施すると多数の有用なセキュリティの特徴を提供することができる。
上記に加えて、本発明の実施例はある特定の方法を行うための1または複数の機能ステップと、それに対応する機能的でない動作により記述することもできる。具体的には、図2と図3は、サーバの単一の静的ポートを通して、複数のサーバアプリケーションと通信するためのサーバ(例えば、サーバ100)およびクライアント(例えば、クライアント145,150)の各々から見た一連の動作および/またはステップを備える方法を示している。図2および図3と以下の論議では、「第一の」および/または「第二の」という用語を参照することが何回かある。これらの呼称は、ある一定の順番というより、主に用語間の区別を示唆するものであることは理解されるべきである。例えば、「第一のアプリケーション」とは一番目に使用されるアプリケーションか、そうでなければ順番に動作するアプリケーションであっても、なくてもよく、少なくとも「第二のアプリケーション」とは異なるものであればよい。同様に、「第二のアプリケーション」は「第一のアプリケーション」とは異なっていればよく、従って「第一のアプリケーション」の前後に使用されたりアクセスされなければならないアプリケーションではない。
図2は、複数のアプリケーションに単一のポートとの通信をするためのアクセスを提供するサーバ(あるいは共有コンピュータシステム)から見た方法が、第一の接続識別子を第一のアプリケーションと関連付けるという動作200を備えることを示す。動作200は、第一の接続識別子を第一のアプリケーションと、第二の接続識別子を第二のアプリケーションと関連付けることを含み、第一と第二のアプリケーションはセッションレベルで動作している。例えば、ポートリスニングサービス135は、サーバ100のシステムレベル110で作動しており、サーバ100のセッションレベル105で動作しているアプリケーション(例えば、115、120)のインスタンスからレディメッセージ113、123を受信する。サービス135は、更にこれらのアプリケーションにより生成された、対応するコンポーネントオブジェクト(例えば、155、157)を収容しており、メッセージ113、123中のアプリケーション識別子(例えば、「AppID115」、「AppID120」)を対応する固有の接続ID160、165に関連付ける。
更に図2は、その方法が接続識別子を有するクライアント接続要求を受信する動作210を備えることを示す。動作210は、クライアント接続要求、ポート番号を含むクライアント接続要求、共有コンピュータシステムのネットワークアドレス、および第一の接続識別子を受信することを含む。例えば、アプリケーション115は、XMLデータストリーム上でメッセージ167を介して、接続前データ170をクライアント145に送信する。クライアント145は、今度はサーバ100に接続要求180を送信し、要求180はメッセージ167で受信した接続前データ170を含む。
図2はまた、この方法がクライアント接続要求を第一のアプリケーションに転送する動作220を備えることを示し、第一のアプリケーションはポートを通してクライアントと接続している。例えば、メッセージ180の接続前データ170で発見された固有の接続ID160を確認すると、リスニングサービス135は、ソケット190の制御を転送するが、それはサーバアプリケーション115への固有の接続ID160に関連付けられている。更に図2において、その方法は、同じポートを通して異なったクライアント接続を提供する動作230を備えることを示す。動作230は、ポート番号に対応するポートを通して第二のアプリケーションに異なったクライアント接続を提供する。
例えば、図1Dに示すように、クライアント150は接続要求183を送信するが、それには以前メッセージ163で受信したいかなる接続前データ175も含んでいない。メッセージ183を受信すると、リスニングサービス135は、クライアント150とサーバ100との間の接続は許可するが、いかなるアプリケーションとの接続も許可しない。それは少なくとも一部は、要求180から直ちに確認できないからである。従って、リスニングサービス135は、接続要求をクライアント150と固有の接続ID165に対応するソケット195に関連付け、ソケット195をペンディング接続ストア185に保管する。リスニングサービス135は、接続前データ175を受信するまでこの接続を保持することができるが、そうでなければある一定の時間後に、この接続を単に中止してしまう。
図3は、本発明の実施例に従ってクライアントの観点から、共有コンピュータシステムにて単一のポートを通して複数のアプリケーションと通信する代わりの方法を説明する。具体的には、図3は、この方法が第一のアプリケーションと通信するための呼び出しを受信する動作300を備えることを示す。動作300は、第一の呼び出しを受信して、サーバコンピュータシステム上で第一のアプリケーションと通信を行うことを含むが、第一の呼び出しは少なくともポート番号と第一の接続識別子を含む。例えば、クライアント145は、サーバ100でアプリケーション115に接続する呼び出しを含むメッセージ167を受信する。メッセージ167は、接続前データを含み、それにはサーバ100のネットワークアドレスとポート140に関連するポート番号と同様、アプリケーション115と関連する少なくとも固有の接続ID160を含む。
更に図3は、その方法が第二のアプリケーションと通信するための呼び出しを受信するという動作310を備えることを示す。動作310は、サーバコンピュータシステムにて第二のアプリケーションと通信するための第二の呼び出しを受信すること含むが、第二の呼び出しは少なくともポート番号と第二の接続識別子を含む。例えば、明示されていないが、クライアント145は呼び出し163を受信可能であり、それにはアプリケーション120と関連付けられている異なった固有のID165が含まれている。メッセージ167、メッセージ163については、サーバ100用のネットワークアドレスとポート140に対するポート番号も含んでいる。ここで、メッセージ163、167は、少なくとも対応する固有の接続ID(すなわち165対160)が異なっている。
図3は、その方法がサーバ上の同じポートを通して第一と第二のアプリケーションと通信するためのステップ340を備えることを示す。ステップ340は、クライアントがネットワーク上でサーバの同じ静的ポートを通して複数のアプリケーションと通信するような、ポート番号を通してサーバ上で第一と第二のアプリケーションと通信することを含む。例えば、クライアント145は、もし呼び出し163、167に従って動作するならば、ポート140を通してサーバアプリケーション115、120と通信可能である。
ステップ340は、ステップを遂行するための対応する動作について、任意の数もしくはオーダーを含むことができるが、図3はステップ340が第一の接続識別子との第一の接続要求を送信する動作320を備えることを示す。動作320は、サーバに第一の接続要求を送信することを含み、第一の接続要求は第一の接続識別子を備える。例えば、クライアント145は、ポート140を介してサーバ100にメッセージ180を送信することができるが、メッセージ180は接続前データ170を含み、接続前データ170は固有の接続ID160を含む。
図3は、またステップ340が第二の接続識別子との第二の接続要求を送信する動作330を備えることを示す。動作330は、サーバに第二の接続要求を送信することを含み、第二の接続要求は第二の接続識別子を含む。例えばクライアント145は、サーバ100に接続要求メッセージ(図示せず)に類似した別のメッセージを送信可能であり、類似の接続要求は、少なくとも固有の接続ID165を含んだ接続前データ175を含むことが相違点である。
クライアント145からこれら第一と第二の接続要求を受信し、また各々の要求に関連する固有の接続IDを確認すると、リスニングサービス135は、各接続用の異なった通信ソケットの制御を、各々異なったアプリケーションインスタンス(例えば115、120)に割り当てることができる。このためアプリケーション115、120は同じ静的ポート、例えばポート140を通してクライアントと別々の接続をすることができる。
従って、図2と図3で説明した方法は、同じサーバポートを通してクライアントとサーバが効率的に複数のアプリケーションに接続できる多くの方法を提供している。前述のように、特にファイアウォールを実装したネットワークシステム内のように、限られた数の静的ポートが懸念を提起することができる場合に、このことは現在のシステムに数多くの利点をもたらす。
本発明の実施形態は、詳細は以下で述べるように、様々なコンピュータハードウェアを含む専用あるいは汎用のコンピュータを含むことができる。特に、本発明の範囲内での実施形態は、コンピュータに記憶されたコンピュータが実行可能な命令もしくはデータ構造を運搬あるいは保持するためのコンピュータ読取り可能媒体を含む。そのようなコンピュータ読取り可能媒体は、汎用または専用コンピュータよりアクセスすることが可能で利用可能な任意の媒体であればよい。限定ではなく例として、そのようなコンピュータ読取り可能媒体には、RAM,ROM,EEPROM,CD−ROMあるいは他の光ディスクストレージ、磁気ディスクストレージあるいは他の磁気ストレージ装置、コンピュータで実行可能な命令やデータ構造の形式の望ましいプログラムコード手段を運搬あるいは保存するのに使用でき、かつ汎用あるいは専用コンピュータでアクセス可能なその他の任意の記憶媒体からなる。
ネットワーク、コンピュータへの別の通信接続(配線接続、無線、あるいはそれらの組合せ)を介して情報が転送または供給される場合、コンピュータはその接続をコンピュータ読取り可能媒体と見なすのは適切であろう。このようにして、そのような接続はどんなものでもコンピュータ読取り可能媒体と呼ぶのは適切である。上記の組合せもまたコンピュータ読取り可能媒体の範囲に含まれるべきである。
コンピュータで実行可能な命令は、例えば汎用コンピュータ、専用コンピュータ、あるいは専用処理装置に、ある機能あるいは機能のグループを実行させる命令やデータからなる。内容は構造特徴そしてまたは方法論的な動作に特有の言語で記述されているが、添付の特許請求の範囲で定義されている主題は、上記の特定の特徴あるいは動作により必ずしも制限は受けないと理解できる。むしろ、上述の特定の特徴や動作は、特許請求の範囲を実装する形式の例として公開されている。
本発明はその精神あるいは本質的な特徴から逸脱することなく他の特定の形式で実現することができる。説明した実施例は実例となるだけで、制限とはならないあらゆる観点から考慮されている。従って本発明の範囲は上記記載よりもむしろ、添付の特許請求の範囲により指摘されている。特許請求の範囲の意味と等価性の範囲内で発生する変更はその範囲内で採用される。
本発明の実施例に従って、複数のアプリケーションが対応する複数のクライアントと単一のポートを通して通信する概観図である。 本発明の実施例に従って、同じポートリスニングサービスを使用する単一のポートを通しての通信に従って、複数のアプリケーションが固有の接続IDを登録することを示す概念図である。 本発明の実施例に従って、複数のアプリケーションがクライアントを呼び出して単一のポートを通して通信を行うが、呼び出しにはポートリスニングサービスによるデータも含まれている、図1Bに示す概念図である。 本発明の実施例に従って、複数のクライアントが単一のポートを通して複数のアプリケーションと通信しようとしている図1B、図1Cの概念図である。 本発明の実施例に従って、サーバの観点から複数のアプリケーションと単一のポートを通してクライアントとが通信するための方法における動作のシーケンスを示すフローチャートである。 本発明の実施例に従って、クライアントの観点からサーバ上で複数のサーバアプリケーションと単一のポートを通して通信するための方法における1または複数の動作とステップのシーケンスを示すフローチャートである。

Claims (20)

  1. セッションレベルで動作する複数のアプリケーションと、ネットワークを介する1または複数のクライアントコンピュータシステムとの間の通信を提供するように構成された共有コンピュータシステムにおいて、単一のポートを通して共有コンピュータシステム上で前記複数のアプリケーションにネットワーク接続を提供する方法において、
    第一の接続識別子を第一のアプリケーションに、第二の接続識別子を第二のアプリケーションに関連付ける動作であって、前記第一と第二のアプリケーションは、セッションレベルで動作している動作と、
    ポートと関連付けられたポート番号、前記共有コンピュータシステム用ネットワークアドレス、および前記第一の接続識別子を含むクライアント接続要求を受信する動作と、
    前記クライアント接続要求を前記第一のアプリケーションに転送し、前記第一のアプリケーションが前記ポートを通して前記クライアントと接続する動作と、
    前記ポート番号に一致する前記ポートを通して前記第二のアプリケーションへ異なったクライアント接続を提供する動作と
    を備えたことを特徴とする方法。
  2. 前記の異なったクライアント接続を提供する前に、前記異なったクライアント接続のための異なったクライアント接続要求を受信する動作であって、前記異なったクライアント接続要求は、前記ポート番号を含むが、前記第一または第二の接続識別子のいずれかを含まない動作をさらに備えたことを特徴とする請求項1に記載の方法。
  3. 前記異なったクライアント接続を、ペンディング接続として記憶する動作をさらに備えたことを特徴とする請求項2に記載の方法。
  4. 前記異なったクライアント接続用に、第二の接続識別子を受信する動作をさらに備えたことを特徴とする請求項3に記載の方法。
  5. 前記第二の接続識別子と関連付けられた接続ソケットを、前記第二のアプリケーションに転送する動作をさらに備えたことを特徴とする請求項4に記載の方法。
  6. 前記第一の接続識別子と前記第二の接続識別子を、1または複数のクライアントにXML文書として送信する動作をさらに備えたことを特徴とする請求項1に記載の方法。
  7. 接続ソケットを、前記第一の接続識別子に関連付ける動作をさらに備えたことを特徴とする請求項1に記載の方法。
  8. 前記第一のアプリケーションに前記接続を転送することは、前記第一のアプリケーションに前記接続ソケットの制御を提供する動作を含むことを特徴とする請求項7に記載の方法。
  9. 前記ポート番号と関連付けられた前記ポートは、静的ポートであることを特徴とする請求項1に記載の方法。
  10. クライアント接続要求を受信して前記第一のアプリケーションに前記クライアント要求を転送する動作は、システムレベルで動作するリスニングサービスにより実行されることを特徴とする請求項1に記載の方法。
  11. 前記第一と第二のアプリケーションを格納する前記共有コンピュータシステムは、クライアントコンピュータシステムであることを特徴とする請求項1に記載の方法。
  12. 次のクライアント接続要求は、パケットの初期のセットでは前記ポートと関連したいかなる接続識別子も提供できないが、前記ポートで次のクライアント接続要求を受信する動作と、
    前記パケットの初期セット内に接続前データがないことを確認すると、前記クライアント接続要求を拒否する動作と
    をさらに備えたことを特徴とする請求項1に記載の方法。
  13. 複数の固有の接続識別子を前記ポート番号と関連付けられた前記ポートに割り当てる動作であって、前記複数の固有の接続識別子は、少なくとも前記第一と第二の接続識別子を有する動作をさらに備えたことを特徴とする請求項1に記載の方法。
  14. 前記第一の接続識別子は、前記クライアント接続要求を送信するクライアントからのユーザ名または電子メールアドレスのいずれかを含むことを特徴とする請求項13に記載の方法。
  15. 前記第一のアプリケーションはいつでも、1または複数のクライアントと通信できるという指示を少なくとも前記第一のアプリケーションから受信する動作をさらに備えたことを特徴とする請求項13に記載の方法。
  16. 前記第一の接続識別子を前記第一のアプリケーションに割り当てる動作と、
    少なくとも前記第一の接続識別子と前記ポート番号に関連付けられた前記ポートとを含む接続前データを前記第一のアプリケーションに送信する動作と
    をさらに備えたことを特徴とする請求項15に記載の方法。
  17. 前記第一の接続識別子と前記第一のアプリケーションの識別子とを、前記第一のアプリケーションにより生成されたコンポーネントオブジェクトと関連付ける動作をさらに備え、
    前記コンポーネントオブジェクトは、セッションレベルで動作する前記第一のアプリケーションと、システムレベルで動作するリスニングサービスとの間の通信を提供するように構成されていることを特徴とする請求項16に記載の方法。
  18. 共有コンピュータシステムのセッションレベルで動作する複数のアプリケーションと通信するように構成されたコンピュータシステムにおいて、前記共有コンピュータシステムで単一のポートを通して前記複数のアプリケーションと通信を行う方法であって、
    少なくともポート番号と第一の接続識別子を含む第一の呼び出しを受信して、サーバコンピュータシステムで第一のアプリケーションと通信を行う動作と、
    少なくともポート番号と第二の接続識別子を含む第二の呼び出しを受信して、前記サーバコンピュータシステムで第二のアプリケーションと通信を行う動作と、
    前記ポート番号を通して前記サーバ上で前記第一と第二のアプリケーションと通信を行い、前記クライアントがネットワーク上で、前記サーバの前記同じ静的ポートを通して複数のアプリケーションと通信するステップと
    を備えたことを特徴とする方法。
  19. 前記ポート番号を通して前記第一と第二のアプリケーションと通信を行うステップは、
    前記第一の接続識別子を含む前記第一の接続要求を前記サーバに送信する動作と、
    前記第二の接続識別子を含む前記第二の接続要求を前記サーバに送信する動作と
    をさらに備えたことを特徴とする請求項18に記載の方法。
  20. セッションレベルで動作する複数のアプリケーションと、ネットワークを介する1または複数のクライアントコンピュータシステムとの間の通信を提供するように構成されたコンピュータシステムにおいて、実行時には、前記共有コンピュータシステム上の1または複数のプロセッサに、前記複数のアプリケーションが1つの静的ポートを通して接続を提供する方法を実行させる、コンピュータ上に記憶されたコンピュータで実行可能な命令を有するコンピュータプログラム製品において、
    第一の接続識別子を第一のアプリケーションに、第二の接続識別子を第二のアプリケーションに関連付ける動作であって、前記第一と第二のアプリケーションは、セッションレベルで動作していること、
    ポートと関連付けられたポート番号、前記共有コンピュータシステム用ネットワークアドレス、および前記第一の接続識別子を含むクライアント接続要求を受信すること、
    前記クライアント接続要求を前記第一のアプリケーションに転送し、前記第一のアプリケーションが前記ポートを通して前記クライアントと接続すること、および、
    前記ポート番号に一致する前記ポートを通して前記第二のアプリケーションへ異なったクライアント接続を提供すること
    を備えたことを特徴とするコンピュータプログラム製品。
JP2008531207A 2005-09-12 2006-09-08 複数のプロセスにおけるポートの共有 Active JP4965574B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US71633405P 2005-09-12 2005-09-12
US60/716,334 2005-09-12
US11/304,780 2005-12-15
US11/304,780 US8166175B2 (en) 2005-09-12 2005-12-15 Sharing a port with multiple processes
PCT/US2006/035229 WO2007033046A1 (en) 2005-09-12 2006-09-08 Sharing a port with multiple processes

Publications (2)

Publication Number Publication Date
JP2009508260A true JP2009508260A (ja) 2009-02-26
JP4965574B2 JP4965574B2 (ja) 2012-07-04

Family

ID=37856601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008531207A Active JP4965574B2 (ja) 2005-09-12 2006-09-08 複数のプロセスにおけるポートの共有

Country Status (6)

Country Link
US (2) US8166175B2 (ja)
EP (1) EP1924929B1 (ja)
JP (1) JP4965574B2 (ja)
KR (1) KR20080053299A (ja)
CN (1) CN101263483B (ja)
WO (1) WO2007033046A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011198117A (ja) * 2010-03-19 2011-10-06 Fujitsu Ltd サーバ装置、ネットワークアクセス方法およびコンピュータプログラム

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8910241B2 (en) 2002-04-25 2014-12-09 Citrix Systems, Inc. Computer security system
US20070136465A1 (en) * 2005-12-12 2007-06-14 Fernandes Lilian S Method for allowing multiple authorized applications to share the same port
US7650406B2 (en) * 2006-04-26 2010-01-19 Microsoft Corporation Termination of a security association between devices
US8869262B2 (en) 2006-08-03 2014-10-21 Citrix Systems, Inc. Systems and methods for application based interception of SSL/VPN traffic
US8495181B2 (en) 2006-08-03 2013-07-23 Citrix Systems, Inc Systems and methods for application based interception SSI/VPN traffic
US7843912B2 (en) * 2006-08-03 2010-11-30 Citrix Systems, Inc. Systems and methods of fine grained interception of network communications on a virtual private network
US20090031005A1 (en) * 2007-07-23 2009-01-29 Bellsouth Intellectual Property Corporation Portal COM Module
US8516539B2 (en) * 2007-11-09 2013-08-20 Citrix Systems, Inc System and method for inferring access policies from access event records
US8990910B2 (en) * 2007-11-13 2015-03-24 Citrix Systems, Inc. System and method using globally unique identities
US7548545B1 (en) * 2007-12-14 2009-06-16 Raptor Networks Technology, Inc. Disaggregated network management
US9240945B2 (en) * 2008-03-19 2016-01-19 Citrix Systems, Inc. Access, priority and bandwidth management based on application identity
ES2371378T3 (es) * 2008-04-04 2011-12-30 Canon Kabushiki Kaisha Sistema de gestión de sesiones y método para controlar las mismas.
KR101160382B1 (ko) * 2008-04-04 2012-06-26 캐논 가부시끼가이샤 세션 관리 시스템 및 그 제어 방법
JP5178539B2 (ja) * 2008-04-04 2013-04-10 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、セッション管理システム並びにプログラム
US8943575B2 (en) 2008-04-30 2015-01-27 Citrix Systems, Inc. Method and system for policy simulation
US8638941B2 (en) * 2008-05-15 2014-01-28 Red Hat, Inc. Distributing keypairs between network appliances, servers, and other network assets
US8990573B2 (en) * 2008-11-10 2015-03-24 Citrix Systems, Inc. System and method for using variable security tag location in network communications
US8849972B2 (en) 2008-11-25 2014-09-30 Polycom, Inc. Method and system for dispatching received sessions between a plurality of instances of an application using the same IP port
US8661103B2 (en) * 2008-12-18 2014-02-25 Sap Ag Business application address determination
KR100917660B1 (ko) * 2009-05-11 2009-09-18 (주)비전소프트 연계아답터를 이용한 방화벽 단일포트를 통해 내부망과 외부망의 서버들 간의 네트워크 연결 시스템
US8825859B2 (en) * 2009-12-23 2014-09-02 Citrix Systems, Inc. System and methods for mixed mode of IPv6 and IPv4 DNS of global server load balancing
EP2517438B1 (en) * 2009-12-23 2016-11-30 Citrix Systems Inc. Systems and methods for managing ports for rtsp across cores in a multi-core system
US9098335B2 (en) 2009-12-23 2015-08-04 Citrix Systems, Inc. Systems and methods for managing spillover limits in a multi-core system
US20120233334A1 (en) * 2011-03-07 2012-09-13 Avaya Inc. Shared media access for real time first and third party control
CN102761518B (zh) * 2011-04-25 2015-04-01 中兴通讯股份有限公司 一种支持多种套接字连接模式的通信方法及服务器
CN103428357B (zh) * 2012-05-25 2016-12-21 上海盛付通电子支付服务有限公司 实现移动终端操作系统上的本地服务共享的方法及装置
CN103455908A (zh) * 2012-05-30 2013-12-18 Sap股份公司 云环境中的头脑风暴
TWI461907B (zh) * 2012-10-11 2014-11-21 Mstar Semiconductor Inc 配合多個應用程式之整合系統和測試系統
US9954738B1 (en) * 2012-10-18 2018-04-24 Google Llc Ephemeral port registry/device discovery
US9288225B1 (en) * 2013-04-17 2016-03-15 Ca, Inc. Server port sharing based on shared socket
CN103475540A (zh) * 2013-09-04 2013-12-25 厦门亿联网络技术股份有限公司 同一局域网内pc机间检测ip端口是否连接的方法
KR102121472B1 (ko) 2013-09-23 2020-06-17 삼성전자주식회사 기기 별 응용 프로그램간 통신을 위한 장치 및 방법
CN103699450B (zh) * 2013-12-20 2017-02-15 国云科技股份有限公司 一种Linux下的自适应组件间通信方法
US10212101B2 (en) 2014-01-14 2019-02-19 Nant Holdings Ip, Llc Low level provisioning of network fabrics
US9917728B2 (en) 2014-01-14 2018-03-13 Nant Holdings Ip, Llc Software-based fabric enablement
CN104010001B (zh) * 2014-06-17 2015-11-11 合一网络技术(北京)有限公司 移动终端中同类联网请求进行连接通信的方法和系统
US10320918B1 (en) * 2014-12-17 2019-06-11 Xilinx, Inc. Data-flow architecture for a TCP offload engine
US9992236B2 (en) * 2015-06-22 2018-06-05 Dell Products L.P. Systems and methods for providing protocol independent disjoint port names
US10205803B1 (en) * 2015-08-27 2019-02-12 Amazon Technologies, Inc. System for determining improper port configurations
CN105426253A (zh) * 2015-12-18 2016-03-23 广州广电运通金融电子股份有限公司 一种自助设备硬件管理方法和装置
US10114702B2 (en) * 2016-01-06 2018-10-30 International Business Machines Corporation Method and system to discover and manage distributed applications in virtualization environments
WO2018058104A1 (en) 2016-09-26 2018-03-29 Nant Holdings Ip, Llc Virtual circuits in cloud networks
CN107343027B (zh) * 2017-06-13 2020-08-04 福建省天晴互动娱乐有限公司 App分享方法
CN112398845B (zh) * 2020-11-11 2023-03-28 Oppo广东移动通信有限公司 数据传输方法、数据传输装置、系统及电子设备
KR102617954B1 (ko) * 2022-11-23 2023-12-27 (주) 투씨에스지 원격 제어 서비스의 보안성 향상을 위한 제어 방법 및 이를 수행하기 위한 컴퓨터 프로그램

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06301616A (ja) * 1993-04-09 1994-10-28 Toshiba Corp ネットワークコンピュータ接続方法および装置
JP2001195262A (ja) * 1999-10-15 2001-07-19 Alcatel ソフトウエア構成要素をユーザ端末にインストールする方法、関連する装置および関連するソフトウエアモジュール
US20030028681A1 (en) * 2001-08-02 2003-02-06 International Business Machines Corporation Apparatus and method for port sharing among a plurality of server processes
JP2003050756A (ja) * 2001-04-30 2003-02-21 Xerox Corp リバースプロキシネットワーク通信方式及び内部ネットワーク装置にアクセスする方法
US20040181694A1 (en) * 1998-03-18 2004-09-16 Cisco Technology, Inc., A California Corporation Method for blocking denial of service and address spoofing attacks on a private network

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9501378D0 (en) * 1995-01-24 1995-03-15 Ibm A system and method for establishing a communication channel over a heterogeneous network between a source node and a destination node
US5699513A (en) * 1995-03-31 1997-12-16 Motorola, Inc. Method for secure network access via message intercept
US6182146B1 (en) * 1997-06-27 2001-01-30 Compuware Corporation Automatic identification of application protocols through dynamic mapping of application-port associations
US6484061B2 (en) * 1997-09-10 2002-11-19 Schneider Automation Inc. Web interface to a programmable controller
US6363081B1 (en) * 1998-03-04 2002-03-26 Hewlett-Packard Company System and method for sharing a network port among multiple applications
US20020016868A1 (en) * 1998-05-13 2002-02-07 Palm, Inc. Method and apparatus for serial port sharing
US6357337B1 (en) * 1999-06-15 2002-03-19 Holland Neway International, Inc. Spring brake actuator with sealed chamber and method for sealing
US6622159B1 (en) * 1999-06-30 2003-09-16 International Business Machines Corporation Method, apparatus and computer program product for automatically restarting an RPC server without losing client RPC calls
US6343324B1 (en) * 1999-09-13 2002-01-29 International Business Machines Corporation Method and system for controlling access share storage devices in a network environment by configuring host-to-volume mapping data structures in the controller memory for granting and denying access to the devices
US6862629B1 (en) * 1999-10-21 2005-03-01 International Business Machines Corporation Method and system for dispatching socks traffic based on socks connection identified by source address, application address and application level protocol
US6917610B1 (en) * 1999-12-30 2005-07-12 At&T Corp. Activity log for improved call efficiency
JP3384390B2 (ja) 2000-01-12 2003-03-10 ソニー株式会社 交流駆動型プラズマ表示装置
WO2001082097A1 (en) * 2000-04-27 2001-11-01 Fortress Technologies, Inc. A method and apparatus for integrating tunneling protocols with standard routing protocols
US7120697B2 (en) * 2001-05-22 2006-10-10 International Business Machines Corporation Methods, systems and computer program products for port assignments of multiple application instances using the same source IP address
US6954784B2 (en) * 2000-08-17 2005-10-11 International Business Machines Corporation Systems, method and computer program products for cluster workload distribution without preconfigured port identification by utilizing a port of multiple ports associated with a single IP address
US6763387B1 (en) * 2000-10-12 2004-07-13 Hewlett-Packard Development Company, L.P. Method and system for sharing a single communication port between a plurality of servers
US6624388B1 (en) * 2001-01-25 2003-09-23 The Lincoln Electric Company System and method providing distributed welding architecture
ES2601484T3 (es) * 2002-04-22 2017-02-15 Microsoft Technology Licensing, Llc Seguridad de compartición de aplicaciones
US7958163B2 (en) * 2003-08-05 2011-06-07 Intraware, Inc. System and method for bulk transfer of digital goods
US7472195B2 (en) * 2003-11-19 2008-12-30 International Business Machines Corporation Unobtrusive port and protocol sharing among server processes
US7624431B2 (en) * 2003-12-04 2009-11-24 Cisco Technology, Inc. 802.1X authentication technique for shared media
JP4297792B2 (ja) * 2004-01-08 2009-07-15 株式会社リコー Webサーバ組み込みビジネス機器
US7523185B1 (en) * 2004-01-13 2009-04-21 Cisco Technology, Inc. Method and apparatus for providing automatic frame relay and ATM provisioning of network devices
US7546454B2 (en) * 2004-06-30 2009-06-09 At&T Intellectual Property I, L.P. Automated digital certificate discovery and management
US7613813B2 (en) * 2004-09-10 2009-11-03 Cavium Networks, Inc. Method and apparatus for reducing host overhead in a socket server implementation
US7551614B2 (en) * 2004-12-14 2009-06-23 Hewlett-Packard Development Company, L.P. Aggregation over multiple processing nodes of network resources each providing offloaded connections between applications over a network
JP2007133344A (ja) * 2005-03-28 2007-05-31 Fuji Xerox Co Ltd 電荷輸送性化合物、電子写真感光体、画像形成装置及びプロセスカートリッジ
EP1869834A1 (en) * 2005-04-02 2007-12-26 Socket Communications, Inc. Dynamic management of communication ports, devices, and logical connections

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06301616A (ja) * 1993-04-09 1994-10-28 Toshiba Corp ネットワークコンピュータ接続方法および装置
US20040181694A1 (en) * 1998-03-18 2004-09-16 Cisco Technology, Inc., A California Corporation Method for blocking denial of service and address spoofing attacks on a private network
JP2001195262A (ja) * 1999-10-15 2001-07-19 Alcatel ソフトウエア構成要素をユーザ端末にインストールする方法、関連する装置および関連するソフトウエアモジュール
JP2003050756A (ja) * 2001-04-30 2003-02-21 Xerox Corp リバースプロキシネットワーク通信方式及び内部ネットワーク装置にアクセスする方法
US20030028681A1 (en) * 2001-08-02 2003-02-06 International Business Machines Corporation Apparatus and method for port sharing among a plurality of server processes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011198117A (ja) * 2010-03-19 2011-10-06 Fujitsu Ltd サーバ装置、ネットワークアクセス方法およびコンピュータプログラム

Also Published As

Publication number Publication date
US8166175B2 (en) 2012-04-24
US8438260B2 (en) 2013-05-07
CN101263483B (zh) 2012-12-12
WO2007033046A1 (en) 2007-03-22
EP1924929A4 (en) 2010-05-26
JP4965574B2 (ja) 2012-07-04
US20120124190A1 (en) 2012-05-17
EP1924929B1 (en) 2015-10-21
CN101263483A (zh) 2008-09-10
KR20080053299A (ko) 2008-06-12
US20070061434A1 (en) 2007-03-15
EP1924929A1 (en) 2008-05-28

Similar Documents

Publication Publication Date Title
JP4965574B2 (ja) 複数のプロセスにおけるポートの共有
CN104429037B (zh) 用于连接到通信设备的方法、设备及系统
US8176189B2 (en) Peer-to-peer network computing platform
US7774495B2 (en) Infrastructure for accessing a peer-to-peer network environment
JP5010608B2 (ja) リモートリソースとの安全な対話型接続の生成
US20110137991A1 (en) Systems and methods for management and collaboration in a private network
US6934952B2 (en) Method and apparatus for managing multiple instances of server code on a machine
US20110219129A1 (en) System and method for connecting network sockets between applications
US8386614B2 (en) Network connection manager
US20110258305A1 (en) Servlet API and Method for XMPP Protocol
US10142422B2 (en) Clustering websocket communications with configurable master-slave servers
JP2008533784A (ja) コンピュータシステムにおける通信のための方法、システム、及びコンピュータプログラム
EP3068139B1 (en) Electronic device and method for controlling electronic device
US20170006091A1 (en) Providing enhanced access to remote services
CN114025005B (zh) 一种数据通讯方法、系统、电子设备及存储介质
Waldo Constructing ad hoc networks
US8312154B1 (en) Providing enhanced access to remote services
US10447731B2 (en) Email address farming mitigation
CN111343296A (zh) 一种虚拟化应用通信方法、装置、服务器及可存储介质
CN117155904A (zh) 一种服务注册方法
CN114025030A (zh) 透明代理实现方法、装置、计算机设备和介质
US20120254460A1 (en) System and method for improved handshake protocol
CN117176797A (zh) 一种资源发布方法、装置、系统及存储介质
Kluckner Fachhochschule Vorarlberg GmbH
JP2009129157A (ja) クライアント装置およびサーバ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110928

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120323

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120329

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250