(57)【要約】【課題】  ノードの代わりにオペレーティング・システム（ＯＳ）機能を実行するためのコンピュータ実施方法、システム及びコンピュータ・プログラムを提供する。【解決手段】  コンピュータにより実施される方法が、分散型オペレーティング・システム（ＯＳ）を有するラック・システムの、複数のノードとスーパーノードとの間の機能呼び出しを管理することを含む。ＯＳは、第１のクラス及び第２のクラスに分けられる複数の機能を含み、複数のノードの各々は第２のクラスにおけるＯＳ機能を含まない。機能呼び出しを管理することは、複数のノードの第１のノード上での第１の機能に対する呼び出しを検知することを含む。第１の機能は第２のクラスの機能に属し、第１のノードに利用可能でないと判断される。第１の機能は機能の第２のクラスに属すると判断することに応答して、第１の機能に対する呼び出しは、スーパーノードに送られ、ここでスーパーノードは、第２のクラスにおける機能のためのコードを含む。【選択図】      図１
2019502990.tif 000002
【特許請求の範囲】
【請求項１】
ノードの代わりにオペレーティング・システム（ＯＳ）機能を実行するためのコンピュータ実施方法であって、
分散型ＯＳを含むラック・システムの複数のノードとスーパーノードとの間の機能呼び出しを管理することであって、前記ＯＳは、少なくとも第１のクラスのＯＳ機能及び第２のクラスのＯＳ機能に分けられる複数のＯＳ機能を含み、前記複数のノードの各々は前記第２のクラスにおけるＯＳ機能を含まない、管理すること、
を含み、前記機能呼び出しを管理することは、
コンピュータ・プロセッサにより、前記複数のノードの第１のノード上での第１のＯＳ機能に対する呼び出しを検知することと、
前記第１のＯＳ機能が前記第２のクラスのＯＳ機能に属すると判断することと、
前記第１のＯＳ機能が前記第２のクラスのＯＳ機能に属すると判断することに応答して、前記第１のＯＳ機能に対する前記呼び出しを前記スーパーノードに送ることであって、前記スーパーノードは前記第１のクラス及び前記第２のクラスにおける前記ＯＳ機能のためのコードを含む、送ることと、
を含む、方法。
【請求項２】
前記複数のノードの各々は、前記第１のクラスに属する１つ又は複数のＯＳ機能のためのローカル・コードを含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記複数のＯＳ機能はさらに、前記第１のクラス、前記第２のクラス、及び第３のクラスに分けられ、
前記複数のノードの各々は、前記第３のクラスにおけるＯＳ機能のためのコードを含まず、
少なくとも１つの中間ノードは、前記第１のクラス及び前記第２のクラスにおける前記ＯＳ機能のためのコードを含み、前記第３のクラスにおける前記ＯＳ機能のためのコードを含まず、
前記スーパーノードは全オペレーティング・システムを含む、
請求項１又は請求項２に記載のコンピュータ実施方法。
【請求項４】
前記複数のノードの各々にはオペレーティング・システムがない、請求項１〜請求項３の１項に記載のコンピュータ実施方法。
【請求項５】
前記スーパーノードは全オペレーティング・システムを含む、請求項１〜請求項４の１項に記載のコンピュータにより実施される方法。
【請求項６】
前記複数のＯＳ機能の各ＯＳ機能は、使用頻度に基づいて、前記第１のクラス及び前記第２のクラスに分類される、請求項１〜請求項５の１項に記載のコンピュータにより実施される方法。
【請求項７】
前記ラック・システムは、第２のスーパーノードをさらに含み、かつ、
前記スーパーノード及び前記第２のスーパーノードのどちらに前記第１のＯＳ機能に対する前記呼び出しを送るかを判断することをさらに含む、
請求項１〜請求項６の１項に記載のコンピュータにより実施される方法。
【請求項８】
前記第１のノードは、前記スーパーノードとは異なるサーバ上にある、請求項１〜請求項７の１項に記載のコンピュータにより実施される方法。
【請求項９】
ノードの代わりにオペレーティング・システム（ＯＳ）機能を実行するためのシステムであって、
コンピュータ可読命令を有するメモリと、
前記コンピュータ可読命令を実行するための１つ又は複数のプロセッサと、
を含み、前記コンピュータ可読命令は、
分散型ＯＳを含むラック・システムの複数のノードとスーパーノードとの間の機能呼び出しを管理することであって、前記ＯＳは、少なくとも第１のクラスのＯＳ機能及び第２のクラスのＯＳ機能に分けられる複数のＯＳ機能を含み、前記複数のノードの各々は前記第２のクラスにおけるＯＳ機能を含まない、管理すること、
を含み、前記機能呼び出しを管理することは、
前記複数のノードの第１のノード上での第１のＯＳ機能に対する呼び出しを検知することと、
前記第１のＯＳ機能が前記第２のクラスのＯＳ機能に属すると判断することと、
前記第１のＯＳ機能が前記第２のクラスのＯＳ機能に属すると判断することに応答して、前記第１のＯＳ機能に対する前記呼び出しを前記スーパーノードに送ることであって、前記スーパーノードは前記第１のクラス及び前記第２のクラスにおける前記ＯＳ機能のためのコードを含む、送ることと、
を含む、システム。
【請求項１０】
前記複数のノードの各々は、前記第１のクラスに属する１つ又は複数のＯＳ機能のためのローカル・コードを含む、請求項９に記載のシステム。
【請求項１１】
前記複数のＯＳ機能はさらに、前記第１のクラス、前記第２のクラス、及び第３のクラスに分けられ、
前記複数のノードの各々は、前記第３のクラスにおけるＯＳ機能のためのコードを含まず、
少なくとも１つの中間ノードは、前記第１のクラス及び前記第２のクラスにおける前記ＯＳ機能のためのコードを含み、前記第３のクラスにおける前記ＯＳ機能のためのコードを含まず、
前記スーパーノードは全オペレーティング・システムを含む、
請求項９又は請求項１０に記載のシステム。
【請求項１２】
前記複数のノードの各々にはオペレーティング・システムがない、請求項９〜請求項１１の１項に記載のシステム。
【請求項１３】
前記スーパーノードは、全オペレーティング・システムを含む、請求項９〜請求項１２の１項に記載のシステム。
【請求項１４】
前記複数のＯＳ機能の各ＯＳ機能は、使用頻度に基づいて、前記第１のクラス及び前記第２のクラスに分類される、請求項９〜請求項１３の１項に記載のシステム。
【請求項１５】
前記ラック・システムは、第２のスーパーノードをさらに含み、かつ、前記コンピュータ可読命令は、
前記スーパーノード及び前記第２のスーパーノードのどちらに前記第１のＯＳ機能に対する前記呼び出しを送るかを判断することをさらに含む、
請求項９〜請求項１４の１項に記載のシステム。
【請求項１６】
前記第１のノードは、前記スーパーノードとは異なるサーバ上にある、請求項９〜請求項１５の１項に記載のシステム。
【請求項１７】
ノードの代わりにオペレーティング・システム（ＯＳ）機能を実行するためのコンピュータ・プログラムであって、プロセッサにより実行可能であり、前記プロセッサに方法を実行させるためのプログラム命令を含み、前記方法は、
分散型ＯＳを含むラック・システムの複数のノードとスーパーノードとの間の機能呼び出しを管理することであって、前記ＯＳは、少なくとも第１のクラスのＯＳ機能及び第２のクラスのＯＳ機能に分けられる複数のＯＳ機能を含み、前記複数のノードの各々は前記第２のクラスにおけるＯＳ機能を含まない、管理すること、
を含み、前記機能呼び出しを管理することは、
前記複数のノードの第１のノード上での第１のＯＳ機能に対する呼び出しを検知することと、
前記第１のＯＳ機能が前記第２のクラスのＯＳ機能に属すると判断することと、
前記第１のＯＳ機能が前記第２のクラスのＯＳ機能に属すると判断することに応答して、前記第１のＯＳ機能に対する前記呼び出しを前記スーパーノードに送ることであって、前記スーパーノードは前記第１のクラス及び前記第２のクラスにおける前記ＯＳ機能のためのコードを含む、送ることと、
を含む、コンピュータ・プログラム。
【請求項１８】
前記複数のノードの各々は、前記第１のクラスに属する１つ又は複数のＯＳ機能のためのローカル・コードを含む、請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
前記複数のＯＳ機能はさらに、前記第１のクラス、前記第２のクラス、及び第３のクラスに分けられ、
前記複数のノードの各々は、前記第３のクラスにおけるＯＳ機能のためのコードを含まず、
少なくとも１つの中間ノードは、前記第１のクラス及び前記第２のクラスにおける前記ＯＳ機能のためのコードを含み、前記第３のクラスにおける前記ＯＳ機能のためのコードを含まず、
前記スーパーノードは全オペレーティング・システムを含む、請求項１７又は請求項１８に記載のコンピュータ・プログラム。
【請求項２０】
前記複数のノードの各々にはオペレーティング・システムがない、請求項１７〜請求項１９の１項に記載のコンピュータ・プログラム。
【請求項２１】
前記スーパーノードは、全オペレーティング・システムを含む、請求項１７〜請求項２０の１項に記載のコンピュータ・プログラム。
【請求項２２】
前記複数のＯＳ機能の各ＯＳ機能は、使用頻度に基づいて、前記第１のクラス及び前記第２のクラスに分類される、請求項１７〜請求項２１の１項に記載のコンピュータ・プログラム。
【請求項２３】
前記ラック・システムは、第２のスーパーノードをさらに含み、かつ、前記方法は、
前記スーパーノード及び前記第２のスーパーノードのどちらに前記第１のＯＳ機能に対する前記呼び出しを送るかを判断することをさらに含む、
請求項１７〜請求項２２の１項に記載のコンピュータ・プログラム。
【請求項２４】
前記第１のノードは、前記スーパーノードとは異なるサーバ上にある、請求項１７〜請求項２３の１項に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ラック・システム、より具体的には、ラック内のノードのための分散型オペレーティング・システム機能に関する。
【背景技術】
【０００２】
従来のラック・システムは、互いに通信するサーバを組み込む。例えば、ラック・システムは、２０個から４０個までのサーバを含むことができる。しかしながら、将来のラック・システムは、何千というサーバを組み込むことができる。ラック・システム内の各サーバは、ラック・システム内のノードとして挙動する仮想マシンを実行することができる。従って、サーバは複数の仮想マシンを含むことができ、それらの仮想マシンは、サーバによって互いに通信することができる。同じように、ラックは、互いに通信する複数のサーバを含むことができる。
【０００３】
オペレーティング・システムは、コンピュータのハードウェア及びソフトウェア・リソースを管理するソフトウェアの一形態であり、ハードウェア及びソフトウェアが通信するのを可能にする。多くのサーバを含むラック・システムにおいて、各サーバ及び各サーバ上の各仮想マシンは、幾つかの点で独立して動作し、従って、それぞれのオペレーティング・システムを有する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ノードの代わりにオペレーティング・システム（ＯＳ）機能を実行するためのコンピュータにより実施される方法、システム及びコンピュータ・プログラムを提供する。
【課題を解決するための手段】
【０００５】
本開示の実施形態によると、ノードの代わりにオペレーティング・システム（ＯＳ）機能を実行するためのコンピュータにより実施される方法が、分散型ＯＳを有するラック・システムの、複数のノードとスーパーノードとの間の機能呼び出しを管理することを含む。ＯＳは、少なくとも第１のクラスのＯＳ機能及び第２のクラスのＯＳ機能に分けられる複数のＯＳ機能を含み、複数のノードの各々は第２のクラスにおけるＯＳ機能を含まない（exclude）。機能呼び出しを管理することは、コンピュータ・プロセッサにより、複数のノードの第１のノード上での第１のＯＳ機能に対する呼び出しを検知することを含む。第１のＯＳ機能は、第２のクラスのＯＳ機能に属し、第１のノードで利用可能でないと判断される。第１のＯＳ機能が第２のクラスに属すると判断することに応答して、第１のＯＳ機能に対する呼び出しがスーパーノードに送られ、ここでスーパーノードは、第２のクラスにおけるＯＳ機能のためのコードを含む。
【０００６】
別の実施形態において、ノードの代わりにＯＳ機能を実行するためのシステムが、コンピュータ可読命令を有するメモリと、コンピュータ可読命令を実行するための１つ又は複数のプロセッサとを含む。コンピュータ可読命令は、分散型ＯＳを有するラック・システムの、複数のノードとスーパーノードとの間の機能呼び出しを管理することを含む。ＯＳは、少なくとも第１のクラスのＯＳ機能及び第２のクラスのＯＳ機能に分けられる複数のＯＳ機能を含み、複数のノードの各々は、第２のクラスにおけるＯＳ機能を含まない。コンピュータ可読命令によると、機能呼び出しを管理することは、複数のノードの第１のノード上での第１のＯＳ機能に対する呼び出しを検知することを含む。第１のＯＳ機能は、第２のクラスのＯＳ機能に属し、第１のノードで利用可能でないと判断される。第１のＯＳ機能が第２のクラスに属すると判断することに応答して、第１のＯＳ機能に対する呼び出しがスーパーノードに送られ、ここでスーパーノードは、第２のクラスにおけるＯＳ機能のためのコードを含む。
【０００７】
さらに別の実施形態において、ノードの代わりにＯＳ機能を実行するためのコンピュータ・プログラム製品が、その上にプログラム命令が具体化されたコンピュータ可読ストレージ媒体を含む。プログラム命令は、プロセッサにより実行可能であり、プロセッサに方法を実行させる。この方法は、分散型ＯＳを有するラック・システムの、複数のノードとスーパーノードとの間の機能呼び出しを管理することを含む。ＯＳは、少なくとも第１のクラスのＯＳ機能及び第２のクラスのＯＳ機能に分けられる複数のＯＳ機能を含み、複数のノードの各々は第２のクラスにおけるＯＳ機能を含まない。方法によると、機能呼び出しを管理することは、複数のノードの第１のノード上での第１のＯＳ機能に対する呼び出しを検知することを含む。第１のＯＳ機能は、第２のクラスのＯＳ機能に属し、第１のノードで利用可能でないと判断される。第１のＯＳ機能が第２のクラスに属すると判断することに応答して、第１のＯＳ機能に対する呼び出しがスーパーノードに送られ、ここでスーパーノードは、第２のクラスにおけるＯＳ機能のためのコードを含む。
【０００８】
本発明の技術を通じて、付加的な特徴及び利点が実現される。本発明の他の実施形態及び態様が、本明細書に詳細に説明され、特許請求される本発明の一部とみなされる。これらの利点及び特徴と共に本発明をより良く理解するために、説明及び図面を参照されたい。
【０００９】
本発明とみなされる主題は、本明細書の最後にある特許請求の範囲において具体的に示され、明確に特許請求されている。本発明の上記及び他の特徴及び利点は、添付図面と併用される以下の詳細な説明から明らかである。
【図面の簡単な説明】
【００１０】
【図１】本開示の幾つかの実施形態による、ラック・システムのブロック図である。
【図２】本開示の幾つかの実施形態による、ラック・システムのブロック図である。
【図３】本開示の幾つかの実施形態による、ラック・システムの付加的なブロック図である。
【図４】本開示の幾つかの実施形態による、ラック・システムの付加的なブロック図である。
【図５】本開示の幾つかの実施形態による、ラック・システムの付加的なブロック図である。
【図６】本開示の幾つかの実施形態による、ラック・システムのさらに別のブロック図である。
【図７】本開示の幾つかの実施形態による、ラック・システムのノードによってオペレーティング・システム機能を実行するための方法のフロー図である。
【図８】本開示の幾つかの実施形態による、ラック・システムの一部又は全ての態様を実施するためのコンピュータ・システムのブロック図である。
【発明を実施するための形態】
【００１１】
従来のラック・システムにおいて、各ノードは、それぞれのオペレーティング・システムを有する、特に、多くのノードを有する高密度のラック・システムの場合、多数のオペレーティング・システムが、極めて接近した状態で同じタスクを実行することになり得る。さらに、単一のノード内で、一部のオペレーティング・システム機能がほとんど使用されないことがある。機能目的のため、各ノードがオペレーティング・システムの機能にアクセスできなければならないが、ラック・システムのありとあらゆるノード上に全（full）オペレーティング・システムを有し、実行するのは無駄でもある。
【００１２】
本明細書で説明されるラック・システムの幾つかの実施形態によると、ラック・システムの各ノードが完全なオペレーティング・システムを含む必要がない。むしろ、ノードは、他のノード上に格納されたオペレーティング・システム（ＯＳ）機能にアクセスすることができ、従って、必要とし得るあらゆるオペレーティング・システム機能のためのコードを保持し、実行する必要はない。
【００１３】
オペレーティング・システムは、ｋ個のクラスのＯＳ機能に分けられる複数のＯＳ機能を含むことができ、ここでｋは、利用可能な別個のオペレーティング・クラスの数であり、ｋは１より大きい。クラス−ｉのノードは、全てのクラス−ｉのＯＳ機能（すなわち、ｉ番目のクラスにおけるＯＳ機能）を含むことができ、ここでｉ＝１，．．．ｋである。さらに、クラス−ｉのノードは、他のクラスのＯＳ機能を含まないことがあり、又はより小さい数字のクラスに属するＯＳ機能のみを含むことができる。クラス−ｉのノードが、クラス−ｊのＯＳ機能の呼び出しを行うとき、そのＯＳ機能が、呼び出しを行っているノードのクラスとは異なるクラスに属するかどうか（すなわち、ｉはｊと等しいかどうか）を判断することができる。クラスが異なり、クラス−ｉのノード上でＯＳ機能が利用可能でない場合、クラス−ｊのＯＳ機能に対する呼び出しを、クラス−ｊのノード又はクラス−ｊのＯＳ機能を含む他のノードに送ることができる。ＯＳ呼び出しを受け取るノードは、呼び出しを行ったクラス−ｉのノードの代わりに、クラス−ｊの機能を実行することができる。
【００１４】
図１は、本開示の幾つかの実施形態による、ラック・システム１００のブロック図である。示されるように、ラック・システム１００は、１つ又は複数のサーバ１１０を含むことができ、この１つ又は複数のサーバ１１０は、１つ又は複数の標準ノード１２０及び少なくとも１つのスーパーノード１３０を含むノードの集合を共に有する。１つ又は複数の標準ノード１２０の各々は、接続マネージャ１４０を含むことができる。
【００１５】
各々の標準ノード１２０又はスーパーノード１３０は、物理的マシン又は仮想マシン、又は他のソフトウェア・コンテナとすることができる。例えば、幾つかの実施形態において、各々の標準ノード１２０又はスーパーノード１３０は、仮想マシンとすることができ、又はソケットごとに複数のコアを有する複数のソケットを含むハードウェアとすることができる。種々の標準ノード１２０及びスーパーノード１３０は、共有ハードウェア１５０を通じて、又は有線、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ、若しくは接続のための他の機構のような１つ又は種々の形態のネットワーク接続によって、互いに通信することができる。各々の接続マネージャ１４０は、その対応する標準ノード１２０とスーパーノード１３０との間のインターフェースとして働くことができる。
【００１６】
オペレーティング・システムは、ラック・システム１００にわたって分散させることができ、各々の標準ノード１２０において、その種々のＯＳ機能がローカルに利用可能である必要はない。例えば、オペレーティング・システムの機能の第１のクラス１６０は、各々の標準ノード１２０上でローカルに利用可能であり、一方、オペレーティング・システムの機能の第２のクラス１６５は、標準クラス１２０上でローカルに利用可能でないことがある。むしろ、第２のクラス１６５の機能は、スーパーノード１３０上でローカルに利用可能であり、標準ノード１２０とスーパーノード１３０との間の通信によって標準ノード１２０により遠隔からアクセス可能である。幾つかの実施形態において、スーパーノード１３０は、第１のクラス１６０及び第２のクラス１６５の両方からの全ての機能を有する全オペレーティング・システムを含むことができる。
【００１７】
言い換えれば、各々のＯＳ機能がそのＯＳ機能をもたらすために実行されるコードを必要とし得る場合、標準ノード１２０は、第２のクラス１６５の機能ではなく、第１のクラス１６０の機能のためのコードを格納できるが、スーパーノード１３０は、第１のクラス１６０の機能及び第２のクラス１６５の機能のためのコードを格納することができる。その結果、ＯＳ機能の２層分散がもたらされ、その場合、ノードの観点からは、幾つかの機能はローカルに利用可能であり、他の機能は遠隔からのみ利用可能である。手短に言えば、各標準ノード１２０は、部分的なオペレーティング・システムしか含むことができない。
【００１８】
オペレーティング・システムの機能は、例えば、印刷、メモリ管理、プロセス管理などを含むことができる。種々の方法で、ラック・システム１００内の利用可能なＯＳ機能を第１のクラス１６０及び第２のクラス１６５に分類することができる。例えば、限定ではなく、最も使用頻度が高いと考えられる機能は、第１のクラス１６０にあるものとし、従って、各標準ノード１２０にローカルに利用可能であり、一方、使用頻度が低いと考えられる機能は、第２のクラス１６５にあるものとすることができる。その結果、これらの機能がローカルに利用可能であるので、各標準ノード１２０は、定期的に使用する機能に高速にアクセスすることができる。
【００１９】
幾つかの実施形態において、スーパーノード１３０は、全部の集中型オペレーティング・システム機能を含むことができる。さらに、幾つかの実施形態において、スーパーノード１３０は、この目的専用とすることができる。スーパーノード１３０は、種々の標準ノード１２０の代わりに、第２のクラス１６５におけるＯＳ機能呼び出しを処理することができる。幾つかの実施形態において、これらの呼び出しを効率的に処理するのを可能にするために、スーパーノード１３０は、標準ノード１２０に比べて増大したストレージ及び処理能力を有することができる。ＯＳ機能呼び出しの通知を受け取ると、スーパーノード１３０は、呼び出された機能を実行し、機能の結果を要求中の標準ノード１２０に通信することができる。例えば、限定ではなく、印刷の機能は第２のクラス１６５に属することができ、従って、標準ノード１２０上でローカルに利用可能でないことがある。従って、標準ノード１２０がファイルを印刷する必要があるとき、その標準ノード１２０は、ファイルを表すデータをスーパーノード１３０に通信し、スーパーノード１３０は、ファイルを印刷し、結果として得られる確認又はエラーを標準ノード１２０に戻すことができる。
【００２０】
各標準ノード１２０は、サービス・プロバイダから標準ノード１２０を借りている顧客の命令などにより、標準ノード１２０に割り当てられたタスクを実行することができる。場合によっては、標準ノード１２０は、タスクを実行するためにＯＳ機能の使用を必要とすることがある。必要とされる機能がローカルに格納されている場合、標準ノード１２０は、通常のとおりに機能を実行することができる。しかしながら、必要とされる機能がローカルに存在しないとき、標準ノード１２０は、スーパーノード１３０との通信を通じて機能にアクセスすることができる。この通信は、ノードの接続マネージャ１４０によって容易になり得る。
【００２１】
各標準ノード１２０の接続マネージャ１４０は、その対応する標準ノード１２０とスーパーノード１３０との間の通信を容易にすることができる。そのために、接続マネージャ１４０は、ＯＳ機能呼び出しをスーパーノード１３０などの他のノード・タイプへ転送するための、低レベルのオペレーティング・システム機能を含むことができる。幾つかの実施形態において、その接続マネージャ１４０以外の標準ノード１２０のコンポーネントは、スーパーノード１３０と直接通信する方法を知る必要がなく、従って、スーパーノード１３０が、管理者が定めるように移動又は変更するのを可能にする。さらに、こうした標準ノード１２０の他のコンポーネントは、標準ノード１２０が特定のＯＳ機能にローカルにアクセスできないことを認識する必要はない。接続マネージャ１４０は、標準ノード１２０からの機能の第２のクラス１６５に対する呼び出しを検知し、標準ノード１２０の代わりに、これらの呼び出しをスーパーノード１３０に通信することができる。該当する場合、接続マネージャ１４０は、これらの機能呼び出しに答えて、確認、エラー、又はデータなどの応答を標準ノード１２０に戻すこともできる。
【００２２】
幾つかの実施形態において、複数のスーパーノード１３０が利用可能であるとき、接続マネージャ１４０は、こうした各スーパーノード１３０を認識することができる。標準ノード１２０でローカルに利用可能でないＯＳ機能に対する呼び出しが行われると、接続マネージャ１４０は、機能の実行のために、どのスーパーノード１３０と通信するかを決定することができる。接続マネージャ１４０は、この決定を行うときに、例えば、実行中の呼び出しにおけるスーパーノード１３０の以前の待ち時間、可用性、及びスーパーノード１３０に利用可能なハードウェア・リソースといった種々の要因を考慮し得る。
【００２３】
図１は、２つのクラスのＯＳ機能を有し、従って、２層にわたって分散されたオペレーティング・システムを有するラック・システム１００を示すが、ラック・システム１００の幾つかの実施形態は、付加的なクラスを、従って、付加的な層を含むことができる。さらに、上述のように、スーパーノード１３０は、全オペレーティング・システムを有する必要はないが、幾つかの実施形態においては、特定のクラスにおけるＯＳ機能のみを含むことができる。
【００２４】
例えば、図２は、本開示の幾つかの実施形態による、ラック・システム１００の別のブロック図である。示されるように、ＯＳ機能は、３つのクラスに分類することができる。その場合、標準ノード１２０は、第１のクラス１６０の機能をローカルに含むことができるが、第２のクラス１６５及び第３のクラス１７０の機能をローカルに含まない。１つ又は複数の中間ノード１８０は、第２のクラス１６５の機能を含み、幾つかの実施形態においては、第１のクラス１６０の機能も含むことができるが、第３のクラス１７０の機能を含むことはできない。スーパーノード１３０は、第３のクラス１７０の機能を含むことができ、幾つかの実施形態においては、第１のクラス１６０及び第２のクラス１６５も含むことができる。図２の例において、標準ノード１２０、中間ノード１８０及びスーパーノード１３０の各々は、それぞれ第１のクラス１６０、第２のクラス１６５及び第３のクラス１７０であるＯＳ機能の対応するクラスのみを含む。しかしながら、中間ノード１８０は、第１のクラス１６０のＯＳ機能を含むこともでき、スーパーノード１３０は、第１のクラス１６０及び第２のクラス１６５のＯＳ機能を含むこともできることが理解されるであろう。さらに、幾つかの実施形態において、ノード・タイプ（例えば、標準ノード１２０、中間ノード１８０、及びスーパーノード１３０）の組み合わせは、協働して全ＯＳ機能のセットを有する全オペレーティング・システムを提供することができる。
【００２５】
図３〜図５は、本開示の幾つかの実施形態による、ラック・システム１００の付加的なブロック図である。上述のように、ラック・システム１００は、単一より多くのサーバ１１０を含むことができる。従って、図３〜図５の各々に示されるように、標準ノード１２０は、これの代わりに第２のクラス１６５のＯＳ機能を実行するスーパーノード１３０とハードウェア１５０を共有する必要はない。この場合、標準ノード１２０上に格納されたローカルのＯＳ機能は、ローカル・ハードウェア１５０上で実行することができ、標準ノード１２０の代わりにスーパーノード１３０上に格納された遠隔機能は、スーパーノード１３０のハードウェア１５０上で実行することができる。
【００２６】
具体的には、図３は２つのサーバ１１０の使用を示し、図４は３つのサーバ１１０の使用を示し、図５は３つより多い複数のサーバ１１０を示す。さらに、図３〜図５は、接続マネージャ１４０によってスーパーノード１３０と通信する各サーバ１１０の単一の標準ノード１２０のみを示すが、これらの図は、単に例示目的のために簡単化されていること、及び、各サーバ１１０内の各標準ノード１２０は接続マネージャ１４０によってスーパーノード１３０と通信できることが理解されるであろう。
【００２７】
幾つかの実施形態において、ノードは、いずれのオペレーティング・システム機能もローカルに格納する必要がない。これを示している図６は、本開示の幾つかの実施形態による、ラック・システム１００のさらに別のブロック図である。示されるように、ラック・システム１００は、１つ又は複数のアプリケーション・ノード３１０及び少なくとも１つのスーパーノード１３０を含むノードの集合を含むことができる。各アプリケーション・ノード３１０は、ＯＳ機能のためのローカル・コードを含まず、従って、オペレーティング・システム機能を全く含まないことがある。言い換えれば、第１のクラス１６０のＯＳ機能は空であり、全てのＯＳ機能は第２のクラス１６５に属し得る。全オペレーティング・システム機能をスーパーノード１３０内に遠隔格納することができる。示されないが、幾つかの実施形態において、ラック・システム１００は、スーパーノード１３０に加えて、標準ノード１２０及びアプリケーション・ノード３１０の混合を含むことができる。
【００２８】
アプリケーション・ノード３１０がＯＳ機能の使用を要求するとき、そのアプリケーション・ノード３１０は、スーパーノード１３０と通信することができ、スーパーノード１３０は、アプリケーション・ノード３１０の代わりに要求される機能を実行することができる。上述のように、アプリケーション・ノード３１０とスーパーノード１３０との間の通信は、接続マネージャ１４０によって容易になり得る。
【００２９】
図７は、本開示の幾つかの実施形態による、標準ノード１２０によりＯＳ機能を実行するための方法４００のフロー図である。示されるように、ブロック４１０において、標準ノード１２０は、ＯＳ機能を要求することができる。ブロック４２０において、標準ノード１２０は、必要とするＯＳ機能に対する呼び出しを行うことができる。機能がローカルのＯＳ機能（すなわち、第１のクラス１６０内にある）である場合、ブロック４３０において、標準ノードは、機能を通常のように実行することができる。しかしながら、機能が遠隔のＯＳ機能である（すなわち、第１のクラス１６０内にない）場合、ブロック４４０において、接続マネージャ１４０が機能に対する呼び出しを検知し、インターセプトすることができる。その場合、ブロック４５０において、接続マネージャ１４０は、呼び出しをスーパーノード１３０に通信することができる。ブロック４６０において、スーパーノード１３０は、機能を実行し、応答を接続マネージャ１４０に送ることができる。ブロック４７０において、接続マネージャ１４０は、応答を標準ノード１２０に転送することができる。
【００３０】
図８は、幾つかの実施形態による、ラック・システム１００又は方法４００を実施するために用いられるコンピュータ・システム５００のブロック図を示す。本明細書に述べられるラック・システム１００及び方法４００は、ハードウェア、ソフトウェア（例えば、ファームウェア）又はそれらの組み合わせとして実施することができる。幾つかの実施形態において、説明される方法は、少なくとも部分的にハードウェアとして実施することができ、パーソナル・コンピュータ、ワークステーション、ミニコンピュータ、又はメインフレーム・コンピュータ等の専用若しくは汎用コンピュータ・システム５００のマイクロプロセッサの一部とすることができる。例えば、サーバ１１０の各々は、コンピュータ・システム５００とすることができる。
【００３１】
幾つかの実施形態において、図８に示されるように、コンピュータ・システム５００は、プロセッサ５０５、メモリ・コントローラ５１５に結合されたメモリ５１０、及び／又はローカルのＩ／Ｏコントローラ５３５を介して通信可能に結合された周辺機器などの出力デバイス５４０を含む。これらのデバイス５４０及び５４５は、例えば、プリンタ、スキャナ、マイクロフォン等を含むことができる。従来のキーボード５５０及びマウス５５５等の入力デバイスをＩ／Ｏコントローラ５３５に結合することができる。Ｉ／Ｏコントローラ５３５は、例えば、当技術分野で知られるように、１つ又は複数のバス又は他の有線若しくは無線接続とすることができる。Ｉ／Ｏコントローラ５３５は、簡潔にするために図示を省略しているが、通信を可能にするためのコントローラ、バッファ（キャッシュ）、ドライバ、中継局などの付加的な要素を有することができる。
【００３２】
Ｉ／Ｏデバイス５４０、５４５はさらに、例えば、入力及び出力の両方を通信するデバイス、例えば、ディスク及びテープ・ストレージ、ネットワーク・インターフェース・カード（ＮＩＣ）又は変調器／復調器（他のファイル、デバイス、システム、又はネットワークにアクセスするため）、無線周波数（ＲＦ）又は他の送受信機、電話インターフェース、ブリッジ、ルータ等を含むことができる。
【００３３】
プロセッサ５０５は、特にメモリ５１０内に格納された、ハードウェア命令又はソフトウェアを実行するためのハードウェア・デバイスである。プロセッサ５０５は、特注若しくは市販のプロセッサ、中央演算処理ユニット（ＣＰＵ）、コンピュータ・システム５００と関連付けられた幾つかのプロセッサのうちの補助プロセッサ、半導体ベースのマイクロプロセッサ（マイクロチップ又はチップセットの形態）、マクロプロセッサ、又は命令を実行するための他のデバイスとすることができる。プロセッサ５０５はキャッシュ５７０を含み、キャッシュ５７０は、これらに限定されるものではないが、実行可能命令のフェッチを高速化するための命令キャッシュ、データのフェッチ及びストアを高速化するためのデータ・キャッシュ、並びに実行可能命令及びデータの両方に対する仮想−物理アドレス変換を高速化するための変換ルックアサイド・バッファ（ＴＬＢ）を含むことができる。キャッシュ５７０は、より多くのキャッシュ・レベル（Ｌ１、Ｌ２等）からなる階層として編成することができる。
【００３４】
メモリ５１０は、揮発性メモリ要素（例えば、ＤＲＡＭ、ＳＲＡＭ、ＳＤＲＡＭ等のランダム・アクセス・メモリ（ＲＡＭ））及び不揮発性メモリ要素（例えば、ＲＯＭ、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ）、電気的に消去可能なプログラム可能読み出し専用メモリ（ＥＥＰＲＯＭ）、プログラム可能読み出し専用メモリ（ＰＲＯＭ）、テープ、コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、ディスク、ディスケット、カートリッジ、カセット等）のうちの１つ又は組み合わせを含むことができる。さらに、メモリ５１０は、電子、磁気、光学、又は他のタイプのストレージ媒体を組み込むことができる。メモリ５１０は分散型アーキテクチャであってもよく、その場合は、種々のコンポーネントは、互いから遠隔に位置するが、プロセッサ５０５によりアクセスされ得ることに留意されたい。
【００３５】
メモリ５１０内の命令は、１又は複数の別個のプログラムを含むことができ、その各々は、論理機能を実施するための実行可能命令の順序付けられたリストを含む。図８の例においては、メモリ５１０内の命令は、適切なオペレーティング・システム５１１を含むことができる。オペレーティング・システム５１１は、本質的に他のコンピュータ・プログラムの実行を制御することができ、スケジューリング、入力−出力制御、ファイル及びデータ管理、メモリ管理、並びに通信制御及び関連するサービスを提供する。
【００３６】
例えば、プロセッサ５０５に対する命令又は他の検索可能な情報を含む付加的なデータを、ストレージ５２０内に格納することができ、ストレージ５２０は、ハード・ディスク・ドライブ又はソリッド・ステート・ドライブのようなストレージ・デバイスとすることができる。メモリ５１０又はストレージ５２０内に格納された命令は、プロセッサが本開示のラック・システム１００及び方法４００の１つ又は複数の態様を実行するのを可能にする命令を含むことができる。
【００３７】
コンピュータ・システム５００はさらに、ディスプレイ５３０に結合されたディスプレイ・コントローラ５２５を含むことができる。幾つかの実施形態においては、コンピュータ・システム５００は、ネットワーク５６５に接続するためのネットワーク・インターフェース５６０を含むことができる。ネットワーク５６５は、広帯域接続を介してコンピュータ・システム５００と、外部のサーバ、クライアント等との間で通信を行うためのＩＰ方式のネットワークとすることができる。ネットワーク５６５は、コンピュータ・システム５００と外部システムの間でデータを送受信する。幾つかの実施形態では、ネットワーク５６５は、サービス・プロバイダによって運営される管理されたＩＰネットワークとすることができる。ネットワーク５６５は、例えば、ＷｉＦｉ、ＷｉＭａｘ等の無線プロトコル及び技術などを用いる、無線方式で実装することができる。ネットワーク５６５はまた、ローカル・エリア・ネットワーク、広域ネットワーク、メトロポロリタン・エリア・ネットワーク、インターネット、又は他の同様のタイプのネットワーク環境のようなパケット交換ネットワークとすることもできる。ネットワーク５６５は、固定無線ネットワーク、無線ローカル・エリア・ネットワーク（ＬＡＮ）、無線広域ネットワーク（ＷＡＮ）、パーソナル・エリア・ネットワーク（ＰＡＮ）、仮想パブリック・ネットワーク（ＶＰＮ）、イントラネット、又は他の適切なネットワーク・システムとすることができ、信号を送受信するための機器を含むことができる。
【００３８】
本開示によるラック・システム１００及び方法４００は、コンピュータ・プログラム製品又は図８に示されるようなコンピュータ・システム５００として、全体的に又は部分的に具体化することができる。
【００３９】
幾つかの実施形態の技術的効果及び利益は、一部又は全てのＯＳ機能を含まず、それらのＯＳ機能をスーパーノード１３０内に配置することによって、標準ノード１２０及び中間ノード１８０の複雑性を低減させることを含む。その結果、全てのＯＳ機能をローカルに保持する必要がなくなることにより、標準ノード１２０及び中間ノード１８０は、より効率的に実行することができ、一部のＯＳ機能のためのコードをあらゆるノード１２０に格納する必要がないので、ラック・システム１００にわたる空間を節約することができる。
【００４０】
本明細書で用いられる用語は、特定の実施形態を説明することのみを目的とし、本発明を限定することを意図したものではない。本明細書で用いられる場合、単数形「１つの（a）」、「１つの（an）」及び「その（the）」は、文脈が明確に他の場合を指示していない限り、複数形も含む。用語「含む（comprise）及び／又は「含んでいる（comprising）」は、本明細書で用いられる場合、記述された特徴、整数、ステップ、動作、要素、及び／又はコンポーネントの存在を指定するが、１つ又は複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、及び／又はその群の存在又は付加を除外するものではないことが、さらに理解されるであろう。
【００４１】
以下の特許請求の範囲における全てのミーンズ又はステップ・プラス・ファンクション要素の対応する構造、材料、動作及び均等物は、具体的に特許請求される他の請求される要素と組み合わせて機能を実行するための任意の構造、材料、又は動作を含むことが意図されている。本発明の説明は、例示及び説明の目的のために提示されたものにすぎず、網羅的であること又は本発明を開示した形態に限定することを意図したものではない。当業者には、本発明の範囲及び趣旨から逸脱することなく、多くの修正及び変形が明らかとなるであろう。本発明の原理及び実際の用途を最もよく説明するため、及び、当業者が、企図されている特定の用途に適するように種々の修正を伴う種々の実施形態に関して、本発明を理解することができるように、実施形態が選択され、説明された。
【００４２】
本発明は、システム、方法、及び／又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体（単数又は複数）を含むことができる。
【００４３】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの：すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、パンチカード若しくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波（例えば、光ファイバケーブルを通る光パルス）、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
【００４４】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び／又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び／又はエッジサーバを含むことができる。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体内に格納する。
【００４５】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、又は、「Ｃ」プログラミング言語若しくは類似のプログラミング言語などの通常の手続き型プログラミング言語を含む１つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある（例えば、インターネットサービスプロバイダを用いたインターネットを通じて）。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又はプログラム可能論理アレイ（ＰＬＡ）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて、電子回路を個人化することによりコンピュータ可読プログラム命令を実行し、本発明の態様を実施することができる。
【００４６】
本発明の態様は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【００４７】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実施するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実施する命令を含む製品を製造するようにすることもできる。
【００４８】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実行するためのプロセスを提供するようにすることもできる。
【００４９】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、及びブロック図及び／又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【００５０】
本発明の種々の実施形態の説明が例示の目的のために提示されたが、網羅的であること、又は開示された実施形態に制限することを意図するものではない。当業者には、説明される実施形態の範囲の趣旨及び範囲から逸脱することなく、多くの修正及び変形が明らかであろう。本明細書で用いられる用語は、実施形態の原理、実際の用途、又は市場に見られる技術に優る技術的改善を最もよく説明するため、又は、当業者が、本明細書に開示される実施形態を理解するのを可能にするために選択された。
【符号の説明】
【００５１】
１００：ラック・システム
１１０：サーバ
１２０：標準ノード
１３０：スーパーノード
１４０：接続マネージャ
１５０：ハードウェア
１６０：第１のクラス
１６５：第２のクラス
１７０：第３のクラス
１８０：中間ノード
３１０：アプリケーション・ノード
４００：方法
５００：コンピュータ・システム
【図１】
2019502990.tif 000003
【図２】
2019502990.tif 000004
【図３】
2019502990.tif 000005
【図４】
2019502990.tif 000006
【図５】
2019502990.tif 000007
【図６】
2019502990.tif 000008
【図７】
2019502990.tif 000009
【図８】
2019502990.tif 000010
【手続補正書】
【提出日】平成30年9月12日(2018.9.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ノードの代わりにオペレーティング・システム（ＯＳ）機能を実行するためのコンピュータ実施方法であって、
分散型ＯＳを含むラック・システムの複数のノードとスーパーノードとの間の機能呼び出しを管理することであって、前記ＯＳは、少なくとも第１のクラスのＯＳ機能及び第２のクラスのＯＳ機能に分けられる複数のＯＳ機能を含み、前記複数のノードの各々は前記第２のクラスにおけるＯＳ機能を含まない、管理すること、
を含み、前記機能呼び出しを管理することは、
コンピュータ・プロセッサにより、前記複数のノードの第１のノード上での第１のＯＳ機能に対する呼び出しを検知することと、
前記第１のＯＳ機能が前記第２のクラスのＯＳ機能に属すると判断することと、
前記第１のＯＳ機能が前記第２のクラスのＯＳ機能に属すると判断することに応答して、前記第１のＯＳ機能に対する前記呼び出しを前記スーパーノードに送ることであって、前記スーパーノードは前記第１のクラス及び前記第２のクラスにおける前記ＯＳ機能のためのコードを含む、送ることと、
を含む、方法。
【請求項２】
前記複数のノードの各々は、前記第１のクラスに属する１つ又は複数のＯＳ機能のためのローカル・コードを含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記複数のＯＳ機能はさらに、前記第１のクラス、前記第２のクラス、及び第３のクラスに分けられ、
前記複数のノードの各々は、前記第３のクラスにおけるＯＳ機能のためのコードを含まず、
少なくとも１つの中間ノードは、前記第１のクラス及び前記第２のクラスにおける前記ＯＳ機能のためのコードを含み、前記第３のクラスにおける前記ＯＳ機能のためのコードを含まず、
前記スーパーノードは全オペレーティング・システムを含む、
請求項１又は請求項２に記載のコンピュータ実施方法。
【請求項４】
前記複数のノードの各々にはオペレーティング・システムがない、請求項１〜請求項３の１項に記載のコンピュータ実施方法。
【請求項５】
前記スーパーノードは全オペレーティング・システムを含む、請求項１〜請求項４の１項に記載のコンピュータにより実施される方法。
【請求項６】
前記複数のＯＳ機能の各ＯＳ機能は、使用頻度に基づいて、前記第１のクラス及び前記第２のクラスに分類される、請求項１〜請求項５の１項に記載のコンピュータにより実施される方法。
【請求項７】
前記ラック・システムは、第２のスーパーノードをさらに含み、かつ、
前記スーパーノード及び前記第２のスーパーノードのどちらに前記第１のＯＳ機能に対する前記呼び出しを送るかを判断することをさらに含む、
請求項１〜請求項６の１項に記載のコンピュータにより実施される方法。
【請求項８】
前記第１のノードは、前記スーパーノードとは異なるサーバ上にある、請求項１〜請求項７の１項に記載のコンピュータにより実施される方法。
【請求項９】
ノードの代わりにオペレーティング・システム（ＯＳ）機能を実行するためのシステムであって、
コンピュータ可読命令を有するメモリと、
前記コンピュータ可読命令を実行するための１つ又は複数のプロセッサと、
を含み、前記コンピュータ可読命令は、
分散型ＯＳを含むラック・システムの複数のノードとスーパーノードとの間の機能呼び出しを管理することであって、前記ＯＳは、少なくとも第１のクラスのＯＳ機能及び第２のクラスのＯＳ機能に分けられる複数のＯＳ機能を含み、前記複数のノードの各々は前記第２のクラスにおけるＯＳ機能を含まない、管理すること、
を含み、前記機能呼び出しを管理することは、
前記複数のノードの第１のノード上での第１のＯＳ機能に対する呼び出しを検知することと、
前記第１のＯＳ機能が前記第２のクラスのＯＳ機能に属すると判断することと、
前記第１のＯＳ機能が前記第２のクラスのＯＳ機能に属すると判断することに応答して、前記第１のＯＳ機能に対する前記呼び出しを前記スーパーノードに送ることであって、前記スーパーノードは前記第１のクラス及び前記第２のクラスにおける前記ＯＳ機能のためのコードを含む、送ることと、
を含む、システム。
【請求項１０】
前記複数のノードの各々は、前記第１のクラスに属する１つ又は複数のＯＳ機能のためのローカル・コードを含む、請求項９に記載のシステム。
【請求項１１】
前記複数のＯＳ機能はさらに、前記第１のクラス、前記第２のクラス、及び第３のクラスに分けられ、
前記複数のノードの各々は、前記第３のクラスにおけるＯＳ機能のためのコードを含まず、
少なくとも１つの中間ノードは、前記第１のクラス及び前記第２のクラスにおける前記ＯＳ機能のためのコードを含み、前記第３のクラスにおける前記ＯＳ機能のためのコードを含まず、
前記スーパーノードは全オペレーティング・システムを含む、
請求項９又は請求項１０に記載のシステム。
【請求項１２】
前記複数のノードの各々にはオペレーティング・システムがない、請求項９〜請求項１１の１項に記載のシステム。
【請求項１３】
前記スーパーノードは、全オペレーティング・システムを含む、請求項９〜請求項１２の１項に記載のシステム。
【請求項１４】
前記複数のＯＳ機能の各ＯＳ機能は、使用頻度に基づいて、前記第１のクラス及び前記第２のクラスに分類される、請求項９〜請求項１３の１項に記載のシステム。
【請求項１５】
前記ラック・システムは、第２のスーパーノードをさらに含み、かつ、前記コンピュータ可読命令は、
前記スーパーノード及び前記第２のスーパーノードのどちらに前記第１のＯＳ機能に対する前記呼び出しを送るかを判断することをさらに含む、
請求項９〜請求項１４の１項に記載のシステム。
【請求項１６】
前記第１のノードは、前記スーパーノードとは異なるサーバ上にある、請求項９〜請求項１５の１項に記載のシステム。
【請求項１７】
ノードの代わりにオペレーティング・システム（ＯＳ）機能を実行するためのコンピュータ・プログラムであって、プロセッサにより実行可能であり、前記プロセッサに方法を実行させるためのプログラム命令を含み、前記方法は、
分散型ＯＳを含むラック・システムの複数のノードとスーパーノードとの間の機能呼び出しを管理することであって、前記ＯＳは、少なくとも第１のクラスのＯＳ機能及び第２のクラスのＯＳ機能に分けられる複数のＯＳ機能を含み、前記複数のノードの各々は前記第２のクラスにおけるＯＳ機能を含まない、管理すること、
を含み、前記機能呼び出しを管理することは、
前記複数のノードの第１のノード上での第１のＯＳ機能に対する呼び出しを検知することと、
前記第１のＯＳ機能が前記第２のクラスのＯＳ機能に属すると判断することと、
前記第１のＯＳ機能が前記第２のクラスのＯＳ機能に属すると判断することに応答して、前記第１のＯＳ機能に対する前記呼び出しを前記スーパーノードに送ることであって、前記スーパーノードは前記第１のクラス及び前記第２のクラスにおける前記ＯＳ機能のためのコードを含む、送ることと、
を含む、コンピュータ・プログラム。
【請求項１８】
前記複数のノードの各々は、前記第１のクラスに属する１つ又は複数のＯＳ機能のためのローカル・コードを含む、請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
前記複数のＯＳ機能はさらに、前記第１のクラス、前記第２のクラス、及び第３のクラスに分けられ、
前記複数のノードの各々は、前記第３のクラスにおけるＯＳ機能のためのコードを含まず、
少なくとも１つの中間ノードは、前記第１のクラス及び前記第２のクラスにおける前記ＯＳ機能のためのコードを含み、前記第３のクラスにおける前記ＯＳ機能のためのコードを含まず、
前記スーパーノードは全オペレーティング・システムを含む、請求項１７又は請求項１８に記載のコンピュータ・プログラム。
【請求項２０】
前記複数のノードの各々にはオペレーティング・システムがない、請求項１７〜請求項１９の１項に記載のコンピュータ・プログラム。
【請求項２１】
前記スーパーノードは、全オペレーティング・システムを含む、請求項１７〜請求項２０の１項に記載のコンピュータ・プログラム。
【請求項２２】
前記複数のＯＳ機能の各ＯＳ機能は、使用頻度に基づいて、前記第１のクラス及び前記第２のクラスに分類される、請求項１７〜請求項２１の１項に記載のコンピュータ・プログラム。
【請求項２３】
前記ラック・システムは、第２のスーパーノードをさらに含み、かつ、前記方法は、
前記スーパーノード及び前記第２のスーパーノードのどちらに前記第１のＯＳ機能に対する前記呼び出しを送るかを判断することをさらに含む、
請求項１７〜請求項２２の１項に記載のコンピュータ・プログラム。
【請求項２４】
前記第１のノードは、前記スーパーノードとは異なるサーバ上にある、請求項１７〜請求項２３の１項に記載のコンピュータ・プログラム。
【請求項２５】
請求項１７〜請求項２４の１項に記載の前記コンピュータ・プログラムを、コンピュータ可読ストレージ媒体に記録した、コンピュータ可読ストレージ媒体。
【国際調査報告】
2019502990.tif 000011
2019502990.tif 000012