JP5239966B2 - 中継装置、テナント管理プログラム - Google Patents

中継装置、テナント管理プログラム Download PDF

Info

Publication number
JP5239966B2
JP5239966B2 JP2009063875A JP2009063875A JP5239966B2 JP 5239966 B2 JP5239966 B2 JP 5239966B2 JP 2009063875 A JP2009063875 A JP 2009063875A JP 2009063875 A JP2009063875 A JP 2009063875A JP 5239966 B2 JP5239966 B2 JP 5239966B2
Authority
JP
Japan
Prior art keywords
connection
tenant
client
information
server
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
JP2009063875A
Other languages
English (en)
Other versions
JP2010219845A (ja
Inventor
一峰 的場
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009063875A priority Critical patent/JP5239966B2/ja
Priority to US12/725,096 priority patent/US8280953B2/en
Publication of JP2010219845A publication Critical patent/JP2010219845A/ja
Application granted granted Critical
Publication of JP5239966B2 publication Critical patent/JP5239966B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Description

複数の異なるテナントそれぞれを収容し、共有アプリケーションを実行する共有サーバまで中継する中継装置、テナント管理プログラムに関する。
SaaS(Software as a Service)などの、複数の組織や企業ごとに構成されるネットワーク(以降、テナントと称す)に対して、アプリケーションを提供するサーバアプリケーションでは、各テナントに提供するアプリケーションを共通化し、サーバリソースを共用させることで効率的にサーバリソースを活用したいという要件がある。このため、SaaS対応のアプリケーションは、複数のテナントからアクセス可能な共有ネットワーク(例えばInternet上のサーバなど)に配置される。
ここで、マルチテナント対応の共有アプリケーションを備えた共有サーバ、各テナント内のクライアント、およびテナントと共有サーバ間のデータを中継するゲートウェイ装置(以降、GWと称す)を有する従来のシステムの構成を図23に示す。GWは、複数の異なる独立なネットワークを収容することができるマルチテナント対応のVPN装置などの装置であり、各テナント間で相互に直接通信できないように、論理的には分割したネットワークとして扱う要件を満たすものである。
各テナント内のクライアントは自己が所属するテナントを意識することなく通信を行う。即ち各テナント内のクライアントは、共有サーバへのリクエストメッセージなどを送受信する際、自己が属するテナントを識別するための情報(以降、テナントIDと称す)等の付与を行わない。なお、アプリケーション間でやり取りするデータの単位や、複数のパケットから構成されるデータをメッセージと称す。
一方、従来のマルチテナント対応のGWは、各テナントの通信を別々に扱うために、GWの持つIPアドレス(図23の例ではテナントAのセグメントに接続するためのIPアドレスやテナントBのセグメントに接続するためのIPアドレス)やVLANなどで、いずれからデータが送信されたかの別で、テナントを認識し、テナントIDをリクエストメッセージに付与した後、共有サーバへデータを送信する。
従来の共有サーバは、受信した処理対象のリクエストメッセージおよびテナントIDが届くと、指定されたテナントIDを認識することで、いずれのテナントに対する処理であるかを認識し、共有アプリケーションを実行することが可能となる。
メッセージとテナントIDを関連付ける実現方式として、2つの従来方式が考えられる。
第1の従来方式は、メッセージにテナントIDを入れる方式である。図24に第1の従来方式の模式図を示す。この場合、GWが各テナントからメッセージを受信すると、テナントのIDをメッセージ中に埋め込んで共有サーバに伝播させる。共有サーバはメッセージ中に埋め込まれたテナントのIDを読み出し、テナントを判別する。逆方向も同様にメッセージ中にテナントIDを埋め込むことで、共有サーバからGWにテナントの情報を伝える。
第2の従来方式は、パケットにテナントIDを入れる方式である。図25に第2の従来方式の模式図を示す。メッセージに入れ込む第1の従来方式と同様に、GWが各テナントからのパケットにテナントのIDを埋め込んでサーバに伝播させる。
第1の従来方式、第2の従来方式共通の機能ブロック図を図26に示す。GW、共有サーバともに、メッセージ内またはパケット内にテナント識別部によって識別されたテナントIDの入れ込みまたは読み出しを行うテナントID挿抜部を備える構成となる。
なお、テナントIDを埋め込んで通信をする従来技術としては、例えばSIPを用いた通信に関する技術が開示されている。
特開2007−157085号公報
前述のような全メッセージや全パケットに毎回テナントIDを埋め込む方式では、埋め込み及び読み出しの処理により、処理負荷が高くなり、GWおよび共有サーバの性能低下につながる。さらに、上記第2の従来方式においては、通常はサーバ内のTCP/IP層を経由する際にパケットヘッダが削除されるため、サーバ側のアプリケーションにテナントの情報を伝えることが困難になる。
本発明は上述した問題点を解決するためになされたものであり、全メッセージや全パケットごとに行うテナントIDの埋め込みおよび取り出しの処理による性能低下を防ぐことができる中継装置、テナント管理プログラムを提供することを目的とする。
テナント管理プログラムは、中継装置のクライアント側のインタフェースを特定する情報と、前記クライアントが属するネットワークであって組織や企業単位のネットワークであるテナントを識別するためのテナント識別子との対応関係である第1対応関係を記憶し、前記中継装置とサーバとの間のコネクションに係る情報である第1コネクション情報と、前記テナント識別子と、前記コネクションの使用の有無を示す使用情報との対応関係である第2対応関係を記憶し、クライアントと前記中継装置との間のコネクションに係る情報である第2コネクション情報と、前記第1コネクション情報との対応関係である第3対応関係を記憶する、記憶部を有する中継装置に、クライアントから要求メッセージを受けると、前記要求メッセージを受けた中継装置のクライアント側のインタフェース名を検索キーにして、前記第1対応関係を読み出してテナント識別子を得るテナント識別子取得手順と、得たテナント識別子が前記第2対応関係にない場合、前記第1コネクション情報を作成し、作成した第1コネクション情報と得たテナント識別子と、使用情報を使用中とした情報との対応関係を前記対応関係2に書き出す手順と、前記要求メッセージを送信したクライアントのアドレスから前記第2コネクション情報を作成し、作成した第1コネクション情報と作成した第2コネクション情報を前記第3対応関係に書き出す手順と、作成した第1コネクション情報から、前記中継装置と前記サーバとの間にコネクションを設定する手順と、得たテナント識別子を前記サーバに送付する手順と、受けた要求メッセージを、設定されたコネクションを経由して前記サーバに送信する手順と、受けた要求メッセージに対する応答メッセージを前記サーバから受けると、前記使用情報を未使用中に設定する手順と、を実行させる。
また、中継装置は、前記中継装置のクライアント側のインタフェースを特定する情報と、前記クライアントが属するネットワークであって組織や企業単位のネットワークであるテナントを識別するためのテナント識別子との対応関係である第1対応関係を記憶し、前記中継装置とサーバとの間のコネクションに係る情報である第1コネクション情報と、前記テナント識別子と、前記コネクションの使用の有無を示す使用情報との対応関係である第2対応関係を記憶し、クライアントと前記中継装置との間のコネクションに係る情報である第2コネクション情報と、前記第1コネクション情報との対応関係である第3対応関係を記憶する記憶部と、クライアントから要求メッセージを受けると、前記要求メッセージを受けた中継装置のクライアント側のインタフェース名を検索キーにして、前記第1対応関係を読み出してテナント識別子を得るテナント識別部と、前記テナント識別部によって得たテナント識別子が前記第2対応関係にない場合、前記第1コネクション情報を作成し、作成した第1コネクション情報と得られたテナント識別子と、使用情報を使用中とした情報との対応関係を前記対応関係2に書き出し、前記要求メッセージを送信したクライアントのアドレスから前記第2コネクション情報を作成し、作成した第1コネクション情報と作成した第2コネクション情報を前記第3対応関係に書き出すコネクション識別部と、作成された第1コネクション情報から、前記中継装置と前記サーバとの間にコネクションを作成し、得られたテナント識別子を前記サーバに送付し、受けた要求メッセージを、作成したコネクションを経由して前記サーバに送信するコネクション作成部と、を備え、前記コネクション識別部は、さらに、受けた要求メッセージに対する応答メッセージを前記サーバから受けると、前記使用情報を未使用中に設定することを特徴とする。
全パケット、全メッセージに対するテナントIDの書き込みおよび読み出しの処理が不要となることで性能向上が可能となる。
本実施の形態に係るコネクションの状態区分の一例を示す図である。 本実施の形態に係るシステム構成の一例を示す図である。 本実施の形態に係る実施例1の機能ブロックの一例を示す図である。 本実施の形態に係る実施例1のクライアント、GW、共有サーバ間のシーケンスを示す図である。 本実施の形態に係る実施例1で使用するデータ構成の一例を示す図である。 本実施の形態に係る実施例1のテナント/コネクション関連テーブルの変化例を示す図である。 本実施の形態に係る実施例1のコネクション関連付けテーブルの変化を示す図である。 本実施の形態に係る実施例1のGWの処理例を示すフローチャートである。 本実施の形態に係る実施例1の共有サーバの処理例を示すフローチャートである。 本実施の形態に係る実施例2の機能ブロックの一例を示す図である。 本実施の形態に係る実施例2のGWの処理例を示すフローチャートである。 本実施の形態に係る実施例2の共有サーバの処理例を示すフローチャートである。 本実施の形態に係る実施例2のリクエストメッセージの構成例を示す図である。 本実施の形態に係る実施例3の機能ブロックの一例を示す図である。 本実施の形態に係る実施例3のGWの処理例を示すフローチャートである。 本実施の形態に係る実施例3のコネクション上限テーブルの構成例を示す図である。 本実施の形態に係る実施例4の機能ブロックの一例を示す図である。 本実施の形態に係る実施例4のGWの処理例を示すフローチャートである。 本実施の形態に係る実施例4の共有サーバの処理例を示すフローチャートである。 本実施の形態に係る実施例4の関連管理サーバの処理例を示すフローチャートである。 本実施の形態に係るGW、共有サーバ、関連管理サーバのハードウェア構成の一例を示す図である。 本実施の形態に係るGW、共有サーバ、関連管理サーバ内部のハードウェア構成の一例を示す図である。 共有サーバ、各テナント内のクライアント、およびテナントと共有サーバ間のデータを中継するGWを有する従来のシステムを示す図である。 第1の従来方式を説明するための図である。 第2の従来方式を説明するための図である。 第1の従来方式、第2の従来方式共通の機能ブロックを示す図である。
本実施の形態は、共有サーバ及びGW間で利用するL4コネクションとテナントID(テナント識別子)を関連付け、通常の通信処理で利用されるL4コネクションの識別情報をテナントIDの伝播の代わりとすることで、メッセージごとにテナントIDを埋め込むことを回避する。なお、L4コネクションの識別情報は、送信元IPアドレス、宛先IPアドレス、送信元Port番号、宛先Port番号の組を差し、以降、コネクションIDと称す。そのために、本実施の形態のGWと共有サーバに、通信開始時に共有サーバとGWの間で利用されるコネクションID(第1コネクション情報)をテナントIDと関連付ける機能、および通信時にテナントIDとコネクションIDの変換を行うための機能を、追加する。なお、以降の説明ではL4コネクションを単にコネクションと称す。
また、コネクションとテナントIDの関連付けを静的に設定しようとすると、全体のコネクション数に余裕があっても枯渇が起きる。複数の共有サーバや共有アプリケーションがあったときに、共有アプリケーションごとに事前に割り当てた上限値(例えば、GW全体で65535個÷アプリケーション数)までしかコネクションを同時利用できない。そして、特定のアプリケーションにアクセスが偏ると、コネクションが枯渇してしまう。そのため、通信に必要なコネクションを必要なだけ動的に割り当て、削除する方法が必要である。
さらに、動的に設定しようとしても、性能劣化、およびコネクション枯渇が起きる。どのコネクションがどのテナントIDなのか、コネクションを作成する側(GW)では判断可能だが、共有サーバ側では判断できないため、関係を伝える必要がある。しかし、メッセージごとにテナントIDを埋め込むと、従来技術と同様に性能劣化の課題が発生してしまう。また、タイマで関連付けを削除すると、タイムアウト値よりも短い間隔で頻繁にアクセスがあると、全体のコネクション数に余裕があっても枯渇が起きる。
本実施の形態では、これらの問題を解決するため、従来技術よりも少ない処理量で動的に関連付けをする仕組みと、コネクションを最大限利用できるコネクション割当ての仕組みを提供する。
ここで、本実施の形態での動的に関連付けをする仕組み、およびコネクション割当ての仕組みの考え方について説明する。
動的に関連付けをする仕組みに対しては、一度作成したコネクションを流用することでテナントID伝搬の負荷を削減することができる。コネクションを流用する場合、特定のテナント内のクライアントがコネクションを使用している最中に他のテナント内のクライアントがデータの送信を行った場合、送信データの切れ目が分からなくなり、いずれのクライアントからの送受信データであるかの判別が困難となるので、現在使用中のコネクションは使用しないようにする。そのため、テナントIDとコネクションIDを関連付けるテナント/コネクション関連テーブル中に「使用中フラグ」(使用情報)を設け、1つのコネクション中に同時に複数のクライアントからのデータが流れないように制御する。具体的には、GWとサーバとの間のコネクション状態を以下の3つに分割する(図1も参照)。
・使用中状態 : コネクション作成済みの状態であり、特定のテナント内のクライアントが通信中の状態である(図1(A)参照)。
・非使用状態 : コネクション作成済みの状態であるが、当該コネクションは現在使われておらず別の通信による流用待ちの状態である(図1(B)参照)。
・未作成状態 : コネクション未作成の状態である(図1(C)参照)。
GWがクライアントから新規コネクションを受け付けた時に、非使用状態もしくは未作成状態のコネクションが使用される。
本実施の形態のコネクション割当ての仕組みは、非使用状態のコネクションを選択し、関連付けの再割り当てをすることで、解放待ちのような無駄に確保されたコネクションを減らす仕組みを提供する。具体的には、あるテナントの通信において、非使用状態および未作成状態のコネクションが不足したときに、別テナント用の非使用中コネクションを割り当てる仕組みを追加する。
以降、上記を踏まえた具体的な実施例を説明する。
(実施例1)
ここで、システム全体構成、および各ユニットのIPアドレス、接続Port番号の関係の一例を図2に示す。本システムは、テナントAに属するクライアントA1、クライアントA2を有し、またテナントBに属するクライアントB1を有する。また本システムは、テナントA、テナントBと接続されたGW100(中継装置)および共有アプリケーション8を有する共有サーバ200(サーバ)を有する。なお、GW100はネットワークのインタフェース(例えば、VLAN、物理ポート)やIPアドレス等により、メッセージの送信元テナントを判断可能であるものとする。
クライアントA1のIPアドレスは20.0.10.1であり、クライアントA2のIPアドレスは20.0.10.2である。またクライアントB1のIPアドレスは30.0.10.1である。GW100はテナントAに対して20.0.0.1のIPアドレスで接続されており、またテナントBに対して30.0.0.1のIPアドレスで接続されている。テナントA、B内の各クライアントは、GW100のPort番号80に対し接続するものとする。
GW100は、共有ネットワーク上IPアドレス10.0.0.1で共有サーバ200と接続しており、共有サーバ200は共有ネットワーク上IPアドレス10.0.0.2でGW100と接続している。またGW100は、共有サーバ200のPort番号80に接続するものとする。
実施例1のGW100内、および共有サーバ200内の機能ブロックの一例を図3に示す。GW100は、テナント識別部1、コネクション識別部2、コネクション作成部3、テナント/コネクション関連テーブル4を有する。
テナント識別部1は、クライアントの所属するテナントとコネクションのIDの変換を行う機能部であり、各テナント内のクライアントからリクエストメッセージを受信し、送信元のテナントを識別し、テナントIDを決定する。またテナント識別部1は、コネクション識別部2から受信したテナントIDに該当するテナントに共有サーバ200からのレスポンスメッセージを送信する。
コネクション識別部2は、共有サーバ200との間で利用するコネクションのコネクションIDを決定し、テナントIDと共有ネットワーク上のコネクションとの対応を管理する機能部である。コネクション識別部2は、リクエスト受信時に、テナントIDをもとに、テナント/コネクション関連テーブル4を検索し、該当するコネクションIDを得る。該当するコネクションがない場合は、確保するコネクションIDを決定し、テナント/コネクション関連テーブル4にエントリを追加、更新する。またコネクション識別部2は、レスポンス受信時に、コネクションIDをもとに、テナント/コネクション関連テーブル4を検索し、該当するテナントIDを得る。
コネクション作成部3は、コネクション識別部2によって決定されたコネクションIDを共有サーバ200との間で作成し、コネクションとテナントIDの関連を共有する機能部である。コネクション作成部3は、リクエスト受信時に、コネクション識別部2によって決定されたコネクションIDのコネクションが未作成であれば作成し、テナントIDとコネクションIDの関係を共有サーバ200へ伝える。コネクション作成部3は、作成したコネクションを利用して、リクエストメッセージを共有サーバに送信する。またコネクション作成部3は、レスポンス受信時に、受信したレスポンス及びコネクションIDをコネクション識別部2に渡す。
テナント/コネクション関連テーブル4は、コネクションIDとテナントIDの関連を保持するテーブルである。
共有サーバ200は、コネクション識別部5、コネクション作成部6、テナント/コネクション関連テーブル7、共有アプリケーション8(図面中、共有アプリと表記)の機能ブロックを有する。
コネクション識別部5は、コネクションIDとテナントIDの変換を行う機能部であり、リクエストメッセージ受信時に、コネクションIDをもとに、テナント/コネクション関連テーブルを検索し、該当するテナントIDを得る。またコネクション識別部5は、レスポンスメッセージ送信時に、テナントIDをもとに、テナント/コネクション関連テーブル7を検索し、該当するコネクションIDを得る。
コネクション作成部6は、GW100との間でコネクションを作成し、コネクションとテナントIDの関連を共有する機能部である。コネクション作成部6は、リクエストメッセージ受信前に、GW100との間でコネクションを作成する。またコネクション作成部6は、コネクションとテナントIDの関連付けをGW100より通知されると、その情報をテナント/コネクション関連テーブル7に登録する。コネクション作成部6は、レスポンスメッセージ送信時に、コネクション識別部5によって指定されたコネクションIDのコネクションを利用して、レスポンスメッセージをGW100に送信する。
テナント/コネクション関連テーブル7は、コネクションのIDとテナントIDの関連を保持するテーブルである。
共有アプリケーション8は、テナントごとに処理を行うアプリケーションである。共有アプリケーション8は、リクエスト受信時には、指示されたテナントIDに対する処理を行い、レスポンス送信時には、受信時に指定されたテナントIDを付与して、処理結果をコネクション識別部5に渡す。
次に、テナント内の各クライアント、GW100、共有サーバ200の処理を説明する。以下、手順1としてテナントA内のクライアントA1からのメッセージを共有サーバ200に届ける処理、および手順2として共有サーバ200からの応答をクライアントA1へ返す処理について説明する。また、手順2が終了した後でテナントA内の別のクライアントであるクライアントA2からのメッセージを共有サーバ200に届ける処理を手順3として説明し、さらに、テナントA内のクライアントのシーケンスが完了した後に、テナントB内のクライアントB1からのメッセージを共有サーバ200に届ける処理を手順4として説明する。なお、手順3および手順4の応答は手順2と同様の処理のため、説明を省略する。
図4に、各クライアント、GW100、共有サーバ200の間で生ずるシーケンスについて示し、また、図5に実施例1で用いるデータ構造について示す。なお、図5(A)は、テナント/コネクション関連テーブル4、7のテーブル構成例(第2対応関係)であり、図5(B)はGW100内で保持されているテナント識別用のテーブル構成例(第1対応関係)である。また図5(C)は、GW100内で保持される、テナント内でのコネクションID(第2コネクション情報)、共有ネットワーク内でのコネクションID、およびテナントIDとを対応付けるテーブル(コネクション関連付けテーブル)(第3対応関係)の構成例である。
また、図6は、処理ごとのテナント/コネクション関連テーブル4、7の遷移を示す図であり、図7は、コネクション関連付けテーブルの処理ごとの遷移を示す図である。なお、図6、図7での「step n」(nは数字)は、以降の説明上に示す「S n」(nは数字)に対応している。これら図6、図7については以降特に言及しないが、必要に応じ適宜参照すると理解が深まる。
まず、手順1であるテナントA内のクライアントからのメッセージを共有サーバに届ける処理について説明する。
(S1)クライアントA1が、GW100宛に共有アプリケーション8に対するリクエストメッセージを送信する。なお<混在しています。以下同様>、クライアントA1とGW100とのコネクションをコネクション1とし、リクエストメッセージはコネクション1を介してGW100に送信されるものとする。
(S2)GW100がリクエストメッセージを受信すると、テナント識別部1がテナントの識別を行う。今回はテナントA(宛先IPアドレス=20.0.0.1)から受信したため、テナント識別用のテーブル(図5(B))を検索し、テナントID=”A”というIDを取得する。なお、各テナントとテナントIDの関係は、例えば図5(B)のようなテーブルを事前に設定済みであるものとする。
(S3)コネクション識別部2は、取得したテナントID=”A”を検索キーとして、テナント/コネクション関連テーブル4を検索する。該当するエントリがないため、新たにコネクションID(GW IP=10.0.0.1, GW Port=15438, Server IP=10.0.0.2, Server Port=80)を決定し、テナント/コネクション関連テーブル4に上記コネクションIDおよびテナントID=”A”、使用中フラグ1のエントリを追加する(図5(A)参照)。なお、今回新たに決定されたコネクションIDのコネクションをコネクション2とする。なお、コネクション2のGW100のIPアドレスは装置に事前設定されている固定値であり、GW100のPort番号はGW100自身が重複しない値を自律的に選択された番号である。GW100が担当する共有サーバ200のIPアドレスと、各テナントに公開しているGW100のIPアドレス(20.0.0.1/30.0.0.1)との対応が事前設定されており、共有サーバ200のIPアドレスは受信したメッセージのパケットヘッダを元に、宛先サーバが決まるものとする。
(S4)コネクション識別部2は、テナントID=”A”、テナント側のコネクション1のコネクションID(Client IP=20.0.10.1, Client Port =84667, GW IP =20.0.0.1, GW Port =80)と、共有ネットワーク側のコネクション2のコネクションID(GW IP=10.0.0.1, GW Port=15438, Server IP=10.0.0.2, Server Port=80)の対応を記録する(図5(C)参照)。なお、上記コネクション1のIPアドレスおよびPort番号は、クライアントA1から受信したメッセージのパケットヘッダから取得した値を利用する。
(S5)GW100のコネクション作成部3は、指定されたコネクションIDを利用して共有サーバ200との間でコネクション2を作成する。
(S6)GW100のコネクション作成部3は、コネクション2上で、テナントID=”A”を共有サーバ200に対して送信する。
(S7)共有サーバ200のコネクション作成部6は、受信したテナントID=”A”およびコネクション2のコネクションID(GW IP=10.0.0.1, GW Port=15438, Server IP=10.0.0.2, Server Port=80)のエントリをテナント/コネクション関連テーブル7に追加する。
(S8)GW100のコネクション作成部3は、コネクション2を利用してリクエストメッセージを共有サーバ200に送信する。
(S9)コネクション作成部6は、コネクション2を介してリクエストメッセージを受信し、コネクション2のコネクションIDをコネクション識別部5に渡す。また、コネクション作成部6は、テナント/コネクション関連テーブル7にあるコネクション2の使用中フラグを1にする。
(S10)コネクション識別部5は、受信したコネクション2のコネクションIDをもとに、テナント/コネクション関連テーブル7を検索し、テナントID=”A”を取得する。なお、1回目はテナントIDを伝達しているため、テーブル検索をする代わりにコネクション作成部6からテナントID=”A”を受け取っても良い。
(S11)共有アプリケーション8は、リクエストメッセージ及びテナントID=”A”を受け取り、テナントA向けの処理を行う。
なお、テナントIDの伝達には、メッセージと同じコネクションを使う代わりに、テナントID伝達用の専用コネクションを利用し、テナントIDとコネクションIDの関係を伝えても良い。
次に、手順2である共有サーバ200からの応答をクライアントA1へ返す処理について説明する。本処理は、共有アプリケーション8が処理完了後に、受信時のコネクションを利用して、クライアントA1へレスポンスメッセージを返答する処理である。
(S12)共有サーバ200の共有アプリケーション8は、処理結果を含むレスポンスメッセージおよびテナントのID=”A”をコネクション識別部5に渡す。
(S13)コネクション識別部5は、リクエストメッセージを受信したコネクション2を利用して送信させるため、コネクション2のコネクションID(GW IP=10.0.0.1, GW Port=15438, Server IP=10.0.0.2, Server Port=80)をコネクション作成部6に渡す。
(S14)コネクション作成部6は、渡されたコネクションIDのコネクション(すなわちコネクション2)を利用して、レスポンスメッセージをGW100に送信する。また、コネクション作成部6は、テナント/コネクション関連テーブル7に対しコネクション2のエントリの使用中フラグを0に設定し、GW100のコネクション作成部3へコネクションIDおよびレスポンスメッセージを渡す。
(S15)コネクション作成部3は、受信したコネクション2のコネクションIDおよびレスポンスメッセージをコネクション識別部2に渡す。
(S16)コネクション識別部2は、渡されたコネクション2のコネクションIDをもとに、テナント/コネクション関連テーブル4を検索し、テナントID=”A”を取得する。また、テナント/コネクション関連テーブル4に対しコネクション2のエントリの使用中フラグを0に設定する。
(S17)コネクション識別部2は、記録しておいたテナント側のコネクション1(テナント=”A”, Client IP=20.0.10.1, Client Port=84667, GW IP=20.0.0.1, GW Port=80)と、共有ネットワーク側のコネクション2(GW IP=10.0.0.1, GW Port=15438, Server IP=10.0.0.2, Server Port=80)の対応を読み出し、当該エントリを削除した上でコネクション1のコネクションIDおよびテナントID=”A”をテナント識別部1に渡す。
(S18)テナント識別部1は、渡されたテナントID=”A”のインタフェース上にある、クライアント側のコネクション1を利用してレスポンスメッセージを送信する。
次に、手順1、手順2のシーケンスが終了した後にテナントA内のクライアントA2からのメッセージを共有サーバに届ける処理(手順3)を説明する。ここでは、手順2までが行われた後、テナントA内のクライアントA2がメッセージを渡し、GW100と共有サーバ200間で作成済みのコネクション2を再利用する場合の説明を行う。
(S19)クライアントA2が、GW100宛に共有アプリケーション8に対するリクエストメッセージを送信する。なお、リクエストメッセージが送信されるコネクションはコネクション3であるとする。
(S20)GW100がリクエストメッセージを受信すると、テナント識別部1がテナントの識別を行う。今回はテナントAのネットワークから受信したため、テナントID=”A”というIDが取得される。
(S21)コネクション識別部2は、取得したテナントID=”A”を検索キーとして、テナント/コネクション関連テーブル4を検索する。ここで、未使用状態(使用中フラグ=0)のコネクション2(GW IP=10.0.0.1, GW Port=15438, Server IP=10.0.0.2, Server Port=80)が得られる。コネクション識別部2は、テナント/コネクション関連テーブル4に対しコネクション2のエントリの使用中フラグを1に設定する。
(S22)コネクション識別部2は、テナントID=”A”、テナント側のコネクション3(Client IP=20.0.10.2, Client Port=45817, GW IP=20.0.0.1, GW Port=80)と、共有ネットワーク側のコネクション2(GW IP=10.0.0.1, GW Port=15438, Server IP=10.0.0.2, Server Port=80)の対応を図5(C)のように記録する。
(S23)GW100のコネクション作成部3は、コネクション2を利用してクライアントA2からのリクエストメッセージを共有サーバ200に送信する。
(S24)コネクション作成部6は、リクエストメッセージをコネクション2を介して受信し、コネクション2のコネクションIDをコネクション識別部5に渡す。また、コネクション作成部6は、テナント/コネクション関連テーブル7にあるコネクション2の使用中フラグを1にする。
(S25)コネクション識別部5は、受信したコネクション2のコネクションIDをもとに、テナント/コネクション関連テーブル7を検索し、テナントID=”A”を取得する。
(S26)共有アプリケーション8は、リクエストメッセージ及びテナントID=”A”を受け取り、テナントA向けの処理を行う。
次に、テナントAでの処理が終了した後、テナントB内のクライアントB1からのメッセージを共有サーバ200に届ける処理(手順4)について説明する。ここでは手順3までが行われた後、テナントB内のクライアントB1がメッセージを渡し、GW100と共有サーバ200間で作成済みのコネクション2を再利用する場合の説明を行う。つまり、未作成状態のコネクションおよびテナントBに関する非使用状態のコネクションがないものとする。
(S27)クライアントB1が、GW100宛に共有アプリケーション8に対するリクエストメッセージを送信する。なお、リクエストメッセージが送信されるコネクションはコネクション4であるとする。
(S28)GW100がリクエストを受信すると、テナント識別部1がテナントの識別を行う。今回はテナントBのネットワークから受信したため、テナントID=”B”というIDが取得される。
(S29)コネクション識別部2は、取得したテナントID=”B”を検索キーとして、テナント/コネクション関連テーブル4を検索する。テナントID=”B”で、かつ未使用状態(使用中フラグ=0)のコネクションが見つからず、未作成状態のコネクションもないため、テナントA用の未使用状態(使用中フラグ=0)のコネクション2を利用する。コネクション識別部2は、テナント/コネクション関連テーブル4のコネクション2の使用中フラグを1に設定し、テナントID=”B”に変更する。
(S30)コネクション識別部2は、テナントID=”B”、テナント側のコネクション4(Client IP=30.0.10.1, Client Port=73938, GW IP=30.0.0.1, GW Port=80)と、共有ネットワーク側のコネクション2(GW IP=10.0.0.1, GW Port=15438, Server IP=10.0.0.2, Server Port=80)の対応を図5(C)で示したように記録する。
(S31)GW100のコネクション作成部3は、上記コネクション2をテナントID=”B”に変更することを共有サーバ200に対して通知する。
(S32)共有サーバ200のコネクション作成部6は、テナント/コネクション関連テーブル7に対し、コネクション2のコネクションID(GW IP=10.0.0.1, GW Port=15438, Server IP=10.0.0.2, Server Port=80)のエントリを受信したテナントID=”B”に変更する。
(S33)GW100のコネクション作成部3は、上記コネクション2を利用してリクエストメッセージを共有サーバ200に送信する。
(S34)コネクション作成部6は、上記リクエストメッセージを受信し、コネクション2のコネクションIDをコネクション識別部5に渡す。また、テナント/コネクション関連テーブル7にあるコネクション2の使用中フラグを1にする。
(S35)コネクション識別部5は、受信したコネクション2のコネクションIDをもとに、テナント/コネクション関連テーブル7を検索し、テナントID=”B”を取得する。
(S36)共有アプリケーション8は、リクエストメッセージおよびテナントID=”B”を受け取り、テナントB向けの処理を行う。
なお、実施例1ではGW100がリクエストメッセージ受信時に新しくコネクションを作成する場合を記載したが、通信前にGW100と共有サーバ200間で一定数のコネクションが作成され、テナントIDとコネクションIDの関連付けがあらかじめ保持されている方式でも構わない。その場合は、手順1のコネクション作成およびテナントIDの伝達処理が省略される。
次に、GW100内部の処理について、図8のフローチャートを参照しつつ説明する。
テナント識別部1は、メッセージを受信する(S101)。テナント識別部1は、メッセージを受信したGW100のIPアドレスを検索キーとして、図5(B)のテーブルを検索することで識別し、テナントIDを取得する(S102)。またテナント識別部1は、ここで図5(B)のテーブルにエントリされていないことを条件として、取得したメッセージが共有サーバ200からのメッセージであるかを識別する。
テナント識別部1は、各テナントからのアクセスか、または共有サーバ200からのアクセスかを判定する(S103)。ここで、各テナントからのアクセスである場合(S103、Y)、コネクション識別部2は、S102で取得されたテナントIDを検索キーとして、テナント/コネクション関連テーブル4を検索する(S104)。コネクション識別部2は、検索結果に基づき非使用状態のコネクションがあるかを判定する(S105)。非使用状態のコネクションがある場合(S105、Y)、テナント/コネクション関連テーブル4に対し当該非使用状態のコネクションの使用中フラグに1を設定し(S106)、テナントIDと、テナント側のコネクションIDと、共有ネットワーク側のコネクションIDとの対応を記録する(図5(C)参照)(S107)。その後、コネクション作成部3は、メッセージを送信する(S108)。
S105でコネクション識別部2が非使用状態のコネクションは無いと判定した場合(S105、N)、コネクション識別部2は、次に未作成状態のコネクションがあるかを判定する(S109)。未作成状態のコネクションがあると判定された場合(S109、Y)、コネクション識別部2は、コネクションIDを決定し(S110)、テナント/コネクション関連テーブル4に決定したコネクションIDおよびテナントID、使用中フラグ=1のエントリを追加する(S111)。コネクション識別部2は、その後、図5(C)で示したアドレスの対応を記録する(S112)。
コネクション作成部3は、共有サーバ200のコネクション作成部6との間でコネクションを作成し(S113)、作成したコネクション上で、テナントIDを通知することで、コネクションIDの関連付けをテナント/コネクション関連テーブル7に追加するよう通知する(S114)。その後コネクション作成部3は、S108の処理を実行する。
また、S109で未作成状態のコネクションが無いと判定された場合(S109、N)、コネクション識別部2は、テナント/コネクション関連テーブル4を参照することで別テナントの流用可能なコネクションを決定する(S115)。コネクション識別部2は、テナント/コネクション関連テーブル4に対し当該コネクションのエントリのテナントIDを変更し、また使用中フラグを1に設定する(S116)。コネクション識別部2は、図5(C)で示したアドレスの対応を記録する(S117)。コネクション作成部3は、当該コネクションを流用することで、テナントIDを通知し、コネクションIDの関連付けをテナント/コネクション関連テーブル7に追加するよう通知する(S118)。その後、S108の処理が実行される。
また、S103で、各テナントからのアクセスでない場合、すなわち共有サーバ200からのアクセスである場合(S103、N)、コネクション識別部2は、メッセージが受信されたコネクションのコネクションIDでテナント/コネクション関連テーブル4を検索し、テナントIDを取得する(S119)。また、コネクション識別部2は、テナント/コネクション関連テーブル4に対し、当該コネクションのエントリの使用中フラグを0に設定する(S120)。
コネクション識別部2は、記録しておいたテナント側のコネクションIDと共有ネットワーク側のコネクションIDとの対応(図5(C))を読み出し、当該エントリを削除した上でクライアントのコネクションIDおよびテナントIDをテナント識別部1に渡す(S121)。
テナント識別部1は、渡されたテナントIDのインタフェース上にある、クライアント側のコネクションを利用してレスポンスメッセージを送信する(S108)。
次に、共有サーバ200内部の処理について図9のフローチャートを参照しつつ説明する。
コネクション作成部6は、GW100からメッセージを受信し(S151)、受信したメッセージが共有アプリケーション8へのリクエストメッセージであるかを判定する(S152)。
受信したメッセージがリクエストメッセージである場合(S152、Y)、コネクション作成部6は、リクエストメッセージを取得したコネクションのコネクションIDおよびリクエストメッセージをコネクション識別部5に渡す。コネクション識別部5は、取得したコネクションIDをもとに、テナント/コネクション関連テーブル7を検索し、テナントIDを取得する(S153)。
また、コネクション作成部6は、テナント/コネクション関連テーブル7にある該当するコネクションの使用中フラグを1にする(S154)。コネクション識別部5は、S153で取得したテナントIDおよびリクエストメッセージを共有アプリケーション8に通知する(S155)。
共有アプリケーション8は、テナントIDおよびリクエストメッセージを受け取り、受け取ったテナントID用の処理を行う(S156)。処理終了後、共有アプリケーション8は、処理結果を含むレスポンスメッセージおよびテナントIDをコネクション識別部5に渡す。コネクション識別部5は、リクエストメッセージを受信したコネクションを利用して送信させるため、コネクションIDをコネクション作成部6に渡す。
コネクション作成部6は、テナント/コネクション関連テーブル7に対し、取得したコネクションIDで検索し、検索されたエントリの使用中フラグを0に設定する(S157)。コネクション作成部6は、コネクション作成部3へレスポンスメッセージを送信する(S158)。
S152でリクエストメッセージでないと判定された場合(S152、N)、コネクション作成部6は、次にメッセージがコネクション作成依頼である場合(S159、Y)、受信したテナントIDおよびコネクションIDのエントリをテナント/コネクション関連テーブル7に追加することで、コネクションを作成する(S160)。
また、コネクション作成部6は、当該メッセージが関連付け追加の通知(S114の通知)である場合(S161、Y)、テナント/コネクション関連テーブル7に関連付けエントリの追加を行う(S162)。またコネクション作成部6は、当該メッセージが関連付け変更の通知(S118の通知)である場合(S163、Y)、テナント/コネクション関連テーブル7内の該当エントリに対し、テナントIDの変更を行う(S164)。
以上説明した構成および処理によって、GW100と共有サーバ200と間のコネクションの作成時のみテナントIDが通知されるため、各テナントのテナントIDを全メッセージに埋め込むことなく通信が可能となる。よって、全パケット/メッセージに対してテナントIDの書き込みおよび読み出しの処理は不要になる。これにより、GWおよび共有サーバの性能向上が可能となる。
(実施例2)
実施例2では、GWによって送信される初回のメッセージのみメッセージ中にテナントIDを埋め込み、共有サーバにコネクションとテナントIDの関係を伝え、またGWがコネクションとテナントの関係変更時のみメッセージ中にテナントIDを埋め込むことで、共有サーバにコネクションとテナントIDの関係を伝えるシステムについて説明する。
実施例2における機能構成例を図10に示す。また、GW101の処理を図11のフローチャートに示し、共有サーバ201の処理を図12のフローチャートに示す。
実施例2のGW101は、実施例1のGW100に対し、さらにテナントID付与部9を備え、また共有サーバ201は、実施例1の共有サーバ200に対し、さらにテナントID読み出し部10を備える(図10参照)。
テナントID付与部9は、リクエスト受信時に、新しくコネクションを作成するとき、およびコネクションとテナントの関係を変更する時に、テナントIDおよび作成/更新の指示をリクエストメッセージ内に記載する。
テナントID読み出し部10は、メッセージ中にテナントIDおよび作成/更新の指示があるときに、受信したコネクションIDおよびテナントIDの関係を読み出し、テナント/コネクション関連テーブル7に対し該当エントリの作成/変更処理を行う。
上記以外の機能ブロックは実施例1と同様のため説明を省略する。
以下、実施例2のテナントA内のクライアントA1からのメッセージを共有サーバに届ける処理(実施例1の手順1に対応)、およびテナントAでの処理が終了後にテナントB内のクライアントB1からのメッセージを共有サーバに届ける処理(実施例1の手順4に対応)の説明を行う。
まず、実施例2のテナントA内のクライアントA1からのメッセージを共有サーバに届ける処理について説明する。
クライアントA1が、GW101宛に共有アプリケーション8に対するリクエストメッセージを送信する。なお、ここで使用されるコネクションをコネクション1とする。GW101がリクエストメッセージを受信すると、テナント識別部1がテナントの識別を行う。今回はテナントAのネットワークから受信したため、テナントID=”A”というIDを取得する。なお、ネットワークとテナントIDの関係は、実施例1と同様例えば図5(B)のようなテーブルを事前に設定済みであるものとする。
コネクション識別部2は、取得したテナントID=”A”を検索キーとして、テナント/コネクション関連テーブル4を検索する。該当するエントリがないため、コネクション識別部2は、実施例1と同様に新たにコネクションID(GW IP=10.0.0.1, GW Port=15438, Server IP=10.0.0.2, Server Port=80)を決定し(このコネクションIDのコネクションをコネクション2とする)、テナント/コネクション関連テーブル4に上記コネクションIDおよびテナントID=”A”、使用中フラグ1のエントリを追加する(図5(A)参照)。
コネクション識別部2は、テナントID=”A”、テナント側のコネクション1(Client IP=20.0.10.1, Client Port=84667,GW IP=20.0.0.1, GW Port=80)と、共有ネットワーク側のコネクション2(GW IP=10.0.0.1, GW Port=15438, Server IP=10.0.0.2, Server Port=80)の対応を記録する(図5(C)参照)。
テナントID付与部9は、コネクションが新しく作成されるため、指定されたテナントID=”A”および”追加”の依頼をメッセージ中に記載する。例えば図13に示すようにメッセージの先頭に記載用の領域が確保されている場合、テナントID付与部9は、指示内容(追加または変更)およびテナントIDを埋め込むものとする。
GW101のコネクション作成部3は、指定されたコネクションIDのコネクション2を利用して共有サーバとの間でコネクションを作成する。GW101のコネクション作成部3は、コネクション2を利用してリクエストメッセージを共有サーバ201に送信する。共有サーバ201のコネクション作成部6は、リクエストメッセージを受信し、リクエストメッセージをテナントID読み出し部10に渡す。
テナントID読み出し部10は、メッセージ中からテナントID=”A”を読み出し、テナントIDおよびコネクション2のコネクションID(GW IP=10.0.0.1, GW Port=15438, Server IP=10.0.0.2, Server Port=80)、使用中フラグ=1のエントリをテナント/コネクション関連テーブル7に追加する。
コネクション識別部5は、受信したコネクション2のコネクションIDをもとに、テナント/コネクション関連テーブル7を検索し、テナントID=”A”を取得する。なお、1回目はテナントIDを伝達しているため、テーブル検索をする代わりにコネクション作成部6からテナントID=”A”を受け取っても良い。共有アプリケーション8は、リクエストメッセージ及びテナントID=”A”を受け取り、テナントA向けの処理を行う。
次に、上記テナントAでの処理が終了した後に、テナントB内のクライアントB1からのメッセージを共有サーバに届ける処理の説明を行う。
クライアントB1が、GW101宛に共有アプリケーション8に対するリクエストメッセージを送信する。なお、ここで使用されるコネクションをコネクション4とする。
GW101がリクエストメッセージを受信すると、テナント識別部1が図5(B)のテーブルを参照することでテナントの識別を行う。今回はテナントBのネットワークから受信したため、テナントID=”B”を取得する。
コネクション識別部2は、取得したテナントID=”B”を検索キーとして、テナント/コネクション関連テーブル4を検索する。テナントID=”B”で、かつ未使用状態(使用中フラグ=0)のコネクションが見つからず、また未作成状態のコネクションもないため、テナントA用の未使用状態(使用中フラグ=0)のコネクション2が利用される。コネクション識別部2は、テナント/コネクション関連テーブル4のコネクション2の使用中フラグを1に設定し、テナントID=”B”に変更する。
コネクション識別部2は、テナントID=”B”、テナント側のコネクション4(Client IP=30.0.10.1, Client Port=73938, GW IP=30.0.0.1, GW Port=80)と、共有ネットワーク側のコネクション2(GW IP=10.0.0.1, GW Port=15438, Server IP=10.0.0.2, Server Port=80)の対応を記録する。
テナントID付与部9が、指定されたテナントID=”B”および”変更”の依頼をメッセージ中に記載する。GW101のコネクション作成部3は、上記コネクション2を利用してリクエストメッセージを共有サーバ201に送信する。
共有サーバ201のコネクション作成部6は、リクエストメッセージを受信し、リクエストメッセージをテナントID読み出し部10に渡す。テナントID読み出し部10は、メッセージ中からテナントのID=”B”を読み出し、テナント/コネクション関連テーブル7のコネクション2に関するエントリ(コネクションIDが(GW IP=10.0.0.1, GW Port=15438, Server IP=10.0.0.2, Server Port=80)であるエントリ)のテナントIDを”B”に変更し、使用中フラグを1に設定する。
コネクション識別部5は、受信したコネクション2のコネクションIDをもとに、テナント/コネクション関連テーブル7を検索し、テナントID=”B”を取得する。共有アプリケーション8は、リクエストメッセージ及びテナントID=”B”を受け取り、テナントB向けの処理を行う。
次に、実施例2のGW101の処理を図11のフローチャートを参照しつつ説明する。なお、上述実施例1のGW100の処理(図8)と同一符号は同一処理であるため、説明を割愛し、実施例1と異なる処理についてのみ説明する。
S112の処理後、テナントID付与部9は、テナントIDおよび追加指示をメッセージに埋め込み(S201)、コネクション作成部3は、共有サーバ201のコネクション作成部6との間でコネクションを作成する(S113)。
また、S117の処理後、テナントID付与部9は、テナントIDおよび変更指示をメッセージに埋め込み(S202)、メッセージが送信される(S108)。
引き続き、実施例2の共有サーバ201の処理を図12のフローチャートを参照しつつ説明する。なお、上述実施例1の共有サーバ200の処理(図9)と同一符号は同一処理であるため、説明を割愛し、実施例1と異なる処理についてのみ説明する。
S152のリクエストメッセージか否かの判定で、リクエストメッセージであると判定された場合(S152、Y)、テナントID読み出し部10は、メッセージ中に図13で示した指示内容の有無を判定することで、関連付けの追加または変更指示があるかを判定する(S203)。ここで、メッセージ中に指示がある場合(S203、Y)、テナントID読み出し部10は、当該指示が関連付けの追加指示であるかを判定する(S204)。
関連付け追加指示である場合(S204、Y)、テナントID読み出し部10は、テナント/コネクション関連テーブル7に対し関連付けの追加を行い(S205)、関連付け追加の指示でない場合(S204、N)、テナント/コネクション関連テーブル7に対しテナントIDの関連付けの変更を行う(S206)。
以上より、コネクション上で通知処理を別途行わずに、必要なタイミングのみメッセージ中にテナントIDを埋め込むことで、通知処理にかかるネットワーク遅延を減らしつつ、コネクションの流用による処理負荷の軽減も実現可能となる。
(実施例3)
実施例3では、テナントごとにGWと共有サーバとの間で利用できるコネクション数の上限を設ける方法について説明する。実施例3における機能構成図を図14に示す。なお、共有サーバの機能構成およびフローチャートは実施例1と同様である。
実施例3のGW102は、実施例1のGW100に対しさらにコネクション上限テーブル11(第4対応関係)を有する。コネクション上限テーブル11は、テナントごとに、GW102と共有サーバ200間のコネクション上限を保持するテーブルである。
コネクション識別部2が他のテナントのコネクションを流用する前に、コネクション上限テーブル11に登録されている上限に達している場合、エラー処理を行う。なお、このエラー処理としては、リクエストメッセージを廃棄、クライアントにエラーメッセージを応答、リクエストメッセージを保持して同一テナント内の空きコネクションが出るまで待機させるなどの選択肢が考えられる。
コネクション上限テーブル11のエントリは図16のように設定されており、既にテナントBが上限値の100コネクションを利用している場合、実施例1の手順4が以下のように変更になる。
クライアントB1が、GW102宛に共有アプリケーション8に対するリクエストメッセージを送信する。GW102がリクエストを受信すると、テナント識別部1がテナントの識別を行う。今回はテナントBのネットワークから受信したため、テナントID=”B”というIDを取得する。コネクション識別部2は、上記取得したテナントID=”B”を検索キーとして、テナント/コネクション関連テーブル4を検索する。テナントID=”B”で、かつ未使用状態(使用中フラグ=0)のコネクションが見つからず、未作成状態のコネクションもないため、コネクション識別部2は、コネクション上限テーブル11のエントリ(上限100)を読み出す。
コネクション識別部2は、テナント/コネクション関連テーブル4のテナントBのエントリ数をカウントする。本例では上記上限値に達しているため、エラー処理として受信したリクエストメッセージを廃棄する。
なお、特定のテナントには制限を与えたくない場合は、コネクション上限テーブル11にそのテナントのエントリを追加しないようにすることで実現される。
次に、実施例3のGW102の処理を図15のフローチャートに示す。なお、上述実施例1のGW100の処理と同一符号は同一処理であるため、説明を割愛する。
S109の処理で、コネクション識別部2が未作成状態のコネクションは無いと判定した場合(S109、N)、コネクション識別部2は、コネクション上限まで当該テナントIDのコネクション数が達しているかを、コネクション上限テーブル11を参照することで判定する(S301)。ここでコネクション上限まで達している場合(S301、Y)、S115の処理がなされ、コネクション上限まで達していない場合(S301、N)、コネクション識別部2はエラー処理を実行する(S302)。
以上より、コネクションを再利用する際に、上限値を設定可能となり、特定のテナントがコネクションを浪費しすぎることを防ぐことができる。
(実施例4)
実施例4では、GW、共有サーバそれぞれにテナント/コネクション関連テーブルを有する構成ではなく、関連管理サーバを用意し、テナント/コネクション関連テーブルは関連管理サーバ内で管理する構成について説明する。
実施例4における機能構成図を図17に示す。実施例4では、実施例1のGW100内のテナント/コネクション関連テーブル4および実施例1の共有サーバ200内のテナント/コネクション関連テーブル7を削除する。その代わりにテナント/コネクション関連テーブル12を有する関連管理サーバ300を用意する。なお、テナント/コネクション関連テーブル12は、テナント/コネクション関連テーブル4、テナント/コネクション関連テーブル7と同様、コネクションIDとテナントIDの関連を保持する機能を有する(図5(A)参照)。
基本的な処理の流れは実施例1と同様であるが、GW103及び共有サーバ203が行うテナント/コネクション関連テーブルへの更新・参照処理は、GW103及び共有サーバ203が関連管理サーバ300へ更新・参照処理を依頼し、関連管理サーバ300が内部のテナント/コネクション関連テーブル12に対し更新・参照処理を行うことで実現される。
実施例GW103の処理を図18のフローチャートに、共有サーバ203の処理を図19のフローチャートに、関連管理サーバ300の処理を図20のフローチャートにそれぞれ示す。GW103の処理、および共有サーバ203の処理は、共に実施例1におけるテナント/コネクション関連テーブル4、7への更新・参照処理(図8、図9のS104、S106、S111、S116、S119、S120、S153、S154)が、関連管理サーバ300へ依頼する処理(S401、S402、S403、S404、S405、S406、S407)となること以外、実施例1と同一であるため、GW103の処理、および共有サーバ203の処理についての説明は割愛する。
関連管理サーバ300の処理について、図20を参照しつつ説明する。
関連管理サーバ300は、依頼メッセージをGW103または共有サーバ203より受信し(S450)、依頼メッセージが、S401、S405もしくはS407によるテーブル検索依頼である場合(S451、Y)、テナント/コネクション関連テーブル12内を依頼メッセージに付されたデータを検索キーとして検索し(S452)、処理結果を、依頼メッセージを送信したGW103または共有サーバ203へ通知する(S459)。
依頼メッセージがS403による関連付け追加依頼である場合(S453、Y)、関連管理サーバ300は、テナント/コネクション関連テーブル12に関連付けのエントリ追加処理を行うとともに、追加したエントリの使用中フラグを1に設定する(S454)。その後、処理完了通知がなされる(S459)。
また依頼メッセージがS404による関連付け変更依頼である場合(S455、Y)、関連管理サーバ300は、テナント/コネクション関連テーブル12に関連付けの変更処理を行う(S456)。その後、処理完了通知がなされる(S459)。
依頼メッセージがS406による使用フラグの変更依頼である場合(S457、Y)、関連管理サーバ300は、テナント/コネクション関連テーブル12に該当するエントリの使用フラグを変更する(S458)。その後、処理完了通知がなされる(S459)。
実施例4によって、複数存在していたテーブルが1つに統合されるため、コネクション作成部3とコネクション作成部6の間で行う、テナントとコネクションの関連を伝える処理が不要になる。また、使用中フラグの更新処理は、メッセージ送信開始および受信完了のイベントが発生する、GW103のみから行えばよい(図9のS159、Nの処理と図19のS159、Nの処理の違いに留意)。
以上、コネクションの状態を一箇所で一括管理できるため、異常時に複数テーブル間の対応が取れなくなるような問題が発生しにくくなる。
上述の実施例1から実施例4で説明した各機能を組み合わせて提供することも可能である。
なお、本発明は以下に示すようなコンピュータシステムにおいて適用可能である。図21は、本発明が適用されるコンピュータシステムの一例を示す図である。この図に示すコンピュータシステム900は、CPUやディスクドライブ等を内蔵した本体部901、本体部901からの指示により画像を表示するディスプレイ902、コンピュータシステム900に種々の情報を入力するためのキーボード903、ディスプレイ902の表示画面902a上の任意の位置を指定するマウス904及び外部のデータベース等にアクセスして他のコンピュータシステムに記憶されているプログラム等をダウンロードする通信装置905を有する。通信装置905は、ネットワーク通信カード、モデムなどが考えられる。
上述したような、中継装置(GW100〜103)を構成するコンピュータシステムにおいて上述した各ステップを実行させるプログラムを、テナント管理プログラムとして提供することができる。このプログラムは、コンピュータシステムにより読み取り可能な記録媒体に記憶させることによって、中継装置のコンピュータシステムに実行させることが可能となる。上述した各ステップを実行するプログラムは、ディスク910等の可搬型記録媒体に格納されるか、通信装置905により他のコンピュータシステムの記録媒体906からダウンロードされる。また、コンピュータシステム900に少なくともテナント管理機能を持たせるテナント管理プログラムは、コンピュータシステム900に入力されてコンパイルされる。このプログラムは、コンピュータシステム900を、テナント管理機能を有するテナント管理システムとして動作させる。また、このプログラムは、例えばディスク910等のコンピュータ読み取り可能な記録媒体に格納されていても良い。ここで、コンピュータシステム900により読み取り可能な記録媒体としては、ROMやRAM等のコンピュータに内部実装される内部記憶装置、ディスク910やフレキシブルディスク、DVDディスク、光磁気ディスク、ICカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータシステム並びにそのデータベースや、通信装置905のような通信手段を介して接続されるコンピュータシステムでアクセス可能な各種記録媒体を含む。
ここで、上述のGW100〜103のハードウェア構成について図22を参照しつつ説明する。GW100〜103は、演算処理装置であるCPU(Central Processing Unit)951、主記憶装置であるメモリ952、ディスク910等を格納し、データの読み書きを行うディスクドライブ953、不揮発性の記憶装置である不揮発性記憶装置954を備え、また外部とのデータの通信を制御するI/O装置955を備える。なお、上述したGW100〜103内の各機能ブロックは、CPU951、メモリ952、不揮発性記憶装置954、I/O装置955のハードウェア資源と、不揮発性記憶装置954内に予め保持されているファームウェアとが協働することで実現される。
本実施の形態で開示したGW、共有サーバによって、全パケット、全メッセージに対するテナントIDの書き込みおよび読み出しの処理が不要となるため、性能向上が可能となる。また、コネクションとテナントIDの伝播はコネクション単位に必要な処理である。そのため1つのコネクション上で複数メッセージ/パケットを送信する場合、従来技術よりも処理頻度が減り、性能向上が可能となる。
本発明は、その精神または主要な特徴から逸脱することなく、他の様々な形で実施することができる。そのため、前述の実施の形態は、あらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には、何ら拘束されない。更に、特許請求の範囲の均等範囲に属する全ての変形、様々な改良、代替および改質は、全て本発明の範囲内のものである。
以上、本実施の形態によれば、以下の付記で示す技術的思想が開示されている。
(付記1) 中継装置のクライアント側のアドレスを特定する情報と、前記クライアントが属するネットワークであって組織や企業単位のネットワークであるテナントを識別するためのテナント識別子との対応関係である第1対応関係を記憶し、
前記中継装置とサーバとの間のコネクションに係る情報である第1コネクション情報と、前記テナント識別子と、前記コネクションの使用の有無を示す使用情報との対応関係である第2対応関係を記憶し、
クライアントと前記中継装置との間のコネクションに係る情報である第2コネクション情報と、前記第1コネクション情報との対応関係である第3対応関係を記憶する、
記憶部を有する中継装置に、
クライアントから要求メッセージを受けると、前記要求メッセージを受けた中継装置のクライアント側のアドレスを検索キーにして、前記第1対応関係を読み出してテナント識別子を得るテナント識別子取得手順と、
得たテナント識別子が前記第2対応関係にない場合、前記第1コネクション情報を作成し、作成した第1コネクション情報と得たテナント識別子と、使用情報を使用中とした情報との対応関係を前記対応関係2に書き出す手順と、
前記要求メッセージを送信したクライアントのアドレスから前記第2コネクション情報を作成し、作成した第1コネクション情報と作成した第2コネクション情報を前記第3対応関係に書き出す手順と、
作成した第1コネクション情報から、前記中継装置と前記サーバとの間にコネクションを設定する手順と、
得たテナント識別子を前記サーバに送付する手順と、
受けた要求メッセージを、設定されたコネクションを経由して前記サーバに送信する手順と、
受けた要求メッセージに対する応答メッセージを前記サーバから受けると、前記使用情報を未使用中に設定する手順と、
を実行させるためのテナント管理プログラム。
(付記2)前記中継装置に、
前記クライアントと異なるクライアントから要求メッセージを受けると、前記テナント識別子取得手順で得たテナント識別子が前記第2対応関係に有り、かつ、前記使用情報が未使用中の場合、
前記使用情報を使用中に設定して前記第2対応関係に書き出す手順と、
前記クライアントのアドレスから前記第2コネクション情報を作成し、作成した第1コネクション情報と作成した第2コネクション情報を前記第3対応関係に書き出す手順と、
受けた要求メッセージを、前記コネクションを経由して前記サーバに送付する手順と、
受けた要求メッセージに対する応答メッセージを前記サーバから受けると、前記使用情報を未使用中に設定する手順と、
をさらに実行させるための付記1記載のテナント管理プログラム。
(付記3) 前記中継装置に、
前記クライアントと異なるクライアントである第2クライアントから要求メッセージを受けると、前記テナント識別子取得手順で得たテナント識別子に対応する前記使用情報が未使用中のエントリである第1エントリが前記第2対応関係になく、かつ、得たテナント識別子と異なるテナント識別子であって前記使用情報が未使用中のエントリである第2エントリがある場合、
前記第2エントリの使用情報を使用中に設定し、得たテナント識別子を設定して前記第2対応関係に書き出す手順と、
前記第2クライアントのアドレスから前記第2コネクション情報を作成し、作成した第1コネクション情報と作成した第2コネクション情報を前記第3対応関係に書き出す手順と、
前記テナント識別子取得手順で得たテナント識別子を前記サーバに送信する手順と、
前記第2クライアントから受けた要求メッセージを、前記コネクションを経由して前記サーバに送付する手順と、
前記第2クライアントから受けた要求メッセージに対する応答メッセージを前記サーバから受けると、前記使用情報を未使用中に設定する手順と、
を実行させるための付記1記載のテナント管理プログラム。
(付記4) 前記中継装置に、
得たテナント識別子を前記サーバに送付する前記手順は、未作成である旨の使用情報がある場合、得たテナント識別子を要求メッセージに埋め込み、前記サーバに送付することを特徴とする付記1記載のテナント管理プログラム。
(付記5) 前記記憶部は、さらに、前記テナント識別子と、該テナント識別子のテナントが使用可能なコネクションの上限値との対応関係である第4対応関係を有している場合、
中継装置に、
要求メッセージを送信したクライアントが属するテナントのテナント識別子を検索キーとして、前記第4対応関係を検索し、コネクションの上限値を取得する手順と、
前記要求メッセージを送信したクライアントが属するテナントが使用しているコネクションの数が取得した上限値まで達している場合、エラー処理を行う手順と、
を実行させるための付記1記載のテナント管理プログラム。
(付記6) 前記記憶部は、前記中継装置内ではなく外部の関連管理サーバに備えられていることを特徴とする付記1記載のテナント管理プログラム。
(付記7) 中継装置であって、
前記中継装置のクライアント側のアドレスを特定する情報と、前記クライアントが属するネットワークであって組織や企業単位のネットワークであるテナントを識別するためのテナント識別子との対応関係である第1対応関係を記憶し、
前記中継装置とサーバとの間のコネクションに係る情報である第1コネクション情報と、前記テナント識別子と、前記コネクションの使用の有無を示す使用情報との対応関係である第2対応関係を記憶し、
クライアントと前記中継装置との間のコネクションに係る情報である第2コネクション情報と、前記第1コネクション情報との対応関係である第3対応関係を記憶する記憶部と、
クライアントから要求メッセージを受けると、前記要求メッセージを受けた中継装置のクライアント側のアドレスを検索キーにして、前記第1対応関係を読み出してテナント識別子を得るテナント識別部と、
前記テナント識別部によって得たテナント識別子が前記第2対応関係にない場合、前記第1コネクション情報を作成し、作成した第1コネクション情報と得られたテナント識別子と、使用情報を使用中とした情報との対応関係を前記第2対応関係に書き出し、
前記要求メッセージを送信したクライアントのアドレスから前記第2コネクション情報を作成し、作成した第1コネクション情報と作成した第2コネクション情報を前記第3対応関係に書き出すコネクション識別部と、
作成された第1コネクション情報から、前記中継装置と前記サーバとの間にコネクションを作成し、得られたテナント識別子を前記サーバに送付し、受けた要求メッセージを、作成したコネクションを経由して前記サーバに送信するコネクション作成部と、を備え、
前記コネクション識別部は、さらに、受けた要求メッセージに対する応答メッセージを前記サーバから受けると、前記使用情報を未使用中に設定することを特徴とする中継装置。
(付記8) 前記コネクション識別部は、さらに、前記クライアントと異なるクライアントから要求メッセージを受けると、前記テナント識別部によって得られたテナント識別子が前記第2対応関係に有り、かつ、前記使用情報が未使用中の場合、前記使用情報を使用中に設定して前記第2対応関係に書き出し、前記要求メッセージを送信したクライアントのアドレスから前記第2コネクション情報を作成し、作成した第1コネクション情報と作成した第2コネクション情報を前記第3対応関係に書き出し、
コネクション作成部は、前記受けた要求メッセージを、前記コネクションを経由して前記サーバに送付することを特徴とする付記7記載の中継装置。
(付記9) 前記コネクション識別部は、さらに、前記クライアントと異なるクライアントである第2クライアントから要求メッセージを受けると、前記テナント識別部によって得たテナント識別子に対応する前記使用情報が未使用中のエントリである第1エントリが前記第2対応関係になく、かつ、得られたテナント識別子と異なるテナント識別子であって前記使用情報が未使用中のエントリである第2エントリがある場合、前記第2エントリの使用情報を使用中に設定し、得られたテナント識別子を設定して前記第2対応関係に書き出し、前記第2クライアントのアドレスから前記第2コネクション情報を作成し、作成した第1コネクション情報と作成した第2コネクション情報を前記第3対応関係に書き出し、
前記コネクション作成部は、さらに、前記テナント識別部によって得られたテナント識別子を前記サーバに送信し、前記第2クライアントから受けた要求メッセージを、前記コネクションを経由して前記サーバに送付することを特徴とする付記7記載の中継装置。
(付記10) クライアントとサーバとの間のデータ通信を中継する中継装置であって、
クライアントからサーバへの要求メッセージを受信したときに、前記クライアントが属するネットワークであって組織や企業単位のネットワークであるテナントの識別情報を取得するテナント識別部と、
前記中継装置と前記サーバとのコネクションを一意に識別可能なコネクションIDであるサーバ間コネクションIDと、前記中継装置と前記クライアントとのコネクションを一意に識別可能なコネクションIDと、前記テナントの識別情報との対応関係を作成するコネクション識別部と、
前記サーバ間コネクションIDに基づき前記中継装置と前記サーバとの間でコネクションを作成した後に、前記テナントの識別情報と作成したコネクションとを前記サーバに対応付けさせるため、前記サーバへ前記テナントの識別情報を1回送信し、その後、前記要求メッセージを前記サーバへ送信するコネクション作成部と、
を有する中継装置。
1 テナント識別部、2、5 コネクション識別部、3、6 コネクション作成部、4、7、12 テナント/コネクション関連テーブル、8 共有アプリケーション、9 テナントID付与部、10 テナントID読み出し部、11 コネクション上限テーブル、100、101、102、103 GW、200、201、203 共有サーバ、300 関連管理サーバ。

Claims (9)

  1. 中継装置のクライアント側のインタフェースを特定する情報と、前記クライアントが属するネットワークであって組織や企業単位のネットワークであるテナントを識別するためのテナント識別子との対応関係である第1対応関係を記憶し、
    前記中継装置とサーバとの間のコネクションに係る情報である第1コネクション情報と、前記テナント識別子と、前記コネクションの使用の有無を示す使用情報との対応関係である第2対応関係を記憶し、
    クライアントと前記中継装置との間のコネクションに係る情報である第2コネクション情報と、前記第1コネクション情報との対応関係である第3対応関係を記憶する、
    記憶部を有する中継装置に、
    クライアントから要求メッセージを受けると、前記要求メッセージを受けた中継装置のクライアント側のインタフェースを特定する情報を検索キーにして、前記第1対応関係を読み出してテナント識別子を得るテナント識別子取得手順と、
    得たテナント識別子が前記第2対応関係にない場合、前記第1コネクション情報を作成し、作成した第1コネクション情報と得たテナント識別子と、使用情報を使用中とした情報との対応関係を前記第2対応関係に書き出す手順と、
    前記要求メッセージを送信したクライアントのアドレスから前記第2コネクション情報を作成し、作成した第1コネクション情報と作成した第2コネクション情報を前記第3対応関係に書き出す手順と、
    作成した第1コネクション情報から、前記中継装置と前記サーバとの間にコネクションを設定する手順と、
    得たテナント識別子を前記サーバに送付する手順と、
    受けた要求メッセージを、設定されたコネクションを経由して前記サーバに送信する手順と、
    受けた要求メッセージに対する応答メッセージを前記サーバから受けると、前記使用情報を未使用中に設定する手順と、
    を実行させるためのテナント管理プログラム。
  2. 前記中継装置に、
    前記クライアントと異なるクライアントから要求メッセージを受けると、前記テナント識別子取得手順で得たテナント識別子が前記第2対応関係に有り、かつ、前記使用情報が未使用中の場合、
    前記使用情報を使用中に設定して前記第2対応関係に書き出す手順と、
    前記クライアントのアドレスから前記第2コネクション情報を作成し、作成した第1コネクション情報と作成した第2コネクション情報を前記第3対応関係に書き出す手順と、
    受けた要求メッセージを、前記コネクションを経由して前記サーバに送付する手順と、
    受けた要求メッセージに対する応答メッセージを前記サーバから受けると、前記使用情報を未使用中に設定する手順と、
    をさらに実行させるための請求項1記載のテナント管理プログラム。
  3. 前記中継装置に、
    前記クライアントと異なるクライアントである第2クライアントから要求メッセージを受けると、前記テナント識別子取得手順で得たテナント識別子に対応する前記使用情報が未使用中のエントリである第1エントリが前記第2対応関係になく、かつ、得たテナント識別子と異なるテナント識別子であって前記使用情報が未使用中のエントリである第2エントリがある場合、
    前記第2エントリの使用情報を使用中に設定し、得たテナント識別子を設定して前記第2対応関係に書き出す手順と、
    前記第2クライアントのアドレスから前記第2コネクション情報を作成し、作成した第1コネクション情報と作成した第2コネクション情報を前記第3対応関係に書き出す手順と、
    前記テナント識別子取得手順で得たテナント識別子を前記サーバに送信する手順と、
    前記第2クライアントから受けた要求メッセージを、前記コネクションを経由して前記サーバに送付する手順と、
    前記第2クライアントから受けた要求メッセージに対する応答メッセージを前記サーバから受けると、前記使用情報を未使用中に設定する手順と、
    を実行させるための請求項1または2記載のテナント管理プログラム。
  4. 前記中継装置に、
    得たテナント識別子を前記サーバに送付する前記手順は、未作成である旨の使用情報がある場合、得たテナント識別子を要求メッセージに埋め込み、前記サーバに送付することを特徴とする請求項1乃至請求項3のいずれかに記載のテナント管理プログラム。
  5. 前記保持部は、さらに、前記テナント識別子と、該テナント識別子のテナントが使用可能なコネクションの上限値との対応関係である第4対応関係を有している場合、
    中継装置に、
    要求メッセージを送信したクライアントが属するテナントのテナント識別子を検索キーとして、前記第4対応関係を検索し、コネクションの上限値を取得する手順と、
    前記要求メッセージを送信したクライアントが属するテナントが使用しているコネクションの数が取得した上限値まで達している場合、エラー処理を行う手順と、
    を実行させるための請求項1乃至請求項4記載のテナント管理プログラム。
  6. 前記保持部は、前記中継装置内ではなく外部の関連管理サーバに備えられていることを特徴とする請求項1乃至請求項5記載のテナント管理プログラム。
  7. 中継装置であって、
    前記中継装置のクライアント側のインタフェースを特定する情報と、前記クライアントが属するネットワークであって組織や企業単位のネットワークであるテナントを識別するためのテナント識別子との対応関係である第1対応関係を記憶し、
    前記中継装置とサーバとの間のコネクションに係る情報である第1コネクション情報と、前記テナント識別子と、前記コネクションの使用の有無を示す使用情報との対応関係である第2対応関係を記憶し、
    クライアントと前記中継装置との間のコネクションに係る情報である第2コネクション情報と、前記第1コネクション情報との対応関係である第3対応関係を記憶する記憶部と、
    クライアントから要求メッセージを受けると、前記要求メッセージを受けた中継装置のクライアント側のインタフェースを特定する情報を検索キーにして、前記第1対応関係を読み出してテナント識別子を得るテナント識別部と、
    前記テナント識別部によって得たテナント識別子が前記第2対応関係にない場合、前記第1コネクション情報を作成し、作成した第1コネクション情報と得られたテナント識別子と、使用情報を使用中とした情報との対応関係を前記第2対応関係に書き出し、
    前記要求メッセージを送信したクライアントのアドレスから前記第2コネクション情報を作成し、作成した第1コネクション情報と作成した第2コネクション情報を前記第3対応関係に書き出すコネクション識別部と、
    作成された第1コネクション情報から、前記中継装置と前記サーバとの間にコネクションを作成し、得られたテナント識別子を前記サーバに送付し、受けた要求メッセージを、作成したコネクションを経由して前記サーバに送信するコネクション作成部と、を備え、
    前記コネクション識別部は、さらに、受けた要求メッセージに対する応答メッセージを前記サーバから受けると、前記使用情報を未使用中に設定することを特徴とする中継装置。
  8. 前記コネクション識別部は、さらに、前記クライアントと異なるクライアントから要求メッセージを受けると、前記テナント識別部によって得られたテナント識別子が前記第2対応関係に有り、かつ、前記使用情報が未使用中の場合、前記使用情報を使用中に設定して前記第2対応関係に書き出し、前記要求メッセージを送信したクライアントのアドレスから前記第2コネクション情報を作成し、作成した第1コネクション情報と作成した第2コネクション情報を前記第3対応関係に書き出し、
    コネクション作成部は、前記受けた要求メッセージを、前記コネクションを経由して前記サーバに送付することを特徴とする請求項7記載の中継装置。
  9. 前記コネクション識別部は、さらに、前記クライアントと異なるクライアントである第2クライアントから要求メッセージを受けると、前記テナント識別部によって得たテナント識別子に対応する前記使用情報が未使用中のエントリである第1エントリが前記第2対応関係になく、かつ、得られたテナント識別子と異なるテナント識別子であって前記使用情報が未使用中のエントリである第2エントリがある場合、前記第2エントリの使用情報を使用中に設定し、得られたテナント識別子を設定して前記第2対応関係に書き出し、前記第2クライアントのアドレスから前記第2コネクション情報を作成し、作成した第1コネクション情報と作成した第2コネクション情報を前記第3対応関係に書き出し、
    前記コネクション作成部は、さらに、前記テナント識別部によって得られたテナント識別子を前記サーバに送信し、前記第2クライアントから受けた要求メッセージを、前記コネクションを経由して前記サーバに送付することを特徴とする請求項7または8記載の中継装置。
JP2009063875A 2009-03-17 2009-03-17 中継装置、テナント管理プログラム Expired - Fee Related JP5239966B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009063875A JP5239966B2 (ja) 2009-03-17 2009-03-17 中継装置、テナント管理プログラム
US12/725,096 US8280953B2 (en) 2009-03-17 2010-03-16 Relay unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009063875A JP5239966B2 (ja) 2009-03-17 2009-03-17 中継装置、テナント管理プログラム

Publications (2)

Publication Number Publication Date
JP2010219845A JP2010219845A (ja) 2010-09-30
JP5239966B2 true JP5239966B2 (ja) 2013-07-17

Family

ID=42738563

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009063875A Expired - Fee Related JP5239966B2 (ja) 2009-03-17 2009-03-17 中継装置、テナント管理プログラム

Country Status (2)

Country Link
US (1) US8280953B2 (ja)
JP (1) JP5239966B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8533155B2 (en) * 2009-10-30 2013-09-10 Hitachi Data Systems Corporation Fixed content storage within a partitioned content platform, with replication
US8935427B2 (en) * 2010-09-23 2015-01-13 Microsoft Corporation Providing virtual networks using multi-tenant relays
JP5736971B2 (ja) 2011-05-30 2015-06-17 富士通株式会社 通信制御方法および管理装置
US9749285B2 (en) * 2011-12-08 2017-08-29 Honeywell International Inc. Connected home control system with auto router port configuration and DDNS registration
JP6146088B2 (ja) * 2012-09-28 2017-06-14 沖電気工業株式会社 ゲートウェイ装置、通信装置、及び通信コネクション管理方法
JP6129526B2 (ja) * 2012-11-20 2017-05-17 株式会社東芝 通信装置、通信方法およびプログラム
US20140330936A1 (en) * 2013-05-02 2014-11-06 International Business Machines Corporation Secure isolation of tenant resources in a multi-tenant storage systemwith inter-server communication
JP6540063B2 (ja) * 2015-02-05 2019-07-10 日本電気株式会社 通信情報制御装置、中継システム、通信情報制御方法、および、通信情報制御プログラム
US10389532B2 (en) * 2017-09-22 2019-08-20 Yokogawa Electric Corporation Secure message routing in multi-tenant system without content inspection
CN108093026B (zh) * 2017-11-17 2020-04-07 阿里巴巴集团控股有限公司 多租户请求的处理方法及装置
US20200099759A1 (en) * 2018-09-24 2020-03-26 Salesforce.Com, Inc. Interactive customized push notifications with customized actions

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006268A (en) * 1997-07-31 1999-12-21 Cisco Technology, Inc. Method and apparatus for reducing overhead on a proxied connection
JPH11317749A (ja) * 1998-03-05 1999-11-16 Nippon Telegr & Teleph Corp <Ntt> Atm通信網上のsvcサービスにおける高速コネクション設定・解放方法および高速コネクション設定・解放装置
US7200666B1 (en) * 2000-07-07 2007-04-03 International Business Machines Corporation Live connection enhancement for data source interface
US6687245B2 (en) * 2001-04-03 2004-02-03 Voxpath Networks, Inc. System and method for performing IP telephony
US20020143956A1 (en) * 2001-04-03 2002-10-03 Murata Kikai Kabushiki Kaisha Relay server
JP3660285B2 (ja) * 2001-08-30 2005-06-15 富士通株式会社 通信制御方法、中継方法及び中継装置
JP2005136875A (ja) * 2003-10-31 2005-05-26 Hitachi Ltd 通信制御装置
TWI310275B (en) * 2004-10-19 2009-05-21 Nec Corp Virtual private network gateway device and hosting system
JP4154615B2 (ja) 2005-12-08 2008-09-24 日本電気株式会社 Sipサーバ共有モジュール装置、sipメッセージ中継方法、及びプログラム
JP4855162B2 (ja) * 2006-07-14 2012-01-18 株式会社日立製作所 パケット転送装置及び通信システム
JP2009152953A (ja) * 2007-12-21 2009-07-09 Nec Corp ゲートウェイ装置およびパケット転送方法

Also Published As

Publication number Publication date
JP2010219845A (ja) 2010-09-30
US8280953B2 (en) 2012-10-02
US20100241696A1 (en) 2010-09-23

Similar Documents

Publication Publication Date Title
JP5239966B2 (ja) 中継装置、テナント管理プログラム
US7346909B1 (en) Network-like communication and stack synchronization for different virtual machines on the same physical device
JP5039016B2 (ja) ネットワークシステム、管理サーバ及び設定スケジューリング方法
US9219698B2 (en) Providing a layer-3 interface
WO2015196815A1 (zh) Ip硬盘与存储系统,及其数据操作方法
WO2013136522A1 (ja) 計算機システム及び計算機間のデータ通信方法
EP2720166A2 (en) Content name-based network device and method for protecting content
EP3160084B1 (en) Fibre channel storage area network configuration method and apparatus
WO2013008770A1 (ja) ネットワーク用検疫システム、ネットワーク用検疫方法およびそのプログラム
WO2014190791A1 (zh) 一种网关设备身份设置的方法及管理网关设备
EP2890064B1 (en) Packet forwarding method and system
WO2021042846A1 (zh) 网络隔离策略管理方法和网络隔离策略管理系统
CN102035738A (zh) 一种获取路由信息的方法及装置
CN110971434B (zh) 管理内网网络设备的方法、装置和系统
CN103297344A (zh) 分布式数据通信系统及其组播报文转发方法
JP4925130B2 (ja) 通信制御方法およびシステム
JP6193155B2 (ja) 通信装置、通信システム、通信方法およびプログラム
JP5251716B2 (ja) パケット中継装置
CN100479457C (zh) 一种实现虚拟私有网络中数据传输的方法
WO2018032499A1 (zh) 一种负载均衡的方法及相关装置
CN114257545B (zh) 一种报文转发方法及装置
JP2014187430A (ja) 通信システム、中継装置、通信方法、及びプログラム
WO2014172869A1 (zh) 一种在虚拟局域网中通信的方法、设备和系统
JP6522490B2 (ja) ネットワークシステム、制御装置、及びプログラム
KR102023115B1 (ko) 통합형 id 기반의 통신 방법 및 통신 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130107

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: 20130305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130318

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees