JP4503225B2 - 適応ディスパッチャを有する仮想ネットワーク - Google Patents
適応ディスパッチャを有する仮想ネットワーク Download PDFInfo
- Publication number
- JP4503225B2 JP4503225B2 JP2002302252A JP2002302252A JP4503225B2 JP 4503225 B2 JP4503225 B2 JP 4503225B2 JP 2002302252 A JP2002302252 A JP 2002302252A JP 2002302252 A JP2002302252 A JP 2002302252A JP 4503225 B2 JP4503225 B2 JP 4503225B2
- Authority
- JP
- Japan
- Prior art keywords
- message
- network
- machine
- virtual
- virtual network
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/308—Route determination based on user's profile, e.g. premium users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/56—Routing software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/56—Routing software
- H04L45/566—Routing instructions carried by the data packet, e.g. active networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は一般に、コンピュータネットワークに関する。より詳細には本発明は、メッセージ内容に基づいて適合的にメッセージをルーティングする仮想ネットワークに関する。
【0002】
【従来の技術】
本出願は、2001年10月16日出願の米国仮出願第60/329796号および2001年10月19日出願の米国仮出願第60/346370号に関し、それらからの優先権を請求し、そのそれぞれを参照により本明細書に組み込む。
【0003】
コンピュータアーキテクチャ内には、1および0の物理表現から高レベルアプリケーションプログラムまで様々なレベルの抽象化がある。コンピュータが最初に開発されたとき、それらの動作を制御するために、マシン言語と一般に呼ばれる低レベルプログラミング言語が一般的に使用された。しかし、異なるマシン言語を有する2つの異なるコンピュータプラットフォームのために同じプログラムを作成するには、プログラマは、プログラムを2度、それぞれのプラットフォームのマシン言語で1度ずつ書かなければならなかった。
【0004】
コンピュータプログラマは、C、Pascalなどの高レベルプログラミング言語を作成し、次いでそのプログラムが使用されるそれぞれのプラットフォーム用のコンパイラを提供することによって、マシン言語を抽象化できることがわかった。プログラムがこれらの高レベルプログラミング言語の1つで書かれたとき、そのプログラムは、それぞれのマシン用にソースプログラムを再作成することなく、それぞれの特定マシン上で実行するようにコンパイルすることができた。この点での抽象化が継続し、より最近の仮想マシンの開発をもたらした。
【0005】
仮想マシンの概念は、コンピュータ科学の技術分野でよく知られている。仮想マシンは、特定のコンピュータハードウェアアーキテクチャの具体的詳細に縛られない中間表現である。通常、仮想マシンは、その仮想マシンを実施するために使用されるハードウェアとは無関係に、同一であり続ける特定のセマンティックス(semantics)を保証する。したがってそのようなマシンのために書かれたプログラムは、修正することなく異なるハードウェアシステム上で実行することができる。したがって仮想マシンの一利点は、その動作セマンティックスが、どの1つのコンピュータプログラムの起源または動作要件とも無関係に、1つのコンピュータから次のコンピュータに一定であり続けることである。
【0006】
コンピュータネットワークは、ネットワークが構築される基礎になる物理ハードウェアおよびネットワークプロトコルに依存する。これらのプロトコルは、そのプロトコルか実施される基礎になるネットワークアーキテクチャに依存する。結果として、ネットワークアプリケーションは、それらが使用されるそれぞれのネットワークのために再作成しなければならない。さらに、2つのマシンがネットワークを介して通信するためには、それぞれのマシンが、その特定ネットワークを介してどのように通信するかを理解しなければならない、すなわちそれぞれのマシンは、通信するための適切なネットワークドライバを有しなければならない。
【0007】
コンピュータネットワーク内に実施された1つのレベルの抽象化は、OSIの7層ネットワークモデルに従って実施された、TCP/IPプロトコルスタック(protocol stack)の使用である。TCP/IPは、ネットワークプロトコルのいくつかの概念を抽象化し、TCP/IPプロトコルをそれぞれ理解する2つのマシンが互いに効果的に通信することを可能にする。しかし、TCP/IPを使用しても、それぞれのマシンは、ネットワークルーティングおよびトポロジ(topology)、バインディング(binding)、ならびにDNS解決をあるレベルで理解できなければならない。すなわち、OSIモデルは、マシン間の物理ワイヤを仮想化するだけで、マシンが通信するネットワークは仮想化しないので、ネットワーク上のそれぞれのコンピュータは、そのネットワークを介して効果的に通信するためにインストールされたネットワークサポートユーティリティを依然として相当有しなければならない。
【0008】
例えば、TCP/IPは、ポートおよびIPアドレスの概念を理解するアプリケーションを必要とする。ポートおよびIPアドレスは、DNS名解決、ネットワークトポロジ、トランスポート(transport)帯域幅、および両端間のルーティングを理解するアプリケーションを必要とする。したがって、順序付けられたバイトシーケンスを信頼可能な方法で交換するためのモデルを単純化しながら、アプリケーションは依然として、多数のネットワークレベルの概念および詳細を直接取り扱わなければならない。OSIモデルは、ネットワークアプリケーションが必要とするネーミング、ルーティング、およびサービス品質などの高レベルの構造を扱わない。
【0009】
【発明が解決しようとする課題】
従来型ネットワークの他の欠点は、メッセージエラーまたはネットワーク故障の後に、適合し復旧できないことである。現在のネットワークは、マシンが追加、移動、または削除されるときに、自動的に容易に適合できない。すなわち、ユーザは通常、ルーティングテーブルを編集して、ネットワークにその変更を知らせなければならない。
【0010】
さらに、ネットワーク故障は、同じ機能を実行する冗長マシンを保守すること以外によっては、容易に修理されない。すなわち、第1マシンが故障すれば、第2(バックアップ)マシンが第1マシンの機能を引き継ぐ。しかし、第2マシンがその後故障し、同じ機能を実行する第3マシンがない場合、結果としてネットワークは損害を受けるであろう。知られているネットワークは自己治癒的ではない。したがって、これらの問題を克服する高度なネットワークが必要である。
【0011】
従来型ネットワークの他の欠点は、それらのネットワークが、メッセージ内容に基づいてネットワークメッセージを動的にルーティングできないことである。Cisco Systems, Inc.による知られているルータは、事前定義された基準に基づいてメッセージをルーティングすることができるが、メッセージ内容に基づいて、ユーザ拡張可能ルーティング動作をサポートするように動的にプログラム可能ではない。アプリケーションが伝統的ルーティングおよびQoS要件に加えてメッセージの変換および処理を制御することができるシステムにとって、この機能がないことは、それらのルータを不適切にする。
【0012】
上記に識別された問題のいくつかまたはすべてを解決する方法およびシステムを提供すれば、当技術分野の進歩であろう。
【0013】
【課題を解決するための手段】
本発明の諸態様は、ネットワークを仮想化して、プラットフォームに依存しないネットワークコンピュータアプリケーションをプログラマが書くことを可能にするために使用することができる。仮想ネットワークは、ネットワークサービスを提供するアプリケーションと、そのコードを実行する、基礎になるシステムネットワークの間、例えばOSIネットワークモデル内の層6と7の間に、(ソフトウェアまたはハードウェアの)抽象化層を追加することによって作成することができる。同期化、イベンティング(eventing)、メッセージング、ネーミング、グループ、アドレシング、およびルーティングコンポーネントを含む1つまたは複数の仮想化コンポーネントを挿入することができる。
【0014】
ネットワーキングシステムを抽象化することによって、ネットワークは、その上に構築されたアプリケーションおよびサービスに固有のサービスをより効率的にかつ安全に提供することができる。例えば、信頼性、安全性、プラットフォーム非依存性、スケールアウト(scale-out)、エッジネットワーキング(edge networking)、および位置非依存性などのサービスを容易に提供することができる。同様に、システムが、物理的トポロジ変更に適合し故障から自動的に「治癒」することができる。仮想ネットワークは、ネットワークの物理的トポロジ上にコードをマッピングしそのマッピングを透過的に適合させることを担当する。さらに、開発者はそれらのサービスの分離から利益を得ることができる。
【0015】
仮想ネットワークと仮想マシンを組み合わせることによって、アプリケーションを1度書きどのマシン上でも実行できる、分散された区分可能な仮想ネットワークを作成することができる。すなわち、仮想ネットワーク内、かつ仮想マシンを稼動するコンピュータ上で使用するために書かれたネットワークアプリケーションは、同じ仮想マシンを動作させ仮想ネットワークに接続されるどのマシン上でも実行できるので、再作成する必要がない。
【0016】
仮想ネットワークは適応再構成機能もまた提供する。マシンAがネットワークを介してマシンBにメッセージを送り、BがマシンAに回答することを考える。しかし、マシンAがマシンBに第2メッセージを送ることができる前に、マシンBが(例えば他のIPアドレスに)移動する。一実施形態によれば、仮想ネットワークは、自分自身を解決し変更された位置に適合することができるので、その結果そのメッセージは依然Bの新しい位置に届けられる。アドレス変更は透過的に行われるので、そのネットワーク上で稼動するアプリケーションは、Bの位置の変更が行われたことを知らない(または知る必要がない)。抽象化がマシンレベルからネットワークレベルに移動されるので、それぞれのマシンを移動することができる位置のセットに制限がかけられることはない。デバイスが移動された後に、そのデバイスが、新しい位置にある自分自身をネットワークに対して識別すると、仮想ネットワークは、そのマシンに対するルーティングが中断されることなく動作継続できるように自分自身を更新することができる。この能力は、単一管理ドメイン内で現在可能であることを複数管理ドメインに拡張し、位置移動性が組織を越えて拡張できるようにする。
【0017】
本発明の第1実施形態は、メッセージをルーティングしディスパッチするメッセージディスパッチャを含む装置を提供する。それぞれのメッセージは、メッセージ内容の任意の部分に基づいてルーティングされる。ネットワークアプリケーションプログラムがメッセージディスパッチャと通信して、メッセージがルーティングされるメッセージ内容の任意の部分を定義するインタフェースもまたある。
【0018】
本発明の他の実施形態では、メッセージディスパッチャモジュール、メッセージディスパッチャをトランスポートプロトコルにインタフェースするためのトランスポートアダプタ、アプリケーションプログラムがメッセージディスパッチャと通信するインタフェース、第1ネットワークメッセージの第1属性に基づいて前記第1ネットワークメッセージをルーティングし、第2ネットワークメッセージの、第1属性とは異なる第2属性に基づいて第2ネットワークメッセージをルーティングすることをメッセージディスパッチャに命令する格納されたルール、を含むデータ処理装置がある。第1および第2属性は、それぞれのネットワークメッセージ内に含まれる1組のヘッダおよびデータから選択される。
【0019】
他の実施形態は、ネットワークメッセージをルーティングする方法を提供する。メッセージディスパッチャは、第1ネットワークメッセージを第1ネットワークメッセージの第1属性に基づいてルーティングする。メッセージディスパッチャは、第2ネットワークメッセージを、第2ネットワークメッセージの、第1属性とは異なる第2属性に基づいてルーティングする。第1および第2属性は、それぞれのネットワークメッセージの1組のヘッダおよびデータから選択されたどのフィールドでもよい。
【0020】
他の実施形態では、ルータによって実行されると1組のステップを実行するコンピュータ実行可能命令を格納するネットワークルータがある。ネットワークルータは、ネットワークアプリケーションから受け取ったルーティング情報を格納する。ルーティング情報は、メッセージフィールド、フィールド条件、およびメッセージ命令を含む。ネットワークルータは、ネットワークメッセージと格納されたルーティング情報を比較することによってネットワークメッセージを受け取り処理する。受け取ったメッセージのメッセージフィールドがフィールド条件を満たしたとき、ネットワークルータはメッセージ命令を実行する。
【0021】
本発明の他の実施形態は、仮想コンピュータネットワークを提供する。コンピュータネットワークは、トランスポート層プロトコルとネットワークプロトコルの間でメッセージを変換する少なくとも1つのトランスポートアダプタ、メッセージ内容の任意の部分に基づいてメッセージをルーティングしディスパッチするメッセージディスパッチャ、でそれぞれ構成される複数のコンピュータを含む。それぞれのコンピュータ内のメッセージディスパッチャは、仮想ネットワークプロトコルのメッセージを、トランスポートアダプタを使用しトランスポート層プロトコルを介してルーティングする。
【0022】
本発明の他の実施形態では、OSIプロトコルスタックの層6と7の間に挿入された少なくとも1つの仮想化コンポーネントを含む仮想ネットワークがある。
【0023】
【発明の実施の形態】
仮想ネットワーク内のメッセージ解決は、仮想ネットワークディスパッチャ(VND)と呼ぶユニバーサルイネーブリングコンポーネント(universal enabling component)と組み合わせて仮想位置を使用することにより達成することができ、そのコンポーネントは、仮想ネットワーク内に加わる全てのリソース内に含まれる。リソースは、任意のメッセージ端点として定義することができる。図1を参照すると、仮想ネットワーク113上の全てのデバイス101-102には、(IPアドレス、MACアドレス、URL、その他の位置識別子など)その実際のアドレスをマッピングすることができる仮想アドレスが与えられる。VND103は、ルータがインストールされたデバイスとは無関係に、ハードウェアまたはソフトウェアのいずれかを使用して同じ方法でメッセージに応答するそれぞれのデバイス内に統合されたルータモジュールを含むことができる。すなわちルータモジュールは、デバイスに依存しない。VND103は、以下にさらに述べるメッセージハンドラ109を含む。
【0024】
メッセージハンドラ109は、マシンからマシンに異なるか、またはマシン全体で一貫してよい。それぞれのメッセージハンドラは、具体的なタイプのマシンのために明示的に構成するか、あるいは任意の与えられたマシン上で具体的に動作するかまたは動作しないように構成することができる。いくつかのメッセージハンドラ、例えばメッセージヘッダハンドラ、暗号化ハンドラ、を広く配備する一方、他のメッセージハンドラを単一マシン上にのみ配備することができる。
【0025】
それぞれのVNDは、ルーティングおよびディスパッチング機能を実行することを担当する。ルーティングは、メッセージが意図されたデバイスにそれらのメッセージを転送する処理である。ディスパッチングは、メッセージを受け取るときに、そのメッセージを受け取ったことに応答して、適切なハンドラ(例えば、ソフトウェアモジュール、機能、アプリケーションプログラム、ルーチンなど)または他の実行可能ソフトウェアを実行する処理である。VNDが実行するハンドラは、そのVNDがメッセージをどのように処理しルーティングすべきかを判断するルーティングハンドラでよく、またはハンドラは、デバイス上で実行されるアプリケーションプログラムにメッセージを送ってよい。
【0026】
一実施形態においてVNDは、それぞれの特定のアプリケーションが使用するオペレーティングシステム、オブジェクトモデル、または言語とは無関係に、分散され非集中化されたアプリケーションが情報を交換することを可能にするオープンで拡張可能なメッセージングプロトコルでXMLベースのメッセージをルーティングしディスパッチすることができる。仮想ネットワークによって使用されるトランスポートをサポートするどんなプロトコルでも使用することができる。VNDは、ネットワークトランスポートプロトコル107、例えばTCP、IP、UDP、HTTP、SMTP、SOAP-RPなどとともに使用することができる。任意のトランスポートプロトコルを介して一位置でメッセージが受け取られるとき、メッセージ内容がトランスポートアダプタ105によって抽出されVND103に入力される。それぞれのトランスポートアダプタは、事前定義されたトランスポートプロトコルに従ってフォーマットされたメッセージを入力として受け取り、仮想ネットワークプロトコルに従うためにそのメッセージヘッダを変換する(または取り除く)。図1に示すように、それぞれのVND103は、複数のトランスポートプロトコルT1-Tnと共に使用するために複数のトランスポートアダプタTA1-TAnに接続することができる。これは、仮想ネットワークを単一トランスポートプロトコルに縛ることなく複数のトランスポートを越えてそれぞれのVNDを使用することを可能にする。
【0027】
複数のトランスポートプロトコルおよびプロトコルアダプタを使用することによって、それぞれのデバイス上にVND103を置くことは、任意のアプリケーションプログラムが仮想ネットワークプロトコルを使用することによってトランスポート層プロトコルとは独立に他のアプリケーションプログラムと透過的に通信することができるプラットフォームを提供する。当技術分野では、複数のプロトコルを介して通信するように構成された具体的アプリケーションプログラムが知られている。しかし、そうするそれぞれのアプリケーションプログラムは、具体的に構成されなければならない。本明細書に述べる仮想ネットワークを使用して、どのような特別な構成もなしで、複数のプロトコルを介して通信がトランスポートされていることを気付くことさえなく、複数のプロトコルを介してアプリケーションが通信することができる。それぞれのメッセージを送るそれぞれの具体的デバイス内のVND103は、メッセージを送るプロトコルに関する決定を行う。それぞれのメッセージに対して、VNDは、1つまたは複数の事前定義されたプロトコルポリシに基づいてどのプロトコルを使用するかを判断することができる。あるいは、使用されるプロトコルは、アプリケーションまたはウェブサービスの必要または要求あるいはその両方に基づいて、特定のメッセージのためにVNDを動かすアプリケーションまたはウェブサービスに依存してよい。
【0028】
新しいトランスポートプロトコルが仮想ネットワークによって開発されるか、または必要とされるとき、それぞれのVNDと共に使用するための新しいトランスポートアダプタを作成しインストールすることができる。この方法で、仮想ネットワークは、仮想ネットワーク内のそれぞれのアプリケーションにそれぞれのトランスポートプロトコルを構築するサポートを必要とすることなく、新しいトランスポートプロトコルを利用することができる。代わりに、新しいトランスポートプロトコルに対するサポートは、新しいトランスポートアダプタと共に新しいトランスポートプロトコルをいつどのように使用するかを命令するロジックを含むそれぞれのVNDに提供される。
【0029】
VNDは、単一マシン上のローカルおよびリモートディスパッチを統一する。指定されたまたは専用のマシンがルータとして振る舞う従来型ネットワークとは異なり、仮想ネットワークでは通常、全てのデバイスがルータとして振る舞う。例えば、一デバイスは、メッセージを受け取り、そのメッセージが実際にはネットワーク内のどこか他に届けられるべきであると判断するに過ぎない。これが行われるとき、マシンは、(オプションで)メッセージの送信者にエラーメッセージを返す代わりに、正しい受信者、またはその現在のルーティングテーブルおよびルールに基づいてそのマシンが正しいと考える受信者にメッセージを転送する。
【0030】
図10は、本発明の一実施形態による、メッセージルーティング例を示す。VND1001は、トランスポートアダプタ1005aを介して、FROMフィールドに1.2.3.4が入った着信メッセージ1003を受け取る。VND1001は、複数のトランスポートプロトコルと共に使用する複数のトランスポートアダプタ1005a、1005b、および1005cを含むことができる。VND1001は、事前定義された基準に基づいてメッセージをルーティングまたはディスパッチあるいはその両方を行うようにVND1003にそれぞれが命令するハンドラ1007-1013を使用して、受け取ったメッセージ1003を処理する。VND1001は、ハンドラ1007に基づいて、メッセージのTOフィールドを7.7.4.4に修正し、トランスポートアダプタ1005cを介してルーティングされたメッセージ1015を出力する。ルーティングされたメッセージ1015は、1.2.3.4を示す着信メッセージ1003のFROMフィールドに基づいて、宛先アドレス7.7.4.4が入れられたTOフィールドを含む。
【0031】
それぞれのデバイスがルータとして振る舞うので、自己治癒システムを実施することができる。1つのマシンがダウンすると、他のマシンが自動的に補正し、メッセージを送るべき他のパスを見つけ、仮想ネットワークをフォールトトレラントにする。一実施形態では、マシンを冗長性グループ内に置くことができる。冗長性グループ内のそれぞれのマシンは、そのグループ内の他の任意のマシンが故障しそのグループを去ったことを検出することができる。次いで、残りのマシンは、ダウンしていることが知られているマシンの使用を回避するために、メッセージを転送する1つまたは複数のメッセージハンドラ内の情報を更新することができる。したがってマシンは、自分のルーティングおよびロジックテーブル内にコード化された命令に従って、ネットワーク障害およびエラーを補正することができ、それを以下にさらに述べる。他の実施形態では、1つまたは複数のマシンサブシステムが、ネットワークを監視して、最適なパスおよび故障したパスを判断することができる。
【0032】
図2を参照すると、ハンドラ109は、メッセージをどのように処理するか、すなわち着信メッセージをどのように処理するか、メッセージにどのように応答するか、およびメッセージをどのように転送するか、をVND 03に命令するロジックを含む。例えば、第1ハンドラ109aは、ウィルスチェックを実行することができ、第2ハンドラ109bは、セキュリティ機能を実行することができ、第3ハンドラ109cは、信頼性機能を実行することができる等。図2内で109nによって示されるように、無制限の数のハンドラ109を使用することができる。それぞれのマシン上のネットワークアプリケーションを修正する必要なく、与えられた任意のときに、新しいハンドラ109を追加することによって、仮想ネットワークに新しい機能および能力を追加することができる。処理されたメッセージは、論理受信者ポート111を介して出力される。論理端点は、メッセージがそこから送られるデバイス上の任意の物理ポートにマッピングすることができる。
【0033】
VNDハンドラ109は、仮想ネットワークにおいて、アプリケーションネットワークがそれぞれのアプリケーションに1組の論理端点、すなわちデバイスを提示するように作成することができる。アプリケーションは、非統一セマンティックルールを使用するメッセージを介して端点と通信することができる。例えば、第1アプリケーションは、第1メッセージフォーマット(例えば、ヘッダおよびデータ)に従って、ネットワークを介して第2アプリケーションにメッセージ送ることができる。1つまたは複数のハンドラは、メッセージシンタクスを修正することができ、その結果そのメッセージは、第2アプリケーションによって受け取られる前に修正され、異なるメッセージシンタクスで現れる。端点は、物理ネットワーク上にマッピングすることができ、そのネットワークは、それぞれの端点において様々な実施例を有することができ(すなわち、仕様が公に使用可能になると、様々なベンダが仮想ネットワークを動作させるソフトウェアおよびハードウェアを提供することができる)、端点間で非統一のトランスポートプロトコルを使用して通信することができる。
【0034】
上述のネットワークプラットフォームを使用すると、仮想ネットワークは自己編成的に構成することができる。すなわち、仮想ネットワークは、ネットワーク上の指定されたイベントから回復し、そのイベントに適合し、そのイベントに応答して自分自身を再編成するように構成することができる。イベントは、ネットワークに自己適合を引き起こす任意の事前定義された条件でよく、条件の非発生を含む。例えば、ネットワークは、ネットワークのノードが故障したことを検出すると再編成するように構成することができる。このイベントが発生すると、1つまたは複数のハンドラが、パケットを新しい位置にルーティングするようにVNDに命令することができる。他の実施例では、ネットワークパス上の負荷が高いとき、VNDは、よりトラフィックの少ないネットワークパスを介してメッセージをルーティングすることができる。あるいは、ユーザは、グラフィカルユーザインタフェース、または他の構成インタフェースを介して仮想ネットワークを再編成することができる。
【0035】
アプリケーションプログラミングインタフェース(API)115を提供することができ、そのAPIを介して、アプリケーションプログラムがVND103とインタフェースすることができる。メッセージ内容に基づくか、またはそのメッセージを受け取ったトランスポートプロトコルに基づくか、あるいはその両方に基づいてそれぞれのメッセージに応答するようにVNDを構成するAPI115を使用してインタフェースするコンピュータの実行エンジン(例えばオペレーティングシステムまたは仮想マシン)のために、アプリケーションプログラムを書くことができる。VNDは、プロトコルと基礎になる実行エンジンの対話を仲介する。
【0036】
図3は、本発明の一実施形態において使用される構成可能なメッセージフォーマットを示す。それぞれのメッセージ301は、ヘッダ部分303およびデータ部分305を含む。ヘッダは、データ部分内に含まれる情報に関する情報を含む。すなわち、ヘッダは、メッセージ301のデータ部分305に属するある種のメタデータである。ヘッダ部分もデータ部分も固定長である必要はない。ヘッダは、ルーティングヘッダ307、信頼性ヘッダ309、セキュリティヘッダ311、およびアプリケーションヘッダ313を含むことができる。ルーティングヘッダ307は、例えば、送信者のアドレス、受信者のアドレス、およびルーティング処理に向けられた他の任意の情報を含むことができる。アドレスフィールドは、そのアドレスが参照するエンティティまたはデバイスの仮想アドレスを入れることができる。仮想アドレスは、物理または他の論理アドレスをマッピングすることができる論理アドレスである。信頼性ヘッダ309は、パケットが自分の意図した宛先に達することを確実にする任意のヘッダを含むことができる。セキュリティヘッダ311は、メッセージ内容が、意図しない受信者にさらされないことを確実にする任意のヘッダを含むことができる。特定のアプリケーションの必要に基づいて、整合性ヘッダをセキュリティまたは信頼性ヘッダと共に含めることができる。アプリケーションヘッダ313は、先に説明しなかった任意のヘッダを含むことができ、ネットワークアプリケーションによって定義される。
【0037】
一実施形態においてメッセージプロトコルは、事前に存在するメッセージ機能の処理を中断することなく、アプリケーションプログラムが必要なときに新しい機能態様を追加することができるという点において、構成可能プロトコルである。一実施形態においてヘッダは、新しい機能態様を提供するために使用される。新しい機能属性は、1つまたは複数のメッセージヘッダ内に格納することができる。すなわち新しいヘッダは、新しいヘッダ(または機能属性)を含むために1つのメッセージプロトコルが他のメッセージプロトコルをカプセル化する従来型メッセージプロトコル一式とは異なり、前のメッセージの処理を邪魔することなく既存メッセージに追加することができる。したがって、このメッセージプロトコルは、新しい機能を提供するために必要なときに、アプリケーションによって追加ヘッダフィールドを追加または削除することができるという点で拡張可能である。これは、全てのネットワークアプリケーションがそれぞれの新しいメッセージヘッダを理解するようにプログラムする必要なく、ネットワークアプリケーションが、新しいヘッダフィールドを定義しそれらのフィールドをメッセージフォーマットに組込むことを可能にする。それぞれのアプリケーションプログラムは、特定アプリケーションプログラムが理解するように構成されたヘッダのみを使用する。そのアプリケーションプログラムは、自分が理解しないまたは適切に解釈できないヘッダを無視することができる。
【0038】
構成可能なプロトコルは、修正されたXMLベースのプロトコルか、またはそれぞれのTCPメッセージのデータ部分に追加ヘッダが挿入される修正されたTCPプロトコルでよい。アプリケーションが新しいヘッダをメッセージに追加するとき、そのアプリケーションは、新しいヘッダに基づいてルーティングまたはディスパッチあるいはその両方を行う1つまたは複数のハンドラを作成するようにそれぞれのVNDに命令するメッセージを1つまたは複数のVNDに送ることができる。
【0039】
それぞれのVND103は、それぞれのメッセージ内の任意のヘッダまたはデータフィールドあるいはその両方、またはそれぞれのメッセージ内のヘッダまたはデータフィールドあるいはその両方の任意の組合せに基づいて、ルーティング決定を行うことができる。追加のまたはより少ないタイプのヘッダを使用することができる。それぞれのVND103内のそれぞれのハンドラは、メッセージ内容に基づくルーティングのための命令を提供する。
【0040】
例えば、アプリケーションプログラムは、それぞれのメッセージ内に「アクション」ヘッダを定義し含んで、ユーザが受信者に要求するアクションを示すことができる。ネットワークユーザが予約のアクションを指定し、メッセージデータ305を「野球のスコア」に設定すれば、そのメッセージは、送信者のユーザが野球のスコアの電子メールリストを予約したいと考えていることを第1サーバに示すことができる。さらに、アクションフィールドには、仮想機能名を入れて、そのフィールドを受け取るそれぞれのマシンで具体的機能にマッピングすることができる。ネットワークユーザが、予約のアクションを指定してメッセージデータ305を「MSDN」に設定すれば、そのメッセージは、送信者のユーザが「MSDN Magazine」という名前の物理的雑誌を予約したいと考えていることを第2サーバに示すことができる。したがって、2つのアプリケーションはともに、それぞれ異なる方法で予約というアクションを使用することができ、それらのそれぞれの予約の機能によって定義される。
【0041】
他の実施例では、図11を参照しながら、アプリケーションサービスプロバイダ(ASP)が顧客に3つのレベルのサービスを提供すると考える。ASPは、顧客が予約したサービスレベルに基づいて、3つの様々なサーバまたはアプリケーションあるいはその両方の1つにメッセージをルーティングすることができる。ASPは、サービスレベルなどと呼ぶ新しいアプリケーションヘッダを定義かつ使用してそれぞれの顧客に対するサービスレベルを示すことができる。クライアントアプリケーションは、サービスレベルフィールドに金、銀または銅の1つを入れ、具体的顧客が支払ったかまたはそうでなければ予約したか、あるいはその両方のサービスのレベルを示すことができる。マスタサーバ1105は、顧客1101からのすべての着信メッセージをネットワーク1103を介して受け取ることができる。次いでマスタサーバディスパッチャ、例えばVND103は、サービスレベルに基づいて着信顧客メッセージをルーティングすることができる。金のサービスを注文した顧客は、高速応答サーバ1107、すなわち1組の完全なサービスをサポートするサーバ、または他のプレミアレベルのサーバにルーティングすることができる。銀のサービスを注文した顧客は、中速応答サーバ1109、すなわち基本サービスに加えて選択されたサービスをサポートするサーバ、または他の中間サービスレベルサーバにルーティングすることができる。銅サービスを注文した顧客は、低速応答サーバ1111、すなわち基本サービスのみをサポートするサーバ、または他の低サービスレベルサーバにルーティングすることができる。
【0042】
他の実施例では、アプリケーションは送信者ユーザの地理的位置に関する地帯という名前のヘッダフィールドを含むことができる。次いで、送信者ユーザに最も近くに位置するサーバにメッセージが送られるように、送信者の物理位置に基づいて、ルーティング決定を行うことができる。例えば2つのサーバを保守するシステムでは、送信者ユーザがオレゴン州ポートランドに居ることを地理的位置ヘッダフィールドが示すとき、デバイスはワシントン州シアトル内の第1サーバにメッセージをルーティングすることができ、送信者ユーザがミシガン州デトロイト内に居ることを地理的位置ヘッダフィールドが示すときは、イリノイ州シカゴ内の第2サーバにメッセージをルーティングすることができる。これは、等価なサーバが近くにあるとき、遠いサーバにメッセージを送ることを回避する。
【0043】
他の実施例では、1つまたは複数のマシンに対してサービス攻撃の拒否が発せられるとき、それぞれのメッセージの「信任状」フィールドに基づいてすべてのメッセージを拒絶するハンドラを作成することができる。「信任状」フィールドは、メッセージの「from」フィールドと同じでも、そうでなくてもよい。例えば「信任状」フィールドは、送信者ユーザの名前、および送信者が自分で言っている者であることを照明する認証を含むことができるのに対し、「from」フィールドは、送信者のIPアドレスまたは論理名を単に含むに過ぎない。メッセージの「信任状」フィールドが送信者マシンに対する適切な信任状を含むときに、ハンドラが、メッセージを受け付けるように構成することができる。メッセージが拒絶されると、そのメッセージは完全に無視され、正当なメッセージに応答するためのリソースを解放することができる。
【0044】
他の実施例では、図4を参照すると、仮想ネットワークを自己治癒的に構成することができる。ファイアウォール403の背後に位置するマシン401は、ネットワーク接続404上で着信メッセージを受け取ることができる。マシン401は、仮想ネットワーク(すなわち、本明細書に議論した適応ディスパッチャおよびトランスポートアダプタで構成された物理ネットワーク)を介して他のマシン407、409、411に接続することができる。それぞれのマシン401、407、409、および411は、VND405を含む。それぞれのマシン401、407、409、および411は、1つまたは複数の仮想位置を格納することができる。すなわち、マシン1は、「alpha」として知られているサーバを格納し実行することができる。マシン2は、「bravo」として知られているサーバを収容し格納することができる。マシン3は、「charlie」、「delta」および「echo」として知られているサーバを収容し格納することができる。マシン4は、「foxtrot」および「golf」として知られているサーバを収容し格納することができる。仮想ネットワーク内のそれぞれのVNDは、それぞれの仮想位置をその各物理マシンにマッピングするハンドラで構成される。例えば、デバイス401が、仮想位置bravoに宛てられたメッセージを受け取るとき、デバイス401のVND内の仮想位置マッピングハンドラは、そのメッセージをマシン2にルーティングするようにVNDに命令する。しかし、デバイス401は、ファイアウォールでの着信ソースであるので、マシン1内のVND405は、ウィルスに対してすべての着信メッセージを最初にチェックし他のセキュリティ対策を実行する追加ハンドラで構成することができる。
【0045】
仮想ネットワークを自己治癒的にするには、そのネットワーク状況を判断するために他のマシンまたはサーバに定期的にポーリングするようにハンドラを作成することができる。すなわち、サーバ「golf」が「echo」のためのバックアップサーバである場合、マシン4は、マシン3、具体的にはサーバ「echo」が機能していることを確認するために定期的間隔でマシン3にポーリングするように構成することができる。マシン4が指定された時間、例えば10秒以内にマシン3(または「echo」)から肯定応答を受け取らないとき、マシン4がそれぞれのマシンのVNDにルーティングメッセージを送り始めるフェイルオーバ(failover)シーケンスをマシン4が起動することができ、マシン3上の「echo」に対するメッセージを受け取ったとき、そのメッセージは代わりに、マシン4上の「golf」に送るべきであるということをそれぞれのVNDに示す。
【0046】
同様に、図4内に述べるアーキテクチャを使用して、サーバが1つのマシンから他に、例えば1つのIPアドレスから第2IPアドレスに移動するとき、ネットワーク上で動作するそれぞれのアプリケーションプログラムを再構成する必要なく、仮想マッピングをそれぞれのVND内で更新することができる。アプリケーションプログラムがサーバにメッセージを送るとき、それぞれのVNDは、そのサーバの新しい位置にメッセージを自動的に再ルーティングする。仮想マッピングは、手作業で、例えば新しいサーバがシステムに追加されることの結果として更新することができ、またはそのマッピングは、自動的に、例えば上述の自動治癒または適合イベントの結果として更新することができる。図12は、サンプル仮想マッピングテーブルを示す。図13は、ウェブサイトwww.foo.comを収容する第1マシンが故障した後の同じテーブル、および冗長性グループ内の他のマシンにメッセージを再ルーティングする上述の故障に適合したシステムを示す。
【0047】
図5を参照すると、仮想マッピングは新しいサーバおよびネットワークアプリケーションの容易なセットアップおよびテストもまた容易にする。例えば、マシン2上のサーバbravoは、本番の電子メールサーバでよい(すなわちそのサーバは、仮想ネットワーク内で現在使用される電子メールサーバである)。仮想ネットワークの所有者は、新しいまたは異なる機能を有するアップグレードされた電子メールサーバをテストしたいと考えることができる。一般に、その新しいサーバをテストするためであれば、ユーザは、自分の電子メールクライアントをその新しいサーバに宛てなければならない。これは単一ユーザに対しては不便ではないが、新しいサーバがライブになるときに、大きな組織内の全てのユーザのサーバ名を変更することは大きな不便となる可能性がある。本発明的システムを使用すると、同様にbravoという名前でbravoと参照されるテストサーバをマシン3上にインストールすることができる。それぞれのVNDは、bravoに対するメッセージをマシン2にルーティングするようにそのVNDに命令するハンドラで構成することができる。しかし、送信者が所定のユーザ、例えば新しいサーバ(「bravo」)をテストしているネットワーク管理者、であるとき、bravoに対するメッセージをマシン3にルーティングするように同じまたは異なるハンドラが構成される。したがって、テストユーザのマシンの再構成は必要がない。さらに、新しいサーバ「bravo」が本番に置かれる準備ができているとき、どのユーザの電子メールサービスを中断することもなく、すべてのbravoメッセージをマシン3に宛てることによって、ネットワークマッピングを変更することができる。仮想マッピングが変更されたので、それぞれのユーザは、新しい電子メールサーバを透過的に使用し始めるであろう。
【0048】
図7を参照すると、仮想ネットワーク内の通信およびサービスが安全、適合可能、信頼可能、自己治癒的、かつプラットフォーム非依存であることを確実化する1組の仮想ネットワークサービスを提供することができる。仮想ネットワーク同期サービス703は、ネットワーク内の分散データの同期がとられ続けることを確実にする。仮想ネットワークイベンティングサービス705は、イベントの発生または非発生に基づいて、新しいルーティングまたはディスパッチあるいはその両方のルールを作成する。仮想ネットワークメッセージングサービス707は、仮想名前および位置に従ってメッセージをルーティングする。仮想ネットワーク名前サービス709は、仮想名前の任意の部分文字列に基づく名前解決サービスを提供する。仮想ネットワークグループサービス711は、名前マッピングテーブルを管理する。仮想ネットワークアドレシングサービス713は、固定長アドレス名、例えばIPv6アドレスに対するネーミングおよびルーティングサービスを実行する。しかし、仮想ネットワークアドレシングサービスは、固定サイズアドレスの任意のフラットアドレス空間で使用することができる。仮想ネットワークルーティングサービス715は、構成可能メッセージプロトコルを使用して、動的ヘッダと共に動的ルールに基づいてルーティングかつディスパッチする。仮想ネットワークセキュリティサービス717は、ネットワークのすべてのレベルにわたって提供され、メッセージ内容が安全かつ真正であることを確実にすることができる。仮想ネットワーク管理719は、名前管理、ルーティング/ディスパッチハンドラ、イベンティングなど、すべてのレベルにわたって実行することができる。仮想ネットワーク監視サービス721は、当技術分野で知られているように、ネットワーク管理者が、ネットワーク使用状況、帯域幅、ボトルネック点などを監視することを可能にする。
【0049】
図9に示すように、本発明の一実施形態は、7レベルの開放型システム間相互接続(OSI)の修正バージョンに基づくことができる。OSIモデルで使用することができる1つのプロトコルスタックは、TCP/IPプロトコルスタックである。本発明は、最上部アプリケーション層と最上部アプリケーション層の直下の層の間に層を挿入することによって、OSIネットワークモデルまたは他の任意のネットワークモデル内に追加レベルの抽象化を挿入することができる。仮想ネットワーク(VN)層と呼ばれる新しい層は、VN層によって定義される統一的方法でアプリケーションが相互動作できるように、すべてのアプリケーションにわたって一貫しているべきである。VN層が統合されたネットワークは、仮想ネットワークと呼ばれる。一実施形態においてVN層は、仮想ネットワークディスパッチャおよび任意の必要なトランスポートアダプタを含み、メッセージハンドラおよび仮想アドレスマッピングテーブルに基づいてメッセージをルーティングかつディスパッチする。
【0050】
上述のアーキテクチャを使用して、ネットワークは、異なるメッセージ内容に基づいて、個々のメッセージ毎にメッセージをルーティングしディスパッチすることができる。本発明は、APIを使用してプログラマが必要なように適合させ構成することができるネットワークプロトコルを提供する。プログラマおよびAPIを使用するプログラムは、着信メッセージをどのようにルーティングしディスパッチするかをVNDに命令することができる。すなわち、プログラマは、メタメッセージをVNDに送り、ここでそれぞれのメタメッセージは、APIに従って構築され、1つまたは複数のルーティングまたはディスパッチングあるいはその両方の命令を提供する。
【0051】
図8は、本発明の一実施形態による、一般的ルーティング手順の流れ図を示す。ステップ801において、ユーザは、「foo」として知られているサービスにメッセージを送ることを決定する。ステップ803において、マシンはサービス「foo」に対するメッセージを作成する。ステップ805において、サービス名「foo」が仮想アドレスマッピングテーブルに基づいて仮想アドレスにマッピングされる。ステップ807において、メッセージは必要に応じて安全にされる。一実施形態では、ウェブサービスセキュリティ言語(WS-Security)またはウェブサービスライセンス言語(WS-License)あるいはその両方によって定義される拡張子などのSOAP拡張子を使用してセキュリティが実行される。他の実施形態において、適切な部分を選択するためにメッセージ上で変換が実行される。選択された部分に対して要約が計算され、送信者によって暗号化/署名される。メッセージの部分は、秘密であってよい。この場合、それらの部分は、共用鍵、または受信者のために暗号化された新しい鍵を使用して暗号化される。ステップ809において、適用可能なときには、仮想アドレスがグループアドレス(GADDR)にマッピングされる。ステップ811において、適応ディスパッチャ(すなわち、VND)は、最良のターゲットを判断し、ステップ813において、GADDRを仮想アドレスにマッピングする。ステップ815において、仮想アドレスが、物理アドレスにマッピングされ、ステップ817において、メッセージがその物理アドレスに送られる。受信者マシンは、ステップ819でメッセージを受け取り、ステップ821においてセキュリティを検証する。
【0052】
本発明的方法は、フロッピー(登録商標)ディスク、CD-ROM、取外し可能記憶装置、ハードディスク、システムメモリ、その他のデータ記憶媒体などのコンピュータ可読媒体上に格納されたコンピュータ可読命令として実施することができる。あるいは、本発明的方法は、ハードウェアおよびソフトウェアの組合せ、またはハードウェアのみで実施することができる。図6は、上述の実施形態の1つまたは複数に従って使用することができるコンピュータ可読媒体601のブロック図を示す。コンピュータ可読媒体601は、コンピュータ実行可能コンポーネント、またはソフトウェアモジュール603-613を格納する。より多数または少数のソフトウェアモジュールを別法として使用することができる。それぞれのコンポーネントは、実行可能プログラム、データリンクライブラリ、構成ファイル、データベース、グラフィカルイメージ、2進データファイル、テキストデータファイル、オブジェクトファイル、ソースコードファイルなどでよい。1つまたは複数のコンピュータプロセッサが1つまたは複数のソフトウェアモジュールを実行するとき、ソフトウェアモジュールは、対話して、本発明の教示に従って1つまたは複数のコンピュータシステムに実行させる。
【0053】
本発明を実行する現在好ましい方法を含む具体的実施例に関して本発明を述べたが特許請求の範囲において説明する本発明の精神および範囲内に当たる、上述のシステムおよび手法の多数の変形形態および置換があることを当業者は理解するであろう。
【図面の簡単な説明】
【図1】本発明の一実施形態による、仮想ネットワーク内の2つのノードのブロック図である。
【図2】本発明の一実施形態による、仮想ネットワークディスパッチャのブロック図である。
【図3】本発明の一実施形態による、構成可能メッセージプロトコルを示す図である。
【図4】本発明の一実施形態による、仮想ネットワークのブロック図である。
【図5】本発明の他の実施形態による、仮想ネットワークのブロック図である。
【図6】本発明の一実施形態による、コンピュータソフトウェアを格納するコンピュータ可読媒体のブロック図である。
【図7】本発明の一実施形態による、仮想ネットワークによって提供される1組のサービスを示す図である。
【図8】本発明の一実施形態による、メッセージ送達を実行する流れ図である。
【図9】本発明の一実施形態による、修正されたOSIの7層ネットワークプロトコルスタックを示す図である。
【図10】本発明の一実施形態による、仮想ネットワークディスパッチャを介するデータフローを示す図である。
【図11】本発明の一実施形態による、ネットワークアーキテクチャを示す図である。
【図12】サンプル仮想マッピングテーブルを示す図である。
【図13】システムがマシン故障に適合した後の、図12のサンプル仮想マッピングテーブルを示す図である。
【符号の説明】
401 マシン1
403 ファイアウォール
404 ネットワーク接続
405 VND
407 マシン4
409 マシン2
411 マシン3
Claims (6)
- メッセージを、ルーティングしディスパッチするメッセージディスパッチャであって、前記メッセージ内容の任意の部分は、文字列と、対応する物理アドレスとが記載されているテーブル中に記載されており、前記メッセージの受信者の物理アドレスを、前記テーブル上の、前記メッセージ内容の任意の部分の文字列に対応する物理アドレスに変更することによりルーティングを行うメッセージディスパッチャと、
アプリケーションプログラムが前記メッセージディスパッチャと通信して前記メッセージ内容の前記任意の部分を定義するインタフェース
とを備え、前記文字列は仮想ネットワークのノードであり、前記仮想ネットワークは、前記仮想ネットワーク中の1つのノードが故障したおよび復旧したときに再編成されるネットワークであり、前記メッセージディスパッチャが、第1ネットワークメッセージの第1属性に基づいて前記第1ネットワークメッセージをルーティングし、前記第1属性とは異なる第2ネットワークメッセージの第2属性に基づいて前記第2ネットワークメッセージをルーティングすることを特徴とする装置。 - 前記メッセージディスパッチャが、トランスポートに依存しないメッセージディスパッチャを備え、前記メッセージディスパッチャがトランスポートに依存しないプロトコルを使用して通信することを特徴とする請求項1に記載の装置。
- 前記メッセージディスパッチャが、第1の送信者から受信者に宛てた第1ネットワークメッセージを第1サーバにルーティングし、
前記メッセージディスパッチャが、第2の送信者から前記受信者に宛てた第2ネットワークメッセージを第2サーバにルーティングすることを特徴とする請求項1に記載の装置。 - 前記メッセージディスパッチャが、トランスポート層プロトコルより上の仮想ネットワークプロトコルを使用してメッセージをルーティングすることを特徴とする請求項1に記載の装置。
- 前記トランスポート層プロトコルと前記仮想ネットワークプロトコルの間でメッセージを変換するトランスポートアダプタをさらに備えたことを特徴とする請求項1に記載の装置。
- 前記メッセージ内容の前記任意の部分が、アプリケーションレベルヘッダを含むことを特徴とする請求項1に記載の装置。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US32979601P | 2001-10-16 | 2001-10-16 | |
US60/329,796 | 2001-10-16 | ||
US34637001P | 2001-10-19 | 2001-10-19 | |
US60/346,370 | 2001-10-19 | ||
US09/993,656 US7257817B2 (en) | 2001-10-16 | 2001-11-27 | Virtual network with adaptive dispatcher |
US09/993,656 | 2001-11-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003208365A JP2003208365A (ja) | 2003-07-25 |
JP4503225B2 true JP4503225B2 (ja) | 2010-07-14 |
Family
ID=27406692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002302252A Expired - Fee Related JP4503225B2 (ja) | 2001-10-16 | 2002-10-16 | 適応ディスパッチャを有する仮想ネットワーク |
Country Status (5)
Country | Link |
---|---|
US (1) | US7257817B2 (ja) |
EP (1) | EP1303096B1 (ja) |
JP (1) | JP4503225B2 (ja) |
CN (1) | CN1288558C (ja) |
MX (1) | MXPA02010199A (ja) |
Families Citing this family (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8019836B2 (en) | 2002-01-02 | 2011-09-13 | Mesh Comm, Llc | Wireless communication enabled meter and network |
US7606898B1 (en) * | 2000-10-24 | 2009-10-20 | Microsoft Corporation | System and method for distributed management of shared computers |
US6915338B1 (en) * | 2000-10-24 | 2005-07-05 | Microsoft Corporation | System and method providing automatic policy enforcement in a multi-computer service application |
US7113900B1 (en) * | 2000-10-24 | 2006-09-26 | Microsoft Corporation | System and method for logical modeling of distributed computer systems |
US6971001B1 (en) * | 2001-05-17 | 2005-11-29 | Accenture Global Services Gmbh | General and reusable components for defining net-centric application program architectures |
US7373644B2 (en) | 2001-10-02 | 2008-05-13 | Level 3 Communications, Llc | Automated server replication |
US7676540B2 (en) * | 2001-10-16 | 2010-03-09 | Microsoft Corporation | Scoped referral statements |
EP1303097A3 (en) * | 2001-10-16 | 2005-11-30 | Microsoft Corporation | Virtual distributed security system |
US8015204B2 (en) | 2001-10-16 | 2011-09-06 | Microsoft Corporation | Scoped access control metadata element |
US7536712B2 (en) * | 2001-10-16 | 2009-05-19 | Microsoft Corporation | Flexible electronic message security mechanism |
US20030074579A1 (en) * | 2001-10-16 | 2003-04-17 | Microsoft Corporation | Virtual distributed security system |
US7194553B2 (en) | 2001-10-16 | 2007-03-20 | Microsoft Corporation | Resolving virtual network names |
US7610404B2 (en) * | 2002-05-22 | 2009-10-27 | Cast Iron Systems, Inc. | Application network communication method and apparatus |
US8296433B2 (en) * | 2002-05-22 | 2012-10-23 | International Business Machines Corporation | Virtualization method and apparatus for integrating enterprise applications |
US7590987B2 (en) * | 2002-06-05 | 2009-09-15 | Sap Ag | Apparatus and method for integrating variable subsidiary information with main office information in an enterprise system |
US20080301298A1 (en) * | 2002-07-29 | 2008-12-04 | Linda Bernardi | Identifying a computing device |
US8015303B2 (en) * | 2002-08-02 | 2011-09-06 | Astute Networks Inc. | High data rate stateful protocol processing |
US7814218B1 (en) * | 2002-10-17 | 2010-10-12 | Astute Networks, Inc. | Multi-protocol and multi-format stateful processing |
US8151278B1 (en) | 2002-10-17 | 2012-04-03 | Astute Networks, Inc. | System and method for timer management in a stateful protocol processing system |
US20040078471A1 (en) * | 2002-10-18 | 2004-04-22 | Collatus Corporation, A Delaware Corportion | Apparatus, method, and computer program product for building virtual networks |
US7373383B2 (en) * | 2002-12-06 | 2008-05-13 | International Business Machines Corporation | Location messaging method for delivering messages in a global virtual space |
US20040210623A1 (en) * | 2003-03-06 | 2004-10-21 | Aamer Hydrie | Virtual network topology generation |
US8122106B2 (en) | 2003-03-06 | 2012-02-21 | Microsoft Corporation | Integrating design, deployment, and management phases for systems |
US7890543B2 (en) | 2003-03-06 | 2011-02-15 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
US7689676B2 (en) | 2003-03-06 | 2010-03-30 | Microsoft Corporation | Model-based policy application |
JP3969654B2 (ja) * | 2003-03-07 | 2007-09-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Soapメッセージ作成方法並びに処理方法、情報処理方法、情報処理装置及びプログラム |
WO2004099723A1 (en) | 2003-05-12 | 2004-11-18 | Power Measurement Ltd. | Time coordinated energy monitoring system |
US8321590B2 (en) | 2003-05-22 | 2012-11-27 | International Business Machines Corporation | Application network communication |
US7926064B2 (en) * | 2003-07-11 | 2011-04-12 | Computer Associates Think, Inc. | Business transformation logic engine and handlers |
US9317570B2 (en) * | 2003-07-11 | 2016-04-19 | Ca, Inc. | System and method for managing user data in a plurality of databases |
US7788214B2 (en) * | 2003-07-11 | 2010-08-31 | Computer Associates International, Inc. | XML configuration technique and graphical user interface (GUI) for managing user data in a plurality of databases |
GB0328888D0 (en) * | 2003-12-12 | 2004-01-14 | British Telecomm | Distributed computer system |
US7778422B2 (en) | 2004-02-27 | 2010-08-17 | Microsoft Corporation | Security associations for devices |
US20050246529A1 (en) | 2004-04-30 | 2005-11-03 | Microsoft Corporation | Isolated persistent identity storage for authentication of computing devies |
US20050276240A1 (en) * | 2004-05-27 | 2005-12-15 | Gupta Vivek G | Scheme for seamless connections across heterogeneous wireless networks |
US7607011B1 (en) * | 2004-07-16 | 2009-10-20 | Rockwell Collins, Inc. | System and method for multi-level security on a network |
JP4574287B2 (ja) * | 2004-09-01 | 2010-11-04 | キヤノン株式会社 | ファイル管理装置 |
US7450498B2 (en) * | 2004-10-27 | 2008-11-11 | Morgan Stanley | Fault tolerant network architecture |
US20060168268A1 (en) * | 2004-12-02 | 2006-07-27 | International Business Machines Corporation | Specific method of setting transport-specific properties from transport-agnostic clients |
US7644184B2 (en) * | 2004-12-08 | 2010-01-05 | International Business Machines Corporation | Universal adapter |
US7984118B2 (en) * | 2004-12-14 | 2011-07-19 | General Electric Company | Persistent configuration in a multiple processor repairable system |
US7418006B2 (en) * | 2005-03-08 | 2008-08-26 | Microsoft Corporation | Virtual endpoints |
US7802144B2 (en) | 2005-04-15 | 2010-09-21 | Microsoft Corporation | Model-based system monitoring |
US8489728B2 (en) | 2005-04-15 | 2013-07-16 | Microsoft Corporation | Model-based system monitoring |
US7797147B2 (en) | 2005-04-15 | 2010-09-14 | Microsoft Corporation | Model-based system monitoring |
US20060271634A1 (en) * | 2005-05-25 | 2006-11-30 | England Laurence E | Method, system, and program for processing a message with dispatchers |
US8549513B2 (en) | 2005-06-29 | 2013-10-01 | Microsoft Corporation | Model-based virtual system provisioning |
US20070084638A1 (en) * | 2005-10-19 | 2007-04-19 | Clyde Bohnsack | Drilling fluid flow facilitation |
US7941309B2 (en) | 2005-11-02 | 2011-05-10 | Microsoft Corporation | Modeling IT operations/policies |
US7761595B1 (en) | 2006-01-25 | 2010-07-20 | Sprint Communications Company L.P. | Dynamic server addition using virtual routing |
US7464151B1 (en) * | 2006-01-25 | 2008-12-09 | Sprint Communications Company L.P. | Network centric application failover architecture |
US7523340B2 (en) * | 2006-05-31 | 2009-04-21 | Microsoft Corporation | Support self-heal tool |
US7969872B2 (en) * | 2007-07-23 | 2011-06-28 | Mitel Networks Corporation | Distributed network management |
US8988995B2 (en) * | 2007-07-23 | 2015-03-24 | Mitel Network Corporation | Network traffic management |
US20090216639A1 (en) * | 2008-02-25 | 2009-08-27 | Mark Joseph Kapczynski | Advertising selection and display based on electronic profile information |
US20090216563A1 (en) * | 2008-02-25 | 2009-08-27 | Michael Sandoval | Electronic profile development, storage, use and systems for taking action based thereon |
US8458285B2 (en) | 2008-03-20 | 2013-06-04 | Post Dahl Co. Limited Liability Company | Redundant data forwarding storage |
US9203928B2 (en) | 2008-03-20 | 2015-12-01 | Callahan Cellular L.L.C. | Data storage and retrieval |
US8019864B2 (en) | 2009-06-19 | 2011-09-13 | Microsoft Corporation | Using transport-independent resource status |
CA2798481A1 (en) | 2010-05-06 | 2011-11-10 | Atigeo Llc | Systems, methods, and computer readable media for security in profile utilizing systems |
US9563751B1 (en) * | 2010-10-13 | 2017-02-07 | The Boeing Company | License utilization management system service suite |
US10938868B2 (en) * | 2012-12-07 | 2021-03-02 | Unisys Corporation | Application service integration |
US20150379225A1 (en) * | 2014-06-27 | 2015-12-31 | Michael Scott Plasse | System and method for securely managing medical interactions |
US9336040B2 (en) * | 2014-09-15 | 2016-05-10 | Intel Corporation | Techniques for remapping sessions for a multi-threaded application |
US10581767B1 (en) * | 2015-09-23 | 2020-03-03 | Veritas Technologies Llc | Systems and methods for email journaling |
US10025605B2 (en) * | 2016-04-08 | 2018-07-17 | Advanced Micro Devices, Inc. | Message handler compiling and scheduling in heterogeneous system architectures |
US10419243B2 (en) | 2016-09-09 | 2019-09-17 | Johnson Controls Technology Company | Smart gateway devices, systems and methods for providing communication between HVAC system networks |
US11880413B2 (en) * | 2017-06-02 | 2024-01-23 | Qualtrics, Llc | Transforming datasets for visualization within widgets across multiple platforms and software applications |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10290257A (ja) * | 1997-04-16 | 1998-10-27 | Sharp Corp | メッセージ中継装置及び通信システム |
JP2000010880A (ja) * | 1998-06-22 | 2000-01-14 | Ricoh Co Ltd | 電子メール転送装置 |
JP2001230803A (ja) * | 2000-02-15 | 2001-08-24 | Toshiba Corp | 位置識別子管理装置及び移動計算機並びに位置識別子管理方法及び位置識別子処理方法 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61158257A (ja) * | 1984-12-29 | 1986-07-17 | Hashimoto Corp | ビデオテツクス受信中の電話応対方式 |
US4852151A (en) * | 1988-02-24 | 1989-07-25 | Hayes Microcomputer Products, Inc. | Modem with call waiting |
KR910002934B1 (ko) * | 1988-08-31 | 1991-05-10 | 삼성전자 주식회사 | 전자식 간이 교환 장치의 통화 대기 및 교대통화방법 |
US4995074A (en) * | 1989-04-03 | 1991-02-19 | Goldman Bruce J | Switched line modem interface system |
DE69029515D1 (de) * | 1990-06-28 | 1997-02-06 | Ibm | Nachrichtenverarbeitung in einem Datenverarbeitungsgerät |
US5241587A (en) * | 1991-07-03 | 1993-08-31 | Teltone Corporation | Polling controller |
US5224098A (en) * | 1991-07-17 | 1993-06-29 | International Business Machines Corporation | Compensation for mismatched transport protocols in a data communications network |
US5608551A (en) * | 1993-04-12 | 1997-03-04 | In Focus Systems, Inc. | Display panel assembly with microlens structure |
IL111154A0 (en) * | 1993-10-21 | 1994-12-29 | Martino Ii John A | Systems and methods for electronic messaging |
US5509000A (en) * | 1994-06-10 | 1996-04-16 | Motorola, Inc. | Method and apparatus for routing information in a communication system |
US5761477A (en) * | 1995-12-04 | 1998-06-02 | Microsoft Corporation | Methods for safe and efficient implementations of virtual machines |
US6151618A (en) * | 1995-12-04 | 2000-11-21 | Microsoft Corporation | Safe general purpose virtual machine computing system |
US5862339A (en) * | 1996-07-09 | 1999-01-19 | Webtv Networks, Inc. | Client connects to an internet access provider using algorithm downloaded from a central server based upon client's desired criteria after disconnected from the server |
JP3004590B2 (ja) * | 1996-08-02 | 2000-01-31 | 株式会社山田製作所 | ステアリングシャフト |
US5805798A (en) * | 1996-10-29 | 1998-09-08 | Electronic Data Systems Corporation | Fail-safe event driven transaction processing system and method |
US5944825A (en) * | 1997-05-30 | 1999-08-31 | Oracle Corporation | Security and password mechanisms in a database system |
US5999932A (en) * | 1998-01-13 | 1999-12-07 | Bright Light Technologies, Inc. | System and method for filtering unsolicited electronic mail messages using data matching and heuristic processing |
US6119171A (en) * | 1998-01-29 | 2000-09-12 | Ip Dynamics, Inc. | Domain name routing |
US6453356B1 (en) * | 1998-04-15 | 2002-09-17 | Adc Telecommunications, Inc. | Data exchange system and method |
US6233619B1 (en) * | 1998-07-31 | 2001-05-15 | Unisys Corporation | Virtual transport layer interface and messaging subsystem for high-speed communications between heterogeneous computer systems |
US6243749B1 (en) * | 1998-10-08 | 2001-06-05 | Cisco Technology, Inc. | Dynamic network address updating |
US6006259A (en) * | 1998-11-20 | 1999-12-21 | Network Alchemy, Inc. | Method and apparatus for an internet protocol (IP) network clustering system |
JP3688149B2 (ja) * | 1999-05-26 | 2005-08-24 | 沖電気工業株式会社 | パケット中継装置及びパケット中継方法 |
AU2001257567A1 (en) * | 2000-05-08 | 2001-11-20 | Transilica, Inc. | Distributed applications in a portable thread environment |
US20020101880A1 (en) * | 2001-01-30 | 2002-08-01 | Byoung-Jo Kim | Network service for adaptive mobile applications |
-
2001
- 2001-11-27 US US09/993,656 patent/US7257817B2/en not_active Expired - Fee Related
-
2002
- 2002-10-15 EP EP02023016.5A patent/EP1303096B1/en not_active Expired - Lifetime
- 2002-10-16 CN CNB02147320XA patent/CN1288558C/zh not_active Expired - Fee Related
- 2002-10-16 JP JP2002302252A patent/JP4503225B2/ja not_active Expired - Fee Related
- 2002-10-16 MX MXPA02010199A patent/MXPA02010199A/es active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10290257A (ja) * | 1997-04-16 | 1998-10-27 | Sharp Corp | メッセージ中継装置及び通信システム |
JP2000010880A (ja) * | 1998-06-22 | 2000-01-14 | Ricoh Co Ltd | 電子メール転送装置 |
JP2001230803A (ja) * | 2000-02-15 | 2001-08-24 | Toshiba Corp | 位置識別子管理装置及び移動計算機並びに位置識別子管理方法及び位置識別子処理方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1303096A2 (en) | 2003-04-16 |
CN1442788A (zh) | 2003-09-17 |
EP1303096B1 (en) | 2019-05-22 |
EP1303096A3 (en) | 2006-07-26 |
US20030101284A1 (en) | 2003-05-29 |
CN1288558C (zh) | 2006-12-06 |
JP2003208365A (ja) | 2003-07-25 |
MXPA02010199A (es) | 2009-12-14 |
US7257817B2 (en) | 2007-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4503225B2 (ja) | 適応ディスパッチャを有する仮想ネットワーク | |
US7899047B2 (en) | Virtual network with adaptive dispatcher | |
US11902364B2 (en) | Automatic replacement of computing nodes in a virtual computer network | |
US8937960B2 (en) | Managing communications for modified computer networks | |
US6247057B1 (en) | Network server supporting multiple instance of services to operate concurrently by having endpoint mapping subsystem for mapping virtual network names to virtual endpoint IDs | |
US8990433B2 (en) | Defining network traffic processing flows between virtual machines | |
US8634437B2 (en) | Extended network protocols for communicating metadata with virtual machines | |
US5923854A (en) | Virtual internet protocol (IP) addressing | |
US7085826B2 (en) | Method and system for dynamic addition and removal of multiple network names on a single server | |
US8335853B2 (en) | Transparent recovery of transport connections using packet translation techniques | |
US20110004876A1 (en) | Network Traffic Processing Pipeline for Virtual Machines in a Network Device | |
JP2004005610A (ja) | 動的構成管理のための方法および装置 | |
JP2004519024A (ja) | 多数のノードを含むクラスタを管理するためのシステム及び方法 | |
US7907544B2 (en) | Overlay network for location-independent communication between computer systems | |
CN112202615B (zh) | 一种多cni协同工作系统与方法 | |
US6442685B1 (en) | Method and system for multiple network names of a single server | |
US20040010583A1 (en) | Method and apparatus for defining failover events in a network device | |
JP2005295124A (ja) | 経路テーブル同期方法、ネットワーク機器および経路テーブル同期プログラム | |
US7735095B2 (en) | Network device drivers using a communication transport | |
JP2005531856A (ja) | ウインドウズ管理計測同期レポジトリプロバイダ | |
JP4811884B2 (ja) | 異なるインターネット通信スタック・インスタンスの間でデータ・パケットを経路指定するための方法及び装置 | |
US11546405B2 (en) | Methods for exposing mainframe data as a web service and devices thereof | |
CN115378993B (zh) | 支持命名空间感知的服务注册与发现的方法和系统 | |
US20240236179A1 (en) | Automatic configuration change of virtual machines in a computing node group | |
WO2024114645A1 (zh) | 一种虚拟化网络功能vnf的实例化方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050907 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050907 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080215 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080514 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080519 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080616 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080711 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081014 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090515 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090817 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091030 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100301 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20100302 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100302 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20100325 |
|
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: 20100416 |
|
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: 20100421 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4503225 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130430 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140430 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |