JP4426183B2 - Logical routing control system - Google Patents
Logical routing control system Download PDFInfo
- Publication number
- JP4426183B2 JP4426183B2 JP2002564913A JP2002564913A JP4426183B2 JP 4426183 B2 JP4426183 B2 JP 4426183B2 JP 2002564913 A JP2002564913 A JP 2002564913A JP 2002564913 A JP2002564913 A JP 2002564913A JP 4426183 B2 JP4426183 B2 JP 4426183B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- logical
- message
- destination
- function
- 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
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4541—Directories for service discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/30—Managing network names, e.g. use of aliases or nicknames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4552—Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/30—Types of network names
- H04L2101/365—Application layer names, e.g. buddy names, unstructured names chosen by a user or home appliance name
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Small-Scale Networks (AREA)
- Multi Processors (AREA)
Description
説明する技術は、一般に、物理識別子への論理識別子のマッピングに関する。 The described techniques generally relate to the mapping of logical identifiers to physical identifiers.
Webブラウザなどのアプリケーション・プログラムは、HTTPプロトコルを使用してリソース(資源)にアクセスする。HTTPプロトコルは、ユニフォーム・リソース・アイデンティファイア(Uniform Resource Identifier)(「URI」)を使用してアクセスされるべきリソースを識別する。URIは、ユニフォーム・リソース・ロケータ(Uniform Resource Locator)(「URL」)またはユニフォーム・リソース・ネーム(Uniform Resource Name)(「URN」)、あるいはネットワーク・リソースを識別する任意の他のフォーマットされたストリングである。URIの例としてのURLは、(非特許文献1)で詳細に説明されている。各URLは、リソースがどこに所在するかを識別するドメイン名を含んでいる。例えば、URL「http://www.odi.com/home.htm」は、「home.htm」と名付けられたリソースが、「odi.com」というドメインに所在することを示す。HTTPプロトコルは、URLで識別されたドメイン名に関連するコンピュータへのメッセージを経路制御するのに、TCP/IPなどの、下層のトランスポート層を使用する。ただし、TCP/IPプロトコルは、ドメイン名ではなくIPアドレス(例えば、「128.32.0.6」)を使用してコンピュータを識別する。様々なコンピュータ技術が、ドメイン名などの高レベルの識別子をIPアドレスなどの低レベルの識別子にマップするように開発されている。 An application program such as a Web browser accesses a resource (resource) using the HTTP protocol. The HTTP protocol uses a Uniform Resource Identifier (“URI”) to identify resources to be accessed. The URI is a Uniform Resource Locator (“URL”) or Uniform Resource Name (“URN”), or any other formatted string that identifies a network resource. It is. A URL as an example of a URI is described in detail in (Non-Patent Document 1). Each URL includes a domain name that identifies where the resource is located. For example, the URL “http://www.odi.com/home.html” indicates that the resource named “home.htm” is located in the domain “odi.com”. The HTTP protocol uses an underlying transport layer, such as TCP / IP, to route messages to the computer associated with the domain name identified by the URL. However, the TCP / IP protocol identifies a computer using an IP address (eg, “128.32.0.6”) instead of a domain name. Various computer technologies have been developed to map high level identifiers such as domain names to low level identifiers such as IP addresses.
1つのそのような技術が、インターネットによって使用されるTCP/IPプロトコル・スイートの一環として提供されるドメイン・ネーム・サービス(「DNS」)によって実施されている。DNSは、ドメイン名をIPアドレスにマップするネーム・サービスである。アプリケーションは、HTTPプロトコルを使用してメッセージをドメイン名に送信する際、DNSの一環であるローカル・ドメイン・ネーム・サーバ(例えば、ISPによって提供される)に対してドメイン名を指定する解決要求を提出する。ローカル・ドメイン・ネーム・サーバは、ブラウザを実行するクライアント・コンピュータの構成ファイルにおいて識別することができる。ローカル・ドメイン・ネーム・サーバは、ローカル・キャッシュを調べて、自らが、IPアドレスに対するそのドメイン名のマッピングを有するかどうかを決定する。有する場合、ローカル・ドメイン・ネーム・サーバは、そのIPアドレスをアプリケーションに戻す。有さない場合、ローカル・ドメイン・ネーム・サーバは、解決要求をルート・ドメイン・ネーム・サーバに転送する。ルート・ドメイン・ネーム・サーバは、自らのネーム・サーバに各トップレベル・ドメイン名(例えば、「com」)のマッピングを収容している。ルート・ドメイン・ネーム・サーバは、トップレベル・ドメイン・ネーム・サーバの名前をローカル・ドメイン・ネーム・サーバに提供することによって解決要求に応答する。ローカル・ドメイン・ネーム・サーバは、トップレベル・ドメイン・ネームサーバの名前をキャッシュに入れる。次に、ローカル・ドメイン・ネーム・サーバは、解決要求をトップレベル・ドメイン・ネーム・サーバに送信し、第2レベル・ドメイン名(例えば、「odi.com」)に関するドメイン・ネーム・サーバの名前を受け取る(また、キャッシュに入れることができる)。ローカル・ドメイン・ネーム・サーバは、第2レベル・ドメイン名に関するドメイン・ネーム・サーバに解決要求を転送する。そのドメイン・ネーム・サーバは、第2レベル・ドメイン名に関連するIPアドレスを戻す。別法として、そのドメイン・ネーム・サーバは、第3レベル・ドメイン名(例えば、「www.odi.com」)に関するドメイン・ネーム・サーバの名前を戻し、そのローカル・ドメイン・ネーム・サーバが、ドメイン名の各レベルに関してプロセスを繰り返すことが可能である。最終的に、ローカル・ドメイン・ネーム・サーバは、例えば、アプリケーションを実行するコンピュータに、ドメイン名のIPアドレスを送信する。 One such technique is implemented by the Domain Name Service (“DNS”) provided as part of the TCP / IP protocol suite used by the Internet. DNS is a name service that maps domain names to IP addresses. When an application sends a message to a domain name using the HTTP protocol, it issues a resolution request that specifies the domain name to a local domain name server (eg, provided by an ISP) that is part of DNS. hand in. The local domain name server can be identified in the configuration file of the client computer running the browser. The local domain name server consults the local cache to determine whether it has a mapping of that domain name to an IP address. If so, the local domain name server returns its IP address to the application. If not, the local domain name server forwards the resolution request to the root domain name server. The root domain name server contains a mapping of each top level domain name (eg, “com”) to its name server. The root domain name server responds to the resolution request by providing the name of the top level domain name server to the local domain name server. The local domain name server caches the name of the top level domain name server. The local domain name server then sends a resolution request to the top level domain name server, and the name of the domain name server with respect to the second level domain name (eg, “odi.com”). (Also can be cached). The local domain name server forwards the resolution request to the domain name server for the second level domain name. The domain name server returns the IP address associated with the second level domain name. Alternatively, the domain name server returns the name of the domain name server for the third level domain name (eg, “www.odi.com”), and the local domain name server It is possible to repeat the process for each level of domain name. Finally, the local domain name server sends the IP address of the domain name to, for example, a computer that executes the application.
論理識別子を物理識別子にマッピングするための方法およびシステムを提供する。一実施形態では、論理経路制御システム(logical routing system)は、各アプリケーションまたは各エンティティ(例えば、アプリケーションのユーザ)が、アプリケーションがコンピュータ上で実行を開始したときに、物理識別子への自らの論理識別子のマッピングを登録することを可能にする。論理識別子によって識別されたアプリケーションにメッセージを送信するために、クライアント・プログラムは、その登録されたマッピングを使用してコンピュータの物理識別子を識別する。アプリケーションが、その後、異なるコンピュータ上での実行を開始した場合、そのアプリケーションは、別のマッピングを登録することができる。一実施形態では、論理経路制御システムは、アプリケーションが、そのアプリケーションに関連付けられた論理識別子に対する物理識別子を生成するのに使用されるファンクションを登録することを可能にする。ファンクションの使用は、物理識別子に対するマッピングが、クライアント・コンピュータの場所、またはワーク・ロード・バランシングの目標などの様々な基準(criteria)に基づいて、変化することを可能にする。また、論理経路制御システムは、論理識別子が複数の物理識別子にマップされることも可能にする。そのようなマッピングを使用して、クライアント・プログラムは、複数の物理識別子によって識別されたコンピュータのそれぞれにメッセージを送信することになる。 Methods and systems for mapping logical identifiers to physical identifiers are provided. In one embodiment, the logical routing system is configured so that each application or each entity (eg, a user of the application) has its own logical identifier to the physical identifier when the application starts running on the computer. Allows you to register mappings. In order to send a message to the application identified by the logical identifier, the client program uses the registered mapping to identify the physical identifier of the computer. If the application then starts running on a different computer, the application can register another mapping. In one embodiment, the logical routing system allows an application to register a function that is used to generate a physical identifier for the logical identifier associated with the application. The use of functions allows the mapping to physical identifiers to change based on various criteria such as the location of the client computer or the workload balancing goal. The logical path control system also allows logical identifiers to be mapped to multiple physical identifiers. Using such a mapping, the client program will send a message to each of the computers identified by the plurality of physical identifiers.
図1は、一実施形態における論理経路制御システムを示すためのブロック図である。この論理経路制御システムは、クライアント・コンピュータ・システム101(「クライアント・ノード」)とアプリケーション・コンピュータ・システム103(「アプリケーション・ノード」)の間でメッセージを送信するのに使用される。コンピュータ・システムは、インターネットなどの通信機構104を介して互いに接続される。アプリケーション・ノードにおいて実行されるアプリケーションは、クライアント・ノードにおいて実行されるクライアント・プログラムにサービスを提供する。論理経路制御システムは、クライアント・ノードがアプリケーションに(例えば、アプリケーションのサービスを要求する)メッセージを、物理識別子(「ノード識別子」とも呼ばれる)ではなく、論理識別子(「論理宛先」とも呼ばれる)によってアプリケーションを識別することにより、送信することを可能にする論理ネーミング機構を提供する。例えば、アプリケーションの論理識別子は、「アドレス帳」であることが可能であり、他方、物理識別子は、アプリケーションが実行されているノードを一意的に識別するグローバルに固有な識別子であることが可能である。(本説明は、例示的なアプリケーションとして「アドレス帳」を使用する。アドレス帳アプリケーションは、電子メール・アドレス(例えば、JohnSmith@company.com)への人々の名前(例えば、John Smith)のマッピングを保持する。アドレス帳アプリケーションは、個人の電子メール・アドレスを要求するクライアント・プログラムからメッセージを受信し、その電子メール・アドレスを含む応答メッセージをクライアント・プログラムに送信する。)クライアント・ノード(または、より正確には、クライアント・ノード上で実行されるコンピュータ・プログラム)は、メッセージをアプリケーションに送信することを望む場合、そのメッセージをそのアプリケーションの論理識別子とともに論理経路制御システムに提供する。論理経路制御システムは、アプリケーションが実行されているノードの適切な物理識別子を識別し、メッセージをそのノードに送信する。アプリケーションは、アプリケーション・ノードにおいて実行を開始したとき、論理経路制御システムに登録する。論理経路制御システムは、アプリケーションの論理識別子から、アプリケーションが実行されているアプリケーション・ノードの物理識別子へのマッピングを保持することができる。クライアント・ノードは、このマッピングを使用して、論理識別子からアプリケーションの物理識別子を識別することができる。論理識別子は、個々のアプリケーション・ノードについて複数の物理識別子にマップすることが可能である。例えば、アドレス帳アプリケーションの複数のコピーが、クライアント・プログラムの複数の要求に対処するように異なるアプリケーション・ノードで実行されていることが可能である。クライアント・プログラムがアドレスを取り出すことを望む場合、アドレス取出しファンクションの論理識別子が、1つの物理識別子だけにマップすることが可能である。これとは対照的に、クライアント・プログラムがアドレスを挿入することを望む場合、アドレス挿入ファンクションの論理識別子が、アプリケーションが実行されているすべてのノードの物理識別子にマップすることが可能である。したがって、論理経路制御システムは、クライアント・プログラムが、アプリケーションの論理識別子を使用して開発されることを可能にし、また論理識別子が、クライアント・プログラムの実行中に物理識別子に解決されることを可能にする機構を提供する。ノードにおいて実行されるプログラムは、クライアント・プログラムからのサービスの要求に応答することができ、その他のアプリケーションからサービスを要求できることで、アプリケーションとクライアント・プログラムの両方であることが可能であることが、当分野の技術者には認められよう。
FIG. 1 is a block diagram for illustrating a logical path control system according to an embodiment. This logical routing system is used to send messages between a client computer system 101 (“client node”) and an application computer system 103 (“application node”). The computer systems are connected to each other via a
アプリケーションは、論理経路制御システムに自らを登録して、自らの論理識別子を物理ノード識別子にマップする。論理経路制御システムは、これらの登録の論理経路制御マップを保持することができる。論理経路制御システムは、分散される態様で複数のアプリケーション・ノードと複数のクライアント・ノード全体にわたる論理経路制御マップを実装すること、集中システム(central system)として論理経路制御マップを実装すること、または分散されたシステムと集中化されたシステム(distributed and centralized systems)の組合せで論理経路制御マップを実装すること、ができる。アプリケーションが、論理経路制御システムに登録すると、論理経路制御マップを識別する論理宛先(例えば、「論理経路制御マップ(logical routing map)」)に登録メッセージを送信することが可能になる。同様に、クライアント・プログラムがメッセージをアプリケーションに送信すると、論理経路制御システムが、メッセージを同一の論理宛先に送信して、そのアプリケーションの物理識別子を取り出すことができる。より一般的には、論理経路制御マップは、論理経路制御システムによって使用されるだけでなく、論理経路制御システム自体を介してアクセス可能な「アプリケーション」であると考えることができる。 The application registers itself with the logical routing system and maps its logical identifier to a physical node identifier. The logical routing system can maintain these registered logical routing maps. A logical routing system implements a logical routing map across multiple application nodes and multiple client nodes in a distributed manner, implements a logical routing map as a central system, or Logical routing maps can be implemented with a combination of distributed and centralized systems. When an application registers with a logical routing control system, it can send a registration message to a logical destination that identifies the logical routing control map (eg, a “logical routing map”). Similarly, when a client program sends a message to an application, the logical routing system can send the message to the same logical destination to retrieve the physical identifier for that application. More generally, a logical routing map can be considered an “application” that is not only used by the logical routing system, but also accessible through the logical routing system itself.
一実施形態では、論理経路制御マップは、各論理名に関して、その論理名に関連付けられたノードのノード識別子を戻すノード識別ファンクションを有する。論理名に関連付けられたアプリケーションは、論理経路制御システムに登録すると、自らのノード識別ファンクションを論理経路制御システムに提供する。ノード識別ファンクションは、パラメータまたは基準(例えば、送信されるべきメッセージ)を入力することができ、そのパラメータまたは基準に合う適切なノード識別子を戻す。例えば、論理名に関連付けられたアプリケーションが、各大陸に物理的に所在するノードにおいて実行されていることが可能である。ノード識別ファンクションは、送信側ノードが所在している国を入力し、その国が存在する大陸に所在するノードに関するノード識別子を戻すことができる。 In one embodiment, the logical routing map has, for each logical name, a node identification function that returns the node identifier of the node associated with that logical name. When the application associated with the logical name is registered in the logical routing system, it provides its own node identification function to the logical routing system. The node identification function can input parameters or criteria (eg, a message to be sent) and returns an appropriate node identifier that meets the parameters or criteria. For example, an application associated with a logical name can be running at a node physically located on each continent. The node identification function can enter the country where the sending node is located and return a node identifier for the node located on the continent where the country is located.
論理経路制御システムは、論理識別子と物理識別子の間のマッピングが動的に変更されるのを可能にする。そのマッピングは、様々な仕方で動的に変更され得る。例えば、アプリケーションは、新しいノード識別ファンクションを登録することにより、そのマッピングを動的に変更することができ、新しいノード・ファンクションは、サービスの要求に応答してクライアント・プログラムを実行するノードに、クライアント・プログラムによって送信されることが可能である。新しいノード識別ファンクションを受信したノードは、そのアプリケーションに関する古いノード識別ファンクションを置き換えることができる。論理経路制御システムは、既存のネットワークを使用してマッピングを伝送することができる。例えば、既存のネットワークは、インターネットのIPネットワークおよびDNSであることが可能である。そのような場合、論理識別子は、論理経路制御システムによってDNS名(すなわち、物理識別子)にマップし、最終的に、既存のネットワークのトランスポート・システムによってIPアドレス(すなわち、ネットワーク・アドレス)にマップすることが可能である。マッピングの動的な変更は、デマンドを動的に満たすように要求に応えることを可能にする。例えば、アドレス帳アプリケーションに対するデマンドが増大するにつれ、そのアプリケーションを追加のノードにおいて立ち上げることができる。クライアント・プログラムを実行するノードに送信される新しい識別ファンクションは、要求のいくつかを追加のノードに分配することができる。同様に、デマンドが減少するにつれ、アドレス帳アプリケーションを実行するノードの数を減少させることもできる。 The logical routing system allows the mapping between logical identifiers and physical identifiers to be changed dynamically. The mapping can be changed dynamically in various ways. For example, an application can dynamically change its mapping by registering a new node identification function, and the new node function can send a client program to a node that executes a client program in response to a service request. It can be sent by a program. A node that receives a new node identification function can replace the old node identification function for that application. The logical routing system can transmit the mapping using an existing network. For example, the existing network can be an Internet IP network and DNS . In such a case, the logical identifier is mapped to a DNS name (ie, physical identifier) by the logical routing system, and finally to an IP address (ie, network address) by the existing network transport system. Is possible. The dynamic change of the mapping makes it possible to meet the demand to meet the demand dynamically. For example, as demand for an address book application increases, the application can be launched at additional nodes. A new identification function sent to the node executing the client program can distribute some of the requests to additional nodes. Similarly, as demand decreases, the number of nodes running the address book application can be reduced.
論理経路制御システムは、メッセージを経路制御するために様々な基準を使用する。論理経路制御システムは、基準が、クライアント・プログラムによって、またはサービスを提供するアプリケーションによって提供されることを可能にすることができる。例えば、クライアント・プログラムは、要求に関連付けられた優先順位を指定することができ、ノード識別ファンクションは、その優先順位の要求にサービスすることができるノードを識別する。このアプリケーションは、ある国のクライアントがすべての要求をあるノードに送信させるということを指定することが可能である。論理経路制御システムは、同一の論理名を使用するアプリケーションの複数のコピーの1つへの基準ベースの経路制御が可能になる。例えば、通信速度を向上させるのに、アプリケーションのノード識別ファンクションは、クライアント・プログラムのノードに地理的に近いノードに関する物理識別子を選択することができる。また、論理経路制御システムは、アプリケーションのサービスが複数のノードにわたって分散されることを可能にする。例えば、アドレス帳アプリケーションは、アルファベットの異なる部分に関連するアドレス要求にそれぞれがサービスする複数のノード上で実行されることが可能である。1つのノードが、A〜Mで始まる名前に関する要求にサービスし、別のノードが、N〜Zで始まる名前に関する要求にサービスすることが可能である。 Logical routing systems use various criteria to route messages. The logical routing system may allow criteria to be provided by a client program or by an application that provides a service. For example, a client program can specify a priority associated with a request, and a node identification function identifies a node that can service the request of that priority. This application can specify that a client in a country has all requests sent to a node. The logical routing system allows for criteria-based routing to one of multiple copies of an application that uses the same logical name. For example, to improve communication speed, the application's node identification function can select a physical identifier for a node that is geographically close to the client program's node. The logical routing system also allows application services to be distributed across multiple nodes. For example, an address book application can be run on multiple nodes, each serving address requests associated with different parts of the alphabet. It is possible for one node to service requests for names starting with A-M and another node to service requests for names starting with N-Z.
一実施形態では、論理経路制御システムは、物理識別子に対する論理識別子のマッピング(例えば、ノード識別ファンクション)を保持するために分散モデルを使用することが可能である。そのような分散モデルでは、各ノードが、そのノード上で実行されるアプリケーションに関するマッピングを保持する。別のノードがマッピングを受け取った際(例えば、この他のノードのクライアント・プログラムが、アプリケーションにメッセージを送信しているため)、その別のノードがそのマッピングをキャッシュに入れることが可能である。論理経路制御システムは、接続されたノードに探索要求を送信することにより、マッピングを探索することができる。探索要求を受信した各ノードは、そのマッピングを有しているかどうか自らのローカル・キャッシュを調べる。有している場合、ノードは、そのマッピングを要求側ノードに送信する。有していない場合、ノードは、自らが接続されているノード群にその探索要求を転送する。要求側ノードに向かう途中のマッピングを受信した各ノードは、そのマッピングをキャッシュに入れることができる。(この探索は、ネットワークのトポロジを自動的に見出す。)クライアント・プログラムを実行するノードは、そのクライアント・プログラムがメッセージをアプリケーションに送信した際、そのアプリケーションがもはや利用できないことを発見する可能性がある。そのような発見がなされると、論理経路制御システムは、自らのキャッシュからそのマッピングを除去することができる。この探索メッセージは、ノード・レベルのメッセージをサポートする論理経路制御システムの1例である。したがって、論理経路制御システムは、ノード・レベルのメッセージとアプリケーション・レベルのメッセージの両方をサポートする。 In one embodiment, the logical routing system may use a distributed model to maintain a mapping of logical identifiers to physical identifiers (eg, node identification function). In such a distributed model, each node maintains a mapping for the application that runs on that node. When another node receives the mapping (eg, because the client program of this other node is sending a message to the application), that other node can cache the mapping. The logical routing system can search for a mapping by sending a search request to the connected node. Each node that receives the search request checks its local cache for the mapping. If so, the node sends the mapping to the requesting node. If not, the node forwards the search request to the node group to which it is connected. Each node that receives a mapping on its way to the requesting node can cache the mapping. (This search automatically finds the topology of the network.) A node executing a client program may discover that the application is no longer available when the client program sends a message to the application. is there. Once such a discovery is made, the logical routing system can remove the mapping from its cache. This search message is an example of a logical routing system that supports node level messages. Thus, the logical routing system supports both node level messages and application level messages.
別の実施形態では、論理経路制御システムは、マッピングを保持するために分散モデルと集中モデルの組合せを使用することができる。各ノードにおいてマッピングを保持することに加えて、論理経路制御システムは、すべてのマッピングを格納するサーバ・ノードを有することが可能である。各アプリケーションは、自らの論理識別子を論理経路制御システムに登録する。論理経路制御システムは、物理識別子に対する論理識別子のマッピングをノードにおいてローカルでキャッシュに入れ、そのマッピングをサーバ・ノードに送信することができる。クライアント・プログラムがメッセージを論理識別子に送信した際、論理経路制御システムは、まず、マッピングのローカル・キャッシュを調べることができる。その論理識別子がローカル・キャッシュの中に存在しない場合、論理経路制御システムは、サーバ・ノードにそのマッピングを要求することができる。サーバ・ノードが利用可能でない場合、論理経路制御システムは、分散モデルと同じやり方でマッピングを探索することができる。 In another embodiment, the logical routing system can use a combination of distributed and centralized models to maintain the mapping. In addition to maintaining the mapping at each node, the logical routing system can have a server node that stores all mappings. Each application registers its own logical identifier in the logical path control system. The logical routing system can cache the mapping of the logical identifier to the physical identifier locally at the node and send the mapping to the server node. When a client program sends a message to a logical identifier, the logical routing system can first examine the mapping's local cache. If the logical identifier does not exist in the local cache, the logical routing system can request the mapping from the server node. If the server node is not available, the logical routing system can search the mapping in the same way as the distributed model.
論理識別子は、ユーザを識別することが可能である。ユーザがアプリケーションまたはノードにログオンした際、そのユーザが、そのユーザの名前などの論理識別子を使用して論理経路制御システムに登録されることが可能である。別のユーザがそのユーザにメッセージを送信することを望む場合、その別のユーザは、論理識別子を使用してそのユーザを論理経路制御システムに対して識別する。論理経路制御システムは、クライアント・プログラムにメッセージを伝送するのと同じやり方でユーザにメッセージを伝送する。実際には、論理経路制御システムは、メッセージをユーザに表示する責務を有するクライアント・プログラムにメッセージを送信することができる。 The logical identifier can identify the user. When a user logs on to an application or node, the user can be registered with the logical routing system using a logical identifier such as the user's name. If another user wants to send a message to that user, that other user uses the logical identifier to identify the user to the logical routing system. The logical routing system transmits the message to the user in the same way as it transmits the message to the client program. In practice, the logical routing system can send a message to a client program that is responsible for displaying the message to the user.
一実施形態では、論理経路制御システムは、論理識別子から物理識別子へのマッピングを行い、トランスポート・システムが、物理識別子からネットワーク・アドレスへのマッピングを行う。ただし、この物理識別子がトランスポート・システムによって使用される最終の識別子であっても良いことは、当分野の技術者には認められよう。(例えば、この物理識別子は、ネットワーク・アドレスであっても良い。)そのような場合、トランスポート・システムは、全くマッピングを行わず、その物理識別子によって識別されたノードにメッセージを経路指定する。また、論理経路制御システムのファンクションをトランスポート・システムに統合することができ、あるいは物理層の一部と考えることさえ可能であることも、当分野の技術者には認められよう。 In one embodiment, the logical routing system performs mapping from logical identifiers to physical identifiers, and the transport system performs mapping from physical identifiers to network addresses. However, those skilled in the art will appreciate that this physical identifier may be the final identifier used by the transport system. (For example, this physical identifier may be a network address.) In such a case, the transport system does not perform any mapping and routes the message to the node identified by that physical identifier. It will also be appreciated by those skilled in the art that the functions of the logical routing system can be integrated into the transport system, or even considered part of the physical layer.
図2は、クライアント・プログラムがメッセージをアプリケーションに送信する際の処理を示す流れ図である。ブロック201で、アプリケーションが、実行を開始したとき、自らの論理識別子、およびアプリケーションが現在実行されているノードの物理識別子、を論理経路制御システムに登録する。(クライアント・プログラムも、同様の仕方で登録を行う。)一実施形態では、実際の物理識別子を登録する代わりに、ノード識別ファンクションが登録される。物理識別子が必要とされる場合はいつでも、ノード識別ファンクションが呼び出され、送信されるべきメッセージを渡し、1つまたは複数の物理識別子が戻される。例えば、アドレス帳アプリケーションは、そのノード識別ファンクションとして、個人のラスト・ネームを、そのラスト・ネームを伴う要求に応対することを担うアプリケーションのインスタンスを実行しているノードの物理識別子に、マップするノード識別ファンクションを登録することが可能である。ブロック202で、論理経路制御システムが、アプリケーションに関するノード識別ファンクションに対する論理識別子のマッピングを格納する。ブロック203で、クライアント・プログラムは、論理経路制御システムを呼び出して、論理識別子によって識別されたアプリケーションにメッセージを送信する。ブロック204で、論理経路制御システムは、論理経路制御マッピングを使用して物理識別子を識別する。クライアント・ノードにおける論理経路制御システムは、メッセージを渡してノード識別ファンクションを呼び出す。ノード識別ファンクションは、アプリケーションのインスタンスに関連付けられた物理識別子を戻す。論理経路制御システムは、その物理識別子によってアドレス指定されるノードにメッセージを送信する。アプリケーション・ノードにおける論理経路制御システムは、そのメッセージを受信すると、メッセージが別のノードに転送されるべきか、または当該のノードにおいて処理されるべきかを決定することができる。アプリケーション・ノードにおける論理経路制御システムは、ノード識別ファンクションを使用して、そのメッセージを処理すべきノードを識別することができる。ブロック206で、メッセージは、当該のノードにおいて処理されるべきものと想定すると、アプリケーションは、メッセージを処理する。ブロック207で、アプリケーションは、論理経路制御システムを使用してクライアント・ノードに応答を送信する。論理経路制御システムは、更新されたノード識別ファンクションもクライアント・ノードに送信することができる。クライアント・ノードは、その応答、および更新されたノード識別ファンクションを受け取る。クライアント・ノードにおける論理経路制御システムは、その応答をクライアント・プログラムに渡し、後のメッセージを論理識別子に送信する際、その更新されたノード識別ファンクションを使用する。更新されたノード識別ファンクションは、アプリケーションが、複数のアプリケーション・ノードにわたってどのように分散されているかについてのアーキテクチャの変更を反映することが可能である。
FIG. 2 is a flowchart showing processing when a client program transmits a message to an application. At
図3は、アプリケーションのインスタンスが複数のノードにおいて実行されている論理経路制御システムを示すためのブロック図である。アプリケーションは、アプリケーション・ノード303、305、および306において実行されている。アプリケーションは、最初、アプリケーション・ノード303において1つのインスタンスだけを実行していた。アドレス帳サービスのデマンドが増大するにつれ、アプリケーション・ノード305および306が、オンライン状態にされ、アプリケーションのインスタンスの実行を開始する。アプリケーション・ノード303は、文字A〜Jで始まる名前に関する要求にサービスし、アプリケーション・ノード305は、文字K〜Sで始まる名前に関する要求にサービスし、またアプリケーション・ノード306は、文字T〜Zで始まる名前に関する要求にサービスする。図2の例を続けると、クライアント・プログラムが「John Smith」に関するアドレスを要求することを望む場合、論理経路制御システムは、「アドレス帳」に対する論理識別子に関するノード識別ファンクションを使用し、これにより、アプリケーション・ノード303が識別される。論理経路制御システムは、その要求をアプリケーション・ノード303に送信する。アプリケーション・ノード303における論理経路制御システムは、その要求を受信すると、自らのノード識別ファンクションを使用してアプリケーション・ノード305を識別する。アプリケーション・ノード303の論理経路制御システムは、要求をアプリケーション・ノード305に転送し、アプリケーション・ノード305において論理経路制御システムがメッセージをアプリケーションに提供する。アプリケーション・ノード305において実行されるアプリケーションのインスタンスは、電子メール・アドレスを取り出し、そのアドレスをクライアント・ノードに送信する。アプリケーション・ノード305の論理経路制御システムは、文字A〜Jで始まる名前をアプリケーション・ノード303にマップし、文字K〜Sで始まる名前をアプリケーション・ノード305にマップし、文字T〜Zで始まる名前をアプリケーション・ノード306にマップする更新されたノード識別ファンクションもクライアント・ノードに送信することができる。このようにして、クライアント・ノードの論理経路制御システムは、次回、更新されたノード識別ファンクションを使用する際、要求にサービスする責務を有する適切なアプリケーション・ノードを識別し、要求を識別されたアプリケーション・ノードに、ダイレクトに送信する。別法として、アプリケーション・ノード305が更新されたノード識別ファンクションを送信しない場合、後続の要求は、アプリケーション・ノード303を経由するように経路制御される。アプリケーションの複数のインスタンスが同じ機能を提供する場合、ノード識別ファンクションは、ランダムにインスタンスの物理識別子を選択すること、クライアント・ノードの地理的近さに基づいて物理識別子を選択すること、等ができる。
FIG. 3 is a block diagram illustrating a logical path control system in which an instance of an application is executed in a plurality of nodes. The application is running on
図4は、アプリケーションに関するロード・バランシングをもたらすノード識別ファンクションの使用を説明するブロック図である。クライアント・ノード401が、ロード・バランシング・ノード402の1つにマップするノード識別ファンクションを使用する。例えば、ノード識別ファンクションは、ロード・バランシング・ノードの1つをランダムに選択することができる。クライアント・ノードによって使用されるノード識別ファンクションは、ロード・バランシング・ノードによって提供されることが可能である。ロード・バランシング・ノードは、クライアント・ノードから要求を受信すると、アプリケーションによって提供される異なるノード識別ファンクションを使用して、その要求にサービスすべきアプリケーション・ノード403を識別する。例えば、A〜Jで始まる名前に関する要求にサービスするアドレス帳アプリケーションの複数のインスタンスが存在することが可能である。各ロード・バランシング・ノードは、これらのインスタンスのどれに要求を送信するかを決めることができる。
FIG. 4 is a block diagram illustrating the use of a node identification function that provides load balancing for an application. The
図5は、一実施形態において論理経路制御システムによって使用されるアプリケーション層(application layer)510、論理経路制御層(logical routing layer)520、および物理経路制御層(physical routing layer)530のアーキテクチャを示すブロック図である。これらの層の機能およびデータ構造は、論理経路制御システムの任意の特定の実装の要件に合わせることができることが、当分野の技術者には認められよう。論理経路制御システムは、一実施形態における論理経路制御層によって提供される機能に対応する。物理経路制御層は、ノード識別子によって識別されたノードにメッセージを送信する責務を有する。ネットワーク内の各ノードには、固有ノード識別子を割り当てることができる。物理経路制御層は、メッセージ送信構成要素(send message component)531およびメッセージ受信構成要素(receive message component)532を提供する。論理経路制御層は、メッセージ送信構成要素を使用してメッセージを送信し、メッセージ受信構成要素を介してメッセージを受信する。メッセージ送信構成要素は、メッセージおよび宛先ノード識別子(例えば、「www.odi.com」)を渡され、その宛先ノード識別子に関するネットワーク・アドレス(例えば、IPアドレスおよびポート)を探し出す。メッセージ送信構成要素は、次に、TCP/IPなどの、下層のトランスポート層を呼び出して、そのネットワーク・アドレスにメッセージを送り届ける。メッセージ送信構成要素は、物理経路制御マップに対して宛先ノード識別子に関するネットワーク・アドレスを提供するように要求すること、あるいはメッセージ送信構成要素が接続されている他のノード(すなわち、ピア・ノード)が宛先ノードに関するネットワーク・アドレスを知っている場合、それらの他のノードに対して要求を行うことができる。メッセージ送信構成要素は、後のメッセージをその宛先ノードに送信する際に使用するためにネットワーク・アドレスを物理経路制御テーブルの中にキャッシュする(入れる)ことができる。メッセージ送信構成要素は、次に、メッセージをそのネットワーク・アドレスに送信する。メッセージは、送信元ノードと宛先ノードの間で直接接続を確立することによって送信したり、メッセージを送信元ノードのピア・ノードを介して宛先ノードに転送することによって送信したり、または宛先ノードに転送するためにメッセージを物理経路制御サーバに送信することによって送信したり、することができる。メッセージ送信構成要素は、以下により詳細に説明するとおり、「ノードへの経路を探索する(search for route to node)」構成要素533、ノード・ルックアップ構成要素(lookup node component)534、およびピア接続確立構成要素(establish peer connection component)535を使用する。メッセージ受信構成要素は、宛先ノード向けに受信されたメッセージを処理する。当該のノード(すなわち、構成要素が実行されているノード)が宛先ノードではない場合、メッセージ受信構成要素は、メッセージを宛先ノードに転送しようと試みる。送信元ノードが宛先ノードへのパスを探索していることをメッセージが示す場合、このノードは、宛先ノードへのパスを知っている場合にその探索要求に応答するか、あるいはその探索要求を自らのピア・ノードに転送する。メッセージが、当該のノードにおいて処理されるものとされている場合、メッセージ受信構成要素は、論理メッセージ受信構成要素(receive logical message component)522または論理名探索処理構成要素(process logical name search component)529Aを呼び出すことによってメッセージを論理経路制御層に渡す。
FIG. 5 illustrates the architecture of an application layer 510, a
論理経路制御層は、論理メッセージ送信構成要素(send logical message component)521、論理メッセージ受信構成要素(receive logical message component)522、論理名登録構成要素(register logical name component)523、論理名探索処理構成要素(process logical name search component)529A、および論理宛先更新生成ファンクション(generate logical destination update function)529を提供する。アプリケーション層は、論理メッセージ送信構成要素を使用して、アプリケーションまたはユーザである可能性がある論理宛先にメッセージを送信し、また論理メッセージ受信構成要素を介して論理宛先から応答メッセージを受信する。論理メッセージ送信構成要素は、論理識別子およびメッセージを渡され、その論理識別子に関する宛先ノード識別子を識別し、物理経路制御層のメッセージ送信構成要素を使用して宛先ノードにメッセージを送信する。論理メッセージ送信構成要素は、集中サーバによって提供されるノード識別ファンクションを使用して宛先ノード識別子を識別したり、ピア・ノードの探索により宛先ノード識別子を識別したり、または論理宛先自体によって宛先ノード識別子を識別したり、することができる。論理メッセージ送信構成要素は、論理識別子のノード識別ファンクションへのマッピングをキャッシュに入れることができる。論理メッセージ送信構成要素は、以下により詳細に説明する論理宛先解決構成要素(resolve logical destination component)524、ユーザ情報構成要素(user information component)525、論理宛先探索構成要素(logical destination search component)526、応答獲得構成要素(get response component)527、および論理宛先更新処理構成要素(process logical destination update component)528を使用する。論理メッセージ受信構成要素は、物理経路制御層のメッセージ受信構成要素によって呼び出されて、メッセージを論理経路制御層に渡す。論理メッセージ受信構成要素は、そのメッセージを処理して、そのメッセージをアプリケーション層に提供する。論理名探索処理ファンクションおよび論理宛先更新生成ファンクションを以下により詳細に説明する。論理名登録構成要素は、アプリケーション層によって使用され、論理識別子を論理経路制御層に登録する。論理宛先更新生成構成要素は、論理名探索処理構成要素によって呼び出される。アプリケーション層は、アプリケーション初期設定構成要素(application initialization component)511およびアプリケーション受信構成要素(application receive component)512を提供することができる。アプリケーション初期設定構成要素は、アプリケーションの論理識別子を論理経路制御層に登録することができる。アプリケーション受信構成要素は、論理メッセージ受信構成要素によって呼び出されて、メッセージを論理経路制御層からアプリケーション層に渡すことを実行する。また、アプリケーション層は、論理メッセージ送信を呼び出してメッセージを論理宛先に送信することも行う。
The logical path control layer includes a logical message transmission component (send logical message component) 521, a logical message reception component (receive logical message component) 522, a logical name registration component (register logical name component) 523, and a logical name search processing configuration. An element (process logical name search component) 529A and a generate logical
論理経路制御システムは、メイン・メモリ、中央演算処理装置、入力デバイス(例えば、キーボードおよびポインティング・デバイス)、出力デバイス(例えば、表示デバイス)、およびハード・ドライブを含むコンピュータ・システム上で実行されることが可能である。メイン・メモリおよびハード・ドライブは、論理経路制御システムを実施する命令を含むことが可能なコンピュータ可読媒体である。コンピュータ・システムは、インターネット、ワイドエリア・ネットワーク、ポイント・ツー・ポイント・ダイヤルアップ接続、またはローカルエリア・ネットワークを含む様々な通信チャネルを介して互いに接続されることが可能である。 The logical routing system runs on a computer system that includes a main memory, a central processing unit, input devices (eg, keyboards and pointing devices), output devices (eg, display devices), and a hard drive. It is possible. Main memory and the hard drive are computer-readable media that may contain instructions that implement the logical routing system. Computer systems can be connected to each other via various communication channels including the Internet, wide area networks, point-to-point dial-up connections, or local area networks.
図6は、物理経路制御層における様々なノード間の接続を示すブロック図である。この例では、クライアント・ノード602が、クライアント・ノード603に接続され、クライアント・ノード603が、アプリケーション・ノード604に接続される。クライアント・ノード602の物理経路制御層が、宛先ノード識別子によって識別されるアプリケーション・ノード604にメッセージを送信する場合、メッセージ送信構成要素が、そのアプリケーション・ノードと直接接続を確立しようと試みることが可能である。ただし、接続を確立することができない場合、クライアント・ノード602のメッセージ送信構成要素は、アプリケーション・ノードが、ノード602自らの複数のピア・ノードのいずれかを介してアクセス可能であるかどうかを決定する。この場合、アプリケーション・ノード604には、クライアント・ノード603を介してクライアント・ノード602がアクセスすることができる。したがって、クライアント・ノード602は、メッセージをクライアント・ノード603に転送し、次に、クライアント・ノード603が、そのメッセージをアプリケーション・ノード604に転送する。
FIG. 6 is a block diagram illustrating connections between various nodes in the physical routing layer. In this example,
図7は、一実施形態において論理経路制御層によって使用されるデータ構造を示している。論理名テーブル701(論理経路制御テーブルとも呼ばれる)は、ノードにおいて実行されるアプリケーションに関連付けられた各論理名に関するエントリを含む。論理名は、アプリケーションを識別する論理識別子である。また、論理識別子は、ユーザ、または何らかの他の論理宛先を識別することも可能である。各エントリは、論理識別子、十分に限定された論理ID(識別子)(fully qualified logical identifier)、クラス、およびノードID(識別)ファンクションを含む。十分に限定された論理識別子は、アプリケーションに関連付けられた論理名を一意的に識別する。クラスは、論理宛先のメッセージ・クラスを識別する。例えば、クラスは、データベース、アプリケーション、またはユーザであることが可能である。論理識別子は、クラス内で固有である。ノード識別ファンクションは、クライアント・ノードによって、論理名に向けられたメッセージが送信されるべき先のノード識別子を識別するのに使用される。各エントリは、アプリケーションによってサポートされるファンクションを識別するファンクション名も含むことが可能である。例えば、アドレス帳アプリケーションの、新しいエンティティを挿入するためのファンクション名は、「アドレス挿入」とすることができる。論理名テーブルは、当該のノードに知られている各論理宛先に関するエントリを含む。また、論理名テーブルは、ユーザ識別子に対するユーザ名のマッピングも含むことが可能である。ユーザ名は、論理名である。十分に限定された論理名は、ユーザを一意的に識別するユーザ識別子である。ユーザ識別子に関連付けられた複数のユーザ名(例えば、別名)が存在することが可能である。代替の実施形態(以下に説明する)では、論理経路制御テーブルは、キー・ファンクション(key function)、基準宣言(criteria declaration)、および経路テーブルを含む。基準は、キーを生成するのにキー・ファンクションに渡されるデータを定義する。キーは、次に、経路テーブルからノード識別子を探し出すのに使用される。 FIG. 7 illustrates a data structure used by the logical routing layer in one embodiment. A logical name table 701 (also referred to as a logical path control table) includes an entry for each logical name associated with an application running on the node. The logical name is a logical identifier that identifies an application. The logical identifier may also identify a user or some other logical destination. Each entry includes a logical identifier, a fully qualified logical identifier, a class, and a node ID (identification) function. A sufficiently limited logical identifier uniquely identifies the logical name associated with the application. The class identifies the message class of the logical destination. For example, a class can be a database, application, or user. A logical identifier is unique within a class. The node identification function is used by the client node to identify the node identifier to which messages directed to the logical name should be sent. Each entry may also include a function name that identifies the function supported by the application. For example, the function name for inserting a new entity in the address book application can be “insert address”. The logical name table includes an entry for each logical destination known to that node. The logical name table can also include a mapping of user names to user identifiers. The user name is a logical name. A sufficiently limited logical name is a user identifier that uniquely identifies the user. There can be multiple user names (eg, aliases) associated with a user identifier. In an alternative embodiment (described below), the logical routing table includes a key function, a criteria declaration, and a routing table. The criteria define the data that is passed to the key function to generate the key. The key is then used to find the node identifier from the route table.
図8は、一実施形態において物理経路制御層によって使用されるデータ構造を示している。物理経路制御層のデータ構造は、物理経路制御テーブル801およびピア・テーブル802を含む。物理経路制御テーブルは、当該のノードに知られている各ノード識別子に関するエントリを含む。各エントリは、ノード識別子を、それを介してノード識別子にアクセスすることができるピア・ノード識別子にマップする。ピア・テーブルは、当該のノードの各ピア・ノードに関するエントリを含む。各エントリは、ノード識別子をピア・ノードのネットワーク・アドレスにマップする。 FIG. 8 illustrates a data structure used by the physical routing layer in one embodiment. The data structure of the physical routing layer includes a physical routing table 801 and a peer table 802. The physical routing control table includes an entry for each node identifier known to the node. Each entry maps a node identifier to a peer node identifier through which the node identifier can be accessed. The peer table contains an entry for each peer node of that node. Each entry maps a node identifier to a peer node's network address.
図9〜27は、一実施形態における論理経路制御システムのファンクションの流れ図である。本明細書に記載したファンクションが、説明する機能のサブセットだけを実施したり、説明する機能を整理し直したり、または追加の機能を実装したり、することが可能であることが当分野の技術者には認められよう。図9〜15は、一実施形態における物理経路制御層の処理を示す流れ図である。図9〜12は、物理経路制御層の送信処理を示している。図9は、一実施形態における物理経路制御層のメッセージ送信ファンクション(send message function)の処理を示す流れ図である。このファンクションは、宛先ノード(すなわち、構成要素)識別子およびメッセージを渡され、そのメッセージを識別された宛先ノードに送信する。このファンクションは、論理経路制御層によって呼び出される。判定ブロック901で、宛先ノードID(識別子)に関するエントリが物理経路制御テーブルの中に存在する場合、その宛先ノードへの経路は以前に明らかにされており、ファンクションは、そのエントリを取り出し、ブロック902に進む。存在しない場合、ファンクションは、ブロック905に進む。ブロック902で、ファンクションは、当該のノードのノード識別子を含む経路情報をメッセージ・ヘッダに追加する。メッセージは、ノードによって受信されると、それまで経由したパス上のノードの履歴を有する。受信側ノードは、その物理経路制御テーブルを更新して、そのパス上のノード群がアクセス可能であることを示すことができる。ブロック903で、ファンクションは、エントリからピア・ノードのノード識別子を取り出し、次に、ピア・テーブルからそのピア・ノードに関するネットワーク・アドレス(例えば、IPアドレスおよびポート番号)を取り出す。次に、ファンクションは、取り出されたネットワーク・アドレスにメッセージを送信する。判定ブロック904で、メッセージを送信することが成功であった場合、ファンクションは、成功の指示を戻し、成功ではなかった場合、ファンクションは、エラーの指示を戻す。ブロック905〜914は、渡されたノード識別子に関するエントリが物理経路制御テーブル内にない場合に行われる。これらのブロックは、メッセージを、それを経由させて宛先ノードに送信することができる経路を見出そうと試みる。ブロック905で、ファンクションは、それを経由することで宛先ノードにアクセスすることができるピア・ノードを探索する「ノードへの経路を探索する」ファンクションを呼び出す。呼び出されたファンクションは、そのようなピア・ノードを見出した場合、エントリを物理経路制御テーブルに追加し、成功の指示を戻す。判定ブロック906で、経路が見出された場合、ファンクションは、ブロック907に進み、見出されなかった場合、ファンクションは、ブロック908に進む。ブロック907で、ファンクションは、物理経路制御テーブルから宛先ノードに関するエントリを取り出し、ブロック902に進んでメッセージを宛先ノードに送信する。判定ブロック908で、当該のノードに関するポリシーによって新しいピア接続を生成することが許される場合、ファンクションはブロック909に進み、許されない場合、ファンクションはブロック913に進む。例示的なポリシーは、ピア・ノードに対する接続の数を4つに制限することが可能である。当該のノードが、既に4つのピア・ノードを有する場合、このポリシーは、第5のピア・ノードに対する接続を防止する。ブロック909で、ファンクションは、ノード・ルックアップ・ファンクションを呼び出し、ノード・ルックアップ・ファンクションが、宛先ノードに関するネットワーク・アドレスを識別し、そのネットワーク・アドレスをピア・テーブルに追加する。呼び出されたファンクションは、メッセージをサーバ・ノードに送信して、宛先ノードがサーバ・ノードに登録しているかどうかを調べることができる。また、呼び出されたファンクションは、宛先ノードに関するノード識別子およびネットワーク・アドレスを格納するようにピア・テーブルにエントリを追加することも行う。判定ブロック910で、宛先ノードが見付かった場合、ファンクションは、ブロック911に進み、見付からなかった場合、ファンクションは、ブロック914に進む。ブロック911で、ファンクションは、ピア接続確立ファンクションを呼び出して宛先ノードとピア接続を確立し、物理経路制御テーブルを更新する。判定ブロック912で、宛先ノードに対する接続が確立された場合、ファンクションは、ブロック907に進んでメッセージを宛先ノードに直接に送信し、確立されなかった場合、ファンクションは、ブロック913に進む。判定ブロック913で、当該のノードのポリシーにより、サーバ・ノード転送が許される場合、ファンクションは、ブロック903に進んでメッセージをサーバ・ノードに転送し、許されない場合、ファンクションは、エラーの指示を戻す。サーバ・ノード転送が許される場合、当該のノードは、メッセージをサーバ・ノードに送信して、宛先ノードがオンラインである場合に直ちに、あるいは宛先ノードがオンラインになった後の時点に、サーバ・ノードがそのメッセージを宛先ノードに転送できるようにする。判定ブロック914で、メッセージがドロップ(除去)されるべき場合、ファンクションはエラーの指示を戻し、ドロップされるべきでない場合、ファンクションはブロック913に進む。
9-27 are flow diagrams of functions of a logical path control system in one embodiment. It is known in the art that the functions described herein can perform only a subset of the functions described, rearrange the functions described, or implement additional functions. It will be recognized by the person. 9-15 are flowcharts illustrating the processing of the physical routing layer in one embodiment. 9 to 12 show the transmission processing of the physical route control layer. FIG. 9 is a flow diagram that illustrates the processing of the physical routing layer send message function in one embodiment. This function is passed a destination node (ie, component) identifier and message and sends the message to the identified destination node. This function is called by the logical routing layer. If, at
図10は、一実施形態における「ノードへの経路を探索する」ファンクションの処理を示す流れ図である。このファンクションは、宛先ノードのノード識別子を渡される。ファンクションは、当該のノードのピア・ノードから宛先ノードまでのパスを識別するために呼び出される。ファンクションは、当該のノードの各ピア・ノードに、当該のノードが、宛先ノードへのパスを探索していることを示すメッセージを送信する。ピア・ノードは、そのピア・ノードを経由して宛先ノードに至るパスを識別した場合、そのメッセージに応答する。異なる探索技術を使用してもよいことが、当分野の技術者には認められよう。例えば、最初に各ピア・ノードにメッセージを送信するのではなく、メッセージが次のピア・ノードに送信されるのに先立って、各ピア・ノードがパスを識別しようと試みることができるように、メッセージをピア・ノードに送信してもよい。判定ブロック1001で、当該のノードがピア・ノードを有する場合、ファンクションは、ブロック1002に進み、有さない場合、ファンクションは、エラーの指示を戻す。ブロック1002で、ファンクションは、当該のノードの識別子および宛先ノードを含むノード探索メッセージを生成する。ブロック1003で、ファンクションは、ノード探索メッセージのコピーを当該のノードの各ピア・ノードに送信する。ブロック1004で、ファンクションは、当該のノードがピア・ノードからの応答を待つ時間を制限するようにタイマを設定する。ブロック1005で、ファンクションは、ピア・ノードからの応答、またはタイムアウトを待つ。判定ブロック1006で、応答が受信された場合、ファンクションは、ブロック1007に進み、受信されなかった場合、タイムアウトが生じて、ファンクションはエラーの指示を戻す。ブロック1007で、ファンクションは、応答を送信したピア・ノードを経由して宛先ノードにアクセス可能であることを示すエントリを追加することにより、物理経路制御テーブルを更新する。ファンクションは、タイマをキャンセルした後、成功の指示を戻す。
FIG. 10 is a flowchart illustrating processing of a “search for a route to a node” function according to an embodiment. This function is passed the node identifier of the destination node. The function is called to identify the path from the peer node of the node in question to the destination node. The function sends a message to each peer node of the node indicating that the node is searching for a path to the destination node. If the peer node identifies a path through the peer node to the destination node, it responds to the message. Those skilled in the art will recognize that different search techniques may be used. For example, instead of sending a message to each peer node first, so that each peer node can attempt to identify a path before the message is sent to the next peer node, A message may be sent to the peer node. In
図11は、一実施形態におけるノード・ルックアップ・ファンクションの処理を示す流れ図である。このファンクションは、宛先ノードのノード識別子を渡される。ファンクションは、サーバ・ノードとコンタクトを取ってサーバ・ノードが宛先ノードのネットワーク・アドレスで応答した場合、宛先ノードに関するネットワーク・アドレスを取り出し、ピア・テーブルにエントリを追加する。判定ブロック1101で、サーバ・ノード(SN)に対する適切な接続が利用できる場合、ファンクションは、ブロック1101に進み、利用できない場合、ファンクションは、エラーの指示を戻す。ブロック1102で、ファンクションは、宛先ノード識別子を含むノード・ルックアップ・メッセージ(lockup node message)を生成する。ブロック1103で、ファンクションは、そのノード・ルックアップ・メッセージをサーバ・ノードに送信する。ブロック1104で、ファンクションは、タイマを設定する。ブロック1105で、ファンクションは、サーバ・ノードからの応答、またはタイムアウトを待つ。判定ブロック1106で、サーバ・ノードから応答が受信された場合、ファンクションは、ブロック1107に進み、受信されなかった場合、タイムアウトが生じ、ファンクションは、エラーの指示を戻す。ブロック1107で、ファンクションは、メッセージの中で戻された宛先ノードのネットワーク・アドレスを示すエントリをピア・テーブルに追加する。ファンクションは、タイマをキャンセルした後、成功の指示を戻す。代替の実施形態では、当該のノードを介してサーバ・ノードが利用できない場合、当該のノードは、代理でサーバ・ノードに接触するように自らのピア・ノードに要求すること、または様々なノードのネットワーク・アドレスに関連する情報で、ローカルでキャッシュに入れられた情報を調べること、ができる。
FIG. 11 is a flow diagram that illustrates the processing of the node lookup function in one embodiment. This function is passed the node identifier of the destination node. The function contacts the server node and if the server node responds with the destination node's network address, it retrieves the network address for the destination node and adds an entry to the peer table. If at
図12は、一実施形態におけるピア接続確立ファンクションの処理を示す流れ図である。このファンクションは、宛先ノードの識別子を渡される。ファンクションは、宛先ノードとの接続を確立し、物理経路制御テーブルを更新する。ブロック1201で、ファンクションは、ピア・テーブルの中で宛先ノードID(識別子)をルックアップ(調べる)する。判定ブロック1202で、宛先ノードのネットワーク・アドレスがピア・テーブルの中に存在する場合、ファンクションは、ブロック1203に進み、存在しない場合、接続を確立することができず、ファンクションは、エラーの指示を戻す。ブロック1203で、ファンクションは、当該のノードを識別するピア接続要求メッセージを生成する。ブロック1204で、ファンクションは、そのピア接続要求メッセージを宛先ノードのネットワーク・アドレスに送信する。そのメッセージを送信するため、ファンクションは、ネットワーク・アドレスに対するトランスポート・レベルの接続を確立してから、そのメッセージを送信する。接続を確立することができない場合、ファンクションは、エラーの指示を戻す。ブロック1205で、ファンクションは、タイマを設定する。ブロック1206で、ファンクションは、宛先ノードからの応答、またはタイムアウトを待つ。判定ブロック1207で、宛先ノードから応答が受信された場合、ファンクションは、ブロック1208に進み、受信されなかった場合、タイムアウトが生じ、ファンクションは、エラーの指示を戻す。ブロック1208で、ファンクションは、タイマをキャンセルする。判定ブロック1209で、接続を確立できることをその応答が示す場合、ファンクションは、ブロック1210に進み、示さない場合、宛先ノードには、当該のノードに接続する意志がなく、ファンクションは、エラーの指示を戻す。ブロック1210で、ファンクションは、宛先ノードを認証する。宛先ノードが自らの秘密鍵で暗号化したメッセージを送信し、当該のノードが、公開鍵を使用してメッセージを暗号化解除する公開鍵/秘密鍵ペアの使用などの様々な周知の認証技術を使用することができる。宛先ノードを認証することができない場合、ファンクションは、エラーの指示を戻す。ブロック1211で、ファンクションは、宛先ノードがピア・ノードとしてアクセス可能である(すなわち、物理経路制御層において接続されている)ことを示すように物理経路制御テーブルを更新し、次ぎに成功の指示を戻す。
FIG. 12 is a flow diagram that illustrates the processing of the peer connection establishment function in one embodiment. This function is passed the identifier of the destination node. The function establishes a connection with the destination node and updates the physical routing table. In
図13〜15は、物理経路制御層の受信されたメッセージの処理を示す流れ図である。図13は、一実施形態における物理経路制御層のメッセージ受信ファンクションの処理を示す流れ図である。このファンクションは、ピア・ノードから受信されたメッセージを渡される。ファンクションは、メッセージが当該のノードに向けられているか、または別のノードに向けられているかを決定する。メッセージが当該のノードに向けられている場合、ファンクションは、そのメッセージを論理経路制御層に転送する。ブロック1301で、ファンクションは、新しい宛先ノードを求めてメッセージ・ヘッダをスキャンする(細かく調べる)。メッセージ・ヘッダは、宛先ノード、および送信元ノードから当該のノードに至るパスにおける各ノードを明らかにする。ブロック1302で、ファンクションは、メッセージ・ヘッダの中で識別されたノードで、物理経路制御テーブルの中で既存ではないノードを追加するように物理経路制御テーブルを更新する。更新は、識別されたノードが、メッセージを送信したピア・ノードを介してアクセス可能であることを示す。判定ブロック1303で、宛先ノードが当該のノードである場合、ファンクションは、ブロック1304に進み、そうではない場合、ファンクションは、ブロック1305に進む。判定ブロック1304で、メッセージが、以前に送信されたメッセージに対する応答である場合、ファンクションは、ブロック1304Aに進み、そうでない場合、ファンクションは、ブロック1304Bに進む。ブロック1304Aで、ファンクションは、論理経路制御層の応答獲得ファンクションを呼び出すことによって応答が受信されたことを論理経路制御層に通知した後、戻る。ブロック1304Bで、ファンクションは、受信されたメッセージを渡して論理経路制御層の論理メッセージ受信ファンクションを呼び出して、そのメッセージを論理経路制御層に渡した後、戻る。判定ブロック1305で、メッセージがノード探索要求であった場合、ファンクションは、ブロック1306に進み、そうでなかった場合、ファンクションは、ブロック1306Aに進む。ブロック1306で、ファンクションは、宛先ノードの識別子、およびメッセージを渡してノード探索処理ファンクションを呼び出した後、戻る。呼び出されたファンクションは、当該のノードの物理経路制御テーブルを調べて、宛先ノードが当該のノードを介してアクセス可能であるかどうかを決定する。アクセス可能ではない場合、当該のノードは、自らのピア・ノードにその探索要求を送信する。判定ブロック1306Aで、メッセージが論理名探索要求であった場合、ファンクションは、ブロック1306Bに進み、そうでなかった場合、ファンクションは、ブロック1307に進む。ブロック1306Bで、ファンクションは、論理経路制御層の論理名探索処理ファンクションを呼び出す。ブロック1307で、ファンクションは、メッセージ転送ファンクションを呼び出して、宛先ノードに至るパスにおける次の経路(すなわち、当該のノードのピア・ノード)にメッセージを転送した後、戻る。
FIGS. 13-15 are flow diagrams illustrating the processing of received messages in the physical routing layer. FIG. 13 is a flowchart illustrating processing of the message reception function of the physical routing control layer in one embodiment. This function is passed a message received from the peer node. The function determines whether the message is directed to the node in question or to another node. If the message is directed to that node, the function forwards the message to the logical routing layer. In
図14は、一実施形態における物理経路制御層のメッセージ転送ファンクションの処理を示す流れ図である。このファンクションは、宛先ノード識別子、および転送されるべきメッセージを渡される。このファンクションは、宛先ノードへのパス上に存在するピア・ノードにメッセージを送信する。ブロック1401で、ファンクションは、当該のノードに関する情報をメッセージ・ヘッダに追加するようにメッセージを更新する。ブロック1402で、ファンクションは、メッセージ・ヘッダの中のホップ・カウントを減分する。各ホップは、宛先ノードへのパス上のノードに対応する。ホップ・カウントは、宛先ノードに向かう途中でメッセージが通過することが可能なホップの最大数を示す。メッセージを発信するノードが、ホップ・カウントを設定することができる。別法では、メッセージ・ヘッダは、メッセージが通過したホップの数の指示を含むことが可能である。各ノードは、その数に基づき、メッセージを転送することを続けるかどうかを決めることができる。判定ブロック1403で、ホップ・カウントがゼロである場合、ファンクションは、ブロック1407に進み、ゼロでない場合、ファンクションは、ブロック1404に進む。判定ブロック1404で、宛先ノードID(識別子)が物理経路制御テーブルの中に存在する場合、宛先ノードは、当該のノードを介してアクセス可能であり、ファンクションは、ブロック1405に進み、存在しない場合、ファンクションは、ブロック1407に進む。ブロック1405で、ファンクションは、それを経由することで宛先ノードがアクセス可能であるピア・ノードにメッセージを送信する。判定ブロック1406で、メッセージを送信することが成功であった場合、ファンクションは、成功の指示を報告し、戻り、成功でなかった場合、ファンクションは、エラーの指示を報告し、戻る。判定ブロック1407で、当該のノードのポリシーにより、サーバ・ノード(SN)に転送することが許される場合、ファンクションは、ブロック1408に進み、許されない場合、ファンクションは、エラーの指示を報告し、戻る。判定ブロック1408で、サーバ・ノード(SN)接続が利用できる場合、ファンクションは、ブロック1408に進み、メッセージをサーバ・ノードに転送し、利用できない場合、ファンクションは、エラーの指示を報告して戻る。次に、サーバ・ノードは、宛先ノードがオンラインである場合に直ちに、あるいは宛先ノードがオンラインになった後の時点に、メッセージを宛先ノードに転送することができる。
FIG. 14 is a flowchart illustrating the processing of the message transfer function of the physical routing layer in one embodiment. This function is passed the destination node identifier and the message to be transferred. This function sends a message to a peer node that exists on the path to the destination node. In
図15は、一実施形態におけるノード探索処理ファンクションの処理を示す流れ図である。このファンクションは、宛先ノード識別子およびメッセージを渡される。ファンクションは、宛先ノードへのパスにおける次のノードにメッセージを転送する。異なるピア・ノードからメッセージが受信された際に、当該のノードがそのメッセージを既に処理済みである場合、ファンクションは、さらなる処理なしに戻ることが可能である。判定ブロック1501で、宛先ノード識別子が物理経路制御テーブルの中に存在する場合、宛先ノードは、当該のノードを介してアクセス可能であり、ファンクションは、ブロック1502に進み、存在しない場合、ファンクションは、ブロック1504に進む。ブロック1502で、ファンクションは、物理経路制御テーブルの中で示されるパスにおける次のピア・ノードにメッセージを送信する。宛先ノードが、複数のピア・ノードを介してアクセス可能である場合、ファンクションは、そのピア・ノードのそれぞれにメッセージを送信する。判定ブロック1503で、少なくとも1つのピア・ノードにメッセージを送信することが成功であった場合、ファンクションは戻り、成功ではなかった場合、ファンクションは、エラーの指示を報告して戻る。ブロック1504〜1509で、ファンクションは、当該のノードのピア・ノードに探索メッセージを転送する。ブロック1504で、ファンクションは、ホップ・カウントを減分する。判定ブロック1505で、ホップ・カウントがゼロに等しい場合、ファンクションは、メッセージを廃棄して戻り、ゼロに等しくない場合、ファンクションは、ブロック1506に進む。ブロック1506で、ファンクションは、探索アルゴリズムに基づいて、探索メッセージが転送されるべき次のピア・ノードを識別する。本明細書で説明する探索アルゴリズムは、すべてのピア・ノードを徹底的に探索して宛先ノードを探し出すアルゴリズムである。代替の探索アルゴリズムは、探索メッセージ転送のために単一のピア・ノードを選択することができる。探索アルゴリズムは、ノード・トポロジ、ホップ・カウント、地理的場所、およびアプリケーション要件に最もよく適合するように最適化することができることが当分野の技術者には認められよう。判定ブロック1507で、次のピア・ノードが識別された場合、ファンクションは、ブロック1508に進み、識別されなかった場合、ファンクションは、ブロック1510に進む。ブロック1508で、ファンクションは、当該のノードに関連する情報をメッセージ・ヘッダに追加するようにメッセージを更新する。ブロック1509で、ファンクションは、メッセージが送信されるべき先の各ピア・ノードに関してメッセージのコピーを生成し、ブロック1502に進んでそのメッセージをそれぞれの識別されたピア・ノードに送信する。ブロック1510で、ファンクションは、メッセージを廃棄し、戻る。
Figure 15 is a flow diagram that illustrates the processing nodes search processing function in one embodiment. This function is passed a destination node identifier and a message. The function forwards the message to the next node in the path to the destination node. When a message is received from a different peer node, if the node has already processed the message, the function can return without further processing. In
図16〜25は、一実施形態における論理経路制御層の処理を示す流れ図である。図16〜21は、論理経路制御層のメッセージ送信の処理を示す流れ図である。図16は、一実施形態における論理経路制御層の論理メッセージ送信ファンクションの処理を示す流れ図である。論理メッセージ送信ファンクションは、論理宛先およびメッセージを渡される。論理宛先は、メッセージがどこに送信されるべきかを示す。例えば、論理宛先は、ユーザ名、論理名(例えば、「アドレス帳」)、または十分に限定された名前(例えば、「addressbook.node.opendesign.com」)によって識別されることが可能である。ファンクションは、その論理宛先に対応する宛先ノードの識別子を決定し、物理経路制御層のメッセージ送信ファンクションを呼び出すことによってそのノードにメッセージを送信する。ブロック1601で、ファンクションは、論理宛先解決ファンクションを呼び出す。呼び出されたファンクションは、論理宛先に関するエントリを追加するように論理経路制御テーブルを更新することを、そのようなエントリが既にテーブルの中に存在していない場合に行う。判定ブロック1602で、論理宛先が成功裡に解決された場合、ファンクションは、論理経路制御テーブルからそのエントリを取り出し、ブロック1604に進み、成功裡に解決されなかった場合、ファンクションは、エラーの指示を戻す。ブロック1604で、ファンクションは、メッセージを渡して取り出されたエントリのノード識別ファンクションを呼び出すことにより、宛先ノード識別子を算出する(compute;コンピュータを使用して決定する)。判定ブロック1605で、宛先ノード識別子が成功裡に算出された場合、ファンクションは、ブロック1606に進み、成功裡に算出されなかった場合、ファンクションは、エラーの指示を戻す。ブロック1606で、ファンクションは、物理経路制御層のメッセージ送信ファンクションを呼び出して宛先ノードにメッセージを送信した後、呼び出されたメッセージ送信ファンクションによって戻された成功またはエラーの指示を戻す。一実施形態では、ノード識別ファンクションは、基準、キー・ファンクション、および経路制御テーブルを使用することができる。キー・ファンクションは、キーを生成する基準を渡すことで呼び出される。次に、そのキーが、経路制御テーブルを探索してノード識別子を識別するのに使用される。例えば、アドレス帳アプリケーションに関する基準が、ラスト・ネームであり、キー・ファンクションが、そのラスト・ネームの最初の文字を戻すことが可能である。経路制御テーブルは、文字をノード識別子にマップするツリーとすることが可能である。
FIGS. 16-25 are flowcharts illustrating the processing of the logical routing control layer in one embodiment. 16 to 21 are flowcharts showing message transmission processing of the logical routing control layer. FIG. 16 is a flowchart illustrating the processing of the logical message transmission function of the logical routing control layer in one embodiment. The logical message send function is passed a logical destination and a message. The logical destination indicates where the message should be sent. For example, a logical destination can be identified by a user name, a logical name (eg, “address book”), or a fully qualified name (eg, “addressbook.node.opendesign.com”). The function determines the identifier of the destination node corresponding to the logical destination and sends a message to that node by calling the message transmission function of the physical routing layer. At
図17は、一実施形態における論理経路制御層の論理宛先解決ファンクションの処理を示す流れ図である。このファンクションは、論理宛先の指示を渡され、十分に限定された論理名(qualified logical name)を戻す。判定ブロック1701で、論理宛先がユーザ名である場合、ファンクションは、ブロック1710に進み、ユーザ名ではない場合、ファンクションは、ブロック1702に進む。判定ブロック1702で、論理宛先の論理名が当該のノードにローカルである場合、ファンクションは、ブロック1703に進み、ローカルではない場合、ファンクションは、ブロック1705に進む。ブロック1703で、ファンクションは、論理経路制御テーブルからその論理名に関するエントリを取り出す。このエントリは、十分に限定された論理名を含む。判定ブロック1704で、論理名に関するエントリが見付かった場合、ファンクションは、ブロック1705に進み、見付からなかった場合、ファンクションは、エラーの指示を戻す。ブロック1705で、ファンクションは、論理経路制御テーブルから十分に限定された論理名のエントリを取り出す。判定ブロック1706で、十分に限定された論理名に関するエントリが取り出された場合、ファンクションは、論理宛先をその十分に限定された論理名に設定し、成功の指示を戻し、取り出されなかった場合、ファンクションは、ブロック1707に進む。ブロック1707で、ファンクションは、論理宛先探索ファンクションを呼び出して論理宛先をグローバルに探索する。呼び出されたファンクションは、サーバ・ノードにおいて、またはピア・ノードを介して探索を行って十分に限定された論理名を見付けることができる。判定ブロック1708で、探索中に十分に限定された論理名が見付かった場合、ファンクションは、成功の指示を戻し、見付からなかった場合、ファンクションは、エラーの指示を戻す。ブロック1709で、ファンクションは、ユーザ情報ファンクションを呼び出して、ユーザ名に関するユーザ識別子を見付ける。呼び出されたファンクションは、ユーザ識別子をノード識別子にマップするように論理経路制御テーブルにエントリを追加することができる。次に、ファンクションは、成功の指示を戻す。
FIG. 17 is a flow diagram illustrating the processing of the logical destination resolution function of the logical routing control layer in one embodiment. This function is passed a logical destination indication and returns a fully qualified logical name. At
図18は、一実施形態における論理経路制御層の論理宛先探索ファンクションの処理を示す流れ図である。このファンクションは、十分に限定された論理名である論理宛先を渡され、その十分に限定された論理名をノード識別子にマップするように論理経路制御テーブルにエントリを追加する(既に追加済みでない場合)。一実施形態では、ノード識別子は、十分に限定された名前から抽出することができる。別の実施形態では、ノード識別子は、論理経路制御マップの論理宛先にメッセージを送信することによって取り出すことができる。ただし、記載したこの実施形態では、ノード識別子は、サーバ・ノードから取り出されるか、またはピア・ノードを探索することによって取り出される。このファンクションは、グローバルな論理宛先情報を格納するサーバ・ノードにメッセージを送信する。そのエントリに関する情報がサーバ・ノードから受けられなかった場合、ファンクションは、探索メッセージを自らのピア・ノードに送信し、探索メッセージは、ネットワーク全体に伝播される。ブロック1801で、ファンクションは、論理経路制御テーブルの中で渡された論理宛先をルックアップする。判定ブロック1802で、論理宛先に関するエントリが見付かった場合、ファンクションは、成功の指示を戻し、見付からなかった場合、ファンクションは、ブロック1803に進む。ブロック1803で、ファンクションは、クラスSNの論理名ルックアップ・メッセージを生成する。このメッセージは、送信側ノードが論理名をノード識別子にマップするための情報を要求していることを指示する。ブロック1804で、ファンクションは、生成されたメッセージ、およびサーバ・ノードのノード識別子論理宛先を渡して、論理メッセージ送信ファンクションを呼び出す。判定ブロック1805で、メッセージが成功裡に送信された場合、ファンクションは、ブロック1806に進み、成功裡に送信されなかった場合、ファンクションは、エラーの指示を戻す。ブロック1806で、ファンクションは、応答獲得ファンクションを呼び出して、応答が受信されるのを待つ。判定ブロック1807で、応答が受信された場合、ファンクションは、ブロック1808に進み、受信されなかった場合、ファンクションは、ブロック1809に進む。ブロック1808で、ファンクションは、論理宛先更新処理ファンクションを呼び出して論理経路制御テーブルを更新した後、成功の指示を戻す。ブロック1809で、ファンクションは、SEARCHというクラスの論理名ルックアップ・メッセージを生成する。SEARCHクラスは、そのメッセージが、ノード識別子を探索するためにピア・ノードから送信されたことを示す。ブロック1810で、ファンクションは、物理経路制御層のメッセージ送信ファンクションを呼び出して生成されたメッセージを送信する。探索メッセージは、ピア・ノードに送信され、ピア・ノードは、論理宛先にそのピア・ノードを介してアクセスすることが可能である場合に応答する。判定ブロック1811で、メッセージ送信指示が成功であった場合、ファンクションは、ブロック1812に進み、成功ではなかった場合、ファンクションは、エラーの指示を戻す。ブロック1812で、ファンクションは、応答獲得ファンクションを呼び出してメッセージまたはタイムアウトを待つ。判定ブロック1813で、応答が受信された場合、ファンクションは、ブロック1814に進み、受信されなかった場合、ファンクションは、エラーの指示を戻す。判定ブロック1814で、ファンクションは、論理宛先更新処理ファンクションを呼び出して論理経路制御テーブルを更新した後、成功の指示を戻す。
FIG. 18 is a flowchart illustrating the processing of the logical destination search function of the logical route control layer in one embodiment. This function is passed a logical destination that is a fully qualified logical name and adds an entry to the logical routing table to map the fully qualified logical name to a node identifier (if not already added) ). In one embodiment, the node identifier can be extracted from a well-defined name. In another embodiment, the node identifier can be retrieved by sending a message to the logical destination of the logical routing map. However, in the described embodiment, the node identifier is retrieved from the server node or by searching for peer nodes. This function sends a message to a server node that stores global logical destination information. If information about the entry is not received from the server node, the function sends a search message to its peer node, and the search message is propagated throughout the network. In
図19は、一実施形態における論理経路制御層の応答獲得ファンクションの処理を示す流れ図である。このファンクションは、タイマを設定し、メッセージに対する応答、またはタイムアウトを待つのに使用される低レベルファンクションである。ブロック1901で、ファンクションは、タイマを設定する。判定ブロック1902で、応答が受信された場合、ファンクションは、ブロック1903に進み、受信されなかった場合、タイムアウトが生じ、ファンクションは、エラーの指示を戻す。ブロック1903で、ファンクションは、タイマをキャンセルし、成功の指示を戻す。
FIG. 19 is a flowchart illustrating the processing of the response acquisition function of the logical route control layer in one embodiment. This function is a low-level function used to set a timer and wait for a response to a message or timeout. In
図20は、一実施形態における論理経路制御層の論理宛先更新処理ファンクションの処理を示す流れ図である。このファンクションは、論理宛先に関する情報を渡され、論理経路制御テーブルの中でその論理宛先に関する既存のエントリを更新するか、またはその論理宛先に関する新しいエントリを追加する。ブロック2001で、ファンクションは、論理経路制御テーブルの中でその渡された論理宛先をルックアップする。判定ブロック2002で、論理宛先が見付かった場合、ファンクションは、ブロック2004に進み、見付からなかった場合、ファンクションは、ブロック2003に進む。ブロック2003で、ファンクションは、その論理宛先に関する新しいエントリを論理経路制御テーブルに追加する。ブロック2004で、ファンクションは、クラスおよびノード識別ファンクションで論理経路制御テーブルの中のエントリを更新する。次に、ファンクションは、成功の指示を戻す。
FIG. 20 is a flowchart showing the processing of the logical destination update processing function of the logical route control layer in one embodiment. This function is passed information about the logical destination and updates an existing entry for the logical destination in the logical routing table or adds a new entry for the logical destination. In
図21は、一実施形態における論理経路制御層のユーザ情報ファンクションの処理を示す流れ図である。このファンクションは、ユーザ名を渡され、そのユーザ名に関するユーザ識別子をノード識別子にマップするように論理経路制御テーブルを適宜更新し、そのユーザ識別子を論理宛先として戻す。ブロック2101で、ファンクションは、論理経路制御テーブルの中でユーザ名をルックアップする。判定ブロック2102で、ルックアップが成功であった場合、ファンクションは、成功の指示とともにユーザ識別子を論理宛先として戻し、成功でなかった場合、ファンクションは、ブロック2103に進む。ブロック2103で、ファンクションは、クラスSNのユーザ識別子獲得メッセージを生成する。このメッセージは、ユーザ名に関連付けられたザ識別子を取り出す要求である。ブロック2104で、ファンクションは、論理メッセージ送信ファンクションを呼び出し、ユーザ名をユーザ識別子にマップする生成されたメッセージを論理宛先に送信する。判定ブロック2105で、メッセージが成功裡に送信された場合、ファンクションは、ブロック2106に進み、成功裡に送信されなかった場合、ファンクションは、エラーの指示を戻す。ブロック2106で、ファンクションは、応答獲得ファンクションを呼び出す。判定ブロック2107で、応答が成功裡に取り出された場合、ファンクションは、ブロック2108に進み、成功裡に取り出されなかった場合、ファンクションは、エラーの指示を戻す。ブロック2108で、ファンクションは、サーバ・ノードによる応答の中で提供されるユーザ識別子にユーザ名をマップするエントリを論理経路制御テーブルに追加する。ブロック2109で、ファンクションは、クラスSNのノード・ユーザ・メッセージを生成する。ブロック2110で、ファンクションは、論理メッセージ送信ファンクションを呼び出し、生成されたメッセージを論理経路制御マップの論理宛先に送信してユーザ識別子のノードを見出す。ブロック2111で、メッセージが成功裡に送信された場合、ファンクションは、ブロック2112に進み、成功裡に送信されなかった場合、ファンクションは、エラーの指示を戻す。ブロック2112で、ファンクションは、応答獲得ファンクションを呼び出す。判定ブロック2113で、応答が成功裡に受信された場合、ファンクションは、ブロック2114に進み、成功裡に受信されなかった場合、ファンクションは、エラーの指示を戻す。ブロック2114で、ファンクションは、応答の中で提供されたユーザ識別子およびノード識別子に関するエントリを追加するように論理経路制御テーブルを更新した後、成功の指示とともにそのユーザ識別子を論理宛先として戻す。
FIG. 21 is a flowchart showing the processing of the user information function of the logical route control layer in one embodiment. This function is passed a user name, updates the logical path control table as appropriate to map the user identifier for that user name to a node identifier, and returns that user identifier as a logical destination. In
図22は、一実施形態における論理経路制御層の論理メッセージ受信ファンクションの処理を示す流れ図である。このファンクションは、受信されたメッセージを渡される。論理ファンクション、およびメッセージの指定されたインスタンスが当該のノードにとって既知である場合、ファンクションは、ノード識別子を算出する。識別されたノードが当該のノードである場合、ファンクションは、メッセージを処理のためにアプリケーションに渡す。当該のノードではない場合、ファンクションは、メッセージをその識別されたノードに送信する。ブロック2201で、ファンクションは、メッセージ・ヘッダから、メッセージ・ヘッダの中で指定されたファンクションおよびインスタンスとともに論理宛先を取り出す。一実施形態では、メッセージ・ヘッダは、論理宛先(「lname」)、クラス(「class」)、および基準(「crit」)を含む。判定ブロック2202で、論理経路制御テーブルが示すところにより、そのクラスが当該のノードによってサポートされる場合、ファンクションは、ブロック2203に進み、サポートされない場合、ファンクションは、エラーの指示を報告して戻る。判定ブロック2203で、論理経路制御テーブルによって示されるところにより、論理宛先が当該のノードにとって既知である場合、ファンクションは、ブロック2204に進み、既知でない場合、ファンクションは、エラーの指示を報告して戻る。ブロック2204で、ファンクションは、その論理宛先に関するノード識別ファンクション、および基準に基づいて、宛先ノード識別子を算出する。判定ブロック2205で、宛先ノード識別子が成功裡に算出された場合、ファンクションは、ブロック2206に進み、成功裡に算出されなかった場合、ファンクションは、エラーの指示を報告して戻る。判定ブロック2206で、算出されたノード識別子が当該のノードを識別する場合、ファンクションは、ブロック2207に進み、当該のノードを識別しない場合、ファンクションは、ブロック2208に進む。ブロック2207で、ファンクションは、メッセージを消費し、戻る。ブロック2208で、ファンクションは、物理経路制御層のメッセージ送信ファンクションを呼び出して、算出されたノード識別子にメッセージを送信し、その後、戻る。
FIG. 22 is a flowchart illustrating the processing of the logical message reception function of the logical routing control layer in one embodiment. This function is passed the received message. If the logical function and the specified instance of the message are known to the node in question, the function calculates a node identifier. If the identified node is that node, the function passes the message to the application for processing. If not, the function sends a message to the identified node. At
図23は、一実施形態における論理経路制御層の論理名登録ファンクションの処理を示す流れ図である。この機能は、アプリケーション・プログラムにより、アプリケーション・プログラムの論理名をローカルで登録することと、グローバルに登録すること、をともに行うために呼び出される。このファンクションは、論理名およびネーム・クラスを渡される。判定ブロック2301で、論理名とクラスの組合せが論理経路制御テーブルの中に存在しない場合、ファンクションは、ブロック2302に進み、存在する場合、エラーの指示を戻す。ブロック2302で、ファンクションは、渡された論理名から十分に限定された論理名を生成する。例えば、ファンクションは、当該のノードの識別子を登録済みのドメイン名とともに論理名に付加して十分に限定された論理名を生成する(例えば、「logicalname」を「logicalname.nodeID.company.com」にする)ことができる。ブロック2303で、ファンクションは、その論理名に関するエントリを論理経路制御テーブルに追加する。このエントリは、ノード識別ファンクションを含む。ブロック2304で、ファンクションは、その論理名をグローバルに登録するメッセージを生成する。ブロック2305で、ファンクションは、論理経路制御層の論理メッセージ送信ファンクションを呼び出し、論理経路制御マップに登録するための登録メッセージを送信する。判定ブロック2306で、メッセージが成功裡に送信された場合、ファンクションは、成功の指示を戻し、成功裡に送信されなかった場合、ファンクションは、ブロック2307に進む。ブロック2307で、ファンクションは、登録メッセージを送信することを再び試みるためのタイマを設定した後、エラーの指示を戻す。
FIG. 23 is a flowchart showing the processing of the logical name registration function of the logical path control layer in one embodiment. This function is called by the application program to register both the logical name of the application program locally and globally. This function is passed a logical name and a name class. In
図24は、一実施形態における論理経路制御層の論理宛先更新生成ファンクションの処理を示す流れ図である。このファンクションは、当該のノードが論理宛先に関する探索メッセージに応答する場合、またはクライアント・ノード(すなわち、当該のノードのアプリケーションのサービスを使用しているノード)のノード識別ファンクションが最新ではないことを当該のノードが検出した場合に呼び出される。このファンクションは、論理名を渡される。ブロック2401で、ファンクションは、論理経路制御テーブルの中のその論理名に関するエントリを取り出す。判定ブロック2402で、エントリが見付かった場合、ファンクションは、ブロック2403に進み、見付からなかった場合、ファンクションは、エラーの指示を戻す。ブロック2403で、ファンクションは、ノード識別ファンクションを含むメッセージを生成し、成功の指示を戻す。
FIG. 24 is a flowchart showing the processing of the logical destination update generation function of the logical route control layer in one embodiment. This function is used when the node responds to a search message for a logical destination, or the node identification function of the client node (ie, the node using the application service of the node) is not up-to-date. Called when a node is detected. This function is passed a logical name. At
図25は、一実施形態における論理経路制御層の論理名探索処理ファンクションの処理を示す流れ図である。このファンクションは、論理名およびメッセージを渡される。このファンクションは、物理経路制御層が論理名探索要求を受信した場合に呼び出される。判定ブロック2501で、その論理名が論理経路制御テーブルの中に存在する場合、ファンクションは、ブロック2502に進み、存在しない場合、ファンクションは、ブロック2506に進む。ブロック2502で、ファンクションは、論理宛先更新生成ファンクションを呼び出して、渡された論理名に関する情報(例えば、ノード識別ファンクション)を取り出し、準備する。ブロック2503で、ファンクションは、そのノード識別ファンクションを含む論理経路探索応答を生成する。ブロック2504で、ファンクションは、発信側ノードに送り返されるようにその応答をピア・ノードに送信する。判定ブロック2505で、応答が成功裡に送信された場合、ファンクションは戻り、成功裡に送信されなかった場合、ファンクションは、エラーを報告し、その後、戻る。ブロック2506で、ファンクションは、ホップ・カウントを減分する。判定ブロック2507で、ホップ・カウントがゼロである場合、ファンクションは、ブロック2512に進み、ゼロでない場合、ファンクションは、ブロック2508に進む。ブロック2508で、ファンクションは、探索アルゴリズムに基づいて、次のピア・ノードを識別する。判定ブロック2509で、ピア・ノードが識別された場合、ファンクションは、ブロック2510に進み、識別されなかった場合、ファンクションは、ブロック2512に進む。ブロック2510で、ファンクションは、当該のノードのノード識別子を追加するようにメッセージを更新する。ブロック2511で、ファンクションは、メッセージが送信されるべき先の各ピア・ノードに関してメッセージのコピーを生成し、ブロック2504に進み、メッセージを各ピア・ノードに送信する。ブロック2512で、ファンクションは、メッセージを廃棄し、その後、戻る。
FIG. 25 is a flowchart showing the processing of the logical name search processing function of the logical path control layer in one embodiment. This function is passed a logical name and a message. This function is called when the physical routing layer receives a logical name search request. In
図26は、一実施形態におけるアプリケーション初期設定ファンクションの処理を示す流れ図である。このファンクションは、アプリケーションによる論理経路制御層の使用を例示している。ブロック2601で、ファンクションは、サーバ・ノードに対してアプリケーションを認証する。判定ブロック2602で、認証が成功であった場合、ファンクションは、ブロック2603に進み、成功でなかった場合、ファンクションは、エラーの指示を報告して完了する。ブロック2603で、ファンクションは、論理名登録ファンクションを呼び出して、そのアプリケーションに関連付けられた論理経路制御マップに登録を行う。また、このファンクションは、そのアプリケーションに関する論理経路制御テーブルにエントリを追加することも行う。ブロック2604で、ファンクションは、論理宛先に送信されるべき要求メッセージを生成する。これは、アプリケーションによって行われることが可能な実際の処理を反映する。ブロック2605で、ファンクションは、論理経路制御層の論理メッセージ送信ファンクションを呼び出してメッセージを論理宛先に送信する。判定ブロック2606で、メッセージが成功裡に送信された場合、ファンクションは完了し、成功裡に送信されなかった場合、ファンクションは、エラーを報告して完了する。
FIG. 26 is a flowchart showing the processing of the application initial setting function in one embodiment. This function illustrates the use of a logical routing layer by an application. In
図27は、論理経路制御層からメッセージを受信するアプリケーションのファンクションの処理を示す流れ図である。ブロック2702で、ファンクションは、メッセージの認証を行う。判定ブロック2703で、メッセージが認証された場合、ファンクションは、ブロック2704に進み、認証されなかった場合、ファンクションは、エラーを報告した後、完了する。ブロック2704で、ファンクションは、メッセージを消費する。判定ブロック2705で、応答が送信されるべき場合、ファンクションは、ブロック2706に進み、そうでない場合、ファンクションは、完了する。ブロック2706で、ファンクションは、応答を生成する。ブロック2707で、ファンクションは、論理経路制御層の論理メッセージ送信ファンクションを呼び出して、その応答を送信する。判定ブロック2708で、その論理メッセージの送信が成功であった場合、ファンクションは完了し、成功でなかった場合、ファンクションは、エラーを報告した後、完了する。
FIG. 27 is a flowchart showing processing of a function of an application that receives a message from the logical routing control layer. At
以上の説明から、本技術の特定の実施形態を例示の目的で述べてきたが、本発明の範囲を逸脱することなく様々な変更を行うことが可能であることが認められよう。したがって、本発明は、頭記の特許請求の範囲による以外の限定を受けない。 From the foregoing description, specific embodiments of the present technology have been described for purposes of illustration, but it will be appreciated that various modifications can be made without departing from the scope of the invention. Accordingly, the invention is not limited except as by the appended claims.
Claims (51)
前記アプリケーション・ノードから、そのノードの論理識別子の複数の物理識別子へのマッピングを受信して論理経路制御テーブルに登録することによって、論理識別子に対応する複数の物理識別子へのマッピングを維持すること、
前記クライアント・ノードにおいて論理識別子を有するメッセージを、当該論理識別子に関する物理識別子を算出する前記論理識別子に関するノード識別ファンクションに渡して、前記論理識別子に関する物理識別子であって、前記メッセージが送信されるべきアプリケーション・ノードの1つまたは複数の物理識別子を、前記論理経路制御テーブルから選択して決定させること、および
前記決定された物理識別子によって識別されたアプリケーション・ノードに前記メッセージを送信すること
を備え
前記ノード識別ファンクションは、あらかじめ決められた基準あるいは前記メッセージに含まれる基準に従って前記論理識別子を有する前記メッセージからキーを取り出し、取り出した前記キーに基づいて、1つまたは複数の物理識別子を、前記論理経路制御テーブルから選択する機能を有することを特徴とする方法。A method at said client node for sending a message to an application node corresponding to a logical identifier known to the client node, comprising:
Maintaining a mapping from the application node to a plurality of physical identifiers corresponding to the logical identifier by receiving a mapping of the logical identifier of the node to a plurality of physical identifiers and registering the mapping in the logical routing control table ;
The message having a logical identifier at the client node is passed to a node identification function for the logical identifier that calculates a physical identifier for the logical identifier, and the physical identifier for the logical identifier and the application to which the message is to be transmitted Selecting one or more physical identifiers of a node from the logical routing table and determining, and sending the message to an application node identified by the determined physical identifier identification function retrieves the key from the message with the logical identifier according to the criteria included in the predetermined reference or said message, on the basis of the key taken out, one or more physical identifiers Method characterized by having a function of selecting from the logical routing control table.
論理メッセージ送信構成要素および論理メッセージ受信構成要素を有する論理経路制御層とを備える論理経路制御システムであって、
送信元ノードの前記論理経路制御層の前記論理メッセージ送信構成要素は、アプリケーションのクライアントから論理宛先およびメッセージを受け取って前記論理宛先に関連付けられた宛先ノードのノード識別子を識別し、次に前記ノード識別子および前記メッセージを前記物理経路制御層の前記メッセージ送信構成要素に提供し、
前記送信元ノードの前記物理経路制御層の前記メッセージ送信構成要素は、前記宛先ノードの前記提供されたノード識別子、およびメッセージを受け取って送信元ノードから前記宛先ノードまでのパスを識別し、次に前記メッセージを前記宛先ノードに送信し、
前記宛先ノードの前記物理経路制御層の前記メッセージ受信構成要素は、前記送信元ノードから送信された前記メッセージを受信して前記受信されたメッセージを前記論理経路制御層の前記論理メッセージ受信構成要素に提供し、
前記宛先ノードの前記論理経路制御層の前記論理メッセージ受信構成要素は、前記提供されたメッセージを受信して前記メッセージを前記アプリケーションに提供し、
前記論理メッセージ送信構成要素は、前記ノード識別子を識別するのにノード識別ファンクションを使用し、前記ノード識別ファンクションは、あらかじめ決められた基準あるいは前記メッセージに含まれる基準に従って、前記論理宛先を有する前記メッセージからキーを取り出し、取り出した前記キーに基づいて、1つまたは複数のノード識別子を、論理宛先に対応する複数のノード識別子へのマッピングが既に登録された論理経路制御テーブルから、選択する機能を有する
ことを特徴とする論理経路制御システム。A physical routing layer having a message sending component and a message receiving component;
A logical routing system comprising a logical routing layer having a logical message sending component and a logical message receiving component,
The logical message transmission component of the logical routing layer of the source node receives the logical destination and message from the client of the application and identifies the node identifier of the destination node associated with the logical destination, and then the node identifier And providing the message to the message sending component of the physical routing layer;
The message sending component of the physical routing layer of the source node identifies the provided node identifier of the destination node and a path from the source node to the destination node upon receipt of the message; Sending the message to the destination node;
The message receiving component of the physical routing layer of the destination node receives the message transmitted from the source node and passes the received message to the logical message receiving component of the logical routing layer. Offer to,
The logical message receiving component of the logical routing layer of the destination node receives the provided message and provides the message to the application;
The logical message transmission component, using the node identification function to identify the node identifier, the node identification function, according to the criteria included in the predetermined reference or the message, the message with the logical destination And a function of selecting one or a plurality of node identifiers from a logical routing table in which mappings to a plurality of node identifiers corresponding to logical destinations are already registered based on the extracted keys. A logical route control system characterized by that.
前記物理経路制御層によって提供された前記メッセージを受信して前記メッセージを前記アプリケーションに提供する前記宛先ノードの論理メッセージ受信構成要素と
を備え、
前記論理メッセージ送信構成要素は、前記ノード識別子を識別するのにノード識別ファンクションを使用し、前記ノード識別ファンクションは、あらかじめ決められた基準あるいは前記メッセージに含まれる基準に従って、前記論理宛先を有する前記メッセージからキーを取り出し、取り出した前記キーに基づいて、1つまたは複数のノード識別子を、論理宛先に対応する複数のノード識別子へのマッピングが既に登録された論理経路制御テーブルから、選択する機能を有することを特徴とする論理経路制御システム。Receiving a logical destination and message from a client of the application, identifying a node identifier of a destination node associated with the logical destination, and sending the message to a node identified by the node identifier using a physical routing layer A logical message transmission component of the source node, wherein the node identifier is identified using the logical message transmission component and transmits the message to the logical destination; and ,
A logical message receiving component of the destination node that receives the message provided by the physical routing layer and provides the message to the application;
The logical message transmission component, using the node identification function to identify the node identifier, the node identification function, according to the criteria included in the predetermined reference or the message, the message with the logical destination And a function for selecting one or a plurality of node identifiers from a logical route control table in which mappings to a plurality of node identifiers corresponding to logical destinations are already registered based on the extracted keys. logical routing control system according to claim to Rukoto.
前記ノード識別子によって識別されたノードにメッセージを送信すること
を備え、
前記ノード識別ファンクションは、あらかじめ決められた基準あるいは前記メッセージに含まれる基準に従って前記論理宛先を有する前記メッセージからキーを取り出し、取り出した前記キーに基づいて、1つまたは複数のノード識別子を、論理宛先に対応する複数のノード識別子へのマッピングが既に登録された論理経路制御テーブルから、選択する機能を有することを特徴とする方法によって前記メッセージを前記論理宛先に送信するようにコンピュータ・システムを制御する命令コードを収容することを特徴とするコンピュータ読み取り可能な記録媒体。A node identification function, by providing a message containing the logical address comprises transmitting it to identify a plurality of node identifiers corresponding to the logical address, and a message to the node identified by the node identifier,
The node identification function retrieves a key from the message having the logical destination according to a predetermined criterion or a criterion included in the message, and, based on the retrieved key, one or more node identifiers as a logical destination from the logical routing control table mapping to a plurality of node identifiers corresponding has already been registered, the control computer system to send the message to the logical destination by how to characterized in that it has a function to select A computer- readable recording medium characterized by containing an instruction code to be recorded .
論理宛先を含むメッセージを前記ノード識別ファンクションに渡して前記論理宛先に対応する宛先ノード識別子を識別させる手段と、
前記宛先ノード識別子によって識別されたノードにメッセージを送信する手段と
を備えることを特徴とする論理経路制御システム。A node identification function, according to the criteria included in the predetermined reference or message, retrieve the key from the message with a logical address, based on the key taken out, one or more physical identifiers, the logic A means for registering the node identification function , which is selected from a logical route control table in which mappings to a plurality of node identifiers corresponding to the destination are already registered, and a message including the logical destination are passed to the node identification function and the logical destination Means for identifying a destination node identifier corresponding to
Means for transmitting a message to a node identified by the destination node identifier.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US26838601P | 2001-02-12 | 2001-02-12 | |
US2126501A | 2001-11-16 | 2001-11-16 | |
PCT/US2002/004314 WO2002065727A2 (en) | 2001-02-12 | 2002-02-12 | Logical routing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005505946A JP2005505946A (en) | 2005-02-24 |
JP4426183B2 true JP4426183B2 (en) | 2010-03-03 |
Family
ID=26694485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002564913A Expired - Fee Related JP4426183B2 (en) | 2001-02-12 | 2002-02-12 | Logical routing control system |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1366614A2 (en) |
JP (1) | JP4426183B2 (en) |
AU (1) | AU2002251942A1 (en) |
CA (1) | CA2438203C (en) |
WO (1) | WO2002065727A2 (en) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6154777A (en) * | 1996-07-01 | 2000-11-28 | Sun Microsystems, Inc. | System for context-dependent name resolution |
US5946679A (en) * | 1997-07-31 | 1999-08-31 | Torrent Networking Technologies, Corp. | System and method for locating a route in a route table using hashing and compressed radix tree searching |
-
2002
- 2002-02-12 CA CA2438203A patent/CA2438203C/en not_active Expired - Lifetime
- 2002-02-12 WO PCT/US2002/004314 patent/WO2002065727A2/en active Application Filing
- 2002-02-12 JP JP2002564913A patent/JP4426183B2/en not_active Expired - Fee Related
- 2002-02-12 EP EP02720981A patent/EP1366614A2/en not_active Ceased
- 2002-02-12 AU AU2002251942A patent/AU2002251942A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2002065727A3 (en) | 2002-11-28 |
CA2438203A1 (en) | 2002-08-22 |
CA2438203C (en) | 2014-08-05 |
WO2002065727A2 (en) | 2002-08-22 |
JP2005505946A (en) | 2005-02-24 |
EP1366614A2 (en) | 2003-12-03 |
AU2002251942A1 (en) | 2002-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7809854B2 (en) | Logical routing system | |
US11811657B2 (en) | Updating routing information based on client location | |
US11909639B2 (en) | Request routing based on class | |
US8583745B2 (en) | Application platform | |
US7194553B2 (en) | Resolving virtual network names | |
JP5404766B2 (en) | Method and system for requesting routing | |
US8892626B2 (en) | Organizing resources into collections to facilitate more efficient and reliable resource access | |
US8321588B2 (en) | Request routing utilizing client location information | |
JP2007108905A (en) | File server, file providing method, and program | |
JP4437956B2 (en) | How to provide index server support for file sharing applications | |
JP4426183B2 (en) | Logical routing control system | |
KR20050003598A (en) | Domain name service provide system and method using dual domain name server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071009 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080108 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080116 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080409 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081010 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090107 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090115 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090209 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090410 |
|
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: 20091113 |
|
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: 20091210 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4426183 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121218 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131218 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 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |