JP4426183B2 - Logical routing control system - Google Patents

Logical routing control system Download PDF

Info

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
Application number
JP2002564913A
Other languages
Japanese (ja)
Other versions
JP2005505946A (en
Inventor
ナイト ホリー
ユング エドワード
Original Assignee
オープンデザイン インコーポレイテッド
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 オープンデザイン インコーポレイテッド filed Critical オープンデザイン インコーポレイテッド
Publication of JP2005505946A publication Critical patent/JP2005505946A/en
Application granted granted Critical
Publication of JP4426183B2 publication Critical patent/JP4426183B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4541Directories for service discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4552Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/30Types of network names
    • H04L2101/365Application 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.

T. Berners-Lee et al., Uniform Resource Locators (URL), RVC 1738, CERN, Xerox PARC, Univ. of Minn., December 1994T. Berners-Lee et al., Uniform Resource Locators (URL), RVC 1738, CERN, Xerox PARC, Univ. Of Minn., December 1994

論理識別子を物理識別子にマッピングするための方法およびシステムを提供する。一実施形態では、論理経路制御システム(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 communication mechanism 104 such as the Internet. An application running on the application node provides a service to a client program running on the client node. A logical routing system allows a client node to send a message to an application (eg, request an application service) by a logical identifier (also referred to as “node identifier”) rather than a physical identifier (also referred to as “node identifier”). By providing a logical naming mechanism that allows transmission. For example, the logical identifier of the application can be an “address book”, while the physical identifier can be a globally unique identifier that uniquely identifies the node on which the application is running. is there. (This description uses “address book” as an exemplary application. The address book application maps a person's name (eg, John Smith) to an email address (eg, JohnSmith@company.com). The address book application receives a message from a client program requesting an individual's email address and sends a response message containing the email address to the client program.) Client node (or More precisely, when a computer program (running on a client node) wants to send a message to an application, the message is logically routed with the logical identifier of the application To provide to your system. The logical routing system identifies the appropriate physical identifier of the node where the application is running and sends a message to that node. An application registers with the logical routing system when it starts executing at an application node. The logical routing system can maintain a mapping from the logical identifier of the application to the physical identifier of the application node on which the application is running. The client node can use this mapping to identify the physical identifier of the application from the logical identifier. Logical identifiers can be mapped to multiple physical identifiers for individual application nodes. For example, multiple copies of the address book application can be running on different application nodes to handle multiple requests of the client program. If the client program wants to retrieve an address, the logical identifier of the address retrieval function can map to only one physical identifier. In contrast, if the client program wishes to insert an address, the logical identifier of the address insertion function can be mapped to the physical identifier of all nodes on which the application is running. Thus, the logical routing system allows a client program to be developed using the application's logical identifier, and allows the logical identifier to be resolved to a physical identifier during execution of the client program. Provide a mechanism to A program executed on a node can respond to a request for service from a client program and can request a service from another application, and can be both an application and a client program. It will be recognized by engineers in the field.

アプリケーションは、論理経路制御システムに自らを登録して、自らの論理識別子を物理ノード識別子にマップする。論理経路制御システムは、これらの登録の論理経路制御マップを保持することができる。論理経路制御システムは、分散される態様で複数のアプリケーション・ノードと複数のクライアント・ノード全体にわたる論理経路制御マップを実装すること、集中システム(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 block 201, when an application starts execution, it registers its logical identifier and the physical identifier of the node on which the application is currently executing in the logical routing system. (The client program also registers in a similar manner.) In one embodiment, instead of registering the actual physical identifier, a node identification function is registered. Whenever a physical identifier is required, the node identification function is called, passing the message to be sent, and one or more physical identifiers are returned. For example, an address book application has as its node identification function a node that maps a person's last name to the physical identifier of the node running the instance of the application that is responsible for responding to requests with that last name. It is possible to register an identification function. At block 202, the logical routing system stores a mapping of logical identifiers to node identification functions for the application. At block 203, the client program calls the logical routing system to send a message to the application identified by the logical identifier. At block 204, the logical routing system identifies the physical identifier using the logical routing mapping. The logical routing system at the client node invokes the node identification function passing the message. The node identification function returns the physical identifier associated with the application instance. The logical routing system sends a message to the node addressed by its physical identifier. When the logical routing system at the application node receives the message, it can determine whether the message should be forwarded to another node or processed at that node. The logical routing system at the application node can use the node identification function to identify the node that should process the message. At block 206, assuming that the message is to be processed at that node, the application processes the message. At block 207, the application sends a response to the client node using the logical routing system. The logical routing system can also send an updated node identification function to the client node. The client node receives the response and the updated node identification function. The logical routing system at the client node uses the updated node identification function in passing the response to the client program and sending subsequent messages to the logical identifier. The updated node identification function can reflect architectural changes in how applications are distributed across multiple application nodes.

図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 application nodes 303, 305, and 306. The application was initially running only one instance at application node 303. As the demand for the address book service increases, application nodes 305 and 306 are brought online and start running instances of the application. Application node 303 serves requests for names starting with the letters A through J, application node 305 services requests for names beginning with the letters K through S, and application node 306 with letters TZ. Serves requests for names that begin. Continuing the example of FIG. 2, if the client program wishes to request an address for “John Smith”, the logical routing system uses a node identification function for the logical identifier for “address book”, thereby Application node 303 is identified. The logical routing system sends the request to the application node 303. When the logical routing system in application node 303 receives the request, it identifies application node 305 using its node identification function. The logical routing system of application node 303 forwards the request to application node 305 where the logical routing system provides the message to the application. An instance of an application running on application node 305 retrieves the email address and sends the address to the client node. The logical routing system of application node 305 maps names that begin with letters A through J to application node 303, maps names that begin with letters K through S into application node 305, and names that begin with letters T through Z An updated node identification function that maps to the application node 306 can also be sent to the client node. In this way, the client node logical routing system identifies the appropriate application node responsible for servicing the request the next time it uses the updated node identification function, and identifies the application that identified the request.・ Send directly to the node. Alternatively, if application node 305 does not send an updated node identification function, subsequent requests are routed through application node 303. If multiple instances of an application provide the same functionality, the node identification function can randomly select a physical identifier for the instance, select a physical identifier based on the geographical proximity of the client node, etc. .

図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 client node 401 uses a node identification function that maps to one of the load balancing nodes 402. For example, the node identification function can randomly select one of the load balancing nodes. The node identification function used by the client node can be provided by the load balancing node. When a load balancing node receives a request from a client node, it uses different node identification functions provided by the application to identify the application node 403 that should service the request. For example, there can be multiple instances of an address book application that service requests for names that begin with AJ. Each load balancing node can decide to which of these instances the request is sent.

図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 logical routing layer 520, and a physical routing layer 530 used by the logical routing system in one embodiment. It is a block diagram. Those skilled in the art will recognize that the functions and data structures of these layers can be tailored to the requirements of any particular implementation of the logical routing system. The logical routing system corresponds to the functionality provided by the logical routing layer in one embodiment. The physical routing layer is responsible for sending messages to the node identified by the node identifier. Each node in the network can be assigned a unique node identifier. The physical routing layer provides a send message component 531 and a receive message component 532. The logical routing layer sends a message using the message sending component and receives the message via the message receiving component. The message sending component is passed a message and a destination node identifier (eg, “www.odi.com”) to find the network address (eg, IP address and port) for that destination node identifier. The message sending component then calls an underlying transport layer, such as TCP / IP, to deliver the message to that network address. The message sending component requests the physical routing map to provide a network address for the destination node identifier, or other nodes (ie, peer nodes) to which the message sending component is connected If you know the network address for the destination node, you can make requests to those other nodes. The message sending component can cache the network address in the physical routing table for use in sending subsequent messages to its destination node. The message sending component then sends the message to its network address. A message is sent by establishing a direct connection between the source node and the destination node, sent by forwarding the message to the destination node through the source node's peer node, or to the destination node Or can be sent by sending a message to the physical routing server for forwarding. The send message component includes a “search for route to node” component 533, a node lookup node component 534, and a peer connection, as described in more detail below. An established peer connection component 535 is used. The message receiving component processes messages received for the destination node. If the node in question (ie, the node on which the component is executing) is not the destination node, the message receiving component will attempt to forward the message to the destination node. If the message indicates that the source node is searching for a path to the destination node, this node responds to the search request when it knows the path to the destination node, or To other peer nodes. If the message is to be processed at the node in question, the message receiving component is either a receive logical message component 522 or a process logical name search component 529A. Pass the message to the logical routing layer by calling.

論理経路制御層は、論理メッセージ送信構成要素(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 destination update function 529 are provided. The application layer uses a logical message send component to send a message to a logical destination that may be an application or a user, and receives a response message from the logical destination via the logical message receive component. The logical message sending component is passed the logical identifier and the message, identifies the destination node identifier for the logical identifier, and sends the message to the destination node using the physical routing layer message sending component. The logical message sending component uses the node identification function provided by the central server to identify the destination node identifier, to identify the destination node identifier by searching for peer nodes, or to the destination node identifier by the logical destination itself. Can be identified. The logical message sending component can cache a mapping of logical identifiers to node identification functions. The logical message transmission component includes a resolve logical destination component 524, a user information component 525, a logical destination search component 526, described in more detail below. A get response component 527 and a logical destination update component 528 are used. The logical message receiving component is called by the physical routing layer message receiving component to pass the message to the logical routing layer. The logical message receiving component processes the message and provides the message to the application layer. The logical name search processing function and logical destination update generation function will be described in more detail below. The logical name registration component is used by the application layer to register a logical identifier with the logical routing layer. The logical destination update generation component is called by the logical name search processing component. The application layer can provide an application initialization component 511 and an application receive component 512. The application initialization component can register the logical identifier of the application in the logical routing layer. The application receiving component is invoked by the logical message receiving component to perform the passing of messages from the logical routing layer to the application layer. The application layer also sends a message to a logical destination by calling a logical message transmission.

論理経路制御システムは、メイン・メモリ、中央演算処理装置、入力デバイス(例えば、キーボードおよびポインティング・デバイス)、出力デバイス(例えば、表示デバイス)、およびハード・ドライブを含むコンピュータ・システム上で実行されることが可能である。メイン・メモリおよびハード・ドライブは、論理経路制御システムを実施する命令を含むことが可能なコンピュータ可読媒体である。コンピュータ・システムは、インターネット、ワイドエリア・ネットワーク、ポイント・ツー・ポイント・ダイヤルアップ接続、またはローカルエリア・ネットワークを含む様々な通信チャネルを介して互いに接続されることが可能である。   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, client node 602 is connected to client node 603 and client node 603 is connected to application node 604. When the physical routing layer of the client node 602 sends a message to the application node 604 identified by the destination node identifier, the message sending component can attempt to establish a direct connection with that application node. It is. However, if a connection cannot be established, the message sending component of client node 602 determines whether the application node is accessible through any of node 602's own peer nodes. To do. In this case, the client node 602 can access the application node 604 via the client node 603. Thus, client node 602 forwards the message to client node 603, which in turn forwards the message to application node 604.

図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 decision block 901, an entry for the destination node ID (identifier) exists in the physical routing table, the route to that destination node has been previously revealed, and the function retrieves the entry and block 902 Proceed to If not, the function proceeds to block 905. In block 902, the function adds path information including the node identifier of the node in question to the message header. When a message is received by a node, it has a history of the node on the path it has gone through. The receiving node can update its physical route control table to indicate that the nodes on the path are accessible. In block 903, the function retrieves the node identifier of the peer node from the entry, and then retrieves the network address (eg, IP address and port number) for that peer node from the peer table. The function then sends a message to the retrieved network address. At decision block 904, if the message was successful, the function returns an indication of success; otherwise, the function returns an error indication. Blocks 905-914 are performed when there is no entry in the physical routing table for the passed node identifier. These blocks attempt to find a path through which the message can be sent to the destination node. In block 905, the function calls a “find route to node” function that searches for peer nodes through which it can access the destination node. If the called function finds such a peer node, it adds an entry to the physical routing table and returns a success indication. If at decision block 906 a route is found, the function proceeds to block 907; otherwise, the function proceeds to block 908. In block 907, the function retrieves the entry for the destination node from the physical routing table and proceeds to block 902 to send the message to the destination node. If at decision block 908, the policy for the node allows the creation of a new peer connection, the function proceeds to block 909, otherwise, the function proceeds to block 913. An example policy may limit the number of connections to a peer node to four. If the node already has four peer nodes, this policy prevents connection to the fifth peer node. In block 909, the function invokes the node lookup function, which identifies the network address for the destination node and adds the network address to the peer table. The called function can send a message to the server node to check if the destination node is registered with the server node. The called function also adds an entry to the peer table to store the node identifier and network address for the destination node. If, at decision block 910, the destination node is found, the function proceeds to block 911, otherwise, the function proceeds to block 914. In block 911, the function calls a peer connection establishment function to establish a peer connection with the destination node and updates the physical routing table. If at decision block 912, a connection to the destination node is established, the function proceeds to block 907 and sends the message directly to the destination node; otherwise, the function proceeds to block 913. At decision block 913, if the node's policy allows server node forwarding, the function proceeds to block 903 to forward the message to the server node; otherwise, the function returns an error indication. . If server node forwarding is allowed, the node sends a message to the server node and either immediately when the destination node is online or at a point after the destination node is online. Allows the message to be forwarded to the destination node. At decision block 914, if the message is to be dropped (removed), the function returns an error indication; if not, the function proceeds to block 913.

図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 decision block 1001, if the node has a peer node, the function proceeds to block 1002, otherwise the function returns an error indication. In block 1002, the function generates a node search message that includes the identifier of the node and the destination node. In block 1003, the function sends a copy of the node search message to each peer node of that node. In block 1004, the function sets a timer to limit the amount of time that the node waits for a response from the peer node. In block 1005, the function waits for a response from the peer node or a timeout. If, at decision block 1006, a response is received, the function proceeds to block 1007, otherwise, a timeout occurs and the function returns an error indication. In block 1007, the function updates the physical routing table by adding an entry indicating that the destination node is accessible via the peer node that sent the response. After canceling the timer, the function returns a success indication.

図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 decision block 1101 an appropriate connection to the server node (SN) is available, the function proceeds to block 1101 and if not, the function returns an error indication. In block 1102, the function generates a node lookup message that includes the destination node identifier. In block 1103, the function sends the node lookup message to the server node. At block 1104, the function sets a timer. In block 1105, the function waits for a response from the server node or a timeout. If a response is received from the server node at decision block 1106, the function proceeds to block 1107, otherwise, a timeout occurs and the function returns an error indication. At block 1107, the function adds an entry to the peer table indicating the network address of the destination node returned in the message. After canceling the timer, the function returns a success indication. In an alternative embodiment, if a server node is not available through the node, the node may request its peer node to contact the server node on behalf of, or Information related to network addresses can be used to examine locally cached information.

図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 block 1201, the function looks up the destination node ID (identifier) in the peer table. If at decision block 1202, the network address of the destination node exists in the peer table, the function proceeds to block 1203, otherwise the connection cannot be established and the function gives an indication of the error. return. In block 1203, the function generates a peer connection request message that identifies the node. In block 1204, the function sends the peer connection request message to the network address of the destination node. To send the message, the function establishes a transport level connection to the network address before sending the message. If the connection cannot be established, the function returns an error indication. At block 1205, the function sets a timer. In block 1206, the function waits for a response from the destination node or a timeout. If, at decision block 1207, a response is received from the destination node, the function proceeds to block 1208, otherwise a timeout occurs and the function returns an error indication. At block 1208, the function cancels the timer. If, at decision block 1209, the response indicates that a connection can be established, the function proceeds to block 1210, otherwise, the destination node has no intention to connect to the node, and the function indicates an error indication. return. At block 1210, the function authenticates the destination node. The destination node sends a message encrypted with its own private key, and the relevant node uses various public authentication techniques such as the use of a public / private key pair that decrypts the message using the public key. Can be used. If the destination node cannot be authenticated, the function returns an error indication. At block 1211, the function updates the physical routing table to indicate that the destination node is accessible as a peer node (ie, connected at the physical routing layer), and then indicates a success indication. return.

図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 block 1301, the function scans the message header for a new destination node. The message header identifies the destination node and each node in the path from the source node to the node. In block 1302, the function updates the physical routing table to add a non-existing node in the physical routing table with the node identified in the message header. The update indicates that the identified node is accessible via the peer node that sent the message. In decision block 1303, if the destination node is the node in question, the function proceeds to block 1304, otherwise the function proceeds to block 1305. At decision block 1304, if the message is a response to a previously sent message, the function proceeds to block 1304A, otherwise the function proceeds to block 1304B. In block 1304A, the function informs the logical path control layer that a response has been received by calling the logical route control layer's get response function and then returns. In block 1304B, the function passes the received message to call the logical routing layer logical message receive function, passes the message to the logical routing layer, and then returns. At decision block 1305, if the message is a node search request, the function proceeds to block 1306; otherwise, the function proceeds to block 1306A. In block 1306, the function returns after calling the node search processing function passing the identifier of the destination node and the message. The called function checks the physical path control table of the relevant node to determine whether the destination node is accessible via the relevant node. If it is not accessible, the node sends its search request to its peer node. At decision block 1306A, if the message is a logical name search request, the function proceeds to block 1306B, otherwise the function proceeds to block 1307. In block 1306B, the function calls the logical name search processing function of the logical path control layer. In block 1307, the function calls the message transfer function to transfer the message to the next path in the path to the destination node (ie, the peer node of that node) and then return.

図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 block 1401, the function updates the message to add information about the node in question to the message header. At block 1402, the function decrements the hop count in the message header. Each hop corresponds to a node on the path to the destination node. The hop count indicates the maximum number of hops that the message can pass on the way to the destination node. The node that originates the message can set the hop count. Alternatively, the message header can include an indication of the number of hops that the message has passed. Each node can decide whether to continue forwarding messages based on that number. If at decision block 1403, the hop count is zero, the function proceeds to block 1407, otherwise, the function proceeds to block 1404. In decision block 1404, if the destination node ID (identifier) is present in the physical routing table, the destination node is accessible via the node, and the function proceeds to block 1405, and if not, The function proceeds to block 1407. In block 1405, the function sends a message to the peer node through which the destination node is accessible. At decision block 1406, if the message was successful, the function reports a success indication and returns, otherwise, the function reports an error indication and returns. If at decision block 1407, the node's policy allows forwarding to the server node (SN), the function proceeds to block 1408; otherwise, the function reports an error indication and returns. . If, at decision block 1408, a server node (SN) connection is available, the function proceeds to block 1408 and forwards the message to the server node; otherwise, the function reports an error indication and returns. The server node can then forward the message to the destination node immediately when the destination node is online or at a time after the destination node is online.

図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 decision block 1501, if the destination node identifier is present in the physical routing table, the destination node is accessible via the node, and the function proceeds to block 1502, otherwise the function is Proceed to block 1504. At block 1502, the function sends a message to the next peer node in the path indicated in the physical routing table. If the destination node is accessible through multiple peer nodes, the function sends a message to each of the peer nodes. If at decision block 1503 the transmission of the message to at least one peer node was successful, the function returns; otherwise, the function reports an error indication and returns. In blocks 1504-1509, the function forwards the search message to the peer node of that node. At block 1504, the function decrements the hop count. If at decision block 1505, the hop count is equal to zero, the function discards the message and returns, otherwise, the function proceeds to block 1506. At block 1506, the function identifies the next peer node to which the search message should be forwarded based on the search algorithm. The search algorithm described herein is an algorithm that exhaustively searches all peer nodes to find a destination node. An alternative search algorithm can select a single peer node for search message forwarding. Those skilled in the art will recognize that the search algorithm can be optimized to best fit the node topology, hop count, geographic location, and application requirements. If at decision block 1507, the next peer node is identified, the function proceeds to block 1508; otherwise, the function proceeds to block 1510. At block 1508, the function updates the message to add information related to the node in question to the message header. At block 1509, the function generates a copy of the message for each peer node to which the message is to be sent and proceeds to block 1502 to send the message to each identified peer node. At block 1510, the function discards the message and returns.

図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 block 1601, the function calls a logical destination resolution function. The called function updates the logical path control table to add an entry for the logical destination if such an entry does not already exist in the table. If at decision block 1602, the logical destination is successfully resolved, the function retrieves the entry from the logical routing table and proceeds to block 1604, and if not successfully resolved, the function provides an indication of the error. return. At block 1604, the function calculates the destination node identifier (compute; determines using a computer) by calling the node identification function of the retrieved entry passing the message. In decision block 1605, if the destination node identifier is calculated successfully, the function proceeds to block 1606, if it has not been calculated successfully, the function returns an indication of error. In block 1606, the function calls the physical routing layer send message function to send the message to the destination node and then returns a success or error indication returned by the called send message function. In one embodiment, the node identification function can use criteria, key functions, and routing tables. The key function is called by passing the criteria for generating the key. The key is then used to search the routing table to identify the node identifier. For example, the criteria for the address book application is the last name, and the key function can return the first character of the last name. The routing table can be a tree that maps characters to node identifiers.

図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 decision block 1701, if the logical destination is a username, the function proceeds to block 1710; otherwise, the function proceeds to block 1702. At decision block 1702, if the logical name of the logical destination is local to the node, the function proceeds to block 1703, otherwise the function proceeds to block 1705. At block 1703, the function retrieves an entry for the logical name from the logical path control table. This entry contains a sufficiently limited logical name. If at decision block 1704 an entry for the logical name is found, the function proceeds to block 1705; otherwise, the function returns an error indication. At block 1705, the function retrieves a well-defined logical name entry from the logical routing table. If at decision block 1706 an entry for a well-defined logical name is retrieved, the function sets the logical destination to that fully-qualified logical name, returns a success indication, and if not retrieved, The function proceeds to block 1707. At block 1707, the function calls a logical destination search function to globally search for logical destinations. The called function can search in the server node or through the peer node to find a sufficiently limited logical name. If at decision block 1708, a sufficiently limited logical name is found during the search, the function returns an indication of success, otherwise, the function returns an indication of an error. At block 1709, the function calls the user information function to find the user identifier for the username. The called function can add an entry to the logical routing table to map the user identifier to the node identifier. The function then returns a success indication.

図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 block 1801, the function looks up the logical destination passed in the logical routing table. If at decision block 1802 an entry for the logical destination is found, the function returns a success indication; otherwise, the function proceeds to block 1803. At block 1803, the function generates a logical name lookup message of class SN. This message indicates that the sending node is requesting information to map a logical name to a node identifier. In block 1804, the function calls the send logical message function passing the generated message and the node identifier logical destination of the server node. At decision block 1805, if the message was successfully sent, the function proceeds to block 1806, and if not, the function returns an error indication. At block 1806, the function calls a get response function and waits for a response to be received. If, at decision block 1807, a response is received, the function proceeds to block 1808; otherwise, the function proceeds to block 1809. In block 1808, the function calls the logical destination update processing function to update the logical path control table and then returns a success indication. At block 1809, the function generates a logical name lookup message of class SEARCH. The SEARCH class indicates that the message was sent from a peer node to search for a node identifier. In block 1810, the function sends a message generated by calling a physical routing layer send message function. The search message is sent to the peer node and the peer node responds if it can access the logical destination through that peer node. If at decision block 1811 the message send indication is successful, the function proceeds to block 1812; otherwise, the function returns an error indication. At block 1812, the function calls a get response function to wait for a message or timeout. If at decision block 1813 a response is received, the function proceeds to block 1814; otherwise, the function returns an error indication. At decision block 1814, the function calls the logical destination update processing function to update the logical path control table and then returns a success indication.

図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 block 1901, the function sets a timer. If a response is received at decision block 1902, the function proceeds to block 1903, otherwise a timeout occurs and the function returns an error indication. At block 1903, the function cancels the timer and returns a success indication.

図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 block 2001, the function looks up the passed logical destination in the logical routing table. If at decision block 2002, a logical destination is found, the function proceeds to block 2004; otherwise, the function proceeds to block 2003. In block 2003, the function adds a new entry for the logical destination to the logical routing table. In block 2004, the function updates the entry in the logical routing table with the class and node identification function. The function then returns a success indication.

図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 block 2101, the function looks up the user name in the logical routing table. At decision block 2102, if the lookup was successful, the function returns the user identifier as a logical destination with a success indication, otherwise the function proceeds to block 2103. At block 2103, the function generates a class SN user identifier acquisition message. This message is a request to retrieve the identifier associated with the user name. At block 2104, the function calls a send logical message function to send the generated message that maps the user name to the user identifier to the logical destination. If at decision block 2105, the message was successfully transmitted, the function proceeds to block 2106; otherwise, the function returns an error indication. At block 2106, the function invokes a get response function. If, at decision block 2107, the response is successfully retrieved, the function proceeds to block 2108, and if not, the function returns an error indication. At block 2108, the function adds an entry to the logical routing table that maps the user name to the user identifier provided in the response by the server node. At block 2109, the function generates a node user message of class SN. At block 2110, the function invokes the send logical message function to send the generated message to the logical destination in the logical routing map to find the user identifier node. If at block 2111, the message was successfully sent, the function proceeds to block 2112; if not successfully sent, the function returns an error indication. At block 2112, the function calls a response acquisition function. If, at decision block 2113, a response is successfully received, the function proceeds to block 2114, and if not successfully received, the function returns an error indication. In block 2114, the function updates the logical routing table to add entries for the user identifier and node identifier provided in the response and then returns the user identifier as a logical destination with an indication of success.

図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 block 2201, the function retrieves the logical destination from the message header along with the function and instance specified in the message header. In one embodiment, the message header includes a logical destination (“lname”), a class (“class”), and a criterion (“crit”). At decision block 2202, if the class is supported by the node as indicated by the logical routing table, the function proceeds to block 2203, otherwise, the function reports an error indication and returns. At decision block 2203, as indicated by the logical routing table, if the logical destination is known to the node in question, the function proceeds to block 2204, otherwise the function reports an error indication and returns. . At block 2204, the function calculates a destination node identifier based on the node identification function and criteria for that logical destination. In decision block 2205, if the destination node identifier is calculated successfully, the function proceeds to block 2206, if it has not been calculated successfully, the function returns to report an indication of error. If, at decision block 2206, the calculated node identifier identifies the node, the function proceeds to block 2207; otherwise, the function proceeds to block 2208. At block 2207, the function consumes the message and returns. In block 2208, the function calls the physical routing layer send message function to send the message to the calculated node identifier and then returns.

図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 decision block 2301, if the logical name and class combination does not exist in the logical routing table, the function proceeds to block 2302 and returns an error indication if it exists. At block 2302, the function generates a fully qualified logical name from the passed logical name. For example, the function generates a sufficiently limited logical name by adding the identifier of the node together with the registered domain name to the logical name (for example, “logicalname” is changed to “logicalname.nodeID.company.com”). can do. In block 2303, the function adds an entry for the logical name to the logical routing table. This entry includes a node identification function. At block 2304, the function generates a message that registers its logical name globally. In block 2305, the function calls the logical route control layer's logical message send function to send a registration message for registration in the logical route control map. If at decision block 2306 the message was successfully transmitted, the function returns an indication of success; otherwise, the function proceeds to block 2307. In block 2307, the function returns an error indication after setting a timer to attempt to send the registration message again.

図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 block 2401, the function retrieves an entry for that logical name in the logical routing table. If, at decision block 2402, an entry is found, the function proceeds to block 2403, otherwise, the function returns an error indication. At block 2403, the function generates a message containing the node identification function and returns a success indication.

図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 decision block 2501, if the logical name exists in the logical path control table, the function proceeds to block 2502, otherwise the function proceeds to block 2506. In block 2502, the function calls the logical destination update generation function to retrieve and prepare information (eg, node identification function) regarding the passed logical name. At block 2503, the function generates a logical path search response that includes the node identification function. At block 2504, the function sends the response to the peer node to be sent back to the originating node. At decision block 2505, if the response was successfully sent, the function returns; if not, the function reports an error and then returns. At block 2506, the function decrements the hop count. If at decision block 2507, the hop count is zero, the function proceeds to block 2512; otherwise, the function proceeds to block 2508. At block 2508, the function identifies the next peer node based on the search algorithm. If at decision block 2509 a peer node is identified, the function proceeds to block 2510, otherwise, the function proceeds to block 2512. At block 2510, the function updates the message to add the node identifier for the node in question. In block 2511, the function generates a copy of the message for each peer node to which the message is to be sent and proceeds to block 2504 to send the message to each peer node. In block 2512, the function discards the message and then returns.

図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 block 2601, the function authenticates the application to the server node. If at decision block 2602 authentication is successful, the function proceeds to block 2603; otherwise, the function reports an error indication and completes. At block 2603, the function calls the register logical name function to register with the logical path control map associated with the application. This function also adds an entry to the logical path control table for the application. At block 2604, the function generates a request message to be sent to the logical destination. This reflects the actual processing that can be performed by the application. In block 2605, the function sends a message to the logical destination by calling the logical message send function of the logical routing layer. At decision block 2606, if the message was successfully sent, the function is complete, otherwise, the function reports and reports an error.

図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 block 2702, the function performs message authentication. If at decision block 2703 the message is authenticated, the function proceeds to block 2704; otherwise, the function completes after reporting an error. At block 2704, the function consumes the message. If at decision block 2705 a response is to be sent, the function proceeds to block 2706, otherwise, the function is complete. At block 2706, the function generates a response. In block 2707, the function invokes the logical routing layer logical message send function and sends the response. At decision block 2708, if the transmission of the logical message is successful, the function is complete; otherwise, the function completes after reporting an error.

以上の説明から、本技術の特定の実施形態を例示の目的で述べてきたが、本発明の範囲を逸脱することなく様々な変更を行うことが可能であることが認められよう。したがって、本発明は、頭記の特許請求の範囲による以外の限定を受けない。   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.

一実施形態における論理経路制御システムを示すためのブロック図である。It is a block diagram for showing a logical route control system in one embodiment. クライアント・プログラムがメッセージをアプリケーションに送信する際の処理を示す流れ図である。It is a flowchart which shows the process at the time of a client program transmitting a message to an application. アプリケーションのインスタンスが複数のノードにおいて実行される論理経路制御システムを示すためのブロック図である。It is a block diagram for showing a logical routing system in which an instance of an application is executed in a plurality of nodes. ノード識別ファンクションを使用してアプリケーションに関するロード・バランシングを行うことを示すブロック図である。FIG. 3 is a block diagram illustrating load balancing for an application using a node identification function. 論理経路制御システムによって使用されるアプリケーション層510、論理経路制御層520、および物理経路制御層530のアーキテクチャを示すブロック図である。FIG. 3 is a block diagram illustrating the architecture of an application layer 510, a logical routing layer 520, and a physical routing layer 530 used by the logical routing system. 様々なノード間の物理経路制御層における接続を示すブロック図である。It is a block diagram which shows the connection in the physical routing control layer between various nodes. 一実施形態における論理経路制御層によって使用されるデータ構造を示す図である。FIG. 4 illustrates a data structure used by a logical routing layer in one embodiment. 一実施形態において物理経路制御層によって使用されるデータ構造を示す図である。FIG. 3 illustrates a data structure used by a physical routing layer in one embodiment. 一実施形態における物理経路制御層のメッセージ送信ファンクションの処理を示す流れ図である。It is a flowchart which shows the process of the message transmission function of the physical routing control layer in one Embodiment. 一実施形態における「ノードへの経路を探索する」ファンクションの処理を示す流れ図である。It is a flowchart which shows the process of the function "search for the route to a node" in one embodiment. 一実施形態におけるノード・ルックアップ・ファンクションの処理を示す流れ図である。3 is a flow diagram that illustrates the processing of a node lookup function in one embodiment. 一実施形態におけるピア接続確立ファンクションの処理を示す流れ図である。It is a flowchart which shows the process of the peer connection establishment function in one Embodiment. 一実施形態における物理経路制御層のメッセージ受信ファンクションの処理を示す流れ図である。It is a flowchart which shows the process of the message reception function of the physical routing control layer in one Embodiment. 一実施形態における物理経路制御層のメッセージ転送ファンクションの処理を示す流れ図である。It is a flowchart which shows the process of the message transfer function of the physical routing control layer in one Embodiment. 一実施形態におけるノード探索処理ファンクションの処理を示す流れ図である。It is a flowchart which shows the process of the node search processing function in one Embodiment. 一実施形態における論理経路制御層の論理メッセージ送信ファンクションの処理を示す流れ図である。It is a flowchart which shows the process of the logical message transmission function of the logical routing control layer in one Embodiment. 一実施形態における論理経路制御層の論理宛先解決ファンクションの処理を示す流れ図である。6 is a flowchart illustrating processing of a logical destination resolution function of a logical routing control layer in an embodiment. 一実施形態における論理経路制御層の論理宛先探索ファンクションの処理を示す流れ図である。It is a flowchart which shows the process of the logical destination search function of the logical route control layer in one Embodiment. 一実施形態における論理経路制御層の応答獲得ファンクションの処理を示す流れ図である。It is a flowchart which shows the process of the response acquisition function of the logic route control layer in one Embodiment. 一実施形態における論理経路制御層の論理宛先更新処理ファンクションの処理を示す流れ図である。It is a flowchart which shows the process of the logical destination update process function of the logical route control layer in one Embodiment. 一実施形態における論理経路制御層のユーザ情報ファンクションの処理を示す流れ図である。It is a flowchart which shows the process of the user information function of the logical routing control layer in one Embodiment. 一実施形態における論理経路制御層の論理メッセージ受信ファンクションの処理を示す流れ図である。It is a flowchart which shows the process of the logical message reception function of the logical routing control layer in one Embodiment. 一実施形態における論理経路制御層の論理名登録ファンクションの処理を示す流れ図である。It is a flowchart which shows the process of the logical name registration function of the logical route control layer in one Embodiment. 一実施形態における論理経路制御層の論理宛先更新生成ファンクションの処理を示す流れ図である。It is a flowchart which shows the process of the logical destination update generation function of the logical route control layer in one Embodiment. 一実施形態における論理経路制御層の論理名探索処理ファンクションの処理を示す流れ図である。It is a flowchart which shows the process of the logical name search process function of the logical route control layer in one Embodiment. 一実施形態におけるアプリケーション初期設定ファンクションの処理を示す流れ図である。It is a flowchart which shows the process of the application initialization function in one Embodiment. 論理経路制御層からメッセージを受信するアプリケーションのファンクションの処理を示す流れ図である。6 is a flowchart illustrating processing of a function of an application that receives a message from a logical routing control layer.

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に記載の方法。  The client node includes receiving an update to the node identification function, and a message to be transmitted after receiving the update is transmitted to an application node identified by the updated node identification function The method according to claim 1. 前記アプリケーション・ノードは、前記メッセージを受信した際、ノード識別ファンクションを使用して調べて、前記メッセージが別のアプリケーション・ノードに転送されるべきかどうかを決定することを特徴とする請求項1に記載の方法。  The application node of claim 1 when receiving the message, examines using a node identification function to determine whether the message should be forwarded to another application node. The method described. 前記ノード識別ファンクションは、複数の論理識別子に共通であることを特徴とする請求項1に記載の方法。The method of claim 1, wherein the node identification function is common to a plurality of logical identifiers. クライアント・ノードは、前記アプリケーション・ノードから前記ノード識別ファンクションを受け取ることを特徴とする請求項1に記載の方法。  The method of claim 1, wherein a client node receives the node identification function from the application node. ノード識別ファンクションに対する論理識別子のマッピングは、サーバ・ノードにおいて保持されることを特徴とする請求項1に記載の方法。  The method of claim 1, wherein the mapping of logical identifiers to node identification functions is maintained at a server node. ノード識別ファンクションに対する論理識別子のマッピングは、サーバ・ノードにおいて保持され、前記ノード間に分散されることを特徴とする請求項1に記載の方法。  The method of claim 1, wherein the mapping of logical identifiers to node identification functions is maintained at server nodes and distributed among the nodes. ノード識別ファンクションに対する論理識別子のマッピングは、前記ノード間に分散されることを特徴とする請求項1に記載の方法。  The method of claim 1, wherein the mapping of logical identifiers to node identification functions is distributed among the nodes. メッセージ送信構成要素およびメッセージ受信構成要素を有する物理経路制御層と、
論理メッセージ送信構成要素および論理メッセージ受信構成要素を有する論理経路制御層とを備える論理経路制御システムであって、
送信元ノードの前記論理経路制御層の前記論理メッセージ送信構成要素は、アプリケーションのクライアントから論理宛先およびメッセージを受け取って前記論理宛先に関連付けられた宛先ノードのノード識別子を識別し、次に前記ノード識別子および前記メッセージを前記物理経路制御層の前記メッセージ送信構成要素に提供し、
前記送信元ノードの前記物理経路制御層の前記メッセージ送信構成要素は、前記宛先ノードの前記提供されたノード識別子、およびメッセージを受け取って送信元ノードから前記宛先ノードまでのパスを識別し、次に前記メッセージを前記宛先ノードに送信し、
前記宛先ノードの前記物理経路制御層の前記メッセージ受信構成要素は、前記送信元ノードから送信された前記メッセージを受信して前記受信されたメッセージを前記論理経路制御層の前記論理メッセージ受信構成要素に提供し、
前記宛先ノードの前記論理経路制御層の前記論理メッセージ受信構成要素は、前記提供されたメッセージを受信して前記メッセージを前記アプリケーションに提供し、
前記論理メッセージ送信構成要素は、前記ノード識別子を識別するのにノード識別ファンクションを使用し、前記ノード識別ファンクションは、あらかじめ決められた基準あるいは前記メッセージに含まれる基準に従って、前記論理宛先を有する前記メッセージからキーを取り出し、取り出した前記キーに基づいて、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.
前記ノード識別ファンクションは、前記宛先ノードによって提供されることを特徴とする請求項に記載の論理経路制御システム。The logical path control system according to claim 9 , wherein the node identification function is provided by the destination node. 前記ノード識別ファンクションは、前記宛先ノードによって更新されることを特徴とする請求項に記載の論理経路制御システム。The logical path control system according to claim 9 , wherein the node identification function is updated by the destination node. 前記論理経路制御層の前記論理メッセージ送信構成要素は、ピア・ノードに探索メッセージを送信して前記ピア・ノードが前記ノード識別子を提供することができるかどうかを決定することによって、宛先ノードのノード識別子を識別することを特徴とする請求項に記載の論理経路制御システム。The logical message sending component of the logical routing layer sends a search message to a peer node to determine whether the peer node can provide the node identifier, thereby determining the node of the destination node The logical path control system according to claim 9 , wherein the identifier is identified. 前記論理経路制御層の前記論理メッセージ送信構成要素は、前記ノード識別子を提供するサーバ・ノードに前記宛先ノード識別子を送信することによって、宛先ノードのノード識別子を識別することを特徴とする請求項に記載の論理経路制御システム。Wherein said logical message transmission components of the logical path control layer by sending the destination node identifier to a server node that provides the node identifier, claim 9, wherein identifying a node identifier of the destination node The logical route control system described in 1. 前記物理経路制御層の前記メッセージ送信構成要素は、前記宛先ノードに転送するために前記メッセージを前記サーバ・ノードに送信することを特徴とする請求項に記載の論理経路制御システム。The logical routing system of claim 9 , wherein the message sending component of the physical routing layer sends the message to the server node for forwarding to the destination node. 前記サーバ・ノードは、前記宛先ノードがオンラインになるまで前記メッセージを保管することを特徴とする請求項14に記載の論理経路制御システム。15. The logical routing system of claim 14 , wherein the server node stores the message until the destination node is online. 前記論理経路制御層の前記論理メッセージ受信構成要素は、前記メッセージが別のノードに転送されるべきかどうかを決定することを特徴とする請求項9に記載の論理経路制御システム。  The logical routing system of claim 9, wherein the logical message receiving component of the logical routing layer determines whether the message should be forwarded to another node. 前記メッセージが別のノードに転送されるべきかどうかの前記決定は、ノード識別子を算出するノード識別ファンクションに基づくことを特徴とする請求項16に記載の論理経路制御システム。The logical routing system of claim 16 , wherein the determination of whether the message should be forwarded to another node is based on a node identification function that calculates a node identifier. 前記宛先ノードと前記送信元ノードは、異なる複数の組織によって運用されることを特徴とする請求項16に記載の論理経路制御システム。The logical path control system according to claim 16 , wherein the destination node and the transmission source node are operated by a plurality of different organizations. 前記宛先ノードと前記別のノードは、異なる組織の管理下にあることを特徴とする請求項16に記載の論理経路制御システム。The logical path control system according to claim 16 , wherein the destination node and the another node are managed by different organizations. 前記物理経路制御層の前記メッセージ送信構成要素は、ネットワーク・アドレスに対するノード識別子のマッピングを使用して前記宛先ノードに関連付けられたネットワーク・アドレスに前記メッセージを送信することを特徴とする請求項に記載の論理経路制御システム。The message transmission component of the physical routing layer to claim 9, characterized in that using the mapping of node identifiers to network address to send the message to a network address associated with the destination node The logical routing control system described. 前記ネットワーク・アドレスは、IPアドレスを含むことを特徴とする請求項20に記載の論理経路制御システム。The logical route control system according to claim 20 , wherein the network address includes an IP address. 」 前記物理経路制御層の前記メッセージ送信構成要素は、TCP/IPプロトコルを使用して前記メッセージを送信することを特徴とする請求項に記載の論理経路制御システム。10. The logical routing system of claim 9 , wherein the message sending component of the physical routing layer sends the message using a TCP / IP protocol. アプリケーションのクライアントから論理宛先およびメッセージを受信して、前記論理宛先に関連付けられた宛先ノードのノード識別子を識別し、前記ノード識別子によって識別されたノードに物理経路制御層を使用して前記メッセージを送信する、送信元ノードの論理メッセージ送信構成要素であって、前記ノード識別子は、論理メッセージ送信構成要素を使用して識別され、論理宛先にメッセージを送信する、送信元ノードの論理メッセージ送信構成要素と、
前記物理経路制御層によって提供された前記メッセージを受信して前記メッセージを前記アプリケーションに提供する前記宛先ノードの論理メッセージ受信構成要素と
を備え、
前記論理メッセージ送信構成要素は、前記ノード識別子を識別するのにノード識別ファンクションを使用し、前記ノード識別ファンクションは、あらかじめ決められた基準あるいは前記メッセージに含まれる基準に従って、前記論理宛先を有する前記メッセージからキーを取り出し、取り出した前記キーに基づいて、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.
前記ノード識別ファンクションは、前記宛先ノードによって提供されることを特徴とする請求項23に記載の論理経路制御システム。The logical path control system according to claim 23 , wherein the node identification function is provided by the destination node. 前記ノード識別ファンクションは、前記宛先ノードによって更新されることを特徴とする請求項23に記載の論理経路制御システム。The logical path control system according to claim 23 , wherein the node identification function is updated by the destination node. 前記論理宛先から対応するノード識別子へのマッピングは、サーバ・ノードに集中化されることを特徴とする請求項23に記載の論理経路制御システム。24. The logical path control system of claim 23 , wherein the mapping from the logical destination to the corresponding node identifier is centralized in a server node. 前記論理宛先から対応するノード識別子のマッピングは、複数のサーバ・ノードにわたって分散されることを特徴とする請求項23に記載の論理経路制御システム。24. The logical routing system of claim 23 , wherein the mapping of node identifiers corresponding to the logical destination is distributed across a plurality of server nodes. 前記物理経路制御層は、前記宛先ノードに転送するために前記メッセージをサーバ・ノードに送信することを特徴とする請求項23に記載の論理経路制御システム。24. The logical routing system of claim 23 , wherein the physical routing layer sends the message to a server node for transfer to the destination node. 前記サーバ・ノードは、前記宛先ノードがオンラインになるまで前記メッセージを保管することを特徴とする請求項28に記載の論理経路制御システム。29. The logical routing system of claim 28 , wherein the server node stores the message until the destination node is online. 前記論理メッセージ受信構成要素は、前記メッセージが別のノードに転送されるべきかどうかを決定することを特徴とする請求項23に記載の論理経路制御システム。24. The logical routing system of claim 23 , wherein the logical message receiving component determines whether the message should be forwarded to another node. 前記メッセージが別のノードに転送されるべきかどうかの前記決定は、ノード識別子を算出するノード識別ファンクションに基づくことを特徴とする請求項30に記載の論理経路制御システム。The logical routing system of claim 30 , wherein the determination of whether the message should be forwarded to another node is based on a node identification function that calculates a node identifier. 前記宛先ノードと前記別のノードは、異なる組織によって運用されることを特徴とする請求項23に記載の論理経路制御システム。The logical path control system according to claim 23 , wherein the destination node and the another node are operated by different organizations. 前記宛先ノードと前記送信元ノードは、異なる組織の管理下にあることを特徴とする請求項23に記載の論理経路制御システム。The logical path control system according to claim 23 , wherein the destination node and the transmission source node are under the management of different organizations. 前記論理宛先から対応するノード識別子へのマッピングは、サーバ・ノードにおいて保管されることを特徴とする請求項23に記載の論理経路制御システム。24. The logical path control system of claim 23 , wherein the mapping from the logical destination to the corresponding node identifier is stored at a server node. 前記論理宛先から対応するノード識別子へのマッピングは、ノード間に分散されることを特徴とする請求項23に記載の論理経路制御システム。The logical path control system according to claim 23 , wherein the mapping from the logical destination to the corresponding node identifier is distributed among the nodes. ード識別ファンクションに、論理宛先を含むメッセージを提供することによって、論理宛先に対応する複数のノード識別子を識別させること、および
前記ノード識別子によって識別されたノードにメッセージを送信すること
を備え
前記ノード識別ファンクションは、あらかじめ決められた基準あるいは前記メッセージに含まれる基準に従って前記論理宛先を有する前記メッセージからキーを取り出し、取り出した前記キーに基づいて、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 .
ノードは、前記メッセージを受信した際、ノード識別ファンクションを使用して、前記メッセージが別のノードに転送されるべきかどうかを決定することを特徴とする請求項36に記載のコンピュータ読み取り可能な記録媒体。37. The computer readable record of claim 36 , when a node receives the message, it uses a node identification function to determine whether the message should be forwarded to another node. Medium. 前記メッセージを転送する前記ノードは、前記論理宛先に関するロード・バランシング機能を行うことを特徴とする請求項37に記載のコンピュータ読み取り可能な記録媒体。38. The computer- readable medium of claim 37 , wherein the node that forwards the message performs a load balancing function for the logical destination. 前記ノード識別ファンクションは、基準、キー・ファンクション、およびマッピング・データ構造をそれぞれが有する複数の論理宛先に共通であり、前記ノード識別ファンクションは、前記基準および前記キー・ファンクションを使用してキーを生成し、前記生成されたキーを使用して前記マッピング・データ構造からノード識別子を識別することを特徴とする請求項36に記載のコンピュータ読み取り可能な記録媒体。The node identification function is common to a plurality of logical destinations each having a criterion, a key function, and a mapping data structure, and the node identification function generates a key using the criterion and the key function The computer- readable medium of claim 36 , wherein the generated key is used to identify a node identifier from the mapping data structure. ノード識別子に対する論理宛先のマッピングは、集中システムにおいて格納されることを特徴とする請求項36に記載のコンピュータ読み取り可能な記録媒体。The computer- readable medium of claim 36 , wherein the mapping of logical destinations to node identifiers is stored in a centralized system. ノード識別子に対する論理宛先のマッピングは、分散された場所において格納されることを特徴とする請求項36に記載のコンピュータ読み取り可能な記録媒体。The computer- readable medium of claim 36 , wherein the mapping of logical destinations to node identifiers is stored at a distributed location. ード識別ファンクションであって、あらかじめ決められた基準あるいはメッセージに含まれる基準に従って、論理宛先を有するメッセージからキーを取り出し、取り出したキーに基づいて、1つまたは複数の物理識別子を、前記論理宛先に対応する複数のノード識別子へのマッピングが既に登録された論理経路制御テーブルから、選択する、前記ノード識別ファンクションを登録する手段と
論理宛先を含むメッセージを前記ノード識別ファンクションに渡して前記論理宛先に対応する宛先ノード識別子を識別させる手段と、
前記宛先ノード識別子によって識別されたノードにメッセージを送信する手段と
を備えることを特徴とする論理経路制御システム。
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.
論理宛先は、アプリケーションに関連付けられ、前記アプリケーションは、前記関連する論理宛先に関するノード識別ファンクションを登録することを特徴とする請求項42に記載の論理経路制御システム。43. The logical routing system of claim 42 , wherein a logical destination is associated with an application, and the application registers a node identification function for the associated logical destination. 前記ノード識別ファンクションは、前記宛先ノードによって登録されることを特徴とする請求項42に記載の論理経路制御システム。The logical path control system according to claim 42 , wherein the node identification function is registered by the destination node. 前記ノード識別ファンクションは、前記宛先ノードによって更新されることを特徴とする請求項42に記載の論理経路制御システム。The logical path control system according to claim 42 , wherein the node identification function is updated by the destination node. 前記論理宛先から対応するノード識別子へのマッピングは、サーバ・ノードに集中化されることを特徴とする請求項42に記載の論理経路制御システム。43. The logical routing system of claim 42 , wherein the mapping from logical destinations to corresponding node identifiers is centralized at a server node. 前記宛先ノード識別子を識別するための手段は、複数のサーバ・ノードにわたって分散された宛先ノード識別子に対する論理宛先のマッピングを含むことを特徴とする請求項42に記載の論理経路制御システム。43. The logical routing system of claim 42 , wherein the means for identifying a destination node identifier includes a mapping of logical destinations to destination node identifiers distributed across a plurality of server nodes. 前記宛先ノードとメッセージを発信するノードは、異なる組織によって運用されることを特徴とする請求項45に記載の論理経路制御システム。The logical path control system according to claim 45 , wherein the destination node and the node that transmits the message are operated by different organizations. 前記宛先ノードとメッセージを発信するノードは、異なる組織の管理下にあることを特徴とする請求項42に記載の論理経路制御システム。43. The logical route control system according to claim 42 , wherein the destination node and a node that sends a message are under the management of different organizations. ノード識別子に対する論理宛先の前記マッピングは、中央の場所(central location)において保管されることを特徴とする請求項42に記載の論理経路制御システム。The logical routing system of claim 42 , wherein the mapping of logical destinations to node identifiers is stored at a central location. ノード識別子に対する論理宛先の前記マッピングは、分散された場所において格納されることを特徴とする請求項42に記載の論理経路制御システム。43. The logical routing system of claim 42 , wherein the mapping of logical destinations to node identifiers is stored at distributed locations.
JP2002564913A 2001-02-12 2002-02-12 Logical routing control system Expired - Fee Related JP4426183B2 (en)

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)

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

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