IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ スーパーセル オーワイの特許一覧

特表2023-522554サーバシステム及びサーバシステム管理方法
<>
  • 特表-サーバシステム及びサーバシステム管理方法 図1
  • 特表-サーバシステム及びサーバシステム管理方法 図2A
  • 特表-サーバシステム及びサーバシステム管理方法 図2B
  • 特表-サーバシステム及びサーバシステム管理方法 図3
  • 特表-サーバシステム及びサーバシステム管理方法 図4
  • 特表-サーバシステム及びサーバシステム管理方法 図5A
  • 特表-サーバシステム及びサーバシステム管理方法 図5B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-05-31
(54)【発明の名称】サーバシステム及びサーバシステム管理方法
(51)【国際特許分類】
   G06F 11/20 20060101AFI20230524BHJP
【FI】
G06F11/20 631
【審査請求】未請求
【予備審査請求】有
(21)【出願番号】P 2022551236
(86)(22)【出願日】2021-04-01
(85)【翻訳文提出日】2022-08-25
(86)【国際出願番号】 FI2021050248
(87)【国際公開番号】W WO2021205070
(87)【国際公開日】2021-10-14
(31)【優先権主張番号】16/842,211
(32)【優先日】2020-04-07
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.UNIX
(71)【出願人】
【識別番号】513136528
【氏名又は名称】スーパーセル オーワイ
【氏名又は名称原語表記】Supercell Oy
【住所又は居所原語表記】Jatkasaarenlaituri 1 FI-00180 HELSINKI Finland
(74)【代理人】
【識別番号】100127188
【弁理士】
【氏名又は名称】川守田 光紀
(72)【発明者】
【氏名】デローム ジョン
(72)【発明者】
【氏名】カンフィス ロベルト
【テーマコード(参考)】
5B034
【Fターム(参考)】
5B034BB03
5B034CC01
5B034DD05
(57)【要約】
第1の役割を実行する第1のサーバ(102、204)と、他の役割を実行する他のサーバ(104、208)と、予備サーバ(106、206)と、管理層サーバ(120、202)とを備えるサーバシステム(100)。管理層サーバは、第1グループのユーザ機器(108、110、112、214A、214B、214C)を第1のサーバに、他のグループのユーザ機器(114、116、118、216A、216B、216C)を他のサーバ(104、208)に割り当てると共に、第1のサーバ及び他のサーバの状況情報を分析し、これらのサーバの動作状況を判定する。第1のサーバの動作状況が不具合を示すと、予備サーバの役割を第1の役割に更新し、第1グループのユーザ機器を予備サーバに再割り当てする。他のサーバの動作状況が不具合を示すと、他の予備サーバの役割を他の役割に更新し、他のグループのユーザ機器を他の予備サーバに再割り当てする。
【選択図】図1
【特許請求の範囲】
【請求項1】
第1の役割を実行するように構成された第1のサーバと、
少なくとも1つの他の役割を実行するように構成された少なくとも1つの他のサーバと、
少なくとも1つの予備サーバと、
管理層サーバと、
を備え、該管理層サーバは、
第1グループのユーザ機器を前記第1のサーバにアクセスするように割り当てると共に、少なくとも1つの他のグループのユーザ機器を前記少なくとも1つの他のサーバにアクセスするように割り当てることと、
前記第1のサーバから送信された状況情報及び前記少なくとも1つの他のサーバから送信された状況情報を受信することと、
前記第1のサーバの動作状況及び前記少なくとも1つの他のサーバの動作状況を判定するべく、前記状況情報を分析することと、
前記第1のサーバの前記動作状況が不具合状態を示すとき、前記少なくとも1つの予備サーバのうちの第1の予備サーバの役割を前記第1の役割に更新し、前記第1グループのユーザ機器を前記少なくとも1つの予備サーバのうちの前記第1の予備サーバに再割り当てすることと、
前記少なくとも1つの他のサーバの前記動作状況が不具合状態を示すとき、前記少なくとも1つの予備サーバのうちの他の1つの予備サーバの役割を前記少なくとも1つの他の役割に更新し、前記少なくとも1つの他のグループのユーザ機器を前記少なくとも1つの他の予備サーバに再割り当てすることと、
を実施するように構成される、サーバシステム。
【請求項2】
前記管理層サーバは、前記第1のサーバの前記動作状況が前記第1のサーバの不具合状態を示すとき、前記第1の役割を第1の空き役割として通知し、前記少なくとも1つの他のサーバの前記動作状況が前記少なくとも1つの他のサーバの不具合状態を示すとき、前記少なくとも1つの他の役割を少なくとも1つの他の空き役割として通知するように更に構成されている、請求項1に記載のサーバシステム。
【請求項3】
前記第1のサーバは、前記第1の役割に従って第1の実行可能ソフトウェアを動作させ、前記少なくとも1つの他のサーバは、前記少なくとも1つの他の役割に従って少なくとも1つの他の実行可能ソフトウェアを動作させる、請求項1又は2に記載のサーバシステム。
【請求項4】
前記第1の実行可能ソフトウェアと前記少なくとも1つの他の実行可能ソフトウェアとは同じである、請求項3に記載のサーバシステム。
【請求項5】
前記第1の実行可能ソフトウェアと前記少なくとも1つの他の実行可能ソフトウェアとは異なるものである、請求項3に記載のサーバシステム。
【請求項6】
前記第1のサーバの前記動作状況が不具合状態を示すとき、前記管理層サーバは、前記第1の役割の現在の実行状態を判定し、前記少なくとも1つの予備サーバのうちの前記第1の予備サーバの役割を前記現在の実行状態に更新するように更に構成される、請求項1から5のいずかに記載のサーバシステム。
【請求項7】
前記少なくとも1つの他のサーバの前記動作状況が不具合状態を示すとき、前記管理層サーバは、前記少なくとも1つの他の役割の現在の実行状態を判定し、前記少なくとも1つの予備サーバのうちの前記少なくとも1つの他の予備サーバの前記少なくとも1つの他の役割を前記現在の実行状態に更新するように更に構成される、請求項1から6のいずかに記載のサーバシステム。
【請求項8】
前記状況情報を分析した時点と前記状況情報を受信した時点との時間差が所定時間差より大きい場合に、前記動作状況は不具合状態を示す、請求項1から7のいずかに記載のサーバシステム。
【請求項9】
前記サーバシステムは、プロキシサーバ層を更に備え、
前記プロキシサーバ層は、前記再割り当てされた第1グループのユーザ機器を前記少なくとも1つの予備サーバに再ルーティングし、前記再割り当てされた少なくとも1つの他のグループのユーザ機器を前記少なくとも1つの他の予備サーバに再ルーティングするように構成される、請求項1から8のいずかに記載のサーバシステム。
【請求項10】
第1のサーバにおいて、第1の役割を実行することと、
少なくとも1つの他のサーバにおいて、少なくとも1つの他の役割を実行することと、
第1グループのユーザ機器を前記第1のサーバにアクセスするように割り当てると共に、少なくとも1つの他のグループのユーザ機器を前記少なくとも1つの他のサーバにアクセスするように割り当てることと、
前記第1のサーバからの状況情報及び前記少なくとも1つの他のサーバからの状況情報を受信することと、
前記状況情報を分析することにより、前記第1のサーバの動作状況及び前記少なくとも1つの他のサーバの動作状況を判定することと、
前記第1のサーバの前記動作状況が不具合状態を示すとき、少なくとも1つの予備サーバのうちの第1の予備サーバの役割を前記第1の役割に更新し、前記第1グループのユーザ機器を前記少なくとも1つの予備サーバのうちの前記第1の予備サーバに再割り当てすることと、
前記少なくとも1つの他のサーバの前記動作状況が不具合状態を示すとき、前記少なくとも1つの予備サーバのうちの他の1つの予備サーバの役割を前記少なくとも1つの他の役割に更新し、前記少なくとも1つの他のグループのユーザ機器を前記少なくとも1つの他の予備サーバに再割り当てすることと、
を含む、サーバシステム管理方法。
【請求項11】
前記第1のサーバの前記動作状況が前記第1のサーバの不具合状態を示すとき、前記第1の役割を第1の空き役割として通知することと、前記少なくとも1つの他のサーバの前記動作状況が前記少なくとも1つの他のサーバの不具合状態を示すとき、前記少なくとも1つの他の役割を少なくとも1つの他の空き役割として通知することとを更に含む、請求項10に記載のサーバシステム管理方法。
【請求項12】
前記第1のサーバにおいて、前記第1の役割に従って第1の実行可能ソフトウェアを動作させることと、前記少なくとも1つの他のサーバにおいて、前記少なくとも1つの他の役割に従って少なくとも1つの他の実行可能ソフトウェアを動作させることとを更に含む、請求項10又は11に記載のサーバシステム管理方法。
【請求項13】
前記第1の実行可能ソフトウェアと前記少なくとも1つの他の実行可能ソフトウェアとは同じである、請求項12に記載のサーバシステム管理方法。
【請求項14】
前記第1の実行可能ソフトウェアと前記少なくとも1つの他の実行可能ソフトウェアとは異なるものである、請求項12に記載のサーバシステム管理方法。
【請求項15】
前記第1のサーバの前記動作状況が不具合状態を示すとき、前記第1の役割の現在の実行状態を判定し、前記少なくとも1つの予備サーバのうちの前記第1の予備サーバの役割を前記現在の実行状態に更新する、請求項10から14のいずかに記載のサーバシステム管理方法。
【請求項16】
前記少なくとも1つの他のサーバの前記動作状況が不具合状態を示すとき、前記少なくとも1つの他の役割の現在の実行状態を判定し、前記少なくとも1つの予備サーバのうちの前記少なくとも1つの他の予備サーバの前記少なくとも1つの他の役割を前記現在の実行状態に更新する、請求項10から15のいずかに記載のサーバシステム管理方法。
【請求項17】
前記状況情報の分析の瞬間と前記状況情報の受信の瞬間との時間差を決定することと、
前記時間差が所定の時間差より大きいかどうかを分析することと、
前記時間差が前記所定の時間差より大きい場合、前記動作状況が不具合状態を示すとみなすことと、
を更に含む、請求項10から16のいずかに記載のサーバシステム管理方法。
【請求項18】
プロキシサーバ層を、前記再割り当てされた第1グループのユーザ機器を前記少なくとも1つの予備サーバに再ルーティングし、前記再割り当てされた少なくとも1つの他のグループのユーザ機器を前記少なくとも1つの他の予備サーバに再ルーティングするように構成することを更に含む、請求項10から17のいずかに記載のサーバシステム管理方法。
【請求項19】
前記少なくとも1つの予備サーバが前記第1の役割又は前記1つの他の役割に更新された場合に備えて、少なくとも1つの追加の予備サーバを設定することを更に含む、請求項10から17のいずかに記載のサーバシステム管理方法。
【請求項20】
第1の役割に従って第1のソフトウェアを実行するための第1のサーバ、第2の役割に従って少なくとも1つの他のソフトウェアを実行するための少なくとも1つの他のサーバ、第3の役割を有する少なくとも1つの予備サーバ、及び管理層サーバを備えるサーバシステムの管理方法であって、
前記管理層サーバに役割のリストを提供することと、
前記第1のサーバで動作している実行可能な前記第1のソフトウェアにアクセスするように第1グループのユーザ機器を割り当てると共に、前記少なくとも1つの他のサーバで動作している実行可能な前記少なくとも1つの他のソフトウェアにアクセスするように少なくとも1つの他のグループのユーザ機器を割り当てることと、
前記第1のサーバ及び前記少なくとも1つの他のサーバによって、状況情報を前記管理層サーバに送信することと、
前記第1のサーバの第1の動作状況及び前記少なくとも1つの他のサーバの第2の動作状況を判定するべく、前記管理層サーバによって、前記状況情報を受信し、前記受信した状況情報を分析することと、
前記管理層サーバによって、前記第1の動作状況が前記第1のサーバにおける不具合を示すとき、前記第1の役割を空き役割として通知し、前記第2の動作状況が前記少なくとも1つの他のサーバにおける不具合を示すとき、前記第2の役割を空き役割として通知することと、
前記少なくとも1つの予備サーバの前記第3の役割を、前記通知された空き役割として更新することと、
前記少なくとも1つの予備サーバにおいて、前記更新された第3の役割に従って第3のソフトウェアを実行することと、
前記不具合のあるサーバに割り当てられていたグループのユーザ機器を、前記少なくとも1つの予備サーバで動作している実行可能な前記第3のソフトウェアにアクセスするように再割り当てすることと、
を含むサーバシステム管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、データネットワークを介してユーザ機器と通信し、そこでアプリケーションを実行する複数のサーバを有するサーバシステムに関し、より具体的には、内部の各サーバのトラフィックを管理し、負荷を分散するように構成されたサーバシステムに関する。
【背景】
【0002】
データネットワークを介して接続された複数のユーザ機器を含むコンピューティングシステムには、通常、個々のコンピューティングシステムの指定タスク遂行のために相互作用する多数のサーバが設けられている。このようなコンピューティングシステム内の各サーバには、通常、その機能を実行するために利用する多くのリソースが設けられている。動作時に、コンピューティングシステムの負荷が増大すると、これらのリソースのうち1つ以上がボトルネックとなり、最終的に接続品質の劣化、サーバのクラッシュやシステムの不具合につながる可能性がある。
【0003】
従来、このような問題は、より多くのリソースを投入することで解決されることが多かった。例えば、性能劣化に対しては、システムの過負荷やクラッシュを防ぐべく、サーバにメモリを増設したり、CPU(中央演算処理装置)を高速化したり、複数のCPUを搭載したり、ディスクドライブを増設したりする。このような解決策は一般的に高価で、処理が増えて、時間を要する。更に、DSLやケーブルモデムなどの技術を利用して、高速のスイッチングやルーティングを行う解決策もある。しかし、そのような技術であっても、一般的に、サーバクラッシュの可能性を軽減しながらユーザに質の高いサービスを提供することは難しく、ユーザに不快感を与えることになる。
【0004】
更に問題なのは、特定のゲームなど同じソフトウェアに多数のユーザがアクセスする状況である。サーバシステムに不具合が発生した場合、サービス停止によりすべてのユーザに悪影響が及ぶリスクがある。
【0005】
したがって、前述の議論に照らして、リソース及びトラフィックを管理するための従来のコンピューティングシステムに関連付けられた前述の制限を克服する必要性がある。
【摘要】
【0006】
本開示は、サーバシステムを提供しようとするものである。また、本開示は、サーバシステム管理方法を提供しようとするものである。本開示は、ユーザ機器を使用する複数のユーザが使用する場合のシステムにおける負荷のアンバランスや信頼性の低さという既存の問題に対する解決策を提供しようとするものである。本開示の目的は、従来技術における問題を少なくとも部分的に克服し、ネットワーク内のサーバの決定論的管理を提供する解決策を提供することである。更に、本開示は、高負荷が要求される場合のサーバシステムの信頼性を向上し、高負荷によるシステムのクラッシュなどの不確定な性能問題を排除し、レイテンシや容量問題を低減する。
【0007】
第1の態様において、本開示の一実施形態は、サーバシステムを提供する。このサーバシステムは、
第1の役割を実行するように構成された第1のサーバと、
少なくとも1つの他の役割を実行するように構成された少なくとも1つの他のサーバと、
少なくとも1つの予備サーバと、
管理層サーバと、
を備え、該管理層サーバは、
第1グループのユーザ機器を前記第1のサーバにアクセスするように割り当てると共に、少なくとも1つの他のグループのユーザ機器を前記少なくとも1つの他のサーバにアクセスするように割り当てることと、
前記第1のサーバから送信された状況情報及び前記少なくとも1つの他のサーバから送信された状況情報を受信することと、
前記第1のサーバの動作状況及び前記少なくとも1つの他のサーバの動作状況を判定するべく、前記状況情報を分析することと、
前記第1のサーバの前記動作状況が不具合状態を示すとき、前記少なくとも1つの予備サーバのうちの第1の予備サーバの役割を前記第1の役割に更新し、前記第1グループのユーザ機器を前記少なくとも1つの予備サーバのうちの前記第1の予備サーバに再割り当てすることと、
前記少なくとも1つの他のサーバの前記動作状況が不具合状態を示すとき、前記少なくとも1つの予備サーバのうちの他の1つの予備サーバの役割を前記少なくとも1つの他の役割に更新し、前記少なくとも1つの他のグループのユーザ機器を前記少なくとも1つの他の予備サーバに再割り当てすることと、
を実施するように構成される。
【0008】
第2の態様において、本開示の一実施形態は、サーバシステム管理方法を提供する。この方法は、
第1のサーバにおいて、第1の役割を実行することと、
少なくとも1つの他のサーバにおいて、少なくとも1つの他の役割を実行することと、
第1グループのユーザ機器を前記第1のサーバにアクセスするように割り当てると共に、少なくとも1つの他のグループのユーザ機器を前記少なくとも1つの他のサーバにアクセスするように割り当てることと、
前記第1のサーバからの状況情報及び前記少なくとも1つの他のサーバからの状況情報を受信することと、
前記状況情報を分析することにより、前記第1のサーバの動作状況及び前記少なくとも1つの他のサーバの動作状況を判定することと、
前記第1のサーバの前記動作状況が不具合状態を示すとき、少なくとも1つの予備サーバのうちの第1の予備サーバの役割を前記第1の役割に更新し、前記第1グループのユーザ機器を前記少なくとも1つの予備サーバのうちの前記第1の予備サーバに再割り当てすることと、
前記少なくとも1つの他のサーバの前記動作状況が不具合状態を示すとき、前記少なくとも1つの予備サーバのうちの他の1つの予備サーバの役割を前記少なくとも1つの他の役割に更新し、前記少なくとも1つの他のグループのユーザ機器を前記少なくとも1つの他の予備サーバに再割り当てすることと、
を含む。
【0009】
第3の態様において、本開示の一実施形態は、第1の役割に従って第1のソフトウェアを実行するための第1のサーバ、第2の役割に従って少なくとも1つの他のソフトウェアを実行するための少なくとも1つの他のサーバ、第3の役割を有する少なくとも1つの予備サーバ、及び管理層サーバを備えるサーバシステムの管理方法を提供する。この方法は、
前記管理層サーバに役割のリストを提供することと、
前記第1のサーバで動作している実行可能な前記第1のソフトウェアにアクセスするように第1グループのユーザ機器を割り当てると共に、前記少なくとも1つの他のサーバで動作している実行可能な前記少なくとも1つの他のソフトウェアにアクセスするように少なくとも1つの他のグループのユーザ機器を割り当てることと、
前記第1のサーバ及び前記少なくとも1つの他のサーバによって、状況情報を前記管理層サーバに送信することと、
前記第1のサーバの第1の動作状況及び前記少なくとも1つの他のサーバの第2の動作状況を判定するべく、前記管理層サーバによって、前記状況情報を受信し、前記受信した状況情報を分析することと、
前記管理層サーバによって、前記第1の動作状況が前記第1のサーバにおける不具合を示すとき、前記第1の役割を空き役割として通知し、前記第2の動作状況が前記少なくとも1つの他のサーバにおける不具合を示すとき、前記第2の役割を空き役割として通知することと、
前記少なくとも1つの予備サーバの前記第3の役割を、前記通知された空き役割として更新することと、
前記少なくとも1つの予備サーバにおいて、前記更新された第3の役割に従って第3のソフトウェアを実行することと、
前記少なくとも1つの予備サーバで動作している実行可能な前記第3のソフトウェアにアクセスするべく、前記不具合のあるサーバに割り当てられていたグループのユーザ機器を再割り当てすることと、
を含む。
【0010】
本開示の実施形態は、従来技術における前述の問題を実質的に排除するか、又は少なくとも部分的に対処し、レイテンシ及びサーバクラッシュの可能性を緩和し、これによってユーザ機器を使用するユーザにシームレスで中断されない体験を提供する、信頼性が高く高速かつ堅牢なサーバシステムを提供する。
【0011】
本開示の追加の態様、効果、特徴、及び目的は、図面及び後続する添付の請求項と関連して解釈される例示的な実施形態の詳細説明から明らかになるであろう。
【0012】
本開示の特徴は、添付の請求項によって定義される本開示の範囲から逸脱することなく、様々な組合せで組み合わせることが可能であることが理解されよう。
【図面の簡単な説明】
【0013】
上記の摘要及び例示的な実施形態についての以下の詳細説明は、添付の図面と併せて読むとよりよく理解される。本開示を説明する目的で、本開示の例示的な構造が図面に示されている。しかしながら、本開示は、本明細書に開示される特定の方法及び手段に限定されるものではない。更に、当業者であれば、図面が縮尺どおりでないことは理解できるであろう。可能な限り、同種の要素には同一の符号を付している。
【0014】
以下に、例示のみを目的として、本開示の実施形態を下記の図を参照しながら説明する。
図1】本開示の一実施形態による例示的なサーバシステムのブロック図である。
図2A】本開示の様々な実施形態による例示的なネットワーク環境のブロック図である。
図2B】本開示の様々な実施形態による例示的なネットワーク環境のブロック図である。
図3】本開示の一実施形態による、ユーザ機器のユーザをあるサーバから別のサーバに再ルーティングするためのサーバシステムに採用されている機能要素を示すブロック図である。
図4】本開示の一実施形態による、スイッチと通信する管理層サーバのアーキテクチャを示すブロック図である。
図5A】本開示の一実施形態によるサーバシステム管理方法のステップを示すフローチャートである。
図5B】本開示の一実施形態によるサーバシステム管理方法のステップを示すフローチャートである。
【0015】
図面中、下線付きの符号は、その符号が配置されている、又は隣接している要素を表すために使用される。下線のない符号は、その符号と要素を結ぶ線によって識別される要素に関する。下線が引かれておらず、矢印が対応付けられている符号は、その矢印が指し示す要素全体を識別するために使用される。
【実施形態の詳細説明】
【0016】
以下の詳細説明は、本開示の実施形態と、それらを実施可能な方法とを示す。本開示を実施するいくつかの態様を開示したが、当業者であれば、本開示を実施又は実践するための他の実施形態も可能であることを認識するであろう。
【0017】
第1の態様において、本開示の一実施形態は、サーバシステムを提供する。このサーバシステムは、
第1の役割を実行するように構成された第1のサーバと、
少なくとも1つの他の役割を実行するように構成された少なくとも1つの他のサーバと、
少なくとも1つの予備サーバと、
管理層サーバと、
を備え、該管理層サーバは、
第1グループのユーザ機器を前記第1のサーバにアクセスするように割り当てると共に、少なくとも1つの他のグループのユーザ機器を前記少なくとも1つの他のサーバにアクセスするように割り当てることと、
前記第1のサーバから送信された状況情報及び前記少なくとも1つの他のサーバから送信された状況情報を受信することと、
前記第1のサーバの動作状況及び前記少なくとも1つの他のサーバの動作状況を判定するべく、前記状況情報を分析することと、
前記第1のサーバの前記動作状況が不具合状態を示すとき、前記少なくとも1つの予備サーバのうちの第1の予備サーバの役割を前記第1の役割に更新し、前記第1グループのユーザ機器を前記少なくとも1つの予備サーバのうちの前記第1の予備サーバに再割り当てすることと、
前記少なくとも1つの他のサーバの前記動作状況が不具合状態を示すとき、前記少なくとも1つの予備サーバのうちの他の1つの予備サーバの役割を前記少なくとも1つの他の役割に更新し、前記少なくとも1つの他のグループのユーザ機器を前記少なくとも1つの他の予備サーバに再割り当てすることと、
を実施するように構成される。
【0018】
第2の態様において、本開示の一実施形態は、サーバシステム管理方法を提供する。この方法は、
第1のサーバにおいて、第1の役割を実行することと、
少なくとも1つの他のサーバにおいて、少なくとも1つの他の役割を実行することと、
第1グループのユーザ機器を前記第1のサーバにアクセスするように割り当てると共に、少なくとも1つの他のグループのユーザ機器を前記少なくとも1つの他のサーバにアクセスするように割り当てることと、
前記第1のサーバからの状況情報及び前記少なくとも1つの他のサーバからの状況情報を受信することと、
前記状況情報を分析することにより、前記第1のサーバの動作状況及び前記少なくとも1つの他のサーバの動作状況を判定することと、
前記第1のサーバの前記動作状況が不具合状態を示すとき、少なくとも1つの予備サーバのうちの第1の予備サーバの役割を前記第1の役割に更新し、前記第1グループのユーザ機器を前記少なくとも1つの予備サーバのうちの前記第1の予備サーバに再割り当てすることと、
前記少なくとも1つの他のサーバの前記動作状況が不具合状態を示すとき、前記少なくとも1つの予備サーバのうちの他の1つの予備サーバの役割を前記少なくとも1つの他の役割に更新し、前記少なくとも1つの他のグループのユーザ機器を前記少なくとも1つの他の予備サーバに再割り当てすることと、
を含む。
【0019】
第3の態様において、本開示の一実施形態は、第1の役割に従って第1のソフトウェアを実行するための第1のサーバ、第2の役割に従って少なくとも1つの他のソフトウェアを実行するための少なくとも1つの他のサーバ、第3の役割を有する少なくとも1つの予備サーバ、及び管理層サーバを備えるサーバシステムの管理方法を提供する。この方法は、
前記管理層サーバに役割のリストを提供することと、
前記第1のサーバで動作している実行可能な前記第1のソフトウェアにアクセスするように第1グループのユーザ機器を割り当てると共に、前記少なくとも1つの他のサーバで動作している実行可能な前記少なくとも1つの他のソフトウェアにアクセスするように少なくとも1つの他のグループのユーザ機器を割り当てることと、
前記第1のサーバ及び前記少なくとも1つの他のサーバによって、状況情報を前記管理層サーバに送信することと、
前記第1のサーバの第1の動作状況及び前記少なくとも1つの他のサーバの第2の動作状況を判定するべく、前記管理層サーバによって、前記状況情報を受信し、前記受信した状況情報を分析することと、
前記管理層サーバによって、前記第1の動作状況が前記第1のサーバにおける不具合を示すとき、前記第1の役割を空き役割として通知し、前記第2の動作状況が前記少なくとも1つの他のサーバにおける不具合を示すとき、前記第2の役割を空き役割として通知することと、
前記少なくとも1つの予備サーバの前記第3の役割を、前記通知された空き役割として更新することと、
前記少なくとも1つの予備サーバにおいて、前記更新された第3の役割に従って第3のソフトウェアを実行することと、
前記不具合のあるサーバに割り当てられていたグループのユーザ機器を、前記少なくとも1つの予備サーバで動作している実行可能な前記第3のソフトウェアにアクセスするように再割り当てすることと、
を含む。
【0020】
本開示は、例えば、不具合の発生時に、あるサーバから別のサーバへのトラフィックの再ルーティングに関わるネットワーク内の複数のサーバを管理するためのサーバシステムを提供する。本サーバシステムは、高速処理、高信頼性、高堅牢性が要求されるオンラインゲーム用途など、様々な用途に採用され得る。本発明の原理を組み込み得る他のタスク及び用途としては、データベース管理システム、アプリケーションサービスプロバイダ、企業データセンタ、モデリング及びシミュレーションシステム、グラフィックスレンダリングシステム、複雑な計算分析システムなどが挙げられるが、これらに限定されるわけではない。本発明の原理は、特定の用途に関して説明されるかもしれないが、他の多くのタスクや用途が、本サーバシステムを利用して制限なく実行され得ることが認識されるであろう。
【0021】
本サーバシステム及び方法が提供する多くの利点の一つに、広範囲の負荷に対応した、指定された役割の性能向上がある。更に、本サーバシステムによって、高負荷が要求される場合でも、サーバの信頼性が向上する。本開示は、従来のシステムにありがちな、高負荷によるコンピューティングシステムのクラッシュなどの不確定な性能特性を低減することを目的とする。また、レイテンシや負荷容量の問題などを解消するために、本サーバシステムが採用されている。更に、本サーバシステムは、ハードウェア資源を効率的に活用し、より良いパフォーマンスを実現することを目的としている。特に、このサーバシステムをゲーム用途に採用した場合、地理的に異なる場所にいるユーザ間でも、中断されない、高速かつ継続的なサービスやパフォーマンスを体感できる。
【0022】
本開示の目的のために、サーバシステムが、通信ネットワークを介して互いに接続される、第1のサーバ、少なくとも1つの他のサーバ、少なくとも1つの予備サーバ、及び管理層サーバを含む、例示的なネットワーク環境について考察する。本開示を通じて、「通信ネットワーク」という用語は、出願時に利用可能又は既知であるか、あるいはその後開発されたものであるかを問わず、1つ以上の電子デバイス及び/又はデータベース間のデータ通信を促進するように構成された、相互接続されたプログラム可能及び/又は非プログラム可能コンポーネントの配置に関する。更に、通信ネットワークは、1つ以上のピアツーピアネットワーク、ハイブリッドピアツーピアネットワークなどを含んでもよいが、これらに限定されるものではない。ここで、通信ネットワークは、相互接続され、一つの大きなネットワークとして機能する個々のネットワークの集合であってもよい。そのような個々のネットワークは、有線、無線、又はそれらの組合せであってもよい。このような個々のネットワークの例としては、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、無線LAN(WLAN)、無線WAN(WWAN)、無線MAN(WMAN)、インターネット、第2世代(2G)電気通信ネットワーク、第3世代(3G)電気通信ネットワーク、第4世代(4G)電気通信ネットワーク、及び世界規模相互運用マイクロ波アクセス(Worldwide Interoperability for Microwave Access:WiMAX)のネットワークが挙げられるが、これらに限定されない。
【0023】
ネットワーク環境は、様々な可能なシナリオに応じて、様々な方法で実装してもよいことが理解されよう。あるシナリオ例では、ネットワーク環境は、第1サーバ、少なくとも1つの他のサーバ、少なくとも1つの予備サーバ、及び管理層サーバなどのサーバシステムのコンポーネントが空間的に配列された配置によって実装され得る。別のシナリオ例では、ネットワーク環境は、通信ネットワークを介して相互に通信可能に接続された第1サーバ、少なくとも1つの他のサーバ、少なくとも1つの予備サーバ、及び管理層サーバが空間的に分散した配置によって実施され得る。更に別のシナリオ例では、第1のサーバ、少なくとも1つの他のサーバ、少なくとも1つの予備サーバ、及び管理層サーバは、クラウドサーバを介して実装され得る。
【0024】
本開示を通じて、「第1のサーバ」、「少なくとも1つの他のサーバ」、「少なくとも1つの予備サーバ」、及び「管理層サーバ」で用いられる「サーバ」という用語は、組織におけるサイバーセキュリティを向上するように構成された少なくとも1つのサーバの配置を指す。「サーバ」という用語は、一般に、通信ネットワーク上の他のアプリケーション、プログラム、プロセス、又はデバイス(クライアント)からの情報又はサービスの要求に応答するクライアント・サーバ関係にあるアプリケーション、プログラム、プロセス、又はデバイスを指す。また、「サーバ」という用語には、情報を提供したり、サービスを提供したりする行為を可能にするソフトウェアも含まれる。更に、「クライアント」という用語は、一般に、通信ネットワーク上の他のアプリケーション、プログラム、プロセス、又はデバイス(サーバ)に情報又はサービスを要求するクライアント・サーバ関係にあるアプリケーション、プログラム、プロセス、又はデバイスを指す。1つのアプリケーションが、あるアプリケーションにとってはクライアントであっても、別のアプリケーションにとってはサーバである可能性があることから、「クライアント」と「サーバ」という用語は相対的なものであるという点が重要である。「クライアント」という用語には、FTPクライアントのように、要求するアプリケーション、プログラム、プロセス、又はデバイスとサーバとの接続を可能にするソフトウェアも含まれる。本明細書において、クライアントは、通信ネットワークを介してサーバ配置に通信可能に接続されている第1グループのユーザ機器と少なくとも1つの他のグループのユーザ機器とに関連付けられた複数のユーザ機器であってもよい。ユーザ機器の例としては、携帯電話、スマートフォン、モバイルインターネットデバイス(MID)、タブレットコンピュータ、ウルトラモバイルパーソナルコンピュータ(UMPC)、ファブレットコンピュータ、携帯情報端末(Personal Digital Assistant:PDA)、Webパッド、パーソナルコンピュータ(PC)、携帯用コンピュータ、ノート型コンピュータ、デスクトップコンピュータなどが挙げられるが、これらに限定されない。
【0025】
本サーバシステムは、サードパーティの仮想プライベートネットワーク(Virtual Private Network:VPN)サービスを安全な展開手段として提供するサービスの一部として、あるいは特定の展開に必要なVPNをオンデマンドで構築するサービスの一部として、例えば組織などのサードパーティに展開可能である。VPNは、安全でない、又は信頼されていないネットワークを介した接続を保護するために使用可能な技術の任意の組合せである。VPNにより、セキュリティが向上し、運用コストが削減される。VPNは、公衆ネットワーク(通常はインターネット)を利用して、遠隔地のサイトやユーザ機器のユーザを相互に接続する。専用線などによる現実の接続を使用する代わりに、VPNは、企業のプライベートネットワークからリモートサイトまで、インターネットを介してルーティングされた「仮想」接続を使用する。VPNを介したソフトウェアへのアクセスは、プロセスソフトウェアの配信又は実行を目的としてVPNを特別に構築する(すなわち、ソフトウェアは別の場所に存在する)ことによって、サービスとして提供することができる。ここで、VPNの寿命は、支払った金額に基づいて所定の期間又は所定の展開回数に制限される。他の例では、サービスとしての本発明の解決策は、組織のITインフラストラクチャに展開され、統合されることも可能である。
【0026】
特に、第1のサーバは、第1の役割を実行するように構成され、少なくとも1つの他のサーバは、少なくとも1つの他の役割を実行するように構成される。本開示を通じて、「第1の役割」及び「少なくとも1つの他の役割」で使用される「役割」という用語は、ゲームアプリケーションなどのソフトウェアアプリケーションを実行するためにサーバが実行する機能を指す。ゲームアプリケーションは、第1グループのユーザ機器を使用する第1グループのユーザ及び他のグループのユーザ機器を使用する他のグループのユーザなどのエンドユーザに提供されるゲームアプリケーションの結果を達成するために、同期的に処理及び実行される必要がある多数の機能性及び/又はプロセスを含み得ることが理解されよう。役割は、第1のサーバ及び少なくとも1つの他のサーバの各々によって実行される、ゲームアプリケーションなどの任意のアプリケーションの実行に関連付けられた専用のタスク又はサブタスクであってよい。異なる役割の例としては、ネットワークインターフェース、ストレージ処理、グラフィックス処理、コマンド処理、アプリケーション処理、システム管理処理、プロトコル処理、Webページ、MP3ファイル、HTTPオブジェクトファイル、オーディオストリームファイル、ビデオストリームファイルなどの静的コンテンツの配信、反復処理が必要な命令やコマンドなどの動的コンテンツの配信などが挙げられるが、これらに限定されない。一例として、サーバシステムは、第1のサーバ及び少なくとも1つの他のサーバを含む複数のサーバを備えてもよい。本明細書において、複数のサーバのそれぞれは、サーバシステムの要求に応じて異なる役割を果たすように構成される。
【0027】
任意で、第1のサーバは、第1の役割に従って第1の実行可能ソフトウェアを動作させ、少なくとも1つの他のサーバは、少なくとも1つの他の役割に従って少なくとも1つの他の実行可能ソフトウェアを動作させる。本開示を通じて、「第1の実行可能ソフトウェア」及び「少なくとも1つの他の実行可能ソフトウェア」で使用される「実行可能ソフトウェア」という用語は、第1の役割及び少なくとも1つの他の役割などのタスクを実行するように第1のサーバ及び/又は少なくとも1つの他のサーバを構成するように第1のサーバ及び/又は少なくとも1つの他のサーバによって実行可能な命令の集まり又は集合を指す。更に、実行可能ソフトウェアは、RAM、ハードディスク、光ディスクなどの記憶媒体に保存されていてもよく、また、ROMなどに保存されたソフトウェアであるいわゆる「ファームウェア」も含むことを意図している。任意で、「実行可能ソフトウェア」という用語は、ソフトウェアアプリケーションを指す。このような実行可能ソフトウェアは様々な方法で構成される。例えば、実行可能ソフトウェアは、ライブラリ、リモートサーバなどに保存されたインターネットベースのプログラム、ソースコード、解釈コード、オブジェクトコード、直接実行可能なコードなどとして構成されたコンポーネントを含む。このソフトウェアは、特定の機能を実行するために、システムレベルのコード又はサーバなどに存在する他のソフトウェアへのコールを呼び出すことができることが理解されよう。更に、実行可能ソフトウェアは、あらかじめ設定され、オペレーティングシステムとあらかじめ統合されてもよく、これによってソフトウェアアプライアンスを構築する。一例として、実行可能ソフトウェアは、オンラインゲームソフトウェアとすることができる。任意で、第1の実行可能ソフトウェアと少なくとも1つの他の実行可能ソフトウェアとは同じである。この場合、第1のサーバと少なくとも1つの他のサーバとで同じソフトウェアが実行され、第1のサーバと少なくとも1つの他のサーバとが同じ役割を果たす。任意で、第1の実行可能ソフトウェアと少なくとも1つの他の実行可能ソフトウェアとは異なるものである。この場合、第1のサーバと少なくとも1つの他のサーバとで異なるソフトウェアが実行され、第1のサーバと少なくとも1つの他のサーバとが異なる役割を果たす。以下、簡単かつ明瞭にするために、「第1のサーバ」及び「少なくとも1つの他のサーバ」を、互換的に「主サーバ」と呼ぶ場合がある。
【0028】
特に、少なくとも1つの予備サーバは、不具合又は故障が発生した主サーバのいずれかを引き継ぐように構成される。特に、少なくとも1つの予備サーバは、いずれかの主サーバの不具合時に、当該主サーバからこの予備サーバへのトラフィックの再ルーティングを可能にするために十分な帯域幅を提供するように構成される。少なくとも1つの予備サーバは、不具合のある主サーバのいずれかにあるのと同じ実行可能ソフトウェアを動作させるように構成され、これによって、複数のユーザ機器へのサーバの中断のないアクセスを提供することが理解されよう。
【0029】
任意で、第1のサーバ、少なくとも1つの他のサーバ、及び少なくとも1つの予備サーバは、通信ネットワークを介して分散的に相互接続され、例えば、本明細書に記載されるように決定論的方法で一緒に動作するように構成され得るネットワーク全体のサーバ、ルータ、スイッチ、管理層などの個々のコンポーネント間に仮想分散相互接続バックプレーンを作成する。一例として、サーバシステムは、波長分割多重(Wavelength Division Multiplexing:WDM)又は高密度波長分割多重(Dense Wavelength Division Multiplexing:DWDM)及び光インターコネクト技術(例えば、光/光インターフェースベースのシステムと組み合わせて)、INFINIBAND、LIGHTNING I/Oなどの技術との組合せで採用され得る。有利には、本構成は、例えば、別々のサーバが互いに物理的に離れていること、及び/又は、互いに異なるか外部にある2つ以上のエンティティ(例えば、2つ以上の異なるサービスプロバイダ)によって操作されることを可能にするために使用され得る。本実施例では、1つ以上の処理機能性は、1つ以上の他の処理機能性から物理的に離れた場所に位置していてもよい(例えば、別々のシャーシ内に位置する、別々の建物内に位置する、別々の都市/国に位置する、など)。しかし、別の実施形態では、いくつかのコンポーネントを必要に応じて共通のローカル施設に配置することができる。
【0030】
更に、管理層サーバは、第1のサーバ及び少なくとも1つの他のサーバの動作状況に関する情報にアクセスすることにより、1つ以上の主サーバのトラフィックを管理し、1つ以上の主サーバに不具合が発生した場合に少なくとも1つの予備サーバへのトラフィックを再ルーティングするようにも構成されている。管理層サーバは、システムの信頼性を向上するために、帯域幅の利用を最適化し、トラフィック管理のための密度決定を可能にするように構成されていることが理解されよう。特に、管理層サーバは、主サーバの各々の動作状況を継続的に監視して、いずれかの主サーバが過負荷であるか故障状態にあるかを判断し、1つ以上の主サーバの不具合時に少なくとも1つの予備サーバへのトラフィックの再ルーティングを可能にするために、第1サーバ、少なくとも1つの他のサーバ、及び少なくとも1つの予備サーバのそれぞれと通信可能に接続されている。
【0031】
特に、管理層サーバは、第1グループのユーザ機器を第1のサーバにアクセスするように割り当てると共に、少なくとも1つの他のグループのユーザ機器を少なくとも1つの他のサーバにアクセスするように割り当てるように構成される。特に、異なるセットのユーザ機器が異なる主サーバに関連付けられ、そのグループのユーザ機器のそれぞれが異なる役割を実行するように割り当てられる。一例では、システム内の主サーバ及び関連する役割の数に応じて、第1グループのユーザ機器は、第1の役割を実行するように構成された第1のサーバに割り当てられ、少なくとも1つの他のグループのユーザ機器は、第2の役割を実行するように構成された少なくとも1つの他のサーバに割り当てられ、第3グループのユーザ機器は、第3の役割を実行するように構成された第3のサーバに割り当てられるなどである。任意で、グループのユーザ機器は、主サーバに動的に割り当てられてもよく、あるいは、グループのユーザ機器は、共通の基準又は特性など、主サーバに基づいて割り当てられてもよい。一例では、第1グループのユーザ機器は、ある地理的位置に属し、他のグループのユーザ機器は、他の地理的位置に属してもよい。本明細書では、ユーザそれぞれの地理的位置に基づいて、第1グループのユーザ機器は、第1のサーバに割り当てられ、他のグループのユーザ機器は、他のサーバに割り当てられる。第1グループのユーザ機器は、技術的にはそれぞれのユーザ機器を指し、その逆もまた然りである。実際、管理層サーバは、第1グループのユーザに関連付けられたユーザ機器で第1のサーバにアクセスするように前記第1グループのユーザを割り当てると共に、少なくとも1つの他のグループのユーザに関連付けられたユーザ機器で少なくとも1つの他のサーバにアクセスするように前記少なくとも1つの他のグループのユーザを割り当てるように構成される。このように、第1グループのユーザは、第1グループのユーザ機器に関連付けられている。少なくとも1つの他のグループのユーザは、少なくとも1つの他のグループのユーザ機器に関連付けられている。
【0032】
更に、管理層サーバは、第1のサーバから送信された状況情報及び少なくとも1つの他のサーバから送信された状況情報を受信するように構成される。状況情報は、それぞれの主サーバの現在の動作状況に関することが理解されよう。それぞれの主サーバの状況情報は、管理層サーバが継続的に監視している。一例として、第1のサーバ及び少なくとも1つの他のサーバは、定期的又は不定期の時間間隔で、状況情報を管理層サーバに常に送信するように構成される。このような状況情報の例としては、「ACTIVE(稼働中)」、「INACTIVE(休止中)」、「SYSTEM FAILURE(システム不具合)」、「SYSTEM OVERLOADED(システム過負荷)」などの信号又はメッセージがあり、それぞれの主サーバの動作状況を示して管理層サーバに送信され得る。別の例では、ポーリングによってそれぞれの主サーバから状況情報を受信する。具体的には、pingにより状況を確認し、主サーバから受信した応答を読み出すことでポーリングが行われる。
【0033】
更に、管理層サーバは、第1のサーバの動作状況及び少なくとも1つの他のサーバの動作状況を判定するべく、状況情報を分析するように構成される。例えば、第1のサーバ及び少なくとも1つの他のサーバの動作状況は、各主サーバから受信した状況情報に基づいて、「ACTIVE(稼働中)」、「INACTIVE(休止中)」、「SYSTEM FAILURE(システム不具合)」、「SYSTEM OVERLOADED(システム過負荷)」などと分析され得る。管理層サーバは、必要に応じて様々な動作状態を判定するように構成できることが理解されよう。ただし、以下では、単純明快にするために、稼働状態(主サーバが稼働し動作している状態)と不具合状態(主サーバが応答しない状態及び/又はクラッシュした状態)の2つの動作状態を考える。任意で、動作状況は、状況情報の分析の瞬間と受信の瞬間との時間差を決定することによっても判定することができる。一例として、状況情報を分析した時点と状況情報を受信した時点との時間差が所定時間差より大きい場合に、動作状況は不具合状態を示す。このようなサーバシステムは、主サーバからの応答の遅れや状況情報の分析の遅れによって発生し得るシステムのレイテンシを防ぐことができると理解される。
【0034】
任意で、主サーバの動作状況を分析するために他の複数のパラメータも監視することができる。これには、処理エンジン帯域幅、ファイバチャネル帯域幅、使用可能なドライブ数、ドライブごとの1秒当たりの入力/出力操作(Input/output Operations Per Second:IOPS)及びストレージデバイスの安価なディスクの冗長配列(Redundant Array of Inexpensive Disc:RAID)レベル、データブロックのキャッシュに使用可能なメモリ、テーブルルックアップエンジンの帯域幅、接続制御構造のために使用可能なRAM及び使用可能な外部への送信ネットワーク帯域幅、ストリーミングアプリケーションがストリームごとに使用し、接続制御構造及びバッファと共に使用する共有リソース(RAMなど)、サブシステム間のメッセージ受け渡しに使用可能な帯域幅、各種サーバ間のデータ受け渡しに使用可能な帯域幅などが挙げられるが、これらに限定されない。
【0035】
任意で、管理層は、管理層サーバ用の監視エンジンとして機能する複数の層を備える。例えば、管理層サーバは、それぞれの主サーバの状況情報を取得する状態取得層と、異なる主サーバと予備サーバに異なる役割を割り当て、それらの構造化リストを維持する役割管理層と、不具合発生時に負荷分散や主サーバから予備サーバへのトラフィック再ルートを行うリソース管理層とを備えてもよい。
【0036】
任意で、サーバシステムは、主サーバと予備サーバのそれぞれの役割を保存するためのデータベース配置を更に備える。また、このデータベース配置は、主サーバと予備サーバのそれぞれの動作状況を保存するように構成される。特に、このような情報は、リアルタイム又はほぼリアルタイムで常に更新される。本開示を通じて、本明細書で使用される「データベースの配置」という用語は、採用された場合に、管理層サーバが、各サーバの役割、各サーバの動作状況などを保存することができる、少なくとも1つのデータベースの配置を指す。「データベース配置」という用語は、一般に、情報を組織的に(すなわち構造的に)保存するためのハードウェア、ソフトウェア、ファームウェア、又はこれらの組合せを指し、これによって、その情報を容易に保存、アクセス(すなわち検索)、更新、及び分析することができる。また、「データベース配置」という用語は、前述のデータベースサービスをサーバシステムに提供するデータベースサーバを含む。このデータベースの配置によって、データリポジトリが実装されることが理解されよう。
【0037】
コンピュータシステムは、プロセッサと、メモリとを備えてもよい。プロセッサは、Intel(商標)やAMD(商標)が製造するマイクロプロセッサや、ARMがライセンス所有するマイクロマイクロプロセッサなど、1つ以上の既知の処理デバイスであってもよい。プロセッサは、並列処理を同時に実行するシングルコア又はマルチコアプロセッサを構成してもよい。例えば、プロセッサは、仮想処理技術で構成されたシングルコアプロセッサであってもよい。特定の実施形態では、プロセッサは、論理プロセッサを使用して、複数のプロセスを同時に実行し、制御してもよい。プロセッサは、仮想マシン技術、又は複数のソフトウェアプロセス、アプリケーション、プログラムなどを実行、制御、動作、操作、及び保存する能力を提供する他の既知の技術を実装してもよい。別の実施形態では、プロセッサは、コンピュータシステムが複数のプロセスを同時に実行できるように並列処理機能性を提供するように構成されたマルチコアプロセッサ構成(例えば、デュアルコア、クアッドコアなど)を含んでもよい。当業者であれば、本明細書に開示された機能を提供する他の種類のプロセッサの構成が実装され得ることを理解するであろう。更に、メモリは、アプリ(複数可)などの1つ以上のプログラムを保存する、揮発性又は不揮発性の、磁気、半導体、ソリッドステート、テープ、光学、取り外し可能、取り外し不可能、又は他の種類の記憶装置又は有形(すなわち、非一時的)コンピュータ可読媒体を含んでもよい。
【0038】
プログラムは、1つ以上のプロセッサによって実行されたときに、既知のオペレーティングシステム機能を実行するオペレーティングシステム(不図示)を含んでもよい。例として、オペレーティングシステムは、Microsoft Windows(登録商標)、Unix、Linux(登録商標)、Android(登録商標)、及びAppleのオペレーティングシステム、更には、Microsoft CE(登録商標)などのPDA型のオペレーティングシステム、又は他の種類のオペレーティングシステムを含んでいてもよい。したがって、開示される実施形態は、任意の種類のオペレーティングシステムを動作させるコンピュータシステムで動作し、機能することができる。コンピュータシステムは、プロセッサによって実行されると、ネットワーク及び/又はローカルネットワークとの通信を提供する通信ソフトウェア、例えば、ウェブブラウザソフトウェア、タブレット、又はスマートハンドヘルドデバイスネットワークソフトウェアなどを含んでもよい。
【0039】
一実施形態によれば、管理層サーバは、第1のサーバの動作状況が第1のサーバの不具合状態を示すとき、第1の役割を第1の空き役割として通知し、少なくとも1つの他のサーバの動作状況が当該サーバの不具合状態を示すとき、少なくとも1つの他の役割を少なくとも1つの他の空き役割として通知するように更に構成されている。具体的には、管理層サーバは、第1のサーバの動作状況が不具合状態を示している場合、第1の役割が空き役割である旨の信号をポーリングとして送り、予備サーバのいずれかが第1の役割を担うことができる。同様に、管理層サーバは、他のサーバの動作状況が当該サーバの不具合状態を示している場合、他の役割が空き役割である旨の信号をポーリングとして送る。本明細書において、「空き役割」という用語は、現在どのサーバでも実行されていないため、どのサーバでも自由に実行することができるタスク、機能、プログラムを指す。前述のように、役割管理層は、各サーバに対する各役割のリストを維持し、リアルタイムにこのリストを継続的に更新するように構成される。役割を通知することにより、各サーバに個別に可用性をポーリングする必要がないという利点がある。通知を受け取ったサーバが役割を果たすことができれば、個別にポーリングするよりも高速に実行できる。例えば、数百台のサーバがある場合、その一台ごとに可用性を確認すると時間がかかり、ユーザ機器に提供するサービスの中断時間が長くなってしまう場合がある。通知は、例えばマルチキャストやブロードキャストプロトコルを用いて行うことができる。通知をユニキャストで行う(例えば、ユーザデータグラムプロトコルを使用する)ことにより、返信の負荷を軽減することができる。
【0040】
更に、管理層サーバは、第1のサーバの動作状況が不具合状態を示すとき、少なくとも1つの予備サーバのうちの第1の予備サーバの役割を第1の役割に更新し、第1グループのユーザ機器を少なくとも1つの予備サーバのうちの第1の予備サーバに再割り当てするように構成される。このような場合、第1グループのユーザ機器と第1のサーバとの間の通信リンクは中断され、第1グループのユーザ機器と少なくとも1つの予備サーバのうちの第1の予備サーバとの間に新たな通信リンクが確立されてもよい。予備サーバの動作状況は、第1グループのユーザ機器を特定の予備サーバに割り当てる前に判定されることが理解されよう。特に、当初第1のサーバで実行されていた第1の役割が、予備サーバで実行されるように割り当てられる。任意で、第1のサーバの動作状況が不具合状態を示すとき、管理層サーバは、第1の役割の現在の実行状態を判定し、少なくとも1つの予備サーバのうちの第1の予備サーバの役割を現在の実行状態に更新するように更に構成される。
【0041】
更に、管理層サーバは、少なくとも1つの他のサーバの動作状況が不具合状態を示すとき、少なくとも1つの予備サーバのうちの他の1つの予備サーバの役割を少なくとも1つの他の役割に更新し、少なくとも1つの他のグループのユーザ機器を少なくとも1つの他の予備サーバに再割り当てするように構成される。このような場合、他のグループのユーザ機器と他のサーバとの間の通信リンクは中断され、他のグループのユーザ機器と少なくとも1つの予備サーバのうちの他の1つの予備サーバとの間に新たな通信リンクが確立されてもよい。予備サーバの動作状況は、他のグループのユーザ機器を特定の予備サーバに割り当てる前に判定されることが理解されよう。特に、当初他のサーバで実行されていた他の役割が、特定の予備サーバで実行されるように割り当てられる。任意で、少なくとも1つの他のサーバの動作状況が不具合状態を示すとき、管理層サーバは、少なくとも1つの他の役割の現在の実行状態を判定し、少なくとも1つの予備サーバのうちの少なくとも1つの他の予備サーバの少なくとも1つの他の役割を現在の実行状態に更新するように更に構成される。
【0042】
実際、このように役割を更新する設定により、ネットワークリソース(予備サーバ)を効率的に使用することができる。各予備サーバは、任意の役割(第1の空き役割又は他の空き役割)を担うように設定できるため、予備サーバの台数を減らすことができる。そのため、可能性のある各役割に応じた専用の予備サーバを用意する必要はない。空き役割の通知は、例えば予備サーバにメッセージを送ることで実施できる。メッセージの送信は、例えばマルチキャストプロトコルを使用することにより、予備サーバを1つずつポーリングするよりも速くメッセージを予備サーバに到達させることができる。
【0043】
本開示を通じて、本明細書で使用される「現在の実行状態」という用語は、サーバが故障、過負荷、又は信号中断となる前の、第1のサーバ及び少なくとも1つの他のサーバのそれぞれの進行中の機能状態を意味する。特に、各サーバに関連付けられたユーザ機器は、一定間隔の時間にわたってディスクイメージを取得し、保存するように構成されていることである。ここで、ディスクイメージは、タイムスタンプと、サーバの実行状態を示す特定のタイムスタンプで実行された命令コードとを含んでもよい。例えば、ゲームアプリケーションの場合、ディスクイメージは、ゲームにおけるレベルや、ゲームが中断されたタイムスタンプ(そのための命令セットを含む)に対応し得る。更に、取得したディスクイメージを管理層サーバと共有し、管理層サーバは、空き役割を果たすように割り当てられた予備サーバとディスクイメージを共有するように構成される。
【0044】
一実施形態によれば、サーバシステムは、プロキシサーバ層を更に備える。このプロキシサーバ層は、再割り当てされた第1グループのユーザ機器を少なくとも1つの予備サーバに再ルーティングし、再割り当てされた少なくとも1つの他のグループのユーザ機器を少なくとも1つの他の予備サーバに再ルーティングするように構成される。本開示を通じて、「プロキシサーバ層」という用語は、サーバと、第1グループのユーザ機器及び他のグループのユーザ機器に関連付けられたユーザ機器との間の仲介インターフェースを指す。特に、プロキシサーバ層は、第1のサーバ及び/又は他のサーバから利用可能な、ファイル、接続、ウェブページ、又は他のリソースなどの何らかのサービスをサーバに要求するように構成されている。プロキシサーバ層は、当技術分野で知られているように、ユーザに匿名性を提供すること、キャッシュを使用してパフォーマンスを向上させること、セキュリティを向上させることなど、1つ以上の動作を実現することが理解されよう。更に、サーバシステムは、第1グループのユーザ機器及び他のグループのユーザ機器の特定の予備サーバへの再ルーティングを実行するためのルータ、スイッチ、及びスイッチファブリックを備える。上記のプロキシサーバ層設定を使用する技術的な効果は、機器のユーザに中断のないサービスを可能にすることである。実際、プロキシサーバを再設定することで、必要に応じてユーザ機器からの信号を予備サーバへと再ルーティングすることが可能になる。こうすることで、セッションが大きく停止することがなくなり、使いやすさが向上する。
【0045】
また、本開示は、サイバーセキュリティを向上させる方法に関する。上記に開示された様々な実施形態及び変形例は、本方法に準用される。
【0046】
任意で、本方法は、第1のサーバの動作状況が第1のサーバの不具合状態を示すとき、第1の役割を第1の空き役割として通知することと、少なくとも1つの他のサーバの動作状況が当該サーバの不具合状態を示すとき、少なくとも1つの他の役割を少なくとも1つの他の空き役割として通知することとを更に含む。
【0047】
任意で、本方法は、第1のサーバにおいて、第1の役割に従って第1の実行可能ソフトウェアを動作させることと、少なくとも1つの他のサーバにおいて、少なくとも1つの他の役割に従って少なくとも1つの他の実行可能ソフトウェアを動作させることとを更に含む。
【0048】
任意で、第1の実行可能ソフトウェアと少なくとも1つの他の実行可能ソフトウェアとは同じである。これは、多数のユーザがそれぞれのユーザ機器で、同じゲームなどの同じ実行可能ソフトウェアにアクセスしているようなシステムにおいて利点がある。それぞれのユーザの第1グループのユーザ機器が、当初(第1の実行可能ソフトウェアを動作させている)第1のサーバを使用するように構成され、少なくとも1つの他のグループのユーザがそれぞれのユーザ機器で(同じ第1の実行可能ソフトウェアを動作させている)少なくとも1つの他のサーバにアクセスするというシナリオが考えられる。つまり、すべてのユーザがそれぞれのユーザ機器を介して、実際に同じソフトウェア(同じゲームなど)にアクセスすることになる。第1サーバに不具合が発生した場合、それぞれの第1グループのユーザ機器で第1サーバを使用している第1グループのユーザは、(予備サーバが第1サーバの役割を果たすように構成されるまで)サービス停止となる可能性があるが、それぞれの少なくとも1つの他のグループのユーザ機器を使用している少なくとも1つの他のグループのユーザは、サービス停止とはならない。
【0049】
任意で、第1の実行可能ソフトウェアと少なくとも1つの他の実行可能ソフトウェアとは異なるものである。
【0050】
任意で、本方法は、第1のサーバの動作状況が不具合状態を示すとき、第1の役割の現在の実行状態を判定することと、少なくとも1つの予備サーバのうちの第1の予備サーバの役割を現在の実行状態に更新することとを更に含む。これによって、第1の役割を迅速に有効化することができる。
【0051】
任意で、本方法は、少なくとも1つの他のサーバの動作状況が不具合状態を示すとき、少なくとも1つの他の役割の現在の実行状態を判定することと、少なくとも1つの予備サーバのうちの少なくとも1つの他の予備サーバの少なくとも1つの他の役割を現在の実行状態に更新することとを更に含む。これによって、第1の役割を迅速に有効化することができる。
【0052】
任意で、本方法は、状況情報を分析した時点と状況情報を受信した時点との時間差を決定することと、この差が所定の時間差より大きいかどうかを分析することと、この時間差が所定の時間差より大きい場合、動作状況が不具合状態を示すとみなすこととを更に含む。これにより、何らかの理由でサーバが通信を行えなくなった場合のフェイルセーフの仕組みが提供される。サーバは、例えば、電源が切れていたり、オペレーティングシステムがクラッシュしていたり、メンテナンス中であったり、アプリケーションやサービスがクラッシュしている可能性がある。
【0053】
任意で、本方法は、プロキシサーバ層を、再割り当てされた第1グループのユーザ機器を少なくとも1つの予備サーバに再ルーティングし、再割り当てされた少なくとも1つの他のグループのユーザ機器を少なくとも1つの他の予備サーバに再ルーティングするように構成することを更に含む。
【0054】
更に任意で、本方法は、少なくとも1つの予備サーバが第1の役割又は1つの他の役割に更新された場合に備えて、少なくとも1つの追加の予備サーバを設定することを更に含む。これは、更に他のサーバがクラッシュした場合に備えて予備サーバの数を十分に確保できるという利点がある。更に、追加又は代替の実施形態によれば、通知される役割は、予備サーバの役割とすることができる。
【図面の詳細説明】
【0055】
図1を参照すると、本開示の一実施形態による、例示的なサーバシステム100のブロック図が示されている。図示のように、サーバシステム100は、第1のサーバ102と、少なくとも1つの他のサーバ104と、少なくとも1つの予備サーバ106とを備える。更に、サーバシステム100は、第1のサーバ102に割り当てられた第1グループのユーザ機器108、110、112と、他のサーバ104に割り当てられた少なくとも1つの他のグループのユーザ機器114、116、118とを備える。ここで、予備サーバ106にはユーザ機器が割り当てられていないため、予備サーバ106はスタンバイ状態である。更に、サーバシステム100は、第1サーバ102、少なくとも1つの他のサーバ104、及び少なくとも1つの予備サーバ106に通信可能に接続された管理層サーバ120を備える。ここで、管理層サーバ120は、第1のサーバ102及び/又は他のサーバ104の不具合時に、リソース管理及びトラフィック再ルーティングのために、第1のサーバ102、少なくとも1つの他のサーバ104、及び少なくとも1つの予備サーバ106の各々の動作状況を判定するように構成される。
【0056】
図1は単なる例示であり、本明細書の請求の範囲を不当に限定すべきではない。サーバシステム100についての具体的な指定は一例として提供されており、システム100をサーバ、管理層サーバ、及びユーザ機器の特定の数に限定するものと解釈されるものではないことが理解されよう。当業者であれば、本開示の実施形態が様々に変形、代替、変更できることを認識するであろう。
【0057】
図2A及び図2Bを参照すると、本開示の様々な実施形態によるシステム200のネットワーク環境のブロック図が示されている。図示のように、ネットワーク環境200は、第1のサーバ204(図1の第1のサーバなど)、第1の予備サーバ206(図1の少なくとも1つの予備サーバなど)、及び少なくとも1つの他のサーバ208(図1の少なくとも1つの他のサーバなど)と通信可能に接続されている管理層サーバ202(図1の管理層サーバなど)を備える。更に、ネットワーク環境200は、各サーバ204、206、208の現在の実行状態を保存するように構成されたデータベース配置210を備える。更に、ネットワーク環境200は、プロキシサーバ層212を備える。
【0058】
図2Aに示すように、第1グループのユーザ機器214A、214B、214Cに関連付けられた第1グループのユーザは、プロキシサーバ層212を介して第1のサーバ204と接続され、少なくとも1つの他のグループのユーザ機器216A、216B、216Cに関連付けられた少なくとも1つの他のグループのユーザ(第2グループのユーザ)は、プロキシサーバ層212を介して少なくとも1つの他のサーバ208と接続されている。ここで、第1のサーバ204は、第1の役割に従って第1の実行可能ソフトウェアを動作させ、少なくとも1つの他のサーバ208は、第2の役割に従って第2の実行可能ソフトウェアを動作させる。更に、第1のサーバ204及び少なくとも1つの他のサーバ208は、管理層サーバ202に状況情報を送信するように構成される。ここで、第1のサーバ204及び少なくとも1つの他のサーバ208は、状況情報を「ACTIVE(稼働中)」として送信し、それにより、ユーザ機器214A、214B、214Cと第1のサーバ204との間、及びユーザ機器216A、216B、216Cと少なくとも1つの他のサーバ208との間の接続が維持される。
【0059】
図2Bに示すように、第1のサーバ204及び少なくとも1つの他のサーバ(第2のサーバともいう)208は、管理層サーバ202に状況情報を送信するように構成される。ここで、第1のサーバ204は、状況情報を「FAILED(不具合)」として、少なくとも1つの他のサーバ208は、状況情報を「ACTIVE」として、管理層サーバ202に送信する。この場合、管理層サーバ202は、第1の役割を空き役割として通知し、第1グループのユーザ機器に関連付けられたユーザ機器214A、214B、214Cを第1の予備サーバ206に割り当てるように構成される。ここで、第1グループのユーザの再ルーティングは、プロキシサーバ層212によって実行される。更に、第1予備サーバ206は、第1の役割に従って第1の実行ソフトウェアを実行するように構成される。具体的には、データベース配置210から現在の実行状態にアクセスする。更に、前述のように、少なくとも1つの他のサーバ208は、ユーザ機器216A、216B、216Cに関連付けられた少なくとも1つの他のグループのユーザ(第2グループのユーザ)が、プロキシサーバ層212を介して少なくとも1つの他のサーバ208と接続されるように割り当てられている。ここで、少なくとも1つの他のサーバ208は、第2の役割に従って第2の実行可能ソフトウェアを動作させる。ここで、予備サーバ206は、状況情報を「ACTIVE」として管理層サーバ202に送信し、これによって、ユーザ機器214A、214B、214Cと予備サーバ206との接続が維持される。また、少なくとも一つの他のサーバ208は、状況情報を「ACTIVE」として管理層サーバ202に送信し、これによって、ユーザ機器216A、216B、216Cと少なくとも一つの他のサーバ208との接続が維持される。少なくとも1つの他のサーバは、表現を明確にするために、第1のサーバに対して第2のサーバであると考えることができる。少なくとも1つの他のグループのユーザ機器(及びそれぞれのユーザ)は、表現を明確にするために、第2グループと考えることができる。
【0060】
図3を参照すると、本開示の一実施形態による、ユーザ機器をあるサーバから別のサーバに再ルーティングするためのサーバシステム300に採用されている機能要素を示すブロック図が示されている。図示されるように、サーバシステム300は、あるサーバから別のサーバへのトラフィックの再ルーティングを行うルータ304と通信する管理層サーバ302を備える。更に、ルータ304は、第1のサーバ306と予備サーバ308とに接続されている。更に、ユーザ機器310、312が、スイッチ314、316を介して、それぞれ第1のサーバ306、予備サーバ308に割り当てられる。図示されるように、ユーザ機器310は、その現在の実行状態を保存するように構成されたメモリ310Aを備える。また、ユーザ機器312は、その現在の実行状態を保存するように構成されたメモリ312Aを備える。更に、第1サーバ306の状況情報が管理層サーバ302に送信される。状況情報が「ACTIVE」である場合、ルータ304は、第1のサーバ306とユーザ機器310、312との間にリンク「A」を確立する。また、状況情報が「FAILED」の場合、図示されるように、ルータ304は、予備サーバ308とユーザ機器310、312との間にリンク「B」を確立する。
【0061】
図4を参照すると、本開示の一実施形態による、スイッチ400Bと通信している管理層サーバ400Aのアーキテクチャを示すブロック図が示されている。図示されるように、管理層サーバ400Aは、RAM(Random Access Memory)404、フラッシュメモリ406、BIOS408、及びオペレーティングシステム(OS)410が設けられたプロセッサ402を備える。更に、管理層サーバ400Aは、電源装置412を備える。ここで、管理層サーバ400Aの主な機能は、サーバの運用効率を向上させるように構成される。プロセッサ402は、低消費電力かつ低クロックで動作する。プロセッサ402は、スイッチ400Bからの信号を制御、処理する。ここで、ポーリング要求に応答して、プロセッサは、スイッチ400BのRAM418にある状況情報を読み出して、ユーザ機器の動作状況を判定する。更に、フラッシュメモリ406は、管理層サーバ400Aの動作を可能にするべく、BIOS408からのブートコード及びOS410からのコードを保存するように構成される。RAM404は、各サーバの更新された役割を保存し、各サーバの動作状況に関する構造化されたリストを維持するように構成される。
【0062】
図示されるように、スイッチ400Bは、バス414を介して管理層サーバ400Aと通信している。スイッチ400Bは、その動作を制御し、データの信頼性の高い伝送を保証するために各データパケットの宛先を決定するためのプロセッサ416を備える。更に、プロセッサ416は、サーバの動作状況に対応する各種パラメータのリストを維持する。このような情報は、スイッチ400BのRAM418又は不揮発性メモリ420に保存される。
【0063】
図5A及び図5Bを参照すると、本開示の一実施形態によるサーバシステム管理方法のステップを示すフローチャート500が示されている。ステップ502では、第1のサーバにおいて、第1の役割が実行される。ステップ504では、少なくとも1つの他のサーバにおいて、少なくとも1つの他の役割が実行される。ステップ506では、第1グループのユーザ機器は第1のサーバにアクセスするように割り当てられると共に、少なくとも1つの他のグループのユーザ機器は少なくとも1つの他のサーバにアクセスするように割り当てられる。ステップ508では、第1のサーバと少なくとも1つの他のサーバとから状況情報が受信される。ステップ510では、状況情報を分析することにより、第1のサーバの動作状況及び少なくとも1つの他のサーバの動作状況が判定される。ステップ512では、第1のサーバの動作状況が不具合状態を示すとき、少なくとも1つの予備サーバのうちの第1の予備サーバの役割が第1の役割に更新され、第1グループのユーザ機器が少なくとも1つの予備サーバのうちの第1の予備サーバに再割り当てされる。ステップ514では、少なくとも1つの他のサーバの動作状況が不具合状態を示すとき、少なくとも1つの予備サーバのうちの他の1つの予備サーバの役割が少なくとも1つの他の役割に更新され、少なくとも1つの他のグループのユーザ機器が少なくとも1つの他の予備サーバに再割り当てされる。
【0064】
前述の本開示の実施形態は、添付の請求項に定義される本開示の範囲から逸脱することなく変更可能である。本開示を説明し、請求するために使用される「含む」、「備える」、「組み込む」、「有する」、「ある」などの表現は、非排他的に解釈されることを意図しており、すなわち明示的に説明されていない品目、構成要素、又は要素も存在することが許容される。また、単数形への言及は、その複数形にも関すると解釈される。
図1
図2A
図2B
図3
図4
図5A
図5B
【国際調査報告】