(57)【特許請求の範囲】
【請求項１】
通信対象のデータパケット内に通信先を示すアプリケーション固有のネットワーク情報が含まれている分散オブジェクト通信が行われるサーバ・クライアントネットワークシステムにおいて、
同一の機能を有する複数のサーバオブジェクトの各オブジェクト識別子を取得し、当該サーバオブジェクトに対応するＮＡＴ固有オブジェクト識別子を生成し、当該ＮＡＴ固有オブジェクト識別子をクライアントアプリケーションが認識できるようにするＮＡＴアプリケーション内の第１の手段と、
同一の機能を有する複数のサーバアプリケーションを監視しており、クライアントアプリケーションからＮＡＴ固有オブジェクト識別子を有するリクエストデータパケットを受信した際に、当該各サーバアプリケーションの負荷状況や稼動状態を考慮して、あらかじめ設定されている選択基準に基づき、当該リクエストデータパケットの転送先として適切なサーバアプリケーションを選択し、「選択したサーバアプリケーション」を通信先とするように当該リクエストデータパケット内のＴＣＰ層のネットワークアドレスの変換を行った上で、アプリケーション層のネットワーク情報の変換として当該リクエストデータパケット内のＮＡＴ固有オブジェクト識別子を「選択したサーバアプリケーション」に対応するオブジェクト識別子に書き換え、変換後の当該リクエストデータパケットを「選択したサーバアプリケーション」に転送するＮＡＴアプリケーション内の第２の手段とを有することを特徴とする分散オブジェクト通信負荷分散・多重化方式。
【請求項２】
通信対象のデータパケット内に通信先を示すアプリケーション固有のネットワーク情報が含まれている分散オブジェクト通信が行われるサーバ・クライアントネットワークシステムにおいて、
同一の機能を有する複数のサーバオブジェクトの各オブジェクト識別子を取得し、当該サーバオブジェクトに対応するＮＡＴ固有オブジェクト識別子を生成し、当該各オブジェクト識別子と当該ＮＡＴ固有オブジェクト識別子との対応情報であるオブジェクト識別子対応情報を作成・保持し、当該ＮＡＴ固有オブジェクト識別子をクライアントアプリケーションに通知するＮＡＴアプリケーション内のオブジェクト識別子対応情報作成手段と、
同一の機能を有する複数のサーバアプリケーションを監視しており、クライアントアプリケーションからＮＡＴ固有オブジェクト識別子を有するリクエストデータパケットを受信した際に、当該各サーバアプリケーションの負荷状況や稼動状態を考慮して、あらかじめ設定されている選択基準に基づき、当該リクエストデータパケットの転送先として適切なサーバアプリケーションを選択し、「選択したサーバアプリケーション」を通信先とするように当該リクエストデータパケット内のＴＣＰ層のネットワークアドレスの変換を行った上で、アプリケーション層のネットワーク情報の変換として前記オブジェクト識別子対応情報を参照し当該リクエストデータパケット内のＮＡＴ固有オブジェクト識別子を「選択したサーバアプリケーション」に対応するオブジェクト識別子に書き換え、変換後の当該リクエストデータパケットを「選択したサーバアプリケーション」に転送するＮＡＴアプリケーション内のデータパケット変換・通信手段と
を有することを特徴とする分散オブジェクト通信負荷分散・多重化方式。
【請求項３】
通信対象のデータパケット内に通信先を示すアプリケーション固有のネットワーク情報が含まれている分散オブジェクト通信が行われるサーバ・クライアントネットワークシステムにおいて、
同一の機能を有する複数のサーバオブジェクトの各オブジェクト識別子を取得し、当該サーバオブジェクトに対応するＮＡＴ固有オブジェクト識別子を生成し、当該各オブジェクト識別子と当該ＮＡＴ固有オブジェクト識別子との対応情報であるオブジェクト識別子対応情報を作成・保持し、当該ＮＡＴ固有オブジェクト識別子をオブジェクト検索サーバに通知・登録するＮＡＴアプリケーション内のオブジェクト識別子対応情報作成・検索サーバ登録手段と、
同一の機能を有する複数のサーバアプリケーションを監視しており、クライアントアプリケーションがオブジェクト検索サーバを利用して取得したＮＡＴ固有オブジェクト識別子を有するリクエストデータパケットを当該クライアントアプリケーションから受信した際に、当該各サーバアプリケーションの負荷状況や稼動状態を考慮して、あらかじめ設定されている選択基準に基づき、当該リクエストデータパケットの転送先として適切なサーバアプリケーションを選択し、「選択したサーバアプリケーション」を通信先とするように当該リクエストデータパケット内のＴＣＰ層のネットワークアドレスの変換を行った上で、アプリケーション層のネットワーク情報の変換として前記オブジェクト識別子対応情報を参照し当該リクエストデータパケット内のＮＡＴ固有オブジェクト識別子を「選択したサーバアプリケーション」に対応するオブジェクト識別子に書き換え、変換後の当該リクエストデータパケットを「選択したサーバアプリケーション」に転送するＮＡＴアプリケーション内のデータパケット変換・通信手段と
を有することを特徴とする分散オブジェクト通信負荷分散・多重化方式。
【請求項４】
ＮＡＴアプリケーションが転送先のサーバアプリケーションを選択する際の選択基準として、「その時点で負荷が一番少ないサーバアプリケーションを選択するという基準」，「クライアントアプリケーションからのリクエストを受けられる可能性があるかという問い合わせに最初に返答したサーバアプリケーションを選択するという基準」，「計算機スペックを考慮した際の処理能力の余裕度が高いサーバアプリケーションを選択するという基準」，「現在支障なく稼働しているサーバアプリケーションを選択するという基準」，および「メンテナンスを理由として停止する予定がないサーバアプリケーションを選択するという基準」の１以上の組合せを採用することを特徴とする請求項１，請求項２，または請求項３記載の分散オブジェクト通信負荷分散・多重化方式。
【請求項５】
適用対象の分散オブジェクト通信が「ＩＩＯＰによる分散オブジェクト通信」であり、「オブジェクト識別子」という用語を「ＩＯＲ」という用語に読み替えることを特徴とする請求項１，請求項２，請求項３，または請求項４記載の分散オブジェクト通信負荷分散・多重化方式。
【請求項６】
通信対象のデータパケット内に通信先を示すアプリケーション固有のネットワーク情報が含まれている分散オブジェクト通信が行われるサーバ・クライアントネットワークシステムにおいて、
ＮＡＴ装置を、同一の機能を有する複数のサーバオブジェクトの各オブジェクト識別子を取得し、当該サーバオブジェクトに対応するＮＡＴ固有オブジェクト識別子を生成し、当該各オブジェクト識別子と当該ＮＡＴ固有オブジェクト識別子との対応情報であるオブジェクト識別子対応情報を作成・保持し、当該ＮＡＴ固有オブジェクト識別子をクライアントアプリケーションに通知するＮＡＴアプリケーション内のオブジェクト識別子対応情報作成手段，および同一の機能を有する複数のサーバアプリケーションを監視しており、クライアントアプリケーションからＮＡＴ固有オブジェクト識別子を有するリクエストデータパケットを受信した際に、当該各サーバアプリケーションの負荷状況や稼動状態を考慮して、あらかじめ設定されている選択基準に基づき、当該リクエストデータパケットの転送先として適切なサーバアプリケーションを選択し、「選択したサーバアプリケーション」を通信先とするように当該リクエストデータパケット内のＴＣＰ層のネットワークアドレスの変換を行った上で、アプリケーション層のネットワーク情報の変換として前記オブジェクト識別子対応情報を参照し当該リクエストデータパケット内のＮＡＴ固有オブジェクト識別子を「選択したサーバアプリケーション」に対応するオブジェクト識別子に書き換え、変換後の当該リクエストデータパケットを「選択したサーバアプリケーション」に転送するＮＡＴアプリケーション内のデータパケット変換・通信手段として機能させるためのプログラムを記録した記録媒体。
【請求項７】
通信対象のデータパケット内に通信先を示すアプリケーション固有のネットワーク情報が含まれている分散オブジェクト通信が行われるサーバ・クライアントネットワークシステムにおいて、
ＮＡＴ装置を、同一の機能を有する複数のサーバオブジェクトの各オブジェクト識別子を取得し、当該サーバオブジェクトに対応するＮＡＴ固有オブジェクト識別子を生成し、当該各オブジェクト識別子と当該ＮＡＴ固有オブジェクト識別子との対応情報であるオブジェクト識別子対応情報を作成・保持し、当該ＮＡＴ固有オブジェクト識別子をオブジェクト検索サーバに通知・登録するＮＡＴアプリケーション内のオブジェクト識別子対応情報作成・検索サーバ登録手段，および同一の機能を有する複数のサーバアプリケーションを監視しており、クライアントアプリケーションがオブジェクト検索サーバを利用して取得したＮＡＴ固有オブジェクト識別子を有するリクエストデータパケットを当該クライアントアプリケーションから受信した際に、当該各サーバアプリケーションの負荷状況や稼動状態を考慮して、あらかじめ設定されている選択基準に基づき、当該リクエストデータパケットの転送先として適切なサーバアプリケーションを選択し、「選択したサーバアプリケーション」を通信先とするように当該リクエストデータパケット内のＴＣＰ層のネットワークアドレスの変換を行った上で、アプリケーション層のネットワーク情報の変換として前記オブジェクト識別子対応情報を参照し当該リクエストデータパケット内のＮＡＴ固有オブジェクト識別子を「選択したサーバアプリケーション」に対応するオブジェクト識別子に書き換え、変換後の当該リクエストデータパケットを「選択したサーバアプリケーション」に転送するＮＡＴアプリケーション内のデータパケット変換・通信手段として機能させるためのプログラムを記録した記録媒体。
【請求項８】
適用対象の分散オブジェクト通信が「ＩＩＯＰによる分散オブジェクト通信」であり、「オブジェクト識別子」という用語を「ＩＯＲ」という用語に読み替えることを特徴とする請求項６または請求項７記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アプリケーション間（サーバアプリケーションとクライアントアプリケーションとの間）の通信に「通信対象のデータパケット内に通信先を示すアプリケーション固有のネットワーク情報が含まれている分散オブジェクト通信」を採用した場合でもサーバアプリケーションの負荷分散や多重化を実現する分散オブジェクト通信負荷分散・多重化方式（負荷分散や多重化のためにクライアントアプリケーションの通信先であるサーバアプリケーションが複数配置されているサーバ・クライアントネットワークシステムにおける分散オブジェクト通信負荷分散・多重化方式）に関する。なお、本発明で想定される分散オブジェクト通信として最も一般的なものは、「ＩＩＯＰ（Ｉｎｔｅｒｎｅｔ  Ｉｎｔｅｒ−ＯＲＢ  Ｐｒｏｔｏｃｏｌ）による分散オブジェクト通信」である。
【０００２】
【従来の技術】
インターネット上の商取引等を実現するためには、サーバアプリケーションとクライアントアプリケーションとの間のアプリケーション間通信が行われる。
【０００３】
ここで、インターネット上での商取引の増加や普及に伴って、サーバアプリケーションで必要とされる処理の量も増加している。サービスの質を高く保つためには、サーバ（サーバ計算機）を複数個にして負荷を分散し、サービス速度を向上させる仕組みが必要となる。
【０００４】
また、サービスの質の他の側面として、故障等の障害や整備（メンテナンス）等の理由によるサービス中断時間の発生をなるべく少なくすることも重要である。この観点からも、サーバを複数個にして多重化し、サーバ群のうちのいくつかがサービスを中断していても残りのサーバでサービスを中断することなく提供し続けることが、サービスの質の向上として求められるところである。
【０００５】
上記のような要求に応じるために、インターネット上での商取引等に使用されるアプリケーションシステムにおいて、上記の「発明の属する技術分野」で述べた「分散オブジェクト通信負荷分散・多重化方式」が必要となっている。
【０００６】
従来、この種の分散オブジェクト通信負荷分散・多重化方式では、一般的に、ＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｅｒｖｉｃｅ）の機能を流用した分散オブジェクト通信の負荷分散や多重化が行われている。
【０００７】
また、従来から、ＣＯＲＢＡ（Ｃｏｍｍｏｎ  Ｏｂｊｅｃｔ  ＲｅｑｕｅｓｔＢｒｏｋｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ）のオブジェクト検索サーバでも、サーバアプリケーションの負荷分散・多重化方式が規定されており、その標準化が行われている。
【０００８】
【発明が解決しようとする課題】
上述した従来の技術には、以下に示すような問題点があった。
【０００９】
まず、ＤＮＳの機能を流用した分散オブジェクト通信負荷分散・多重化方式では、クライアントアプリケーションが通信先／リクエストの送信先を決定する際に負荷分散・多重化のために複数のサーバのどれを選択するかを決めているので、実際の通信時にサーバが停止していて通信エラーが発生する場合があるという問題点があった。
【００１０】
また、この方式の場合には、ある一定の静的規則に従ってサーバ群の中から各サーバに処理が割り振られているので、その時々のサーバの負荷に逐次応じて割り振りを変えるような最適な負荷分散を実現することが難しいという問題点もあった。
【００１１】
一方、ＣＯＲＢＡのオブジェクト検索サーバで規定・標準化されているサーバアプリケーションの負荷分散・多重化方式でも、前述のＤＮＳの機能を流用した分散オブジェクト通信負荷分散・多重化方式と同様に、実際の通信発生時のサーバアプリケーションの負荷状況や稼働状態に動的に応じて割り振ることが難しいという問題点があった。また、「標準化された負荷分散・多重化方式」では、処理速度に問題があることが認識されている。
【００１２】
ところで、従来より、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｏｒ，ネットワークアドレス変換方式）によるサーバの負荷分散・多重化が行われている。しかしながら、このような「ＮＡＴによるサーバの負荷分散・多重化方式」は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）層のネットワークアドレスを変換することで実現されていたので、通信対象のデータパケット内にアプリケーション固有のネットワーク情報が含まれている場合の分散オブジェクト通信に対してこの方式を適用しようとする場合には、このネットワーク情報が変換されず、従来技術においては負荷分散や多重化を適切に実現することができなかった。
【００１３】
本発明の目的は、上述の点に鑑み、通信対象のデータパケット内にアプリケーション固有のネットワーク情報が含まれている場合の分散オブジェクト通信（最も想定されるのは、ＩＩＯＰを使用した分散オブジェクト通信）において、ＮＡＴ装置（ＮＡＴアプリケーション）によって負荷分散・多重化の機能を実現することにより、上記の問題点を解決することができる分散オブジェクト通信負荷分散・多重化方式を提供することにある。
【００１４】
ここで、このような分散オブジェクト通信負荷分散・多重化方式を実現するに際して、サーバを複数個にする場合には、クライアント側にはサーバを複数化したことを意識させず、サービスを使用するユーザやユーザアプリケーション開発者の負荷を減らすために、クライアントアプリケーション側における改変の必要のないことが望ましい。また、複数化したサーバへの通信とそうでないサーバへの通信とを一貫して行うためにも、クライアントアプリケーション側における改変の必要のないことが望ましい。本発明の分散オブジェクト通信負荷分散・多重化方式は、このような要請にも対処できる方式となっている。
【００１５】
なお、本発明の分散オブジェクト通信負荷分散・多重化方式に対する従来技術に関する特許公報としては、サーバ・クライアントネットワークシステムにおける分散オブジェクト通信や負荷分散を考察している点で本発明と類似している「特開２０００−０４７８９０号公報」および「特開平１１−３３８８３６号公報」が存在する。
【００１６】
しかし、上記の各公報に記載された技術（「分散オブジェクト管理システムとそのオブジェクト選択方法およびその処理プログラムを記録した記録媒体」および「コンピュータネットワークの負荷分散システム」）は、ＮＡＴの考え方による分散オブジェクト通信の負荷分散・多重化に関する技術ではなく、本発明とは構成を異にするものである。
【００１７】
【課題を解決するための手段】
本発明の分散オブジェクト通信負荷分散・多重化方式は、通信対象のデータパケット内に通信先を示すアプリケーション固有のネットワーク情報が含まれている分散オブジェクト通信（ＩＩＯＰによる分散オブジェクト通信等）が行われるサーバ・クライアントネットワークシステムにおいて、同一の機能を有する複数のサーバオブジェクトの各オブジェクト識別子を取得し、当該サーバオブジェクトに対応するＮＡＴ固有オブジェクト識別子（当該サーバオブジェクトのオブジェクト識別子としてＮＡＴアプリケーションが固有に設定するオブジェクト識別子）を生成し、当該各オブジェクト識別子と当該ＮＡＴ固有オブジェクト識別子との対応情報であるオブジェクト識別子対応情報を作成・保持し、当該ＮＡＴ固有オブジェクト識別子をクライアントアプリケーションに通知するＮＡＴアプリケーション内のオブジェクト識別子対応情報作成手段と、同一の機能を有する複数のサーバアプリケーションを監視しており、クライアントアプリケーションからＮＡＴ固有オブジェクト識別子を有するリクエストデータパケットを受信した際に、当該各サーバアプリケーションの負荷状況や稼動状態を考慮して、あらかじめ設定されている選択基準に基づき、当該リクエストデータパケットの転送先として適切なサーバアプリケーションを選択し、「選択したサーバアプリケーション」を通信先とするように当該リクエストデータパケット内のＴＣＰ層のネットワークアドレスの変換を行った上で、アプリケーション層のネットワーク情報の変換として前記オブジェクト識別子対応情報を参照し当該リクエストデータパケット内のＮＡＴ固有オブジェクト識別子を「選択したサーバアプリケーション」に対応するオブジェクト識別子に書き換え、変換後の当該リクエストデータパケットを「選択したサーバアプリケーション」に転送するＮＡＴアプリケーション内のデータパケット変換・通信手段とを有する。
【００１８】
また、本発明の分散オブジェクト通信負荷分散・多重化方式は、通信対象のデータパケット内に通信先を示すアプリケーション固有のネットワーク情報が含まれている分散オブジェクト通信が行われるサーバ・クライアントネットワークシステムにおいて、同一の機能を有する複数のサーバオブジェクトの各オブジェクト識別子を取得し、当該サーバオブジェクトに対応するＮＡＴ固有オブジェクト識別子を生成し、当該各オブジェクト識別子と当該ＮＡＴ固有オブジェクト識別子との対応情報であるオブジェクト識別子対応情報を作成・保持し、当該ＮＡＴ固有オブジェクト識別子をオブジェクト検索サーバに通知・登録するＮＡＴアプリケーション内のオブジェクト識別子対応情報作成・検索サーバ登録手段と、同一の機能を有する複数のサーバアプリケーションを監視しており、クライアントアプリケーションがオブジェクト検索サーバを利用して取得したＮＡＴ固有オブジェクト識別子を有するリクエストデータパケットを当該クライアントアプリケーションから受信した際に、当該各サーバアプリケーションの負荷状況や稼動状態を考慮して、あらかじめ設定されている選択基準に基づき、当該リクエストデータパケットの転送先として適切なサーバアプリケーションを選択し、「選択したサーバアプリケーション」を通信先とするように当該リクエストデータパケット内のＴＣＰ層のネットワークアドレスの変換を行った上で、アプリケーション層のネットワーク情報の変換として前記オブジェクト識別子対応情報を参照し当該リクエストデータパケット内のＮＡＴ固有オブジェクト識別子を「選択したサーバアプリケーション」に対応するオブジェクト識別子に書き換え、変換後の当該リクエストデータパケットを「選択したサーバアプリケーション」に転送するＮＡＴアプリケーション内のデータパケット変換・通信手段とを有するように構成することも可能である。
【００１９】
なお、本発明の分散オブジェクト通信負荷分散・多重化方式は、より一般的には、通信対象のデータパケット内に通信先を示すアプリケーション固有のネットワーク情報が含まれている分散オブジェクト通信が行われるサーバ・クライアントネットワークシステムにおいて、同一の機能を有する複数のサーバオブジェクトの各オブジェクト識別子を取得し、当該サーバオブジェクトに対応するＮＡＴ固有オブジェクト識別子を生成し、当該ＮＡＴ固有オブジェクト識別子をクライアントアプリケーションが認識できるようにするＮＡＴアプリケーション内の第１の手段と、同一の機能を有する複数のサーバアプリケーションを監視しており、クライアントアプリケーションからＮＡＴ固有オブジェクト識別子を有するリクエストデータパケットを受信した際に、当該各サーバアプリケーションの負荷状況や稼動状態を考慮して、あらかじめ設定されている選択基準に基づき、当該リクエストデータパケットの転送先として適切なサーバアプリケーションを選択し、「選択したサーバアプリケーション」を通信先とするように当該リクエストデータパケット内のＴＣＰ層のネットワークアドレスの変換を行った上で、アプリケーション層のネットワーク情報の変換として当該リクエストデータパケット内のＮＡＴ固有オブジェクト識別子を「選択したサーバアプリケーション」に対応するオブジェクト識別子に書き換え、変換後の当該リクエストデータパケットを「選択したサーバアプリケーション」に転送するＮＡＴアプリケーション内の第２の手段とを有する構成であると表現することができる。
【００２０】
【発明の実施の形態】
次に、本発明について図面を参照して詳細に説明する。
【００２１】
（１）  第１の実施の形態
【００２２】
図１は、本発明の第１の実施の形態に係る分散オブジェクト通信負荷分散・多重化方式の構成を示すブロック図である。
【００２３】
図１を参照すると、本実施の形態に係る分散オブジェクト通信負荷分散・多重化方式は、負荷分散・多重化のために複数設けられたサーバ計算機１０，サーバ計算機２０，およびサーバ計算機３０（サーバ計算機の数が３に限定されるものでないことはいうまでもない）と、これらのサーバ計算機１０，２０，および３０と通信を行うクライアント計算機４０と、サーバ計算機１０，２０，および３０とクライアント計算機４０との間の通信を仲介するＮＡＴ装置５０と、サーバ計算機１０，２０，および３０とＮＡＴ装置５０とを接続するネットワーク１００（例えば、イントラネット）と、クライアント計算機４０とＮＡＴ装置５０とを接続するネットワーク２００（例えば、インターネット）とを含んで構成されている。
【００２４】
サーバ計算機１０上には、サーバアプリケーション１が配置されている。同様に、サーバ計算機２０およびサーバ計算機３０上には、サーバアプリケーション２およびサーバアプリケーション３が配置されている。
【００２５】
一方、クライアント計算機４０上には、クライアントアプリケーション４が配置されている。
【００２６】
また、ＮＡＴ装置５０上には、ＮＡＴアプリケーション５が配置されている。サーバアプリケーション１，２，および３とクライアントアプリケーション４とは、ＮＡＴアプリケーション５を介して通信を行う。
【００２７】
ＮＡＴアプリケーション５は、ＩＯＲ（Ｉｎｔｅｒｏｐｅｒａｂｌｅ  Ｏｂｊｅｃｔ  Ｒｅｆｅｒｅｎｃｅ）対応情報５１と、ＩＯＲ対応情報作成手段５２と、データパケット変換・通信手段５３とを含んで構成されている。
【００２８】
本実施の形態に係る分散オブジェクト通信負荷分散・多重化方式は、このような構成により、サーバアプリケーション１，２，および３とクライアントアプリケーション４との間におけるＩＩＯＰを使用した分散オブジェクト通信において、ＮＡＴアプリケーション５により負荷分散・多重化を実現している。
【００２９】
図２は、本実施の形態に係る分散オブジェクト通信負荷分散・多重化方式におけるＩＯＲ対応情報作成処理を示す流れ図である。この処理は、サーバオブジェクト作成ステップ２０１と、ＩＯＲ生成ステップ２０２と、ＩＯＲ群取得ステップ２０３と、ＮＡＴ固有ＩＯＲ生成ステップ２０４と、ＩＯＲ対応情報作成・保持ステップ２０５と、ＮＡＴ固有ＩＯＲ通知ステップ２０６とからなる。
【００３０】
図３は、本実施の形態に係る分散オブジェクト通信負荷分散・多重化方式における分散オブジェクト通信実行処理を示す流れ図である。この処理は、ＩＩＯＰリクエストデータパケット送信ステップ３０１と、ＩＩＯＰリクエストデータパケット受信ステップ３０２と、転送先サーバオブジェクト選択ステップ３０３と、ＴＣＰ層ネットワークアドレス変換ステップ３０４と、ＩＯＲ変換ステップ３０５と、変換後ＩＩＯＰリクエストデータパケット送信ステップ３０６とからなる。
【００３１】
図４は、本実施の形態に係る分散オブジェクト通信負荷分散・多重化方式の具体的な動作を説明するためのブロック図である。
【００３２】
次に、図１〜図４を参照して、上記のように構成された本実施の形態に係る分散オブジェクト通信負荷分散・多重化方式の全体の動作について詳細に説明する。
【００３３】
第１に、ＩＯＲ対応情報作成処理時の動作について説明する（図２参照）。
【００３４】
一般に、分散オブジェクト通信では、サーバアプリケーションは、実際に処理を行うサーバオブジェクトを作り出して待機し、クライアントアプリケーションは、通信によってサーバオブジェクトを呼び出し、処理を依頼する（すなわち、リクエストを発行する）。以下では、サーバアプリケーションｘ（ｘ＝１〜３）によって作成されたサーバオブジェクトを「サーバオブジェクト｛ｘ｝」と表記する（例えば、サーバアプリケーション１によってサーバオブジェクト｛１｝が作り出される）。
【００３５】
まず、サーバアプリケーション１は、サーバオブジェクト｛１｝を作成し（ステップ２０１）、その作成時にそのサーバオブジェクト｛１｝を識別するためのＩＯＲ（オブジェクト識別子）を生成する（このＩＯＲを図１および図４に示すようにＩＯＲ（ａ）とする）（ステップ２０２）。
【００３６】
サーバアプリケーション２およびサーバアプリケーション３も、同様に、サーバオブジェクト｛２｝およびサーバオブジェクト｛３｝を作成し（ステップ２０１）、当該サーバオブジェクト｛２｝およびサーバオブジェクト｛３｝を識別するためのＩＯＲを生成する（これらのＩＯＲを図１および図４に示すようにＩＯＲ（ｂ）およびＩＯＲ（ｃ）とする）（ステップ２０２）。
【００３７】
これらのサーバオブジェクト｛１｝，｛２｝，および｛３｝（サーバアプリケーション１，２，および３によって作成されたサーバオブジェクト）は、負荷分散・多重化のために作成された同じ機能を持つサーバオブジェクト群である。
【００３８】
ＮＡＴアプリケーション５内のＩＯＲ対応情報作成手段５２は、サーバオブジェクト｛１｝，サーバオブジェクト｛２｝，およびサーバオブジェクト｛３｝のＩＯＲ（ａ），ＩＯＲ（ｂ），およびＩＯＲ（ｃ）をネットワーク１００を介して取得し（図４中の矢線Ａ参照）（ステップ２０３）、それらのサーバオブジェクト群に対応する固有のＩＯＲ（「ＮＡＴ固有ＩＯＲ」と呼ぶ。このＮＡＴ固有ＩＯＲを図１および図４に示すようにＩＯＲ（ｅ）とする）を生成する（ステップ２０４）。
【００３９】
また、ＩＯＲ対応情報作成手段５２は、当該サーバオブジェクトについて、ＮＡＴ固有ＩＯＲ（ここでは、ＩＯＲ（ｅ））と、関連するＩＯＲ群（負荷分散・多重化のために複数生成された各サーバオブジェクトの各ＩＯＲの集合。ここでは、ＩＯＲ（ａ），ＩＯＲ（ｂ），およびＩＯＲ（ｃ））との対応付けを示すＩＯＲ対応情報５１を作成し、そのＩＯＲ対応情報５１を保持する（ステップ２０５）。
【００４０】
ここで、ＩＯＲ（ａ），ＩＯＲ（ｂ），およびＩＯＲ（ｃ）は、それぞれサーバ計算機１０，サーバ計算機２０，およびサーバ計算機３０のホストアドレスおよびポート番号等のネットワーク情報を含んでいる。また、ＩＯＲ（ｅ）は、ＮＡＴ装置５０のホストアドレスおよびポート番号等のネットワーク情報を含んでいる。
【００４１】
ＮＡＴアプリケーション５内のＩＯＲ対応情報作成手段５２は、クライアントアプリケーション４にサーバオブジェクト｛１｝，｛２｝，または｛３｝によって実現されるサーバオブジェクトのＩＯＲを通知する際には、自己が作成したＮＡＴ固有ＩＯＲ（ここでは、ＩＯＲ（ｅ））を通知する。すなわち、ＩＯＲ対応情報作成手段５２は、ＩＯＲ（ｅ）を、ネットワーク２００を介してクライアントアプリケーション４に送信する（図４中の矢線Ｂ参照）（ステップ２０６）。このようにして、クライアントアプリケーション４は、サーバオブジェクトを識別するための情報として、ＮＡＴ固有ＩＯＲを認識できるようになる。
【００４２】
第２に、分散オブジェクト通信実行処理時の動作について説明する（図３参照）。
【００４３】
クライアントアプリケーション４は、サーバオブジェクト｛１｝，｛２｝，または｛３｝によって実現されるサーバオブジェクトに対してＩＩＯＰによる分散オブジェクト通信を行う際に、ＮＡＴ固有ＩＯＲであるＩＯＲ（ｅ）を当該サーバオブジェクトのＩＯＲ（オブジェクト識別子）として使用して、ＩＩＯＰリクエストを発行する（図４中の矢線Ｃ参照）。具体的には、ＩＯＲ（ｅ）を含むＩＩＯＰリクエストデータパケットを、ネットワーク２００を介してＮＡＴ装置５０内のＮＡＴアプリケーション５に送信する（ステップ３０１）。
【００４４】
ＮＡＴアプリケーション５内のデータパケット変換・通信手段５３は、一旦、ステップ３０１で発行された当該ＩＩＯＰリクエストを受け取る（当該ＩＩＯＰリクエストデータパケットを受信する）（ステップ３０２）。
【００４５】
データパケット変換・通信手段５３は、各サーバアプリケーション１，２，および３を監視しており、上記（図４中の矢線Ｃ参照）のようにクライアントアプリケーション４からのＩＩＯＰリクエストデータパケットを受信した時に、各サーバアプリケーション１，２，および３の負荷状況や稼働状態に応じ、一定の選択基準（方針）に基づいて、サーバオブジェクト｛１｝，｛２｝，および｛３｝（同一の機能を有する複数のサーバオブジェクト）の中から当該ＩＩＯＰリクエストデータパケットの転送先として適切なサーバオブジェクトを選択する（ステップ３０３）。
【００４６】
ここで、この選択基準（方針）としては、「その時点で負荷が一番少ないサーバアプリケーションを選択するという基準」，「クライアントアプリケーションからのリクエストを受けられる可能性があるかという問い合わせに最初に返答したサーバアプリケーションを選択するという基準」，「計算機スペックを考慮した際の処理能力の余裕度が高いサーバアプリケーションを選択するという基準」，「現在支障なく稼働しているサーバアプリケーション（故障懸案が少ないサーバアプリケーション）を選択するという基準」，および「メンテナンスを理由として停止する予定がないサーバアプリケーションを選択するという基準」の１以上の組合せを採用することが考えられる。ただし、採用しうる選択基準が上記の例に限られるものでないことはいうまでもない。
【００４７】
なお、ここでは、サーバオブジェクト｛３｝が転送先のサーバオブジェクトとして選択されるものと仮定する。
【００４８】
ＮＡＴアプリケーション５内のデータパケット変換・通信手段５３は、当該ＩＩＯＰリクエストデータパケット中のＴＣＰ層のネットワークアドレスを、ＮＡＴ装置５０を示すネットワークアドレスから、ステップ３０３で選択されたサーバオブジェクト（ここでは、サーバオブジェクト｛３｝）を生成したサーバアプリケーション（ここでは、サーバアプリケーション３）が配置されているサーバ計算機３０を示すネットワークアドレスに変換する（ステップ３０４）。
【００４９】
さらに、データパケット変換・通信手段５３は、アプリケーション層のネットワーク情報の変換として、ＩＯＲ対応情報５１を参照し、当該ＩＩＯＰリクエストデータパケット中のＩＯＲを、ＮＡＴ固有ＩＯＲ（ここでは、ＩＯＲ（ｅ））から、ステップ３０３で選択されたサーバオブジェクトのＩＯＲ（ここでは、サーバオブジェクト｛３｝のＩＯＲ（ｃ））に変換する（ステップ３０５）。
【００５０】
データパケット変換・通信手段５３は、上記のステップ３０４およびステップ３０５における変換後のＩＩＯＰリクエストデータパケットをネットワーク１００上に送出する（ステップ３０６）。
【００５１】
これにより、当該ＩＩＯＰリクエストデータパケットは、ステップ３０４の変換後のネットワークアドレス（ここでは、サーバ計算機３０のネットワークアドレス）およびステップ３０５の変換後のＩＯＲ（ここでは、ＩＯＲ（ｃ））で識別されるサーバアプリケーション３に転送される（図４中の矢線Ｄ参照）。
【００５２】
（２）  第２の実施の形態
【００５３】
図５は、本発明の第２の実施の形態に係る分散オブジェクト通信負荷分散・多重化方式の構成を示すブロック図である。
【００５４】
図５を参照すると、本実施の形態に係る分散オブジェクト通信負荷分散・多重化方式は、負荷分散・多重化のために複数設けられたサーバ計算機１０，サーバ計算機２０，およびサーバ計算機３０（サーバ計算機の数が３に限定されるものでないことはいうまでもない）と、これらのサーバ計算機１０，２０，および３０と通信を行うクライアント計算機４０と、サーバ計算機１０，２０，および３０とクライアント計算機４０との間の通信を仲介するＮＡＴ装置５０と、検索サーバ計算機６０と、サーバ計算機１０，２０，および３０とＮＡＴ装置５０とを接続するネットワーク１００（例えば、イントラネット）と、クライアント計算機４０とＮＡＴ装置５０と検索サーバ計算機６０とを接続するネットワーク２００（例えば、インターネット）とを含んで構成されている。
【００５５】
サーバ計算機１０上には、サーバアプリケーション１が配置されている。同様に、サーバ計算機２０およびサーバ計算機３０上には、サーバアプリケーション２およびサーバアプリケーション３が配置されている。
【００５６】
一方、クライアント計算機４０上には、クライアントアプリケーション４が配置されている。
【００５７】
また、ＮＡＴ装置５０上には、ＮＡＴアプリケーション５が配置されている。サーバアプリケーション１，２，および３とクライアントアプリケーション４とは、ＮＡＴアプリケーション５を介して通信を行う。
【００５８】
ＮＡＴアプリケーション５は、ＩＯＲ対応情報５１と、データパケット変換・通信手段５３と、ＩＯＲ対応情報作成・検索サーバ登録手段５４とを含んで構成されている。
【００５９】
ＣＯＲＢＡでは、処理に必要なオブジェクトのＩＯＲ等の情報をネットワーク上で共有し探し出すための名前サービス等を提供するオブジェクト検索サーバが標準化されている。
【００６０】
そこで、本発明の分散オブジェクト通信負荷分散・多重化方式においても、このオブジェクト検索サーバを使用し、図５に示すように、検索サーバ計算機６０上にオブジェクト検索サーバ６を設置することが考えられる。本実施の形態は、このオブジェクト検索サーバ６を実行することによって、クライアントアプリケーション４がリクエスト先のサーバオブジェクトのＮＡＴ固有ＩＯＲを検索・取得（認識）できるようにしている。
【００６１】
図６は、本実施の形態に係る分散オブジェクト通信負荷分散・多重化方式の具体的な動作を説明するためのブロック図である。
【００６２】
次に、図５および図６を参照して、上記のように構成された本実施の形態に係る分散オブジェクト通信負荷分散・多重化方式の全体の動作について説明する。なお、ここでは、主に、第１の実施の形態に係る分散オブジェクト通信負荷分散・多重化方式の動作とは異なる動作を説明する。
【００６３】
本実施の形態の場合においても、ＮＡＴアプリケーション５内のＩＯＲ対応情報作成・検索サーバ登録手段５４は、第１の実施の形態におけるＩＯＲ対応情報作成手段５２と同様に、図２中のステップ２０１〜ステップ２０５の処理を行う（図６中の矢線Ａも参照のこと）。
【００６４】
その上で、本実施の形態の場合には、ＩＯＲ対応情報作成・検索サーバ登録手段５４は、ＩＯＲ対応情報作成手段５２による図２中のステップ２０６の処理（クライアントオブジェクト４にＮＡＴ固有ＩＯＲを通知する処理）の代わりに、そのＮＡＴ固有ＩＯＲを示す情報（例えば、図５および図６におけるサーバオブジェクト｛１｝，｛２｝，または｛３｝によって実現されるサーバオブジェクトのＮＡＴ固有ＩＯＲがＩＯＲ（ｅ）である旨」を示す情報）を検索サーバ計算機６０上のオブジェクト検索サーバ６に通知・登録する（図６中の矢線Ｂ’参照）。このようにして、クライアントアプリケーション４は、オブジェクト検索サーバ６を介し、サーバオブジェクトを識別するための情報として、ＮＡＴ固有ＩＯＲを認識できるようになる。
【００６５】
これにより、分散オブジェクト通信実行処理時に、クライアント計算機４０上のクライアントアプリケーション４は、オブジェクト検索サーバ６を利用して（図６中の矢線Ｃ’参照）、リクエスト先のサーバオブジェクト（ここでは、サーバオブジェクト｛１｝，｛２｝，または｛３｝によって実現されるサーバオブジェクト）のＮＡＴ固有ＩＯＲとしてＩＯＲ（ｅ）を得て（図６中の矢線Ｃ’’参照）、図３中のステップ３０１におけるＩＩＯＰリクエストの発行（ＩＩＯＰリクエストデータパケットの送信）を行う（図６中の矢線Ｃ’’’参照）。
【００６６】
以降、本実施の形態においても、第１の実施の形態における図３に示す処理と同様の処理が行われる。
【００６７】
すなわち、ＮＡＴアプリケーション５内のデータパケット変換・通信手段５３は、ＮＡＴ固有ＩＯＲを含むＩＩＯＰリクエストデータパケット（ここでは、ＩＯＲ（ｅ）を含むＩＩＯＰリクエストデータパケット）を受信し（図６中の矢線Ｃ’’’参照）、第１の実施の形態における場合と同様に、負荷分散・多重化の観点で適切なサーバアプリケーション（ここでは、サーバアプリケーション３とする）に当該ＩＩＯＰリクエストデータパケット（ＩＯＲ（ｃ）を含むＩＩＯＰリクエストデータパケット）を転送する（図６中の矢線Ｄ参照）。
【００６８】
（３）  第３の実施の形態
【００６９】
図７は、本発明の第３の実施の形態に係る分散オブジェクト通信負荷分散・多重化方式の構成を示すブロック図である。
【００７０】
図７を参照すると、本発明の第３の実施の形態に係る分散オブジェクト通信負荷分散・多重化方式は、図１に示した第１の実施の形態に係る分散オブジェクト通信負荷分散・多重化方式に対して、負荷分散・多重化処理プログラムを記録した記録媒体７０を備える点が異なっている。この記録媒体７０は、磁気ディスク，半導体メモリ，その他の記録媒体であってよい。
【００７１】
負荷分散・多重化処理プログラムは、記録媒体７０からＮＡＴ装置５０に読み込まれ、当該ＮＡＴ装置５０の動作をＮＡＴアプリケーション５（ＩＯＲ対応情報５１，ＩＯＲ対応情報作成手段５２，およびデータパケット変換・通信手段５３）として制御する。負荷分散・多重化処理プログラムの制御によるＮＡＴアプリケーション５の動作（ＩＯＲ対応情報５１の存在を前提とするＩＯＲ対応情報作成手段５２およびデータパケット変換・通信手段５３の動作）は、第１の実施の形態におけるＮＡＴ装置５０上のＮＡＴアプリケーション５の動作と全く同様になるので、その詳しい説明を割愛する。
【００７２】
（４）  第４の実施の形態
【００７３】
図８は、本発明の第４の実施の形態に係る分散オブジェクト通信負荷分散・多重化方式の構成を示すブロック図である。
【００７４】
図８を参照すると、本発明の第４の実施の形態に係る分散オブジェクト通信負荷分散・多重化方式は、図５に示した第２の実施の形態に係る分散オブジェクト通信負荷分散・多重化方式に対して、負荷分散・多重化処理プログラムを記録した記録媒体８０を備える点が異なっている。この記録媒体８０は、磁気ディスク，半導体メモリ，その他の記録媒体であってよい。
【００７５】
負荷分散・多重化処理プログラムは、記録媒体８０からＮＡＴ装置５０に読み込まれ、当該ＮＡＴ装置５０の動作をＮＡＴアプリケーション５（ＩＯＲ対応情報５１，データパケット変換・通信手段５３，およびＩＯＲ対応情報作成・検索サーバ登録手段５４）として制御する。負荷分散・多重化処理プログラムの制御によるＮＡＴアプリケーション５の動作（ＩＯＲ対応情報５１の存在を前提とするデータパケット変換・通信手段５３およびＩＯＲ対応情報作成・検索サーバ登録手段５４の動作）は、第１の実施の形態におけるＮＡＴ装置５０上のＮＡＴアプリケーション５の動作と全く同様になるので、その詳しい説明を割愛する。
【００７６】
（５）  上記の実施の形態の拡張
【００７７】
上記の第１〜第４の実施の形態では、「ＩＩＯＰによる分散オブジェクト通信（ＩＩＯＰを使用した分散オブジェクト通信）」に本発明が適用される場合について述べた。しかし、本発明の分散オブジェクト通信負荷分散・多重化方式は、「ＩＩＯＰによる分散オブジェクト通信」への適用に限られず、「ＩＩＯＰ以外による分散オブジェクト通信」にも適用することが可能であり、また、そのような適用が有意義なものとなる。
【００７８】
すなわち、ＩＩＯＰ以外による分散オブジェクト通信においても、通信対象のデータパケット内に通信先を示すアプリケーション固有のネットワーク情報が含まれている場合には、従来のＮＡＴ装置によるものでは負荷分散・多重化は不可能である。本発明では、ＮＡＴ装置において、分散オブジェクト通信のアプリケーション層のネットワーク情報の内容（上記の各実施の形態では、ＩＩＯＰリクエストデータパケット内のＩＯＲ）も書き換えるという特徴を有しており、この特徴を援用して、ＩＩＯＰプロトコル以外による分散オブジェクト通信でも、ＩＩＯＰによる分散オブジェクト通信と同様に負荷分散・多重化を適切に実現することができる。
【００７９】
なお、この場合には、上記の第１〜第４の実施の形態における「ＩＩＯＰリクエスト」が「リクエスト」に該当し、「ＩＯＲ」が「オブジェクト識別子（ＩＯＲを含むより一般的な概念）」に該当することとなる（これにより、図１等における「ＩＯＲ対応情報５１」は「オブジェクト識別子対応情報」に該当することになり、図１等における「ＩＯＲ対応情報作成手段５２」は「オブジェクト識別子対応情報作成手段」に該当することになり、図５等における「ＩＯＲ対応情報作成・検索サーバ登録手段５４」は「オブジェクト識別子対応情報作成・検索サーバ登録手段」に該当することになる）。
【００８０】
【発明の効果】
以上説明したように、本発明によると、ＮＡＴ装置（ＮＡＴアプリケーション）を使用して、オブジェクト識別子対応情報（例えば、ＩＯＲ対応情報）に基づくリクエストデータパケットの変換制御を行うこと等により、分散オブジェクト通信において、負荷分散や多重化を適正かつ効率的に実現することができるという効果が生じる。
【００８１】
負荷分散に関しては、ＮＡＴは実際の通信が発生したときにサーバ計算機（サーバアプリケーション）への通信の割り振りを決定する方式であるため、クライアントアプリケーションからの分散オブジェクト通信は、ＮＡＴアプリケーションが複数のサーバオブジェクト（サーバアプリケーション）の負荷状況を監視しており、動的にリクエストを割り当てるサーバオブジェクトを決定することとなるので、適切なサーバオブジェクトにリクエストを転送することができる（実際の状況に応じた、より適切な負荷分散を行うことが可能となる）。
【００８２】
多重化に関しては、ＮＡＴアプリケーションが各サーバの稼働状態をその時々逐次監視しているため、サーバオブジェクトが稼働するサーバ計算機群のうちいくつかが異常またはメンテナンス等のなんらかの原因で停止した際にも、正常に動作しているサーバオブジェクトを選択してリクエストを転送することができる（実際の状態に応じた、より適切な多重化を行うことが可能となる）。
【００８３】
また、ＮＡＴ装置は高速に通信の仲介を行う装置であるので、ＮＡＴ装置を使用する本発明の分散オブジェクト通信負荷分散・多重化方式は、類似の負荷分散・多重化方式と比較して処理が高速となる点で有利である。
【００８４】
ここで、ＮＡＴ装置は、一般に、ネットワークを組織内外（例えば、社内・社外）や複数部署間等で複数の領域に分割している構成の場合に、異なる領域間の通信を高速に仲介する装置として、既に広く用いられているものである。本発明は、このような既に普及しているＮＡＴ装置を利用して負荷分散・多重化を行うものであり、本発明の考え方の導入のために、新たな装置や専用の装置を導入する必要がない点でも有利である。
【００８５】
なお、これらの負荷分散・多重化に関して、クライアントアプリケーションはなんら特別な操作を必要としない。また、この方式を適用するためには、この方式を適用しない場合と比較して、クライアントアプリケーションには何の改変も加える必要がない。さらに、この方式を適用したＮＡＴ装置を介したサーバへの通信も、そうでない通信も、全く同一のアプリケーションで実行できる。このように、本発明は、クライアントアプリケーションやサーバアプリケーションに特別の改変処理を必要としない点でも、有利なものとなっている。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係る分散オブジェクト通信負荷分散・多重化方式の構成を示すブロック図である。
【図２】図１に示す分散オブジェクト通信負荷分散・多重化方式におけるＩＯＲ対応情報作成処理を示す流れ図である。
【図３】図１に示す分散オブジェクト通信負荷分散・多重化方式における分散オブジェクト通信実行処理を示す流れ図である。
【図４】図１に示す分散オブジェクト通信負荷分散・多重化方式の具体的な動作を説明するためのブロック図である。
【図５】本発明の第２の実施の形態に係る分散オブジェクト通信負荷分散・多重化方式の構成を示すブロック図である。
【図６】図５に示す分散オブジェクト通信負荷分散・多重化方式の具体的な動作を説明するためのブロック図である。
【図７】本発明の第３の実施の形態に係る分散オブジェクト通信負荷分散・多重化方式の構成を示すブロック図である。
【図８】本発明の第４の実施の形態に係る分散オブジェクト通信負荷分散・多重化方式の構成を示すブロック図である。
【符号の説明】
１，２，３  サーバアプリケーション
４  クライアントアプリケーション
５  ＮＡＴアプリケーション
６  オブジェクト検索サーバ
１０，２０，３０  サーバ計算機
４０  クライアント計算機
５０  ＮＡＴ装置
５１  ＩＯＲ対応情報
５２  ＩＯＲ対応情報作成手段
５３  データパケット変換・通信手段
５４  ＩＯＲ対応情報作成・検索サーバ登録手段
６０  検索サーバ計算機
７０，８０  記録媒体
１００，２００  ネットワーク
【図１】
0003543321.tif 000002
【図２】
0003543321.tif 000003
【図３】
0003543321.tif 000004
【図４】
0003543321.tif 000005
【図５】
0003543321.tif 000006
【図６】
0003543321.tif 000007
【図７】
0003543321.tif 000008
【図８】
0003543321.tif 000009