(57)【特許請求の範囲】
【請求項１】
計算タスクのネイティブ実行を行うためのシステムであり、
複数のコンピューティングノードクラスタと、
前記複数のコンピューティングノードクラスタを接続するデータ通信ネットワークと、
ユーザノードから要求された前記計算タスクのネイティブ実行への割り当てのため一のコンピューティングノードクラスタを他のコンピューティングノードクラスタから通信面で、または物理的に分離すべく、前記データ通信ネットワークをセグメント化する、または、前記データ通信ネットワークがセグメント化されるようにする、前記データ通信ネットワークに接続された制御ノードと
前記データ通信ネットワークと前記制御ノードとに接続された制御ネットワークと
を備え、
前記データ通信ネットワークは、第１の複数のネットワークデバイスを有し、
前記制御ノードは、前記計算タスクを実行するためのコンピューティングリソースを要求する前記ユーザノードから受信するリクエストに応答して、前記制御ネットワークを介して、前記第１の複数のネットワークデバイスのうち、前記一のコンピューティングノードクラスタと前記他のコンピューティングノードクラスタとの間に配置されたネットワークデバイスがデータトラフィックをブロックすることにより、割り当てられる前記一のコンピューティングノードクラスタを通信面で、または物理的に分離すべく、前記データ通信ネットワークをセグメント化する、または、前記データ通信ネットワークがセグメント化されるようにし、
前記一のコンピューティングノードクラスタは割り当て可能であり、前記リクエストに対応するコンピューティングリソースを有する、
を備えるシステム。
【請求項２】
前記ネットワークデバイスは、前記第１の複数のネットワークデバイスのうち、前記一のコンピューティングノードクラスタに接続されたネットワークデバイスと、前記他のコンピューティングノードクラスタに接続されたネットワークデバイスとの間に配置されている、請求項１に記載のシステム。
【請求項３】
前記リクエストは、クラスタまたはコンピューティングノードの数の指定と、プロセッサの計算能力の指定と、システムメモリ容量の指定と、永久的記憶装置の容量の指定と、入出力容量の指定と、１以上のオペレーティングシステムの指定と、前記計算タスクと関連付けられた１以上のプログラムの指定と、前記計算タスクと関連付けられた１以上のデータソースまたはデータシンクの指定と、前記計算タスクの予期される実行期間の指定とのうち少なくとも１つを含む、請求項１または２に記載のシステム。
【請求項４】
前記制御ノードはさらに、割り当てられた前記一のコンピューティングノードクラスタのコンピューティングノードへ、複数のオペレーティングシステムのそれぞれをプロビジョニングし、または前記複数のオペレーティングシステムのそれぞれがプロビジョニングされるようにし、プロビジョニングされる前記コンピューティングノード上でのネイティブ実行のため、前記プロビジョニングされるコンピューティングノードへ前記計算タスクと関連付けられたデータをロードする、または前記計算タスクと関連付けられた前記データがロードされるようにする、若しくは、前記計算タスクと関連付けられた１以上のプログラムを起動させる、または前記１以上のプログラムが起動されるようにする、請求項１から請求項３のいずれか１つに記載のシステム。
【請求項５】
前記計算タスクの前記ネイティブ実行の完了後、前記制御ノードはさらに、割り当てられた前記一のコンピューティングノードクラスタ内の、前記計算タスクと関連付けられた全てのデータを消去する、または前記計算タスクと関連付けられた前記全てのデータが消去されるようにする、請求項１から請求項４のいずれか１つに記載のシステム。
【請求項６】
前記データ通信ネットワークはさらに、前記複数のコンピューティングノードクラスタをインターネットに接続する、請求項１から請求項５のいずれか１つに記載のシステム。
【請求項７】
前記制御ネットワークは、第２の複数のネットワークデバイスを有し、
前記第１の複数のネットワークデバイスおよび前記第２の複数のネットワークデバイスは互いに異なるネットワークデバイスである、請求項１から６のいずれか１項に記載のシステム。
【請求項８】
前記データ通信ネットワークは、複数のネットワークデバイスを通る第１の複数のネットワークパスを有し、
前記制御ネットワークは、前記複数のネットワークデバイスを通る第２の複数のネットワークパスを有し、
前記第１の複数のネットワークパスおよび第２の複数のネットワークパスは、互いに異なるネットワークパスである、または同じネットワークパス上の互いに異なるプロトコルである、請求項１から６のいずれか１項に記載のシステム。
【請求項９】
計算タスクのネイティブ実行を行うための方法であり、
前記計算タスクのネイティブ実行のためにクラウドコンピューティングノードを割り当てるよう要求するリクエストをユーザノードから制御ノードにより受信する段階と、
データ通信ネットワークを介して他のコンピューティングノードクラスタに接続された少なくとも１つのコンピューティングノードクラスタが割り当て可能であり、前記リクエストに対応するコンピューティングリソースを有することを前記制御ノードにより判断する段階と、
前記少なくとも１つのコンピューティングノードクラスタを他のコンピューティングノードクラスタから通信面で、または物理的に分離すべく、前記制御ノードにより前記データ通信ネットワークをセグメント化する、または、前記データ通信ネットワークがセグメント化されるようにする段階と、
分離された前記少なくとも１つのコンピューティングノードクラスタを前記計算タスクのネイティブ実行に、前記制御ノードにより割り当てる段階と
を備え、
前記受信する段階は、前記データ通信ネットワークと前記制御ノードとに接続された制御ネットワークを介して前記リクエストを受信する段階を有し、
前記データ通信ネットワークをセグメント化する、または、前記データ通信ネットワークがセグメント化されるようにする段階は、前記リクエストに応答して、前記制御ネットワークを介して、前記データ通信ネットワークが有する第１の複数のネットワークデバイスのうち、前記少なくとも１つのコンピューティングノードクラスタと前記他のコンピューティングノードクラスタとの間に配置されたネットワークデバイスがデータトラフィックをブロックすることにより、割り当てられる前記少なくとも１つのコンピューティングノードクラスタを通信面で、または物理的に分離すべく、前記データ通信ネットワークをセグメント化する、または、前記データ通信ネットワークがセグメント化されるようにする段階を含み、
前記少なくとも１つのコンピューティングノードクラスタは割り当て可能であり、前記リクエストに対応するコンピューティングリソースを有する、方法。
【請求項１０】
前記ネットワークデバイスは、前記第１の複数のネットワークデバイスのうち、前記少なくとも１つのコンピューティングノードクラスタに接続されたネットワークデバイスと、前記他のコンピューティングノードクラスタに接続されたネットワークデバイスとの間に配置されている、請求項９に記載の方法。
【請求項１１】
前記リクエストを受信する段階は、クラスタまたはコンピューティングノードの数の指定と、プロセッサの計算能力の指定と、システムメモリ容量の指定と、永久的記憶装置の容量の指定と、入出力容量の指定と、１以上のオペレーティングシステムの指定と、前記計算タスクと関連付けられた１以上のプログラムの指定と、前記計算タスクと関連付けられた１以上のデータソースまたはデータシンクの指定と、前記計算タスクの予期される実行期間の指定とのうち少なくとも１つを含む前記リクエストを受信する段階を有する、請求項９または請求項１０に記載の方法。
【請求項１２】
前記データ通信ネットワークをセグメント化する、または、前記データ通信ネットワークがセグメント化されるようにする段階は、前記データ通信ネットワークの１以上のネットワークデバイス、前記データ通信ネットワークの前記１以上のネットワークデバイスを通る１以上のパス、または、前記データ通信ネットワークの前記１以上のネットワークデバイスを通る前記１以上のパスの１以上のプロトコルを、前記制御ネットワークを介して構成する段階を有する、請求項９から請求項１１のいずれか１つに記載の方法。
【請求項１３】
前記制御ノードにより、割り当てられた前記少なくとも１つのコンピューティングノードクラスタのコンピューティングノードへ、複数のオペレーティングシステムのそれぞれをプロビジョニングし、または前記複数のオペレーティングシステムのそれぞれがプロビジョニングされる段階と、プロビジョニングされる前記コンピューティングノード上でのネイティブ実行のため、前記プロビジョニングされるコンピューティングノードへ前記計算タスクと関連付けられたデータをロードする、または前記計算タスクと関連付けられた前記データがロードされるようにする段階、若しくは、前記計算タスクと関連付けられた１以上のプログラムを起動させる、または前記１以上のプログラムが起動されるようにする段階とをさらに備える、請求項９から請求項１２のいずれか１つに記載の方法。
【請求項１４】
前記計算タスクの前記ネイティブ実行の完了後、前記制御ノードにより、割り当てられた前記少なくとも１つのコンピューティングノードクラスタ内の、前記計算タスクと関連付けられた全てのデータを消去する、または前記計算タスクと関連付けられた前記全てのデータが消去されるようにする、請求項９から１３のいずれか１項に記載の方法。
【請求項１５】
計算タスクのネイティブ実行を行うための装置であり、
プロセッサと、
前記計算タスクのネイティブ実行にクラウドコンピューティングリソースを割り当てるよう要求するリクエストをユーザノードから受信する、前記プロセッサにより操作されるユーザインタフェースと、
前記ユーザインタフェースに操作可能に接続されたスケジューラであり、データ通信ネットワークを介して他のコンピューティングノードクラスタに接続された一のコンピューティングノードクラスタが割り当て可能であるか、および、前記リクエストに対応するコンピューティングリソースを有するかを判断し、前記一のコンピューティングノードクラスタが前記リクエストに対応するコンピューティングリソースを有し、割り当て可能であるとの判断に応答して、前記一のコンピューティングノードクラスタを前記計算タスクのネイティブ実行に割り当てる前記スケジューラと、
前記スケジューラに操作可能に接続されたネットワーク／クラスタインタフェースであり、前記一のコンピューティングノードクラスタを前記計算タスクのネイティブ実行に割り当てたことに応答して、前記一のコンピューティングノードクラスタを他のコンピューティングノードクラスタから通信面で、または物理的に分離すべく、前記データ通信ネットワークをセグメント化する、または、前記データ通信ネットワークがセグメント化されるようにする前記ネットワーク／クラスタインタフェースと
を備え、
前記ネットワーク／クラスタインタフェースは、前記リクエストに応答して、前記データ通信ネットワークと前記装置とに接続された制御ネットワークを介して、前記データ通信ネットワークが有する第１の複数のネットワークデバイスのうち、前記一のコンピューティングノードクラスタと前記他のコンピューティングノードクラスタとの間に配置されたネットワークデバイスがデータトラフィックをブロックすることにより、割り当てられる前記一のコンピューティングノードクラスタを通信面で、または物理的に分離すべく、前記データ通信ネットワークをセグメント化する、または、前記データ通信ネットワークがセグメント化されるようにする段階を含み、
前記一のコンピューティングノードクラスタは割り当て可能であり、前記リクエストに対応するコンピューティングリソースを有する、装置。
【請求項１６】
前記リクエストは、プロセッサの計算能力の指定と、システムメモリ容量の指定、永久的記憶装置の容量の指定、入出力容量の指定、１以上のオペレーティングシステムの指定、前記計算タスクと関連付けられた１以上のプログラムの指定、または、前記計算タスクと関連付けられた１以上のデータソースまたはデータシンクの指定を含む、請求項１５に記載の装置。
【請求項１７】
前記スケジューラは、前記データ通信ネットワークの１以上のネットワークデバイスを通る１以上のパス、または、前記データ通信ネットワークの前記１以上のネットワークデバイスを通る前記１以上のパス上の１以上のプロトコルをセグメント化し、前記データ通信ネットワークをセグメント化する、請求項１５または請求項１６に記載の装置。
【請求項１８】
前記スケジューラはさらに、割り当てられた前記一のコンピューティングノードクラスタのコンピューティングノードへ、複数のオペレーティングシステムのそれぞれをプロビジョニングし、または前記複数のオペレーティングシステムのそれぞれがプロビジョニングされるようにし、プロビジョニングされる前記コンピューティングノード上でのネイティブ実行のため、前記プロビジョニングされるコンピューティングノードへ前記計算タスクと関連付けられたデータをロードする、または前記計算タスクと関連付けられた前記データがロードされるようにする、若しくは、前記計算タスクと関連付けられた１以上のプログラムを起動させる、または前記１以上のプログラムが起動されるようにする、請求項１５から請求項１７のいずれか１つに記載の装置。
【請求項１９】
前記スケジューラはさらに、前記計算タスクの前記ネイティブ実行の完了後、割り当てられた前記一のコンピューティングノードクラスタ内の、前記計算タスクと関連付けられた全てのデータを消去する、または前記計算タスクと関連付けられた前記全てのデータが消去されるようにする、請求項１５から１８のいずれか１項に記載の装置。
【請求項２０】
前記ネットワークデバイスは、前記第１の複数のネットワークデバイスのうち、前記一のコンピューティングノードクラスタに接続されたネットワークデバイスと、前記他のコンピューティングノードクラスタに接続されたネットワークデバイスとの間に配置されている、請求項１５から１９のいずれか１項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態はデータ処理の分野に関し、特に、ネイティブクラウドコンピューティングに関するシステム、方法、および記憶媒体に関する。
【背景技術】
【０００２】
本明細書において他のことが示されていない限り、このセクションに説明される事項は、本明細書の請求項の先行技術ではなく、このセクションに含まれるからと言って先行技術として認められるわけではない。
【０００３】
集積回路、コンピューティング技術およびネットワーク技術の進歩と共に、クラウドコンピューティングが広く用いられるようになってきた。近年、クラウドコンピューティングは高性能コンピューティングのために、つまり、科学計算などの計算集約型アプリケーションのために採用されてきている。現在、セキュリティ面での理由により、つまり、異なる複数のユーザアプリケーションを分け隔てるべく、典型的にクラウドコンピューティングは、異なる複数のユーザアプリケーションのそれぞれのために、各コンピューティングノード上で多数の仮想マシンのインスタンスを作成し、それら仮想マシンを動作させている。結果として、ネイティブコンピューティングよりも性能は１０〜１００倍遅くなり得る。
【図面の簡単な説明】
【０００４】
本開示の実施形態を限定的ではなく例示的な実施形態を用い、添付の図面を参照して示す。図面において、同様の参照符号は同様の要素を指す。これら図面は全て、本開示の実施形態に従って順序付けられている。
【図１】ネイティブクラウドコンピューティング構成の概要を示す。
【図２】ネイティブコンピューティングクラウドを形成するべくデータ通信ネットワークをセグメント化する例を示す。
【図３】ネイティブクラウドコンピューティングに関する方法を示す。
【図４】ネイティブクラウドコンピューティングを可能とする非一時的コンピュータ記憶媒体を示す。
【図５】ネイティブクラウドコンピューティング構成のコンピューティングノードまたは制御ノードとして用いるのに適した例示的なコンピュータシステムを示す。
【発明を実施するための形態】
【０００５】
システム、方法、および記憶媒体の実施形態は、ネイティブクラウドコンピューティングに関する。様々な実施形態において、システムは、多数のコンピューティングノードクラスタと、多数のコンピューティングノードクラスタを接続するデータ通信ネットワークとを含み得る。システムはさらに、計算タスクのネイティブ実行に割り当てるため一のコンピューティングノードクラスタを他のコンピューティングノードクラスタから少なくとも通信面で分離すべく、データ通信ネットワークをセグメント化する、または、データ通信ネットワークがセグメント化されるようにする制御ノードを含み得る。システムはさらに、データ通信ネットワークと制御ノードとに接続された制御ネットワークを含み得る。
【０００６】
様々な実施形態において、制御ノードは、計算タスクを実行するためのコンピューティングリソースを要求する、制御ネットワークを介してユーザノードから受信するリクエストに応答して、割り当てられる一のコンピューティングノードクラスタを少なくとも通信面で分離すべく、データ通信ネットワークをセグメント化する、または、データ通信ネットワークがセグメント化されるようにしてよい。一のコンピューティングノードクラスタは割り当て可能であり、リクエストに対応するのに実質的に十分なコンピューティングリソースを有する。リクエストは、クラスタおよび／またはコンピューティングノードの数の指定と、プロセッサの計算能力の指定と、システムメモリ容量の指定と、永久的記憶装置の容量の指定と、入出力容量の指定と、１以上のオペレーティングシステムの指定と、計算タスクと関連付けられた１以上のプログラムの指定と、計算タスクと関連付けられた１以上のデータソースまたはデータシンクの指定と、計算タスクの予期される実行期間の指定とのうち少なくとも１つを含み得る。
【０００７】
様々な実施形態において、制御ノードはさらに、割り当てられた一のコンピューティングノードクラスタのコンピューティングノードへ、複数のオペレーティングシステムのそれぞれをプロビジョニングし、または複数のオペレーティングシステムのそれぞれがプロビジョニングされるようにし、プロビジョニングされるコンピューティングノード上でのネイティブ実行のため、プロビジョニングされるコンピューティングノードへ計算タスクと関連付けられたデータをロードする、または計算タスクと関連付けられたデータがロードされるようにする、並びに／若しくは、計算タスクと関連付けられた１以上のプログラムを起動させる、または１以上のプログラムが起動されるようにする。計算タスクのネイティブ実行の完了後、制御ノードはさらに、割り当てられた一のコンピューティングノードクラスタ内の、計算タスクと関連付けられた全てのデータを消去する、または計算タスクと関連付けられた全てのデータが消去されるようにする。
【０００８】
様々な実施形態において、データ通信ネットワークはさらに、複数のコンピューティングノードクラスタをインターネットに接続する。データ通信ネットワークは、第１グループの複数のネットワークデバイスを有し、制御ネットワークは、第２グループの複数のネットワークデバイスを有し、第１グループの複数のネットワークデバイスおよび第２グループの複数のネットワークデバイスは互いに異なる複数のネットワークデバイスである。他の実施形態において、データ通信ネットワークは、多数のネットワークデバイスを通る第１グループの複数のネットワークパスを有し、制御ネットワークは、同じ複数のネットワークデバイスのうち少なくともいくつかを通る第２グループの複数のネットワークパスを有し、第１グループの複数のネットワークパスおよび第２グループの複数のネットワークパスは、互いに異なるネットワークパスである、または同じネットワークパス上の互いに異なるプロトコルである。
【０００９】
様々な実施形態において、方法は、計算タスクの実行にクラウドコンピューティングノードを割り当てるよう要求するリクエストをユーザノードから制御ノードにより受信する段階と、一のコンピューティングノードクラスタが割り当て可能であり、リクエストに対応するのに実質的に十分なコンピューティングリソースを有することを制御ノードにより判断する段階とを含み得る。一のコンピューティングノードクラスタは、データ通信ネットワークを介して他のコンピューティングノードクラスタに接続されている。方法はさらに、一のコンピューティングノードクラスタを他のコンピューティングノードクラスタから少なくとも通信面で分離すべく、制御ノードによりデータ通信ネットワークをセグメント化する、または、データ通信ネットワークがセグメント化されるようにする段階と、分離された一のコンピューティングノードクラスタを計算タスクのネイティブ実行に、制御ノードにより割り当てる段階を含み得る。
【００１０】
様々な実施形態において、非一時的コンピュータ可読記憶媒体は、格納されたプログラミング命令のサーバによる実行に応答して、上述した方法を実行するようサーバをプログラムするプログラミング命令を含み得る。
【００１１】
例示的な実施形態の様々な態様の内容を当業者に伝えるべく、当業者により一般的に用いられる用語を用いてそれら様々な態様を説明する。しかし、それら説明される態様のいくつかのみを用いて、代替的な実施形態を実施し得ることが当業者には理解されよう。説明を目的とし、例示的な実施形態を深く理解いただけるように特定の数、材料、および構成を明記する。しかし、それら特定の詳細を用いることなく代替的な実施形態を実施し得ることが当業者には理解されよう。他の場合においては、例示的な実施形態を曖昧にすることを避けるべく、周知の特徴は省略する、または単純化される。
【００１２】
さらに、例示的な実施形態を理解するのに最も有用なやり方で、複数の別個の様々な動作が順序的に実行されるものとして説明される。しかし、説明の順序はこれらの動作が必ずしも順序に依存するものとして捉えられるべきではない。特に、これらの動作は説明の順序で実行される必要はない。
【００１３】
本明細書では「ネイティブ実行」という用語を用いる。この用語がタスクの実行に関して用いられた場合、コンピューティングノードでインスタンスが作成された多数の仮想マシンのうちの１つにおけるタスクの実行ではなく、コンピューティングノード上でのタスクの直接的な実行を指す。本明細書では、「セグメント」、「セグメント化」、およびその他の同様の用語を用いる。これらの用語がコンピューティングリソースのクラスタを接続するデータ通信ネットワークのセグメント化に関して用いられた場合、１以上のコンピューティングノードクラスタが他のコンピューティングノードと少なくとも通信面で分離され、当該少なくとも通信面で分離されたコンピューティングノードクラスタをタスクのネイティブ実行に割り当て可能とするようなやり方で、データ通信ネットワークを構成することを指す。実施形態において、通信面で分離されることに加え、分離されたコンピューティングノードクラスタは、他のコンピューティングノードクラスタと物理的に分離、つまり分け隔てられてもよい。
【００１４】
「一実施形態」というフレーズが繰り返し用いられる。当該フレーズは一般的に、同一の実施形態を指さないが、場合によっては同一の実施形態を指し得る。「備える」、「有する」、「含む」という用語は、文脈上他のことが示されていない限り同義語として用いられる。「Ａ／Ｂ」というフレーズは「ＡまたはＢ」であることを意味する。「Ａおよび／またはＢ」というフレーズは、「（Ａ）、（Ｂ）、または（ＡおよびＢ）」であることを意味する。「Ａ、Ｂ、およびＣのうち少なくとも１つ」というフレーズは、「（Ａ）、（Ｂ）、（Ｃ）、（ＡおよびＢ）、（ＡおよびＣ），（ＢおよびＣ）、または（Ａ、ＢおよびＣ）」であることを意味する。「（Ａ）Ｂ」というフレーズは、「（Ｂ）または（ＡＢ）であることを意味し、Ａは任意選択的に用いられることを意味する。
【００１５】
図１は、ネイティブクラウドコンピューティング構成の概要を示す。示されるように、ネイティブクラウドコンピューティング構成１００は、様々なコンピューティングノードクラスタ１０２と、コンピューティングノードクラスタ１０２を互いに、およびインターネット１０５に接続するデータ通信ネットワーク１０４とを含み得る。ネイティブクラウドコンピューティング構成１００はさらに、データ通信ネットワーク１０４と、制御ノード１０８と、ユーザノード１１０とに接続された制御ネットワーク１０６を含み得る。ユーザノード１１０は、インターネット１０５を介し、制御ネットワーク１０６とデータ通信ネットワーク１０４とに接続され得る。より詳細に以下に説明するように、タスクを実行するためのクラウドコンピューティングリソースを要求するユーザノード１１０からのリクエストに応答し、制御ノード１０８は、当該タスクのネイティブ実行に割り当てるため一のコンピューティングノードクラスタ１０２を少なくとも通信面で分離するべくデータ通信ネットワーク１０４をセグメント化し得る。
【００１６】
様々なコンピューティングノードクラスタ１０２に含まれる各コンピューティングノードは、１以上のＣＰＵ、ローカルなランダムアクセスメモリ、および、ハードディスクドライブなどの入出力（Ｉ／Ｏ）部材を有し得る。コンピューティングノードは、テキサス州オースティンのＤｅｌｌ  Ｃｏｍｐｕｔｅｒ、または、パロアルトのＨｅｗｌｅｔｔ  Ｐａｃｋａｒｄから販売されるコンピューティングサーバなど当技術分野で公知の何らかのコンピューティングシステムであってよい。様々な実施形態において、コンピューティングサーバは複数のブレードサーバにより構成され得る。ブレードサーバは、カリフォルニア州サンタクララのＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎにより販売されるマルチコアプロセッサなどのマルチコアプロセッサにより構成され得る。またブレードサーバは、システムメモリ、大容量記憶装置、および／または様々なタイプの１以上のネットワークカード／インタフェースも含み得る。コンピューティングノード１０２の例は図５を参照し以下により詳細に説明する。コンピューティングノード１０２の数、コンピューティングノードの計算能力、および採用されるネットワークタイプは、同時にサポートされるべき計算集約型タスクの数、計算の集約度、これらのタスクのデータ通信特徴に応じて実装毎に異なり得る。
【００１７】
データ通信ネットワーク１０４は、１０Ｇ  Ｅｔｈｅｒｎｅｔ（登録商標）またはＩｎｆｉｎｉＢａｎｄ（登録商標）などコンピューティングノードクラスタ１０２間のデータ通信を促す何らかの高速ネットワークであってよい。本開示の教示には含まれないがデータ通信ネットワーク１０４は、カリフォルニア州サンノゼのＣｉｓｃｏ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．、カリフォルニア州サンノゼのＭｅＨａｎｏｘまたはカリフォルニア州サンノゼのＮｅｔｇｅａｒ，Ｉｎｃ．により販売される高速ルータ、スイッチ、およびゲートウェイなど当技術分野で公知の高速ルータ、スイッチ、および／またはゲートウェイなど何らかの高速ネットワークデバイスを備え得る。データ通信ネットワーク１０４は有線、無線、またはこれら両方であってよい。様々な実施形態において、データ通信ネットワーク１０４のルータ、スイッチ、および／またはゲートウェイは、複数のコンピューティングノードを異なるサイズの複数のグループに選択的に少なくとも通信面で分離するようデータ通信ネットワーク１０４がセグメント化され得るようなやり方で配置され得る。
【００１８】
図２は、１６のコンピューティングノードクラスタ１０２ａａ〜１０２ｄｄを含む様々な実施形態を示す。これらの実施形態において、データ通信ネットワーク１０４のルータなどは、切り替え点Ｓ２でデータトラフィックを「ブロック」するなど（以下により詳細に説明する）により、１６のコンピューティングノードクラスタ１０２ａａ〜１０２ｄｄが８のコンピューティングノードクラスタからそれぞれ成る２つのグループにセグメント化され得るようなやり方で配置され得る。８つのコンピューティングノードクラスタから成る第１グループは、コンピューティングノードクラスタ１０２ａａ〜１０２ａｂ、１０２ｂａ〜１０２ｂｂ、１０２ｃａ〜１０２ｃｂ、１０２ｄａ〜１０２ｄｂを含む。８つのコンピューティングノードクラスタから成る第２グループは、コンピューティングノード１０２ａｃ〜１０２ａｄ、１０２ｂｃ〜１０２ｂｄ、１０２ｃｃ〜１０２ｃｄ、１０２ｄｃ〜１０２ｄｄを含む。複数のコンピューティングノードクラスタから成るこれらグループのそれぞれは、複数のコンピューティングノードクラスタから成る他のグループから少なくとも通信面で分離され保護されている。
【００１９】
続けて図２を参照すると、８つのコンピューティングノードクラスタから成る第２グループはさらに、切り替え点Ｓ３でデータトラフィックを「ブロック」するなどにより、４つのコンピューティングノードクラスタからそれぞれ成るより２つのより小さなグループにセグメント化され得る。４つのコンピューティングノードクラスタからそれぞれ成るこれら２つの新たなグループのうち第１グループは、コンピューティングノードクラスタ１０２ａｃ〜１０２ａｄ、１０２ｂｃ〜１０２ｂｄを含み、４つのコンピューティングノードクラスタから成る新たな第２グループは、コンピューティングノードクラスタ１０２ｃｃ〜１０２ｃｄ、１０２ｄｃ〜１０２ｄｄを含む。同様に、複数のコンピューティングノードクラスタから成るこれら新たなグループのそれぞれは、複数のコンピューティングノードクラスタから成る他のグループから少なくとも通信面で分離され保護されている。
【００２０】
先述した例は例示を目的としており、本開示を限定するものではない。異なる数のコンピューティングノードクラスタ１０２、および、他のセグメント化構成が制限されず実装可能である。特に、複数の実施形態においてデータ通信ネットワーク１０４は、一のコンピューティングノードクラスタ１０２を他のコンピューティングノードクラスタから少なくとも通信面で分離するべくセグメント化され得ることが考えられ得る。さらに、分離されたコンピューティングノードクラスタ１０２はインターネットに接続されたままであってよく、他のコンピューティングノードクラスタ１０２は、他のクラウドコンピューティングリクエストにサービスするべく割り当て可能なままであってよい。
【００２１】
再び図１を参照すると、前述したようにネイティブクラウドコンピューティング構成１００は制御ネットワーク１０６を含み得る。データ通信ネットワーク１０４とは異なり、制御ネットワーク１０６は帯域幅が制限されたネットワークであり得る。本開示の教示には含まれないが制御ネットワーク１０６は、カリフォルニア州サンノゼのＣｉｓｃｏ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．またはカリフォルニア州サンノゼのＮｅｔｇｅａｒ，Ｉｎｃ．により販売されるローレンジ〜ミッドレンジのルータ、スイッチ、およびゲートウェイなどの当技術分野で公知のローレンジ〜ミッドレンジ性能のルータ、スイッチ、および／またはゲートウェイなどのローレンジ〜ミッドレンジ性能の何らかのネットワークデバイスを備え得る。同様に制御ネットワーク１０６は、有線、無線、またはこれら両方であってよい。
【００２２】
様々な実施形態において、データ通信ネットワーク１０４および制御ネットワーク１０６は、互いに異なる複数のネットワークデバイスから成るグループを含み得る。いくつかの実施形態において、データ通信ネットワーク１０４および制御ネットワーク１０６の少なくとも一部は、共通のネットワークデバイス上でルーティングされる複数のネットワークパスから成る分け隔てられた複数の異なるグループ、または、共通の同一のネットワークパス上の互いに異なるプロトコルである。
【００２３】
前述したように、ネイティブクラウドコンピューティング構成１００は制御ノード１０８を含み得る。制御ノード１０８は、本明細書で説明する制御機能を実行する制御ロジック／要素を含み得る。様々な実施形態において、制御ロジック／要素は、計算タスクを実行するためのクラウドコンピューティングリソースを要求するリクエストをユーザノード１１０から受信するユーザインタフェース１２２と、ユーザインタフェース１２２に操作可能に接続されたスケジューラ１２４とを含み得る。スケジューラ１２４は、１以上のコンピューティングノードクラスタ１０２が利用可能であり、計算タスクのネイティブ実行への割り当てを要求するリクエストに実質的に対応可能な十分なコンピューティングリソースを含むかを判断する。スケジューラ１２４はさらに、クラスタ１０２が利用可能であり十分なリソースを有するとの判断に応答して、クラスタ１０２を割り当ててもよい。制御ロジック／要素はさらに、割り当てられたクラスタ１０２を分離すべくデータ通信ネットワーク１０４をセグメント化する、スケジューラ１２４に操作可能に接続されたネットワーク／クラスタインタフェース１２６を含み得る。ユーザインタフェース１２２、スケジューラ１２４、およびネットワーク／クラスタインタフェース１２６は、ハードウェア、ソフトウェア、またはこれらの組み合わせにより実装され得る。様々な実施形態において、ユーザインタフェース１２２、スケジューラ１２４、および／またはネットワーク／クラスタインタフェース１２６は組み合わせられ、例えば共に制御器を形成してもよい。
【００２４】
同様に、前述したように、ネイティブクラウドコンピューティング構成１００はユーザノード１１０を含み得る。ユーザノード１１０は、例えば制御ノード１０８により提供されるウェブページ（図示せず）にアクセスすることにより、計算タスクを実行するためのクラウドコンピューティングリソースを要求するリクエストをユーザノード１１０が発せられるようにするブラウザ１３２を含み得る。ブラウザ１３２はさらに、応答して、コンピューティングノードクラスタ１０２の割り当て通知をユーザノード１１０が受信出来るようにしてもよい。ここで、割り当てられたコンピューティングノードクラスタ１０２は、データ通信ネットワーク１０４がセグメント化されることにより、他のコンピューティングノードクラスタ１０２から分離させられる。代替的な実施形態において、ブラウザ１３２には、ユーザノード１１０がリクエストを発せられる、および／または割り当て通知を受信出来るようにするプラグイン（図示せず）が設けられてもよい。さらに他の実施形態において、ブラウザ１３２の代わりに、ユーザノード１１０には制御ノード１０８と同様の機能性を実現するエージェント（図示せず）が設けられてもよい。
【００２５】
コンピューティングノードクラスタ１０２と同様に、本開示の教示には含まれないが、制御ノード１０８および／またはユーザノード１１０は、テキサス州オースティンのＤｅｌｌ  ＣｏｍｐｕｔｅｒまたはパロアルトのＨｅｗｌｅｔｔ  Ｐａｃｋａｒｄにより販売されるデスクトップ、ラップトップ、またはタブレットコンピュータなどの当技術分野で公知の何らかのコンピューティングシステムであってもよい。様々な実施形態において、コンピューティングサーバはブレードサーバにより構成され得る。制御ノード１０８および／またはユーザノード１１０は、カリフォルニア州サンタクララのＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎにより販売されるマルチコアプロセッサなどマルチコアプロセッサにより構成され得る。制御ノード１０８および／またはユーザノード１１０は、様々なタイプのシステムメモリ、大容量記憶装置、および／または１以上のネットワークカード／インタフェースも含み得る。制御ノード１０８およびユーザノード１１０は、同様の、または異種のコンピューティングデバイスであってもよい。様々な実施形態において、制御ノード１０８およびユーザノード１１０は同じコンピューティングデバイスであってもよい。さらに、制御ノード１０８またはユーザノード１１０は、コンピューティングノードクラスタ１０２に含まれるコンピューティングノードの１つであり得、若しくは、両方がコンピューティングノードクラスタ１０２に含まれるコンピューティングノードである。制御ノード１０８および／またはユーザノード１１０の一例は、図５を参照し、以下により詳細に説明する。
【００２６】
図３は、様々な実施形態に係るネイティブクラウドコンピューティングに関する方法を示す。示されるように方法３００は、クラウドコンピューティングリソースを要求するユーザノード１１０からのリクエストを制御ノード１０８が受信するブロック３０２から開始し得る。様々な実施形態において、リクエストは、クラスタおよび／またはコンピューティングノードの数の指定、プロセッサの計算能力の指定、システムメモリ容量の指定、永久的記憶装置の容量の指定、入出力容量の指定、１以上のオペレーティングシステムの指定、計算タスクと関連付けられた１以上のプログラムの指定、計算タスクと関連付けられた１以上のデータソースまたはデータシンクの指定、および／または計算タスクの予期される実行期間の指定を含み得る。様々な実施形態において、リクエストはネイティブコンピューティングノードを明示的に要求してもよい。
【００２７】
ブロック３０２から、方法３００はブロック３０４に進み得る。ここで制御ノード１０８は、リクエストに実質的に対応可能な十分なネイティブコンピューティングリソースがあるかの判断を含む、ネイティブコンピューティングリソースによりリクエストに対応するかの判断を行う。様々な実施形態において、リクエストが明示的に要求する場合、制御ノード１０８は、ネイティブコンピューティングノードによりリクエストに対応してもよい。様々な実施形態において、リクエストが閾値を超えるプロセッサの計算能力を要求する場合、制御ノード１０８は、ネイティブコンピューティングノードによりリクエストに対応してもよい。様々な実施形態において、正確に、または要求されている以上にリクエストに対応するのではなく、制御ノード１０８は、リクエストに実質的に対応可能であるコンピューティングリソース／能力を有するネイティブコンピューティングクラウドによりリクエストに対応してもよい。
【００２８】
ブロック３０４において、ネイティブコンピューティングリソースによりリクエストに対応すること、および、リクエストに実質的に対応可能な十分なネイティブコンピューティングリソースがあることが判断されたことに応答して、方法３００はブロック３０６に進み得る。ここで制御ノード１０８は、ユーザのタスクのネイティブ実行に割り当てられる１以上のコンピューティングノードクラスタを少なくとも通信面で分離すべく、データ通信ネットワーク１０４をセグメント化する、または、データ通信ネットワーク１０４がセグメント化されるようにし得る。分離されたコンピューティングノードクラスタと他のコンピューティングノードクラスタとの間のデータ通信をブロックするようデータ通信ネットワーク１０４のネットワーク要素のルーティング、接続、および／またはプロトコルを直接的に構成することにより、または当該ルーティング、接続、および／またはプロトコルが構成されるようにすることにより、制御ノード１０８は、データ通信ネットワーク１０４をセグメント化してもよい、またはデータ通信ネットワーク１０４がセグメント化されるようにしてもよい。制御ノード１０８は、ネットワーク要素、ルータ、スイッチ、ケーブルなどを構成するようオペレータに指示を出すなどにより構成が実現されるようにしてもよい。指示は、ネットワーク要素のための特権、および／またはユーザアクセス不可能コマンドを含み得る。指示は、特定のネットワーク要素の接続を物理的に解除するようオペレータに指示し、１以上のコンピューティングノードクラスタが他のコンピューティングノードクラスタから物理的に分離されるようにする命令を含んでもよい。
【００２９】
ブロック３０６において、割り当てるためコンピューティングノードクラスタを少なくとも通信面で分離するようデータ通信ネットワーク１０４をセグメント化したことに応答して、方法３００はブロック３０８に進み得る。ここで制御ノード１０８は、分離されたコンピューティングノードクラスタ１０２をリクエストに割り当て、割り当てられたコンピューティングノードクラスタに含まれるコンピューティングノードに対し、デフォルトの、または特定されたオペレーティングシステムをプロビジョニングする、またはデフォルトの、または特定されたオペレーティングシステムがプロビジョニングされるようにする。様々な実施形態において、制御ノード１０８はさらに、プロビジョニングされたコンピューティングノードクラスタ上でのネイティブ実行のために、関連付けられたアプリケーションをロードおよび起動してもよく、または当該アプリケーションがロード／起動されるようにしてもよい。様々な実施形態において、制御ノード１０８はさらに、プロビジョニングされたコンピューティングノードクラスタへアプリケーションのデータをコピーしてもよく、または当該データがコピーされるようにしてもよい。様々な実施形態において、制御ノード１０８は、プロビジョニング、ロード／起動、および／またはコピーを実行するようユーザノード１１０または割り当てられたコンピューティングノードクラスタに指示を出すことによりプロビジョニング、ロード／起動、および／またはコピーが行われるようにしてもよい。ユーザノード１１０は、ユーザノード１１０のユーザからの入力に応じて、プロビジョニング、ロード／起動、および／またはコピーを行ってもよい。前述したように、割り当てられたコンピューティングノードクラスタは、少なくともデータ通信ネットワークのセグメント化により、他のコンピューティングノードクラスタから分離され保護される。よって、ユーザのタスクは、割り当てられたコンピューティングノードクラスタ上で安全かつネイティブに実行され得、同等のセキュリティレベルを実現するのに仮想マシン（ＶＭ）を用いる従来のクラウド構成と比較し１０〜１００倍の実行性能を達成し得る。したがって、本開示に係るネイティブクラウドコンピューティング方法および装置は特に、高性能コンピューティング、つまり、科学計算などの計算集約型アプリケーションに適し得る。様々な実施形態において、方法はさらに制御のノードが、割り当てられたコンピューティングクラスタ１０２から計算タスクに関するデータを消去する、または当該データが消去されるようにすることを含み得る。消去には、割り当てられたコンピューティングノードクラスタのローカルである、および共有されたハードディスクドライブ上のユーザ特定領域など、用いられた割り当てられたコンピューティングノードクラスタのランダムアクセスメモリ、キャッシュ、および何らかのＩ／Ｏ部材が上書きされることが含まれ得る。さらに、割り当てられたコンピューティングノードクラスタの共有されたリソース上に存在するタスクに関するデータは任意選択的にバックアップされ得、読み出しが不可能なように取り除かれ得、その後のユーザによるリクエストによってのみ再び読み取り可能とされてもよい。複数の実施形態において、実行結果を含む関連するデータは、インターネット経由で読み取り可能とされてもよい。
【００３０】
図４は、本開示の様々な実施形態に係る非一時的コンピュータ可読記憶媒体を示す。示されるように、非一時的コンピュータ可読記憶媒体４０２は多数のプログラミング命令４０４を含み得る。プログラミング命令４０４は実行されると、計算タスクの実行にクラウドコンピューティングノードを割り当てるよう要求するリクエストをユーザノードから受信する動作と、データ通信ネットワークを介して他のコンピューティングノードクラスタに接続された一のコンピューティングノードクラスタが割り当て可能であり、リクエストに実質的に対応可能な十分なコンピューティングリソースを有することを判断する動作と、一のコンピューティングノードクラスタを他のコンピューティングノードクラスタから分離すべく、データ通信ネットワークをセグメント化する、または、データ通信ネットワークがセグメント化されるようにする動作と、分離された一のコンピューティングノードクラスタを計算タスクのネイティブ実行に割り当てる動作とを装置が実行出来るようにし得る。
【００３１】
図５は、本開示の様々な実施形態に係る、コンピューティングノードまたは制御ノードとして用いるのに適した例示的なコンピュータシステムを示す。示されるように、コンピューティングシステム５００は、多数のプロセッサまたはプロセッサコア５０２と、システムメモリ５０４とを含む。この適用例、および請求項の目的において、「プロセッサ」および「プロセッサコア」という用語は、文脈上明らかに他のことが示されていない限り同義語として見なされ得る。加えて、コンピューティングシステム５００は、大容量記憶装置５０６（ディスケット、ハードドライブ、ＣＤ−ＲＯＭなど）、入出力デバイス５０８（ディスプレイ、キーボード、カーソル移動制御など）、および通信インタフェース５１０（ネットワークインタフェースカード、モデムなど）を含み得る。それぞれの要素は１以上のバスを表すシステムバス５１２を介して互いに接続されている。複数のバスが用いられる場合、それらは以上のバスブリッジ（図示せず）によりブリッジングされている。
【００３２】
これらの要素のそれぞれは、当技術分野で公知の従来的な機能を実行する。特に、システムメモリ５０４および大容量記憶装置５０６は、図３の方法、またはその一部を実装する、本明細書では総じて計算ロジック５２２と呼ぶプログラム命令のワーキングコピーおよび永久的なコピーを格納するのに用いられ得る。様々なコンポーネントは、プロセッサ５０２によりサポートされるアセンブラ命令、またはそのような命令にコンパイルされ得る例えばＣ言語などのハイレベル言語により実装され得る。
【００３３】
プログラミング命令の永久的なコピーは、例えばＣＤなどの配布媒体（図示せず）、または（配布サーバ（図示せず）からの）通信インタフェース７１０を介して永久記憶媒体５０６へ、工場または現場において格納されてもよい。つまり、エージェントを配布し、様々なコンピューティングデバイスをプログラムするのに、エージェントプログラムが実装された１以上の配布媒体が用いられ得る。
【００３４】
これらの要素５０２〜５１２の構成は公知であるので、より詳細には説明しない。
【００３５】
本明細書において特定の実施形態を示し説明してきたが、これら示され説明されてきた特定の実施形態において、本願発明の実施形態の態様から逸脱することなく幅広い代替的な、および／または同等の実施例が代わりに用いられ得ることが当業者には理解されよう。本願は、本明細書で説明した実施形態の適用例および変形例を網羅することが意図されている。よって、本願発明の実施形態は、請求項およびその同等物によってのみ限定されることが明白に意図されている。
【図１】
0005837683.tif 000002
【図２】
0005837683.tif 000003
【図３】
0005837683.tif 000004
【図４】
0005837683.tif 000005
【図５】
0005837683.tif 000006