発明の目的および利点は、請求の範囲に具体的に記載された構成要素および組み合わせによって実現され達成される。
前述の一般的な説明および以下の詳細な説明は、典型例および説明のためのものであって、本発明を限定するためのものではない、と理解される。
本発明の非限定的な実施形態を、図面を参照して説明する。図面において、同様のコンポーネントおよび要素には同じ参照番号が付されている。
ネットワークと、サーバ装置または情報処理端末等の情報処理装置との間に接続される通信装置には、例えば、通信プロトコル処理、セキュリティ処理、および/または負荷の均等化処理などのための複数の機能が含まれていることがある。そのような機能には、例えば、IPsec(Security Architecture for Internet Protocol)、NAT(Network Address Translation)、SSL(Secure Socket Layer)、WAF(Web Application Firewall)およびSLB(Server Load Balancing)等の様々な機能がある。
例えばネットワークとサーバ装置の間の通信量が増加して、既存の通信装置の負荷が過大になった場合、一般的に、既存の通信装置における高い負荷の機能の処理能力を、追加的に設けられた通信装置に拡張またはスケールアウトして、通信が円滑に行われるようにされる。
図19Aは、ネットワーク5に既存の通信装置10を介して接続された情報処理端末140および141の例を示している。図19Bは、既存の通信装置10に、他の通信装置12、13、14および15を追加的に接続させた通常の拡張的な接続配置の例を示している。
図19Aにおいて、ネットワーク5と情報処理装置140および141の間に通信装置10を設置したときは、ネットワーク5と情報処理装置140および141の間のトラフィックが少なく、通信装置10の処理能力だけでトラフィックを円滑に処理できたものとする。その後、ネットワーク5と情報処理装置140および141の間のトラフィックが予想外に増大した場合、通信装置10の処理能力だけではトラフィックを円滑に処理できなくなることがある。この場合、図19Bに示されているように、既存の通信装置10の例えば後段に、従続接続および並列接続の1つ以上の通信装置12〜15を追加的に接続して、既存の通信装置10の処理能力を他の通信装置12〜15に拡張またはスケールアウトして負荷を分散することができる。
より具体的には、図19Aにおいて、既存の通信装置10は、例えば、NAT、SSLおよびSLBの機能を含んでいるものとする。また、図19Bにおいて、例えば、他の通信装置12〜14はSSLの機能を含み、別の通信装置15はSLBの機能を含んでいるものとする。
図19Bでは、既存の通信装置10は、例えばNATおよびSLBの機能だけを担当するように設定が変更されてもよい。また、図19Bでは、通信装置10が最初に担当していたSSLの機能を、他の通信装置12〜14が分担し、また、通信装置10が最初に担当していたSLBの機能を、通信装置15が分担するようにしてもよい。この場合、既存の通信装置10のSLBの機能は、SSLの負荷を複数の通信装置12〜14に配分または分散するための追加的な機能である。
このような通常の処理能力の拡張またはスケールアウト方式では、図19Bのように、負荷の処理能力が物理的に固定的に増強され、そのための作業または工事は、手作業で行われる。その作業の期間中において、通信装置10のトラフィックが中断され、ユーザに対する通信サービスまたは情報サービスの提供が中断される。
また、図19Bの接続配置では、同じSSLを分担する複数の通信装置12〜14が冗長に配置され、その処理負荷が低い状態では、例えば通信装置13および14が無駄に動作し、非効率である。また、既存の通信装置10において、3つの通信装置12〜15に負荷を分散する機能が余分に設けられる。従って、図19Bのような通常の処理機能の拡張またはスケールアウト方式では、高いコストがかかり、消費電力も多くなる。
発明者たちは、ネットワークと情報処理装置の間の既存の通信装置の動作を一時的に停止させ、また既存の通信装置に他の通信装置を手作業で追加的に接続することは、効率的でなく、高いコストがかかり、また、通信または情報サービスの提供が中断される、と認識した。また、発明者たちは、ネットワークと情報処理装置の間の既存の通信装置における機能の処理能力をその負荷に応じて別の装置上の仮想機能に動的に拡張またはスケールアウトすれば、効率的で、コストが低く、電力消費量が少なく、サービスが中断されない、と認識した。ここで、スケールアウト(scale out)とは、1つの通信装置における或る機能の処理能力を、他の装置における対応する機能に、拡張、分散または移動させることである。
実施形態の目的は、通信装置における処理機能の一部の処理能力を他の装置に動的にまたは適応的に拡張またはスケールアウトできるようにすることである。
図1は、実施形態による、ネットワーク5と情報処理装置40、41および42の間に接続された通信装置30と、通信装置30に接続された情報処理装置50とを含むシステムの概略的な構成(configuration)の例を示している。情報処理装置40〜42は、通信装置30とネットワーク5を介して、1つ以上の他の情報処理装置110〜116と通信してもよい。ここで、情報処理装置40〜42は、例えばサーバ装置または情報処理端末であってもよい。また、情報処理装置110〜116は、例えば情報処理端末またはサーバ装置であってもよい。
通信装置30は、情報処理装置50の接続前の時点において稼働中のものであっても、情報処理装置50と共に設置されてもよい。情報処理装置50は、1つ以上の仮想通信装置を動的に生成することができる仮想化機能を含み、拡張仮想サーバ部として機能することができるものである。また、情報処理装置50は、通信装置30とは別に用意されて、稼働中の通信装置30に接続されてもよい。
通信装置30は、ネットワーク5を介して情報処理装置110〜116と情報処理装置40〜42の間にコネクションを確立し、また、その確立されたコネクション上で伝送されるパケットを処理する1つ以上の機能を実行する。
通信装置30は、情報処理装置50に接続され、通信装置30の負荷が閾値を超えた場合に、通信装置30における高負荷状態の或る機能に対応する機能を、情報処理装置50上の仮想通信装置に、動的に拡張またはスケールアウトする。代替形態として、通信装置30は、通信装置30の或る機能の負荷が閾値を超えた場合に、その或る機能に対応する機能を、情報処理装置50上の仮想通信装置に、動的に拡張またはスケールアウトしてもよい。
そのような拡張またはスケールアウトのために、通信装置30は、情報処理装置50に対して、その或る機能に対応する機能を起動するよう要求する。情報処理装置50は、その要求に応答して、拡張仮想サーバ部において仮想通信装置またはその対応する仮想的な機能を動的に生成して起動する。次いで、通信装置30は、確立されたコネクション上のパケットを情報処理装置50に転送する。情報処理装置50は、転送されたパケットをその仮想的な機能で処理して、処理済みのパケットを通信装置30に転送し戻す。通信装置30は、場合によってそのパケットをさらに処理し、処理済みのパケットを間接的に(実線)または直接的に(破線)情報処理装置40〜42に供給する。
図2A〜2Dは、図1の通信装置30および情報処理装置50における活動状態にある各機能と、複数の機能にわたるトラフィックまたは処理の流れの例を示している。
図2A〜2Dにおいて、通信装置30は、例えば、NAT342、SSL344、WAF346およびSLB348の機能を含んでいる。一方、情報処理装置50は、内部の拡張仮想サーバ部上で仮想的な機能NAT542、SSL544、WAF546およびSLB548のいずれかを動的に生成して起動することができる。図2A〜2Dにおいて、太い実線で囲まれた機能は活動状態にある機能を示し、また、破線で囲まれた機能は非活動状態または休止状態にある機能を示している。通信装置30のIPアドレスは、例えば、10.1.1.100であってもよい。また、情報処理装置50の拡張仮想サーバ部のIPアドレスは、例えば、192.168.0.100または192.168.0.101に設定されてもよい。また、図1の情報処理装置40〜42のIPアドレスは、例えば192.168.1.1〜192.168.1.3のいずれかであってもよい。
図2Aにおいて、通信装置30は、図1の情報処理装置110〜116からのコネクション要求に応答して、ネットワーク5を介して情報処理装置110〜116と情報処理装置40〜42の間にコネクションを確立する。また、通信装置30は、その確立されたコネクション上で受信されたパケットを1つ以上の機能で処理して、処理済みのパケットを情報処理装置40〜42に転送する。
通信装置30において、受信されるパケットのトラフィックが少なく処理負荷が低い場合、通信装置30は、図2Aに示されているように、全ての受信パケットを、実線で囲まれた自己のNAT342、SSL344、WAF346およびSLB348でこの順に処理する。通信装置30は、その低負荷状態では、自己の機能の処理能力を情報処理装置50に拡張またはスケールアウトすることはない。この場合、情報処理装置50の拡張仮想サーバ部では、仮想通信装置または対応する仮想的な機能が起動されず、従って、破線で囲まれた仮想的な機能NAT542、SSL544、WAF546およびSLB548、生成されずまたは起動されず活動状態にない。
図2Bにおいて、通信装置30において、受信パケットのトラフィックが多く、特にNAT342が高負荷状態である場合、例えば、通信装置30は、次のように動作する。通信装置30は、1つ以上の機能の中で高負荷状態にあるNAT342に対応する機能を起動するよう、情報処理装置50の拡張仮想サーバ部に要求する。情報処理装置50の拡張仮想サーバ部は、その要求に応答して、実線で示されている仮想的な機能NAT542を動的に生成して起動し活動状態にする。
次いで、通信装置30は、NAT342によって処理される前のその時点以降に確立されたコネクション上のパケットを、破線で示されているように、情報処理装置50の仮想的な機能NAT542に転送する。情報処理装置50では、NAT542が、転送されたパケットを処理する。その一方で、通信装置30は、自己のNAT342、SSL344、WAF346およびSLB348で、その転送の開始時点以前のコネクション上の受信パケットを処理し続ける。次いで、情報処理装置50は、破線で示されているように、NAT542で処理済みのパケットを通信装置30へ転送し返す。次いで、通信装置30は、その処理済みのパケットを受け取って、そのパケットを、次の、自己のSSL344、WAF346およびSLB348にこの順に処理させる。次いで、通信装置30は、その処理済みのパケットを情報処理装置40〜42に転送する。
その後、通信装置30において負荷が充分低くなった場合、通信装置30は、その時点以降に確立されたコネクション上の受信パケットを、情報処理装置50に転送することなく、自己のNAT342等に処理させる。一方、情報処理装置50は、転送されるパケットがある限り、仮想的な機能NAT542でパケットを処理し続け、転送されるパケットがなくなった場合に、NAT542を非活動状態にし、さらに削除してもよい。従って、通信装置30および情報処理装置50の動作は図2Aに示された状態に戻る。
このように、情報処理装置50の拡張仮想サーバ部は、通信装置30における機能に対応する仮想的な機能を動的に生成して、通信装置30の処理を分担することができる。また、情報処理装置50は、生成された仮想的な機能がなくまたは仮想的な機能が非活動状態にあるときは、低い活動状態にあり、その消費電力が少ない。
図2Cにおいて、通信装置30において、受信パケットのトラフィックが多く、特にSSL344が高負荷状態である場合、例えば、通信装置30は、次のように動作する。通信装置30は、1つ以上の機能の中で高負荷状態にあるSSL344に対応する機能を起動するよう、情報処理装置50の拡張仮想サーバ部に要求する。情報処理装置50の拡張仮想サーバ部は、その要求に応答して、実線で示されている仮想的な機能SSL544を動的に生成して起動し活動状態にする。
次いで、通信装置30は、NAT342で処理された後の、SSL344によって処理される前のその時点以降に確立されたコネクション上のパケットを、破線で示されているように、情報処理装置50の仮想的な機能SSL544に転送する。情報処理装置50では、SSL544が、転送されたパケットを処理する。その一方で、通信装置30は、自己のNAT342、SSL344、WAF346およびSLB348で、その転送の開始時点以前のコネクション上の受信パケットを処理し続ける。次いで、情報処理装置50は、破線で示されているように、SSL544で処理済みのパケットを通信装置30へ転送し返す。次いで、通信装置30は、その処理済みのパケットを受け取って、そのパケットを、次の、WAF346およびSLB348にこの順に処理させる。次いで、通信装置30は、その処理済みのパケットを情報処理装置40〜42に転送する。
その後、通信装置30において負荷が充分低くなった場合、通信装置30は、その時点以降に確立されたコネクション上の受信パケットを、情報処理装置50に転送することなく、自己のSSL344等に処理させる。一方、情報処理装置50は、転送されるパケットがある限り、仮想的な機能SSL544でパケットを処理し続け、転送されるパケットがなくなった場合に、SSL544を非活動状態にし、さらに削除してもよい。従って、通信装置30および情報処理装置50の動作は図2Aに示された状態に戻る。
図2Dにおいて、通信装置30において、受信パケットのトラフィックが多く、特にSLB348が高負荷状態である場合、例えば、通信装置30は、次のように動作する。通信装置30は、1つ以上の機能の中で高負荷状態にあるSLB348に対応する機能を起動するよう、情報処理装置50の拡張仮想サーバ部に要求する。情報処理装置50の拡張仮想サーバ部は、その要求に応答して、実線で示されている仮想的な機能SLB548を動的に生成して起動し活動状態にする。
次いで、通信装置30は、WAF346で処理された後の、SLB348によって処理される前のその時点以降に確立されたコネクション上のパケットを、破線で示されているように、情報処理装置50の仮想的な機能SLB548に転送する。情報処理装置50では、SLB548が、転送されたパケットを処理する。その一方で、通信装置30は、自己のNAT342、SSL344、WAF346およびSLB348で、その転送の開始時点以前のコネクション上の受信パケットを処理し続ける。次いで、情報処理装置50は、破線で示されているように、SLB548で処理済みのパケットを通信装置30へ転送し返す。次いで、通信装置30は、その処理済みのパケットを受け取る。次いで、通信装置30は、その処理済みのパケットを情報処理装置40〜42に転送する。
その後、通信装置30において負荷が充分低くなった場合、通信装置30は、その時点以降に確立されたコネクションの受信パケットを、情報処理装置50に転送することなく、自己のSLB348に処理させる。一方、情報処理装置50は、転送されるパケットがある限り、仮想的な機能SLB548でパケットを処理し続け、転送されるパケットがなくなった場合に、SLB548を非活動状態にし、さらに削除してもよい。従って、通信装置30および情報処理装置50の動作は図2Aに示された状態に戻る。
通信装置30および情報処理装置50は、それぞれのWAF346およびWAF546についても、同様に、連携動作して、WAF346の機能または処理能力を拡張またはスケールアウトすることができる。また、通信装置30は、NAT342、SSL344、WAF346、SLB348中の2以上の機能または処理能力を、情報処理装置50の拡張仮想サーバ部上のNAT542、SSL544、WAF546、SLB548の中の対応する2以上の仮想的機能に拡張またはスケールアウトしてもよい。このようにして、通信装置30は、情報処理装置50の拡張仮想サーバ部に、通信装置30の機能に対応する仮想的な機能を動的に起動させて、通信装置30の処理の少なくとも一部を分担させることができる。
次は、情報処理装置50を、並列関係にある複数の通信装置に接続する場合の例について説明する。
図3は、実施形態による、ネットワーク5と情報処理装置40、41および42の間にそれぞれ接続された複数の通信装置30、31および32と、複数の通信装置30〜32に接続された情報処理装置50とを含むシステムの概略的構成(configuration)の例を示している。
図3において、通信装置30〜32の各々は、図1の通信装置30の場合と同様に、その機能または処理能力の少なくとも一部を、情報処理装置50の拡張仮想サーバ部に拡張しまたはスケールアウトすることができる。通信装置30〜32は、それぞれの或る機能の負荷が高負荷状態になった場合に、その或る機能に対応する機能を起動するよう、情報処理装置50の拡張仮想サーバ部に要求する。情報処理装置50の拡張仮想サーバ部は、その要求に応答して、それぞれの或る機能に対応する仮想的な機能を動的に生成して起動する。
次いで、情報処理装置50の拡張仮想サーバ部は、図1の通信装置30の場合と同様に、通信装置30〜32からパケットを受け取って、そのパケットをその対応する仮想的な機能で処理する。その仮想的な機能で処理されたパケットは、通信装置30に転送されてさらに処理されるか、または間接的に(実線で示されている)または直接的に(破線で示されている)情報処理装置40〜42に供給されてもよい。
通信装置30〜32の各々と情報処理装置50とは、図2A〜2Dの場合と同様の形態で並行して連携動作する。この場合、情報処理装置50の拡張仮想サーバ部は、通信装置30〜32にそれぞれ対応する複数の仮想通信装置を生成して起動させることができる。通信装置30〜32のIPアドレスは、例えば、10.1.1.100〜10.1.1.102のいずれかであってもよい。また、情報処理装置50の拡張仮想サーバ部のIPアドレスは、例えば、192.168.0.100であってもよい。
このように、情報処理装置50の拡張仮想サーバ部は、通信装置30〜32の各々における機能に対応する仮想的な機能を含む各仮想通信装置を動的に生成して、通信装置30〜32の処理を分担することができる。また、情報処理装置50は、生成された仮想的な機能がなくまたは仮想的な機能が非活動状態にあるときは、低い活動状態にあり、その消費電力が少ない。
次は、情報処理装置50を、タンデム接続された複数の通信装置に接続する場合の例について説明する。
図4Aは、実施形態による、ネットワーク5と情報処理装置40〜42の間にカスケード(従続)接続された複数の通信装置30、38および39と、通信装置30、38および39に接続された情報処理装置50とを含むシステムの概略的な構成(configuration)の例を示している。この場合、情報処理装置50は、さらに例えばサーバ装置または情報処理端末としての情報処理装置40〜42に接続されていてもよい。また、通信装置30、38および39のIPアドレスは、例えば、10.1.1.100〜10.1.1.102のいずれかであってもよい。また、情報処理装置50の拡張仮想サーバ部のIPアドレスは、例えば、192.168.0.100であってもよい。
図4Aにおいて、通信装置30、38および39の各々は、図1の通信装置30の場合と同様に、その機能または処理能力の少なくとも一部を、情報処理装置50の拡張仮想サーバ部に拡張しまたはスケールアウトすることができる。通信装置30、38および39は、それぞれの或る機能の負荷が高負荷状態になった場合に、その或る機能に対応する機能を起動するよう、情報処理装置50の拡張仮想サーバ部に要求する。情報処理装置50の拡張仮想サーバ部は、その要求に応答して、それぞれの或る機能に対応する仮想的な機能を動的に生成して起動する。
次いで、情報処理装置50の拡張仮想サーバ部は、通信装置30、38および39からパケットを受け取って、そのパケットをその対応する仮想的な機能で処理する。その仮想的な機能で処理されたパケットは、通信装置30、38および/または39に転送されてさらに処理されてもよい。情報処理装置50または通信装置39は、処理済みのパケットを情報処理装置40〜42に供給してもよい。
図4Bは、図4Aの通信装置30、38および39、および情報処理装置50における活動状態にある各機能と、各機能にわたるトラフィックまたは処理の流れの例を示している。
図4Bにおいて、通信装置30は、例えば、NAT342、SSL344、WAF346およびSLB348の機能を含んでいる。また、通信装置38は、例えば、受信パケットの検査、隔離および治療を行うための検疫機能(NQ)384を含んでいる。また、通信装置39は、例えば、ユーザを認証するための認証機能(AU)394を含んでいる。一方、情報処理装置50は、内部の拡張仮想サーバ部上で、対応する仮想的な機能NAT542、SSL544、WAF546、SLB548、検疫機能(NQ)584および認証機能(AU)594のいずれかを動的に生成して起動することができる。図4Bにおいて、太い実線で囲まれた機能は活動状態にある機能を示し、また、破線で囲まれた機能は非活動状態または休止状態にある機能を示している。
通信装置30、38および39において、受信されるパケットのトラフィックが少なく、処理負荷が低い場合、全ての受信パケットを、それぞれのNAT342、SSL344、WAF346、LB348、検疫機能384および認証機能394でこの順に処理する。通信装置30、38および39は、それぞれの低負荷状態では、自己の機能の処理能力を情報処理装置50に拡張またはスケールアウトすることはない。通信装置30はその処理済みのパケットを通信装置38に供給し、通信装置38はその処理済みのパケットを通信装置39に供給し、通信装置39はその処理済みのパケットを情報処理装置40〜42に供給する。この場合、情報処理装置50の拡張仮想サーバ部では、仮想通信装置または対応する仮想的な機能が起動されず、従って、仮想的な機能NAT542、SSL544、WAF546、SLB548、検疫機能584および認証機能594は、生成されず活動状態にない。
図4Bにおいて、通信装置30、38、39の各々は、それぞれにおいて受信パケットのトラフィックが多い場合、図2B〜2Dの場合と同様に動作することができる。一方、前段の通信装置30において、受信パケットのトラフィックが多い場合は、その後段の通信装置38および39を含めて、通信装置30、38および39の機能または処理能力を情報処理装置50にスケールアウトすることができる。
例えば、通信装置30において、WAF346またはそれ以降の機能の負荷が高い場合、通信装置30、38、39は、次のように動作することができる。通信装置30は、例えば、1つ以上の機能の中で高負荷状態にあるWAF346以降の機能に対応する処理機能を起動するよう、情報処理装置50の拡張仮想サーバ部に要求する。その理由は、例えば、通信装置30のWAF346が高負荷状態にある場合、やがて、その後段の通信装置30のSLB348、通信装置38またはその検疫機能384、および通信装置39またはその認証機能394も高負荷状態になると予測または推定されるからである。この場合、情報処理装置50の拡張仮想サーバ部は、その要求に応答して、図4Bに実線で連結して示された仮想的な機能WAF546から認証機能594までを生成して起動する。
通信装置30は、通信装置30のSSL344で処理された後の、WAF346によって処理される前のその時点以降に確立されたコネクションのパケットを、破線で示されているように、情報処理装置50に転送する。情報処理装置50は、その転送されたパケットを受け取って、そのWAF546に処理させる。情報処理装置50は、そのパケットを、仮想的な機能WAF546とその後のSLB548、検疫機能584および認証機能594に連続的に処理させる。その一方で、通信装置30、38および39は、それぞれのNAT342、SSL344、WAF346、SLB348、検疫機能384および認証機能394で、その転送の開始時点以前に確立されたコネクションの受信パケットを処理し続ける。次いで、情報処理装置50は、破線で示されているように、処理済みのパケットを最終段の通信装置39へ転送し返すか、または情報処理装置40〜42に直接的に転送する。通信装置39は、その処理済みのパケットを受信した場合、その処理済みのパケットを情報処理装置40〜42に転送する。
その後、通信装置30、38および39において負荷が充分低くなった場合、通信装置30は、その時点以降に確立されたコネクションの受信パケットを、情報処理装置50に転送することなく、通信装置30、38および39のWAF346以降の機能に処理させる。一方、情報処理装置50は、転送されるパケットがある限り、仮想的な機能WAF546以降の機能でパケットを処理し続け、転送されるパケットがなくなった場合に、WAF546以降の機能を非活動状態にし、さらに削除してもよい。
このようにして、通信装置30、38および39は、その少なくとも1つ以上の機能に対応する仮想的な機能を、情報処理装置50の拡張仮想サーバ部に動的に起動させて、カスケード接続関係にある通信装置30、38および39の処理を分担させることができる。また、通信装置30は、その後段の通信装置38および39の機能の処理を、情報処理装置50の拡張仮想サーバ部の後段の仮想的な機能に実行させて、通信装置30の後段の通信装置38および39がその後に高負荷状態になるのを防止することができる。
図5は、実施形態による、ネットワーク5と情報処理装置40および42の間に、分岐接続関係にある複数の通信装置30、38および39と、通信装置30、38および39に接続された情報処理装置50とを含むシステムの概略的構成(configuration)の例を示している。この場合、通信装置38および39は、通信装置30の後段に並列的に接続されており、さらに、それぞれの後段に情報処理装置40および42が接続されている。情報処理装置50は、さらに情報処理装置40および42に接続されていてもよい。
図5において、通信装置30、38および39の各々は、図1の通信装置30の場合と同様に、その機能または処理能力の少なくとも一部を、情報処理装置50の拡張仮想サーバ部に拡張しまたはスケールアウトすることができる。通信装置30、38および39は、それぞれの或る機能の負荷が高負荷状態になった場合に、その或る機能に対応する機能を起動するよう、情報処理装置50の拡張仮想サーバ部に要求する。情報処理装置50の拡張仮想サーバ部は、その要求に応答して、それぞれの或る機能に対応する仮想的な機能を動的に生成して起動する。
次いで、情報処理装置50の拡張仮想サーバ部は、通信装置30、38および39からパケットを受け取って、そのパケットをその対応する仮想的な機能で処理する。その仮想的な機能で処理されたパケットは、通信装置30、38および/または39に転送されてさらに処理されてもよい。情報処理装置50または通信装置38および39は、処理済みのパケットをそれぞれ情報処理装置40および42に供給してもよい。
通信装置30、38および39の各々において、受信されるパケットのトラフィックが少なく、処理負荷が低い場合、全ての受信パケットを、それぞれの機能で順に処理する。通信装置30はその処理済みのパケットを通信装置38および39に供給し、通信装置38および39はその処理済みのパケットをそれぞれ情報処理装置40および42に供給する。
例えば、通信装置30の負荷が閾値を超え、1つの機能またはそれ以降の機能の負荷が高い場合、通信装置30は、図4Bの場合と同様に、その1つの機能以降の機能に対応する機能を起動するよう、情報処理装置50の拡張仮想サーバ部に要求する。通信装置30の或る機能が高負荷状態にある場合、やがて、その後段の通信装置30の機能、通信装置38および通信装置39の機能も高負荷状態になると予測または推定される。情報処理装置50の拡張仮想サーバ部は、その要求に応答して、仮想的な機能を生成して起動する。
通信装置30は、その1つの機能で処理される前のその時点以降に確立されたコネクションのパケットを、情報処理装置50の拡張仮想サーバ部に転送して処理させる。情報処理装置50は、転送されたパケットを対応する仮想的な機能で連続的に処理する。その一方で、通信装置30、38および39は、それぞれの機能で、その転送の開始時点以前に確立されたコネクションの受信パケットを処理し続ける。次いで、情報処理装置50は、その対応する機能で処理されたパケットを、通信装置38および39へ転送し返すか、または情報処理装置40および42に直接的に転送する。通信装置38および39は、その処理済みのパケットを受信した場合、その処理済みのパケットをそれぞれ情報処理装置40および42に転送する。
その後、通信装置30、38および39において負荷が充分低くなった場合、通信装置30は、その時点以降に確立されたコネクションの受信パケットを、情報処理装置50に転送することなく、通信装置30、38および39のそれぞれの機能に処理させる。一方、情報処理装置50は、転送されるパケットがある限り、その対応する仮想的な機能でパケットを処理し続け、転送されるパケットがなくなった場合に、その仮想的な機能を非活動状態にし、さらに削除してもよい。
このようにして、通信装置30、38および39は、その少なくとも1つ以上の機能に対応する仮想的な機能を、情報処理装置50の拡張仮想サーバ部に動的に起動させて、分岐接続関係にある通信装置30、38および39の処理を分担させることができる。また、通信装置30は、その後段の通信装置38および39の機能の処理を、情報処理装置50の拡張仮想サーバ部の後段の仮想的な機能に実行させて、通信装置30の後段の通信装置38および39がその後に高負荷状態になるのを防止することができる。
次は、通信装置30〜39の各々の概略的な構成(configuration)の例について説明する。
図6は、実施形態による、通信装置30〜39の各々の概略的な構成(configuration)の例を示している。
通信装置30〜39の各々は、プロセッサ302、記憶部304、通信インタフェース(IF)部306、インタフェース(IF)部310、通信制御部312、および通信用記憶部316を含んでいる。通信制御部312は転送部314を含んでいる。通信用記憶部316は、通信用のバッファ・メモリを含んでいてもよい。通信装置30〜39の各々は、さらに、処理能力拡張制御部320、および1つ以上の機能部330、332、...340を含んでいる。処理能力拡張制御部320は、負荷監視部322、負荷分析部または負荷解析部324、情報収集部326、および連携部328を含んでいる。通信装置30〜39の各々は、さらにUSB通信部362を含んでいる。
プロセッサ302は、記憶部304、通信インタフェース部306、インタフェース部310、通信制御部312、通信用記憶部316、処理能力拡張制御部320および機能部330〜340に制御信号を供給して、これらの要素の動作を制御してもよい。
機能部330〜340は、プロセッサ302の一部の機能であってもよい。代替形態として、機能部330〜340は、プロセッサ302とは異なるプロセッサまたはハードウェア通信モジュールとして実装されてもよい。
機能部330〜340は、例えば、通信プロトコル処理、セキュリティ処理、およびトラフィック均等化処理などのための、いずれかの機能を含んでいてもよい。この場合、機能部330〜340は、例えば、NAT(Network Address Translation)、SSL(Secure Socket Layer)、WAF(Web Application Firewall)、SLB(Server Load Balancing)、検疫機能、および認証機能、等の複数の機能の中の互いに異なるいずれかの機能を実行するものであってもよい。
通信装置30〜39の各々は、通信インタフェース部306を介してネットワーク5、および、他の通信装置(30〜39)および/または情報処理装置40〜42に接続される。また、各通信装置30〜39は、インタフェース部310を介して情報処理装置50に接続される。通信制御部312は、通信インタフェース部306を介した、ネットワーク5、他の通信装置(30〜39)および/または情報処理装置40〜42との間の通信を制御する。また、通信制御部312は、インタフェース部310を介した情報処理装置50との間の情報およびパケットの転送を制御する。
通信制御部312の転送部314は、通信制御部312から渡されたパケットを分析し、パケットのヘッダ部およびトレーラ部を処理し、情報処理装置50にパケットを転送することができる。転送部314は、通信制御部312と一体的に設けられてもよい。代替形態として、転送部314は、通信制御部312によって実行されるソフトウェア・モジュールとして通信制御部312に追加インストールされても、または通信制御部312によって制御されるハードウェア・モジュールとして通信制御部312に追加的に組込まれてもよい。
処理能力拡張制御部320は、機能部330〜340の各機能に対応する各機能を、情報処理装置50上の拡張仮想サーバ部(5024)にその仮想的な機能として動的に生成させる。それによって、通信装置30〜39の機能の少なくとも一部の処理能力を動的に外部に拡張またはスケールアウトすることができる。処理能力拡張制御部320は、プロセッサ302によって実行されるソフトウェア・モジュールとして通信装置30〜39にインストールされても、またはプロセッサ302によって制御されるハードウェア・モジュールとして通信装置30〜39に追加的に組み込まれてもよい。
プロセッサ302は、複数の機能部330〜340および処理能力拡張制御部320の機能を含む例えば集積回路として実装された専用のプロセッサであってもよい。また、プロセッサ302は、記憶部304に格納された複数の機能部330〜340および処理能力拡張制御部320の機能を有するアプリケーション・プログラムに従って動作するものであってもよい。アプリケーション・プログラムは、記録媒体364に格納されていて、ドライブ366によって記録媒体364から読み出されて通信装置30〜39の各々にインストールされてもよい。
次は、情報処理装置50の概略的な構成(configuration)の例について説明する。
図7は、情報処理装置50の概略的な構成(configuration)の例を示している。
情報処理装置50は、プロセッサ502、記憶部504、通信インタフェース部(IF)506、インタフェース部510、およびUSB通信部532を含んでいる。情報処理装置50は、さらに、入力部342、表示部344、および音響部346を含んでいてもよい。入力部342は、例えばキーボード、マウスまたはタッチパッドのようなポインティング・デバイス、およびタッチパネルを含んでいてもよい。
情報処理装置50は、プロセッサ502、記憶部504、入出力インタフェース(I/O)、内部バス35、等を含む例えばパーソナル・コンピュータまたはサーバ装置のようなコンピュータであってもよい。プロセッサ502は、コンピュータ用のCPU(Central Processing Unit)であってもよい。記憶部504には、例えば、主記憶装置および半導体メモリ、および/または、ハードディスク・ドライブ(HDD)および/またはフラッシュメモリ・ドライブ(SSD:Solid State Drive)、等が含まれる。
プロセッサ502は、仮想サーバ機能を含む例えば集積回路として実装された専用のプロセッサであってもよい。また、プロセッサ502は、記憶部504に格納された仮想サーバ機能を有するアプリケーション・プログラムに従って動作するものであってもよい。アプリケーション・プログラムは、記録媒体564に格納されていて、ドライブ536によって記録媒体564から読み出されてUSB通信部532を介して情報処理装置50にインストールされてもよい。
情報処理装置50は、その通信インタフェース部506を介して情報処理装置40〜42に接続される。また、情報処理装置50は、そのインタフェース部510を介して通信装置30〜39に接続される。
次は、情報処理装置50のプロセッサ502の概略的な構成の例について説明する。
図8は、情報処理装置50のプロセッサ502の概略的な構成(configuration)の例を示している。
プロセッサ502は、例えば、制御部5020、アプリケーション部5022、拡張仮想サーバ部5024、およびその他の処理部5400を含んでいてもよい。制御部5020は、アプリケーション部5022、拡張仮想サーバ部5024、および処理部5400に制御信号を供給して、アプリケーション部5022、拡張仮想サーバ部5024および処理部5400の動作を制御してもよい。
拡張仮想サーバ部5024は、例えば、管理部5026およびハイパーバイザ部5028を含んでいる。また、拡張仮想サーバ部5024は、例えば、ハイパーバイザ部5028によって動的に生成される1つ以上の仮想通信装置5130、5131、...、5139を含むことができる。
仮想通信装置5130〜5139の各々は、装置管理部5032、通信監視部5034、連携部5036、および通信制御部5312を含んでいる。通信制御部5312は、通信装置30〜39との間でパケットを転送するための転送部5314を含んでいる。また、仮想通信装置5130〜5133の各々は、動的に生成される1つ以上の機能部5330、5332、...、5340を含んでいる。
機能部5330〜5340は、通信装置30〜39の機能部330〜340と同様に、例えば、IPsec、NAT、SSL、WAF、SLB、検疫機能、および認証機能、等の複数の機能の中の互いに異なるいずれかの機能を実行するものであってもよい。
次は、通信装置30〜39と情報処理装置50の概略的な連携動作の例について説明する。ここでは、例として通信装置30について説明するが、他の通信装置31〜39も、通信装置30と同様に動作することができる。また、例として仮想通信装置5130について説明するが、他の仮想通信装置5131〜5139も、仮想通信装置5130と同様に動作することができる。
図1、6および8を再び参照すると、通信装置30の通信制御部312は、ネットワーク5を介して、例えば情報処理装置110からコネクション要求を受信すると、情報処理装置110と情報処理装置40の間にコネクションを確立する。その情報処理装置40は例えばサーバ装置であってもよく、また、情報処理装置110は例えば情報処理端末であってもよい。次いで、通信装置30の機能部330〜340は、ネットワーク5から受信したパケットに対してそれぞれの処理を開始する。すると、通信制御部312は、通信装置30においてその分だけ負荷が増加する。通信装置30の機能部330〜340は、時間の経過とともにそれぞれの処理が終了する。すると、通信制御部312は、そのコネクションを解放または切断し、通信装置30においてその分だけ負荷が減少する。
一方、通信装置30の処理能力拡張制御部320は、プロセッサ302、記憶部304、通信用記憶部316および/または機能部330〜340における負荷の状態を検出し、高負荷状態が検出された場合にはその要因となっている機能部330〜340中の機能部を決定または特定する。次いで、処理能力拡張制御部320は、高負荷状態にある機能部(330〜340)の識別情報と共にその機能部に対応する機能部の起動を、情報処理装置50の拡張仮想サーバ部5024に要求する。
拡張仮想サーバ部5024において、管理部5026は、その要求に応答して、その対応する機能部を動的に起動するようハイパーバイザ部5028に要求する。ハイパーバイザ部5028は、その要求に応答して、対応する仮想的な機能部(530〜540)を含む仮想通信装置5130を動的に生成して起動する。次いで、通信装置30は、その後に確立されたコネクション上のパケットを拡張仮想サーバ部5024に転送し続ける。
拡張仮想サーバ部5024において、仮想通信装置5130は、通信装置30から転送されたパケットを受け取って、その対応する仮想的な機能部(530〜540)でそのパケットを処理する。それによって、通信装置30におけるその後の負荷の増大が抑止される。
その後、通信装置30の処理負荷が低減して動作が安定した場合に、通信装置30の処理能力拡張制御部320または通信制御部312は、その後に確立されたコネクションについて、拡張仮想サーバ部5024へのパケットの転送を停止させる。通信装置30は、その後に確立されたコネクションについてパケットの全ての機能部330〜340での処理を再開する。その後、仮想通信装置5130は、パケット処理中の継続中のコネクションまたはそのコネクション数を監視し、仮想通信装置5130へのパケットの転送が停止されて、継続中の全てのコネクションが解放された場合、仮想通信装置5130はその動作を停止して消去されてもよい。その動作停止の前に、仮想通信装置5130は、自己の動作の停止を通信装置30およびハイパーバイザ部5028に通知する。
次は、図1または3における、通信装置30〜32と情報処理装置50のより具体的な連携動作の例について説明する。
図9は、通信装置30〜32の通信制御部312、処理能力拡張制御部320および機能部330〜336と、情報処理装置50の管理部5026、ハイパーバイザ部5028および仮想通信装置5130とにおける接続または結合関係の例を示している。
図9において、通信装置30〜32の各々はそのインタフェース部310(図6)を介して情報処理装置50に結合されている。また、情報処理装置50はそのインタフェース部510(図7)を介して通信装置30〜32に結合されている。インタフェース部310とインタフェース部510との間の結合は、有線通信または無線通信によるものであってもよい。
通信装置30〜32の各々において、負荷監視部322は、プロセッサ302、記憶部304および通信用記憶部316に結合される。負荷監視部322は負荷分析部324に結合される。負荷分析部324は、情報収集部326、連携部328および通信制御部312に結合されてもよい。負荷分析部324は、さらに、1点鎖線で示されていように、機能部330〜336に結合されてもよい。情報収集部326は、記憶部304内の装置固有情報380等を参照する。連携部328は、情報処理装置50の拡張仮想サーバ部5024における、管理部5026、および仮想通信装置5130の連携部5036に結合される。通信制御部312は、ネットワーク5と、情報処理装置40〜43と接続され、記憶部304または通信用記憶部316内のコネクション情報317を参照する。通信制御部312は、さらに、他の通信装置38または39の通信制御部(312)に接続されてもよい。機能部330〜336は、通信制御部312に結合される。
また、情報処理装置50の拡張仮想サーバ部5024において、管理部5026は、ハイパーバイザ部5028、および仮想通信装置5130の装置管理部5032に結合される。連携部5036は装置管理部5032に結合される。装置管理部5032は通信監視部5034に結合される。機能部5330〜5336は、通信制御部5312に結合され、受け取ったパケットに関するコネクション情報5317を記憶部304に格納する。通信監視部5034は、記憶部504内のコネクション情報5317を参照する。通信制御部5312は通信装置30〜32の通信制御部312に結合される。
管理者は、通信装置30〜32において、それぞれの負荷分析部324によって信装置30〜33の高負荷状態またはトラフィックの輻輳状態を判定するための閾値を予め設定して、記憶部304に格納する。
図10は、負荷監視部322によって参照される、通信装置30〜39に設定される閾値のテーブルの例を示している。図10において、その閾値は、例えば、プロセッサ302におけるCPUのCPU使用率90%、記憶部304のメモリ使用率90%、記憶部304中のハード・ディスクの入出力(I/O)80%、及び通信記憶部316における通信バッファ使用率90%であってもよい。但し、閾値は、高負荷状態を検出するための閾値と、低負荷状態を検出するための閾値とは、異なっていてもまたは同じであってもよい。
次は、例として、情報処理端末としての外部の複数の情報処理装置110〜116が、ネットワーク5を介して、通信装置30の代表IPアドレスを宛先として、サーバ装置としての情報処理装置40〜42にアクセスして情報処理装置40〜42と通信する場合の動作を説明する。通信装置30の代表IPアドレスは、例えば、10.1.1.100であってもよい。以下では、通信装置30について説明するが、通信装置31および32についても、通信装置30の場合と同様に動作する。
通信装置30において、通信制御部312は、ネットワーク5を介した情報処理装置110〜116からのコネクション要求に応答して、ネットワーク5を介して情報処理装置110〜116と情報処理装置40〜42の間にコネクションを確立する。通信制御部312は、その確立されたコネクションに関するコネクション情報317を記憶部304に格納する。また、通信制御部312は、その確立されたコネクション上でパケットを受信し、そのパケットを1つ以上の機能部330〜336に処理させ、処理済みのパケットを情報処理装置40〜42に転送する。
例えば、情報処理装置110〜116から通信装置30を介したサーバ装置としての情報処理装置40〜42へのアクセスに関連して、コネクション数が時間経過とともに増加して、通信装置30の資源の負荷(例、CPU使用率)が閾値(例、90%)を超えたとする。
一方、通信装置30において、負荷監視部322は、常にまたは短い周期で、プロセッサ302、記憶部304および通信用記憶部316等の資源の負荷状態を監視する。負荷監視部322は、記憶部304内の負荷の閾値(図10)を参照して、いずれかの資源の負荷が閾値を超えてその資源の高負荷状態を検出した場合に、その高負荷状態を負荷分析部324に通知する。
負荷分析部324は、その通知に応答して、通信装置30内で機能部330〜336のいずれの機能部が高負荷状態の要因となっているかを判定する。そのために、負荷分析部324は、通信装置30上で動作中の機能部330〜336の中でCPU占有率、メモリ使用量及び通信バッファ使用比率が最も高い少なくとも1つの機能部を検出し、最も高い負荷状態の少なくとも1つの機能部の識別情報を情報収集部326及び連携部328に通知する。
情報収集部326は、その高負荷状態の機能部の識別情報の受信に応答して、その高負荷状態の機能部(330〜336)に対応する拡張仮想サーバ部5024の機能部を起動するための情報を、記憶部304内の通信装置30の装置固有情報380等から収集して連携部328に通知する。
連携部328は、その高負荷状態の機能部の識別情報および装置固有情報380に基づいて、情報処理装置50の拡張仮想サーバ部5024上の管理部5026に対して、少なくともそれに対応する機能部を含む仮想通信装置(5130)を起動するよう要求する。管理部5026は、その要求に応答して、ハイパーバイザ部5028に、仮想通信装置5130を生成して起動するよう要求する。ハイパーバイザ部5028は、その要求に応答して、仮想通信装置5130を生成して起動する。ここで、管理部5026は、拡張仮想サーバ部5024の仮想通信装置5130のIPアドレスを、例えば、192.168.0.101と設定してもよい。
一方、通信制御部312の転送部314は、仮想通信装置5130の起動後に確立されたコネクションについて、ネットワーク5からの受信パケットまたはいずれかの機能部330〜334で処理済みのパケットを分析する。転送部314は、次の機能部(330〜336)が高負荷状態で、そのパケットを仮想通信装置5130に転送する場合には、そのパケットに制御情報および次処理の情報を加えて、そのパケットを仮想通信装置5130へ転送する。
仮想通信制御部5312の転送部5314は、通信装置30〜32から受け取ったパケットを分析し、その制御情報を参照して、仮想通信装置5130上の制御情報に対応する機能部(5330〜5336)を特定する。転送部5314は、通信装置30から受け取ったパケットをその対応する機能部(5330〜5336)に渡して、その対応する機能部(5330〜5336)にそのパケットを処理させる。仮想通信制御部5312は、処理済みのパケットを次段の装置、例えば通信装置30または39の別の機能部に転送する。
その後、例えば、情報処理装置110〜116から通信装置30を介した情報処理装置40〜42への幾つかのアクセスが消滅し、そのコネクション数が時間経過とともに減少して、通信装置30の資源の負荷が閾値より低くなったとする。一方、通信装置30において、負荷監視部322は、記憶部304内の閾値を参照して、いずれかの資源の負荷が閾値より低くなり高負荷状態から低負荷状態に変化した場合に、その変化または低負荷状態を負荷分析部324に通知する。但し、ここでの閾値は、低負荷状態を検出するための閾値であり、前述の高負荷状態を検出するための閾値とは異なっていてもまたは同じであってもよく、例えば、高負荷状態を検出するための閾値より低くてもよい。例えば、CPUの低負荷状態を検出するためのCPU使用率は、70%または80%であってもよい。そのように、高負荷状態を検出するための閾値を高負荷状態を検出するための閾値より低くすることによって、例えば、通信装置30と情報処理装置50の間の連携動作をより安定させることができる。
負荷分析部324は、その通知に応答して、通信制御部312に対して、その後に確立されたコネクションに関する受信パケットの拡張仮想サーバ部5024への転送を停止するよう要求する。通信制御部312は、その要求に応答して、その後に確立されたコネクションについて、転送部314による受信パケットの仮想通信装置5130への転送を停止する。その後、通信制御部312は、その後の受信パケットを機能部330〜336に処理させる。
情報処理装置50において、通信監視部5034は、記憶部504中のコネクション情報5317を監視し、継続中のコネクション情報が無い状態が閾値時間を超えて継続すると、仮想通信装置5130が無通信状態であると判定する。次いで、通信監視部5034は仮想通信装置5130の無通信状態を装置管理部5032に通知する。また、装置管理部5032は、仮想通信装置5130が停止されることを連携部5036に通知する。連携部5036は、その通知に応答して、通信装置30に仮想通信装置5130が停止されることを通知する。その後、連携部5036は、通信装置30の連携部328から通知の受領確認応答(ACK)を受け取ると、装置管理部5032にその受領確認応答(ACK)の受領を通知する。装置管理部5032は、その通知に応答して、仮想通信装置5130を停止させ、仮想通信装置5130を削除してもよい。管理部5026は、仮想通信装置5130の動作停止前に、装置管理部5032から装置停止通知を受け取って、ハイパーバイザ部5028にその停止を通知してもよい。
次は、図9の通信装置30〜32と情報処理装置50の間の連携動作の手順の例について説明する。
図11は、図9における、仮想通信装置5130を起動するための、通信装置30と情報処理装置50の拡張仮想サーバ部5024との間の連携動作の手順の例を示している。
図11を参照すると、ステップ704において、通信装置30の連携部328は、拡張仮想サーバ部5024の管理部5026に、仮想通信装置(5130)を起動するよう要求する。ステップ706において、管理部5026は、その要求に応答して、ハイパーバイザ部5028に、仮想通信装置(5130)を起動するよう要求する。ステップ708において、ハイパーバイザ部5028は、その要求に応答して、仮想通信装置5130を生成して起動する。
ステップ714において、管理部5026は、仮想通信装置5130の起動状態を監視する。仮想通信装置5130の起動が完了すると、ステップ716において、管理部5026は、仮想通信装置5130の装置管理部5032に、通信装置30との通信に用いられるIPアドレスを割り当てて設定する。ステップ718において、管理部5026は、さらに、通信装置30の連携部328にそのIPアドレスを通知する。
ステップ724において、通信装置30の連携部328は、装置管理部5032に、高負荷状態の機能部(330〜336)に対応する機能部(5330〜5336)を起動するよう要求する。ステップ726において、装置管理部5032は、その要求に応答して、要求された機能部(5330〜5336)だけを起動し、他の機能部(5330〜5336)を停止状態に維持する。ステップ728において、装置管理部5032は、起動された機能部(5330〜5336)のみの識別情報を通信装置30の連携部328に通知する。
ステップ732において、連携部328は、装置管理部5032のIPアドレスを宛先にして、コネクションとそのパケットの転送に関連する構成定義情報を、装置管理部5032に供給する。ステップ734において、装置管理部5032は、その受け取った構成定義情報を記憶部504に格納して通信制御部5312等の設定に反映させる。ステップ736において、装置管理部5032は、機能部(5330〜5336)におけるパケット処理の準備完了状態を通信装置30の連携部328に通知する。次いで、通信装置30の通信制御部312と仮想通信装置5130の通信制御部5312との間で、未処理のパケットと処理済みのパケットの転送が開始される。
図12Aは、通信装置30〜39と情報処理装置50の仮想通信装置5130〜5139との間で転送されるパケットのフォーマットの例を示している。
図12Aにおいて、パケットは、ヘッダ部としてTCPヘッダ部、およびボディ部として受信パケットまたは処理されたパケットを含み、さらに、トレーラ部として追加的に、制御情報、次処理の識別情報、および処理結果の各フィールドを含んでいる。ここで、制御情報は、仮想通信装置5130等において実行される処理機能を表す識別情報および関連するパラメータを含んでいてもよい。また、次処理は、仮想通信装置5130等において処理されたパケットに対して、通信装置30〜39において行われる次の処理の機能の識別情報を含んでいてもよい。これらの制御情報、次処理および処理結果に関する情報は、レイヤ4のTCPパケット単位で挿入される。代替形態として、制御情報、次処理の識別情報、および処理結果の各フィールドは、ヘッダの一部として追加されてもよい。
仮想通信装置5130で起動される機能部(530〜536)が、例えばIPsecの処理機能である場合、制御情報は、例えば、次の情報を含んでいてもよい。
− IPsecトンネル・テーブルID、
− IPsecポリシー・ルール・テーブルのID、
− 復号化前の受信仮想インタフェースID、および
− 暗号化前の送信トンネル・インタフェースID。
また、仮想通信装置5130において起動される機能部(5330〜5336)が、例えばNATの処理機能である場合、制御情報は、例えば、NAT制御フラグ、およびアドレス変換条件ID(識別情報)を含んでいてもよい。
さらに、仮想通信装置5130において起動される機能部(5330〜5336)が、例えばSSLの場合、制御情報は、例えば、SSL復号化フラグ、およびSSL暗号化フラグを含んでいてもよい。
図12Bは、通信装置30〜39から仮想通信装置5130〜5139へ転送されるパケットの構造の例を示している。
図12Bにおいて、パケットのトレーラ部は、制御情報として、仮想通信装置5130〜5139へ転送されたパケットに対する処理がSSL復号化であり、そのSSL復号化が未処理であることを表す情報を含んでいる。また、パケットのトレーラ部は、次処理として、通信装置30〜39へ転送されたSSL復号化済みのパケットの次の処理が、SLBであることを表す情報を含んでいる。
図12Cは、情報処理装置50の仮想通信装置5130〜5139から通信装置30〜39へ転送されるパケットの構造の例を示している。
図12Cにおいて、パケットのトレーラ部は、制御情報として、通信装置30〜39へ転送されるパケットのSSL復号化が処理済みであることを表す情報を含んでいる。また、パケットのトレーラ部は、次処理として、通信装置30〜39へ転送されたSSL復号化済みのパケットの次の処理が、SLBであることを表す情報を含んでいる。また、パケットのトレーラ部は、処理結果として、制御情報に示された仮想通信装置5130等における機能による処理結果が良好(OK)であることを表す情報を含んでいる。
図13は、図9における通信装置30の通信制御部312と仮想通信装置5130の通信制御部5312との間でパケットを転送するための、通信装置30と情報処理装置50の拡張仮想サーバ部5024との間の連携動作の手順の例を示している。
ステップ742において、通信制御部312は、ネットワーク5からパケットを受信する。通信制御部312は、前段の機能部330等が低負荷状態の場合は、機能部330等にパケットを処理させる。
ステップ744において、通信制御部312は、転送部314に、受信パケットまたは前段の機能部330等で処理済みのパケットを仮想通信装置5130へと転送するよう要求する。
ステップ746において、転送部314は、そのパケットを分析し、高負荷状態の機能部(例、332)の前段の受信パケットまたは機能部(例、330)による処理済みパケットに、トレーラ部として制御情報および次処理の情報を追加する。次いで、転送部314は、そのパケットを仮想通信装置5130に転送し、仮想通信装置5130の通信制御部5312がそのパケットを受信する。
ステップ748において、通信制御部5312は、その受け取ったパケットを、対応する機能部に転送して処理させるよう、転送部5314に要求する。ステップ752において、転送部5314は、そのパケットを分析し、制御情報における処理機能に対応する機能部(例、5332)に、そのパケットを渡してそのパケットを処理するよう要求する。
ステップ754において、その対応する機能部(例、5332)は、そのパケットに関するコネクション情報5317を記憶部504に格納して登録する。そのコネクション情報は、通信監視部5034によって監視される。ステップ756において、その対応する機能部(例、5332)はそのパケットを処理する。制御情報に示されたその次の処理がある場合には、その対応する機能部(例、5332)は、処理済みのパケットを次の機能部(例、5334)に渡してもよい。ステップ758において、その対応する機能部(例、5332)は、処理済みのパケットを転送部5314に渡す。
転送部5314が受け取ったパケットの制御情報に示された処理機能が、2つ以上の処理機能である場合は、各処理機能に対応して、ステップ754および756またはステップ752〜758が2回以上繰り返されてもよい。この場合、転送部5314は、2つ以上の機能部(5330〜5336)に、そのパケットを順に処理させる。
ステップ760において、転送部5314は、機能部(例、5332)から受け取った処理済みのパケットを分析し、そのトレーラ部に処理結果を追加する。次いで、転送部5314は、処理結果を含む処理済みのパケットを通信制御部5312に渡す。ステップ762において、通信制御部5312は、処理済みのパケットを通信装置30へ転送し、通信制御部312がそのパケットを受信する。
ステップ764において、通信制御部312は、転送部314に、処理済みのパケットを次処理の機能部(例、334)または次の装置へ転送するよう要求する。
ステップ768において、転送部314は、処理済みのパケットを分析し、次処理の機能を識別し、そのトレーラ部を削除する。その際、処理結果が、例えば、“パケット廃棄”を示す場合、転送部314は、受信パケットを破棄し、それ以降の処理を行わせない。処理結果が良好であれば、転送部314は、そのパケットを次処理の機能部(例、334)に転送してそのパケットを処理するよう要求する。次の処理がない場合は、転送部314は、通信制御部5312に次の通信装置(例、5138)または情報処理装置40〜42へ転送するよう要求する。
ステップ770において、次処理の機能に対応する機能部(例、334)は、そのパケットを処理する。
登録されたコネクション情報317および5317における同じコネクションについて、後続のパケットは、通信装置30の機能部(例、330、334および336)、および仮想通信装置5130の機能部(例、5332)によって継続的に処理される。
図14は、通信装置30によって実行される、仮想通信装置5130へのパケットの転送制御のための処理のフローチャートの例を示している。
図14を参照すると、ステップ902において、通信装置30の通信制御部312は、新しく確立されたコネクションについて、前段からパケットを受け取る。この場合、前段は、例えば他の情報処理装置110〜116に接続されたネットワーク5であっても、または通信装置30の機能部330〜334のいずれかであっても、通信装置30が後段の場合にはその前段の通信装置であってもよい。
ステップ904において、負荷監視部322は、通信装置30の負荷が閾値より高いかどうかを決定する。通信装置30の負荷が閾値より高いと決定された場合は、手順はステップ906に進む。通信装置30の負荷が閾値以下であると決定された場合は、手順はステップ912に進む。
ステップ906において、負荷分析部324は、通信装置30の次段の機能部330〜336の負荷が高いかどうかを決定する。次段の機能部330〜336の負荷が高いと決定された場合は、手順はステップ908に進む。次段の機能部330〜336の負荷が高くないと決定された場合は、手順はステップ912に進む。
ステップ908において、転送部314は、パケットを分析して、そのパケットにトレーラ部として制御情報および次処理の識別情報を追加する。ステップ910において、転送部314は、仮想通信装置5130の通信制御部5312にパケットを転送する。その後、手順はステップ902に戻る。
ステップ912において、通信制御部312は、通信装置30内の次の機能部(332〜336)または通信装置30の後段の通信装置38、39または情報処理装置40〜42にパケットを転送する。その後、手順はステップ902に戻る。
図15は、通信装置30によって実行される、仮想通信装置5130から受け取ったパケットの転送制御のための処理のフローチャートの例を示している。
図15を参照すると、ステップ922において、通信装置30の転送部314は、仮想通信装置5130から処理済みのパケットを受信する。
ステップ924において、転送部314は、そのパケットを分析して次処理に関する情報に基づいて、次処理が存在するかどうかを判定する。次処理が存在すると判定された場合は、手順はステップ926に進む。次処理が存在しないと判定された場合は、手順はステップ932に進む。
ステップ926において、転送部314は、処理済みのパケットを、通信装置30内の次の機能部334〜336へ渡して、その機能部334〜336にパケットの処理を要求する。その後、手順はステップ922に戻る。
ステップ932において、転送部314は、処理済みのパケットを、次の装置、例えば別の通信装置38または情報処理装置40へ転送する。その後、手順はステップ922に戻る。
図16は、図9における、仮想通信装置5130へのパケットの転送を終了して、仮想通信装置5130を停止するための、通信装置30と情報処理装置50の間の連携動作の手順の例を示している。
図16を参照すると、通信装置30において、負荷監視部322は、プロセッサ302、記憶部304および通信用記憶部316等の資源の負荷状態を監視する。この場合、負荷監視部322は、全ての資源の負荷が閾値より低く、その資源の低負荷状態を検出したものとする。
ステップ784において、負荷監視部322は、通信装置30の高負荷状態が解除されたことを負荷分析部324に通知する。
ステップ786において、負荷分析部324は、通信制御部312に仮想通信装置5130へのパケットの転送を中止するよう要求する。ステップ788において、通信制御部312は、現在のコネクションの後で確立された後続のコネクションについて、転送部314にパケット転送をさせずパケット転送を終了させる。その後、現在のコネクションに関する通信装置30から仮想通信装置5130への全てのパケットが転送されてしまった後、通信装置30から仮想通信装置5130へパケットが転送されなくなる。
ステップ792において、通信監視部5034は、コネクション情報5317を監視して、通信装置30からの転送が終了された後、コネクション情報5317を参照して仮想通信装置5130で処理されるパケットがないことを検出する。ステップ794において、通信監視部5034は、仮想通信装置5130が無通信状態であることを、装置管理部5032に通知する。
ステップ796において、装置管理部5032は、その無通信状態の通知に応答して、仮想通信装置5130が停止したことを通信装置30に通知するよう連携部5328に要求する。ステップ798において、連携部5328は、仮想通信装置5130が停止したことを通信装置30に通知する。通信装置30において、連携部328が、仮想通信装置5130の停止の通知を受け取る。
ステップ802において、連携部328は、仮想通信装置5130の停止の通知の受領に応答して、その通知の受け取ったことを表す受領確認応答(ACK)を仮想通信装置に通知する。連携部328がその受領確認通知を受け取る。ステップ804において、連携部328は、仮想通信装置5130の停止の通知の完了を装置管理部5032に通知する。
ステップ806において、装置管理部5032は、仮想通信装置5130の動作を停止し、さらに削除してもよい。従って、情報処理装置50は、処理されるパケットがない場合には動作を停止することができ、その分の電力を節減することができる。
次は、図4Aにおける、タンデム接続の通信装置30、38および39と情報処理装置50との間の動作の例について説明する。
図17Aおよび17Bは、図4Aにおける通信装置30、38および39と、情報処理装置50の管理部5026、ハイパーバイザ部5028および仮想通信装置5130、5138および5139とにおける接続または結合関係の例を示している。
図17Aおよび17Bにおいて、通信装置30、38および39の各々はそれぞれのインタフェース部310を介して情報処理装置50に結合されている。また、情報処理装置50はそのインタフェース部510を介して通信装置30、38および39に結合されている。
また、通信装置30の通信制御部312は通信装置38の通信制御部312に接続され、通信装置38の通信制御部312は通信装置39の通信制御部312に接続され、通信装置39の通信制御部312は情報処理装置40に接続されている。また、仮想通信装置5130の通信制御部5312は仮想通信装置5138の通信制御部5312に接続され、仮想通信装置5138の通信制御部5312は仮想通信装置5139の通信制御部5312に接続される。さらに、仮想通信装置5139の通信制御部5312は情報処理装置40に接続されてもよい。
また、通信装置30、38および39のそれぞれの通信制御部312は、仮想通信装置5130、5138および5139のそれぞれの通信制御部5312に結合される。また、通信装置30、38および39のそれぞれの処理能力拡張制御部320は、管理部5026、および仮想通信装置5130、5138および5139のそれぞれの連携部5036に結合される。
情報処理装置50の拡張仮想サーバ部5024において、管理部5026は、仮想通信装置5130、5138および5139のそれぞれの装置管理部5032に結合される。ハイパーバイザ部5028は、仮想通信装置5130、5138および5139を動的に生成し、仮想通信装置5130、5138および5139に結合される。
図17Bでは、通信装置30の処理能力拡張制御部320の情報収集部326は、装置固有情報380に加えて、記憶部304内の装置間接続関係情報382をも参照する。ここで、装置間接続関係情報382は、記憶部304に予め格納され、通信装置30の後段に通信装置38および39が順にタンデム接続されていることを表す情報を含んでいる。また、通信装置38は、機能部330〜336と異なる機能部338を含んでおり、通信部39は、機能部330〜336および338と異なる別の機能部340を含んでいる。機能部338および340は、例えば、それぞれ検疫機能(NQ)および認証機能(AU)であってもよい。
通信装置30、38および39の各々と情報処理装置50の拡張仮想サーバ部5024の仮想通信装置5130、5138および5139との間のその他の結合関係は、図9の通信装置30〜32の各々と拡張仮想サーバ部5024の仮想通信装置5130との間の結合関係と同様である。
管理者は、通信装置30、38および39において、それぞれの負荷分析部324において高負荷状態またはトラフィックの輻輳状態、および/または低負荷状態またはトラフィックの非輻輳状態を判定するための閾値を予め設定してそれぞれの記憶部304に格納する。
通信装置30、38および39、および仮想通信装置5130、5138および5139の個々の動作は、それぞれ図9の通信装置30および仮想通信装置5130の動作と同様である。
通信装置30、38および39において、それぞれの負荷監視部322は、常にまたは短い周期で、それぞれのプロセッサ302、記憶部304および通信用記憶部316等の資源の負荷状態を監視する。通信装置30、38および39において、それぞれの負荷監視部322は、それぞれの記憶部304内の閾値を参照して、いずれかの資源の負荷が閾値を超えてその資源の高負荷状態を検出した場合に、それぞれの負荷分析部324に対して、その高負荷状態を通知する。
例えば、情報処理装置110〜116から通信装置30を介してサーバ装置としての情報処理装置40へのアクセスが発生し、そのコネクション数が時間経過とともに増加し、通信装置30、38および39の資源の負荷(例、CPU使用率)が閾値(例、90%)を超えたとする。この場合、通信装置30において、負荷分析部324は、図9の場合と同様に、通信装置30上で動作中の機能部330〜336の中で最も高負荷状態の少なくとも1つの機能部に関する情報を情報収集部326および連携部328に通知する。
通信装置30において、情報収集部326は、図9の場合と同様、仮想通信装置5130、5138および5139の対応する機能部を起動するための情報を、記憶部304内の通信装置30の装置固有情報380および装置間接続関係情報382から収集して連携部328に通知する。装置固有情報380または装置間接続関係情報382には、後段の通信装置38、39の装置固有情報380が含まれてもよい。
通信装置30において、連携部328は、装置固有情報380および装置間接続関係情報382に基づいて、拡張仮想サーバ部5024の管理部5026に対して、仮想通信装置5130と後段の従続接続の仮想通信装置5138および5139を起動するよう要求する。管理部5026は、その要求に応答して、ハイパーバイザ部5028に仮想通信装置5130、5138および5139を起動するよう要求する。ハイパーバイザ部5028は、その要求に応答して、仮想通信装置5130、5138および5139を生成して起動する。
一方、通信装置30において、通信制御部312の転送部314は、仮想通信装置5130、5138および5139の起動後に確立されたコネクションについて、ネットワーク5からの受信パケットまたはいずれかの機能部330〜334で処理済みのパケットを分析する。次の機能部(330〜336)が高負荷状態で、そのパケットを仮想通信装置5130に転送するよう要求された場合に、転送部314は、そのパケットに制御情報および次処理の情報を加えて、そのパケットを仮想通信装置5130へ転送する。
仮想通信装置5130において、仮想通信制御部5312は通信装置30からパケットを受け取って転送部5314に渡す。転送部5314は、そのパケットを分析し、その制御情報を参照して、制御情報に対応する仮想通信装置5130、5138および5139中の機能部(5330〜5336、5338、5340)を特定する。転送部5314は、通信装置30から受け取ったパケットをその対応する機能部(例、5334〜5336)に渡して、その対応する機能部(例、5334〜5336)にそのパケットを処理させる。また、制御情報に後段の仮想通信装置5138および5139の処理の機能に関する情報が含まれている場合、仮想通信制御部5312またはその転送部5314は、仮想通信装置5130の最後の段の機能部5336での処理済みのパケットを仮想通信装置5138へ転送する。
仮想通信装置5138において、通信制御部5312の転送部5314は、機能部5336で処理済みのパケットを機能部5338に処理させ、その処理済みのパケットを、後段の仮想通信装置5139へ転送する。また、仮想通信装置5139において、通信制御部5312の転送部5314は、機能部5338で処理済みのパケットを機能部5340に処理させ、その処理済みのパケットを通信装置39または情報処理装置40に転送する。通信装置39の通信制御部312の転送部314は、仮想通信装置5139から受け取ったパケットを分析し、その受け取ったパケットを情報処理装置40に転送する。
その後、例えば、情報処理装置110〜116から通信装置30、38および39を介した情報処理装置40への幾つかのアクセスが消滅し、そのコネクション数が時間経過とともに減少して、通信装置30、38および39の資源の負荷が閾値より低くなったとする。この場合、通信装置30において、負荷監視部322は、図9の場合と同様に、いずれかの資源の負荷が高負荷状態から低負荷状態に変化した場合に、負荷分析部324にその変化または低負荷状態を通知する。
通信装置30において、負荷分析部324は、その通知に応答して、通信制御部312に対して、パケットの拡張仮想サーバ部5024への転送を停止するよう要求する。通信制御部312は、その要求に応答して、その後で確立されたコネクションについて、転送部314によるパケットの仮想通信装置5130への転送を停止する。その後、通信装置30において、通信制御部312は、その後の受信パケットを機能部330〜336に処理させる。通信装置30の通信制御部312は、その後の処理済みのパケットを通信装置38に転送する。
通信装置38において、通信装置38の負荷が閾値を超えた場合、図9の通信装置30の場合と同様に、通信制御部312は、通信装置30から受け取ったパケットを仮想通信装置5138に転送して処理させ、その処理済みのパケットを通信装置39に転送してもよい。通信装置39において、通信装置39の負荷が閾値を超えた場合、図9の通信装置30の場合と同様に、通信制御部312は、通信装置38から受け取ったパケットを仮想通信装置5139に転送して処理させ、その処理済みのパケットを情報処理装置40へと転送してもよい。代替形態として、仮想通信装置5139は、処理済みのパケットを情報処理装置40へと転送してもよい。
このように、前段の通信装置30が高負荷状態となった場合に、後段の通信装置38および39の高負荷状態を予測して、前段と後段の通信装置30、38および39の機能の処理能力を同時に拡張仮想サーバ部5024にスケールアウトすることができる。それによって、後段の通信装置38、39がその後に高負荷状態になるのを予防することができる。
次は、図5における、分岐接続関係の通信装置30、38および39と情報処理装置50との間の動作の例について説明する。
図18Aおよび18Bは、図5における通信装置30、38および39と、情報処理装置50の管理部5026、ハイパーバイザ部5028および仮想通信装置5130、5138および5139とにおける接続または結合関係の例を示している。
図18Aおよび18Bにおいて、通信装置30、38および39の各々はそれぞれのインタフェース部310を介して情報処理装置50に結合されている。また、情報処理装置50はそのインタフェース部510を介して通信装置30、38および39に結合されている。
また、通信装置30の通信制御部312は、通信装置38および39のそれぞれの通信制御部312に接続され、通信装置38および39のそれぞれの通信制御部312はそれぞれ情報処理装置40および42に接続されている。また、仮想通信装置5130の通信制御部5312は、仮想通信装置5138および5139のそれぞれの通信制御部5312に接続される。また、仮想通信装置5138および5139のそれぞれの通信制御部5312はそれぞれ情報処理装置40および42に接続されてもよい。
また、通信装置30、38および39のそれぞれの通信制御部312は、図17Aおよび17Bの場合と同様に、仮想通信装置5130、5138および5139のそれぞれの通信制御部5312に結合される。また、通信装置30、38および39のそれぞれの処理能力拡張制御部320は、図17Aおよび17Bの場合と同様に、仮想通信装置5130、5138および5139のそれぞれの管理部5036および連携部5036に結合される。
図18Bでは、通信装置30の処理能力拡張制御部320の情報収集部326は、装置固有情報380に加えて、記憶部304内の装置間接続関係情報382をも参照する。ここで、装置間接続関係情報382は、記憶部304に予め格納され、通信装置30の後段に通信装置38および39の双方が並列に接続されていることを表す情報を含んでいる。また、通信装置38の機能部338と通信装置39の機能部340は機能部330〜336とは異なるが、機能部338は機能部340と同等のものであってもまたは異なるものであってもよい。
拡張仮想サーバ部5024において、管理部5026は、図17Aおよび17Bの場合と同様に、仮想通信装置5130、5138および5139のそれぞれの装置管理部5032に結合される。ハイパーバイザ部5028は、図17Aおよび17Bの場合と同様に、仮想通信装置5130、5138および5139を動的に生成し、仮想通信装置5130、5138および5139に結合される。
各通信装置30、38及び39と情報処理装置50の拡張仮想サーバ部5024の仮想通信装置5130、5138及び5139との間のその他の結合関係は、図9の各通信装置30〜32と拡張仮想サーバ部5024の仮想通信装置5130との間の結合関係と同様である。
通信装置30、38および39、および仮想通信装置5130、5138および5139の各々の動作は、それぞれ図9の通信装置30および仮想通信装置5130の動作と同様である。また、通信装置30、38および39、および仮想通信装置5130、5138および5139の各々は、相互の接続および連携動作の関係が異なる以外は、それぞれ図17Aおよび17Bのものの同様に設定され動作されてもよい。
例えば、図17A及び17Bの場合と同様に、情報処理装置110〜116から通信装置30を介してサーバ装置としての情報処理装置40、42へのアクセスが発生し、そのコネクション数が時間経過とともに増加して、通信装置30、38及び39の資源の負荷が閾値を超えたとする。この場合、通信装置30の機能部5330〜5336の高負荷状態に対して、通信装置30、38および39と、情報処理装置50の拡張仮想サーバ部5024とは、図17Aおよび17Bの場合と同様に、動作する。この場合、仮想通信装置5138および5139は、仮想通信装置5130の後段に分岐接続された形態で生成される。
仮想通信装置5130において、転送部5314は、通信装置30から受け取ったパケットを対応する機能部(例、5334〜5336)に処理させる。また、制御情報に後段の仮想通信装置5138及び5139の処理の機能に関する情報が含まれる場合、仮想通信制御部5312又はその転送部5314は、仮想通信装置5130の最後の段の機能部5336での処理済みのパケットを仮想通信装置5138及び5139へ転送する。
仮想通信装置5138および5139の各々において、それぞれの転送部5314は、仮想通信装置5130で処理済みのパケットを機能部5338および5340に処理させる。仮想通信装置5138の転送部5314は、機能部5338で処理済みのパケットを通信装置38または情報処理装置40に転送する。また、仮想通信装置5139の転送部5314は、機能部5340で処理済みのパケットを通信装置39または情報処理装置42に転送する。さらに、通信装置38の通信制御部312の転送部314は、仮想通信装置5138から受け取ったパケットを分析し、その受け取ったパケットを情報処理装置40に転送してもよい。また、通信装置39の通信制御部312の転送部314は、仮想通信装置5139から受け取ったパケットを分析し、その受け取ったパケットを情報処理装置42に転送してもよい。
その後、例えば、情報処理装置110〜116から通信装置30、38および39を介した情報処理装置40への幾つかのアクセスが消滅し、そのコネクション数が時間経過とともに減少して、通信装置30、38、39の資源の負荷が閾値より低くなったとする。この場合、通信装置30の低負荷状態に対して、通信装置30、38および39と、情報処理装置50の拡張仮想サーバ部5024とは、図17Aおよび17Bの場合と同様に、動作する。
通信装置30から仮想通信装置5130へのパケット転送の停止後、通信装置30において、通信制御部312は、その後の受信パケットを機能部330〜336に処理させる。通信装置30の通信制御部312は、その後の処理済みのパケットを通信装置38および39に転送する。通信装置38および39において、通信装置38及び9が低負荷状態の場合、それぞれの通信制御部312は、通信装置30から受け取ったパケットをそれぞれの機能部338及び340に処理させ、その処理済みのパケットをそれぞれ情報処理装置40及び42に転送する。
このように、前段の通信装置30が高負荷状態となった場合に、後段の通信装置38および39の高負荷状態を予測して、前段と後段の通信装置30、38および39の機能の処理能力を同時に拡張仮想サーバ部5024に拡張またはスケールアウトすることができる。それによって、後段の通信装置38および39がその後に高負荷状態になるのを予防することができる。
上述の実施形態によれば、通信装置30〜32、38、39における各機能の処理能力を、その各機能の負荷状態に応じて、情報処理装置50の拡張仮想サーバ部5024に動的に拡張またはスケールアウトすることができる。従って、通信装置30〜32、38、39の各機能の高負荷状態による通信サービスまたは情報サービスへの影響を大幅に低減することができる。
一般的に通信装置30〜32、38、39のような通信装置は、高価なので、それと同等の機能の処理能力を拡張仮想サーバ部5024に拡張またはスケールアウトすることによって、低コストで通信の処理能力を向上させることができる。また、複数の通信装置30〜32、38、39における処理能力を、1つの情報処理装置50の拡張仮想サーバ部5024に拡張またはスケールアウトすることができるので、低コストで大きい効果が得られる。
ここで挙げた全ての例および条件的表現は、発明者が技術促進に貢献した発明および概念を読者が理解するのを助けるためのものであり、ここで具体的に挙げたそのような例および条件に限定することなく解釈され、また、明細書におけるそのような例の編成は本発明の優劣を示すこととは関係ない、と理解される。本発明の実施形態を詳細に説明したが、本発明の精神および範囲から逸脱することなく、それに対して種々の変更、置換および変形を施すことができる、と理解される。
以上の実施例を含む実施形態に関して、さらに以下の付記を開示する。
(付記1)通信装置と情報処理装置とを含む通信システムであって、
前記通信装置は、通信インタフェース部を介して伝送されるパケットを処理する1つ以上の機能を含み、自通信装置の負荷の状態を監視し、前記負荷が閾値より高くなった場合に、前記負荷が前記閾値より高くなった状態の要因となっている前記1つ以上の機能の中の特定機能に関する情報を前記情報処理装置に供給した後、受信したパケットを前記情報処理装置に転送し、
前記情報処理装置は、前記特定機能に関する情報を受信して、前記特定機能に対応する機能を含む仮想装置を動的に生成し、転送された前記パケットを受け取って前記仮想装置に処理させる
ことを特徴とする通信システム。
(付記2)前記通信装置は、前記負荷が閾値より高くなった場合に、前記特定機能および前記通信装置の後段に接続された別の通信装置に関する情報を前記情報処理装置に供給し、
前記情報処理装置は、前記特定機能および前記別の通信装置に関する情報を受信して、前記特定機能に対応する機能を含む第1の仮想装置と、前記別の通信装置に対応する機能を含む第2の仮想装置とを動的に生成し、転送された前記パケットを受け取って前記第1と第2の仮想装置に処理させるものであることを特徴とする、付記1に記載の通信システム。
(付記3)前記情報処理装置は、さらに、別の通信装置から別の機能に関する情報を受信して、前記別の機能に対応する機能を含む別の仮想装置を動的に生成し、前記別の通信装置から転送されたパケットを受け取って前記別の仮想装置に処理させるものであることを特徴とする、付記1または2に記載の通信システム。
(付記4)前記通信装置は、前記負荷が閾値より低くなった場合に、受信されたパケットを前記情報処理装置に転送しないようにするものであることを特徴とする、付記1乃至3のいずれかに記載の通信システム。
(付記5)前記情報処理装置は、前記仮想装置で処理されるパケットがなくなった場合に、前記仮想装置を停止させるものであることを特徴とする、付記4に記載の通信システム。
(付記6)通信インタフェース部を介して伝送されるパケットを処理する1つ以上の機能部と、
自通信装置の負荷の状態を監視し、前記負荷が閾値より高くなった場合に前記負荷が前記閾値より高くなった状態の要因となっている前記1つ以上の機能部の中の特定機能部に対応する機能部を含む仮想装置を別の装置上に動的に生成させる第1の制御部と、
前記仮想装置の生成後に受信したパケットを、前記別の装置に転送する第2の制御部と、
を含む通信装置。
(付記7)通信インタフェース部を介して伝送されるパケットを処理する1つ以上の機能を実行し、
通信装置の負荷の状態を監視し、前記負荷が閾値を超えて高くなった場合に前記負荷の高い状態の要因となっている前記1つ以上の機能の中の或る機能に対応する機能を含む仮想装置を別の装置上に動的に生成させ、
前記仮想装置の生成後に受信したパケットを、前記仮想装置に転送する
処理を前記通信装置に実行させるためのプログラム。
(付記8)通信インタフェース部を介して伝送されるパケットを処理する1つ以上の機能を実行し、
自通信装置の負荷の状態を監視し、前記負荷が閾値より高くなった場合に前記負荷が前記閾値より高くなった状態の要因となっている前記1つ以上の機能の中の特定機能に対応する機能を含む仮想装置を別の装置上に動的に生成させ、
前記仮想装置の生成後に受信したパケットを、前記別の装置に転送する
処理を、通信装置が実行する方法。