JP2011258014A - 中継処理方法、プログラム及び中継装置 - Google Patents
中継処理方法、プログラム及び中継装置 Download PDFInfo
- Publication number
- JP2011258014A JP2011258014A JP2010132273A JP2010132273A JP2011258014A JP 2011258014 A JP2011258014 A JP 2011258014A JP 2010132273 A JP2010132273 A JP 2010132273A JP 2010132273 A JP2010132273 A JP 2010132273A JP 2011258014 A JP2011258014 A JP 2011258014A
- Authority
- JP
- Japan
- Prior art keywords
- communication
- application
- server
- computer
- transfer
- 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.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/42—Mailbox-related aspects, e.g. synchronisation of mailboxes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/214—Monitoring or handling of messages using selective forwarding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/48—Message addressing, e.g. address format or anonymous messages, aliases
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
【課題】効率的な処理が行われるように通信を中継する。
【解決手段】複数の第1コンピュータと、第2コンピュータとが接続される場合に、第2コンピュータからの通信を第1コンピュータに中継する中継装置は、特定の第1コンピュータから、第2コンピュータからの第1の通信に対する応答を受信する受信部と、応答に含まれる通信識別子に対応付けて、特定の第1コンピュータの識別子を記憶する転送ルールデータ格納部と、第2コンピュータから第2の通信を受信すると、第2の通信に含まれている通信識別子に基づき転送ルールデータ格納部から、当該第2の通信の転送先の第1コンピュータを決定し、決定した第1コンピュータのアドレス宛に第2の通信を転送する転送部とを有する。
【選択図】図10
【解決手段】複数の第1コンピュータと、第2コンピュータとが接続される場合に、第2コンピュータからの通信を第1コンピュータに中継する中継装置は、特定の第1コンピュータから、第2コンピュータからの第1の通信に対する応答を受信する受信部と、応答に含まれる通信識別子に対応付けて、特定の第1コンピュータの識別子を記憶する転送ルールデータ格納部と、第2コンピュータから第2の通信を受信すると、第2の通信に含まれている通信識別子に基づき転送ルールデータ格納部から、当該第2の通信の転送先の第1コンピュータを決定し、決定した第1コンピュータのアドレス宛に第2の通信を転送する転送部とを有する。
【選択図】図10
Description
本技術は、複数のアプリケーション・プログラムを分担して実行するサーバのグループが複数接続される中継装置に関する。
現在、企業では複数のサーバを用いて業務を行なっており、図1に示すように、複数のサーバを収容しているサーバラック1000、さらにサーバラック群をエリア/アイランドとして構成して下位のネットワーク機器(図ではNW機器と記す)に接続する。さらに、下位のネットワーク機器を上位のネットワーク機器を介してインターネットなどの拠点外のネットワークに接続している。また、図1に示すように、複数の拠点で1又は複数のエリア/アイランドを構成して、それらがインターネットなどの拠点外のネットワークを介して接続されている。このようなサーバ構成を、企業独自で構築する場合もあれば、データセンタがサービス提供のために構築している場合もある。
また、このようなサーバ群には、複数の業務アプリケーション(以下、アプリケーションと記す)が搭載されている。複数のアプリケーションが連携する場合、例えば、アプリケーションAとアプリケーションBとが連携する場合、まず端末からアプリケーションAを実行するサーバへアクセスし、その後その端末からアプリケーションBを実行するサーバへアクセスする。その後、アプリケーションBではアプリケーションAへアクセスしたときに生成されたデータなどを用いるため、アプリケーションBはアプリケーションAへアクセスして必要となるデータを取得する。そして、アプリケーションBは処理を行って、端末に応答を返す。このようにアプリケーションAとアプリケーションBとは通信を行うことになるが、できるだけ早く端末に応答を返すためには、この通信を高速に行うことが好ましい。
従来では、図2に示すように、同一アプリケーションが搭載されている複数のサーバが存在している場合、負荷分散装置(Load Balancer)によって負荷分散が行われる。すなわち、例えばラウンドロビンなどの手法によって、複数のサーバのそれぞれに端末からの通信メッセージを順番に割り当てている。具体的には、アプリケーションAはサーバ1乃至mまでに搭載されているので、負荷分散装置は、サーバ1乃至mのいずれかに端末からの通信メッセージを転送する。また、アプリケーションBはサーバn乃至xまでに搭載されているので、負荷分散装置は、サーバn乃至xのいずれかに端末からの通信メッセージを転送する。
アプリケーション間の連携がない場合には、このような単純な転送ルールであっても特に問題がない。しかしながら、図1に示したようなサーバ構成で、複数エリア/アイランド、又は複数拠点に連携する複数のアプリケーションが分散して搭載されている場合には問題が生ずる。
例えば、図3において、サーバグループ1が1つのラック、エリア/アイランド又は拠点に相当し、サーバグループ2が他のラック、エリア/アイランド又は拠点に相当するものとする。サーバグループ1に含まれるサーバ1にはアプリケーションAが搭載されており、サーバ2にはアプリケーションBが搭載されている。さらに、サーバグループ2に含まれるサーバ3にはアプリケーションAが搭載されており、サーバ4にはアプリケーションBが搭載されている。従来からある負荷分散装置であれば、サーバグループ1においてアプリケーションAを実行しているサーバ1を最初に選択した後、サーバグループ2においてアプリケーションBを実行しているサーバ4を選択してしまうことがある。
しかしながら、アプリケーション間の通信時間はサーバの物理的な位置に依存する。すなわち、同一サーバ内、サーバラック間、エリア間、拠点間の順番で通信時間が増加する可能性がある。図3のような場合には、サーバグループ間での通信となるため、サーバ1が最初に選択されたならば次にサーバ2を選択する方が好ましい。
なお、同一構成を有する複数のサーバが中継装置に接続されており、端末とサーバが同一セッションにおいて複数回通信を行う場合には、セッションIDをキーにして同一サーバにメッセージを転送する技術は存在しているが、上で述べたように複数のアプリケーションが複数のサーバに分散して搭載されており且つアプリケーション間で連携がある場合については考慮されていない。
従って、本技術の目的は、一側面によれば、効率的な処理が行われるように通信を中継するための新規な技術を提供することである。
本中継処理装置は、複数の第1コンピュータと、第2コンピュータとが接続される場合に、第2コンピュータからの通信を第1コンピュータに中継する中継装置であって、(A)特定の第1コンピュータから、第2コンピュータからの第1の通信に対する応答を受信する受信部と、(B)応答に含まれる通信識別子に対応付けて、特定の第1コンピュータの識別子を記憶する転送ルールデータ格納部と、(C)第2コンピュータから第2の通信を受信すると、第2の通信に含まれている通信識別子に基づき転送ルールデータ格納部から、当該第2の通信の転送先の第1コンピュータを決定し、決定した第1コンピュータのアドレス宛に第2の通信を転送する転送部とを有する。
効率的な処理が行われるように通信を中継できるようになる。
[実施の形態1]
本実施の形態に係るシステムの概要を図4を用いて説明する。図4に示すように、ネットワークを介して複数のクライアント端末100が中継装置200に接続されており、さらに中継装置200には、複数のサーバが接続されている。本実施の形態では、サーバ1及びサーバ2がサーバグループ1に含まれ、サーバ3及びサーバ4がサーバグループ2に含まれる。サーバグループ内のサーバは位置的に近い、例えば同一ラック内、同一エリア/アイランド内又は拠点内のサーバである。本実施の形態では、連携するアプリケーション・プログラム(以下、簡単にアプリケーションと呼ぶ)はアプリケーションA及びBであり、このアプリケーション・グループは、複数のサーバグループに搭載されている。具体的には、アプリケーションAはサーバグループ1のサーバ1及びサーバグループ2のサーバ3に搭載され、アプリケーションBはサーバグループ1のサーバ2及びサーバグループ2のサーバ4に搭載されている。アプリケーション・グループに属するアプリケーションの種類は2種類に限定されるものではないが、複数のサーバグループの各々において、アプリケーション・グループに属する全てのアプリケーションを分担して複数のサーバで実行するようになっている。サーバグループの数も2に限定されるものではない。なお、アプリケーション・グループに属するアプリケーションは、それ以外のアプリケーションとは連携しないものとする。
本実施の形態に係るシステムの概要を図4を用いて説明する。図4に示すように、ネットワークを介して複数のクライアント端末100が中継装置200に接続されており、さらに中継装置200には、複数のサーバが接続されている。本実施の形態では、サーバ1及びサーバ2がサーバグループ1に含まれ、サーバ3及びサーバ4がサーバグループ2に含まれる。サーバグループ内のサーバは位置的に近い、例えば同一ラック内、同一エリア/アイランド内又は拠点内のサーバである。本実施の形態では、連携するアプリケーション・プログラム(以下、簡単にアプリケーションと呼ぶ)はアプリケーションA及びBであり、このアプリケーション・グループは、複数のサーバグループに搭載されている。具体的には、アプリケーションAはサーバグループ1のサーバ1及びサーバグループ2のサーバ3に搭載され、アプリケーションBはサーバグループ1のサーバ2及びサーバグループ2のサーバ4に搭載されている。アプリケーション・グループに属するアプリケーションの種類は2種類に限定されるものではないが、複数のサーバグループの各々において、アプリケーション・グループに属する全てのアプリケーションを分担して複数のサーバで実行するようになっている。サーバグループの数も2に限定されるものではない。なお、アプリケーション・グループに属するアプリケーションは、それ以外のアプリケーションとは連携しないものとする。
図4の例では、サーバ1のIPアドレスは「10.10.10.1」で、サーバ2のIPアドレスは「10.10.10.2」で、サーバ3のIPアドレスは「10.10.10.11」で、サーバ4のIPアドレスは「10.10.10.12」であるものとする。
次に、図5に、本実施の形態に係る中継装置200の機能ブロック図を示す。中継装置200は、(A)クライアント端末100側のメッセージ受信部201及びメッセージ転送部202と、(B)サーバ側のメッセージ受信部204及びメッセージ転送部205と、(C)転送ルールその他のデータを格納するデータ格納部207と、(D)データ格納部207に格納されているデータに基づき、メッセージ受信部201から受信したメッセージを適切なサーバへメッセージ転送部205に出力させ且つメッセージ受信部204から受信したメッセージを適切なクライアント端末100へメッセージ転送部202に出力させる転送先決定部203と、(E)転送先決定部203からの指示によってデータ格納207に格納されているデータを用いて転送ルールを生成する転送ルール生成部206とを有する。
次に、図4に示したシステムの動作の概要を図6を用いて説明する。なお、図4で示しているかっこ付きの数字は、図6におけるかっこ付きの数字と同じである。まず、クライアント端末100は、アプリケーションAに対するリクエストを中継装置200へ送信する(ステップ(1))。中継装置200のメッセージ受信部201は、クライアント端末100からリクエストを受信すると、転送先決定部203に出力する(ステップ(11))。転送先決定部203は、リクエストを受信すると、以下で述べるようにデータ格納部207に格納されているアプリケーション収容データテーブルから、アプリケーションAを実行している1つのサーバを選択して、当該選択サーバへ受信リクエストを転送するように、メッセージ転送部205に指示する(ステップ(12))。例えば、サーバグループ1のサーバ1を選択したものとする。メッセージ転送部205は、転送先決定部203の指示に従って、受信リクエストを選択サーバへ送信する(ステップ(13))。ここではサーバ1に送信するものとする。
サーバ1のアプリケーションAは、クライアント端末100からのリクエストを受信すると、リクエストに応じた所定の処理を実施して、レスポンスを生成して中継装置200へ送信する(ステップ(14))。中継装置200のメッセージ受信部204は、サーバ1からレスポンスを受信し、転送先決定部203に出力する(ステップ(15))。レスポンスには例えばクッキー(cookie)が含まれ、当該クッキーにはセッションID(セッション識別子とも呼ぶ)が含まれる。転送先決定部203は、データ格納部207に格納されている転送ルールテーブルをセッションIDで検索し、このセッションIDが未登録であれば、転送ルール生成部206に転送ルールの生成を指示する(ステップ(16))。転送ルール生成部206は、以下で詳細に述べるような転送ルール生成処理を実施して転送ルールを生成すると、当該転送ルールをデータ格納部207の転送ルールテーブルに登録する(ステップ(17))。
転送ルールの生成が終了すると、転送ルール生成部206は、転送ルール生成完了を転送先決定部203に通知し(ステップ(18))、転送先決定部203は、サーバ1からのレスポンスを要求元のクライアント端末に転送するようにメッセージ転送部202に指示する(ステップ(19))。メッセージ転送部202は、要求元のクライアント端末にレスポンスを送信する(ステップ(2))。リクエストに対するレスポンスの、要求元クライアント端末への転送については従来技術のとおりであるから、本実施の形態ではこれ以上述べない。
クライアント端末100は、レスポンスを受信した後に、アプリケーションBに対するリクエストを生成し、中継装置200へ送信する(ステップ(3))。リクエストには、受信したセッションIDが含まれる。中継装置200のメッセージ受信部201は、クライアント端末100からリクエストを受信すると、転送先決定部203に出力する(ステップ(31))。転送先決定部203は、リクエストに含まれるセッションID及びアプリケーションBについてのURIでデータ格納部207における転送ルールテーブルを検索して、該当する転送ルールを見つけ出す。転送ルールが見つかれば、その転送ルールに従ってアプリケーションBを実行している転送先のサーバ(ここではサーバ2)のデータ(例えばIPアドレス及びポート番号)を読み出し、転送ルールに基づき決定された転送先サーバ2にリクエストを転送するように、メッセージ転送部205に指示する(ステップ(32))。メッセージ転送部205は、指示に従って、受信リクエストを、転送ルールに基づき決定された転送先サーバ2に送信する(ステップ(33))。
サーバ2のアプリケーションBは、クライアント端末100からのリクエストを受信し、所定の処理を実施する。この際、例えばセッションID等を用いてサーバ1に対して前の処理結果などのデータを要求する(ステップ(4))。これに対してサーバ1は、要求されたデータをサーバ2に送信する(ステップ(5))。このようなサーバ1及び2間のメッセージのやりとりについては従来と変わらないのでこれ以上述べない。
サーバ2のアプリケーションBは、処理が完了するとレスポンスを生成して、中継装置200へ送信する(ステップ(51))。中継装置200のメッセージ受信部204は、サーバ2からレスポンスを受信すると、転送先決定部203に出力する(ステップ(52))。転送先決定部203は、受信レスポンスに含まれるセッションIDでデータ格納部207内の転送ルールテーブルを検索する。転送ルールテーブル内に該当転送ルールが既に存在している場合には、転送ルールを生成する必要がないので、転送先決定部203は、受信レスポンスを要求元のクライアント端末100に転送するように、メッセージ転送部202に指示する(ステップ(53))。メッセージ転送部202は、指示に従って、受信レスポンスを、要求元クライアント端末100に送信する(ステップ(6))。
このような処理を実施すれば、最初のリクエストに対するレスポンスで転送ルールが生成されるので、その後アプリケーションA及びアプリケーションBに対してリクエストを送信する場合には、すぐさま同じサーバグループに属するサーバにリクエストを転送することができるようになる。なお、上で述べた例では、アプリケーションAに対するリクエストの後にアプリケーションBに対してリクエストを送信する例を示しているが、アプリケーションAに対して何度もリクエストを送信した後に、アプリケーションBに対してリクエストを送信するようになる場合もある。さらに、アプリケーションBに対してリクエストを送信した後に、再度アプリケーションAに対してリクエストを送信する場合もある。いずれの場合にも、本実施の形態では対処できる。
次に、図7乃至図13を用いて中継装置200の動作の詳細について説明する。本実施の形態では、データ格納部207に例えば図7に示すようなアプリケーション収容データテーブルが格納されている。図7の例では、アプリケーション毎に、当該アプリケーションの名称と当該アプリケーションを実行しているサーバのIPアドレス及びポート番号が対応付けて登録されている。アプリケーションAには、サーバ1のIPアドレス及びポート番号「10.10.10.1:8080」とサーバ3のIPアドレス及びポート番号「10.10.10.11:8080」が対応付けられており、アプリケーションBには、サーバ2のIPアドレス及びポート番号「10.10.10.2:8080」とサーバ4のIPアドレス及びポート番号「10.10.10.12:8080」が対応付けられている。
また、データ格納部207には、図8に示すようなアプリケーション名決定テーブルが格納されている。図8の例では、メッセージのヘッダ値とアプリケーション名との対応関係が登録されている。ヘッダ値は、IPヘッダ値及びメッセージヘッダ値との組み合わせであり、IPヘッダ値にはプロトコルID及び受信ポート番号が含まれ、メッセージヘッダ値にはURI(Uniform Resource Identifier)が含まれる。例えば、プロトコルがtcpで受信ポート番号が「8080」でURIが「URI_A」の場合に、アプリケーションAと判定される。逆にアプリケーションAであれば、URIは「URI_A」であり且つポート番号が「8080」となる。同様に、プロトコルがtcpで受信ポート番号が「8080」でURIが「URI_B」の場合に、アプリケーションBと判定される。
さらに、本実施の形態ではデータ格納部207に図9に示すようなサーバグループテーブルが格納されている。図9の例では、サーバグループ毎に、当該サーバグループの識別子と当該サーバグループに属するサーバのIPアドレスが登録されるようになっている。例えば、アプリケーションA及びBの実行順番に合わせて、サーバのIPアドレスの順番を決定して登録するようにしても良い。
このような状態において中継装置200は、図10に示すような処理を実施する。この処理はリクエスト又はレスポンスを受信する毎に実行される。
転送先決定部203は、メッセージ受信部201又は204からメッセージを受信すると(ステップS1)、受信メッセージがレスポンスであるか判断する(ステップS3)。例えば、メッセージのヘッダから例えばHTTP(Hyper Text Transfer Protorol)レスポンスであるか否かを判断する。そして、受信メッセージがレスポンスである場合には、転送先決定部203は、レスポンスからセッションIDを抽出し(ステップS5)、データ格納部207に格納されている転送ルールテーブルを検索する。ここで、該当エントリが存在しない場合には、最初のリクエストに対するレスポンスであることが分かり、ステップS9に移行する。一方、転送ルールテーブルにおいて該当エントリが存在する場合には転送ルールを新たに作成する必要はないのでステップS13に移行する。
該当エントリが転送ルールテーブルに存在しない場合には(ステップS7:Yesルート)、転送先決定部203は、セッションID及び受信レスポンスを含む転送ルール生成指示を転送ルール生成部206に出力する。
転送ルール生成部206は、転送ルール生成指示を受信すると、レスポンスに含まれる送信元サーバアドレスでサーバグループテーブルを検索して、送信元サーバが属するサーバグループと同じサーバグループに属するサーバのデータを該当グループデータとして読み出す(ステップS9)。なお、該当グループデータは、送信元サーバが属するサーバグループと同じサーバグループに属するサーバのIPアドレスを含む。図9の例では、「10.10.10.1」及び「10.10.10.2」が読み出される。
そして、転送ルール生成部206は、アプリケーションデータを特定する(ステップS10)。具体的には、転送ルール生成部206は、例えば読み出されたサーバのアドレスでアプリケーション収容データテーブル(図7)を検索してアプリケーション名を特定し、さらに当該アプリケーション名でアプリケーション名決定テーブル(図8)を検索して該当するURI等を読み出す。以下に述べるようにアプリケーション名だけを特定するようにしても良い。
また、サーバグループの識別子からアプリケーションのセットが別の対応テーブル等から特定できる場合又はアプリケーションのグループが1種類である場合、アプリケーション名決定テーブル(図8)からアプリケーションのグループに含まれる各アプリケーションの名称及びURIを読み出す。ポート番号については例えばアプリケーション名決定テーブル(図8)から読み出すようにしても良いが、Webサービスであれば通常は「8080」であるから固定で特定するようにしても良い。図7乃至図9のテーブル例からすると、アプリケーションデータとしては、サーバアドレス「10.10.10.1」に対して、アプリケーション名「A」、URI「URI_A」及びポート番号「8080」が特定される。また、サーバアドレス「10.10.10.2」に対して、アプリケーション名「B」、URI「URI_B」及びポート番号「8080」が特定される。
そして、転送ルール生成部206は、アプリケーションデータ、セッションID及び該当グループデータを用いて転送ルールデータを生成し、転送ルールテーブルに登録する(ステップS11)。
転送ルールテーブルの一例を図11に示す。図11の例では、アプリケーション名と、URIと、セッションIDと、転送先サーバアドレスと、ポート番号とが登録されるようになっている。なお、アプリケーション名決定テーブル(図8)が用意されていれば、URIからアプリケーション名を特定できるので、転送ルールにURIが含まれていなくても、アプリケーション名及びセッションIDで該当エントリを特定できる。また、転送ルールテーブルにURIが登録されていれば、リクエストに含まれるURI及びセッションIDから該当エントリを特定できる。
図11に示すように、サーバアドレスである転送先サーバアドレス「10.10.10.1」、アプリケーション名「A」、URI「URI_A」及びポート番号「8080」が、セッションID「α1」と対応付けて登録されている。同様に、転送先サーバアドレス「10.10.10.2」、アプリケーション名「B」、URI「URI_B」及びポート番号「8080」が、セッションID「α1」と対応付けて登録されている。
このようにアプリケーションのグループについてエントリを用意することによって、最初にアクセスしたアプリケーションが何度も呼び出される場合にも高速に同一サーバにアクセスすることができ、さらにアプリケーションのグループに属する他のアプリケーションにアクセスする場合にも高速に同一サーバグループに属する他のサーバにアクセスすることができる。
転送ルール生成部206は、転送先決定部203に転送ルール生成完了を通知し、これに応じて転送先決定部203は、受信したレスポンスを要求元のクライアント端末100へメッセージ転送部202に転送させる(ステップS13)。そして処理を終了する。
一方、受信したメッセージがレスポンスではなくリクエストであると判断された場合には(ステップS3:Noルート)、転送先決定部203は、リクエストからセッションID及びURIを読み出して、当該セッションID及びURI(若しくはアプリケーション名)でデータ格納部207内の転送ルールテーブルを検索して、転送ルールテーブルにマッチするエントリが存在するか判断する(ステップS15)。該当するエントリが存在する場合には(ステップS15:Yesルート)、2番目以降のリクエストであり、転送先決定部203は、マッチする転送ルールのエントリに含まれるIPアドレス及びポート番号宛てに、リクエストをメッセージ転送部205に転送させる(ステップS19)。そして処理を終了する。
なお、上でも述べたように、転送ルールテーブルのエントリにURIがない場合にも、アプリケーション名決定テーブル(図8)があれば、URIからアプリケーション名を特定できるので、転送ルールテーブルを検索することができる。
このようにして、2回目以降のリクエストを高速に同一サーバグループに属するサーバに転送することができる。
一方、転送ルールテーブルにマッチするエントリが存在しない場合(ステップS15:Noルート)、最初のリクエストであるから、転送先決定部203は、リクエストに含まれるURI(より詳細にはプロトコルID、ポート番号及びURI)に基づきアプリケーション名決定テーブルからアプリケーション名を特定し、当該アプリケーション名でアプリケーション収容データテーブル(図7)を検索して該当するサーバのIPアドレス及びポート番号を抽出する。これによってクライアント端末100から要求されているアプリケーションを実行するサーバが特定されたことになる。転送先決定部203は、このようなサーバの中から所定のアルゴリズム(例えばラウンドロビン)に従って特定のサーバを1つ選択し、当該特定のサーバのIPアドレス及びポート番号宛てに、受信リクエストをメッセージ転送部205に転送させる(ステップS17)。
以上の述べたような処理を実施することで、適切に転送ルールテーブルを生成して、2回目以降のリクエストについての適切な転送先サーバを高速に特定できる。
なお、図7乃至図9に示したテーブルの構成は様々に変形可能である。例えば、図12のようなテーブルを用意しても良い。図12の例では、サーバグループ毎に、各所属サーバのIPアドレス及びポート番号と、各所属サーバで実行されているアプリケーションのアプリケーション名及びURIとを登録するようになっている。プロトコルIDについても登録するようにしても良い。このようなデータテーブルが用意されれば、最初にリクエストを受信した場合にも、URIなどから要求されているアプリケーションを実行しているサーバのIPアドレス及びポート番号を特定することができるので、そのサーバのうち1つを選択することもできる。さらに、最初のリクエストに対するレスポンスを受信した場合、送信元サーバアドレスから、送信元サーバと同一のサーバグループに属するサーバのIPアドレス及びポート番号、アプリケーション名及びURIを読み出すことができるので、転送ルールのエントリを生成することもできる。
さらに、図7と図9のテーブルは図13に示すように統合することも可能である。図13の例では、アプリケーションの名称と、当該アプリケーションを実行しているサーバのIPアドレス及びポート番号と、各サーバが属するサーバグループの識別子とが対応付けて登録されている。これによって、同一アプリケーションを実行しているサーバのIPアドレス及びポート番号を特定することもでき、特定のサーバのIPアドレス及びポート番号から、特定のサーバが属するサーバグループが特定できるので、当該サーバグループに属する他のサーバのIPアドレス及びポート番号をも特定することもできる。
さらに、上で述べた例ではアプリケーション名をURIとは別に用意する例を示しているが、URIをアプリケーション名として用いるようにしても良い。
[実施の形態2]
本実施の形態では、アプリケーション・グループが複数種類ある場合を検討する。また、特定のアプリケーションが複数のアプリケーション・グループに属する場合についても合わせて検討する。例えば、アプリケーションAがPC(Personal Computer)の見積りサイトで、アプリケーションBが決済サイトであり、アプリケーションCがネットワーク機器の見積りサイトであるとする。そして、第1のアプリケーション・グループはアプリケーションA及びBを含み、第2のアプリケーション・グループはアプリケーションC及びBを含む。このような場合には、アプリケーションBは、第1及び第2のアプリケーション・グループで共用されている。
本実施の形態では、アプリケーション・グループが複数種類ある場合を検討する。また、特定のアプリケーションが複数のアプリケーション・グループに属する場合についても合わせて検討する。例えば、アプリケーションAがPC(Personal Computer)の見積りサイトで、アプリケーションBが決済サイトであり、アプリケーションCがネットワーク機器の見積りサイトであるとする。そして、第1のアプリケーション・グループはアプリケーションA及びBを含み、第2のアプリケーション・グループはアプリケーションC及びBを含む。このような場合には、アプリケーションBは、第1及び第2のアプリケーション・グループで共用されている。
具体的に図14に示すようなシステム構成を考える。図14の例では、本実施の形態に係る中継装置300には、複数のクライアント端末100が接続されており、さらにサーバ1乃至7が接続されている。また、サーバグループ1には、サーバ1乃至3が含まれ、サーバグループ2には、サーバ4及び5が含まれ、サーバグループ3には、サーバ6及び7が含まれる。サーバグループ内のサーバは位置的に近い、例えば同一ラック内、同一エリア/アイランド内又は拠点内のサーバである。さらに、サーバ1ではアプリケーションAが実行されており、サーバ2ではアプリケーションBが実行されており、サーバ3ではアプリケーションCが実行されており、サーバ4ではアプリケーションAが実行されており、サーバ5ではアプリケーションBが実行されており、サーバ6ではアプリケーションBが実行されており、サーバ7ではアプリケーションCが実行されている。このような場合に、サーバグループ1では第1のアプリケーション・グループも第2のアプリケーション・グループも実行することができる。一方、サーバグループ2では第1のアプリケーション・グループだけしか実行することができず、サーバグループ3では第2のアプリケーション・グループだけしか実行することができない。
このようなシステムの動作の概要については図6を用いて説明したものと同じである。図14においてメッセージのやりとりの順番を表す(1)乃至(6)については、図6で示した(1)乃至(6)と同じである。
また、このようなシステムにおいて、中継装置300は、機能ブロックとして図5に示した第1の実施の形態における中継装置200と同じであるが、転送ルール生成部206の動作及びデータ格納部207に格納されるデータは、異なっている。説明の都合上、図5に示した参照番号はそのままで、処理内容及び格納されているデータについては、図15乃至図22を用いて説明する。
本実施の形態におけるアプリケーション名決定テーブルの一例を図15に示す。データ構造自体は図8に示したものと同じである。本実施の形態では、アプリケーションCが含まれるので、アプリケーションCについてのデータが追加されている。
本実施の形態におけるサーバグループテーブルの一例を図16に示す。図16に示すように、データ構造自体は図9と同じである。但し、図14に示したように、サーバグループは3つあるので、3つのサーバグループの各々に所属するサーバのIPアドレスが登録されている。
本実施の形態におけるアプリケーション収容データテーブルの一例を図17に示す。データ構造自体は図7と同じである。但し、アプリケーションA乃至Cの各々について、実行されるサーバのIPアドレス及びポート番号が登録されている。アプリケーションBは、アプリケーションA及びCと共用されるので、サーバグループ1乃至3のいずれでも実行するサーバが用意されている。
本実施の形態では、第1の実施の形態では用いられていないアプリケーショングループテーブルが用いられる。図18に、アプリケーショングループテーブルの一例を示す。図18の例では、アプリケーション・グループの識別子に対応付けて、所属するアプリケーション名が登録されるようになっている。上で述べたように、第1のアプリケーション・グループ「001」には、アプリケーションA及びBが属し、第2のアプリケーション・グループ「002」には、アプリケーションC及びBが属する。
次に、中継装置300の動作の詳細を図19乃至図21を用いて説明する。
転送先決定部203は、メッセージ受信部201又は204からメッセージを受信すると(図19:ステップS31)、受信メッセージがレスポンスであるか判断する(ステップS33)。例えば、メッセージのヘッダから例えばHTTPレスポンスであるか否かを判断する。そして、受信メッセージがレスポンスである場合には、処理は端子Aを介して図20の処理に移行する。
転送先決定部203は、レスポンスからセッションIDを抽出し(ステップS41)、データ格納部207に格納されている転送ルールテーブルを検索する。ここで、該当エントリが存在しない場合には、最初のリクエストに対するレスポンスであることが分かり、ステップS45に移行する。一方、転送ルールテーブルにおいて該当エントリが存在する場合には転送ルールを新たに作成する必要はないのでステップS55に移行する。
該当エントリが転送ルールテーブルに存在しない場合には(ステップS43:Yesルート)、転送先決定部203は、セッションID及び受信レスポンスを含む転送ルール生成指示を転送ルール生成部206に出力する。
転送ルール生成部206は、転送ルール生成指示を受信すると、レスポンスに含まれる送信元サーバのIPアドレス及びポート番号でアプリケーション収容データテーブル(図17)を検索してアプリケーション名を特定し、当該アプリケーション名でアプリケーショングループテーブル(図18)を検索して該当するアプリケーション・グループを特定する(ステップS45)。例えば、IPアドレス「10.10.10.3」及びポート番号「8080」でアプリケーション収容データテーブルを検索するとアプリケーション名「C」が特定され、アプリケーション名「C」でアプリケーショングループテーブル(図18)を検索すれば、アプリケーション・グループ「002」が特定される。このアプリケーション・グループ「002」に含まれるアプリケーション名「B」及び「C」が特定される。なお、アプリケーション間の連携がない場合にはアプリケーショングループテーブルを検索した場合に、アプリケーション・グループが特定されない。
従って、アプリケーション間の連携がない場合には(ステップS47:Noルート)、ステップS55に移行する。アプリケーション間の連携が存在する場合には(ステップS47:Yesルート)、転送ルール生成部206は、レスポンスに含まれる送信元サーバのIPアドレスで、サーバグループテーブル(図16)を検索して、同一サーバグループに属するサーバのIPアドレスを読み出す(ステップS49)。「10.10.10.3」でサーバグループテーブル(図16)を検索すれば、サーバグループ「1」であることが分かるので、サーバグループ「1」に属するサーバのIPアドレス「10.10.10.1」「10.10.10.2」「10.10.10.3」が得られる。
そして、転送ルール生成部206は、該当アプリケーション・グループに属するアプリケーションを実行し且つ該当サーバグループに属するサーバのIPアドレス及びポート番号を特定する(ステップS51)。既にアプリケーション「C」を実行するサーバのIPアドレス「10.10.10.3」及びポート番号「8080」については既に特定されているが、同一アプリケーション・グループ「002」に属する他のアプリケーションBを実行し且つ該当サーバグループ「1」に属するサーバを特定する。このためにアプリケーション名「B」でアプリケーショングループテーブル(図18)を検索して、サーバのIPアドレス及びポート番号を特定する。この場合、「10.10.10.2:8080」、「10.10.10.12:8080」及び「10.10.10.22:8080」が抽出される。この中で、ステップS47で特定されたIPアドレス「10.10.10.2」とIPアドレスが一致する「10.10.10.2:8080」が特定される。
さらに、転送ルール生成部206は、アプリケーション名決定テーブル(図15)を該当するアプリケーション名で検索してURIをアプリケーションデータとして特定し、レスポンスに含まれているセッションIDと、特定されたサーバのIPアドレス及びポート番号とを含む転送ルールを生成して、データ格納部207内の転送ルールテーブルに登録する(ステップS53)。図21に転送ルールテーブルの一例を示す。第1の実施の形態と同じデータ構造であるが、アプリケーション名「C」とURI「URI_C」とセッションID「β1」と転送先サーバのIPアドレス「10.10.10.3」とポート番号「8080」を含むエントリと、アプリケーション名「B」とURI「URI_B」とセッションID「β1」と転送先サーバのIPアドレス「10.10.10.2」とポート番号「8080」とを含むエントリとが含まれる。
このようにすれば、アプリケーションC及びBを利用するリクエストを受信した場合には、速やかに同一サーバグループに属する適切なサーバにリクエストを転送することができる。
第1の実施の形態と同様に、アプリケーション名があれば、URIは登録されていなくてもアプリケーション名決定テーブル(図15)があればURIからアプリケーション名を特定できるので、該当エントリを特定できる。また、URIが登録されていれば、アプリケーション名は登録されていなくても、該当エントリを特定できる。
転送ルール生成部206は、転送先決定部203に転送ルール生成完了を通知して、転送先決定部203は、受信したレスポンスを要求元のクライアント端末100へメッセージ転送部202に転送させる(ステップS55)。そして端子Bを介して図19の処理に戻って処理を終了する。
一方、受信したメッセージがレスポンスではなくリクエストであると判断された場合には(ステップS33:Noルート)、転送先決定部203は、リクエストからセッションID及びURIを読み出して、当該セッションID及びURI(若しくはアプリケーション名)でデータ格納部207内の転送ルールテーブル(図21)を検索して、転送ルールテーブルにマッチするエントリが存在するか判断する(ステップS35)。該当するエントリが存在する場合には(ステップS35:Yesルート)、2番目以降のリクエストであり、転送先決定部203は、マッチする転送ルールのエントリに含まれるIPアドレス及びポート番号宛てに、リクエストをメッセージ転送部205に転送させる(ステップS37)。そして処理を終了する。
なお、上でも述べたように、転送ルールテーブルのエントリにURIがない場合にも、アプリケーション名決定テーブル(図15)があれば、URIからアプリケーション名を特定できるので、転送ルールテーブルを検索することができる。
このようにして、2回目以降のリクエストを高速に同一サーバグループに属するサーバに転送することができる。
一方、転送ルールテーブルにマッチするエントリが存在しない場合(ステップS35:Noルート)、最初のリクエストであるから、転送先決定部203は、リクエストに含まれるURI(より詳細にはプロトコルID、ポート番号及びURI)によりアプリケーション名決定テーブルからアプリケーション名を特定し、当該アプリケーション名でアプリケーション収容データテーブル(図17)を検索して該当するサーバのIPアドレス及びポート番号を抽出する。これによってクライアント端末100から要求されているアプリケーションを実行するサーバが特定されたことになる。転送先決定部203は、このようなサーバの中から所定のアルゴリズム(例えばラウンドロビン)に従って特定のサーバを1つ選択し、当該特定のサーバのIPアドレス及びポート番号宛てに、受信リクエストをメッセージ転送部205に転送させる(ステップS39)。
以上の述べたような処理を実施することで、適切に転送ルールテーブルを生成して、2回目以降のリクエストについての転送先サーバを高速に特定できる。
このようにアプリケーショングループテーブルを導入することによって、様々なアプリケーション・グループがサーバ群に定義されても、柔軟に対処できるようになる。
なお、データ格納部207に格納されるデータは、様々に変形することができる。第1の実施の形態において説明したように、図15乃至図17を統合するようなことも可能である。すなわち、図22に示したようなデータ構造を採用しても良い。このようなデータ構造を採用すれば、レスポンスに含まれるIPアドレス及びポート番号で図22に示すような統合テーブルを検索すれば、該当アプリケーション名及びURI、並びに同一サーバグループに属する他のサーバのIPアドレス、ポート番号、アプリケーション名及びURIを特定できる。さらに、アプリケーショングループテーブルを、該当アプリケーション名で検索すれば、グループ化されている他のアプリケーション名をも特定できる。従って、同一サーバグループに属する他のサーバのうち、特定された他のアプリケーションを実行しているサーバのIPアドレス、ポート番号及びURIを絞り込むことができる。
また、同じく第1の実施の形態において説明したように、図16及び図17を統合するようにしてもよい。すなわち、図13に示すようなデータ構造を採用するようにしても良い。転送ルールテーブルに示すように、同一アプリケーション・グループに属するアプリケーションを実行し且つ同一サーバグループに属するサーバのデータを抽出できれば、どのようなデータ構造であってもよい。
アプリケーション名ではなくURIを統一的にアプリケーションの識別子として用いるようにしても良い。
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、図5に示した機能ブロック図は一例であって、必ずしも実際のモジュール構成と一致しない場合もある。例えば、転送先決定部203及び転送ルール生成部206については、例えばプロセッサと上で述べたような処理をプロセッサに実行させるためのプログラムとの組み合わせにて実施される場合もある。このような場合、プログラムはROM(Read Only Memory)やフラッシュメモリなどに記録されており、プロセッサによって読み出されて実行される。また、データ格納部207については、半導体メモリ等で実現される。
処理フローについても処理結果が変わらないかぎりにおいて、処理順番を入れ替えたり、並列実施するようにしても良い。
さらに、上では物理的なサーバが複数存在している例を示したが、一部又は全部のサーバがVM(Virtual Machine)として1又は複数の物理サーバ上に実装される場合がある。このような場合についても中継装置の処理は同様である。
以上述べた本実施の形態をまとめると、以下のようになる。
本実施の形態に係る中継処理方法は、アプリケーション・プログラムのセットを分担して実行するサーバのグループが複数接続されている中継装置により実行される中継処理方法であって、(A)特定のサーバから、特定のクライアント端末からの第1のリクエストに対するレスポンスを受信するステップと、(B)レスポンスに含まれる特定のサーバのアドレスから特定され且つ特定のサーバが属するグループである特定のグループについて予め規定されている、特定のグループに属する各サーバのアドレス及び当該各サーバにおいて実行されるアプリケーション・プログラムの識別子とURI(Uniform Resource Identifier)とのうち少なくともいずれかを特定する特定ステップと、(C)レスポンスに含まれるセッション識別子に対応付けて、特定のグループに属する各サーバのアドレス及び当該各サーバにおいて実行されるアプリケーション・プログラムの識別子とURIとのうち少なくともいずれかを転送ルールデータ格納部に格納するステップと、(D)特定のクライアント端末からセッション識別子及び特定のURIを含む第2のリクエストを受信すると、セッション識別子及び特定のURIに基づき転送ルールデータ格納部から、当該第2のリクエストの転送先のサーバのアドレスを特定し、当該サーバのアドレス宛に第2のリクエストを転送する転送ステップとを含む。
このように転送ルールを生成すれば、後続のリクエストについては、当該転送ルールに従って、直前のリクエストを処理したサーバの所属サーバグループと同一のサーバグループに属するサーバのうちリクエストで要求されるアプリケーションを実行しているサーバに転送することができる。サーバグループ内のサーバが距離的に近いサーバであれば、サーバ間でデータの引継が生じても短時間で通信が行われるので、レスポンス送信までの時間を短縮することができる。すなわち、アプリケーション間の連携を効率的に行うことができるようになる。
また、上で述べた特定ステップが、(B1)レスポンスに含まれる特定のサーバのアドレスに基づき、サーバのグループ毎に当該グループに属するサーバのアドレスを格納する第1のデータ格納部(例えばサーバグループテーブル)から、特定のサーバが属するグループの他のサーバのアドレスを特定するステップと、(B2)アプリケーション・プログラムのセットに含まれるアプリケーション・プログラムの識別子とURIとのうち少なくともいずれかを格納する第2のデータ格納部(例えばアプリケーション名決定テーブル)から、アプリケーション・プログラムの識別子とURIとのうち少なくともいずれかを読み出すステップとを含むようにしてもよい。例えば、このような転送ルールを生成すべきサーバの範囲においてアプリケーション・プログラムのセットが1種類であるような場合には、このような処理にて転送ルールが生成される。また、サーバグループの識別子からアプリケーションのグループが特定できれば、複数種類のセットが存在する場合でも対応できる。
さらに、アプリケーション・プログラムのセットが複数種類存在する場合には、上で述べたような特定ステップは、(B11)レスポンスに含まれる特定のサーバのIPアドレスに基づき、サーバのグループ毎に当該グループに属するサーバのIPアドレスを格納する第3のデータ格納部(例えばサーバグループテーブル)から、特定のサーバが属するグループの他のサーバのIPアドレスを特定するステップと、(B12)レスポンスに含まれる特定のサーバのIPアドレス及びポート番号に基づき、アプリケーション・プログラム毎に当該アプリケーション・プログラムの識別子と当該アプリケーション・プログラムを実行しているサーバのIPアドレス及びポート番号とが対応付けて格納されている第4のデータ格納部(例えばアプリケーション収容データテーブル)から、特定のサーバで実行されているアプリケーション・プログラムの識別子を特定するステップと、(B13)特定されたアプリケーション・プログラムの識別子に基づき、上記セット毎に当該セットに属するアプリケーション・プログラムの識別子を格納する第5のデータ格納部(例えばアプリケーショングループテーブル)から、特定されたアプリケーション・プログラムが属するセットに含まれる他のアプリケーション・プログラムの識別子を特定するステップと、(B14)特定された他のアプリケーション・プログラムの識別子及び特定された他のサーバのIPアドレス及びポート番号に基づき、第4のデータ格納部から他のアプリケーション・プログラムを実行しており且つ特定のサーバが属するグループ内のサーバのIPアドレス及びポート番号を特定するステップとを含むようにしてもよい。
第5のデータ格納部を導入することによって、アプリケーション・プログラムのセットが複数種類存在する場合にも柔軟に対処できるようになる。なお、ステップ(B14)における絞り込みをオプションにすることも可能である。さらに、ステップ(B11)と(B12)については順番を入れ替え可能である。
また、アプリケーション・プログラムのセットが複数種類存在する場合には、上で述べたような特定ステップは、(B21)レスポンスに含まれる特定のサーバのIPアドレス及びポート番号に基づき、アプリケーション・プログラム毎に当該アプリケーション・プログラムの識別子と当該アプリケーション・プログラムを実行しているサーバのIPアドレス、ポート番号及び所属グループの識別子とが対応付けて格納されている第6のデータ格納部(例えば図13の統合テーブル)から、特定のサーバで実行されているアプリケーション・プログラムの識別子及び特定のサーバの所属グループの識別子を特定するステップと、(B22)特定されたアプリケーション・プログラムの識別子に基づき、上記セット毎に当該セットに属するアプリケーション・プログラムの識別子を格納する第5のデータ格納部(例えばアプリケーショングループテーブル)から、特定されたアプリケーション・プログラムが属するセットに含まれる他のアプリケーション・プログラムの識別子を特定するステップと、(B23)特定された他のアプリケーション・プログラムの識別子及び特定のサーバの所属グループの識別子に基づき、第6のデータ格納部から、他のアプリケーション・プログラムの識別子及び特定のサーバの所属グループの識別子に対応付けられているサーバのIPアドレス及びポート番号を読み出すステップとを含むようにしてもよい。図13に示すような統合テーブルを用いれば、このような処理にて転送ルール生成のためのデータが得られる。
なお、アプリケーション・プログラムのセットが複数種類存在する場合に、URIとアプリケーション・プログラムの識別子との対応関係についてのデータを格納する第7のデータ格納部(例えばアプリケーション名決定テーブル)から、特定のサーバで実行されているアプリケーション・プログラム及び特定された他のアプリケーション・プログラムの識別子に対応するURIを読み出すステップをさらに含むようにしてもよい。リクエストにはURIが含まれるので、本ステップを実施して転送ルールにURIが含まれている方が、リクエストの処理時には高速に転送先サーバを特定できる。
さらに、上で述べた転送ステップが、URIとアプリケーション・プログラムの識別子との対応関係についてのデータを格納する第7のデータ格納部(例えばアプリケーション名決定テーブル)から、第2のリクエストに含まれる特定のURIに対応するアプリケーション・プログラムの識別子を特定するステップを含むようにしてもよい。転送ルールなどにURIが含まれない場合には、このようにしてURIからアプリケーションの識別子(例えば名称)を特定した上で、転送ルールを特定すればよい。
本実施の形態における中継処理装置は、(A)アプリケーション・プログラムのセットを分担して実行するサーバのグループが複数存在している場合に、特定のサーバから、特定のクライアント端末からの第1のリクエストに対するレスポンスを受信する受信部と、(B)転送ルールデータ格納部と、(C)レスポンスに含まれる特定のサーバのアドレスから特定され且つ特定のサーバが属するグループである特定のグループについて予め規定されている、(c1)特定のグループに属する各サーバのアドレス及び(c2)当該各サーバにおいて実行されるアプリケーション・プログラムの識別子とURI(Uniform Resource Identifier)とのうち少なくともいずれかを特定し、レスポンスに含まれるセッション識別子に対応付けて、転送ルールデータ格納部に格納する転送ルール生成部と、(D)特定のクライアント端末からセッション識別子及び特定のURIを含む第2のリクエストを受信すると、セッション識別子及び特定のURIに基づき転送ルールデータ格納部から、当該第2のリクエストの転送先のサーバのアドレスを特定し、当該サーバのアドレス宛に第2のリクエストを転送させる転送先決定部とを有する。
なお、上で述べたような処理をプロセッサに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROM、DVD−ROM、BD−ROM、光磁気ディスク、半導体メモリ(例えばROM、フラッシュメモリなど)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数の第1コンピュータと、第2コンピュータとが接続され、前記第2コンピュータからの通信を前記第1コンピュータに中継する中継装置により実行される中継処理方法であって、
特定の第1コンピュータから、前記第2コンピュータからの第1の通信に対する応答を受信する受信ステップと、
前記応答に含まれる通信識別子に対応付けて、特定の第1コンピュータの識別子を転送ルールデータ格納部に格納する格納ステップと、
前記第2コンピュータから第2の通信を受信すると、前記第2の通信に含まれている前記通信識別子に基づき前記転送ルールデータ格納部から、当該第2の通信の転送先の第1コンピュータを決定し、決定した第1コンピュータのアドレス宛に前記第2の通信を転送する転送ステップと、
を含む中継処理方法。
複数の第1コンピュータと、第2コンピュータとが接続され、前記第2コンピュータからの通信を前記第1コンピュータに中継する中継装置により実行される中継処理方法であって、
特定の第1コンピュータから、前記第2コンピュータからの第1の通信に対する応答を受信する受信ステップと、
前記応答に含まれる通信識別子に対応付けて、特定の第1コンピュータの識別子を転送ルールデータ格納部に格納する格納ステップと、
前記第2コンピュータから第2の通信を受信すると、前記第2の通信に含まれている前記通信識別子に基づき前記転送ルールデータ格納部から、当該第2の通信の転送先の第1コンピュータを決定し、決定した第1コンピュータのアドレス宛に前記第2の通信を転送する転送ステップと、
を含む中継処理方法。
(付記2)
前記格納ステップにおいて、前記第1の通信に関わる第1アプリケーションに対応する第1アプリケーション識別子を前記応答から抽出し、前記通信識別子に対応づけて前記転送ルールデータ格納部に格納し、
前記転送ステップにおいて、前記第2の通信に含まれている第2アプリケーション識別子に基づいて、担当する第1コンピュータを決定することを特徴とする付記1記載の転送方法。
前記格納ステップにおいて、前記第1の通信に関わる第1アプリケーションに対応する第1アプリケーション識別子を前記応答から抽出し、前記通信識別子に対応づけて前記転送ルールデータ格納部に格納し、
前記転送ステップにおいて、前記第2の通信に含まれている第2アプリケーション識別子に基づいて、担当する第1コンピュータを決定することを特徴とする付記1記載の転送方法。
(付記3)
複数の第1コンピュータと、第2コンピュータとが接続され、前記第2コンピュータからの通信を前記第1コンピュータに中継するコンピュータに、
特定の第1コンピュータから、前記第2コンピュータからの第1の通信に対する応答を受信するステップと、
前記応答に含まれる通信識別子に対応付けて、特定の第1コンピュータの識別子を転送ルールデータ格納部に格納するステップと、
前記第2コンピュータから第2の通信を受信すると、前記第2の通信に含まれている前記通信識別子に基づき前記転送ルールデータ格納部から、当該第2の通信の転送先の第1コンピュータを決定し、決定した第1コンピュータのアドレス宛に前記第2の通信を転送する転送ステップと、
を実行させるプログラム。
複数の第1コンピュータと、第2コンピュータとが接続され、前記第2コンピュータからの通信を前記第1コンピュータに中継するコンピュータに、
特定の第1コンピュータから、前記第2コンピュータからの第1の通信に対する応答を受信するステップと、
前記応答に含まれる通信識別子に対応付けて、特定の第1コンピュータの識別子を転送ルールデータ格納部に格納するステップと、
前記第2コンピュータから第2の通信を受信すると、前記第2の通信に含まれている前記通信識別子に基づき前記転送ルールデータ格納部から、当該第2の通信の転送先の第1コンピュータを決定し、決定した第1コンピュータのアドレス宛に前記第2の通信を転送する転送ステップと、
を実行させるプログラム。
(付記4)
前記格納ステップにおいて、前記第1の通信に関わる第1アプリケーションに対応する第1アプリケーション識別子を前記応答から抽出し、前記通信識別子に対応づけて前記転送ルールデータ格納部に格納し、
前記転送ステップにおいて、前記第2の通信に含まれている第2アプリケーション識別子に基づいて、担当する第1コンピュータを決定することを特徴とする付記3記載のプログラム。
前記格納ステップにおいて、前記第1の通信に関わる第1アプリケーションに対応する第1アプリケーション識別子を前記応答から抽出し、前記通信識別子に対応づけて前記転送ルールデータ格納部に格納し、
前記転送ステップにおいて、前記第2の通信に含まれている第2アプリケーション識別子に基づいて、担当する第1コンピュータを決定することを特徴とする付記3記載のプログラム。
(付記5)
複数の第1コンピュータと、第2コンピュータとが接続される場合に、前記第2コンピュータからの通信を前記第1コンピュータに中継する中継装置であって、
特定の第1コンピュータから、前記第2コンピュータからの第1の通信に対する応答を受信する受信部と、
前記応答に含まれる通信識別子に対応付けて、特定の第1コンピュータの識別子を記憶する転送ルールデータ格納部と、
前記第2コンピュータから第2の通信を受信すると、前記第2の通信に含まれている前記通信識別子に基づき前記転送ルールデータ格納部から、当該第2の通信の転送先の第1コンピュータを決定し、決定した第1コンピュータのアドレス宛に前記第2の通信を転送する転送部と、
を含む中継装置。
複数の第1コンピュータと、第2コンピュータとが接続される場合に、前記第2コンピュータからの通信を前記第1コンピュータに中継する中継装置であって、
特定の第1コンピュータから、前記第2コンピュータからの第1の通信に対する応答を受信する受信部と、
前記応答に含まれる通信識別子に対応付けて、特定の第1コンピュータの識別子を記憶する転送ルールデータ格納部と、
前記第2コンピュータから第2の通信を受信すると、前記第2の通信に含まれている前記通信識別子に基づき前記転送ルールデータ格納部から、当該第2の通信の転送先の第1コンピュータを決定し、決定した第1コンピュータのアドレス宛に前記第2の通信を転送する転送部と、
を含む中継装置。
(付記6)
前記転送ルールデータ格納部は、前記第1の通信に関わる第1アプリケーションに対応する第1アプリケーション識別子を前記応答から抽出された前記通信識別子に対応づけて記憶し、
前記転送部は、前記第2の通信に含まれている第2アプリケーション識別子に基づいて、担当する第1コンピュータを決定することを特徴とする付記5記載の中継装置。
前記転送ルールデータ格納部は、前記第1の通信に関わる第1アプリケーションに対応する第1アプリケーション識別子を前記応答から抽出された前記通信識別子に対応づけて記憶し、
前記転送部は、前記第2の通信に含まれている第2アプリケーション識別子に基づいて、担当する第1コンピュータを決定することを特徴とする付記5記載の中継装置。
201,204 メッセージ受信部
202,205 メッセージ転送部
203 転送先決定部
206 転送ルール生成部
207 データ格納部
202,205 メッセージ転送部
203 転送先決定部
206 転送ルール生成部
207 データ格納部
Claims (6)
- 複数の第1コンピュータと、第2コンピュータとが接続され、前記第2コンピュータからの通信を前記第1コンピュータに中継する中継装置により実行される中継処理方法であって、
特定の第1コンピュータから、前記第2コンピュータからの第1の通信に対する応答を受信する受信ステップと、
前記応答に含まれる通信識別子に対応付けて、特定の第1コンピュータの識別子を転送ルールデータ格納部に格納する格納ステップと、
前記第2コンピュータから第2の通信を受信すると、前記第2の通信に含まれている前記通信識別子に基づき前記転送ルールデータ格納部から、当該第2の通信の転送先の第1コンピュータを決定し、決定した第1コンピュータのアドレス宛に前記第2の通信を転送する転送ステップと、
を含む中継処理方法。 - 前記格納ステップにおいて、前記第1の通信に関わる第1アプリケーションに対応する第1アプリケーション識別子を前記応答から抽出し、前記通信識別子に対応づけて前記転送ルールデータ格納部に格納し、
前記転送ステップにおいて、前記第2の通信に含まれている第2アプリケーション識別子に基づいて、担当する第1コンピュータを決定することを特徴とする請求項1記載の転送方法。 - 複数の第1コンピュータと、第2コンピュータとが接続され、前記第2コンピュータからの通信を前記第1コンピュータに中継するコンピュータに、
特定の第1コンピュータから、前記第2コンピュータからの第1の通信に対する応答を受信するステップと、
前記応答に含まれる通信識別子に対応付けて、特定の第1コンピュータの識別子を転送ルールデータ格納部に格納するステップと、
前記第2コンピュータから第2の通信を受信すると、前記第2の通信に含まれている前記通信識別子に基づき前記転送ルールデータ格納部から、当該第2の通信の転送先の第1コンピュータを決定し、決定した第1コンピュータのアドレス宛に前記第2の通信を転送する転送ステップと、
を実行させるプログラム。 - 前記格納ステップにおいて、前記第1の通信に関わる第1アプリケーションに対応する第1アプリケーション識別子を前記応答から抽出し、前記通信識別子に対応づけて前記転送ルールデータ格納部に格納し、
前記転送ステップにおいて、前記第2の通信に含まれている第2アプリケーション識別子に基づいて、担当する第1コンピュータを決定することを特徴とする請求項3記載のプログラム。 - 複数の第1コンピュータと、第2コンピュータとが接続される場合に、前記第2コンピュータからの通信を前記第1コンピュータに中継する中継装置であって、
特定の第1コンピュータから、前記第2コンピュータからの第1の通信に対する応答を受信する受信部と、
前記応答に含まれる通信識別子に対応付けて、特定の第1コンピュータの識別子を記憶する転送ルールデータ格納部と、
前記第2コンピュータから第2の通信を受信すると、前記第2の通信に含まれている前記通信識別子に基づき前記転送ルールデータ格納部から、当該第2の通信の転送先の第1コンピュータを決定し、決定した第1コンピュータのアドレス宛に前記第2の通信を転送する転送部と、
を含む中継装置。 - 前記転送ルールデータ格納部は、前記第1の通信に関わる第1アプリケーションに対応する第1アプリケーション識別子を前記応答から抽出された前記通信識別子に対応づけて記憶し、
前記転送部は、前記第2の通信に含まれている第2アプリケーション識別子に基づいて、担当する第1コンピュータを決定することを特徴とする請求項5記載の中継装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010132273A JP2011258014A (ja) | 2010-06-09 | 2010-06-09 | 中継処理方法、プログラム及び中継装置 |
US13/150,557 US20110307619A1 (en) | 2010-06-09 | 2011-06-01 | Relay processing method and relay apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010132273A JP2011258014A (ja) | 2010-06-09 | 2010-06-09 | 中継処理方法、プログラム及び中継装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011258014A true JP2011258014A (ja) | 2011-12-22 |
Family
ID=45097163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010132273A Withdrawn JP2011258014A (ja) | 2010-06-09 | 2010-06-09 | 中継処理方法、プログラム及び中継装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110307619A1 (ja) |
JP (1) | JP2011258014A (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201207816D0 (en) * | 2012-05-04 | 2012-06-13 | Vodafone Ip Licensing Ltd | Telecommunication networks |
US10594802B1 (en) * | 2014-04-08 | 2020-03-17 | Quest Software Inc. | System and method for sharing stateful information |
US10439882B2 (en) * | 2016-11-15 | 2019-10-08 | T-Mobile Usa, Inc. | Virtualized networking application and infrastructure |
US20230195514A1 (en) * | 2021-12-20 | 2023-06-22 | Red Hat, Inc. | Uniform addressing in business process engine |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6510464B1 (en) * | 1999-12-14 | 2003-01-21 | Verizon Corporate Services Group Inc. | Secure gateway having routing feature |
US7296076B1 (en) * | 2002-10-23 | 2007-11-13 | Cisco Technology, Inc. | Maintaining session persistence without client-supported cookies |
US20070061467A1 (en) * | 2005-09-15 | 2007-03-15 | Microsoft Corporation | Sessions and session states |
-
2010
- 2010-06-09 JP JP2010132273A patent/JP2011258014A/ja not_active Withdrawn
-
2011
- 2011-06-01 US US13/150,557 patent/US20110307619A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20110307619A1 (en) | 2011-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108449282B (zh) | 一种负载均衡方法及其装置 | |
JP5741150B2 (ja) | 中継装置、中継プログラム、及び中継方法 | |
CN104718733B (zh) | 基于分组的标识符定位符网络协议(ilnp)负载平衡和路由选择的方法和系统 | |
CN111611613A (zh) | 基于icn的工业互联网标识解析系统及数据访问方法 | |
US20070014241A1 (en) | Resolver caching of a shortest path to a multihomed server as determined by a router | |
JP6225249B2 (ja) | ルーティング及び転送の方法、装置、及びシステム | |
CN111193773B (zh) | 负载均衡方法、装置、设备及存储介质 | |
US10554555B2 (en) | Hash-based overlay routing architecture for information centric networks | |
CN109729187B (zh) | 一种代理通信方法、系统、装置及存储介质 | |
RU2642833C2 (ru) | Способ и устройство для обеспечения медиаресурса | |
CN101673272B (zh) | 搜索信息的方法、系统、装置及垂直搜索引擎注册的方法 | |
CN104486402A (zh) | 一种基于大型网站组合均衡的方法 | |
Xie et al. | Supporting seamless virtual machine migration via named data networking in cloud data center | |
CN107181681B (zh) | Sdn二层转发方法及系统 | |
CN110012118B (zh) | 一种提供网络地址转换nat服务的方法及控制器 | |
JP2011258014A (ja) | 中継処理方法、プログラム及び中継装置 | |
US8914436B2 (en) | Data processing device and data retriever | |
US8266639B2 (en) | Remote procedure call (RPC) bind service with physical interface query and selection | |
KR20090022341A (ko) | 유비쿼터스 웹서비스 게이트웨이 및 방법 | |
CN110213365B (zh) | 基于用户分区的用户访问请求处理方法及电子设备 | |
CN110072196B (zh) | 为命名数据网络提供面向区块链应用的通信方法及系统 | |
CN111600929B (zh) | 传输线路探测方法、路由策略生成方法及代理服务器 | |
CN106856456A (zh) | 缓存集群服务的处理方法及系统 | |
CN109120556A (zh) | 一种云主机访问对象存储服务器的方法及系统 | |
US11523443B2 (en) | Extraction, conversion, and transmission of user packet from encapsulated packet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20130903 |