Nothing Special   »   [go: up one dir, main page]

JP4324975B2 - 負荷低減システム、計算機、及び負荷低減方法 - Google Patents

負荷低減システム、計算機、及び負荷低減方法 Download PDF

Info

Publication number
JP4324975B2
JP4324975B2 JP2006261956A JP2006261956A JP4324975B2 JP 4324975 B2 JP4324975 B2 JP 4324975B2 JP 2006261956 A JP2006261956 A JP 2006261956A JP 2006261956 A JP2006261956 A JP 2006261956A JP 4324975 B2 JP4324975 B2 JP 4324975B2
Authority
JP
Japan
Prior art keywords
server
client
machine
processing unit
load reduction
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
JP2006261956A
Other languages
English (en)
Other versions
JP2008083897A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2006261956A priority Critical patent/JP4324975B2/ja
Priority to US11/898,301 priority patent/US20080077690A1/en
Publication of JP2008083897A publication Critical patent/JP2008083897A/ja
Application granted granted Critical
Publication of JP4324975B2 publication Critical patent/JP4324975B2/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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2521Translation architectures other than single NAT servers
    • H04L61/2525Translation at a client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、負荷低減システムに関し、特にクライアントを利用したサーバの負荷低減のための負荷低減システムに関する。
年々処理能力が向上するPCサーバを有効利用するため、VM(Virtual Machine:仮想マシン)ソフトウェアを利用したサーバ統合、クライアント統合といったソリューションが流行の兆を見せている一方で、処理の多くがサーバサイドで実行されることで、サーバの中にはより負荷が集中しているものもある。
こうした中、普通のPCでも処理能力は相当に向上し、クライアントPCにおいてリソースが余剰になってきており、クライアント側で処理の一部を分担する動きが出てきている。
クライアント・サーバ方式は、サービスを提供するノードであるサーバと処理を要求するノードであるクライアントをネットワークで接続し、クライアントからの処理要求を受信することでサーバがその処理を開始し、結果をクライアントに送信する仕組みである。
サーバが提供するサービスには多くの種類があるが、インターネットの急速な発展に伴い、その内容は高度化し、かつサーバに接続するクライアントの要求数も増加している。また、ネットワークのブロードバンド化に伴い、処理すべきデータ量が増加すると共に、クライアントが要求する応答時間(レスポンスタイム)も厳しくなる傾向にある。サーバマシンの処理能力も向上しているが、サーバマシンへの負荷の増加がそれを上回ることで、サーバの処理が著しく遅くなったり、更にはクライアントから処理を受け付けない状態となったりして、サーバがボトルネックと化している。
サーバのボトルネックを解決する手段として、まず第一にサーバマシンをより処理能力の高いものに交換するという方法がある。この場合、一時的にはボトルネックは解消するが、更に負荷が増加した場合、サーバマシンを再び交換するか、もしくはそれ以上の処理能力をマシンを持ったサーバマシンがないと、解決できない場合があるという問題がある。また、処理能力の高いマシンは一般的に高価である。
他の解決手段として、サーバマシンの負荷の高い処理部分をそのサーバマシンとは別の専用装置で処理する方法がある。この場合、サーバが受け付けた処理要求に対して、サーバは計算量の多い部分を別の専用装置に処理依頼を行い、そしてその結果を使用して、サーバ処理を継続する。この場合の問題点は、このような分離可能な場合が限られること、また、そうした専用装置は高価になることが挙げられる。
更に他の解決手段として、サーバマシンを複数台使用する方法がある。この解決手段では、一般的には負荷分散装置という特別なノードを導入して、その配下に複数台のサーバマシンを置く構成となる。負荷分散装置は、なるべく負荷が均一となるように、クライアントからの要求を、各サーバマシンに振り分ける役割を果たす。そして、全体の負荷が高くなり、サーバがボトルネックとなってきたならば、新たにサーバマシンを負荷分散装置の配下に追加することで、それを解消することができる。この場合の問題点は、負荷分散装置が高価であることや、負荷分散装置自体がボトルネックとなる可能性、負荷を分散するための高度な管理が必要となること等が挙げられる。
関連する技術として、特開2004−220151号公報(特許文献1)に新旧モジュールの切り換え機能を有するサーバ装置が開示されている。
この従来技術では、サーバ装置は、ファイル起動指示に基づいて、記憶装置に記憶された起動対象モジュール毎に仮想クライアントOSを生成する仮想サーバ制御部と、起動対象モジュールをメインメモリにローディングして、当該起動対象モジュールを起動するブート制御部と、各起動対象モジュールにIPアドレスの付与を制御し、当該モジュールのモジュール名とIPアドレスとの関係を第1テーブルに登録し、モジュール名とIPアドレスとの間の変換をするIPアドレス/モジュール名変換DB管理部と、異なる仮想クライアントOSにより起動されたモジュール宛てのメッセージを当該モジュールの第1テーブルに登録されているIPアドレスに基づいてルーティングをするルーティング制御部とを具備する。すなわち、サーバ上に仮想サーバと仮想クライアントを両立し、仮想サーバ制御部(ハイパバイザ)がIPアドレスを仲介する。
また、特開平11−053326号公報(特許文献2)に分散処理システムが開示されている。
この従来技術では、クライアントノードは、ユーザーの操作に応じて、サーバノードに対して処理要求信号を送信する。サーバノードは、処理要求信号を受信すると、オペレーションシステムからCPU使用率を取得し、CPU使用率が設定値以下である場合には、要求された処理を行い、処理結果をクライアントノードに対して送信する。逆に、CPU使用率が設定値以上である場合には、サーバノードは、要求された処理をクライアントノードに実行させる旨の応答信号を送信する。応答信号に対して、クライアントノードがアプリケーションプログラムの送信を要求すると、サーバノードは、要求された処理を行うためのアプリケーションプログラムをクライアントノードに送信する。クライアントノードは、アプリケーションプログラムを実行して処理結果を得る。すなわち、クライアント機能に相当するクライアントノードの処理要求部の検索要求を受け、サーバノードは検索プログラムをクライアントノードに送信し、クライアントノードは検索プログラムを受信して実行する。なお、クライアント機能及び検索プログラムはVM(仮想マシン)上で動作するものではない。
特開2004−220151号公報 特開平11−053326号公報
特開2004−220151号公報(特許文献1)に記載の従来技術は、そもそも、プロセッサ切り替えを伴わないファイル更新を行うことのできるサーバ装置を提供することを目的としている。具体的には、サーバ装置において、ファイル起動指示に基づいて、起動対象モジュール毎に仮想クライアントOSを生成し、新旧ファイル間で変更しているモジュールのみを入れ替えている。当然、全ての処理はサーバ装置上で完結しており、サーバ装置にのみ負荷がかかる。
特開平11−053326号公報(特許文献2)に記載の従来技術は、クライアントPC側のマシンリソースを考慮することなく、サーバが提供していた一部のサービスをクライアントPC側に肩代わりさせている。また、VM(仮想マシン)を使用しておらず、単にサーバ側で実行されていたアプリケーションプログラムをクライアントPC側で実行させているため、実行中にクライアントPC側とサーバ側とで通信を行う必要があるアプリケーションプログラムの場合には適さない。
本発明の目的は、アクセスが集中するサーバの負荷を、クライアントPCを利用して低減し、その際、セキュリティを低下させない負荷低減システムを提供することである。
本発明の他の目的は、クライアント側を仮想マシン構成とすることで、サーバの負荷低減を実現する負荷低減システムを提供することである。
本発明の負荷低減システムは、自身のマシンリソースを示すリソース情報を収集し、リソース情報に応じたサーバプログラム(222)を取得して実行し、ネットワークとの通信をサーバプログラム(222)に基づくサーバとの通信に切り換える第1計算機(100)と、
第1計算機(100)からリソース情報を取得し、リソース情報に基づきサーバプログラム(222)を生成して第1計算機(100)に提供する第2計算機(200)とを具備する。
第2計算機(200)は、リソース情報に基づいて、第1計算機(100)のマシンリソースが利用可能であるかどうか判断するサーバ管理部(220)と、利用可能なマシンリソースに応じて、第1計算機(100)で動作するサーバプログラム(222)を組み立てるサーバ組み立て部(221)とを具備する。
第1計算機(100)は、クライアントとして動作する第1処理部(120)と、サーバとして動作する第2処理部(130)と、第1処理部(120)とネットワークとの通信を、第1処理部(120)と第2処理部(130)との通信に切り換える通信切換部(111)と、リソース情報を第2計算機(200)に提供し、第2計算機(200)から取得したサーバプログラム(222)を第2処理部(130)に提供するクライアント管理部(112)とを具備する。
クライアント管理部(112)は、第2計算機(200)の識別情報及び第2処理部(130)の識別情報を登録するための転送テーブルに、第2計算機(200)の識別情報及び第2処理部(130)の識別情報のうち少なくとも一方の識別情報を登録する。通信切換部(111)は、第1処理部(120)とネットワークとの通信の際、転送テーブルを参照し、転送テーブルに第2処理部(130)の識別情報が登録されていれば、第1処理部(120)と第2処理部(130)との通信に切り換える。
クライアント管理部(112)は、第1計算機(100)の負荷が基準値を超えた場合、第2処理部(130)を停止させ、転送テーブル上の第2処理部(130)の登録情報を削除し、第1処理部(120)に第2計算機(200)を利用させるようにする場合もある。
クライアント管理部(112)は、第1計算機(100)のマシンリソースが不足した場合、第1処理部(121)に、第2処理部(222)の利用を中止させて第2計算機(200)を利用させ、第1計算機(100)のマシンリソースが回復した場合、第1処理部(121)に第2処理部(222)の利用を再開させるようにする場合もある。
クライアント管理部(112)は、第1処理部(121)に、第2処理部(222)と第2計算機(200)とを並行して利用させるようにする場合もある。
また、本発明のクライアントマシン(100)は、仮想マシン内で動作するクライアントプログラム(121)と、仮想マシンのリソース情報をサーバ側に提供し、サーバ側からサーバプログラム(222)を取得し、サーバプログラム(222)を仮想マシン内で実行する仮想マシン管理(110)と、仮想マシン内の通信を管理し、クライアントプログラム(121)とサーバ側との通信を、クライアントプログラム(121)とサーバプログラム(222)との通信に切り換える通信切換部(111)とを具備する場合もある。
サーバプログラム(222)は、仮想マシン内で実行される機能を呼び出す局所呼出部(2231,2233)と、他のサーバ上で実行される機能を呼び出す遠隔呼出部(2232)とを具備する。
また、本発明のサーバマシン(200)は、クライアント側のマシンリソースを示すリソース情報を取得し、リソース情報を参照してクライアント側のマシンリソースが利用可能であるかどうか判断するサーバ管理部(220)と、クライアント側のマシンリソースが利用可能である場合、リソース情報に基づいて、クライアント側に送付するサーバプログラム(222)を生成するサーバ組み立て部(221)とを具備する場合もある。
本発明の負荷低減方法及びプログラムは、(a1)サーバ側で、クライアント側から取得したリソース情報に基づき、クライアント側のマシンリソースが利用可能であるかどうか判断するステップと、(a2)クライアント側のマシンリソースが利用可能であると判断すると、使用するリソースとクライアントの権限に基づき、クライアント側の仮想マシンで起動するサーバプログラム(222)を作成するステップと、(a3)サーバプログラム(222)をクライアント側に送付するステップとを具備する。
本発明の負荷低減方法及びプログラムは、(b1)第1処理部(120)からの送信で、第1処理部(120)からの送信に含まれる識別情報が転送テーブルに登録されているかどうか確認するステップと、(b2)識別情報が転送テーブルに登録されていなければ、第1処理部(120)からの送信をネットワークへ転送するステップと、(b3)識別情報が転送テーブルに登録されているならば、代替識別情報が設定されているかどうか確認するステップと、(b4)代替識別情報が設定されているならば、識別情報を代替識別情報に書き換えるステップと、(b5)第1処理部(120)からの送信を第2処理部(130)に転送するステップとを更に具備する。
本発明の負荷低減方法及びプログラムは、(c1)第2処理部(130)からの送信が、第1処理部(120)への送信かどうか確認するステップと、(c2)前記第1処理部(120)への送信であれば、送信元の識別情報が前記代替識別情報として設定されているかどうか確認するステップと、(c3)前記代替識別情報が設定されているならば、送信元の識別情報を前記代替識別情報に書き換えるステップと、(c4)前記第2処理部(130)からの送信を前記第1処理部(120)に転送するステップと、(c5)前記第2処理部(130)からの送信が、前記第1処理部(120)以外への送信であれば、前記第2処理部(130)の送信元の識別情報として前記代替識別情報を使用しているかどうか確認するステップと、(c6)前記代替識別情報を使用していなければ、前記第2処理部(130)から送信されたパケットを廃棄するステップとを更に具備する。
本発明の他の負荷低減方法及びプログラムは、(A1)クライアント(121)が第1識別情報を持つ第1サーバ(210)に接続してサービスを要求するステップと、(A2)マシン管理機器(110)が前記第1サーバ(210)からの接続用にサービスポートを開けるステップと、(A3)前記第1サーバ(210)が前記マシン管理機器(110)のサービスポートに接続を試みるステップと、(A4)前記サービスポートへの接続に失敗した場合は、第1サーバ(210)が前記クライアント(121)に対してサービスを提供し続けるステップと、(A5)前記サービスポートへの接続に成功した場合は、前記第1サーバ(210)が前記クライアント(121)環境の仮想マシン(130)上で利用可能な資源を確認して、必要な資源を利用できるならば、前記クライアント(121)に対してサービスを提供しながら、同時に前記マシン管理機器(110)に対してサービスを提供するプログラムと必要な環境情報を送信するステップと、(A6)前記マシン管理機器(110)が、前記第1サーバ(210)から受信したプログラムと環境情報を、サーバ動作用の仮想マシン(130)上に格納するステップと、(A7)受信が完了したら、前記サーバ動作用の仮想マシン(130)に前記第1識別情報を与えて、第2サーバ(222)として動作を開始させるステップと、(A8)前記第1サーバ(210)は前記マシン管理機器(110)を利用して、前記第2サーバ(222)との間で同期を取り、前記マシン管理機器(110)に対して、前記第2サーバ(222)への切替えを通知するステップと、(A9)前記マシン管理機器(110)が、前記クライアント(121)から前記第1サーバ(210)への通信を、前記第2サーバ(222)へ転送するステップと、(A10)前記第2サーバ(222)から前記クライアント(121)以外への通信がある場合は、ネットワークアドレス変換により適当なアドレスへの変換を行うステップと、(A11)一定時間以上、前記クライアント(121)から前記第2サーバ(222)への通信がなくなった場合、前記マシン管理機器(110)が、前記第2サーバ(222)を停止して、前記第2サーバ(222)を動作させていた環境を解放するステップとを具備する。
利用するサーバをサーバマシン側からクライアントマシン側に移行するため、サーバマシンの負荷を低減させることができる。この移行は、クライアントに対してシームレスに行われるため、クライアントはサーバのサービスを継続して利用し続けることができる。例えば、暗号化を伴うサービスのように、負荷の高いサーバ処理を必要に応じてクライアント側で代行することで、サーバの負荷を低減することが可能となる。
以下に本発明の第1実施形態について添付図面を参照して説明する。
図1を参照すると、本発明の負荷低減システムは、クライアントマシン100と、サーバマシン200と、ネットワーク300を備えている。
クライアントマシン100は、仮想マシン管理110と、仮想マシン120を有する。サーバマシン200は、サーバ210を有する。ネットワーク300は、クライアントマシン100とサーバマシン200とを接続する電気通信回線である。なお、ネットワーク300は、有線、無線を問わない。
この時、クライアントマシン100上では、仮想マシン管理110と仮想マシン120が動作している。仮想マシン管理110は、仮想マシンモニタ、VMM(Virtual Machine Monitor)、ハイパーバイザと呼ばれるものであったり、仮想マシンを実現するアプリケーションであっても良い。なお、仮想マシン管理110は、事前にクライアントマシン100に搭載されているものとする。但し、実際には、クライアントマシン100がサーバマシン200にアクセスした際に、サーバマシン200から仮想マシン管理110に相当するアプリケーションプログラムや環境設定情報を取得(ダウンロード)するようにしても良い。
仮想マシン管理110は、通信切換部111と、クライアント管理112を有する。通信切換部111は、クライアントとサーバの通信を中継する。クライアント管理112は、クライアント側(クライアントマシン100)の管理を行う。
通信切換部111は、仮想マシン120からのパケットに対して、通常はネットワーク300へのパススルー通信を行うが、条件によりクライアントマシン100上の他の仮想マシンへの通信へと変更することができる。ここで、他の仮想マシンとは、クライアントマシン100上で動作する、仮想マシン120以外の仮想マシンを示す。
クライアント管理112は、仮想マシン上で使用可能なOS、CPU、メモリ、ストレージ、ネットワーク等のリソース情報113を保持している。すなわち、クライアント管理112は、クライアントマシン100のマシンリソースの内で、仮想マシン用に使用しても良いマシンリソースを管理している。
仮想マシン120は、クライアント121を有する。仮想マシン120は、クライアントOSの動作環境で、クライアントOS自身、もしくはクライアントOS上のアプリケーションとしてクライアント121が動作している。本実施例では、クライアント121は本発明による改造はされていない通常のクライアントである。但し、サーバ210を利用するために専用のクライアント(クライアント121)が必要な場合、サーバマシン200からクライアント121に相当するアプリケーションプログラムや環境設定情報を取得(ダウンロード)するようにしても良い。
サーバマシン200上ではサーバ210が動作している。このサーバ210は、サーバ側(サーバマシン200)の管理を行うサーバ管理220を持つ。サーバ管理220の中には、クライアントマシン110上に必要に応じて作成される仮想マシン130上で動作するサーバ222を組み立てるサーバ組み立て221を含む。なお、サーバ222は、仮想マシン上で動作するサーバプログラムである。図2に示すように、サーバ組み立て221は、クライアント管理部112から得た利用可能なリソース情報とクライアントの権限に基づいて、サーバ222に搭載する機能(モジュール)と設定情報を決定し、サーバ222を組み立てる。リソース情報としては、OS,CPU,メモリ,ネットワーク,ディスクが例として挙げられる。この時、サーバ組み立て221は、サーバ222に組み込まれる各機能のプログラム及び設定情報を格納するための記憶部(例:メモリ)と、リソース情報に基づきサーバ222に組み込む機能を決定する処理部(例:CPU)を組み合わせたものと考えることができる。図2では、サーバ組み立て221は、機能1〜5のうち、機能1,3,5を選択し、これらと設定情報を含むサーバ222を組み立てている。機能1,3,5は、リソース情報から判断して、クライアント側で実行することが可能と考えられる機能である。
なお、サーバマシン200側からクライアント121を提供する場合には、サーバ222と同様に、クライアント121も、利用可能なリソース情報とクライアントの権限に基づいて、サーバ組み立て221が組み立てるようにしても良い。
サーバ組み立て221が、複数からなるサーバ機能のうち、どの機能をサーバ222に組み込むかの判断は、以下のような条件に基づいて行う。
(1)クライアント管理から得た利用可能なリソース情報(OS,CPU,メモリ、ネットワーク、ディスク他)
(2)クライアントの権限
(3)機能実行に必要なデータの在り処:機能実行に必要なデータをサーバマシンからクライアントマシンに移せない場合は、これらのデータを使用する機能をサーバ222に組み込まない。
(4)共有資源に対する処理:排他制御のため、単一のサーバから処理をする場合であって、既に他にサーバが起動している場合は、このサーバで使用されている機能をサーバ222に組み込まない。
なお、サーバ222に組み込まなかった機能の実行は、サーバマシン200上のサーバ210で行う場合や、既に他のクライアントマシン100で動作する他のサーバ222で行う場合が考えられる。
ネットワーク300はIPネットワークで、通信301及び通信302はネットワーク300上の通信を表す。
以下に、本発明の詳細を説明する。
図1では、クライアント121がサーバ210にサービスを要求するために通信301を開始する。サービスの要求を受けたサーバ210では、サーバ管理220が通信302により送信元(クライアント)のクライアント管理112に接続する。実際には、クライアント121がサービスを要求した時に限らず、サーバ210(サーバマシン200)がクライアント121(クライアントマシン100)の起動を検出した時、又はサーバ210の負荷が大きくなった時に、サーバ管理220がクライアント管理112に接続するようにしても良い。クライアント管理112は、接続時に適当な認証を行った後、仮想マシン環境で利用可能なリソース情報113を、サーバ管理220に送付する。なお、この間にクライアント121はサーバ210から継続してサービスを受けている。
図3を参照して、本発明の動作について説明する。
(1)ステップS101
サーバ管理220は、クライアント管理112から取得したリソース情報113に基づいて、サーバ222を動作させるためにクライアント側のマシンリソースが利用可能であるかどうか判断する。クライアント側のマシンリソースに余裕が無ければサーバ222を十分に動作させることができないためである。ここでは、クライアント側のマシンリソースに応じて、サーバ222に組み込む機能の数及び種類を決定する。この時、予めサーバ222に全ての機能を組み込むように設定しておき、クライアント側のマシンリソースに応じて、負荷の大きい機能や重要度の低い機能を除外するようにしても良い。
(2)ステップS102
クライアント側のマシンリソースが利用可能であると判断すると、サーバ組み立て221が、使用するリソースとクライアントの権限から、クライアント側の仮想マシンで起動するサーバ222を作成する。
(3)ステップS103
サーバ管理220が、サーバ222(使用するリソース情報を含む)をクライアント管理112に送付する。
次に、図4に示すように、クライアント管理112は、サーバ管理220から受け取ったサーバ222の環境を含めた動作環境である仮想マシン130を起動する。なお、この間にクライアント121はサーバ210から継続してサービスを受けている。
サーバ管理220はクライアント管理112との間で同期点を決める。そして、同期点で、クライアント管理112は、通信切換部111が保持する転送テーブル114に、サーバ210のIPアドレス、プロトコル、ポート番号と仮想マシン130を登録する。図5に、転送テーブル114の例を示す。
同期点は、サービスの内容により異なる。ステートレスのサービスの場合、設定情報でステートレスであることを通知されれば、同期点通知は不要で、クライアント管理112が任意のタイミングで設定する。例えば、準備完了ならばすぐに通知するようにする。ステートがある、すなわち、ステートフルのサービスの場合、基本的にはセッションの区切りをサーバ管理220が同期点通知で連絡し、クライアント管理112はそれを同期点とする。なお、ステートレスは、要求がそれぞれ閉じていることを示し、ステートフルは、要求に対する応答が内部の状態により異なる場合があることを示している。すなわち、ステートレスのサービスでは、要求が過去の情報に依存せず、要求毎に独立している。逆に、ステートフルのサービスでは、要求が過去の情報に依存することがある。
同期点では、設定情報に基づいた内容を、転送マシンに登録することにより、以降の通信の流れを切り換える。すなわち、通信の流れをサーバ210から、利用する可能マシン130のサーバ222に変更する。クライアントから見れば、同期点前は元のサーバを、同期点後は仮想マシン130のサーバ222を利用することになるが、この切換えをクライアント121が意識する必要は無く、透過的である。
ここでは、図6に示すように、サーバ222は、AP(アプリケーション)サーバとしての役割を果たしている。通常、クライアント121からの要求に対して、サーバ210の代わりに、サーバ222が情報を処理し、クライアントに応答する。この時、サーバ222は、クライアント121以外とは通信しない。なお、ここでは、クライアント121はIPアドレス(IP−A)、サーバ210はIPアドレス(IP−B)を使用する。
上記のように、サーバ222の処理が、クライアント121とサーバ222間の通信のみで完結する場合、図7に示すように、転送テーブル114には、サーバ210のIPアドレス(IP−B)、プロトコル(Pr)、ポート番号(Po)、仮想マシンの識別情報(VM130)を登録する。VM130は、サーバ222が動作している仮想マシン130の識別情報である。なお、仮想マシンの識別情報は、通信の際に、通信切換部111が仮想マシンを特定することができる情報であれば良い。サーバ222は、サーバ210と同じIPアドレス(IP−B)を使用する。サーバ222のIPアドレス(IP−B)は、この仮想化環境でのみ有効であり、外部との通信には用いられない。この場合、代替アドレスは無く、IPアドレスの書換えは発生しない。
他の実施例として、図8に示すように、クライアント121からの要求に対して、サーバ210の代わりに、仮想マシン130上のサーバ222が、サーバ210と通信可能な外部のDBサーバ400にアクセスして情報を処理し、クライアントに応答する場合について説明する。このDBサーバ400は、サーバ210に接続されているものとする。サーバ210とDBサーバ400は同一のサーバでも良い。なお、ここでは、クライアント121はIPアドレス(IP−A)、サーバ210はIPアドレス(IP−B)、DBサーバ400はIPアドレス(IP−C)を使用する。
この場合、図9に示すように、転送テーブル114には、サーバ210のIPアドレス(IP−B)、プロトコル(Pr)、ポート番号(Po)を登録する。サーバ222は、サーバ210とは異なるIPアドレス(IP−D)を使用する。このIPアドレス(IP−D)が代替IPアドレスとなる。
転送テーブル114により、クライアント121のIPアドレス(IP−A)からIPアドレス(IP−B)、プロトコル(Pr)、ポート番号(Po)への通信は、IPアドレス(IP−A)からIPアドレス(IP−D)、プロトコル(Pr)、ポート番号(Po)への通信に切り換えとなる。なお、切り換えの際、転送テーブル114に登録されているIPアドレスの書き換えを行う。逆に、IPアドレス(IP−D)からIPアドレス(IP−A)への通信は、IPアドレス(IP−B)からIPアドレス(IP−A)への通信に切り換えとなる。サーバ222がクライアント121ではなく外部(この例ではDBサーバ400)と通信する場合、IPアドレス(IP−D)のまま切り換えは行わない。
更に他の実施例として、図10に示すように、サーバ210がVPN(IPsec)サーバの場合の例について説明する。なお、VPN(Virtual Private Network)とは、通信事業者の保有する広域通信網を経由して構築される仮想私設通信網のことである。
仮想マシン130上のサーバ222が、サーバ210(VPNサーバ)の代わりに、パケットの暗号化と復号化を行う。サーバ210が有する別サーバ代替一覧230は、仮想マシン130により代替しているVPNサーバ(サーバ222)の一覧である。パケットの送信元又は宛先がこの別サーバ代替一覧230に含まれる場合、サーバ210は、暗号化や復号化を行う必要が無い。サーバ222は、サーバ210の代わりに暗号化と復号化を行うが、そのために必要な鍵情報等を元のサーバ210(VPNサーバ)から受け取る必要がある。サーバ210(VPNサーバ)からのクライアント管理112への「リソース情報要求」は、送信元がクライアントであるときか、宛先がクライアントの最初のパケットを(一定時間内で)処理したときに行う。なお、ここでは、クライアント121はIPアドレス(IP−A)、サーバ210はIPアドレス(IP−B)を使用する。
この時、図11に示すように、転送テーブル114には、IPアドレスとしてVPNを利用するネットワークアドレス又はホストアドレスを登録する。この場合は、デフォルトであるため、「Default」とする。また、ローカルネットワークでは転送しないようにするために「(Local)」を登録する。サーバ222に該当するVPNサーバは、サーバ210に該当するVPNサーバとは異なるIPアドレス(IP−C)を使用するが、これは代替IPアドレスとはならない。これは、クライアントの通信先がVPNサーバではないためである。
更に他の実施例として、図12に示すように、サーバ210がパケットインスペクション(PI)サーバの場合の例について説明する。なお、この場合のパケットインスペクションは、パケットのデータを読み取り、内容を判断して、通過、破棄、記録、管理者への通知等の処置を行う機能のことを示す。
仮想マシン130上のサーバ222が、PIサーバ(サーバ210)の代わりに、クライアント121へのパケットのインスペクションを実行する。サーバ210が有する別サーバ代替一覧230は、仮想マシン130によりインスペクションを代替するPIサーバ(サーバ222)を持つクライアント121の一覧である。宛先がこの別サーバ代替一覧230に含まれる場合、サーバ210ではインスペクションを行わない。クライアント121へのパケットは、通信切換部111によりクライアント121に渡す前に、PIサーバ(サーバ222)に渡され、インスペクションが実行される。
サーバ210(PIサーバ)からのクライアント管理112への「リソース情報要求」は、送信元がクライアントである時か、宛先がクライアントの最初のパケットを(一定時間内で)処理した時に行う。
この場合は、宛先がクライアントのIPアドレス(IP−A)の通信であり、図13に示すように、転送テーブル114には、そのIPアドレス(IP−A)を登録する。サーバ222は、ここではパケットの検査を行うもので、サーバ222自身はIPアドレスを必要としない。但し、管理情報をやり取りするためにはIPアドレスを必要とする。通信の送信元は、ファイアウォール等にあるPIサーバ(サーバ210)ではないため、代替IPアドレスは必要としない。
図14及び図15を参照して、転送テーブル114登録後の通信について説明する。
通信切換部111はクライアント121からのサーバ210への通信を、サーバ210の代わりにサーバ222に転送する。図14は、サーバ222はクライアント121とのみ通信を行う場合で、サーバ222はサーバ210と同じアドレスを持つ。これに対して、図15は、サーバ222がクライアント121以外とも通信を行う場合で、これにはサーバ210との通信304やそれ以外の通信305がある。図15の場合には、仮想マシン130環境のIPアドレスは仮想マシン120環境のものとは別に設定して、図5の通信切換部111の転送テーブル114には、仮想マシン130環境のIPアドレスを代替IPアドレスとして登録する。なお、代替IPアドレスは、ネットワーク300に対して、サーバマシン200(サーバ210)と、仮想マシン130(サーバ222)とを区別するために使用する。
図16は、通信切換部111が転送テーブル114を使用して、図14と図15での仮想マシン120(クライアント121)からの通信を処理するフローチャートを示している。
(1)ステップS201
仮想マシン120(クライアント121)からのパケットの送信で、その宛先IPアドレスが転送テーブル114に登録されているかどうか確認する。すなわち、仮想マシン120(クライアント121)の送信先のIPアドレスが転送テーブル114に登録されているかどうか確認する。
(2)ステップS202
その宛先IPアドレスが転送テーブル114に登録されていなければ、ネットワーク300へ転送する。
(3)ステップS203
その宛先IPアドレスが転送テーブル114に登録されているならば、その宛先IPアドレスに対応する代替IPアドレスが設定されているかどうか確認する。
(4)ステップS204
代替IPアドレスが設定されているならば、宛先IPアドレスを代替IPアドレスに書き換える。
(5)ステップS205
仮想マシン120(クライアント121)からのパケットを、仮想マシン130(サーバ222)に転送する。
図17は、通信切換部111が転送テーブル114を使用して、図14と図15での仮想マシン130(サーバ222)からの通信を処理するフローチャートを示している。
(1)ステップS301
仮想マシン130(サーバ222)からのパケットの送信が、仮想マシン120(クライアント121)への送信かどうか確認する。
(2)ステップS302
仮想マシン120(クライアント121)への送信であれば、代替IPアドレスが使用されているかどうか確認する。
(3)ステップS303
代替IPアドレスが使用されているならば、送信元IPアドレスを、プロトコル(Pr)、ポート番号(Po)、仮想マシンの情報が一致するところにある元のIPアドレスに書き換える。
(4)ステップS304
仮想マシン130(サーバ222)からのパケットを仮想マシン120(クライアント121)に転送する。
(5)ステップS305
仮想マシン130(サーバ222)からの送信が、仮想マシン120(クライアント121)以外への送信であれば、代替IPアドレスを使用しているかどうか確認する。
(6)ステップS306
代替IPアドレスを使用していれば、仮想マシン130(サーバ222)からのパケットをネットワーク300へ転送する。
(7)ステップS307
代替IPアドレスを使用していなければ、仮想マシン130(サーバ222)からのパケットを廃棄する。
以下に本発明の第2実施形態について説明する。
第2実施形態は、ユーザが能動的にサーバ222をクライアントマシン100側にダウンロードして動作させるものである。
図18では、ユーザはクライアント環境の仮想マシン120から、クライアント管理112に対して、直接サーバプログラムをダウンロードすることを要求する。ダウンロードを要求する手段として、ユーザによる所定の機器に対する所定の操作、クライアントマシン100に設けられた所定のボタンの押下、或いは、クライアントマシン100に表示されたWebページやアプリケーション画面に対する操作が考えられる。例えば、サーバマシン200の負荷が大きくなったと感じたユーザが、上記のいずれかの操作により、クライアント管理112に対して、サーバプログラムのダウンロードを指示すると、クライアント管理112がサーバ管理220にクライアントマシン100のリソース情報を提供し、サーバマシン200が、そのリソース情報に応じたサーバプログラムをクライアント200側に提供するようにする。この場合、第1実施形態とは逆に、クライアント管理112からサーバ管理220に接続することで通信302が開始される。以降、同様の手順でサーバ222はクライアントマシン側に転送される。
図19では、クライアントマシン100がネットワークから切り離されたオフライン状態を示している。このように、第2実施形態では、オフライン状態でもクライアントはサーバを利用することもできる。
その他の工夫としては、図20に示すように、クライアント管理112がディスク上にプログラムキャッシュ115を持ち、プログラムキャッシュ115にサーバ222のプログラムを一定期間保存することで、サーバ222のダウンロードを不要とすることがある。
更に、本発明の第3実施形態として、図14や図15において、クライアント側の負荷が基準値を超えた等の理由により、クライアント管理112が仮想マシン130を停止させ、クライアント121に再び元のサーバ210を利用させるようにするというものがある。これは、通信切換部111上の転送テーブル114における、仮想マシン130に対するエントリー(仮想マシン130の登録情報)を削除することで行われる。
更に、本発明の第4実施形態として、図14や図15において、サーバ222起動中にリソースが不足した場合、クライアント管理112が、クライアント121にサーバ222の利用を一時的に中止させて、サーバ210を利用させるようにするというものがある。そして、リソース回復後、サーバ222の利用を再開する。なお、リソースが不足した場合に限らず、クライアントマシン100の処理能力が低下した場合にサーバ222の利用を停止してサーバ210の利用に切り換えるようにしても良い。
或いは、サーバ222を停止させずに、クライアント121にサーバ210とサーバ222を並行利用させることで、分散処理をすることも可能である。サーバ210及びサーバ222への処理の振り分けは、例えば、各々のサーバの負荷状況や、各々のサーバのマシンリソースに応じて決定する。
図21を参照して、本発明の全体の動作について以下に示す。
(1)ステップS401
クライアント121は、サーバ210にサービスを要求する。但し、実際には、サービスを要求した場合に限らず、クライアント121がサーバ210にアクセスしていれば良い。
(2)ステップS402
サーバ210上のサーバ管理220は、クライアント121からサービスの要求があった場合、クライアント121内の仮想マシン管理110にリソース情報を要求する。なお、仮想マシン管理110は、クライアント121と外部で接続されていても良い。例えば、仮想マシン管理110が、クライアント121とサーバ210との間の中継装置である場合が考えられる。
(3)ステップS403
仮想マシン管理110は、サーバ210上のサーバ管理220に、クライアント121側で利用可能なマシンリソースを示すリソース情報を提供する。この時、仮想マシン管理110では、利用可能なリソース情報が設定されている。
(4)ステップS404
サーバ210上のサーバ管理220に含まれるサーバ組み立て221は、仮想マシン管理110から提供されたリソース情報により、サーバ222を組み立てるかどうかを判断する。リソースが十分であれば、リソース情報に基づいて、仮想マシン管理110で利用可能なサーバ222を組み立てる。リソースが不足していれば、サーバ222を組み立てずに処理を終了する。なお、サーバ組み立て221は、サーバ管理220から独立していても良い。
(5)ステップS405
サーバ210は、仮想マシン管理110にサーバ222を提供する。この時、サーバ210上のサーバ管理220は、サーバ222の設定情報も合わせて仮想マシン管理110に提供する。
(6)ステップS406
仮想マシン管理110は、クライアント121上の仮想マシン130で、サーバ222を起動する。
(7)ステップS407
仮想マシン管理110は、サーバ210のサーバ管理220に、サーバ222の起動が完了したことを通知する。
(8)ステップS408
サーバ210のサーバ管理220は、仮想マシン管理110に、サーバ管理220と仮想マシン管理110との間の同期点において通信切換えを行うための情報を通知する。
(9)ステップS409
仮想マシン管理110は、同期点において通信切換えを行うための情報を転送テーブルに登録する。
(10)ステップS410
クライアント121は、サーバ222にサービスを要求する。すなわち、クライアント121は、サーバ222へアクセスする。
図22を参照して、一定時間サーバの利用がない場合の動作について以下に示す。
(1)ステップS501
クライアント121が、サーバ222の提供するサービスを一定時間利用していない場合、すなわち、クライアント121とサーバ222の間の通信が一定時間行われていない場合、又は、クライアント121のリソース不足でサーバ222に不具合が発生した場合、クライアント121の通信を監視する仮想マシン管理110が、この状態を検出する。
(2)ステップS502
仮想マシン管理110は、一定時間サーバ222の利用なし、或いはクライアント121のリソース不足を検出した時、サーバ222の停止を決定する。
(3)ステップS503
仮想マシン管理110は、サーバ210上のサーバ管理220に、サーバ222の終了を通知する。なお、サーバ222を停止する前に、サーバ210とサーバ222を同期させる必要があれば、この時に同期させる。
(4)ステップS504
仮想マシン管理110は、同期点において通信切換えを行うための情報を転送テーブルから削除する。
(5)ステップS505
仮想マシン管理110は、サーバ222を停止する。
以下に本発明の第5実施形態について説明する。
本実施形態では、サーバ222の組み立て例について説明する。
例えば、図23に示すように、サーバ機能を実現するために機能1乃至3が必要な場合、機能1乃至3に加えて、これらの遠隔呼出部である機能1A乃至3Aが用意されている。ここでは、サーバ組み立て221は、サーバ222に、機能1,3を組み込むと共に、他のマシンで実行される機能2を呼び出す遠隔呼出部である機能2Aを組み込む。また、これらの機能の呼び出し順序やIFを記録する機能呼出部223も組み込む。なお、呼び出し順序やIFについては、設定情報224に格納されていても良い。
ここでは、機能呼出部223は、機能1呼出部2231と、機能2呼出部2232と、機能3呼出部2233を備える。機能1呼出部2231は、サーバ222に組み込まれた機能1又は機能1Aを実行する。機能2呼出部2232は、サーバ222に組み込まれた機能2又は機能2Aを実行する。機能3呼出部2233は、サーバ222に組み込まれた機能3又は機能3Aを実行する。
サーバ組み立て221により組み立てられたサーバ222は、仮想マシン130上で実行する。機能呼出部223は、機能1から機能3を順次呼び出す。図24に示すように、機能呼出部2232で呼び出された機能2Aは、サーバマシン200上で動作するサーバ210に対して、機能2の実行を依頼する。サーバ210は、この実行結果を機能2Aに通知すると、機能2Aは更にその結果を機能2呼出部2232に返却する。
図25に、図23と異なる他の組み立て例を示す。
図25では、サーバ機能を実現するために機能1乃至3が必要な場合、図23と異なり、機能1A乃至3Aが部品として存在せず、その代わりに、機能呼出部223を生成する際に、機能呼出部223の中に、組み込んだ機能については局所呼出部を、組み込まなかった機能については遠隔呼出部を、それぞれ作成する。ここでは、機能1呼出部2231と機能3呼出部2233が、それぞれ機能1局所呼出部2231aと機能3局所呼出部2233aとなり、機能2呼出部2232が、機能2遠隔呼出部2232aとなる。なお、動作の詳細は図23の場合と同様である。
図26を参照して、VPN(IPSec)サーバの組み立て例について説明する。
VPNの方式として以下の3通りが考えられる。
(a)トンネリングのみ
(b)トンネリング+暗号化
(c)データのみ暗号化
図26に示すように、VPN(IPSec)サーバの機能一覧には、暗号化2221と、復号化2222と、カプセリング2223と、デカプセリング2224と、設定情報交換部2225が含まれる。暗号化2221は、データを暗号化する機能である。復号化2222は、暗号化されたデータを復号化する機能である。カプセリング2223は、パケットをカプセル化する機能である。デカプセリング2224は、カプセル化されたデータから元のデータを復元する機能である。設定情報交換部2225は、暗号化及び復号化に用いられる鍵に関する鍵情報をサーバ間で交換する機能である。
(a)の場合、サーバ222は、カプセリング2223と、デカプセリング2224と、設定情報224を備える。(b)の場合、サーバ222は、暗号化2221と、復号化2222と、カプセリング2223と、デカプセリング2224と、設定情報交換部2225と、設定情報224を備える。ここでは、暗号化2221とカプセリング2223がグループ化又は一体化しており、復号化2222とデカプセリング2224がグループ化又は一体化している。また、設定情報224は、鍵情報を含んでいる。(c)の場合、サーバ222は、暗号化2221と、復号化2222と、設定情報交換部2225と、設定情報224を備える。また、設定情報224は、鍵情報を含んでいる。
また、図27を参照して、パケットインスペクションサーバ(PIサーバ)の組み立て例について説明する。
パケットインスペクションサーバの機能一覧には、パケットフィルター2226と、ステートフルパケットインスペクション2227と、アプリケーションフィルター2228と、ポリシー制御部2229が含まれる。パケットフィルター2226は、パケットの一部(例えばヘッダ)を見て、そのパケットの通過を許可するか拒否するかを決定する機能である。ステートフルパケットインスペクション2227は、通過しようとするパケットのデータを読み取り、内容を判断して動的にポートを開放又は閉鎖する機能である。アプリケーションフィルター2228は、アプリケーション毎に通信を許可するか遮断するかを設定する機能である。ポリシー制御部2229は、ネットワークシステムの運用方針(ポリシー)を管理制御する機能である。
サーバ組み立て221は、これらの機能のうち、少なくとも一つの機能を選択してサーバ222を組み立てる。ここでは、サーバ222は、ステートフルパケットインスペクション2227と、ポリシー制御部2229と、設定情報224を備える。
また、図28を参照して、アプリケーションサーバ(APサーバ)の組み立て例について説明する。
APサーバの機能一覧には、機能呼出部223が含まれる。機能呼出部223は、AP処理1呼出部2234と、DBサーバコール呼出部2235と、AP処理2呼出部2236を備える。AP処理1呼出部2234は、AP処理1又はAP処理1Aを呼び出し実行する。AP処理1は図23の機能1に該当する。DBサーバコール呼出部2235は、DB(データベース)サーバコールを呼び出し実行する。DBサーバコールは、DBサーバにアクセスするための機能である。また、DBサーバコールは図23の機能2に該当する。
AP処理2呼出部2236は、AP処理2又はAP処理2Aを呼び出し実行する。AP処理2は図23の機能2に該当する。
ここでは、サーバ210において、サーバ組み立て221が、APサーバの機能一覧から必要な機能を選択してサーバ222をAPサーバとして作成する。APサーバの処理フローは、AP処理1→DBサーバコール→AP処理2である。サーバの組み立て処理では、これらの処理が順次呼び出されるように、機能呼出部223でこれらの処理の呼び出し順序を規定する。また、各々の処理につき、局所的に処理をするか、遠隔呼出によって処理をするかを選択し、機能部品を組み立てる。局所的に処理する場合はサーバ222に組み込んだ機能を実行する。遠隔呼出によって処理する場合は他のサーバ上にある機能を呼び出して実行する。
図29に示すように、AP処理1は局所的に実行し、AP処理2は遠隔で他のAPサーバマシンで実行するようにサーバを組み立てる場合、サーバ222には、機能呼出部223と、AP処理1と、DBサーバコールと、AP処理2Aを組み込む。
ここでは、AP処理1はローカルに実行し、AP処理2Aは遠隔呼出するよう組み立てる。局所的に実行するか、遠隔実行するかの選択は、その機能部品を実行するための計算機資源要件(メモリサイズ等)をクライアントマシン100が満たすか、又は、クライアントマシン100側での負荷状況に応じて決定する。
例えば、AP処理1を実行するためには128MBのメモリサイズが必要、AP処理2を実行するためには512MBのメモリサイズが必要という情報が事前に与えられているとする。なお、これらの情報はAPサーバ機能一覧に付属する情報として記憶する。
サーバ組み立て処理では、クライアント側からクライアントマシン100の計算機情報を入手し、これらのメモリ諸元情報と比較する。クライアントマシン100の利用可能なメモリが256MBである場合、AP処理1はクライアントマシン100上で実行できるが、AP処理2はクライアントマシン100上では実行できない。従って、AP処理1は局所的に実行、AP処理2Aは遠隔処理を実行するよう、サーバ222を組み立てる。
上記の例では、AP処理1及びAP処理2の実行について、局所的に実行するか、遠隔呼び出しで実行するかの判断基準を、その機能部品が必要とする計算機の諸元(メモリ等)におく例を述べた。それ以外には、その機能部品を実行するために必要な環境(OS、データ等)の所在と、その環境をクライアントに移して実行するのが良いのか、或いはその環境があるサーバ上で実行するのが良いのかをトレードオフで判断する例がある。
例えば、AP処理2を実行するために必要なデータがサーバA上にあり、そこからデータを取り寄せてクライアントで実行するのが良いのか、或いはクライアントからサーバAに処理を依頼し、その結果のみを受領するのが良いのか、という判断である。
最後に、本発明の概要について以下に詳述する。
本発明の物理構成は、クライアント/サーバ構成である。クライアントマシンは仮想マシンを構成し、仮想マシンを管理するための仮想マシン管理とクライアントが動作するクライアントの仮想マシンと、サーバプログラムを動作させるために必要に応じて起動される仮想マシンとで構成される。
仮想マシン管理は、仮想マシン内の通信を管理する通信切換部と、通信切換部の転送テーブル、本発明のクライアント側の管理主体であるクライアント管理プログラム、クライアント管理プログラムが持つ仮想マシンのリソース情報を有する。
サーバマシンは、サーバプログラムと、本発明のサーバ側の管理主体であるサーバ管理プログラムと、クライアント側に送付するサーバを管理するサーバ管理プログラムのサーバ組み立て部を有する。
クライアントPCは、マシン管理機器の管理下で動作して、ネットワークに接続されている。前述の仮想マシン管理も、マシン管理機器の一つである。なお、クライアントが、PCのVM(仮想マシン)上で動作する場合、マシン管理機器は、この仮想マシンを監視する仮想マシンモニタでも良い。
このマシン管理機器は、条件に応じて、このクライアント専用の第2サーバを稼働させることができる。そして、外部にはあるサービスを提供する第1サーバが稼働している。なお、第2サーバが、PCのVM(仮想マシン)上で動作する場合、マシン管理機器は、この第2サーバを動作させるためのVM(仮想マシン)を稼働させる。
本発明の動作の概要について説明する。
(1)クライアントPCは第1サーバ(IPアドレスA)に接続して、サービスを要求する。クライアントPCと第1サーバが相互に必要な認証を行った後、マシン管理機器は第1サーバからの接続用にサービスポートを開ける。
(2)第1サーバはマシン管理機器のサービスポートに接続を試みる。サービスポートへの接続に失敗した場合は、以降、そのままクライアントに対してサービスを提供し続ける。
(3)サービスポートへの接続に成功した場合、クライアント環境のVM(仮想マシン)上で利用可能な資源を確認して、必要な資源を利用できるならば、第1サーバは、クライアントに対してサービスを提供しながら、同時にマシン管理機器に対してサービスを提供するプログラムと必要な環境情報を送信する。
(4)マシン管理機器は第1サーバから受信したプログラムと環境情報を、サーバ動作用のVM(仮想マシン)上に格納する。そして、受信が完了したら、サーバ動作用のVM(仮想マシン)にIPアドレスA又はIPアドレスBを与えて、第2サーバとして動作を開始させる。この時、第2サーバはまだ、実際のネットワークとは接続していない。
(5)第1サーバはマシン管理機器を利用して、第2サーバとの間で同期を取り、それからマシン管理機器に対して、第2サーバへの切替えを通知する。
(6)以降、マシン管理機器は、クライアントからIPアドレスAの第1サーバへの通信を、第2サーバへフォワードする。これはクライアントに対してはシームレスに行われる。なお、第2サーバからクライアント以外への通信がある場合は、この時点で、ネットワークアドレス変換により第2サーバのIPアドレスBへの変換を行う。
(7)一定時間以上、クライアントから第2サーバへの通信がなくなった場合、マシン管理機器は第2サーバを停止して、第2サーバを動作させていた環境を解放する。
その他の実施例として、クライアントの代わりに、クライアント側LANでアプリケーションゲートウェアを動作させ、その上で同じようにVM(仮想マシン)を利用したサーバ切替えを行う方法も考えられる。
なお、仮想マシン構成のクライアント側では、通常のクライアントOSが動作する仮想マシンの他に、条件が適合すれば、このクライアント専用のサーバを動作させる仮想マシンを起動する。クライアントは始め、ネットワーク経由でサーバを利用するが、途中から、クライアント側の仮想マシン上で起動した、このクライアント専用のサーバの利用へとシームレスに移行する。
また、仮想マシンは、仮想マシンを動作させるためのソフトウェア(プログラム)と、このソフトウェア(プログラム)を読み出して実行する処理装置とにより成り立っていることが多い。従って、ここで言う「仮想マシン」は、このソフトウェア(プログラム)と処理装置との総称としてとらえることが可能である。
更に、本発明は、仮想マシンを物理マシンに置き換えても実施可能である。例えば、図1の仮想マシン120,仮想マシン130を処理装置や機能ブロックとしても良い。クライアントマシン100がLANを始めとするネットワークシステムであれば、仮想マシン120及び仮想マシン130はシステム内に設置された端末装置とすることも考えられる。
すなわち、クライアント121とサーバ222は、個別の端末において実行するようにしても良い。この場合、仮想マシン管理110は、端末装置の通信を監視する監視装置又は中継装置である。
本発明の説明において、クライアント及びサーバの識別情報(宛先情報)としてIPアドレスを使用しているが、実際には、IPアドレスに限定されない。IPアドレスの代わりに、クライアント及びサーバを一意に特定できる他の情報を使用しても良い。例えば、クライアント及びサーバが所属するネットワークのドメイン内におけるID又は識別名を使用することも考えられる。
以上のように、本発明では、クライアント側をVM(仮想マシン)構成として、必要に応じて、これまでのクライアントの他に、このクライアント専用のサーバをVM上で動作させることを特徴とする。クライアントとVM上のサーバは、仮想マシン管理が提供するVM間の仮想ネットワークにより通信するが、クライアントは元のサーバと同じ宛先アドレスを使用したまま、シームレスにVM上のサーバを利用する。また、この際、VM上のサーバはクライアント環境からは切り離されている(別VMで動作する)ため、クライアント側でサーバプログラムを動作させても、セキュリティ低下のリスクは回避することができる。
図1は、本発明の構成を示すブロック図である。 図2は、サーバ部品の組み立てを示す図である。 図3は、本発明の動作を示すフローチャートである。 図4は、サーバの環境を含めた動作環境である仮想マシンを起動した場合の概要図である。 図5は、転送テーブルの例を示す図である。 図6は、一般的なアプリケーション(AP)サーバの場合1の例を示す概要図である。 図7は、APサーバの場合1の転送テーブルの例を示す図である。 図8は、一般的なアプリケーション(AP)サーバの場合2の例を示す概要図である。 図9は、APサーバの場合2の転送テーブルの例を示す図である。 図10は、VPN(IPSec)サーバの場合の例を示す概要図である。 図11は、VPN(IPSec)サーバの場合の転送テーブルの例を示す図である。 図12は、パケットインスペクション(PI)サーバの場合の例を示す概要図である。 図13は、PIサーバの場合の転送テーブルの例を示す図である。 図14は、転送テーブル登録後の通信を示す第1の図である。 図15は、転送テーブル登録後の通信を示す第2の図である。 図16は、通信切換部が転送テーブルを使用して、仮想マシン(クライアント)からの通信を処理するフローチャートである。 図17は、通信切換部が転送テーブルを使用して、仮想マシン(サーバ)からの通信を処理するフローチャートである。 図18は、ユーザがクライアント環境の仮想マシンから、クライアント管理に対して直接サーバプログラムをダウンロードすることを要求する場合の概要図である。 図19は、クライアントマシンがネットワークから切り離されたオフライン状態を示す図である。 図20は、クライアント管理がディスク上にプログラムキャッシュを持つ場合を示す図である。 図21は、本発明の全体の動作を示すシーケンス図である。 図22は、仮想マシンのサーバを停止する動作を示すシーケンス図である。 図23は、サーバ部品の組み立てを示す図である。 図24は、遠隔呼出の場合の例を示す概要図である。 図25は、サーバ部品の組み立てを示す図である。 図26は、VPN(IPSec)サーバの場合のサーバ部品の組み立てを示す図である。 図27は、インスペクションサーバの場合のサーバ部品の組み立てを示す図である。 図28は、アプリケーションサーバ(APサーバ)の場合の例を示す概要図である。 図29は、サーバ部品の組み立てを示す図である。
符号の説明
100… クライアントマシン
110… 仮想マシン管理
111… 通信切換部
112… クライアント管理
113… リソース情報
114… 転送テーブル
115… プログラムキャッシュ
120… 仮想マシン(クライアント用)
121… クライアント
130… 仮想マシン(サーバ用)
200… サーバマシン
210… サーバ
220… サーバ管理
221… サーバ組み立て
222… サーバ(プログラム)
223… 機能呼出部
2231… 機能1呼出部(局所呼出部)
2232… 機能2呼出部(遠隔呼出部)
2233… 機能3呼出部(局所呼出部)
224… 設定情報
230… 別サーバ代替一覧
300… ネットワーク
301〜305… 通信
400… DBサーバ

Claims (15)

  1. 自身のマシンリソースを示すリソース情報を収集し、前記リソース情報に応じたサーバプログラムを取得して実行し、前記サーバプログラムに基づいて、内部に擬似的にサーバ環境を構築し、ネットワークとの通信を前記サーバ環境との通信に切り換える複数のクライアントマシンと、
    前記複数のクライアントマシンの各々から前記リソース情報を取得し、前記リソース情報に基づき前記サーバプログラムを生成して前記各クライアントマシンに提供するサーバマシン
    含み、
    前記各クライアントマシンは、前記サーバ環境を前記サーバマシンの代わりに使用し、前記サーバマシンの負荷を低減し、
    前記サーバマシンは、前記各クライアントマシンに移せないデータを用いる処理を行う
    負荷低減システム。
  2. 請求項1に記載の負荷低減システムであって
    前記サーバマシンは、
    前記リソース情報に基づいて、前記各クライアントマシンのマシンリソースが利用可能であるかどうか判断するサーバ管理部と、
    前記利用可能なマシンリソースに応じて、前記各クライアントマシンに移せないデータを用いる機能、及び既に稼働中のサーバ環境で使用されている排他制御の機能を前記サーバプログラムに組み込まずに、前記各クライアントマシン上で動作する前記サーバプログラムを組み立てるサーバ組み立て部と
    を具備する
    負荷低減システム。
  3. 請求項1又は2に記載の負荷低減システムであって
    前記各クライアントマシンは、
    クライアントとして動作する第1処理部と、
    前記サーバプログラムに基づいて擬似的に前記サーバ環境を構築し、サーバとして動作する第2処理部と、
    前記第1処理部と前記サーバマシンとの通信を、前記第1処理部と前記第2処理部との通信に切り換える通信切換部と、
    前記リソース情報を前記サーバマシンに提供し、前記サーバマシンから取得した前記サーバプログラムを前記第2処理部に提供するクライアント管理部と
    を具備する
    負荷低減システム。
  4. 請求項3に記載の負荷低減システムであって
    前記クライアント管理部は、前記サーバマシンの識別情報及び前記第2処理部の識別情報を登録するための転送テーブルに、前記サーバマシンの識別情報及び前記第2処理部の識別情報のうち少なくとも一方の識別情報を登録し、
    前記通信切換部は、前記第1処理部と前記サーバマシンとの通信の際、前記転送テーブルを参照し、前記転送テーブルに前記第2処理部の識別情報が登録されていれば、前記第1処理部と第2処理部との通信に切り換える
    負荷低減システム。
  5. 請求項4に記載の負荷低減システムであって
    前記クライアント管理部は、前記各クライアントマシンの負荷が基準値を超えた場合、前記第2処理部を停止させ、前記転送テーブル上の前記第2処理部の登録情報を削除し、前記第1処理部に前記サーバマシンを利用させるように制御する
    負荷低減システム。
  6. 請求項3乃至5のいずれか一項に記載の負荷低減システムであって
    前記クライアント管理部は、前記各クライアントマシンのマシンリソースが不足した場合、前記第1処理部に、前記第2処理部の利用を中止させて前記サーバマシンを利用させ、前記各クライアントマシンのマシンリソースが回復した場合、前記第1処理部に前記第2処理部の利用を再開させるようにする
    負荷低減システム。
  7. 請求項3乃至5のいずれか一項に記載の負荷低減システムであって
    前記クライアント管理部は、前記第1処理部に、前記第2処理部と前記サーバマシンとを並行して利用させるようにする
    負荷低減システム。
  8. 請求項1乃至7のいずれか一項に記載の負荷低減システムにおいて、前記複数のクライアントマシンの1つとして使用される計算機。
  9. 請求項1乃至7のいずれか一項に記載の負荷低減システムにおいて、前記サーバマシンとして使用される計算機。
  10. 複数のクライアントマシンの各々が、前記各クライアントマシンのマシンリソースを示すリソース情報を収集し、前記リソース情報に応じたサーバプログラムを取得して実行し、前記サーバプログラムに基づいて、内部に擬似的にサーバ環境を構築し、ネットワークとの通信を前記サーバ環境との通信に切り換えるステップと、
    サーバマシンが、前記複数のクライアントマシンの各々から前記リソース情報を取得し、前記リソース情報に基づき前記サーバプログラムを生成して前記各クライアントマシンに提供するステップと、
    前記各クライアントマシンが、前記サーバ環境を前記サーバマシンの代わりに使用し、前記サーバマシンの負荷を低減するステップと、
    前記サーバマシンが、前記各クライアントマシンに移せないデータを用いる処理を行うステップと
    を含む
    負荷低減方法。
  11. 請求項10に記載の負荷低減方法であって、
    前記サーバマシンが、前記リソース情報に基づいて、前記各クライアントマシンのマシンリソースが利用可能であるかどうか判断するステップと、
    前記サーバマシンが、前記利用可能なマシンリソースに応じて、前記各クライアントマシンに移せないデータを用いる機能、及び既に稼働中のサーバ環境で使用されている排他制御の機能を前記サーバプログラムに組み込まずに、前記各クライアントマシン上で動作する前記サーバプログラムを組み立てるステップと
    を更に含む
    負荷低減方法。
  12. 請求項10又は11に記載の負荷低減方法であって、
    前記各クライアントマシンが、クライアントとして動作する第1処理部を使用するステップと、
    前記各クライアントマシンが、前記サーバプログラムに基づいて擬似的に前記サーバ環境を構築し、サーバとして動作する第2処理部を使用するステップを使用するステップと、
    前記各クライアントマシンが、前記第1処理部と前記サーバマシンとの通信を、前記第1処理部と前記第2処理部との通信に切り換えるステップと、
    前記各クライアントマシンが、前記リソース情報を前記サーバマシンに提供し、前記サーバマシンから取得した前記サーバプログラムを前記第2処理部に提供するステップと
    を更に含む
    負荷低減方法。
  13. 請求項12に記載の負荷低減方法であって、
    前記各クライアントマシンが、前記サーバマシンの識別情報及び前記第2処理部の識別情報を登録するための転送テーブルに、前記サーバマシンの識別情報及び前記第2処理部の識別情報のうち少なくとも一方の識別情報を登録するステップと、
    前記各クライアントマシンが、前記第1処理部と前記サーバマシンとの通信の際、前記転送テーブルを参照し、前記転送テーブルに前記第2処理部の識別情報が登録されていれば、前記第1処理部と第2処理部との通信に切り換えるステップと
    を更に含む
    負荷低減方法。
  14. 請求項13に記載の負荷低減方法であって、
    前記各クライアントマシンが、前記各クライアントマシンの負荷が基準値を超えた場合、前記第2処理部を停止させ、前記転送テーブル上の前記第2処理部の登録情報を削除し、前記第1処理部に前記サーバマシンを利用させるようにするステップ
    を更に含む
    負荷低減方法。
  15. 請求項12乃至14のいずれか一項に記載の負荷低減方法であって、
    前記各クライアントマシンが、前記各クライアントマシンのマシンリソースが不足した場合、前記第1処理部に、前記第2処理部の利用を中止させて前記サーバマシンを利用させ、前記各クライアントマシンのマシンリソースが回復した場合、前記第1処理部に前記第2処理部の利用を再開させるように制御するステップ
    を更に含む
    負荷低減方法。
JP2006261956A 2006-09-27 2006-09-27 負荷低減システム、計算機、及び負荷低減方法 Expired - Fee Related JP4324975B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006261956A JP4324975B2 (ja) 2006-09-27 2006-09-27 負荷低減システム、計算機、及び負荷低減方法
US11/898,301 US20080077690A1 (en) 2006-09-27 2007-09-11 System, method, and program for reducing server load

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006261956A JP4324975B2 (ja) 2006-09-27 2006-09-27 負荷低減システム、計算機、及び負荷低減方法

Publications (2)

Publication Number Publication Date
JP2008083897A JP2008083897A (ja) 2008-04-10
JP4324975B2 true JP4324975B2 (ja) 2009-09-02

Family

ID=39226349

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006261956A Expired - Fee Related JP4324975B2 (ja) 2006-09-27 2006-09-27 負荷低減システム、計算機、及び負荷低減方法

Country Status (2)

Country Link
US (1) US20080077690A1 (ja)
JP (1) JP4324975B2 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8176486B2 (en) 2007-02-15 2012-05-08 Clearcube Technology, Inc. Maintaining a pool of free virtual machines on a server computer
US9043391B2 (en) 2007-02-15 2015-05-26 Citrix Systems, Inc. Capturing and restoring session state of a machine without using memory images
WO2009139426A1 (ja) * 2008-05-14 2009-11-19 日本電気株式会社 情報処理システムと情報処理方法
JP2010041182A (ja) * 2008-08-01 2010-02-18 Nec Corp プログラム移動制御システムおよびプログラム移動制御方法
JP2010062738A (ja) * 2008-09-02 2010-03-18 Fujitsu Ltd ネットワーク設定プログラム,ネットワーク設定方法及びネットワーク設定装置
JP4521456B2 (ja) * 2008-09-05 2010-08-11 株式会社東芝 情報処理システムおよび情報処理システムの制御方法
JP5123800B2 (ja) * 2008-09-16 2013-01-23 株式会社リコー 情報処理装置、情報処理方法及びプログラム
WO2010032558A1 (ja) * 2008-09-19 2010-03-25 日本電気株式会社 プログラム入手・実行クライアント、プログラム入手・実行方法および記録媒体
JP5481845B2 (ja) * 2008-12-04 2014-04-23 日本電気株式会社 情報処理システム、サービス提供方法、装置及びプログラム
JP4862056B2 (ja) * 2009-03-16 2012-01-25 株式会社東芝 仮想計算機管理機構及び仮想計算機システムにおけるcpu時間割り当て制御方法
JP5293580B2 (ja) * 2009-03-19 2013-09-18 日本電気株式会社 ウェブサービスシステム、ウェブサービス方法及びプログラム
JP5476764B2 (ja) * 2009-03-30 2014-04-23 富士通株式会社 サーバ装置、計算機システム、プログラム及び仮想計算機移動方法
JP5455495B2 (ja) 2009-07-31 2014-03-26 キヤノン株式会社 通信装置、通信方法及びプログラム
WO2012023175A1 (ja) * 2010-08-17 2012-02-23 富士通株式会社 並列処理制御プログラム、情報処理装置、および並列処理制御方法
JP5683368B2 (ja) * 2011-04-21 2015-03-11 三菱電機株式会社 情報処理装置及び代表計算機
JP5991482B2 (ja) * 2012-11-14 2016-09-14 コニカミノルタ株式会社 画像形成装置およびその制御方法
EP2767905A1 (en) * 2013-02-15 2014-08-20 Samsung Electronics Co., Ltd Terminal apparatus, server, browser of terminal apparatus operating system and method of operating browser
JP6004400B2 (ja) * 2013-05-01 2016-10-05 日本電信電話株式会社 広告配信システム及び広告配信方法
WO2014182900A1 (en) * 2013-05-08 2014-11-13 Convida Wireless, Llc Method and apparatus for the virtualization of resources using a virtualization broker and context information
US9560081B1 (en) 2016-06-24 2017-01-31 Varmour Networks, Inc. Data network microsegmentation
US9813258B2 (en) 2014-03-31 2017-11-07 Tigera, Inc. Data center networks
US9344364B2 (en) * 2014-03-31 2016-05-17 Metaswitch Networks Ltd. Data center networks
US9559950B2 (en) * 2014-03-31 2017-01-31 Tigera, Inc. Data center networks
CN105471760B (zh) * 2014-09-12 2019-04-05 华为技术有限公司 一种路由方法、负载均衡的装置及数据通信系统
TWI552077B (zh) * 2015-02-12 2016-10-01 國立中央大學 虛擬機器即時轉移方法
US9467476B1 (en) 2015-03-13 2016-10-11 Varmour Networks, Inc. Context aware microsegmentation
US10178070B2 (en) * 2015-03-13 2019-01-08 Varmour Networks, Inc. Methods and systems for providing security to distributed microservices
US9609026B2 (en) 2015-03-13 2017-03-28 Varmour Networks, Inc. Segmented networks that implement scanning
JP6514130B2 (ja) * 2016-02-18 2019-05-15 日本電信電話株式会社 端末支援装置、端末支援方法、及びプログラム
US9787639B1 (en) 2016-06-24 2017-10-10 Varmour Networks, Inc. Granular segmentation using events
JP6750349B2 (ja) * 2016-07-05 2020-09-02 富士通株式会社 情報処理システム、情報処理装置、情報処理プログラム及び情報処理方法
JP6768530B2 (ja) * 2016-12-28 2020-10-14 デジタルア−ツ株式会社 情報処理装置及びプログラム
US10257152B2 (en) * 2017-03-10 2019-04-09 Nicira, Inc. Suppressing ARP broadcasting in a hypervisor
JP2019135578A (ja) * 2018-02-05 2019-08-15 株式会社東芝 クラウドシステム、クラウドサーバ、エッジサーバおよびユーザ装置
JP7051958B2 (ja) * 2020-09-09 2022-04-11 Kddi株式会社 通信端末、通信システム及び制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061713A (en) * 1997-03-12 2000-05-09 Fujitsu Limited Communications system for client-server data processing systems
JPH1153326A (ja) * 1997-07-30 1999-02-26 Internatl Business Mach Corp <Ibm> 分散処理システム、クライアントノード、サーバノードおよび分散処理方法
US7007094B1 (en) * 2001-05-31 2006-02-28 Lab 7 Networks, Inc. Object oriented communications system over the internet
US6934755B1 (en) * 2000-06-02 2005-08-23 Sun Microsystems, Inc. System and method for migrating processes on a network
US6832239B1 (en) * 2000-07-07 2004-12-14 International Business Machines Corporation Systems for managing network resources
JP4152755B2 (ja) * 2003-01-10 2008-09-17 富士通株式会社 新旧プログラムモジュールの切り替え機能を有するサーバ装置
US7636917B2 (en) * 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
US8156490B2 (en) * 2004-05-08 2012-04-10 International Business Machines Corporation Dynamic migration of virtual machine computer programs upon satisfaction of conditions
JP4242819B2 (ja) * 2004-10-06 2009-03-25 株式会社日立製作所 オフライン作業可能な端末を有する計算機システム
JP5065050B2 (ja) * 2005-12-28 2012-10-31 インターナショナル・ビジネス・マシーンズ・コーポレーション クライアント・サーバ・システムにおける負荷分散

Also Published As

Publication number Publication date
US20080077690A1 (en) 2008-03-27
JP2008083897A (ja) 2008-04-10

Similar Documents

Publication Publication Date Title
JP4324975B2 (ja) 負荷低減システム、計算機、及び負荷低減方法
US11824962B2 (en) Methods and apparatus for sharing and arbitration of host stack information with user space communication stacks
US10887284B1 (en) Peered virtual private network endpoint nodes
US20210328858A1 (en) Communications methods and apparatus for migrating a network interface and/or ip address from one pod to another pod in a kubernetes system
CN114946166B (zh) 在包括云边缘位置的异构计算环境中的动态资源移动的方法和系统
EP3834393B1 (en) Systems and methods for server cluster network communication across the public internet
JP5948362B2 (ja) コンピュータネットワークの動的な移行
US8332464B2 (en) System and method for remote network access
JP4381655B2 (ja) ストレージシステム、ストレージ装置、及び該ストレージ装置を利用した情報共有方法
JP5293580B2 (ja) ウェブサービスシステム、ウェブサービス方法及びプログラム
CN114401221B (zh) Sdwan覆盖路由服务
US10516652B1 (en) Security association management
JP2020532204A (ja) トラフィックオフロード方法およびローミングシナリオにおける関連するデバイス
CN110537354B (zh) 用于配置虚拟专用网关的系统和方法
JP2012533129A (ja) 仮想ネットワークの高性能で自動化された管理方法及びシステム
CN114726863B (zh) 用于负载均衡的方法、设备、系统及存储介质
US12101247B2 (en) Systems and methods for selecting tunnels for transmitting application traffic by an SD-WAN application
Postel NCP/TCP transition plan
KR20130089270A (ko) 메모리 카드 장치
US20110276673A1 (en) Virtually extending the functionality of a network device
US11374789B2 (en) Provider network connectivity to provider network substrate extensions
CN114026826A (zh) 提供商网络底层扩展的提供商网络连接管理
US20230254243A1 (en) Systems and methods for managing network services by an sd-wan application and an sd-wan device
JP3930516B2 (ja) サーバ装置、サーバシステムおよびサーバシステムの負荷分散方法
US20170116016A1 (en) Screen compression service method and virtual network apparatus for performing the method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080922

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081119

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090531

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

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130619

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees