(58)【調査した分野】(Int.Cl.,DB名)
前記変換命令は、単一のトークンに対して作用する単純な関数又は複数のトークン若しくはトークンと文字値との混合物に対して作用する多要素関数を含む、請求項1に記載の方法。
データ・アスペクトがトークン化されているかどうか判定し、前記データ・アスペクトがトークン化されていない場合には、前記データ・アスペクトに変換を適用し、前記データ・アスペクトがトークン化されている場合には、変換命令によりトークンに注釈付けすることを含む、請求項12に記載の方法。
【発明の概要】
【発明が解決しようとする課題】
【0006】
従って、当該分野において上述の問題に対処することが必要とされる。
【課題を解決するための手段】
【0007】
本発明の第1の態様によれば、外部処理を用いてアプリケーション内のセンシティブ・データを扱うためのコンピュータ実装方法が提供され、該方法は、セキュア環境において実行され、セキュア環境内でアプリケーションを処理することであって、アプリケーションは処理のための要求メッセージを外部処理ロケーションに送信することが可能であり、要求メッセージはデータ・アスペクトを含む、セキュア環境内でアプリケーションを処理することと、処理のための要求メッセージのデータ・アスペクト内のセンシティブ・データを識別することと、センシティブ・データをトークン化データで置き換え、センシティブ・データとトークン化データとの間のマッピングをセキュア環境内に格納することによって、データ・アスペクト内のセンシティブ・データをトークン化することと、トークン化データを含む、処理のための要求メッセージを外部処理ロケーションに送信することと、外部処理ロケーションから、トークン化データに対する変換命令によるトークン化データのための注釈を含む処理されたメッセージを受信することと、トークン化データをセンシティブ・データで置き換えること及びセンシティブ・データに対して変換命令を行うことと、を含む。
【0008】
このことは、非センシティブ・データ上の大量の計算変換の大部分を外部処理環境において実行することを可能にするという利点を提供する。センシティブ・データ・アスペクトは、外部処理環境内にある間はトークン化されており、センシティブ・データ上の変換処理は、セキュア環境に戻ったときに外部処理環境によって提供される命令に従って実行される。
【0009】
処理のための要求メッセージのデータ・アスペクト内のセンシティブ・データを識別することは、メッセージ・モデルからメッセージのデータ・アスペクトについてのメタデータを読むことを含むことができる。このことは、センシティブ・データ・アスペクトを、アプリケーションの開発とは別にセキュリティ担当者によってメッセージ・モデル内で注釈付けすることができるという利点を有する。
【0010】
処理されたメッセージをセキュア環境において受信することは、セキュア環境における更なる処理のために、完全に変換されていないデータ・アスペクトを識別することを含むことができる。
【0011】
トークン化データをセンシティブ・データで置き換えること及びセンシティブ・データに対して変換命令を行うことは、要求されるまで遅延させることができる。このことは、センシティブ・データの変換をそのアプリケーションに適した時点で行うことができ、関連した計算作業を削減することができるという利点を有する。
【0012】
処理のための要求メッセージは、要求メッセージのデータ・アスペクトを所与のサービスを起動するのに適した形式に変換するためのものとすることができる。
【0013】
変換命令は、単一のトークンに対して作用する単純な関数又は複数のトークン若しくはトークンと文字値との混合物に対して作用する多要素関数を含むことができる。別の実施形態において、変換命令は、データベース又は分散キャッシュ内の値をルックアップするためのデータベース又はキャッシュ・ルックアップ命令を含む。変換命令は、データベース又はキャッシュ・ルックアップ命令をさらに含むことができ、ルックアップからの出力は、セキュア環境の外部で処理される場合、次のトークン化のためにセキュアであるとマーク付けされたアウトバウンド・メッセージ内のフィールドにマッピングされる。変換命令は、その処理を入力データのセンシティブ性に基づいて分離することができる、純粋関数型変換とすることができる。
【0014】
1つの実施形態において、セキュア環境内でアプリケーションを処理することは、付加的なリソースが必要とされるときにクラウド・バースティングのための方法を使用することができる。別の実施形態において、セキュア環境内でアプリケーションを処理することは、分散型アプリケーションの一部を含むことができる。
【0015】
本発明の第2の態様によれば、外部処理を用いてアプリケーション内のセンシティブ・データを扱うためのコンピュータ実装方法が提供され、該方法は、外部環境において実行され、トークン化データを有する1つ又は複数のデータ・アスペクトを含む要求メッセージを、セキュア環境から処理のために外部処理ロケーションにおいて受信することと、データ・アスペクトのトークン化された値を変換命令による注釈付きトークン化データで置き換えることを含む1つ又は複数の変換をデータ・アスペクトに適用することによって、要求メッセージをコンバートすることと、変換命令による注釈付きトークン化データを有するデータ・アスペクトを含む応答メッセージを、トークン化データをセンシティブ・データで置き換え、センシティブ・データに対して変換命令を行うために、セキュア環境に送信することと、を含む。
【0016】
方法は、データ・アスペクトがトークン化されているかどうか判定し、データ・アスペクトがトークン化されていない場合には、データ・アスペクトに変換を適用し、データ・アスペクトがトークン化されている場合には、変換命令によりトークンに注釈付けすることを含むことができる。
【0017】
トークン化データに対する注釈を含むコンバートされた要求メッセージは、応答メッセージをセキュア環境に送信する前に、外部環境内の複数の処理ノードを通じて伝搬されることができる。
【0018】
本発明の第3の態様によれば、外部処理を用いてアプリケーション内のセンシティブ・データを扱うためのシステムが提供され、該システムは、セキュア環境内にあり、プロセッサと、コンポーネントの機能を実行するためにプロセッサにコンピュータ・プログラム命令を提供するように構成されたメモリとを含む、マッピング・エンジンと、アプリケーションの一部を外部環境ロケーションで処理するための要求メッセージを生成するための要求生成コンポーネントであって、要求メッセージはデータ・アスペクトを含む、要求生成コンポーネントと、処理のための要求メッセージのデータ・アスペクト内のセンシティブ・データを識別するための、センシティブ・データ識別コンポーネントと、センシティブ・データをトークン化データで置き換え、センシティブ・データとトークン化データとの間のマッピングをセキュア環境内に格納することによって、データ・アスペクト内のセンシティブ・データをトークン化するための、トークン化コンポーネントと、トークン化データを含む、処理のための前記要求メッセージを外部処理ロケーションに送信するための、要求送信コンポーネントと、外部処理ロケーションから、トークン化データに対する変換命令によるトークン化データのための注釈を含む処理されたメッセージを受信するための、応答受信コンポーネントと、トークン化データをセンシティブ・データで置き換えるためのトークン化解除コンポーネントと、センシティブ・データに対して変換命令を行うための変換命令実行コンポーネントと、を含む。
【0019】
センシティブ・データをトークン化するためのトークン化コンポーネントは、要求メッセージのデータ・アスペクトを外部処理のための形式にコンバートするための変換コンポーネントと一体とすることができる。
【0020】
トークン化データに対する変換命令によるトークン化データのための注釈は、外部処理において実行される変換論理に従う変換命令を含むことができる。
【0021】
トークン化データをセンシティブ・データで置き換えるためのトークン化解除コンポーネント及びセンシティブ・データに対して変換命令を行うための変換命令実行コンポーネントは、セキュア環境において要求されるまで遅延させることができる。
【0022】
本発明の第4の態様によれば、外部処理を用いてアプリケーション内のセンシティブ・データを扱うためのシステムが提供され、該システムは、外部処理環境内にあり、プロセッサと、コンポーネントの機能を実行するためにプロセッサにコンピュータ・プログラム命令を提供するように構成されたメモリとを含む、マッピング・エンジンと、トークン化データを有する1つ又は複数のデータ・アスペクトを含む要求メッセージを、セキュア環境から処理のために外部処理ロケーションにおいて受信するための、要求受信コンポーネントと、データ・アスペクトのトークン化された値を変換命令による注釈付きトークン化データで置き換えることを含む1つ又は複数の変換をデータ・アスペクトに適用することによって要求メッセージをコンバートするための、メッセージ・コンバーティング・コンポーネントと、変換命令による注釈付きトークン化データを有するデータ・アスペクトを含む応答メッセージを、トークン化データセンシティブ・データで置き換え、センシティブ・データに対して変換命令を行うために、セキュア環境に送信するための、メッセージ送信コンポーネントと、を含む。
【0023】
システムは、データ・アスペクトがトークン化されているかどうか判定するためのトークン判定コンポーネントを含むことができ、データ・アスペクトがトークン化されていない場合には、データ・アスペクトに変換を適用し、データ・アスペクトがトークン化されている場合には、変換命令によりトークンに注釈付けする。
【0024】
本発明の第5の態様によれば、外部処理を用いてアプリケーション内のセンシティブ・データを扱うためのコンピュータ・プログラム製品が提供され、該コンピュータ・プログラム製品は、組み入れられたプログラム命令を有するコンピュータ可読ストレージ媒体を含み、該プログラム命令は、プロセッサによって実行可能であり、該プロセッサに、セキュア環境内でアプリケーションを処理することであって、アプリケーションは処理のための要求メッセージを外部処理ロケーションに送信することが可能であり、要求メッセージはデータ・アスペクトを含む、セキュア環境内でアプリケーションを処理することと、処理のための要求メッセージのデータ・アスペクト内のセンシティブ・データを識別することと、センシティブ・データをトークン化データで置き換え、センシティブ・データとトークン化データとの間のマッピングをセキュア環境内に格納することによって、データ・アスペクト内のセンシティブ・データをトークン化することと、トークン化データを含む、処理のための前記要求メッセージを外部処理ロケーションに送信することと、外部処理ロケーションから、トークン化データに対する変換命令によるトークン化データのための注釈を含む処理されたメッセージを受信することと、トークン化データをセンシティブ・データで置き換えること及びセンシティブ・データに対して変換命令を行うことと、を行わせる。
【0025】
本発明の第6の態様によれば、外部処理を用いてアプリケーション内のセンシティブ・データを扱うためのコンピュータ・プログラム製品が提供され、該コンピュータ・プログラム製品は、組み入れられたプログラム命令を有するコンピュータ可読ストレージ媒体を含み、該プログラム命令は、プロセッサによって実行可能であり、該プロセッサに、トークン化データを有する1つ又は複数のデータ・アスペクトを含む要求メッセージを、セキュア環境から処理のために外部処理ロケーションにおいて受信することと、データ・アスペクトのトークン化された値を変換命令による注釈付きトークン化データで置き換えることを含む1つ又は複数の変換をデータ・アスペクトに適用することによって、要求メッセージをコンバートすることと、変換命令による注釈付きトークン化データを有するデータ・アスペクトを含む応答メッセージを、トークン化データをセンシティブ・データで置き換え、センシティブ・データに対して変換命令を行うために、セキュア環境に送信することと、を行わせる。
【0026】
説明される本開示の態様は、センシティブ・データをセキュアな環境から送信することなく、アプリケーション又は統合の態様の外部処理を可能にする利点を提供する。
【0027】
本発明と見なされる主題は、本明細書の結論部にある特許請求の範囲において具体的に指し示され、明確に特許請求される。本発明は、構成及び動作の方法の両方に関して、その目的、特徴及び利点とともに、以下の詳細な説明を添付図面と共に読むときに参照することによって、最も良く理解することができる。
【0028】
ここで、本発明の好ましい実施形態が、単に例示の目的で、以下の図面を参照して説明される。
【発明を実施するための形態】
【0030】
例示を簡明かつ明確にするために、図に示される要素は、必ずしも縮尺通りに描かれていないことが認識されるであろう。例えば、要素のうちの幾つかの寸法は、明確にするために、他の要素に対して誇張されていることがある。さらに、適切と考えられる場合、参照符号は、対応する又は類似する特徴を示すために、図の間で繰り返されることがある。
【0031】
説明される方法及びシステムは、外部処理を用いてアプリケーション内のセンシティブ・データを扱うことを可能にする。この方法は、いかなるセンシティブ・データもセキュアな処理環境から出すことなく、統合フローの処理を行うようにプロビジョニングされる、クラウド、分散型環境、又は他の外部処理環境内に存在するような、遠隔エンティティの使用を可能にする。
【0032】
1つの実施形態において、いかなるセンシティブ・データも企業のオンプレミス・データセンタから出すことなく、クラウドがプロビジョニングした計算インスタンスを用いて既存の統合フローの処理の大部分を実行することができる。
【0033】
図1を参照すると、ブロック図は、説明されるシステムを実装することができる例示的な環境100を示す。セキュア環境システム110は、例えばオンプレミス・コンピューティング・システム又はシステムのネットワークの形態で設けることができる。このようなセキュア環境システム110は、機密の又はセンシティブなデータが保護されることを保証するためにファイアウォール及び他のセキュリティ手段によって保護することができ。
【0034】
セキュア環境システム110は、アプリケーション120のためのランタイム・エンジン111を含むことができる。アプリケーション120は、アプリケーション処理のサブセットの複数の処理ノード121〜123を含むことができる。
【0035】
パブリック・クラウドによって提供されるような遠隔システム130は、アプリケーション120のための処理サービスを、例えばアプリケーション120のための1つ又は複数の処理ノード141を実行するためのサービス140を提供することによって提供することが可能であり得る。
【0036】
一例において、アプリケーション120は、遠隔サービス140によって提供されるなんらかの情報又は処理を要求し得る。この情報又は処理は、アプリケーション120が要求メッセージ150をサービス140に送信することによって取得することができる。要求メッセージ150は、個人の国民保険番号、社会保障番号、又はクレジットカード番号のようなセンシティブ・データを含み得る。サービス140は、そのセンシティブ・データを、例えばその個人がある特定の金額のローンの返済を履行しない確率を計算するために使用すること望むかもしれない。応答メッセージは、その個人の信用格付け並びにその個人及びその信用履歴に関する他のなんらかの詳細を含み得る。
【0037】
この種の使用事例は、アプリケーション120とサービス140の両方が異なる形式の要求メッセージ150及び応答メッセージ160を期待するので、統合フローを必要とすることが多い。この場合、2つの統合フローが存在することになり、1つは要求メッセージ150をアプリケーションのデータ形式からのサービスのデータ形式に変換するためのものであり、もう1つは応答メッセージ160を変換するためのものである。
【0038】
IBM Integration Bus(IIB)(以前はWebsphere Message Brokerであり、ここでIBM及びWebsphereは、インターナショナル・ビジネス・マシーンズ・コーポレーションの商標である)のような統合製品において、利用可能な種々の変換技術が存在する。多くの場合、変換エンジンは、純粋関数型プログラミング・モデルを提供する。純粋関数型変換言語(IIBにおけるGraphical Data Mapperなど)は、変換が、他のいずれかの変換に対する副作用を有さないことを保証する。
【0039】
アプリケーション120からサービス140へのマッピングのような1つのデータ構造から別のデータ構造へのマッピングは、各環境内のマッピング・エンジン112、132における変換コンポーネント113、133によって実行され得る多数の変換から構成される。
【0040】
各変換は、0、1つ又は複数の入力と、1つ又は複数の出力とを有する。変換に対する入力及び出力は、マッピングのための入力及び出力データ構造内のフィールドである。例えば、ある変換は、フィールドの値を大文字に変換することができ、又は2つのフィールドを1つに連結することができる。これらの変換は、互いに完全に独立である。例えば、1つの変換の出力を他の変換の入力として使用することはできず、また、変換が実行される順序を制御又は予測することはできない。
【0041】
説明される方法を用いて、このマッピングを、センシティブ・データを送信せずに、パブリック・クラウド130上にバースティングして計算ワークロードをオフロードすることができる。代わりに、セキュア環境システム110のマッピング・エンジン112は、各センシティブ・フィールドをトークンで置き換えるためのトークン化コンポーネント114を含み、このトークンを後で、セキュア環境システム110上の計算インスタンスが用いて、そのフィールドの元の値を求めることができる。トークン化マッピング115は、セキュア環境システム110内で維持することができ、トークンをセンシティブ・データにマッピングする。
【0042】
マッピング・エンジン132のクラウド・インスタンスは、トークン注釈付けコンポーネント134を含むことができ、これは、これらのトークン化されたフィールドのうちの1つをその入力として有する変換を検出し、その値を変換してこれを出力フィールドに書き出す代わりに、そのトークンに加えてどの変換が行われるはずであったかの命令を格納する。非トークン化入力を有する変換についてはいずれも、変換コンポーネント133が通常通りに変換を実行し、変換された値を出力に書き出すことができる。
【0043】
ひとたび部分的に変換された応答メッセージ160がセキュア環境システム110の計算インスタンスに戻ると、完全には変換されなかったフィールドが識別され、変換がトークンを用いて元の値を求め、次いで命令された変換を実行する。
【0044】
説明される方法及びシステムを実装することができる環境の別の実施形態において、複数のデータセンタが同じ多国籍企業の管理下にある場合がある。メッセージを1つのデータセンタから別のデータセンタに送信し、応答を最初のデータセンタに返送することができる。しかしながら、このワークフローが、メッセージ内のデータの一部を国外に出すことが許可されないためにこれを送信することができないとして容認されなくなることが、後で(例えば、法律の変更又は1つのデータセンタの移転に起因して)決定されることがある。このことは、アプリケーションを再設計して、再実装及びテストのためにかなりの作業を請け負わなければならないことを意味する。
【0045】
説明される方法は、このシナリオにおいて使用することができ、この場合、唯一の変更は、データを記述するメッセージ・モデルを新たな制約条件で更新する必要があり得ること、及び、センシティブ・データのトークン化を実装し得ることである。トークン化されたメッセージを第2のデータセンタに送信することができ、第2のデータセンタは、処理を実行し、いずれかのトークン化されたフィールドに適用すべき変換の注釈を伴って応答することができる。
【0046】
図2を参照すると、フロー
図200は、セキュア環境において実行されるときの、説明される方法の態様の例示的な実施形態を示す。
【0047】
ランタイム・エンジンにおけるセキュア環境においてアプリケーションを提供する(201)ことができる。アプリケーションの一部の外部処理のための要求メッセージを生成する(202)ことができる。要求メッセージ内のセンシティブ・データを識別する(203)ことができる。これは、メッセージのデータ・アスペクトに関連付けられたメタデータを読むことによって行うことができる。
【0048】
説明される方法及びシステムにおいて、例えばメッセージ・モデルの形態であり得る、データ構造の説明又はモデルに注釈付けして、センシティブ・データを含むデータ・アスペクトを識別することができる。データ・アスペクトは、フィールド若しくは構造のようなアスペクト、又は構造内の要素を含むことができる。
【0049】
方法は、センシティブ・データを含むものとして識別されたデータ・アスペクトをトークン化する(204)ことができる。これは、センシティブ・データ値をトークンで置き換え、センシティブ・データ値に対するトークンのマッピングをセキュア環境において提供することを伴うことができる。
【0050】
次に、トークン化された値で処理するために、要求メッセージをセキュア環境から外部に送信する(205)ことができる。要求メッセージは、
図3で後述するように、外部システムによって処理されることができる。処理の間に、ひとたびセキュア環境に戻ったときにセンシティブ・データが再挿入されると実行することが必要とされる変換に関する命令により、トークン化された値を注釈付けすることができる。外部環境における処理は、非トークン化データ・アスペクトに対して変換を実行することができる。応答メッセージを返す前に、付加的なノード処理を外部システムにおいて実行することができる。
【0051】
センシティブ・データ値に対して実行すべき変換の注釈を含むトークン化された値を有する応答メッセージを、セキュア環境において受信する(206)ことができる。
【0052】
セキュア環境において、応答メッセージを処理し(207)、変換の注釈を有するトークン化データを識別することができる。いずれかのトークン化された値をマッピング内でルックアップし(208)、センシティブ・データで置き換えることができる。
【0053】
注釈において定義された通りの変換を、セキュア環境内でセンシティブ・データに適用する(209)ことができる。
【0054】
トークン化された値の置き換え及び変換の適用は、セキュア環境において、応答メッセージを受信すると即時に実行することもでき、又は処理の適切な時間まで遅延させることもできる。
【0055】
図3を参照すると、フロー
図300は、セキュア処理環境内のアプリケーションの代理としてアプリケーションの一部を処理することが可能な外部処理環境において実行されるときの、説明される方法の態様の例示的な実施形態を示す。
【0056】
外部環境においてメッセージ要求を受信する(301)ことができる。メッセージ変換内の各々の離散的なデータ・アスペクト変換302について、メッセージの入力がトークン化されているかどうかを判定する(303)ことができる。
【0057】
入力がトークン化されていない場合、外部環境における変換を実行する(304)ことができる。しかしながら、入力がトークン化されている場合、変換命令によりトークンを注釈付けする(305)ことができる。
【0058】
次いで応答メッセージをセキュア環境に送信する(306)ことができ、そこでトークン化データがひとたびセンシティブ・データで置き換えられると、いずれかの注釈付き変換が実行される。代替的に、外部処理環境において実行される付加的なノード処理が存在してもよく、その場合、メッセージを次の処理ノードに転送することができる。
【0059】
トークン化データに対して注釈付けすることができる、データ・アスペクトに対する可能な変換は、以下のものを含むことができる:
1.1つのトークンに対する単純な関数、例えば、trim(不要スペース削除)関数、sub−string(部分文字列)関数、lowercase(小文字)関数など。
2.多要素の関数、例えば、複数のトークン又はトークンと文字値との混合物のmerge(併合)関数、concatenate(連結)関数など。
3.データベース又はキャッシュ・ルックアップを命令として注釈付けすることもできる。インバウンド・メッセージは、そのストアがオンプレミスにのみ配置されている又はアクセス可能である場合に、データベース又は分散キャッシュ内の値をルックアップするためのキーを含むことができる。ルックアップからの出力は、セキュアであるとしてマーク付けされたアウトバウンド・メッセージ内のフィールドにマッピングすることができ、それはセキュア環境から送信される場合にはトークン化を必要とする。
【0060】
変換論理自体が、別のサービス(例えば、データベース、キャッシュ、システム等)を呼び出して、「自分の変換の出力におけるフィールドXの値は、自分が入力メッセージのフィールドYの値を用いてルックアップするときにデータベース内に保持されている値である」と言うことができ、ここで入力のフィールドYは、セキュアであり、トークン化され得る。従って、完了するための注釈は、対話するシステムの詳細を含むことができる。
【0061】
図4を参照すると、模式
図400は、セキュア環境、この場合オンプレミス410で実行される処理、及び、外部環境、この場合パブリック・クラウド420において実行される処理の例示的な実施形態を示す。
【0062】
要求メッセージ401は、アプリケーションから統合ソリューションのオンプレミス・インスタンスを通じて送信される。このメッセージは、個人を特定できる情報(Personally Identifiable Information、PII)と考えられるクレジットカード番号「1234 5678 9012 3456」431を含む。トークン化関数411は、クレジットカード番号を一意のトークンID「TK1」432で置き換え、実際の値431とトークン432との間のマッピング412を格納する。これは、オンプレミス・システム410内のセキュアなロケーションに格納される。
【0063】
要求メッセージ402は、変換エンジンのクラウド・インスタンス内に送信され、宛先サービス用の正しい形式に変換される。これは変換関数421によって示される。このバージョンの要求メッセージ402にはPIIは含まれていない。
【0064】
変換エンジンは、マッピングの構成に従って、メッセージ全体を変換する。クレジットカード番号は既にトークン化されているので、変換ステップ421は、単にこれを正しい宛先フィールドで置き換えるだけである。そのフィールドの値は、この特定のフィールド・マッピング用に構成された変換関数に関する情報に設定される。この場合、最後の4桁を返すsubstring()関数であり、これは、フィールド「substring(TK1,TK1.length−4)」433を与える。他の全てのフィールドについて、変換421がこの段階で適用され、実際の値が書き出される。
【0065】
部分的に変換されたメッセージ403がオンプレミス統合エンジンに返送される。トークン逆戻し(reverse token)関数413が、セキュアなストレージ・トークン・マッピング412から、トークン「TK1」に関連付けられた実際の値を取り出す。
【0066】
部分的に変換されたメッセージ404が、変換完了(complete transform)414ステップに送信される。この段階で、部分的に変換されたメッセージは、元の実際の値と、適用すべき変換についての情報、この場合「substring(“1234 5678 9012 3456”,length−4)」434とを有する。
【0067】
変換完了414ステップは、カード番号の最後の4桁を取り出すことによって、意図された変換を行い、正しい形式にされたメッセージ405、この場合「3456」435を宛先サービスに送信する。
【0068】
ここでの例は、データの大部分が、センシティブではなく、クラウド・インスタンス420において変換されることができることを示す。クレジット番号は、オンプレミス410でのみ処理されるが、クラウド・インスタンス420上で実行された変換論理421がそのフィールドに適用すべき関数を決定した。
【0069】
計算処理の大部分は、おそらく非センシティブなデータに対するものであるので、説明される方法は、付加的な柔軟性、弾力性、及び性能の利点を提供する。
【0070】
有利には、「トークン逆戻し(Reverse Tokens)」及び「変換完了(Complete Transform)」するオンプレミス・ステップは即時に実行することもでき、又は必要とされるまで遅延させることもできる。例えば、完全な変換は、シリアル化ステップまで、又は特定のフィールドが構文解析されるまで必要とされない場合がある。このことは、本明細書において説明される方法が「オンデマンド」構文解析技術及び「即時」構文解析技術の両方で働くことを可能にする。
【0071】
即時構文解析では、「トークン逆戻し」及び「変換完了」ステップを即時に実行することができる。しかしながら、オンデマンド又は要求駆動型(lazy)構文解析では、必要とされるまでこのアクションを遅延させることができる。例えば、メッセージがセキュア環境へ戻ってきたとき、以下の論理が存在するものとする:
ルート・オン・ヘッダ(Route on header)→ログ・ヘッダ(Log header)→変換(Transform)→出力(Output)
【0072】
メッセージ本文内には、トークン逆戻しステップ及び変換完了ステップの適用を必要とする1つのフィールドが存在しているかもしれない。最初の2つのノードは、メッセージ・ヘッダ内のみのデータにアクセスしているので、そのフィールドの最終値はまだ必要とされない。次に、変換を行うことができ、次いでメッセージを出力する。出力は、メッセージ全体をシリアル化し、例えば、これをメッセージキューに置く。
【0073】
いくつかの可能な選択肢は下記の通りである:
変換は、そのフィールドを変化させることなく(しかしこれを出力メッセージ内で保持して)メッセージを変換し得るので、値は出力がシリアル化されるまで必要とされない。
変換は、メッセージを変換し、そのフィールド値を必要とし得るので、トークンを逆戻しすることができ、次いで変換を完了させることができる。
変換は、メッセージからフィールドを除去するだけであり得るので、値は全く必要とされない。この場合、オンデマンドで又は必要時に構文解析することは、トークン逆戻し及び変換完了に関連付けられた計算作業が回避されたことを意味する。
【0074】
付加的な例は、以下のようなものとすることができ、各ステップはノードである:
入力(Input)→ログ(Log)→要求変換(Transform Request)→サービス呼出し(Call service)→応答変換(Transform Response)→出力(Output)
【0075】
変換ノードは、処理リソースの大部分を使用し得る。セキュア環境内の入力においてメッセージを受け取ることができ、同じ環境内でログ記録することができる。これは次にセキュア・データをトークン化し、大量の変換作業を行う(すなわち処理をクラウド・バースティングする)ためにメッセージをクラウドに送ることができる。変換されたメッセージをセキュア環境に返すことができ、そこでセキュア・データに対する変換を完了させることができる。次いで、信用格付けのような情報又はなんらかの処理を提供するサービスに対する呼出しを行うことができる(所与の例において、カード番号の形態のセキュア・データは、抽出された最後の4桁のみを有するので、今や送信することができる)。次いでサービスからの応答をオンプレミスで受け取ることができ、別の変換を実行することができる。適切だと思われる場合には、この処理を再びクラウド・バースティングさせることを選択することができる。出力をセキュア環境内の出力に返す前に、データの更なるトークン化を含む場合もあり、含まない場合もある。
【0076】
更なる例は、以下のようなものとすることができ、各ステップはノードである:
入力(Input)→ログ(Log)→変換(Transform)→ルート(Route)→変換(Transform)→外部サービス呼出し(Call external service)→変換(Transform)→ログ(Log)→出力(Output)
【0077】
これは全てセキュア環境内で行うことができ、セキュア環境内で入力メッセージを受け取り、ログ記録し、中間メッセージ構造に変換し、次いでフィールド値に基づいて次のノードにルーティングし(すなわち、次に実行すべき変換のタイプが何であるかを決定することができる)、次いで第2の変換を行って外部サービスを呼び出し、応答を変換し、応答する前にログ記録する。ここで「変換→ルート→変換」を行う3つのノードは、外部サービスを呼び出す前に変換を完了するためにセキュア環境に戻る前は、場合によっては「クラウド・バースティング」であり得る。この場合、トークン化データ上で完了する変換に関するメッセージフィールド上の注釈は、遠隔クラウド環境内のノードを通じて伝搬されることになり、次いでメッセージがセキュア環境に戻ったときに外部サービスを呼び出す前に完了される。
【0078】
説明される方法は、この使用事例を念頭に置かずに開発された変換の使用を可能にする。Graphical Data Mapperのような純粋関数型変換言語を使用して、入力データのセンシティブ性(sensitivity)に基づいて処理を分離することができる。
【0079】
方法は、トークン化技術をグラフィカル・マッパのような純粋関数型プログラミングエンジンと組み合わせて、より安価でよりスケーラブルであるがそれほどセキュアではないクラウド上の計算インスタンスにオフロードすることができる処理の量を最大化する。
【0080】
ここでの価値は、さらに多くの企業が、PPI及び他のセンシティブ・データを管理する規則に違反する恐れなしに、クラウド計算処理を使用することができるようになることである。
【0081】
説明される方法は、例えば、全ての処理がオンプレミスで実行されるが付加的なリソースが必要とされる場合には処理の一部をクラウドに送ることができる、クラウド・バースティング・シナリオにおいて提供することができる。例えば、ブラックフライデーにワークロードのスパイクがある場合である。その時点で、又は配備時に若しくは解析によって決定され、特定の離散的論理(処理ノード)をクラウドにオフロードすることができる。これらのノードは、アプリケーションが当初配備されるときにそこに配備され、必要時に利用することができる。
【0082】
別のシナリオは、分散型アプリケーションとすることができる。パブリック環境とプライベート環境とがリンクされたハイブリッド環境を提供することができ、アプリケーションがそこに配備されるとき、あらゆるセキュア処理はオンプレミスで行われるべきであるが、オンプレミスでのリソース使用率を制限するために他のものはどれでもパブリック・クラウド環境内で処理されることを望む。
【0083】
説明される方法によれば、通信及びノードは必ずしも信頼される又はセキュアである必要はなく、そのことが新たなビジネスモデル及び収益を可能にする。
【0084】
図5を参照すると、ブロック図は、
図1に示すようなセキュア環境におけるマッピング・エンジン112の形態のシステムを示す。マッピング・エンジン112は、少なくとも1つのプロセッサ501、少なくとも1つのプロセッサ上で実行されるソフトウェア・ユニットとすることができる説明されるコンポーネントの機能を実行するための、ハードウェアモジュール、又は回路を含むことができる。並列処理スレッドを実行する複数のプロセッサを設けて、コンポーネントの機能の一部又は全部の並列処理を可能にすることができる。メモリ502は、コンポーネントの機能を実行するために少なくとも1つのプロセッサ501にコンピュータ命令503を提供するように構成することができる。
【0085】
マッピング・エンジン112は、アプリケーションの一部を外部環境において処理するためのメッセージ要求を送信するためのシステムを提供することができる。
【0086】
マッピング・エンジン112は、アプリケーションの一部を外部処理ロケーションで処理するための要求メッセージを生成するための、要求生成コンポーネント511を含むことができる。
【0087】
マッピング・エンジン112は、要求メッセージのデータ・アスペクト内のセンシティブ・データを識別するためのセンシティブ・データ識別コンポーネント512と、センシティブ・データをトークン化データで置き換え、センシティブ・データとトークン化データとの間のマッピング115をセキュア環境内に格納することによってデータ・アスペクト内のセンシティブ・データをトークン化するための、トークン化コンポーネント114とを含むことができる。要求メッセージの非センシティブ・データ・アスペクトを変換して、要求メッセージのデータ・アスペクトを外部処理用の形式にコンバートするための、変換コンポーネント113を設けることもできる。
【0088】
マッピング・エンジン112は、トークン化データを含む、処理用要求メッセージを外部処理ロケーションに送信するための要求送信コンポーネント513と、トークン化データに対する変換命令によるトークン化データに対する注釈を含む、処理されたメッセージを外部処理ロケーションから受信するための応答受信コンポーネント514とを含むことができる。
【0089】
マッピング・エンジン112は、トークン・マッピング115をルックアープすることによってトークン化データをセンシティブ・データで置き換えるためのトークン化解除(de−tokenizing)コンポーネント515と、センシティブ・データに対して変換命令を実行するための変換実行コンポーネント516とを含むことができる。
【0090】
トークン化データをセンシティブ・データで置き換えるためのトークン化解除コンポーネント及びセンシティブ・データに対して変換命令を実行するための変換実行コンポーネントは、セキュア環境において必要とされるまでその動作を遅延させることができる。
【0091】
図6を参照すると、ブロック図は、
図1に示すような外部環境におけるマッピング・エンジン132の形態のシステムを示す。マッピング・エンジン132は、少なくとも1つのプロセッサ561、少なくとも1つのプロセッサ上で実行されるソフトウェア・ユニットとすることができる説明されるコンポーネントの機能を実行するための、ハードウェアもジュース、又は回路を含むことができる。並列処理スレッドを実行する複数のプロセッサを設けて、コンポーネントの機能の一部又は全部の並列処理を可能にすることができる。メモリ562は、コンポーネントの機能を実行するために少なくとも1つのプロセッサ561にコンピュータ命令563を提供するように構成することができる。
【0092】
マッピング・エンジン132は、アプリケーションの一部を外部環境において処理するためのセキュア環境からのメッセージ要求を受信するためのシステムを提供することができる。
【0093】
マッピング・エンジン132は、処理のために外部処理ロケーションで要求メッセージを受信するための要求受信コンポーネント551を含むことができる。要求メッセージは、トークン化データを有する1つ又は複数のデータ・アスペクトを含むことができる。
【0094】
マッピング・エンジン132は、データ・アスペクトのトークン化された値を変換命令による注釈付きトークン化データで置き換えることを含む1つ又は複数の変換をデータ・アスペクトに適用することによって要求メッセージをコンバートするための、メッセージ・コンバーティング・コンポーネント552を含むことができる。メッセージ・コンバーティング・コンポーネント552は、非トークン化データに変換を適用するための変換コンポーネント133と、変換命令でトークン化データ・アスペクトを注釈付するためのトークン注釈付けコンポーネント134とを含むことができる。メッセージ・コンバーティング・コンポーネント552は、データ・アスペクトがトークン化されているかどうか判定するためのトークン判定コンポーネント554を含むことができ、データ・アスペクトがトークン化されていない場合には、データ・アスペクトに変換を適用し、データ・アスペクトがトークン化されている場合には、変換命令でトークンに注釈付する。
【0095】
マッピング・エンジン132は、変換命令による注釈付きトークン化データを有するデータ・アスペクトを含む応答メッセージを、トークン化データをセンシティブ・データで置き換え、センシティブ・データに対して変換命令を行うために、セキュア環境に送信するための、メッセージ送信コンポーネント553を含むことができる。代替的に、メッセージ送信コンポーネント553は、セキュア環境に戻る前に、更なる処理のために外部環境内の次の処理ノードにメッセージを転送することができる
【0096】
ここで
図7を参照すると、コンピュータ・システム又はサーバの形態のシステム600の例の概略図が示される。
【0097】
コンピュータ・システム又はサーバ612は、多数の他の汎用又は専用コンピューティング・システム環境又は構成と共に動作することができる。コンピュータ・システム/サーバ612と共に使用するのに好適であり得る周知のコンピューティング・システム、環境、及び/又は構成の例として、これらに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セットトップボックス、プログラム可能民生電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び、上述のシステム又はデバイスのいずれかを含む分散型クラウド・コンピューティング環境等が含まれる。
【0098】
コンピュータ・システム/サーバ612は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム/サーバ612は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実施することができる。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔両方のコンピュータ・システム・ストレージ媒体内に配置することができる。
【0099】
図7において、コンピュータ・システム/サーバ612は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム/サーバ612のコンポーネントは、これらに限定されるものではないが、1つ又は複数のプロセッサ又は処理ユニット616、システム・メモリ628、及びシステム・メモリ628を含む種々のシステム・コンポーネントをプロセッサ616に結合するバス618を含むことができる。
【0100】
バス618は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの1つ又は複数を表す。限定ではなく例としては、このようなアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture、ISA)バス、マイクロ・チャネル・アーキテクチャ(Micro Channel Architecture、MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、及びPeripheral Component Interconnects(PCI)バスを含む。
【0101】
コンピュータ・システム/サーバ612は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ612によりアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し不能媒体の両方とを含む。
【0102】
システム・メモリ628は、ランダム・アクセス・メモリ(RAM)630及び/又はキャッシュ・メモリ632など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ612は、他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不能の不揮発性磁気媒体(図示されておらず、典型的には「ハード・ドライブ」と呼ばれる)との間の読み出し及び書き込みのために、ストレージ・システム634を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば、「フロッピー・ディスク」)との間の読み出し及び書き込みのための磁気ディスク・ドライブと、CD−ROM、DVD−ROM又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブとを設けることができる。このような例においては、それぞれを、1つ又は複数のデータ媒体インターフェースによってバス618に接続することができる。以下でさらに示され説明されるように、メモリ628は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
【0103】
限定ではなく例として、メモリ628内に、プログラム・モジュール642のセット(少なくとも1つ)を有するプログラム/ユーティリティ640、並びにオペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを格納することができる。オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの何らかの組み合わせの各々は、ネットワーキング環境の実装を含むことができる。プログラム・モジュール642は、一般に、本明細書で説明される本発明の実施形態の機能及び/又は方法を実行する。
【0104】
コンピュータ・システム/サーバ612は、キーボード、ポインティング・デバイス、ディスプレイ624等のような1つ又は複数の外部デバイス614;ユーザがコンピュータ・システム/サーバ612と対話することを可能にする1つ又は複数のデバイス;及び/又はコンピュータ・システム/サーバ612が1つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス(例えば、ネットワーク・カード、モデムなど)と通信することもできる。このような通信は、入力/出力(I/O)インターフェース622を経由して行うことができる。さらにまた、コンピュータ・システム/サーバ612は、ネットワーク・アダプタ620を介して、ローカル・エリア・ネットワーク(LAN)、汎用広域ネットワーク(WAN)、及び/又はパブリック・ネットワーク(例えば、インターネット)などの1つ又は複数のネットワークと通信することもできる。示されるように、ネットワーク・アダプタ620は、バス618を介して、コンピュータ・システム/サーバ612の他のコンポーネントと通信する。図示されていないが、コンピュータ・システム/サーバ612と共に他のハードウェア及び/又はソフトウェア・コンポーネントを使用できることを理解されたい。例としては、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システムなどが含まれる。
【0105】
本発明は、統合のいずれかの可能な技術的詳細レベルにおける、システム、方法、及び/又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体(単数又は複数)を含むことができる。
【0106】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの:すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカード若しくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
【0107】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスにダウンロードすることができ、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び/又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び/又はエッジ・サーバを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体内に格納するためにコンピュータ可読プログラム命令を転送する。
【0108】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Smalltalk、C++などのオブジェクト指向プログラミング言語、又は、「C」プログラミング言語若しくは類似のプログラミング言語などの通常の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述することができるいずれかのソースコード若しくはオブジェクトコードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネットサービスプロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて電子回路を個人化することによりコンピュータ可読プログラム命令を実行し、本発明の態様を実施することができる。
【0109】
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【0110】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロック内で指定された機能/動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、及び/又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、命令が内部に格納されたコンピュータ可読ストレージ媒体が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製品を含むようにすることもできる。
【0111】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実装プロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するようにすることもできる。
【0112】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【0113】
クラウド・コンピューティング
本開示はクラウド・コンピューティングについての詳細な説明を含むが、本明細書に記載される教示の実装は、クラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在既知の又は後で開発される他のいずれかのタイプのコンピューティング環境と共に実施することができる。
【0114】
クラウド・コンピューティングは、最小限の管理労力又はサービス・プロバイダとの対話で迅速にプロビジョニング及び解放することができる構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの、便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、及び少なくとも4つの配備モデルを含むことができる。
【0115】
特徴は、以下の通りである。
オンデマンド・セルフサービス:クラウド・コンシューマは、必要に応じて、サーバ時間及びネットワーク・ストレージ等のコンピューティング機能を、人間がサービスのプロバイダと対話する必要なく自動的に、一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、異なる物理及び仮想リソースを要求に応じて動的に割り当て及び再割り当てすることにより、複数のコンシューマにサービスを提供するためにプールされる。コンシューマは、一般に、提供されるリソースの正確なロケーションについての制御又は知識を持たないが、より高レベルの抽象化ではロケーション(例えば、国、州、又はデータセンタ)を特定できる場合があるという点で、ロケーションとは独立しているといえる。
迅速な弾力性:機能は、迅速かつ弾力的に、場合によっては自動的に、プロビジョニングして素早くスケール・アウトし、迅速にリリースして素早くスケール・インさせることができる。コンシューマにとって、プロビジョニングに利用可能なこれらの機能は、多くの場合、無制限であり、いつでもどんな量でも購入できるように見える。
計測されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソースの使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、報告し、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらすことができる。
【0116】
サービス・モデルは以下の通りである。
Software as a Service(SaaS):クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用するために、コンシューマに提供される機能である。これらのアプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通じて、種々のクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定の考え得る例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション機能をも含めて、基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Platform as a Service(PaaS):プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成した又は取得したアプリケーションを、クラウド・インフラストラクチャ上に配備するために、コンシューマに提供される機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージなどの基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、配備されたアプリケーション、及び場合によってはアプリケーション・ホスティング環境構成に対して制御を有する。
Infrastructure as a Service(IaaS):コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアを配備及び動作させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニンングするために、コンシューマに提供される機能である。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションに対する制御、及び場合によってはネットワーク・コンポーネント(例えば、ホストのファイアウォール)選択の限定された制御を有する。
【0117】
配備モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運営される。このクラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスに存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、共通の関心事項(例えば、任務、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスに存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループに利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)によって結び付けられる2つ以上のクラウド(プライベート、コミュニティ、又はパブリック)の混成物である。
【0118】
クラウド・コンピューティング環境は、無国籍性、低結合性、モジュール性、及びセマンティック相互運用性に焦点を置くことを指向するサービスである。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0119】
ここで
図8を参照すると、例示的なクラウド・コンピューティング環境750が示される。示されるように、クラウド・コンピューティング環境750は、例えばパーソナル・デジタル・アシスタント(PDA)又は携帯電話754A、デスクトップ・コンピュータ754B、ラップトップ・コンピュータ754C、及び/又は自動車コンピュータ・システム754Nなどといった、クラウド・コンシューマによって用いられるローカル・コンピューティング・デバイスと通信することができる、1つ又は複数のクラウド・コンピューティング・ノード710を含む。ノード710は、互いに通信することができる。これらのノードは、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、若しくはハイブリッド・クラウド、又はこれらの組み合わせなど、1つ又は複数のネットワークにおいて物理的又は仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境750は、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして、インフラストラクチャ、プラットフォーム、及び/又はソフトウェアを提供することが可能になる。
図8に示されるコンピューティング・デバイス754A〜Nのタイプは単に例示であることを意図し、コンピューティング・ノード710及びクラウド・コンピューティング環境750は、いずれのタイプのネットワーク及び/又はネットワーク・アドレス指定可能な接続上でも(例えば、ウェブ・ブラウザを用いて)、いずれのタイプのコンピュータ化された装置とも通信できることを理解されたい。
【0120】
ここで
図9を参照すると、クラウド・コンピューティング環境750(
図8)によって提供される機能抽象化層の組が示される。
図9に示されるコンポーネント、層、及び機能は単に例示であることを意図し、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示されるように、以下の層及び対応する機能が提供される。:
ハードウェア及びソフトウェア層860は、ハードウェア及びソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、メインフレーム861、RISC(Reduced Instruction Set Computer(縮小命令セット・コンピュータ))アーキテクチャ・ベースのサーバ862、サーバ863、ブレード・サーバ864、ストレージ・デバイス865、並びにネットワーク及びネットワーキング・コンポーネント866が含まれる。幾つかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア867及びデータベース・ソフトウェア868を含む。
仮想化層870は、抽象化層を提供し、この層により、仮想エンティティの以下の例、すなわち、仮想サーバ871、仮想ストレージ872、仮想プライベート・ネットワークを含む仮想ネットワーク873、仮想アプリケーション及びオペレーティング・システム874、並びに仮想クライアント875を提供することができる。
【0121】
一例においては、管理層880は、以下で説明される機能を提供することができる。リソース・プロビジョニング881は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格決定882は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡と、これらのリソースの消費に対する課金又は請求とを提供する。一例においては、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクに対する識別情報の検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータル883は、コンシューマ及びシステム管理者のために、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理884は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント(Service Level Agreement、SLA)の計画及び履行885は、SLAに従って将来の要件が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
【0122】
ワークロード層890は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロード及び機能の例には、マッピング及びナビゲーション891、ソフトウェア開発及びライフサイクル管理892、仮想教室教育配信893、データ分析処理894、トランザクション処理895、及びメッセージ変換処理896が含まれる。
【0123】
本発明の種々の実施形態の説明は、例証の目的のために提示されたが、これらは、網羅的であること、又は本発明を開示した実施形態に限定することを意図するものではない。当業者には、説明される実施形態の範囲及び趣旨から逸脱することなく、多くの修正及び変形が明らかであろう。本明細書で用いられる用語は、実施形態の原理、実際の適用、又は市場に見られる技術に優る技術的改善を最もよく説明するため、又は、当業者が、本明細書に開示される実施形態を理解するのを可能にするために選択された。
【0124】
本発明の範囲から逸脱することなく、上記に対する改善及び修正を行うことができる。