(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-25
(45)【発行日】2024-12-03
(54)【発明の名称】プロビジョニング障害のブロックチェーン管理
(51)【国際特許分類】
G06F 11/07 20060101AFI20241126BHJP
G06F 11/34 20060101ALI20241126BHJP
【FI】
G06F11/07 190
G06F11/34 176
(21)【出願番号】P 2023507237
(86)(22)【出願日】2021-06-25
(86)【国際出願番号】 CN2021102382
(87)【国際公開番号】W WO2022028144
(87)【国際公開日】2022-02-10
【審査請求日】2023-11-14
(32)【優先日】2020-08-03
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ジアン、ジンボ
(72)【発明者】
【氏名】ジャン、リニ
(72)【発明者】
【氏名】チェン、リロン
(72)【発明者】
【氏名】ジャオ、ユ
(72)【発明者】
【氏名】ジャオ、ウェンルイ
(72)【発明者】
【氏名】ルオ、ラン
(72)【発明者】
【氏名】ジアン、リ
【審査官】児玉 崇晶
(56)【参考文献】
【文献】特表2014-501420(JP,A)
【文献】米国特許出願公開第2019/0114182(US,A1)
【文献】特開2008-226017(JP,A)
【文献】特開平08-286984(JP,A)
【文献】米国特許第06604154(US,B1)
【文献】米国特許出願公開第2015/0355989(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
G06F 9/54
G06F 11/34
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のコンピュータプロセッサにより、サービスプロビジョンに関連する1つまたは複数のアプリケーションプログラミングインタフェース(API)呼び出しを取り込む段階と、
1つまたは複数のコンピュータプロセッサにより、前記取り込まれた1つまたは複数のAPI呼び出しをブロックチェーン台帳にサブミットする段階と、
1つまたは複数のコンピュータプロセッサにより、前記サービスプロビジョン中のシステム障害を検出する段階と、
1つまたは複数のコンピュータプロセッサにより、前記ブロックチェーン台帳から、前記サブミットされた1つまたは複数のAPI呼び出しを抽出する段階と、
1つまたは複数のコンピュータプロセッサにより、前記抽出された1つまたは複数のAPI呼び出しに基づいて、前記システム障害に関連する問題のあるシステムを特定する段階と
を備える方法。
【請求項2】
前記問題のあるシステムを特定する段階が、
1つまたは複数のコンピュータプロセッサにより、前記システム障害の根本原因解析を実行する段階と、
1つまたは複数のコンピュータプロセッサにより、レポートを生成する段階であって、前記レポートが、前記根本原因解析、前記問題のあるシステム、および、少なくとも1つの修正アクションを含む、生成する段階と、
1つまたは複数のコンピュータプロセッサにより、前記ブロックチェーン台帳に前記レポートをサブミットする段階とをさらに有する、請求項1に記載の方法。
【請求項3】
1つまたは複数のコンピュータプロセッサにより、前記問題のあるシステムを所有者に通知する段階をさらに備える、請求項2に記載の方法。
【請求項4】
1つまたは複数のコンピュータプロセッサにより、前記問題のあるシステムおよび前記サービスプロビジョンに関連するスマートコントラクトを取り出す段階と、
1つまたは複数のコンピュータプロセッサにより、前記問題のあるシステムに関連する1つまたは複数のAPI呼び出しを受け取る段階と、
1つまたは複数のコンピュータプロセッサにより、前記スマートコントラクトに基づいて、前記問題のあるシステムに関連する前記1つまたは複数のAPI呼び出しへのダミー応答を生成する段階と
をさらに備える、請求項1から3のいずれか一項に記載の方法。
【請求項5】
1つまたは複数のコンピュータプロセッサにより、前記問題のあるシステムに関連する前記1つまたは複数のAPI呼び出しを前記ブロックチェーン台帳にサブミットする段階をさらに備える、請求項4に記載の方法。
【請求項6】
1つまたは複数のコンピュータプロセッサにより、前記問題のあるシステムに関連する前記1つまたは複数のAPI呼び出しに関連する1つまたは複数の処理されていない呼び出し詳細を処理する段階と、
1つまたは複数のコンピュータプロセッサにより、前記スマートコントラクトに基づいて、前記1つまたは複数の処理されていない呼び出し詳細を1つまたは複数のアクションにパースする段階と
をさらに備える、請求項4または5に記載の方法。
【請求項7】
前記システム障害を検出する段階の前に、1つまたは複数のコンピュータプロセッサにより、クラウドサービスプロビジョンワークフロー実行を検出する段階をさらに備える、請求項1から6のいずれか一項に記載の方法。
【請求項8】
コンピュータプロセッサに、
サービスプロビジョンに関連する1つまたは複数のアプリケーションプログラミングインタフェース(API)呼び出しを取り込む手順と、
前記取り込まれた1つまたは複数のAPI呼び出しをブロックチェーン台帳にサブミットする手順と、
前記サービスプロビジョン中のシステム障害を検出する手順と、
前記ブロックチェーン台帳から、前記サブミットされた1つまたは複数のAPI呼び出しを抽出する手順と、
前記抽出された1つまたは複数のAPI呼び出しに基づいて、前記システム障害に関連する問題のあるシステムを特定する手順と
を実行させるためのコンピュータプログラム。
【請求項9】
前記問題のあるシステムを特定する手順が、
前記システム障害の根本原因解析を実行する手順と、
レポートを生成する手順であって、前記レポートが、前記根本原因解析、前記問題のあるシステム、および、少なくとも1つの修正アクションを含む、手順と、
前記ブロックチェーン台帳に前記レポートをサブミットする手順とを含む、請求項8に記載のコンピュータプログラム。
【請求項10】
前記コンピュータプロセッサに、
前記問題のあるシステムを所有者に通知する手順をさらに実行させる、請求項9に記載のコンピュータプログラム。
【請求項11】
前記コンピュータプロセッサに、
前記問題のあるシステムおよび前記サービスプロビジョンに関連するスマートコントラクトを取り出す手順と、
前記問題のあるシステムに関連する1つまたは複数のAPI呼び出しを受け取る手順と、
前記スマートコントラクトに基づいて、前記問題のあるシステムに関連する前記1つまたは複数のAPI呼び出しへのダミー応答を生成する手順と
をさらに実行させる、請求項8から10のいずれか一項に記載のコンピュータプログラム。
【請求項12】
前記コンピュータプロセッサに、
前記問題のあるシステムに関連する前記1つまたは複数のAPI呼び出しを前記ブロックチェーン台帳にサブミットする手順をさらに実行させる、請求項11に記載のコンピュータプログラム。
【請求項13】
前記コンピュータプロセッサに、
前記問題のあるシステムに関連する前記1つまたは複数のAPI呼び出しに関連する1つまたは複数の処理されていない呼び出し詳細を処理する手順と、
前記スマートコントラクトに基づいて、前記1つまたは複数の処理されていない呼び出し詳細を1つまたは複数のアクションにパースする手順とをさらに実行させる、請求項11または12に記載のコンピュータプログラム。
【請求項14】
前記コンピュータプロセッサに、
前記システム障害を検出する前に、クラウドサービスプロビジョンワークフロー実行を検出する手順をさらに実行させる、請求項8から13のいずれか一項に記載のコンピュータプログラム。
【請求項15】
1つまたは複数のコンピュータプロセッサと、
1つまたは複数のコンピュータ可読記憶媒体と、
前記1つまたは複数のコンピュータプロセッサのうちの少なくとも1つによる実行のために前記1つまたは複数のコンピュータ可読記憶媒体上に一括して記憶されたプログラム命令とを備えるコンピュータシステムであって、前記記憶されたプログラム命令が、
サービスプロビジョンに関連する1つまたは複数のアプリケーションプログラミングインタフェース(API)呼び出しを取り込むためのプログラム命令と、
前記取り込まれた1つまたは複数のAPI呼び出しをブロックチェーン台帳にサブミットするためのプログラム命令と、
前記サービスプロビジョン中のシステム障害を検出するためのプログラム命令と、
前記ブロックチェーン台帳から、前記サブミットされた1つまたは複数のAPI呼び出しを抽出するためのプログラム命令と、
前記抽出された1つまたは複数のAPI呼び出しに基づいて、前記システム障害に関連する問題のあるシステムを特定するためのプログラム命令とを有する、コンピュータシステム。
【請求項16】
前記問題のあるシステムを特定するためのプログラム命令が、
前記システム障害の根本原因解析を実行するためのプログラム命令と、
レポートを生成するためのプログラム命令であって、前記レポートが、前記根本原因解析、前記問題のあるシステム、および、少なくとも1つの修正アクションを含む、プログラム命令と、
前記ブロックチェーン台帳に前記レポートをサブミットするためのプログラム命令とを含む、請求項15に記載のコンピュータシステム。
【請求項17】
前記記憶されたプログラム命令が、前記問題のあるシステムを所有者に通知するためのプログラム命令をさらに有する、請求項16に記載のコンピュータシステム。
【請求項18】
前記記憶されたプログラム命令が、
前記問題のあるシステムおよび前記サービスプロビジョンに関連するスマートコントラクトを取り出すためのプログラム命令と、
前記問題のあるシステムに関連する1つまたは複数のAPI呼び出しを受け取るためのプログラム命令と、
前記スマートコントラクトに基づいて、前記問題のあるシステムに関連する前記1つまたは複数のAPI呼び出しへのダミー応答を生成するためのプログラム命令とをさらに有する、請求項15から17のいずれか一項に記載のコンピュータシステム。
【請求項19】
前記記憶されたプログラム命令が、前記問題のあるシステムに関連する前記1つまたは複数のAPI呼び出しを前記ブロックチェーン台帳にサブミットするためのプログラム命令をさらに有する、請求項18に記載のコンピュータシステム。
【請求項20】
前記記憶されたプログラム命令が、
前記問題のあるシステムに関連する前記1つまたは複数のAPI呼び出しに関連する1つまたは複数の処理されていない呼び出し詳細を処理するためのプログラム命令と、
前記スマートコントラクトに基づいて、前記1つまたは複数の処理されていない呼び出し詳細を1つまたは複数のアクションにパースするためのプログラム命令とをさらに有する、請求項18または19に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にはクラウドサービスプロビジョニングの分野に関し、より詳細には、クラウドサービスプロビジョニング障害のブロックチェーン管理に関する。
【背景技術】
【0002】
ブロックチェーンは、2またはそれより多くの当事者間のトランザクションを、効率良く、検証可能かつ永久的に記録することが可能な非集中かつ分散型のデジタル台帳である。台帳自体を、自動的にトランザクションを起動するようにプログラムすることも可能である。ブロックチェーンは、タンパリングおよびリビジョンからセキュリティ保護された、ブロックと呼ばれる継続的に増大する記録リストを維持する。各ブロックは、タイムスタンプおよび前のブロックへのリンクを含む。設計により、ブロックチェーンは、本質的にデータの変更を行うことができなくなっており、すなわち、ブロック内のデータが記録されると、それを遡及的には改変できなくなる。ピアツーピアネットワークおよび分散タイムスタンプサーバを使用することにより、ブロックチェーンデータベースが自律的に管理される。ブロックチェーン技術の非集中コンセンサスアルゴリズムは、いくつかのエンティティが、互いを個々に信用する必要なく、共有された情報記録を維持することを可能にするが、これは、コンセンサスがネットワークごとに形成されるからである。ネットワーク化されたモデルが、検閲への抵抗性、タンパリングへの抵抗性といった優位性を有するシステム、および、単一障害点を持たないシステムを作成する。
【0003】
デジタル情報が絶え間なく増大することで、クラウドコンピューティングへの依存が増加し続けている。クラウドコンピューティングは、最小の管理労力で迅速にプロビジョニングおよびリリースできる構成可能なコンピューティングリソース(例えば、サーバ、ストレージ、アプリケーション、および、サービス)の共有プールに対する便利なオンデマンドネットワークアクセスを可能にするためのモデルである。低コストのコンピュータおよび記憶デバイスを利用可能であること、ならびに、ハードウェア仮想化およびサービス指向型アーキテクチャが幅広く採用されていることが、クラウドコンピューティングの成長につながっている。クラウドコンピューティングのスケーラビリティにより、ユーザが、コンピューティングの必要性が増した際にはスケールアップを行い、次いで、必要性が減った際には再度スケールダウンを行うことを可能にしている。
【0004】
最近では、クラウドおよびクラウドベースのサービスプロビジョニングの使用が主流になっており、これにより、パブリッククラウド、プライベートクラウド、または、ハイブリッドクラウド内のリソースをコンシューマが共有することが可能になっている。サービスプロビジョニングについては、互いにインタフェース接続された「外部システム」が、サービスプロビジョニングワークフローを完了させることを求められ、これには、1つまたは複数のアプリケーションプログラミングインタフェース(API)呼び出しについて、外部システム通信の系統がより深くなることが求められ得る。複数の外部システムは、一般には、異なる所有者により管理および維持され、エンドツーエンドのサービスプロビジョニングを完了させるためには連係して働かせる必要がある。外部システムのうちのいくつかは、変更管理システムまたは発券システムなどの従来型システムであり得る。サービスプロビジョニングが失敗すると、関係する当事者との堂々巡りの議論および交渉なく根本原因解析を実行することは困難であり得る。さらに、根本原因が特定の外部システム上で特定された場合でも、問題を解決し、その解決をテストするのに要する時間、サービスプロビジョニングは中断される。
【発明の概要】
【0005】
本発明の第1の態様は、1つまたは複数のコンピュータプロセッサが、サービスプロビジョンに関連する1つまたは複数のアプリケーションプログラミングインタフェース(API)呼び出しを取り込む段階を備える方法を開示する。1つまたは複数のコンピュータプロセッサは、前記取り込まれた1つまたは複数のAPI呼び出しをブロックチェーン台帳にサブミットする。1つまたは複数のコンピュータプロセッサは、前記サービスプロビジョン中のシステム障害を検出する。1つまたは複数のコンピュータプロセッサは、前記ブロックチェーン台帳から、前記サブミットされた1つまたは複数のAPI呼び出しを抽出する。前記抽出された1つまたは複数のAPI呼び出しに基づいて、1つまたは複数のコンピュータプロセッサは、前記システム障害に関連する問題のあるシステムを特定する。
【0006】
本発明の第2の態様は、1つまたは複数のコンピュータ可読記憶媒体と、前記1つまたは複数のコンピュータ可読記憶媒体上に一括して記憶されたプログラム命令とを備えるコンピュータプログラム製品を開示する。前記記憶されたプログラム命令は、サービスプロビジョンに関連する1つまたは複数のアプリケーションプログラミングインタフェース(API)呼び出しを取り込むためのプログラム命令を有する。前記記憶されたプログラム命令は、前記取り込まれた1つまたは複数のAPI呼び出しをブロックチェーン台帳にサブミットするためのプログラム命令を有する。前記記憶されたプログラム命令は、前記サービスプロビジョン中のシステム障害を検出するためのプログラム命令を有する。前記記憶されたプログラム命令は、前記ブロックチェーン台帳から、前記サブミットされた1つまたは複数のAPI呼び出しを抽出するためのプログラム命令を有する。前記記憶されたプログラム命令は、前記抽出された1つまたは複数のAPI呼び出しに基づいて、前記システム障害に関連する問題のあるシステムを特定するためのプログラム命令を有する。
【0007】
本発明の第3の態様は、1つまたは複数のコンピュータプロセッサと、1つまたは複数のコンピュータ可読記憶媒体と、1つまたは複数のコンピュータ可読記憶媒体とを備え、前記1つまたは複数のコンピュータ可読記憶媒体上に一括してプログラム命令が記憶されている、コンピュータシステムを開示する。前記記憶されたプログラム命令は、サービスプロビジョンに関連する1つまたは複数のアプリケーションプログラミングインタフェース(API)呼び出しを取り込むためのプログラム命令を有する。前記記憶されたプログラム命令は、前記取り込まれた1つまたは複数のAPI呼び出しをブロックチェーン台帳にサブミットするためのプログラム命令を有する。前記記憶されたプログラム命令は、前記サービスプロビジョン中のシステム障害を検出するためのプログラム命令を有する。前記記憶されたプログラム命令は、前記ブロックチェーン台帳から、前記サブミットされた1つまたは複数のAPI呼び出しを抽出するためのプログラム命令を有する。前記記憶されたプログラム命令は、前記抽出された1つまたは複数のAPI呼び出しに基づいて、前記システム障害に関連する問題のあるシステムを特定するためのプログラム命令を有する。
【0008】
他の態様では、前記問題のあるシステムを特定することが、1つまたは複数のコンピュータプロセッサにより、前記システム障害の根本原因解析を実行することと、1つまたは複数のコンピュータプロセッサにより、レポートを生成することであって、前記レポートが、前記根本原因解析、前記問題のあるシステム、および、少なくとも1つの修正アクションを含む、生成することと、1つまたは複数のコンピュータプロセッサにより、前記ブロックチェーン台帳に前記レポートをサブミットすることとを有する。根本原因解析を含んだレポートを生成することは、障害の根本原因を突き止めるプロセスにユーザが介入しなくてもよいので有利である。根本原因解析を含むレポートをブロックチェーン台帳にサブミットすることは、ブロックチェーン台帳についてのレポートは改変することができないので有利である。
【0009】
他の態様では、クラウドサービスプロビジョニング障害のブロックチェーン管理が、1つまたは複数のコンピュータプロセッサにより、前記問題のあるシステムおよび前記サービスプロビジョンに関連するスマートコントラクトを取り出すことと、1つまたは複数のコンピュータプロセッサにより、前記問題のあるシステムに関連する1つまたは複数のAPI呼び出しを受け取ることと、1つまたは複数のコンピュータプロセッサにより、前記スマートコントラクトに基づいて、前記問題のあるシステムに関連する前記1つまたは複数のAPI呼び出しへのダミー応答を生成することとを含む。スマートコントラクトを取り出し、取り出されたスマートコントラクトに基づいてダミー応答を生成することは、問題のあるシステムからの応答を、問題が解決された際に発生するもののように見せ、こうすることで、プロビジョニングを遅延なく完了させることが可能になるので有利である。
【図面の簡単な説明】
【0010】
【
図1】本発明の一実施形態に係る分散データ処理環境を示す機能ブロック図である。
【0011】
【
図2】本発明の一実施形態に係る、
図1の分散データ処理環境内のサーバコンピュータ上でのサービスコーディネータの動作ステップであって、サービスプロビジョニング障害のブロックチェーン管理のためのサービスコーディネータの動作ステップを示すフローチャートである。
【0012】
【
図3】本発明の一実施形態に係る、
図1の分散データ処理環境内のサーバコンピュータ上でのサービスコーディネータの動作ステップの一例を示す。
【0013】
【
図4】本発明の一実施形態に係る、
図1の分散データ処理環境内でサービスコーディネータを実行するサーバコンピュータのコンポーネントのブロック図を示す。
【0014】
【
図5】本発明の一実施形態によるクラウドコンピューティング環境を示す。
【0015】
【
図6】本発明の一実施形態による抽象化モデル層を示す。
【発明を実施するための形態】
【0016】
本発明の実施形態は、外部システムへの各API呼び出しについてシステム間通信データを自動的に取り込んで記憶し、通信をブロックチェーン台帳に保存して、根本原因解析および問題のある所有者の特定を可能にすることにより効率を得ることができると認識する。また、本発明の実施形態は、取り込まれ、複雑なサービスプロビジョニングのためのブロックチェーン台帳システムに記憶されたデータに基づいた、事前対応型の自動サービスプロビジョニング障害の解析および特定を実装する。また、本発明の実施形態は、問題のあるシステムからの応答が問題が解決された際に発生するようにするためのスマートコントラクトを提供し、こうすることで、遅延なくプロビジョニングが完了することを可能にする。本発明の実施形態の実装は、様々な形態を取り得、例示的な実装詳細が、図面を参照しながら以下で議論される。
【0017】
図1は、本発明の1つの実施形態に係る分散データ処理環境(概ね100と指定されている)を示す機能ブロック図である。本明細書で使用される「分散」という用語は、単一のコンピュータシステムとして共に動作する複数の物理的に別個のデバイスを含むコンピュータシステムを説明する。
図1は、1つの実装形態の例証のみを提供し、様々な実施形態が実装され得る環境について、どのような制限をも示唆するものではない。特許請求の範囲により記載される発明の範囲から逸脱することなく、図示されている環境への多くの修正が当業者により行われ得る。
【0018】
分散データ処理環境100は、サーバコンピュータ104、クラウド管理プラットフォーム114、および、ブロックチェーン台帳システム118を含み、これらは全て、ネットワーク102を介して相互接続される。ネットワーク102は、例えば、電気通信ネットワーク、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、または、これら3つの組み合わせであってよく、有線接続、無線接続、または、光ファイバ接続を含んでよい。ネットワーク102は、音声情報、データ情報、および、映像情報を含むマルチメディア信号を含めた、データ信号、音声信号もしくは映像信号、または、その組み合わせを受信および送信可能な、1つもしくは複数の有線ネットワークもしくは無線ネットワーク、または、その両方を含み得る。一般に、ネットワーク102は、サーバコンピュータ104、クラウド管理プラットフォーム114、ブロックチェーン台帳システム118、および、分散データ処理環境100内の他のコンピューティングデバイス(図示せず)の間の通信をサポートする接続およびプロトコルの任意の組み合わせであり得る。
【0019】
サーバコンピュータ104は、スタンドアロンのコンピューティングデバイス、管理サーバ、ウェブサーバ、モバイルコンピューティングデバイス、または、データを受信、送信、および、処理可能な他の任意の電子デバイスもしくはコンピューティングシステムとすることができる。他の実施形態では、サーバコンピュータ104は、クラウドコンピューティング環境内のものなどのサーバシステムとして複数のコンピュータを利用するサーバコンピューティングシステムを表し得る。他の実施形態では、サーバコンピュータ104は、ラップトップコンピュータ、タブレットコンピュータ、ネットブックコンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、パーソナルデジタルアシスタント(PDA)、スマートフォンであり得、または、クラウド管理プラットフォーム114、ブロックチェーン台帳システム118、および、分散データ処理環境100内の他のコンピューティングデバイス(図示せず)とネットワーク102を介して通信可能な任意のプログラマブル電子デバイスであってもよい。他の実施形態では、サーバコンピュータ104は、分散データ処理環境100内でアクセスされる際にシームレスなリソースの単一プールとして動作するクラスタ化されたコンピュータおよびコンポーネント(例えば、データベースサーバコンピュータ、アプリケーションサーバコンピュータなど)を利用するコンピューティングシステムを表す。サーバコンピュータ104は、サービスコーディネータ106を含む。サーバコンピュータ104は、
図4についてさらに詳細に図示および説明されるように、内部および外部ハードウェアコンポーネントを含み得る。
【0020】
サービスコーディネータ106は、プロビジョニング障害の場合にサービス要求を満たすために、システムおよびAPI呼び出しなどの複数の外部従属要素とインタフェースを取るのに必要なサービスプロビジョニングのためのクラウド管理プラットフォーム実装に対する現在の関心事に対処する。サービスコーディネータ106は、正確なデータ取込みに基づいた自動的なサービス障害解析および事実ベースの特定を提供し、このことは、プロビジョニング障害を解決するための急速な修正アクションを可能にするので有利である。また、サービスコーディネータ106は、サービスの中断または管理者の介入のないサービスプロビジョニング障害の自動回復を提供し、このことは、サービスアベイラビリティと遅延データの整合性および完全性との両方を、プロビジョニング後のデータの同期化および更新を介して実現するのに有利である。サービスプロビジョニング実行ワークフローを検出した後、サービスコーディネータ106は、そのワークフローに関連するAPI呼び出しデータを取り込み、取り込まれたデータをブロックチェーン台帳にサブミットする。サービスコーディネータ106は、プロビジョニング障害を検出する。サービスコーディネータ106は、取り込まれたデータに基づいて根本原因解析を実行し、問題のあるシステムを特定する。サービスコーディネータ106は、根本原因解析の結果をブロックチェーン台帳システム118にサブミットする。サービスコーディネータ106は、問題のあるシステムに関連するスマートコントラクトを取り出す。問題のあるシステムについて着信API呼び出しをサービスコーディネータ106が受け取ると、サービスコーディネータ106は、サービスプロビジョニングがストールするのを阻止するために、着信API呼び出しへの1つまたは複数のダミー応答を生成する。サービスコーディネータ106は、着信API呼び出しに関連するデータをブロックチェーン台帳システム118内にサブミットする。サービスコーディネータ106は、サービスプロビジョニングを完了するために着信API呼び出しに由来するデータ更新を処理する。図示の実施形態では、サービスコーディネータ106は、要求取込みモジュール108、解析モジュール110、および、自動回復モジュール112を含む。他の実施形態では、要求取込みモジュール108、解析モジュール110、および、自動回復モジュール112のうちの1つまたは複数の機能が、サービスコーディネータ106に完全に統合される。サービスコーディネータ106は、
図2についてさらに詳細に図示および説明される。
【0021】
一実施形態では、要求取込みモジュール108は、プロビジョニング要求および実行を継続的にモニタし、外部従属システム1161-Nなど、1つまたは複数の外部従属システムへの、また、それからのシステム呼び出しおよび応答からデータを取り込む。要求取込みモジュール108は、取り込まれたデータをブロックチェーン台帳システム118にサブミットすることもできる。
【0022】
一実施形態では、解析モジュール110は、失敗したプロビジョニング要求から得られる取り込まれたデータを、ブロックチェーン台帳システム118から抽出し、抽出されたデータに対して根本原因解析を実行する。解析モジュール110は、解析レポートを生成し、そのレポートをブロックチェーン台帳システム118にサブミットすることもできる。
【0023】
一実施形態では、自動回復モジュール112が、問題のあるシステム宛のAPI呼び出しに、スマートコントラクトに基づいたダミー応答を用いて応答し、そのAPI呼び出しの詳細をブロックチェーン台帳システム118に宛てて送る。自動回復モジュール112は、オフラインでバッチ更新を実行することもできる。
【0024】
クラウド管理プラットフォーム114は、パブリック、プライベートまたはハイブリッドのクラウド環境内でクラウドコンピューティングリソースを管理するように設計されたソフトウェアツールのスイートである。クラウド管理プラットフォームは、オンプレミスのクラウドインフラストラクチャおよびパブリッククラウドのサービスプロバイダインフラストラクチャの両方を含めた、複数のクラウドサービスインフラストラクチャにわたって、アプリケーションの展開および動作ならびに関連するデータセットをクラウドサービスのカスタマが管理するための手段を提供する。クラウド管理プラットフォームは、ハイブリッドクラウドおよびマルチクラウド環境についての管理能力を提供する。クラウド管理プラットフォームは、クラウド管理タスクを自動化するオーケストレーションスイートを通してユーザがクラウドリソースを管理することを可能にする。クラウド管理プラットフォームは、オーケストレーションタスクを自動化することが可能である。すなわち、クラウド管理プラットフォームは、管理タスクを自動的に統轄して、リソース使用を最適化する助けになることが可能である。図示の実施形態では、クラウド管理プラットフォーム114は、分散データ処理環境100内のサーバコンピュータ(図示せず)上に存在する。他の実施形態では、クラウド管理プラットフォーム114は、サーバコンピュータ104上に存在してもよい。クラウド管理プラットフォーム114は、外部従属システム1161-Nを含む。
【0025】
外部従属システム116
1-N、本明細書での外部従属システム116は、サービスプロビジョニング要求に応答するためにクラウド管理プラットフォーム114により使用される1つまたは複数のシステムであり得る。本明細書では、Nは正の整数を表し、したがって、本発明の所与の実施形態で実装されるいくつかのシナリオは、
図1に示されるものに限定されない。外部従属システム116の例には、IT変化管理システム、発券システム、IPアドレス管理システム、バックアップおよびリストアシステムなどが含まれるが、これらに限定されない。図示の実施形態では、外部従属システム116は、クラウド管理プラットフォーム114内に存在する。他の実施形態では、クラウド管理プラットフォーム114が外部従属システム116のそれぞれにアクセス可能であるならば、外部従属システム116のうちの1つまたは複数が、分散データ処理環境100内の他の場所に存在してもよい。
【0026】
ブロックチェーン台帳システム118は、例えば、トランザクション、アイデンティティ、アセット、ドキュメント、および、プロパティなどのデジタル値の記録を不変台帳に記憶するために、または、スマートコントラクトなどの自己執行のビジネスロジックを台帳に加えるために使用可能な、当分野で周知の複数のシステムのうちの1つまたは複数である。「スマートコントラクト」という語は、複雑なトランザクションロジックを定義し、組織をまたがるワークフローを促進するデジタルエンティティを指し、組織をまたがるワークフローには、データの記憶、データアクセス許可、順序付きのワークフロー、および、演算が含まれるが、これらに限定されない。ブロックチェーンのコンテキスト内では、スマートコントラクトは、ブロックチェーン上に記憶されるスクリプトである。スマートコントラクトは、チェーン上に存在するので、一意のアドレスを有する。スマートコントラクトは、自体のアドレスに送られるメッセージまたはトランザクションにより起動される。1つの実施形態では、ブロックチェーン台帳システム118は、パーミッションレス型、すなわち、参加について誰に対してもオープンであるパブリックブロックチェーンシステムである。他の実施形態では、ブロックチェーン台帳システム118は、パーミッション型、すなわち、閉ざされた参加者グループのみ利用可能なプライベートブロックチェーンシステムである。図示の実施形態では、ブロックチェーン台帳システム118は、サーバコンピュータ104の外に存在する。他の実施形態では、サービスコーディネータ106がブロックチェーン台帳システム118にアクセスできるならば、ブロックチェーン台帳システム118は、サーバコンピュータ104上、または、分散データ処理環境100内の他の場所に存在してもよい。ブロックチェーン台帳システム118は、データベース120を含む。
【0027】
データベース120は、サービスコーディネータ106により使用されるデータについてのリポジトリである。データベース120は、1つまたは複数のデータベースを表し得る。図示の実施形態では、データベース120は、ブロックチェーン台帳システム118上に存在する。他の実施形態では、サービスコーディネータ106がデータベース120にアクセスできるならば、データベース120は、分散データ処理環境100内の他の場所に存在してもよい。データベースは、編成されたデータの集合である。データベース120は、データベースサーバ、ハードディスクドライブ、または、フラッシュメモリなど、サービスコーディネータ106がアクセスおよび利用可能なデータおよび設定ファイルを記憶可能な任意のタイプの記憶デバイスを用いて実装することができる。データベース120は、サービスコーディネータ106により収集および使用される、サービスプロビジョニング障害の管理に関連するデータを記憶する。データベース120は、外部従属システム116に関連する1つまたは複数のスマートコントラクトを記憶することもできる。データベース120は、プロビジョニング履歴データを記憶することもできる。例えば、プロビジョニング履歴データは、エラーなく、エンドツーエンドで成功裏に完了された以前のサービス要求に関連する応答データを含み得る。成功プロビジョニング履歴データは、将来のサービス要求との比較に役立ち得る。
【0028】
図2は、本発明の一実施形態に係る、
図1の分散データ処理環境100内のサーバコンピュータ104上でのサービスコーディネータ106の動作ステップであって、サービスプロビジョニング障害のブロックチェーン管理のためのサービスコーディネータ106の動作ステップを示すフローチャートである。
【0029】
サービスコーディネータ106は、サービスプロビジョニング実行ワークフローを検出する(ステップ202)。一実施形態では、ユーザがサービスプロビジョニングを必要とすると、ユーザは、クラウド管理プラットフォーム114に要求をサブミットし、クラウド管理プラットフォーム114は、引き続いて、外部従属システム116へのAPI呼び出し、および、それからのAPI呼び出しを起動する。一実施形態では、サービスコーディネータ106は、クラウド管理プラットフォーム114がサービスプロビジョニング要求のワークフロー実行を始動しているという通知を、ネットワーク102を介してクラウド管理プラットフォーム114から受け取る。他の実施形態では、サービスコーディネータ106は、ユーザから直接的に要求を受け取り、その要求を、ネットワーク102を介してクラウド管理プラットフォーム114に渡すこともできる。一実施形態では、要求取込みモジュール108が、サービスプロビジョニング要求および実行ワークフローを検出する。一実施形態では、サービスプロビジョニング実行ワークフローを検出すると、サービスコーディネータ106は、外部従属システム116からのシステム呼び出しおよびシステム応答の継続的なモニタおよび取込みを始める。他の実施形態では、サービスコーディネータ106が、外部従属システム116からのシステム呼び出しおよびシステム応答の、継続的なモニタおよび要求取込みモジュール108を介した取込みを始める。
【0030】
サービスコーディネータ106は、API呼び出しデータを取り込む(ステップ204)。一実施形態では、サービスプロビジョニング実行ワークフローの検出に応答して、サービスコーディネータ106は、外部従属システム116へのAPI呼び出しデータ、および、それからのAPI呼び出しデータの継続的なモニタおよび取込みを始める。API呼び出しデータは、システム間通信データ、システム障害に関連するタイムスタンプ、外部従属システム116からの1つまたは複数の応答、サービス呼び出しパラメータなどを含み得るが、これらに限定されない。一実施形態では、サービスプロビジョニング実行ワークフローが検出されると、要求取込みモジュール108は、外部従属システム116からのAPI呼び出しデータの継続的なモニタおよび取込みを始める。一実施形態では、サービスコーディネータ106は、要求取込みモジュール108を介してAPI呼び出しデータを取り込む。一実施形態では、API呼び出しデータに加えて、サービスコーディネータ106は、サービスプロビジョニング要求に関連するデータを取り込む。例えば、サービスコーディネータ106は、要求ID、要求パラメータ、もしくは、そこから要求が受け取られるテナントもしくはユーザ、または、その組み合わせを取り込むことができる。
【0031】
サービスコーディネータ106は、取り込まれたAPI呼び出しデータをブロックチェーン台帳システム118にサブミットする(ステップ206)。一実施形態では、サービスコーディネータ106がAPI呼び出しデータを取り込んだ際に、サービスコーディネータ106は、取り込まれたAPI呼び出しデータをブロックチェーン台帳システム118にサブミットする。一実施形態では、サービスコーディネータ106は、取り込まれたAPI呼び出しデータを、時系列でブロックチェーン台帳システム118にサブミットする。一実施形態では、サービスコーディネータ106は、取り込まれたAPI呼び出しデータをデータベース120に記憶する。一実施形態では、サービスコーディネータ106は、新たに取り込まれたデータを、データベース120に記憶されたプロビジョニング履歴データに組み合わせる。一実施形態では、サービスコーディネータ106は、要求取込みモジュール108を介してブロックチェーン台帳システム118にAPI呼び出しデータをサブミットする。
【0032】
サービスコーディネータ106は、プロビジョニング障害を検出する(ステップ208)。一実施形態では、サービスコーディネータ106は、外部従属システム116のうちの1つまたは複数がプロビジョニング実行における障害に遭遇していることを示す通知をクラウド管理プラットフォーム114から受け取る。他の実施形態では、サービスコーディネータ106は、外部従属システム116から直接的にプロビジョニング実行における障害を検出する。一実施形態では、サービスコーディネータ106は、外部従属システム116からのシステム呼び出しおよびシステム応答を継続的にモニタし、応答の内容に基づいて、外部従属システム116のうちの少なくとも1つが障害に遭遇していると判定することが可能である。一実施形態では、サービスコーディネータ106は、要求取込みモジュール108を介してプロビジョニング障害を検出する。
【0033】
サービスコーディネータ106は、根本原因解析を実行し、問題のあるシステムを特定する(ステップ210)。一実施形態では、サービスコーディネータ106は、取り込まれたAPI呼び出しデータをブロックチェーン台帳システム118から抽出し、取り込まれたAPI呼び出しデータを解析して、プロビジョニング障害の根本原因を突き止める。一実施形態では、サービスコーディネータ106は、取り込まれたデータならびにプロビジョニング履歴データを抽出し、2つの条件、すなわち、成否を比較し、こうすることで、根本原因の結論を出すことが可能になる。一実施形態では、サービスコーディネータ106は、解析モジュール110を介して根本原因解析を実行する。サービスコーディネータ106が解析を完了すると、サービスコーディネータ106は、外部従属システム116のうちの1つまたは複数の問題のあるシステムを特定する。一実施形態では、サービスコーディネータ106は、外部従属システム116のうちの1つまたは複数の問題のあるシステムを、解析モジュール110を介して特定する。一実施形態では、サービスコーディネータ106は、問題のあるシステムのプロビジョニング障害を訂正するのに必要な1つまたは複数の修正アクションを特定する。
【0034】
サービスコーディネータ106は、解析結果をブロックチェーン台帳システム118にサブミットする(ステップ212)。一実施形態では、サービスコーディネータ106は、根本原因解析を含む障害解析レポートを生成し、そのレポートをブロックチェーン台帳システム118にサブミットする。根本原因解析を含んだレポートを生成することは、障害の根本原因を突き止めるプロセスにユーザが介入しなくてもよいので有利である。根本原因解析を含むレポートをブロックチェーン台帳にサブミットすることは、ブロックチェーン台帳上のレポートは改変することができないので有利である。一実施形態では、レポートが、1つまたは複数の修正アクションを含む。一実施形態では、サービスコーディネータ106は、1つまたは複数の問題のあるシステムを所有者に通知する。その実施形態では、通知が、生成されたレポートを含む。例えば、サービスコーディネータ106は、生成されたレポートを含む電子メールまたはテキストメッセージを送ることにより、問題のあるシステムを所有者に通知することができる。他の例では、サービスコーディネータ106は、ブロックチェーン台帳システム118上のレポートを見るためのリンクを有する電子メールまたはテキストメッセージを送ることにより、問題のあるシステムを所有者に通知することもできる。一実施形態では、サービスコーディネータ106は、解析結果をサブミットし、解析モジュール110を介してレポートを生成する。
【0035】
サービスコーディネータ106は、スマートコントラクトを取り出す(ステップ214)。一実施形態では、サービスコーディネータ106は、問題のあるシステムに関連するスマートコントラクトをデータベース120から取り出す。一実施形態では、取り出されたスマートコントラクトは、問題のあるシステムの所有者とクラウド管理プラットフォーム114との間の合意を定義する。例えば、システム所有者は、サービスプロビジョニングのプロセス中に、システムが性能の問題などの障害に遭遇した場合に、API呼び出しなどの着信要求に対して、その要求を実際に処理することなく応答する責任をサービスコーディネータ106に割り当てることに同意していてもよい。一実施形態では、サービスコーディネータ106がスマートコントラクトを取り出すと、サービスコーディネータ106は、自動回復モジュール112を起動して、スマートコントラクトの要件を実装する。
【0036】
サービスコーディネータ106は、問題のあるシステムについての着信API呼び出しを受け取る(ステップ216)。一実施形態では、クラウド管理プラットフォーム114がプロビジョニング要求ワークフローを実行し続ける際、サービスコーディネータ106は、前に特定された問題のあるシステムについての1つまたは複数の着信API呼び出しを受け取る。一実施形態では、サービスコーディネータ106は、問題のあるシステムについての着信API呼び出しを自動回復モジュール112を介して受け取る。
【0037】
サービスコーディネータ106は、データ更新を処理する(ステップ218)。一実施形態では、着信API呼び出しデータに基づいて、サービスコーディネータ106は、問題のあるシステムによっては処理することができない要求呼び出しに由来するデータ更新を開始する。一実施形態では、サービスコーディネータ106は、処理されていない呼び出し詳細を自動回復モジュール112を介して受け取り、必要に応じて、スマートコントラクトに基づいて、そのデータを様々なアクションにパースする。例えば、サービスコーディネータ106は、問題のあるシステムに関連するバックエンドデータベースのテーブルを、自動回復モジュール112を介して更新することができる。他の例では、サービスコーディネータ106は、自動回復モジュール112を介して、従来型のシステムに記録を挿入することもできる。一実施形態では、自動回復モジュール112は、各プロビジョニング要求について最終的な整合性を実現するために、バッチ更新をオフラインで実行する。一実施形態では、データ更新を処理することが、問題のあるシステムにより後に処理される同期されていないデータを生成すること、もしくは、特定すること、または、その両方を含む。データ更新を処理することにより、サービスコーディネータ106は、問題のあるシステムが原因であり得る、サービスの中断および介入の必要性を阻止する。
【0038】
サービスコーディネータ106は、着信API呼び出しへのダミー応答を生成する(ステップ220)。一実施形態では、サービスコーディネータ106は、取り出されたスマートコントラクトに基づいて、着信API呼び出しへのダミー応答を生成する。スマートコントラクトを取り出し、取り出されたスマートコントラクトに基づいてダミー応答を生成することは、問題のあるシステムからの応答を、問題が解決された際に発生するもののように見せ、こうすることで、プロビジョニングを遅延なく完了させることが可能になるので有利である。他の実施形態では、サービスコーディネータ106は、根本原因解析の内容に基づいて、着信API呼び出しへのダミー応答を生成する。更なる実施形態では、サービスコーディネータ106は、取り出されたスマートコントラクトと根本原因解析との両方に基づいて、着信API呼び出しへのダミー応答を生成する。例えば、ダミー応答は、「ダミーok」であり得る。他の例では、ダミー応答は、「処理対象データ」であり得る。さらに、当業者に認識されているように、HTTPが、ユーザ要求の結果を伝えるのに使用可能な40個の標準ステータスコードを定義する。これらのステータスコードは、5つのカテゴリに分けられ、「2xx Success」は、ユーザの要求が成功裏に実行されたことを示す。例えば、ダミー応答は「200(OK)」であり得、これは、REST API呼び出しが、要求されたアクションを成功裏に実行したことを示す。他の例では、ダミー応答は「201(Created)」であり得、これは、コントローラアクションに由来するものなどのリソースが作成されたことを示す。一実施形態では、サービスコーディネータ106は、自動回復モジュール112を介して、問題のあるシステムの模擬システムまたはシミュレータとして動作し、新たなシステム呼び出しごとに、サービスコーディネータ106は、問題のあるシステムによりシステム呼び出しが完了されたかのように応答する。ダミー応答は、問題のあるシステムがプロビジョニングワークフローを止めないのでサービスプロビジョニングを完了させることを可能にする。
【0039】
サービスコーディネータ106は、着信API呼び出しからのデータをブロックチェーン台帳システム118にサブミットする(ステップ222)。一実施形態では、サービスコーディネータ106は、1つまたは複数の着信API呼び出しに関連するデータ、すなわち、処理されていない呼び出し詳細を収集し、そのデータをブロックチェーン台帳システム118にサブミットする。当業者には理解されるように、そのデータは、API名称および関連するパラメータ、システムID、タイムスタンプ、エラーコード、エラーメッセージ、エラーログ、ならびに、REST API呼び出しの他の要求/応答例など、API呼び出しの詳細を含み得る。一実施形態では、サービスコーディネータ106は、そのデータを自動回復モジュール112を介してブロックチェーン台帳システム118にサブミットする。一実施形態では、サービスコーディネータ106は、そのデータをデータベース120に挿入する。一実施形態では、着信API呼び出しデータに加えて、サービスコーディネータ106は、生成されたダミー応答を、関連するAPI呼び出しデータとともにブロックチェーン台帳システム118にサブミットする。一実施形態では、着信API呼び出しデータに加えて、サービスコーディネータ106は、処理された更新に関連する任意のデータを、関連するAPI呼び出しデータとともにブロックチェーン台帳システム118にサブミットする。
【0040】
サービスコーディネータ106は、問題のあるシステムが復旧したかどうかを判定する(判断ブロック224)。問題のあるシステムのステータスをモニタすることに基づいて、サービスコーディネータ106は、問題のあるシステムが検出された障害から復旧したかどうかを判定する。一実施形態では、サービスコーディネータ106は、問題のあるシステムの所有者から、問題が解決され、テストされたことを示す通知を受け取る。
【0041】
サービスコーディネータ106が、問題のあるシステムが復旧されていないと判定した場合(判断ブロック224の「いいえ」の分岐)、サービスコーディネータ106は、ステップ216に戻って、問題のあるシステムについての着信API呼び出しの受取りを続行する。
【0042】
サービスコーディネータ106が問題のあるシステムが復旧したと判定した場合(判断ブロック224の「はい」の分岐)、サービスコーディネータ106は、復旧したシステムに制御を戻す(ステップ226)。一実施形態では、問題のあるシステムの復旧に応答して、サービスコーディネータ106は、ブロックチェーン台帳システム118へのAPI呼び出しデータのサブミットを停止し、シミュレータがAPI呼び出しに応答できなくする。1つの実施形態では、サービスコーディネータ106は、要求取込みモジュール108がAPI呼び出しをブロックチェーン台帳システム118にサブミットすることを停止する。1つの実施形態では、サービスコーディネータ106は、自動回復モジュール112がシミュレータとして動作できないようにする。1つの実施形態では、サービスコーディネータ106が、データベース120に記憶されたプロビジョニング履歴データに加えるべき、より多くの成功データを取り込むためにブロックチェーン台帳システム118にAPI呼び出しをサブミットし続ける。
【0043】
図3は、本発明の一実施形態に係る、
図1の分散データ処理環境100内のサーバコンピュータ104上でのサービスコーディネータ106の動作ステップの例300を示す。例300は、システム呼び出しの階層型の層と、時間系列との両方を表す。例300は、ウェブユーザインタフェース302と、ブラウザ304と、本明細書でAPI呼び出し306としたAPI呼び出し306
1-Nと、クラウド管理プラットフォーム314(
図1のクラウド管理プラットフォーム114を表す)と、本明細書で外部従属システム316とした外部従属システム316
1-N(
図1の外部従属システム116を表す)とを含む。
図2のステップ202について議論されたように、ユーザがサービスプロビジョニングを必要とすると、ユーザは、ユーザポータルとしても知られるウェブユーザインタフェース302からブラウザ304を介してクラウド管理プラットフォーム314に要求をサブミットし、引き続き、クラウド管理プラットフォーム314は、外部従属システム316へのAPI呼び出し306、および、それからのAPI呼び出し306を起動する。
【0044】
図1のブロックチェーン台帳システム118で分かるように、サービスプロビジョニング中のどのような問題解析または障害解析をも容易にするために、サービスコーディネータ106は、サービスプロビジョニング要求に関連するデータを、クラウド管理プラットフォーム314からブロックチェーンノード324にサブミットする。データタイプ334は、ブロックチェーンノード324にサブミットされるデータの例であり、タイムスタンプ、要求ID、テナントもしくはユーザまたはその両方、ならびに、要求パラメータを含む。さらに、サービスプロビジョニング実行ワークフロー実行が進むと、サービスコーディネータ106は、外部従属システム316に関連するデータをブロックチェーンノード326
1-N(本明細書では、
図1のブロックチェーン台帳システム118上のブロックチェーンノード326)にサブミットする。データタイプ336
1-Nは、ブロックチェーンノード326にサブミットされるデータの例であり、タイムスタンプおよびサービス呼び出しパラメータを含む。イベント312は、
図2のステップ204について議論されたように、サービスコーディネータ106が外部従属システム316
N上のプロビジョニング障害を検出することを表す。
図2のステップ206および208について議論されたように、サービスコーディネータ106は、新たなブロックチェーンノード328として示されたプロビジョニング障害に関連するデータを取り込み、
図1のブロックチェーン台帳システム118にサブミットする。データタイプ336
N+1は、新たなブロックチェーンノード328にサブミットされるデータの例であり、タイムスタンプ、システムID、エラーコード、および、エラーメッセージを含む。
図2のステップ210および212について議論されたように、問題のあるシステム、すなわち、外部従属システム316
Nが特定され、サービスコーディネータ106がプロビジョニング障害の根本原因を突き止めるまで、サービスコーディネータ106は、ブロックチェーン台帳システム118に継続的に新たなブロックチェーンノードを加える。
【0045】
図4は、本発明の一実施形態に係る、
図1の分散データ処理環境100内のサーバコンピュータ104のコンポーネントのブロック図を示す。
図4は、1つの実装形態の例証のみを提供し、異なる実施形態が実装され得る環境については、どのような制限も示唆するものではないことを理解されたい。図示された環境に対して多くの修正を行うことができる。
【0046】
サーバコンピュータ104は、プロセッサ404、キャッシュ414、メモリ406、永続ストレージ408、通信ユニット410、入出力(I/O)インタフェース412、および、通信ファブリック402を含むことが可能である。通信ファブリック402は、キャッシュ414、メモリ406、永続ストレージ408、通信ユニット410、および、入出力(I/O)インタフェース412間の通信をもたらす。通信ファブリック402は、プロセッサ(マイクロプロセッサ、通信プロセッサおよびネットワークプロセッサなど)、システムメモリ、周辺デバイス、ならびに、コンピュータシステム内の他の任意のハードウェアコンポーネント間で、データもしくは制御情報またはその両方を渡し合うために設計された任意のアーキテクチャを用いて実装され得る。例えば、通信ファブリック402は、1つまたは複数のバスを用いて実装され得る。
【0047】
メモリ406および永続ストレージ408は、コンピュータ可読記憶媒体である。本実施形態では、メモリ406はランダムアクセスメモリ(RAM)を含む。一般に、メモリ406は、任意の適当な揮発性または不揮発性のコンピュータ可読記憶媒体を含み得る。キャッシュ414は、メモリ406から得られる、少し前にアクセスされたデータ、および、少し前にアクセスされたデータに近いデータを保持することによって、プロセッサ404の性能を強化する高速メモリである。
【0048】
本発明の実施形態を実践するために使用されるプログラム命令およびデータ、例えば、サービスコーディネータ106は、サーバコンピュータ104のそれぞれのプロセッサ404のうちの1つまたは複数によるキャッシュ414を介した実行もしくはアクセス、または、その両方のために永続ストレージ408に記憶される。本実施形態では、永続ストレージ408は、磁気ハードディスクドライブを含む。そうする代わりに、または、磁気ハードディスクドライブに加えて、永続ストレージ408は、ソリッドステートハードドライブ、半導体記憶デバイス、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM)、フラッシュメモリ、または、プログラム命令もしくはデジタル情報を記憶可能である他の任意のコンピュータ可読記憶媒体を含み得る。
【0049】
永続ストレージ408によって使用される媒体は、リムーバブルであってもよい。例えば、永続ストレージ408のために、リムーバブルハードドライブを使用することもできる。他の例には、光学ディスクおよび磁気ディスク、サムドライブ、ならびに、永続ストレージ408の一部分でもある他のコンピュータ可読記憶媒体への転送のためにドライブ内に挿入されるスマートカードが含まれる。
【0050】
これらの例では、通信ユニット410は、クラウド管理プラットフォーム114およびブロックチェーン台帳システム118のリソースを含めた他のデータ処理システムまたはデバイスとの通信をもたらす。これらの例において、通信ユニット410は、1つまたは複数のネットワークインタフェースカードを含む。通信ユニット410は、物理的通信リンクおよび無線通信リンクのいずれかまたは両方の使用を通じて通信を提供し得る。サービスコーディネータ106、ならびに、本発明を実装するのに使用される他のプログラムおよびデータは、通信ユニット410を通じてサーバコンピュータ104の永続ストレージ408にダウンロードされてもよい。
【0051】
I/Oインタフェース412は、サーバコンピュータ104に接続され得る他のデバイスを用いたデータの入力および出力を可能にする。例えば、I/Oインタフェース412は、キーボード、キーパッド、タッチスクリーン、マイク、デジタルカメラ、もしくは、他の何らかの適当な入力デバイス、または、その組み合わせなどの外部デバイス416への接続を提供してよい。外部デバイス416はまた、例えば、サムドライブ、ポータブルな光学ディスクまたは磁気ディスク、および、メモリカードなどのポータブルコンピュータ可読記憶媒体を含み得る。例えば、サーバコンピュータ104上のサービスコーディネータ106など、本発明の実施形態を実践するのに使用されるソフトウェアおよびデータは、こうしたポータブルコンピュータ可読記憶媒体に記憶することができ、I/Oインタフェース412を介して永続ストレージ408にロードすることが可能である。I/Oインタフェース412は、ディスプレイ418にも接続する。
【0052】
ディスプレイ418は、データをユーザに表示するメカニズムを提供し、例えば、コンピュータモニタであり得る。ディスプレイ418は、タブレットコンピュータのディスプレイなどのタッチスクリーンとして機能することも可能である。
【0053】
本開示はクラウドコンピューティングについての詳細な説明を含むが、本明細書で記載される教示内容の実施は、クラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られている、または、今後開発される他の任意のタイプのコンピューティング環境と併せて実装することが可能である。
【0054】
クラウドコンピューティングは、管理の労力またはサービスのプロバイダとの対話を最小限に抑えながら迅速にプロビジョニングおよびリリースできる構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、および、サービス)の共有プールに対する便利なオンデマンドネットワークアクセスを可能にするための、サービス提供モデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および、少なくとも4つの展開モデルを含み得る。
【0055】
以下が特性である。
【0056】
オンデマンドセルフサービス:クラウドコンシューマは、サービスプロバイダとの人的対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワークストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
【0057】
幅広いネットワークアクセス:ネットワークを介して能力を利用可能であり、異種混交のシンクライアントプラットフォームまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、および、PDA)による使用を促進する標準的なメカニズムを通して能力がアクセスされる。
【0058】
リソースプーリング:プロバイダのコンピューティングリソースが、マルチテナントモデルを使用して複数のコンシューマにサービスを提供するようにプールされ、様々な物理リソースおよび仮想リソースの、需要に従った動的な割当ておよび再割当てが行われる。コンシューマは、一般には、提供されるリソースの厳密な位置を制御できない、または、その知識がないが、より高い抽象レベル(例えば、国、州、または、データセンタ)では位置を指定可能であることもある点で位置独立性がある。
【0059】
迅速な拡張性:能力を迅速にかつ伸縮自在に、場合によっては自動的にプロビジョニングし、即座にスケールアウトすることも、迅速にリリースして即座にスケールインすることもできる。コンシューマにとっては、多くの場合、プロビジョニングに利用可能な能力が無制限にあるように感じられ、また、いつでもどんな量でも購入可能である。
【0060】
計測されるサービス:クラウドシステムが、サービスのタイプ(例えば、ストレージ、処理、帯域幅、および、アクティブなユーザアカウント)に適したある程度の抽象化レベルで計量能力を活用することにより、リソースの使用を自動的に制御し最適化する。リソース使用が、モニタ、制御、および、レポートされ、こうすることで、利用されるサービスのプロバイダおよびコンシューマの両方に透明性を提供することができる。
【0061】
以下がサービスモデルである。
【0062】
サービスとしてのソフトウェア(SaaS):コンシューマに提供される能力は、クラウドインフラストラクチャ上で実行しているプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインタフェースを通して様々なクライアントデバイスからアクセス可能である。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージ、または、個々のアプリケーション能力さえも含む基礎となるクラウドインフラストラクチャを管理することも、制御することもない。ただし、限定されたユーザ固有のアプリケーション構成設定は例外となる場合がある。
【0063】
サービスとしてのプラットフォーム(PaaS):コンシューマに提供される能力は、プロバイダによりサポートされるプログラミング言語およびツールを使用して作成される、コンシューマが作成または取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、または、ストレージを含む基礎となるクラウドインフラストラクチャを管理することも、制御することもないが、展開されたアプリケーション、また場合によっては、アプリケーションホスティング環境構成を制御することができる。
【0064】
サービスとしてのインフラストラクチャ(IaaS):コンシューマに提供される能力は、処理、ストレージ、ネットワーク、および、他の基本的なコンピューティングリソースをプロビジョニングすることであり、コンシューマは、オペレーティングシステムおよびアプリケーションを含み得る任意のソフトウェアを展開して実行することができる。コンシューマは、基礎となるクラウドインフラストラクチャを管理することも、制御することもないが、オペレーティングシステム、ストレージ、展開されたアプリケーションを制御することができ、場合によっては、選択されたネットワーキングコンポーネント(例えば、ホストファイアウォール)を限定された形で制御することができる。
【0065】
展開モデルは以下の通りである。
【0066】
プライベートクラウド:クラウドインフラストラクチャが、一組織のためだけに運用される。それは、組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0067】
コミュニティクラウド:クラウドインフラストラクチャが、いくつかの組織で共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシ、および、法令順守に関わる考慮事項)を有する特定のコミュニティをサポートする。これは、組織または第三者が管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0068】
パブリッククラウド:クラウドインフラストラクチャが、一般大衆または大きな業界団体により利用可能になり、クラウドサービスを販売する組織により所有される。
【0069】
ハイブリッドクラウド:クラウドインフラストラクチャが、2つまたはそれより多くのクラウド(プライベート、コミュニティ、または、パブリック)を組み合わせたものであり、これらクラウドは、独特なエンティティであり続けるが、データおよびアプリケーションの移植性(例えば、クラウド間で負荷分散するためのクラウドバースト)を可能にする標準化技術または独自技術によって結びつけられている。
【0070】
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性、および、セマンティック相互運用性を重視したサービス指向型である。クラウドコンピューティングの中核には、相互接続されたノードからなるネットワークを含むインフラストラクチャが存在する。
【0071】
ここで
図5を参照すると、例示的なクラウドコンピューティング環境50が示されている。図示のように、クラウドコンピューティング環境50は、クラウドコンシューマにより使用されるローカルコンピューティングデバイス(例えば、パーソナルデジタルアシスタント(PDA)もしくはセルラ電話機54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは、自動車コンピュータシステム54N、または、それらの組み合せなど)が通信をすることができる1つまたは複数のクラウドコンピューティングノード10を含む。ノード10は、互いに通信することができる。それらは、上記で説明されたようなプライベートクラウド、コミュニティクラウド、パブリッククラウド、もしくは、ハイブリッドクラウド、または、それらの組み合せなどの1つまたは複数のネットワーク内で物理的にまたは仮想的にグループ分け(図示せず)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてインフラストラクチャ、プラットフォーム、もしくはソフトウェア、または、その組み合せを提供することが可能になり、そのサービスのために、クラウドコンシューマがローカルのコンピューティングデバイス上にリソースを維持する必要はない。
図5に示されたコンピューティングデバイス54Aから54Nのタイプは例示のみを意図しており、コンピューティングノード10およびクラウドコンピューティング環境50は、任意のタイプのネットワークもしくはネットワークアドレス指定可能な接続またはその両方を介して(例えば、ウェブブラウザを使用して)、任意のタイプのコンピュータ化デバイスと通信できることを理解されたい。
【0072】
ここで
図6を参照すると、クラウドコンピューティング環境50(
図5)により提供される機能抽象化層のセットが示されている。
図6に示されているコンポーネント、層、および、機能は例示のみを意図したものであり、本発明の実施形態がそれらに限定されないことを予め理解されたい。図示されているように、以下の層および対応する機能が設けられている。
【0073】
ハードウェアおよびソフトウェアの層60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶デバイス65、ならびに、ネットワークおよびネットワーキングコンポーネント66が含まれる。いくつかの実施形態では、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0074】
仮想化層70は、抽象化層を提供する。抽象化層から、以下の仮想エンティティの例が提供され得る:仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに、仮想クライアント75。
【0075】
1つの例では、管理層80は、以下で説明される機能を提供し得る。リソースプロビジョニング81では、クラウドコンピューティング環境内でタスクを実行するのに利用されるコンピューティングリソースおよび他のリソースの動的な調達を行う。計測および価格設定82では、クラウドコンピューティング環境内でリソースが利用されると費用の追跡を行い、これらのリソースの消費に対して請求書作成または請求書送付を行う。1つの例では、これらのリソースは、アプリケーションソフトウェアライセンスを含み得る。セキュリティでは、クラウドコンシューマおよびタスクについての身元確認、ならびに、データおよび他のリソースについての保護が行われる。ユーザポータル83では、コンシューマおよびシステムアドミニストレータにクラウドコンピューティング環境へのアクセスが与えられる。サービスレベル管理84では、必要なサービスレベルが満たされるように、クラウドコンピューティングリソースの割当ておよび管理を行う。サービス水準合意(SLA)立案および履行85では、SLAに従って将来的に必要になることが予想されるクラウドコンピューティングリソースについての事前調整、および、その調達を行う。
【0076】
ワークロード層90では、複数の機能例が提供される。それらの機能ためにクラウドコンピューティング環境を利用することができる。この層から提供することができるワークロードおよび機能の例には、マッピングおよびナビゲーション91と、ソフトウェア開発およびライフサイクル管理92と、仮想教室教育提供93と、データ解析処理94と、トランザクション処理95と、サービスコーディネータ106とが含まれる。
【0077】
本明細書に記載されるプログラムは、本発明の特定の実施形態においてそれらが実装される用途に基づいて特定される。しかしながら、本明細書でのどのような特定のプログラム名称も、単に便宜上の目的で使用されており、したがって、本発明は、そのような名称によって特定もしくは示唆される、または、特定および示唆される任意の特定の用途のみでの使用に限定されるべきでないことを理解されたい。
【0078】
本発明は、システム、方法、もしくは、コンピュータプログラム製品、または、その組み合わせであり得る。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数のコンピュータ可読記憶媒体)を含み得る。
【0079】
コンピュータ可読記憶媒体は、命令実行デバイスにより使用される命令を保持および記憶可能な任意の有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または、これらの任意の適当な組み合わせであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非包括的なリストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、パンチカードまたは命令が記録されている溝内の隆起構造などの機械的に符号化されたデバイス、および、上述のものの任意の適当な組み合わせを含む。本明細書では、コンピュータ可読記憶媒体自体は、電波または自由伝搬する他の電磁波、導波路もしくは他の伝送媒体を介して伝搬する電磁波(例えば、ファイバオプティックケーブルを通過する光パルス)、または、ワイヤを介して伝送される電気信号などの一時的な信号とみなされるものではない。
【0080】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされてもよく、あるいは、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくは無線ネットワーク、またはその組み合わせを介して、外部コンピュータまたは外部記憶デバイスにダウンロードされてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくは、エッジサーバ、または、その組み合わせを備え得る。各コンピューティング/処理デバイスにおけるネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0081】
本発明の動作を実行するコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(登録商標)もしくはC++などのオブジェクト指向プログラミング言語、および、「C」プログラミング言語もしくは同様のプログラミング言語などの従来からの手続き型プログラミング言語を含めた1つもしくは複数のプログラミング言語の任意の組み合わせで書かれたソースコードもしくはオブジェクトコードであってもよい。コンピュータ可読プログラム命令は、スタンドアロンのソフトウェアパッケージとして、ユーザのコンピュータ上で全体を実行すること、ユーザのコンピュータ上で一部分を実行することができ、ユーザのコンピュータ上で一部分を、遠隔のコンピュータ上で一部分を実行すること、または、遠隔のコンピュータもしくはサーバ上で全体を実行することができる。後者のシナリオでは、遠隔のコンピュータは、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または、その接続は、外部コンピュータに対して(例えば、インターネットサービスプロバイダを使用してインターネットを介して)行われてもよい。いくつかの実施形態では、例えば、プログラム可能型ロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、または、プログラム可能型ロジックアレイ(PLA)を含む電子回路が、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによりコンピュータ可読プログラム命令を実行して、電子回路をパーソナライズ化することができる。
【0082】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)、および、コンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して、説明されている。フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装可能であることが理解されるであろう。
【0083】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、または、マシンを生成するための他のプログラマブルデータ処理装置のプロセッサに提供し、こうすることで、コンピュータのプロセッサまたは他のプログラマブルデータ処理装置を介して実行される命令が、フローチャートもしくはブロック図またはその両方における1つまたは複数のブロックにおいて指定された機能/動作を実装する手段を作成するようにしてもよい。また、これらのコンピュータ可読プログラム命令は、コンピュータ、プログラマブルデータ処理装置、もしくは、他のデバイス、または、その組み合わせに特定の様式で機能するように指示することが可能なコンピュータ可読記憶媒体にも記憶することができ、これにより、命令を記憶したコンピュータ可読記憶媒体が、フローチャートもしくはブロック図の、またはこれらの両方の1つまたは複数のブロックで指定される機能/動作の態様を実装する命令を含む製品を含むようになる。
【0084】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブルデータ処理装置、または、他のデバイスにロードして、コンピュータ、他のプログラマブル装置、または、他のデバイス上で一連の動作ステップを実行させることでコンピュータ実装プロセスを作成することもでき、これにより、コンピュータ、他のプログラマブル装置、または、他のデバイス上で実行される命令が、フローチャートもしくはブロック図の、またはこれらの両方の1つまたは複数のブロックで指定される機能/動作を実装するようになる。
【0085】
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品の考えられる実装形態のアーキテクチャ、機能、および動作を示している。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または一部分を表し得る。いくつかの代替実装形態では、ブロックに記されている機能は、図面に記されている順序とは異なる順序で行われ得る。例えば、連続して示されている2つのブロックが、実際には、実質的に同時に実行されてもよく、または、こうしたブロックは、場合によっては、関係する機能次第で逆の順序で実行されてもよい。ブロック図もしくはフローチャート図またはその両方の各ブロック、および、ブロック図もしくはフローチャート図またはその両方におけるブロックの組み合わせが、指定された機能もしくは動作を実行する、または特定用途向けハードウェアおよびコンピュータ命令の組み合わせを実行する、特定用途向けのハードウェアベースのシステムによって実装され得ることにも留意されたい。
【0086】
本発明の様々な実施形態の説明は、例示目的で提示されるが、包括的になること、または、開示された実施形態に限定されることが意図されるものではない。本発明の範囲および趣旨から逸脱することのない多くの修正形態および変形形態が、当業者には明らかになるであろう。本明細書で使用される専門用語は、実施形態の原理、市場で見られる技術の実用的な適用、もしくは、それに対する技術的改善を最適に説明するように、または、本明細書で開示される実施形態を他の当業者が理解することを可能にするように選択された。