JP2003208365A - 適応ディスパッチャを有する仮想ネットワーク - Google Patents

適応ディスパッチャを有する仮想ネットワーク

Info

Publication number
JP2003208365A
JP2003208365A JP2002302252A JP2002302252A JP2003208365A JP 2003208365 A JP2003208365 A JP 2003208365A JP 2002302252 A JP2002302252 A JP 2002302252A JP 2002302252 A JP2002302252 A JP 2002302252A JP 2003208365 A JP2003208365 A JP 2003208365A
Authority
JP
Japan
Prior art keywords
message
network
dispatcher
routing
protocol
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
JP2002302252A
Other languages
English (en)
Other versions
JP4503225B2 (ja
Inventor
Luis F Cabrera
フェリペ カブレラ ルイス
Erik B Christensen
ビー.クリステンセン エリク
Giovanni M Della-Libera
エム.デラ−リベラ ジョバンニ
Christopher G Kaler
ジー.カーラー クリストファー
David E Levin
イー.レビン デビッド
Bradford H Lovering
エイチ.ラブリング ブラッドフォード
Steven E Lucco
イー.ルッコ スティーブン
Stephen J Millet
ジェイ.ミレット スティーブン
John P Shewchuk
ピー.シューチュク ジョン
Robert S Wabbe
エス.ワーベ ロバート
David A Wortendyke
エー.ワーテンダイク デビッド
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 JP2003208365A publication Critical patent/JP2003208365A/ja
Application granted granted Critical
Publication of JP4503225B2 publication Critical patent/JP4503225B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/308Route determination based on user's profile, e.g. premium users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • H04L45/566Routing instructions carried by the data packet, e.g. active networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling 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/63Routing a service request depending on the request content or context
    • 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/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 メッセージエラーまたはネットワーク故障の
後に、復旧することができる仮想ネットワークを提供す
る。 【解決手段】 ネットワーク内のそれぞれのマシン上の
アプリケーションとネットワークトランスポートサービ
スの間に適応ディスパッチャを挿入することによって、
ネットワークサービスアプリケーションと従来型ネット
ワークプロトコルの間に少なくとも1つの抽象化層が作
成される。仮想ネットワーク内のメッセージプロトコル
は、拡張可能であり、アプリケーションプログラムが、
必要な任意のメッセージ内に新しいヘッダを作成するこ
とを可能にする。適応ディスパッチャは、ヘッダまたは
データ内容あるいはその両方の任意の組合せを含むそれ
ぞれのメッセージ内の任意の内容に基づいて、仮想ネッ
トワーク内のメッセージをルーティングしディスパッチ
するハンドラを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般に、コンピュー
タネットワークに関する。より詳細には本発明は、メッ
セージ内容に基づいて適合的にメッセージをルーティン
グする仮想ネットワークに関する。
【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プロトコルスタック(proto
colstack)の使用である。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 network
ing)、および位置非依存性などのサービスを容易に提供
することができる。同様に、システムが、物理的トポロ
ジ変更に適合し故障から自動的に「治癒」することがで
きる。仮想ネットワークは、ネットワークの物理的トポ
ロジ上にコードをマッピングしそのマッピングを透過的
に適合させることを担当する。さらに、開発者はそれら
のサービスの分離から利益を得ることができる。
【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アドレス、M
ACアドレス、URL、その他の位置識別子など)その実際の
アドレスをマッピングすることができる仮想アドレスが
与えられる。VND103は、ルータがインストールされたデ
バイスとは無関係に、ハードウェアまたはソフトウェア
のいずれかを使用して同じ方法でメッセージに応答する
それぞれのデバイス内に統合されたルータモジュールを
含むことができる。すなわちルータモジュールは、デバ
イスに依存しない。VND103は、以下にさらに述べるメッ
セージハンドラ109を含む。
【0024】メッセージハンドラ109は、マシンからマ
シンに異なるか、またはマシン全体で一貫してよい。そ
れぞれのメッセージハンドラは、具体的なタイプのマシ
ンのために明示的に構成するか、あるいは任意の与えら
れたマシン上で具体的に動作するかまたは動作しないよ
うに構成することができる。いくつかのメッセージハン
ドラ、例えばメッセージヘッダハンドラ、暗号化ハンド
ラ、を広く配備する一方、他のメッセージハンドラを単
一マシン上にのみ配備することができる。
【0025】それぞれのVNDは、ルーティングおよびデ
ィスパッチング機能を実行することを担当する。ルーテ
ィングは、メッセージが意図されたデバイスにそれらの
メッセージを転送する処理である。ディスパッチング
は、メッセージを受け取るときに、そのメッセージを受
け取ったことに応答して、適切なハンドラ(例えば、ソ
フトウェアモジュール、機能、アプリケーションプログ
ラム、ルーチンなど)または他の実行可能ソフトウェア
を実行する処理である。VNDが実行するハンドラは、そ
のVNDがメッセージをどのように処理しルーティングす
べきかを判断するルーティングハンドラでよく、または
ハンドラは、デバイス上で実行されるアプリケーション
プログラムにメッセージを送ってよい。
【0026】一実施形態においてVNDは、それぞれの特
定のアプリケーションが使用するオペレーティングシス
テム、オブジェクトモデル、または言語とは無関係に、
分散され非集中化されたアプリケーションが情報を交換
することを可能にするオープンで拡張可能なメッセージ
ングプロトコルでXMLベースのメッセージをルーティン
グしディスパッチすることができる。仮想ネットワーク
によって使用されるトランスポートをサポートするどん
なプロトコルでも使用することができる。VNDは、ネッ
トワークトランスポートプロトコル107、例えばTCP、I
P、UDP、HTTP、SMTP、SOAP-RPなどとともに使用するこ
とができる。任意のトランスポートプロトコルを介して
一位置でメッセージが受け取られるとき、メッセージ内
容がトランスポートアダプタ105によって抽出されVND10
3に入力される。それぞれのトランスポートアダプタ
は、事前定義されたトランスポートプロトコルに従って
フォーマットされたメッセージを入力として受け取り、
仮想ネットワークプロトコルに従うためにそのメッセー
ジヘッダを変換する(または取り除く)。図1に示すよう
に、それぞれのVND103は、複数のトランスポートプロト
コルT1-Tnと共に使用するために複数のトランスポート
アダプタTA1-TAnに接続することができる。これは、仮
想ネットワークを単一トランスポートプロトコルに縛る
ことなく複数のトランスポートを越えてそれぞれのVND
を使用することを可能にする。
【0027】複数のトランスポートプロトコルおよびプ
ロトコルアダプタを使用することによって、それぞれの
デバイス上にVND103を置くことは、任意のアプリケーシ
ョンプログラムが仮想ネットワークプロトコルを使用す
ることによってトランスポート層プロトコルとは独立に
他のアプリケーションプログラムと透過的に通信するこ
とができるプラットフォームを提供する。当技術分野で
は、複数のプロトコルを介して通信するように構成され
た具体的アプリケーションプログラムが知られている。
しかし、そうするそれぞれのアプリケーションプログラ
ムは、具体的に構成されなければならない。本明細書に
述べる仮想ネットワークを使用して、どのような特別な
構成もなしで、複数のプロトコルを介して通信がトラン
スポートされていることを気付くことさえなく、複数の
プロトコルを介してアプリケーションが通信することが
できる。それぞれのメッセージを送るそれぞれの具体的
デバイス内のVND103は、メッセージを送るプロトコルに
関する決定を行う。それぞれのメッセージに対して、VN
Dは、1つまたは複数の事前定義されたプロトコルポリシ
に基づいてどのプロトコルを使用するかを判断すること
ができる。あるいは、使用されるプロトコルは、アプリ
ケーションまたはウェブサービスの必要または要求ある
いはその両方に基づいて、特定のメッセージのためにVN
Dを動かすアプリケーションまたはウェブサービスに依
存してよい。
【0028】新しいトランスポートプロトコルが仮想ネ
ットワークによって開発されるか、または必要とされる
とき、それぞれのVNDと共に使用するための新しいトラ
ンスポートアダプタを作成しインストールすることがで
きる。この方法で、仮想ネットワークは、仮想ネットワ
ーク内のそれぞれのアプリケーションにそれぞれのトラ
ンスポートプロトコルを構築するサポートを必要とする
ことなく、新しいトランスポートプロトコルを利用する
ことができる。代わりに、新しいトランスポートプロト
コルに対するサポートは、新しいトランスポートアダプ
タと共に新しいトランスポートプロトコルをいつどのよ
うに使用するかを命令するロジックを含むそれぞれのVN
Dに提供される。
【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を示す着信メッセージ100
3の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、信頼性ヘッダ3
09、セキュリティヘッダ311、およびアプリケーション
ヘッダ313を含むことができる。ルーティングヘッダ307
は、例えば、送信者のアドレス、受信者のアドレス、お
よびルーティング処理に向けられた他の任意の情報を含
むことができる。アドレスフィールドは、そのアドレス
が参照するエンティティまたはデバイスの仮想アドレス
を入れることができる。仮想アドレスは、物理または他
の論理アドレスをマッピングすることができる論理アド
レスである。信頼性ヘッダ309は、パケットが自分の意
図した宛先に達することを確実にする任意のヘッダを含
むことができる。セキュリティヘッダ311は、メッセー
ジ内容が、意図しない受信者にさらされないことを確実
にする任意のヘッダを含むことができる。特定のアプリ
ケーションの必要に基づいて、整合性ヘッダをセキュリ
ティまたは信頼性ヘッダと共に含めることができる。ア
プリケーションヘッダ313は、先に説明しなかった任意
のヘッダを含むことができ、ネットワークアプリケーシ
ョンによって定義される。
【0037】一実施形態においてメッセージプロトコル
は、事前に存在するメッセージ機能の処理を中断するこ
となく、アプリケーションプログラムが必要なときに新
しい機能態様を追加することができるという点におい
て、構成可能プロトコルである。一実施形態においてヘ
ッダは、新しい機能態様を提供するために使用される。
新しい機能属性は、1つまたは複数のメッセージヘッダ
内に格納することができる。すなわち新しいヘッダは、
新しいヘッダ(または機能属性)を含むために1つのメッ
セージプロトコルが他のメッセージプロトコルをカプセ
ル化する従来型メッセージプロトコル一式とは異なり、
前のメッセージの処理を邪魔することなく既存メッセー
ジに追加することができる。したがって、このメッセー
ジプロトコルは、新しい機能を提供するために必要なと
きに、アプリケーションによって追加ヘッダフィールド
を追加または削除することができるという点で拡張可能
である。これは、全てのネットワークアプリケーション
がそれぞれの新しいメッセージヘッダを理解するように
プログラムする必要なく、ネットワークアプリケーショ
ンが、新しいヘッダフィールドを定義しそれらのフィー
ルドをメッセージフォーマットに組込むことを可能にす
る。それぞれのアプリケーションプログラムは、特定ア
プリケーションプログラムが理解するように構成された
ヘッダのみを使用する。そのアプリケーションプログラ
ムは、自分が理解しないまたは適切に解釈できないヘッ
ダを無視することができる。
【0038】構成可能なプロトコルは、修正されたXML
ベースのプロトコルか、またはそれぞれのTCPメッセー
ジのデータ部分に追加ヘッダが挿入される修正されたTC
Pプロトコルでよい。アプリケーションが新しいヘッダ
をメッセージに追加するとき、そのアプリケーション
は、新しいヘッダに基づいてルーティングまたはディス
パッチあるいはその両方を行う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は、「brav
o」として知られているサーバを収容し格納することが
できる。マシン3は、「charlie」、「delta」および「e
cho」として知られているサーバを収容し格納すること
ができる。マシン4は、「foxtrot」および「golf」とし
て知られているサーバを収容し格納することができる。
仮想ネットワーク内のそれぞれのVNDは、それぞれの仮
想位置をその各物理マシンにマッピングするハンドラで
構成される。例えば、デバイス401が、仮想位置bravoに
宛てられたメッセージを受け取るとき、デバイス401のV
ND内の仮想位置マッピングハンドラは、そのメッセージ
をマシン2にルーティングするようにVNDに命令する。し
かし、デバイス401は、ファイアウォールでの着信ソー
スであるので、マシン1内のVND405は、ウィルスに対し
てすべての着信メッセージを最初にチェックし他のセキ
ュリティ対策を実行する追加ハンドラで構成することが
できる。
【0045】仮想ネットワークを自己治癒的にするに
は、そのネットワーク状況を判断するために他のマシン
またはサーバに定期的にポーリングするようにハンドラ
を作成することができる。すなわち、サーバ「golf」が
「echo」のためのバックアップサーバである場合、マシ
ン4は、マシン3、具体的にはサーバ「echo」が機能して
いることを確認するために定期的間隔でマシン3にポー
リングするように構成することができる。マシン4が指
定された時間、例えば10秒以内にマシン3(または「ech
o」)から肯定応答を受け取らないとき、マシン4がそれ
ぞれのマシンのVNDにルーティングメッセージを送り始
めるフェイルオーバ(failover)シーケンスをマシン4が
起動することができ、マシン3上の「echo」に対するメ
ッセージを受け取ったとき、そのメッセージは代わり
に、マシン4上の「golf」に送るべきであるということ
をそれぞれのVNDに示す。
【0046】同様に、図4内に述べるアーキテクチャを
使用して、サーバが1つのマシンから他に、例えば1つの
IPアドレスから第2IPアドレスに移動するとき、ネット
ワーク上で動作するそれぞれのアプリケーションプログ
ラムを再構成する必要なく、仮想マッピングをそれぞれ
のVND内で更新することができる。アプリケーションプ
ログラムがサーバにメッセージを送るとき、それぞれの
VNDは、そのサーバの新しい位置にメッセージを自動的
に再ルーティングする。仮想マッピングは、手作業で、
例えば新しいサーバがシステムに追加されることの結果
として更新することができ、またはそのマッピングは、
自動的に、例えば上述の自動治癒または適合イベントの
結果として更新することができる。図12は、サンプル仮
想マッピングテーブルを示す。図13は、ウェブサイトww
w.foo.comを収容する第1マシンが故障した後の同じテー
ブル、および冗長性グループ内の他のマシンにメッセー
ジを再ルーティングする上述の故障に適合したシステム
を示す。
【0047】図5を参照すると、仮想マッピングは新し
いサーバおよびネットワークアプリケーションの容易な
セットアップおよびテストもまた容易にする。例えば、
マシン2上のサーバbravoは、本番の電子メールサーバで
よい(すなわちそのサーバは、仮想ネットワーク内で現
在使用される電子メールサーバである)。仮想ネットワ
ークの所有者は、新しいまたは異なる機能を有するアッ
プグレードされた電子メールサーバをテストしたいと考
えることができる。一般に、その新しいサーバをテスト
するためであれば、ユーザは、自分の電子メールクライ
アントをその新しいサーバに宛てなければならない。こ
れは単一ユーザに対しては不便ではないが、新しいサー
バがライブになるときに、大きな組織内の全てのユーザ
のサーバ名を変更することは大きな不便となる可能性が
ある。本発明的システムを使用すると、同様にbravoと
いう名前でbravoと参照されるテストサーバをマシン3上
にインストールすることができる。それぞれのVNDは、b
ravoに対するメッセージをマシン2にルーティングする
ようにそのVNDに命令するハンドラで構成することがで
きる。しかし、送信者が所定のユーザ、例えば新しいサ
ーバ(「bravo」)をテストしているネットワーク管理
者、であるとき、bravoに対するメッセージをマシン3に
ルーティングするように同じまたは異なるハンドラが構
成される。したがって、テストユーザのマシンの再構成
は必要がない。さらに、新しいサーバ「bravo」が本番
に置かれる準備ができているとき、どのユーザの電子メ
ールサービスを中断することもなく、すべてのbravoメ
ッセージをマシン3に宛てることによって、ネットワー
クマッピングを変更することができる。仮想マッピング
が変更されたので、それぞれのユーザは、新しい電子メ
ールサーバを透過的に使用し始めるであろう。
【0048】図7を参照すると、仮想ネットワーク内の
通信およびサービスが安全、適合可能、信頼可能、自己
治癒的、かつプラットフォーム非依存であることを確実
化する1組の仮想ネットワークサービスを提供すること
ができる。仮想ネットワーク同期サービス703は、ネッ
トワーク内の分散データの同期がとられ続けることを確
実にする。仮想ネットワークイベンティングサービス70
5は、イベントの発生または非発生に基づいて、新しい
ルーティングまたはディスパッチあるいはその両方のル
ールを作成する。仮想ネットワークメッセージングサー
ビス707は、仮想名前および位置に従ってメッセージを
ルーティングする。仮想ネットワーク名前サービス709
は、仮想名前の任意の部分文字列に基づく名前解決サー
ビスを提供する。仮想ネットワークグループサービス71
1は、名前マッピングテーブルを管理する。仮想ネット
ワークアドレシングサービス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
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ルイス フェリペ カブレラ アメリカ合衆国 98009−4168 ワシント ン州 ベルビュー キラニー ウェイ サ ウスイースト 2009 (72)発明者 エリク ビー.クリステンセン アメリカ合衆国 98177 ワシントン州 シアトル ザ ハイランズ (番地なし) (72)発明者 ジョバンニ エム.デラ−リベラ アメリカ合衆国 98112 ワシントン州 シアトル イースト ロイ ストリート 2712 (72)発明者 クリストファー ジー.カーラー アメリカ合衆国 98074 ワシントン州 サマミッシュ ノースイースト 28 プレ イス 22222 (72)発明者 デビッド イー.レビン アメリカ合衆国 98052 ワシントン州 レッドモンド ノースイースト 156 ア ベニュー 5858 (72)発明者 ブラッドフォード エイチ.ラブリング アメリカ合衆国 98119 ワシントン州 シアトル ウエスト ハイランド ドライ ブ 317 (72)発明者 スティーブン イー.ルッコ アメリカ合衆国 98004 ワシントン州 ベルビュー サウスイースト 16 プレイ ス 10156 (72)発明者 スティーブン ジェイ.ミレット アメリカ合衆国 98026 ワシントン州 エドモンズ オリンピック ビュー ドラ イブ 8412 (72)発明者 ジョン ピー.シューチュク アメリカ合衆国 98053 ワシントン州 レッドモンド ノースイースト 67 スト リート 21604 (72)発明者 ロバート エス.ワーベ アメリカ合衆国 98112 ワシントン州 シアトル マクジブラ ブールバード イ ースト 715 (72)発明者 デビッド エー.ワーテンダイク アメリカ合衆国 98118 ワシントン州 シアトル サウス カスケーディア アベ ニュー 3853 Fターム(参考) 5B045 BB28 BB42 5B089 GB01 KA12 KC21 KG08

Claims (42)

    【特許請求の範囲】
  1. 【請求項1】 それぞれがメッセージ内容の任意の部分
    に基づいてルーティングされるメッセージを、ルーティ
    ングしディスパッチするメッセージディスパッチャと、 アプリケーションプログラムが前記メッセージディスパ
    ッチャと通信して前記メッセージ内容の前記任意の部分
    を定義するインタフェースとを備えたことを特徴とする
    装置。
  2. 【請求項2】 前記メッセージディスパッチャが、トラ
    ンスポートに依存しないメッセージディスパッチャを備
    え、前記メッセージディスパッチャがトランスポートに
    依存しないプロトコルを使用して通信することを特徴と
    する請求項1に記載の装置。
  3. 【請求項3】 前記メッセージディスパッチャが、第1
    ネットワークメッセージの第1属性に基づいて前記第1ネ
    ットワークメッセージをルーティングし、前記第1属性
    とは異なる第2ネットワークメッセージの第2属性に基づ
    いて前記第2ネットワークメッセージをルーティングす
    ることを特徴とする請求項1に記載の装置。
  4. 【請求項4】 前記メッセージディスパッチャが、第1
    の送信者から受信者に宛てた第1ネットワークメッセー
    ジを第1サーバにルーティングし、 前記メッセージディスパッチャが、第2の送信者から前
    記受信者に宛てた第2ネットワークメッセージを第2サー
    バにルーティングすることを特徴とする請求項1に記載
    の装置。
  5. 【請求項5】 前記メッセージディスパッチャが、トラ
    ンスポート層プロトコルより上の仮想ネットワークプロ
    トコルを使用してメッセージをルーティングすることを
    特徴とする請求項1に記載の装置。
  6. 【請求項6】 前記トランスポート層プロトコルと前記
    仮想ネットワークプロトコルの間でメッセージを変換す
    るトランスポートアダプタをさらに備えたことを特徴と
    する請求項1に記載の装置。
  7. 【請求項7】 前記メッセージ内容の前記任意の部分
    が、アプリケーションレベルヘッダを含むことを特徴と
    する請求項1に記載の装置。
  8. 【請求項8】 メッセージディスパッチャモジュール
    と、 前記メッセージディスパッチャをトランスポートプロト
    コルにインタフェースするためのトランスポートアダプ
    タと、 アプリケーションプログラムが前記メッセージディスパ
    ッチャと通信するインタフェースと、 第1ネットワークメッセージの第1属性に基づいて前記第
    1ネットワークメッセージをルーティングすること、お
    よび第2ネットワークメッセージの、前記第1属性とは異
    なる第2属性に基づいて、前記第2ネットワークメッセー
    ジをルーティングすることを前記メッセージディスパッ
    チャに命令する格納されたルールとを備えるデータ処理
    装置であって、前記第1および第2属性が、それぞれのネ
    ットワークメッセージ内に含まれる1組のヘッダおよび
    データから選択されることを特徴とするデータ処理装
    置。
  9. 【請求項9】 前記第1属性がアプリケーションによっ
    て作成されたヘッダを含むことを特徴とする請求項8に
    記載のデータ処理装置。
  10. 【請求項10】 それぞれのメッセージルールが、メッ
    セージハンドラ内に格納されることを特徴とする請求項
    8に記載のデータ処理装置。
  11. 【請求項11】 所定の条件の発生時に第2メッセージ
    ハンドラを変更する第1メッセージハンドラを備えたこ
    とを特徴とする請求項10に記載のデータ処理装置。
  12. 【請求項12】 所定の条件の発生時に前記第1ネット
    ワークメッセージを変更する第1メッセージハンドラを
    備えたことを特徴とする請求項10に記載のデータ処理装
    置。
  13. 【請求項13】 前記所定の条件が、イベントの非発生
    を含むことを特徴とする請求項11に記載のデータ処理装
    置。
  14. 【請求項14】 実行されたときに、 (i)第1の所定の間隔で第2装置にポーリングするステッ
    プと、 (ii)前記第2装置からポーリング応答を受け取るステッ
    プとを前記データ処理装置に実行させるコンピュータ実
    行可能命令を、前記メッセージディスパッチャモジュー
    ルが備え、 前記所定の条件が、所定の時間にステップ(ii)が発生し
    ないことを含むことを特徴とする請求項13に記載のデー
    タ処理装置。
  15. 【請求項15】 前記所定の条件が満たされたとき、前
    記メッセージディスパッチャが、元々前記第2装置に宛
    てられたメッセージを第3装置に宛先変更するように前
    記第2メッセージハンドラを変更することを特徴とする
    請求項14に記載のデータ処理装置。
  16. 【請求項16】 前記コンピュータ実行可能命令が、ル
    ーティング情報を第2メッセージディスパッチャに送っ
    て前記第2および第3装置に対応するルーティング情報の
    変更を示すステップを、前記データ処理装置にさらに実
    行させることを特徴とする請求項15に記載のデータ処理
    装置。
  17. 【請求項17】 (i)第1ネットワークメッセージの第1
    属性に基づいて、前記第1ネットワークメッセージをル
    ーティングするステップと、 (ii)第2ネットワークメッセージの、前記第1属性とは異
    なる第2属性に基づいて、前記第2ネットワークメッセー
    ジをルーティングするステップとを含む、ネットワーク
    メッセージをルーティングする方法であって、 前記第1および第2属性が、それぞれのネットワークメッ
    セージの1組のヘッダおよびデータから選択された任意
    のフィールドでよいことを特徴とする方法。
  18. 【請求項18】 (iii)メッセージフィールドおよびフ
    ィールド条件を含む命令を受け取るステップと、 (iv)前記受け取った命令に基づいてメッセージハンドラ
    を修正するステップとをさらに含むことを特徴とする請
    求項17に記載の方法。
  19. 【請求項19】 ステップ(iii)において、前記命令
    が、ネットワークアプリケーションプログラムから受け
    取られることを特徴とする請求項18に記載の方法。
  20. 【請求項20】 ステップ(iii)において、前記命令が
    ユーザ入力に基づくことを特徴とする請求項18に記載の
    方法。
  21. 【請求項21】 ステップ(i)および(ii)において、仮
    想ネットワークプロトコルからトランスポートプロトコ
    ルにメッセージを変換するトランスポートアダプタにそ
    れぞれのメッセージが出力されることを特徴とする請求
    項17に記載の方法。
  22. 【請求項22】 ステップ(i)において、前記第1属性
    が、アプリケーションによって作成されたヘッダを含む
    ことを特徴とする請求項17に記載の方法。
  23. 【請求項23】 ルーティング命令をメッセージハンド
    ラ内に格納するステップをさらに含む方法であって、ス
    テップ(i)および(ii)が、格納されたメッセージハンド
    ラに基づいて実行されることを特徴とする請求項17に記
    載の方法。
  24. 【請求項24】 所定の条件が発生したときに、第1メ
    ッセージハンドラを変更するステップをさらに含むこと
    を特徴とする請求項23に記載の方法。
  25. 【請求項25】 メッセージハンドラ内に格納された所
    定の条件をメッセージが満たしたときに、ネットワーク
    メッセージを変更するステップをさらに含むことを特徴
    とする請求項23に記載の方法。
  26. 【請求項26】 前記所定の条件が、イベントの非発生
    を含むことを特徴とする請求項24に記載の方法。
  27. 【請求項27】 (iii)所定の間隔で第1データ処理デバ
    イスにポーリングするステップと、 (iv)前記第1データ処理デバイスからポーリング応答を
    受け取るステップと (v)ステップ(iv)が所定の時間に発生しなかったとき
    に、元々前記第1データ処理デバイスに宛てられたメッ
    セージを第2データ処理デバイスに宛てるためにメッセ
    ージハンドラを変更するステップとをさらに含むことを
    特徴とする請求項17に記載の方法。
  28. 【請求項28】 ルーティング情報をメッセージディス
    パッチャに送って、前記第1および第2データ処理デバイ
    スに対応するルーティング情報の変更を示すステップを
    さらに含むことを特徴とする請求項27に記載の方法。
  29. 【請求項29】 前記ルータによって実行されたとき
    に、 (i)ネットワークアプリケーションから受け取ったルー
    ティング情報を格納するステップであって、前記ルーテ
    ィング情報が、メッセージフィールド、フィールド条
    件、およびルーティング命令を含むステップと、 (ii)ネットワークメッセージを受け取るステップと、 (iii)前記ネットワークメッセージと前記格納されたル
    ーティング情報を比較することによって、前記ネットワ
    ークメッセージを処理するステップと、 (iv)前記受け取ったメッセージのメッセージフィールド
    が前記フィールド条件を満たしたとき、前記ルーティン
    グ命令を実行するステップとを実行するコンピュータ実
    行可能命令を含むことを特徴とするネットワークルー
    タ。
  30. 【請求項30】 ステップ(iv)において、前記ルーティ
    ング命令が、前記メッセージを変更することを含むこと
    を特徴とする請求項29に記載のネットワークルータ。
  31. 【請求項31】 ステップ(iv)において、前記ルーティ
    ング命令が、アプリケーションレベルヘッダに基づいて
    前記メッセージをルーティングすることを含むことを特
    徴とする請求項29に記載のネットワークルータ。
  32. 【請求項32】 トランスポート層プロトコルとネット
    ワークプロトコルの間でメッセージを変換する少なくと
    も1つのトランスポートアダプタと、 メッセージ内容の任意の部分に基づいてメッセージをル
    ーティングしディスパッチするメッセージディスパッチ
    ャとをそれぞれが備える複数のコンピュータを備えるコ
    ンピュータネットワークであって、それぞれのコンピュ
    ータ内の前記メッセージディスパッチャが、前記仮想ネ
    ットワークプロトコルのメッセージを、前記少なくとも
    1つのトランスポートアダプタを使用して前記トランス
    ポート層プロトコルを介してルーティングすることを特
    徴とするコンピュータネットワーク。
  33. 【請求項33】 第1コンピュータ内の第1メッセージデ
    ィスパッチャが、新しいトランスポート層プロトコルと
    前記ネットワークプロトコルの間でメッセージを変換す
    る新しいトランスポートアダプタを追加することによっ
    て、前記新しいトランスポートプロトコルで使用するた
    めにネットワークアプリケーションを再構成する必要な
    く、前記新しいトランスポートプロトコルで使用するた
    めに構成可能であることを特徴とする請求項32に記載の
    コンピュータネットワーク。
  34. 【請求項34】 OSIプロトコルスタックの層7と層6の
    間に挿入された少なくとも1つの仮想化されたコンポー
    ネントを備えたことを特徴とする仮想ネットワーク。
  35. 【請求項35】 前記少なくとも1つの仮想化されたコ
    ンポーネントが、仮想ネットワークメッセージディスパ
    ッチャを備えたことを特徴とする請求項34に記載の仮想
    ネットワーク。
  36. 【請求項36】 前記少なくとも1つの仮想化されたコ
    ンポーネントが、同期モジュールを備えたことを特徴と
    する請求項34に記載の仮想ネットワーク。
  37. 【請求項37】 前記少なくとも1つの仮想化されたコ
    ンポーネントが、イベンティングモジュールを備えたこ
    とを特徴とする請求項34に記載の方法。
  38. 【請求項38】 前記少なくとも1つの仮想化されたコ
    ンポーネントが、名前モジュールを備えたことを特徴と
    する請求項34に記載の仮想ネットワーク。
  39. 【請求項39】 前記少なくとも1つの仮想化されたコ
    ンポーネントがグループモジュールを備えたことを特徴
    とする請求項34に記載の仮想ネットワーク。
  40. 【請求項40】 前記少なくとも1つの仮想化されたコ
    ンポーネントが、アドレシングモジュールを備えたこと
    を特徴とする請求項34に記載の仮想ネットワーク。
  41. 【請求項41】 前記少なくとも1つの仮想化されたコ
    ンポーネントが、セキュリティモジュールを備えたこと
    を特徴とする請求項34に記載の仮想ネットワーク。
  42. 【請求項42】 前記少なくとも1つの仮想化されたコ
    ンポーネントが、管理モジュールを備えたことを特徴と
    する請求項34に記載の仮想ネットワーク。
JP2002302252A 2001-10-16 2002-10-16 適応ディスパッチャを有する仮想ネットワーク Expired - Fee Related JP4503225B2 (ja)

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 true JP2003208365A (ja) 2003-07-25
JP4503225B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006072647A (ja) * 2004-09-01 2006-03-16 Canon Inc ファイル管理装置
JP2006129446A (ja) * 2004-10-27 2006-05-18 Morgan Stanley フォールト・トレラント・ネットワーク・アーキテクチャ

Families Citing this family (66)

* Cited by examiner, † Cited by third party
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
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
US7606898B1 (en) * 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
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
EP1303097A3 (en) * 2001-10-16 2005-11-30 Microsoft Corporation Virtual distributed security system
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
US8015204B2 (en) 2001-10-16 2011-09-06 Microsoft Corporation Scoped access control metadata element
US7194553B2 (en) 2001-10-16 2007-03-20 Microsoft Corporation Resolving virtual network names
US7676540B2 (en) * 2001-10-16 2010-03-09 Microsoft Corporation Scoped referral statements
US8296433B2 (en) * 2002-05-22 2012-10-23 International Business Machines Corporation Virtualization method and apparatus for integrating enterprise applications
US7610404B2 (en) * 2002-05-22 2009-10-27 Cast Iron Systems, Inc. Application network communication method and apparatus
DE10392750T5 (de) * 2002-06-05 2005-11-03 Sap Aktiengesellschaft Vorrichtung und Verfahren zum Abstimmen von variablen Hilfsinformationen auf Hauptbüroinformationen in einem Firmensystem
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
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
US20040210623A1 (en) * 2003-03-06 2004-10-21 Aamer Hydrie Virtual network topology generation
JP3969654B2 (ja) * 2003-03-07 2007-09-05 インターナショナル・ビジネス・マシーンズ・コーポレーション Soapメッセージ作成方法並びに処理方法、情報処理方法、情報処理装置及びプログラム
EP1625358A1 (en) * 2003-05-12 2006-02-15 Power Measurement Ltd Time coordinating energy monitoring system
US8321590B2 (en) * 2003-05-22 2012-11-27 International Business Machines Corporation Application network communication
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
US7926064B2 (en) * 2003-07-11 2011-04-12 Computer Associates Think, Inc. Business transformation logic engine and handlers
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
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
US8988995B2 (en) * 2007-07-23 2015-03-24 Mitel Network Corporation Network traffic management
US7969872B2 (en) * 2007-07-23 2011-06-28 Mitel Networks Corporation Distributed network 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
US8984647B2 (en) 2010-05-06 2015-03-17 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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
EP0463252B1 (en) * 1990-06-28 1996-12-27 International Business Machines Corporation Message handling in data processing apparatus
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
US6151618A (en) 1995-12-04 2000-11-21 Microsoft Corporation Safe general purpose virtual machine computing system
US5761477A (en) 1995-12-04 1998-06-02 Microsoft Corporation Methods for safe and efficient implementations of virtual machines
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 沖電気工業株式会社 パケット中継装置及びパケット中継方法
US6748453B2 (en) * 2000-05-08 2004-06-08 Microtune (San Diego), 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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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 位置識別子管理装置及び移動計算機並びに位置識別子管理方法及び位置識別子処理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006072647A (ja) * 2004-09-01 2006-03-16 Canon Inc ファイル管理装置
JP4574287B2 (ja) * 2004-09-01 2010-11-04 キヤノン株式会社 ファイル管理装置
JP2006129446A (ja) * 2004-10-27 2006-05-18 Morgan Stanley フォールト・トレラント・ネットワーク・アーキテクチャ

Also Published As

Publication number Publication date
MXPA02010199A (es) 2009-12-14
US7257817B2 (en) 2007-08-14
JP4503225B2 (ja) 2010-07-14
CN1288558C (zh) 2006-12-06
EP1303096B1 (en) 2019-05-22
EP1303096A3 (en) 2006-07-26
CN1442788A (zh) 2003-09-17
EP1303096A2 (en) 2003-04-16
US20030101284A1 (en) 2003-05-29

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
CN107947961B (zh) 基于SDN的Kubernetes网络管理系统与方法
WO2020147466A1 (zh) 调用服务器的方法和代理服务器
EP0381365B1 (en) A system and method for interconnecting applications across different networks of data processing systems
US7089318B2 (en) Multi-protocol communication subsystem controller
KR100798504B1 (ko) 요청의 집중 및 부하조정을 위한 시스템 및 방법
EP0613274A2 (en) Socket structure for concurrent multiple protocol access
US20080320503A1 (en) URL Namespace to Support Multiple-Protocol Processing within Worker Processes
CN112202615B (zh) 一种多cni协同工作系统与方法
Traversat et al. Project JXTA-C: Enabling a web of things
US20080201406A1 (en) Feature manager system for facilitating communication and shared functionality among components
US7907544B2 (en) Overlay network for location-independent communication between computer systems
WO2009062414A1 (en) Integrate client and method of desktop application communicating with net web application
US7934218B2 (en) Interprocess communication management using a socket layer
US7735095B2 (en) Network device drivers using a communication transport
US7418712B2 (en) Method and system to support multiple-protocol processing within worker processes
US8135772B2 (en) Single servlets for B2B message routing
US11546405B2 (en) Methods for exposing mainframe data as a web service and devices thereof
US7418719B2 (en) Method and system to support a unified process model for handling messages sent in different protocols
Ricciulli Anetd: Active networks daemon (v1. 0)
JPH0666813B2 (ja) データ通信システム及び通信路確立方法
Acharya et al. Wrens: A Framework for Rapidly Evolvable Network Services

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