(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-07
(54)【発明の名称】電子メール配信システムのための電子メールフィルタリングシステム
(51)【国際特許分類】
G06Q 10/10 20230101AFI20231130BHJP
【FI】
G06Q10/10
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023531111
(86)(22)【出願日】2021-08-27
(85)【翻訳文提出日】2023-07-21
(86)【国際出願番号】 US2021047895
(87)【国際公開番号】W WO2022115136
(87)【国際公開日】2022-06-02
(32)【優先日】2020-11-24
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-08-26
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】フリード,エドウィン・アール
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA11
(57)【要約】
電子メールメッセージを意図した受信者に配信する前に電子メールメッセージを選択的にサンプリングしてスキャンすることによって電子メールメッセージの効率的な処理および配信を可能にする電子メールメッセージ配信システムが開示されている。上記システムは、処理のために電子メールメッセージを選択し、電子メールメッセージのグループを決定する。上記システムは、グループのサンプリング確率を決定し、サンプリング確率に基づいて、電子メールメッセージがスキャンのために選択されるかどうかを判断する。電子メールメッセージがスキャンのために選択される場合、上記システムは、電子メールメッセージのコンテンツをスキャンし、スキャンに基づいて、電子メールメッセージがフィルタリング除去されるかどうかを判断する。スキャンに基づいて電子メールメッセージがフィルタリング除去される場合、上記システムは、受信者への配信のために電子メールメッセージをリレーする。
【特許請求の範囲】
【請求項1】
方法であって、
電子メールメッセージ配信サービスを提供する電子メールメッセージ配信システムが、処理のために、電子メールメッセージを前記電子メールメッセージ配信システムのメッセージキューから選択するステップを備え、前記メッセージキューは、複数の送信者から受信された複数の電子メールメッセージを含み、前記複数の送信者は、前記電子メールメッセージ配信サービスの複数の加入者に対応し、前記方法はさらに、
前記電子メールメッセージ配信システムが、前記電子メールメッセージのグループを決定するステップと、
前記電子メールメッセージ配信システムが、前記グループのサンプリング確率を決定するステップと、
前記電子メールメッセージ配信システムが、前記グループについて決定された前記サンプリング確率に少なくとも部分的に基づいて、前記電子メールメッセージがスキャンのために選択されるかどうかを判断するステップと、
前記電子メールメッセージがスキャンのために選択されるとの判断に応答して、前記電子メールメッセージ配信システムが、前記電子メールメッセージのコンテンツをスキャンするステップと、
前記電子メールメッセージ配信システムが、前記スキャンに基づいて、前記電子メールメッセージがフィルタリング除去されるかどうかを判断するステップと、
前記スキャンに基づいた、前記電子メールメッセージがフィルタリング除去されないとの判断に応答して、前記電子メールメッセージ配信システムが、前記受信者への配信のために前記電子メールメッセージをリレーするステップとを備える、方法。
【請求項2】
前記電子メールメッセージ配信システムが、前記スキャンに基づいて、前記電子メールメッセージがフィルタリング除去されると判断し、前記判断に応答して、前記電子メールメッセージ配信システムが、前記電子メールメッセージを前記メッセージキューから削除するステップをさらに備える、請求項1に記載の方法。
【請求項3】
前記電子メールメッセージ配信システムが、前記サンプリング確率に少なくとも部分的に基づいて、前記電子メールメッセージがスキャンのために選択されないと判断し、前記判断に応答して、前記電子メールメッセージをスキャンすることなく、前記受信者への配信のために前記電子メールメッセージをリレーするステップをさらに備える、請求項1に記載の方法。
【請求項4】
前記電子メールメッセージの前記グループを決定するステップは、
前記メッセージに関連付けられた送信者についての1つまたは複数のグループ分け規則のセットを特定するステップと、
前記電子メールメッセージに関連付けられたメタデータを特定するステップと、
前記1つまたは複数のグループ分け規則のセットおよび前記メタデータに少なくとも部分的に基づいて、前記電子メールメッセージの前記グループを決定するステップとを含む、請求項1に記載の方法。
【請求項5】
前記メタデータは、前記電子メールメッセージに関連付けられた前記送信者または前記電子メールメッセージのサイズのうちの少なくとも1つを含む、請求項4に記載の方法。
【請求項6】
前記グループの前記サンプリング確率は、前記グループに関連付けられた状態情報、前記電子メールメッセージの前記コンテンツをスキャンするための1つまたは複数のスキャンリソースのセットの利用可能性、および1つまたは複数のサンプリング規則のセットに少なくとも部分的に基づいて決定される、請求項1に記載の方法。
【請求項7】
前記グループに関連付けられた前記状態情報は、前記グループに関連付けられた送信者のレピュテーション、前記グループから以前にフィルタリング除去された電子メールの数、前記グループについて以前にスキャンされた電子メールの数、または前記グループに関連付けられた送信者に特有のコンプライアンス規則のうちの少なくとも1つを含む、請求項6に記載の方法。
【請求項8】
前記電子メールメッセージ配信システムが、前記電子メールメッセージの前記コンテンツをスキャンするステップは、前記電子メールメッセージの前記コンテンツをスキャンするために使用されるスキャンリソースを特定して、前記スキャンリソースを使用して前記電子メールメッセージの前記コンテンツをスキャンするステップを含む、請求項1に記載の方法。
【請求項9】
前記電子メールメッセージがスキャンのために選択されるかどうかを判断するステップは、前記電子メールメッセージの前記グループに関連付けられたサンプリング履歴を取得するステップをさらに含み、前記サンプリング履歴は、スキャンのために選択されたグループの複数の電子メールメッセージの中で、以前に受信された電子メールメッセージを特定する、請求項1に記載の方法。
【請求項10】
電子メールメッセージ配信サービスを提供する電子メールメッセージ配信システムであって、
メモリと、
処理を実行するように構成された1つまたは複数のプロセッサとを備え、前記処理は、
前記電子メールメッセージ配信システムが、処理のために、電子メールメッセージをメッセージキューから選択することを備え、前記メッセージキューは、複数の送信者から受信された複数の電子メールメッセージを含み、前記複数の送信者は、前記電子メールメッセージ配信サービスの複数の加入者に対応し、前記処理はさらに、
前記電子メールメッセージ配信システムが、前記電子メールメッセージのグループを決定することと、
前記電子メールメッセージ配信システムが、前記グループのサンプリング確率を決定することと、
前記電子メールメッセージ配信システムが、前記グループについて決定された前記サンプリング確率に少なくとも部分的に基づいて、前記電子メールメッセージがスキャンのために選択されるかどうかを判断することと、
前記電子メールメッセージがスキャンのために選択されるとの判断に応答して、前記電子メールメッセージ配信システムが、前記電子メールメッセージのコンテンツをスキャンすることと、
前記電子メールメッセージ配信システムが、前記スキャンに基づいて、前記電子メールメッセージがフィルタリング除去されるかどうかを判断することと、
前記スキャンに基づいた、前記電子メールメッセージがフィルタリング除去されないとの判断に応答して、前記電子メールメッセージ配信システムが、前記受信者への配信のために前記電子メールメッセージをリレーすることとを備える、システム。
【請求項11】
前記電子メールメッセージ配信システムが、前記スキャンに基づいて、前記電子メールメッセージがフィルタリング除去されると判断し、前記判断に応答して、前記電子メールメッセージ配信システムが、前記電子メールメッセージを前記メッセージキューから削除することをさらに備える、請求項10に記載のシステム。
【請求項12】
前記電子メールメッセージ配信システムが、前記サンプリング確率に少なくとも部分的に基づいて、前記電子メールメッセージがスキャンのために選択されないと判断し、前記判断に応答して、前記電子メールメッセージをスキャンすることなく、前記受信者への配信のために前記電子メールメッセージをリレーすることをさらに備える、請求項10に記載のシステム。
【請求項13】
前記電子メールメッセージの前記グループを決定することは、
前記メッセージに関連付けられた送信者についての1つまたは複数のグループ分け規則のセットを特定することと、
前記電子メールメッセージに関連付けられたメタデータを特定することと、
前記1つまたは複数のグループ分け規則のセットおよび前記メタデータに少なくとも部分的に基づいて、前記電子メールメッセージの前記グループを決定することとを含む、請求項10に記載のシステム。
【請求項14】
前記グループの前記サンプリング確率は、前記グループに関連付けられた状態情報、前記電子メールメッセージの前記コンテンツをスキャンするための1つまたは複数のスキャンリソースのセットの利用可能性、および1つまたは複数のサンプリング規則のセットに少なくとも部分的に基づいて決定される、請求項10に記載のシステム。
【請求項15】
前記電子メールメッセージ配信システムが、前記電子メールメッセージの前記コンテンツをスキャンすることは、前記電子メールメッセージの前記コンテンツをスキャンするために使用されるスキャンリソースを特定して、前記スキャンリソースを使用して前記電子メールメッセージの前記コンテンツをスキャンすることを含む、請求項10に記載のシステム。
【請求項16】
前記電子メールメッセージがスキャンのために選択されるかどうかを判断することは、前記電子メールメッセージの前記グループに関連付けられたサンプリング履歴を取得することをさらに含み、前記サンプリング履歴は、スキャンのために選択されたグループの複数の電子メールメッセージの中で、以前に受信された電子メールメッセージを特定する、請求項10に記載のシステム。
【請求項17】
記憶されたプログラムコードを有する非一時的なコンピュータ可読媒体であって、前記プログラムコードは、動作を実行するために1つまたは複数の処理デバイスによって実行可能であり、前記動作は、
前記電子メールメッセージ配信システムが、処理のために、電子メールメッセージをメッセージキューから選択することを備え、前記メッセージキューは、複数の送信者から受信された複数の電子メールメッセージを含み、前記複数の送信者は、前記電子メールメッセージ配信サービスの複数の加入者に対応し、前記動作はさらに、
前記電子メールメッセージ配信システムが、前記電子メールメッセージのグループを決定することと、
前記電子メールメッセージ配信システムが、前記グループのサンプリング確率を決定することと、
前記電子メールメッセージ配信システムが、前記グループについて決定された前記サンプリング確率に少なくとも部分的に基づいて、前記電子メールメッセージがスキャンのために選択されるかどうかを判断することと、
前記電子メールメッセージがスキャンのために選択されるとの判断に応答して、前記電子メールメッセージ配信システムが、前記電子メールメッセージのコンテンツをスキャンすることと、
前記電子メールメッセージ配信システムが、前記スキャンに基づいて、前記電子メールメッセージがフィルタリング除去されるかどうかを判断することと、
前記スキャンに基づいた、前記電子メールメッセージがフィルタリング除去されないとの判断に応答して、前記電子メールメッセージ配信システムが、前記受信者への配信のために前記電子メールメッセージをリレーすることとを備える、非一時的なコンピュータ可読媒体。
【請求項18】
前記電子メールメッセージ配信システムが、前記スキャンに基づいて、前記電子メールメッセージがフィルタリング除去されると判断し、前記判断に応答して、前記電子メールメッセージ配信システムが、前記電子メールメッセージを前記メッセージキューから削除することをさらに備える、請求項17に記載の非一時的なコンピュータ可読媒体。
【請求項19】
前記電子メールメッセージ配信システムが、前記サンプリング確率に少なくとも部分的に基づいて、前記電子メールメッセージがスキャンのために選択されないと判断し、前記判断に応答して、前記電子メールメッセージをスキャンすることなく、前記受信者への配信のために前記電子メールメッセージをリレーすることをさらに備える、請求項17に記載の非一時的なコンピュータ可読媒体。
【請求項20】
前記電子メールメッセージの前記グループを決定することは、
前記メッセージに関連付けられた送信者についての1つまたは複数のグループ分け規則のセットを特定することと、
前記電子メールメッセージに関連付けられたメタデータを特定することと、
前記1つまたは複数のグループ分け規則のセットおよび前記メタデータに少なくとも部分的に基づいて、前記電子メールメッセージの前記グループを決定することとを含む、請求項17に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、「電子メール配信システムのための電子メールフィルタリングシステム(Email Filtering System for Email Delivery Systems)」と題される、2021年8月26日に出願された米国非仮出願番号第17/458,094号の利益および優先権を主張する。米国非仮出願番号第17/458,094号の内容は、全ての目的で全文が引用によって本明細書に援用される。
【0002】
本願は、「電子メールメッセージストリームをフィルタリングするためのサンプリングアプローチ(Sampling Approach for filtering email message streams)」と題される、2020年11月24日に出願された米国仮出願番号第63/117,876号の、米国特許法第119条(e)の下での利益および優先権を主張し、その全内容は、全ての目的で引用によって本明細書に援用される。
【背景技術】
【0003】
背景
いくつかのクラウドサービスプロバイダは、クラウドベースの電子メール配信サービスを提供し、これらのサービスは、大量の電子メールを意図した受信者に送信するための高速かつ信頼性のあるソリューションをこれらのサービスの顧客に提供する。これらの電子メールは、マーケティング電子メール、トランザクション電子メール、アラート電子メール、確認電子メール、および他のタイプの電子メールを含み得る。そのような電子メール配信サービスの一例は、オラクル社によって提供されるオラクルクラウドインフラストラクチャ(OCI:Oracle Cloud Infrastructure)電子メール配信サービスである。OCI電子メール配信サービスは、キー・デリバラビリティ・メトリクスを使用して顧客の電子メールにとって可能な最善の送信レピュテーションを保証するプラットフォームを提供する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
電子メール配信サービスがますます一般的になっているため、これらのサービスによって処理される電子メールの量は急速に増え続けている。特定の状況では、大量の電子メールメッセージの処理は、受信者に配信する前にメッセージをそれらのコンテンツについてスキャンすることを必要とする場合がある。コンテンツスキャンは、高価で、計算集約的で、時間のかかるプロセスであり得る。これらのサービスを実装する既存のアーキテクチャは、サービスをスケーラブルで、費用対高価が高く、信頼性のあるものにするために改良される必要がある。
【0005】
簡単な概要
本開示は、概して、クラウドベースの電子メール配信サービスに関する。より具体的には、本開示は、電子メールメッセージの選択的サンプリングおよびコンテンツスキャンに基づいて、意図した受信者への配信の前に電子メールメッセージをフィルタリングするための改良された機能を提供するクラウドベースの電子メールメッセージ配信システム(EMDS:Email Message Delivery System)について記載しているが、これに限定されるものではない。
【課題を解決するための手段】
【0006】
特定の実施形態では、電子メールメッセージ配信サービスを提供する電子メールメッセージ配信システム(EMDS)が開示されている。上記EMDSは、処理のために、電子メールメッセージを上記EMDSのメッセージキューから選択する。上記メッセージキューは、複数の送信者から受信された電子メールメッセージを含む。上記送信者は、上記電子メールメッセージ配信サービスの複数の加入者に対応する。上記EMDSは、上記電子メールメッセージのグループを決定し、どのメッセージもスキャンすることを回避するために、上記グループのサンプリング確率を決定する。上記EMDSは、上記グループについて決定された上記サンプリング確率に基づいて、上記電子メールメッセージがスキャンのために選択されるかどうかを判断する。上記電子メールメッセージがスキャンのために選択されるとの判断に応答して、上記EMDSは、上記電子メールメッセージのコンテンツをスキャンし、上記スキャンに基づいて、上記電子メールメッセージがフィルタリング除去されるかどうかを判断する。上記スキャンに基づいた、上記電子メールメッセージがフィルタリング除去されないとの判断に応答して、上記EMDSは、上記受信者への配信のために上記電子メールメッセージをリレーする。
【0007】
特定の例では、上記EMDSは、上記スキャンに基づいて、上記電子メールメッセージがフィルタリング除去されると判断する。上記電子メールメッセージがフィルタリング除去されるとの判断に応答して、上記EMDSは、上記電子メールメッセージを上記メッセージキューから削除する。特定の例では、上記EMDSは、上記サンプリング確率に基づいて、上記電子メールメッセージがスキャンのために選択されないと判断する。上記判断に応答して、上記EMDSは、上記電子メールメッセージをスキャンすることなく、上記受信者への配信のために上記電子メールメッセージをリレーする。
【0008】
特定の例では、上記EMDSは、上記メッセージに関連付けられた送信者についての1つまたは複数のグループ分け規則のセットを特定することと、上記電子メールメッセージに関連付けられたメタデータを特定することとによって、上記電子メールメッセージの上記グループを決定する。次いで、上記EMDSは、上記1つまたは複数のグループ分け規則のセットおよび上記メタデータに基づいて、上記電子メールメッセージの上記グループを決定する。特定の例では、上記メタデータは、上記電子メールメッセージに関連付けられた上記送信者または上記電子メールメッセージのサイズを含む。
【0009】
特定の例では、上記EMDSは、上記グループに関連付けられた状態情報、上記電子メールメッセージの上記コンテンツをスキャンするための1つまたは複数のスキャンリソースのセットの利用可能性、および1つまたは複数のサンプリング規則のセットに基づいて、上記グループの上記サンプリング確率を決定する。特定の例では、上記グループに関連付けられた上記状態情報は、上記グループに関連付けられた送信者のレピュテーション、上記グループから以前にフィルタリング除去された電子メールの数、上記グループについて以前にスキャンされた電子メールの数、または上記グループに関連付けられた送信者に特有のコンプライアンス規則を含む。
【0010】
特定の例では、上記EMDSは、上記電子メールメッセージの上記コンテンツをスキャンするために使用されるスキャンリソースを特定することによって、上記電子メールメッセージの上記コンテンツをスキャンする。次いで、上記EMDSは、上記スキャンリソースを使用して上記電子メールメッセージの上記コンテンツをスキャンする。
【0011】
特定の例では、上記EMDSは、上記電子メールメッセージの上記グループに関連付けられたサンプリング履歴を取得することによって、上記電子メールメッセージがスキャンのために選択されるかどうかを判断する。特定の例では、上記サンプリング履歴は、スキャンのために選択されたグループの電子メールメッセージのセットの中で、以前に受信された電子メールメッセージを特定する。
【0012】
方法、システム、1つまたは複数のプロセッサによって実行可能なプログラム、コードまたは命令を記憶する非一時的なコンピュータ可読記憶媒体などを含むさまざまな実施形態が本明細書に記載されている。これらの例示的な実施形態は、本開示を限定または定義するためではなく、その理解を手助けするための例を提供するために言及されている。さらなる実施形態が詳細な説明において議論され、そこでさらなる説明がなされる。
【0013】
本開示の特徴、実施形態および利点は、添付の図面を参照しながら以下の詳細な説明を読むとよりよく理解される。
【図面の簡単な説明】
【0014】
【
図1】特定の実施形態に係る、受信者のセットへの配信の前に電子メールメッセージをフィルタリングするための改良された機能を含む電子メールメッセージ配信システム(EMDS)を含むコンピューティング環境を示す図である。
【
図2】特定の実施形態に係る、配信の前に
図1に示される電子メールメッセージ配信システム(EMDS)によって電子メールメッセージを処理するプロセスの一例を示す図である。
【
図3】特定の実施形態に係る、
図1に示される電子メールメッセージ配信システム(EMDS)によって電子メールメッセージをグループ分けするプロセスの一例を示す図である。
【
図4】特定の実施形態に係る、
図1に示される電子メールメッセージ配信システム(EMDS)によって電子メールメッセージのサンプリング関連処理およびコンテンツスキャンを実行するためのプロセスの一例を示す図である。
【
図5】特定の実施形態に係る、グループのサンプリング確率を計算するためのプロセスの一例を示す図である。
【
図6】少なくとも1つの実施形態に係る、IaaSアーキテクチャの例示的なパターンを示すブロック図である。
【
図7】少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック図である。
【
図8】少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック図である。
【
図9】少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック図である。
【
図10】さまざまな実施形態が実現され得る例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0015】
詳細な説明
以下の説明では、特定の実施形態の理解の徹底を期すために、具体的な詳細が説明の目的で記載されている。しかし、これらの具体的な詳細がなくてもさまざまな実施形態を実施できることは明らかであろう。図面および説明は、限定的であるよう意図されるものではない。「例示的」という語は、「例、事例、または例示として供される」ことを意味するように本明細書で用いられる。「例示的」として本明細書に記載されている実施形態または設計はいずれも、必ずしも、他の実施形態または設計よりも好ましいまたは有利であると解釈されるべきではない。
【0016】
本開示は、概して、クラウドベースの電子メール配信サービスに関する。より具体的には、本開示は、電子メールメッセージの選択的サンプリングおよびコンテンツスキャンに基づいて、意図した受信者への配信の前に電子メールメッセージをフィルタリングするための改良された機能を提供するクラウドベースの電子メールメッセージ配信システム(EMDS)について記載しているが、これに限定されるものではない。
【0017】
クラウドベースの電子メール配信サービスは、意図した受信者のセットに配信される予定の大量の電子メールを送信するための高速かつ信頼性のある管理されたソリューションを提供する。クラウドベースの電子メール配信サービスは、1つまたは複数のクラウドベースの電子メール配信システムを使用して実現することができる。一般的には、クラウドベースの電子メール配信システム(EMDS)は、電子メール配信サービスのさまざまなテナントまたは顧客から電子メールメッセージを受信して、それらの電子メールメッセージを意図した受信者に配信するように構成された1つまたは複数のメッセージ転送エージェント(MTA:Message Transfer Agent)を含む。本明細書に記載されるように、EMDSの顧客またはテナントは、電子メールメッセージの1つまたは複数の「送信者」に相当し得る。電子メールメッセージを意図した受信者に伝達するためにさまざまな電子メールメッセージ配信プロトコルが使用されてもよい。一実施形態では、電子メールメッセージを意図した受信者に伝達するために簡易メッセージ転送プロトコル(たとえば、SMTP:Simple Message Transfer Protocol)が使用される。
【0018】
アウトバウンド電子メールメッセージフローを効率的に処理するために、EMDSは、電子メールフィルタリング技術を利用して、ネットワークから出て行くスパムを特定して、電子メールメッセージが意図した受信者に確実に配信されることを保証することができる。既存のフィルタリング技術は、さまざまな規則およびメトリクスを利用してメッセージフィルタリングを実行する。これらの技術は、たとえば、メッセージの送信者を特定するために使用されるインターネットプロトコル(IP:Internet Protocol)アドレスから来るスパムの量を追跡したり、過剰なスパムを送信するIPアドレスをブロックしたり、疑わしい送信を実施するそれらのIPアドレスをレート制限したりすることができる。これらの規則およびメトリクスは、たとえば、IPレピュテーションチェックを実行してIPアドレス(たとえば、過去に不正な挙動を行ったことが分かっているIPアドレスから来る電子メール、または受け入れられない可能性が高い、常習犯に関連付けられたアドレスのブロックの一部である電子メール)のレピュテーションを監視すること、送信者に関連付けられたドメインに対して署名チェックを実行すること、コンテンツチェックを実行して、既知の受信者ポリシーに従って送信されたメッセージの数/レートを制限することを含み得る。これらの規則は、たとえば、送信者のドメインによって示される総合的な挙動などのメトリクスを使用して送信者の総合的なレピュテーションを監視すること、望ましくない/受け入れられないとしてメッセージを報告する受信者の数を監視すること、送信者のメッセージから登録を取り消す受信者の数を監視することなども含み得る。特定の場合には、電子メール配信サービスは、レピュテーションについて送信者に知らせてもよく、極端な場合には、送信者のレピュテーションに基づいてサービスへの送信者のアクセスを終了することを決定することさえ行ってもよい。
【0019】
上記のフィルタリング技術は、メッセージストリームが一般的に非常に異種混交的な性質をもつ傾向があるソース(たとえば、組織)から発信される従来型のメッセージストリームの処理に有用である。たとえば、銀行などの組織では、メッセージストリームは、支払い期日であることを示すメッセージと、その後に続く極めて個人的なメッセージと、その後に続く新たな銀行の方針の売り込みのメッセージとを含み得る。したがって、バルク電子メール/受け入れられない電子メールのはるかに大きなストリーム(一般的には、10倍の大きさ)に合法的な電子メールがランダムに組み込まれることになる。そのような場合、フィルタリングは、電子メール配信サービスの動作にとって極めて重要であるだけでなく、どの入来メッセージにも適用されなければならない。しかし、コマーシャルメッセージストリームは、非常に異なった特徴を有する。コマーシャルメッセージストリームは、一般的には既知のレピュテーションを有する既知のソースから発信され、電子メール提出の前に認証されることができ、一般的にはほぼ同じコンテンツを有するメッセージの大きなグループで構成される。既存の電子メールフィルタリングソリューションは、大量のコマーシャル電子メールの処理には効果的に適用することができない。なぜなら、受信者への配信の前にどの電子メールメッセージもそのコンテンツについてスクリーニングすることは、非常に高価で、計算集約的で、時間のかかるプロセスであり得るからである。いくつかの事例では、コンテンツスキャンは、非常に高価であるので、コマーシャル電子メールを処理する現行の電子メールサービスは、もっぱらそれを割愛することを余儀なくされるであろう。
【0020】
本開示に記載されているクラウドベースの電子メールメッセージ配信システムは、コマーシャルメッセージストリームの一部として受信された電子メールメッセージを意図した受信者に配信する前にそれらのメッセージを選択的にフィルタリング除去する改良された電子メールメッセージフィルタリングソリューションを提供することによって、従来のメッセージ配信サービスと比較していくつかの技術的進歩および/または向上を提供する。選択的フィルタリングは、電子メールメッセージに関連付けられたグループについて計算されたサンプリング確率に基づいて、メッセージストリーム内の電子メールメッセージがサンプリングのために選択されるかどうかを判断することによって実行される。次いで、選択的フィルタリングは、選択された電子メールメッセージのコンテンツをスキャンすることを含む。開示されているプロセスは、コンテンツスキャンの結果に基づいて、選択された電子メールメッセージがフィルタリング除去されるか、意図した受信者に配信されるかを判断する。メッセージストリームの一部として受信される電子メールメッセージを選択的にサンプリングしてスキャンすることによって、本明細書に記載される開示されている電子メールメッセージフィルタリングソリューションは、費用対効果が高く、効率的で、時間的制約のある態様での大量のコマーシャル電子メールメッセージの処理を可能にする。
【0021】
ここで図面を参照して、
図1は、特定の実施形態に係る、受信者のセットへの配信の前に電子メールメッセージをフィルタリングするための改良された機能を含む電子メールメッセージ配信システム(EMDS)を含むコンピューティング環境を示す図である。EMDS102は、EMDS102を実現するためにコンピュータ可読命令(たとえば、コード、プログラム)を実行する1つまたは複数のコンピューティングシステムによって実現することができる。
図1に示されるように、EMDS102は、メッセージ転送エージェント(MTA)108とメッセージフィルタリングサブシステム116とを含むさまざまなシステムおよびサブシステムを含む。MTA108は、キューマネージャ110と電子メール通信サブシステム114とをさらに含む。メッセージフィルタリングサブシステム116は、電子メールメッセージグループ分けサブシステム118と、電子メールメッセージサンプリングサブシステム120と、電子メールメッセージコンテンツスキャンサブシステム122とをさらに含む。処理の一部としてMTA108およびメッセージフィルタリングサブシステム116によって使用または生成されるデータまたは情報の部分は、グループ情報データストア126およびサンプリング履歴データストア132などのさまざまな永続メモリデータストアに記憶され得る。
図1に示されるシステムおよびサブシステムは、コンピューティングシステムの1つもしくは複数の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせを使用して実現することができる。ソフトウェアは、非一時的な記憶媒体上(たとえば、メモリデバイス上)に記憶され得る。
【0022】
コンピューティング環境100は、1つまたは複数の通信ネットワークを介してEMDS102に通信可能に結合された電子メールメッセージ受信者システム(EMRS:Email Message Recipient System)134をさらに含む。EMRS134は、電子メールメッセージの受信者の電子メールサービス(インボックス)プロバイダ(たとえば、Gmail(登録商標)、Yahoo(登録商標)、Microsoft(登録商標)など)に相当し得る。特定の例では、受信者は、ソース104A~104Nから合法的なコマーシャル電子メールメッセージ(たとえば、広告、セールスコンテンツなどを含む電子メールメッセージ)を受信するエンドユーザであってもよい。
【0023】
EMDS102は、さまざまな異なる構成で実現することができる。特定の実施形態では、EMDS102は、クラウドプロバイダネットワークの1つまたは複数のサーバ上で実現されてもよく、その電子メールメッセージ配信サービスは、サブスクリプションベースでクラウドサービスの加入者に提供されてもよい。
図1に示されるコンピューティング環境100は、一例にすぎず、記載されている実施形態の範囲を必要以上に限定することを意図したものではない。当業者は、多くの可能な変更、代替案および修正を認識するであろう。たとえば、いくつかの実現例では、EMDS102は、
図1に示されるサブシステムよりも多くのサブシステムもしくは少ないサブシステムを使用して実現されてもよく、2つ以上のサブシステムを組み合わせてもよく、またはサブシステムの異なる構成もしくは配置を有していてもよい。
【0024】
特定の実施形態では、EMDS102は、電子メールメッセージ(本明細書では、メッセージまたは電子メールとも称される)の選択的サンプリングおよびコンテンツスキャンに基づいて電子メールメッセージをフィルタリング除去することによって電子メールメッセージを処理するための高速かつ信頼性のあるメッセージ配信サービスを提供する。電子メールメッセージは、さまざまなソース104A~104Nによって生成されることができる。ソース(たとえば、104A)は、電子メールメッセージを処理して受信者のセットに配信するためにEMDS102によって提供されるサービスに加入するクラウドプロバイダの顧客(たとえば、組織、企業または個人)などのエンティティのシステムに相当し得る。特定の例では、EMDS102は、受信者のセットへの配信のためにソース104A~104Nから電子メールメッセージを受信することができる。例として、ソース104Aからの電子メールメッセージ105Aは、受信者のセットへの配信のために、大量の(たとえば、数十億もの)請求されたコマーシャル電子メール(たとえば、マーケティング電子メール、ニューズレター、クーポン、勧誘など)またはトランザクション電子メールを含み得る。各電子メールメッセージは、受信者のセットの中の特定の受信者への配信に合わせてカスタマイズすることができる。別の例として、ソースからの電子メールメッセージは、受信者のセットへの配信のために、ソースのユーザによって送信される一般的な請求されたコマーシャル電子メールメッセージを含み得る。ユーザとは、本明細書で用いられる場合、EMDS102と対話して、EMDS102によって提供される電子メール配信サービスを利用する、ソース(たとえば、104A)に関連付けられたエンドユーザ、事業主またはマーケティングオフィサを指し得る。
【0025】
特定の例では、ソース104Aに関連付けられたユーザは、場合によってはパブリックネットワーク106(たとえば、インターネット)を介してEMDSに通信可能に結合されたユーザデバイスを使用してEMDS102と対話することができる。ユーザデバイスは、携帯電話、タブレット、デスクトップコンピュータなどを含むがそれらに限定されないさまざまなタイプのものであってもよい。たとえば、ユーザは、ユーザデバイスによって実行されるアプリケーションのユーザインターフェイス(UI:User Interface)(グラフィカルユーザインターフェイス(GUI:Graphical User Interface)であってもよい)を使用してEMDS102と対話することができる。対話は、たとえば、認証資格情報および組織のユーザがEMDS102と対話することを可能にするためのさまざまな構成パラメータをユーザ(たとえば、組織の管理者)がUIを介してセットアップすることを含み得る。たとえば、ユーザは、(組織内の、電子メールを送信する全てのユーザの「From:」アドレスを識別することによって)承認された送信者リストをセットアップすること、組織のユーザを識別するために使用されるソースIPアドレスのプールを作成するよう要求すること、通信プロトコル(たとえば、簡易メール転送プロトコル(SMTP))およびユーザがEMDS102を介して電子メールを送信するためのユーザ資格情報をセットアップすること、ソースIPアドレスによって同時にサポートすることができるアウトバウンド接続の最大数(すなわち、IPアドレスが一度に単一の受信者ドメインにオープンであるようにすることができるアウトバウンド接続の最大数)に対する制限を指定すること、単一の接続を介して受信者のドメインに送信され得るメッセージの数に対するメッセージ制限を指定することなどを、UIを介して行うことができる。
【0026】
上記のようにEMDS102を構成した後、ソース(たとえば、104A)に関連付けられた顧客(本明細書では、送信者とも称される)のエンドユーザは、1つまたは複数の受信者のセットへの配信のために電子メールメッセージをユーザデバイスを介してEMDS102に送信することができる。特定の例では、エンドユーザは、ユーザのデバイスにインストールされた電子メールクライアントアプリケーション(たとえば、メールユーザエージェント)を利用して電子メールメッセージを作成することができる。メールユーザエージェント(MUA:Mail User Agent)は、EMDS102への提出の前に好適なフォーマットで電子メールメッセージをフォーマットすることができる。特定の例では、MUAは、提出プロトコル(たとえば、SMTP、HTTPまたは他のプロトコル)を利用してメッセージをEMDS102に送信することができる。電子メールメッセージは、最初に、受信された電子メールメッセージを電子メールメッセージキュー112に記憶するように構成されたMTA108内のキューマネージャ110によって受信され得る。本明細書に記載されているように、MTAは、さまざまなソースから電子メールメッセージを受信してこれらの電子メールメッセージを適切なエンドユーザまたは宛先に転送するように構成された、EMDS102内のネットワーク要素(たとえば、メールサーバ)であり得る。処理のためにMTAによって受信されたメッセージは、MTA108の電子メールメッセージキュー112に入れられる。一般的には、新たな電子メールメッセージは、メッセージキューの最後または末尾に追加され、MTAによる処理のために電子メールメッセージはキューの最初または先頭からピックアップされる。特定の実施形態では、MTA108は、メッセージをキューに追加すること、処理のためにメッセージをキューから選択することなどのタスクを実行することを含む、MTA電子メールメッセージキュー112の管理に関連するタスクを実行することを担当するキューマネージャ110を含み得る。MTAメッセージキュー112は、複数の異なる送信者からの電子メールメッセージを含み得て、これらの電子メールメッセージは、異なる受信者に向けられることができる。
【0027】
MTA108は、電子メールメッセージを受信して、後続の処理およびメッセージフィルタリングサブシステム116によるフィルタリングのためにこれらのメッセージをメッセージキュー112に追加する。ある一定の数のメッセージ(たとえば、電子メールメッセージのバッチ)が受信されてメッセージキュー112に記憶されると、MTAは、さらなる処理のために、メッセージキュー112に記憶されたメッセージをメッセージフィルタリングサブシステム116に送信し始める。メッセージフィルタリングサブシステム116は、メッセージキュー108に記憶された電子メールメッセージを意図した受信者への配信のためにEMRS134に送信する前に、それらの電子メールメッセージを処理する。特定の例では、メッセージフィルタリングサブシステム109によって実行される処理は、電子メールメッセージを選択的にサンプリングおよびスキャンすることによって電子メールメッセージをフィルタリングすることを含み得る。処理の結果に基づいて、メッセージフィルタリングサブシステム116は、電子メールメッセージが意図した受信者に配信されるかどうかに関して判断を行う。電子メールメッセージが配信されないと判断される場合、メッセージフィルタリングサブシステム116は、この電子メールメッセージを電子メールメッセージキューからフィルタリング除去/削除せよとの命令をMTA108内のキューマネージャ110に送信する。電子メールメッセージが配信されるべきであると判断される場合、メッセージフィルタリングサブシステム116は、受信者のシステム134への配信のためにこの電子メールメッセージを電子メール通信サブシステム114にリレーせよとの命令をキューマネージャ110に送信する。
【0028】
MTAは、メッセージキューが空になるまで、メッセージキューに記憶されたメッセージをエンドユーザ(受信者)または宛先に送信しようと周期的に試みる。受信者のサーバが応答しない場合、MTAは、繰り返し電子メールメッセージを受信者に送信しようとする。特定の期間(たとえば、ある一定の日数)電子メールメッセージを配信できない場合、MTAは、電子メールメッセージをホスト(メッセージの送信者)に戻す。電子メールメッセージを処理するための
図1におけるさまざまなシステムおよびサブシステムによって実行される処理に関連するさらなる詳細については、
図2~
図4に示されるフローチャートおよびそれらの付随する説明に関して以下で説明する。
【0029】
図2は、特定の実施形態に係る、
図1に示されるEMDSによって電子メールメッセージを処理するプロセス200の一例を示す図である。
図2に示される処理は、それぞれのシステムの1つもしくは複数の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせによって実現することができる。ソフトウェアは、非一時的な記憶媒体上(たとえば、メモリデバイス上)に記憶され得る。
図2に示されて以下で説明されるプロセス200は、例示的であって非限定的であるよう意図されている。
図2は、さまざまな処理ステップが特定のシーケンスまたは順序で行われることを示しているが、これは限定的であるよう意図されるものではない。特定の代替的な実施形態では、これらのステップは何らかの異なる順序で実行されてもよく、またはいくつかのステップが並行して実行されてもよい。
図1に示される実施形態などの特定の実施形態では、
図2に示される処理は、メッセージフィルタリングサブシステム116によって実行され得る。特定の実施形態では、メッセージフィルタリングサブシステム116内で、処理は、メッセージフィルタリングサブシステム116の電子メールメッセージグループ分けサブシステム118、電子メールサンプリングサブシステム120および電子メールメッセージコンテンツスキャンサブシステム122などの1つまたは複数のサブシステムによって実行され得る。
【0030】
図2に示される処理は、EMDS102が意図した受信者に配信される予定の電子メールメッセージのセットを受信したと仮定する。これらの電子メールメッセージは、EMDSによって提供される電子メール配信サービスの1つまたは複数の異なる顧客または加入者から受信され得る。次いで、受信された電子メールメッセージは、処理のためにEMDS102のMTA108に送られる。MTA108において、処理のためにMTAによって受信された電子メールメッセージは、MTA108の電子メールメッセージキュー112に入れられる。上記のように、MTAメッセージキューは、複数の異なる顧客(送信者)からの電子メールメッセージを含み得て、これらの電子メールメッセージは、異なる受信者に向けられることができる。たとえば、
図1に示される実施形態では、EMDS102は、複数の顧客から電子メールメッセージを受信することができる。これらの電子メールメッセージは、処理のためにMTA108によって受信されて、MTA108の電子メールメッセージキュー112に入れられることができる。
【0031】
図2に示される処理は、ブロック202においてMTA108による処理のために電子メールメッセージがメッセージキューの先頭から選択されると開始され得る。202において選択された電子メールメッセージについて、MTAは、選択された電子メールメッセージの送信者および意図した受信者を決定する。各電子メールメッセージは、電子メールメッセージの送信者に関連付けられたユーザを識別する「FROM」フィールド、電子メールメッセージの意図した受信者を識別する「TO」フィールド、電子メールのコンテンツを含む「BODY」フィールドなどの複数のフィールドを含む。202における処理の一部として、MTAは、選択された電子メールメッセージを構文解析して、電子メールメッセージの「FROM」フィールドから電子メールメッセージのユーザを決定し、「TO」フィールドから電子メールメッセージの意図した受信者を決定することができる。特定の実現例では、MTAは、「FROM」フィールドの中の文字列を構文解析して、電子メールメッセージを送信する権限を付与された送信者に関連付けられたユーザを決定することができる。たとえば、「FROM」フィールドは、「user1@abccompany.com」という形式の文字列を含み得る。ここで、「user1」は、電子メールメッセージの送信者に関連付けられたユーザを識別することができる。「@」記号の後の文字列の部分は、送信者に関連付けられたドメイン名または完全修飾ドメイン名を識別する。MTAは、このドメイン名に基づいて電子メールメッセージの送信者を識別することができる。user1@abcompany.comの例では、送信者は、ABC社であると識別することができる。
【0032】
特定の例では、電子メールメッセージの送信者を決定した後、MTAは、事前認証に基づいて承認処理を開始して、送信者が使用する権限を付与された全ての可能なFROMアドレスのリストを決定することができる、次いで、MTAは、承認されたFROMアドレスを使用したことを確かめるために送信者からのメッセージをチェックする。また、特定の実施形態では、送信者が電子メールメッセージの「TO」フィールドに対応するドメインに電子メールメッセージを送信する権限が付与されているかどうかを確認するためにチェックがなされてもよい。
【0033】
ブロック203において、202において選択されたメッセージについて決定された送信者に基づいて、MTA108は、選択された電子メールメッセージが削除されるかどうかを判断するためにチェックを実行する。たとえば、MTA108は、電子メールメッセージの送信者(すなわち、顧客)のIPレピュテーションまたは電子メールメッセージのコンテンツに基づいて、メッセージが削除されるべきであることを判断し得る。また、電子メールメッセージが削除されるべきであるかどうかの判断は、送信者からの先行する電子メールメッセージを処理した結果として、MTA108によって決定されたアクションに基づいてなされてもよい。たとえば、送信者からの先行する電子メールメッセージを処理した結果、1つまたは複数の電子メールメッセージがフィルタリング除去されたとMTA108が判断する場合、送信者から受信される後続の電子メールメッセージはいずれも、さらなる処理なしに削除される。電子メールメッセージが削除されるべきであるとMTA108が判断する場合、ブロック205において、MTA108は、送信者によるメッセージ送信を速やかに一時停止して、この顧客(送信者)についてメッセージキューに入れられたメッセージをいずれもフラッシュする。このように、開示されているシステムは、送信者がさらなる問題のあるメッセージを提出することを防止するとともに、システム内の既にキューに入れられているそのようなメッセージをいずれも取り除く機能をさらに含む。
【0034】
ブロック203において、ブロック202において選択された電子メールメッセージを処理することができるとMTA108が判断する場合、ブロック204において、電子メールメッセージグループ分けサブシステム118は、受信された電子メールメッセージのグループを決定する。電子メールメッセージのグループは、電子メールメッセージに関連付けられたメタデータおよびEMDS102によって定義された規則のセット124(本明細書では、グループ分け規則とも称される)などのさまざまな基準を使用して決定され得る。特定の例では、各グループは、電子メッセージの特定の顧客(送信者)に関連付けられ得る。特定の例では、電子メールメッセージグループ分けサブシステム118は、単一の顧客/送信者について複数のグループを作成してもよい。電子メールメッセージのグループを決定するために電子メールメッセージグループ分けサブシステム118によって実行される処理に関連する詳細は、
図3およびその付随する説明において説明される。
【0035】
また、特定の実施形態では、電子メールメッセージグループ分けサブシステム118は、各グループに関連付けられた状態情報128を記憶するように構成されている。状態情報128は、グループに関連付けられた送信者のレピュテーション、当該送信者のグループから以前にフィルタリング除去された電子メールの数、グループについて以前にスキャンされた電子メールの数、送信者の新しさ、グループに関連付けられた送信者に特有のコンプライアンス規則などの、グループの特徴を記載する情報を含み得る。特定の例では、電子メールメッセージグループ分けサブシステム118は、EMDS104内のグループ情報データストア126内の関連付けられた状態情報とともに、グループに関連付けられた情報を記憶するように構成され得る。例として、グループ情報データストア126は、各グループについての状態情報とともに、複数の異なる送信者(顧客)についてのグループ情報を記憶してもよい。たとえば、
図1に示されるように、送信者S1についてのグループ情報は、(G1,S1)および(G2,S2)として表すことができ、関連付けられた状態情報S1,S2を有する2つのグループG1,G2で構成される。
【0036】
ブロック206において、電子メールメッセージサンプリングサブシステム120は、グループについて計算されたサンプリング確率を決定/取得する。特定の例では、サンプリング確率とは、特定のメッセージがサンプルとして選択される確率(n/N)を指し、nはサンプルサイズであり、Nはグループのサイズ(母集団)である。電子メールメッセージが追加されるグループのサンプリング確率を計算するために電子メールメッセージサンプリングサブシステム120によって実行される処理に関連する詳細は、
図5およびその付随する説明において説明される。
【0037】
ブロック208において、処理は、ブロック206において決定されたサンプリング確率に基づいて、電子メールメッセージがコンテンツスキャンのために選択されるかどうかを判断することを含む。特定の例では、ブロック208における処理は、電子メールメッセージサンプリングサブシステム120が、ブロック204において決定されたグループに関連付けられたサンプリング履歴情報を取得して、スキャンのために選択されたグループ内の以前に受信された電子メールメッセージを特定することをさらに含み得る。サンプリング履歴情報は、新たに受信されたメッセージがサンプリングおよびコンテンツスキャンのために選択されなければならないかどうかを判断するために、既にサンプリングされたおよび/またはコンテンツスキャンのために既に選択されたグループ内の電子メールメッセージを特定および/または追跡するのに電子メールメッセージサンプリングサブシステム120が使用することができる。特定の例では、電子メールメッセージのさまざまなグループに関連付けられたサンプリング履歴情報は、EMDS104内のサンプリング履歴データストア132に記憶され得る。208に記載された処理に基づいて、メッセージは、サンプリング確率に基づいてコンテンツスキャンのために選択的に選択されることができる。このように、開示されているプロセスは、どのメッセージに対してもフルコンテンツスキャンを実行する必要がなくなることによって、費用対効果が高く、効率的で、時間的制約のある態様での大量の電子メールメッセージの処理を可能にする。
【0038】
ブロック210において、電子メールメッセージサンプリングサブシステム112は、電子メールメッセージがコンテンツスキャンのために選択されたかどうかを判断するためにチェックを実行する。電子メールメッセージがコンテンツスキャンのために選択された場合、電子メールメッセージサンプリングサブシステム120は、電子メールメッセージを電子メールメッセージコンテンツスキャンサブシステム122に送信する。ブロック214において、電子メールメッセージコンテンツスキャンサブシステム122は、電子メールメッセージのコンテンツをスキャンするための処理を実行する。電子メールメッセージコンテンツスキャンサブシステム122によって実行される処理に関連するさらなる詳細は、
図4およびその付随する説明において説明される。
【0039】
ブロック216において、電子メールメッセージコンテンツスキャンサブシステム122は、ブロック214において実行されたコンテンツスキャンの結果に基づいて、電子メールメッセージがフィルタリング除去されるべきであるかどうかを判断する。電子メールメッセージがフィルタリング除去される必要がある場合、ブロック218において、電子メールメッセージコンテンツスキャンサブシステム122は、電子メールメッセージキュー112から電子メールメッセージをフィルタリング/削除せよとの命令をMTA108内のキューマネージャ110に送信する。電子メールメッセージがフィルタリング除去される必要がない場合、ブロック217において、電子メールメッセージは意図した受信者にリレーされる。
【0040】
ブロック210において、電子メールメッセージがコンテンツスキャンのために選択されなかったと判断される場合、ブロック212において、電子メールメッセージサンプリングサブシステム112は、コンテンツスキャンなしに電子メールメッセージを意図した受信者にリレーせよとの命令をキューマネージャ106に送信する。
【0041】
図3は、特定の実施形態に係る、
図1に示されるEMDSによって電子メールメッセージをグループ分けするプロセス300の一例を示す図である。
図3に示される処理は、それぞれのシステムの1つまたは複数の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせで実現することができる。ソフトウェアは、非一時的な記憶媒体上(たとえば、メモリデバイス上)に記憶され得る。
図3に示されて以下で説明されるプロセス300は、例示的であって非限定的であるよう意図されている。
図3は、さまざまな処理ステップが特定のシーケンスまたは順序で行われることを示しているが、これは限定的であるよう意図されるものではない。特定の代替的な実施形態では、これらのステップは何らかの異なる順序で実行されてもよく、またはいくつかのステップが並行して実行されてもよい。
図1に示される実施形態などの特定の実施形態では、
図3に示される処理は、メッセージフィルタリングサブシステム116の電子メールメッセージグループ分けサブシステム118によって実行され得る。
【0042】
図3に示される実施形態では、処理はブロック302から開始され、ブロック302において、電子メールメッセージグループ分けサブシステム118は、ブロック202において処理のために選択された電子メールメッセージのグループを決定するために使用されるグループ分け規則のセット124を特定する。特定の例では、グループ分け規則124は、EMDS102によって以前に受信および処理されたメッセージに関連付けられたメタデータの分析に基づいて、EMDS102のユーザ(たとえば、管理者)によって定義され得る。例として、電子メールメッセージに関連付けられたメタデータは、電子メールメッセージに関連付けられた顧客(送信者)、電子メールメッセージに関連付けられた電子メールのサイズ(電子メールの本文のサイズと任意の電子メール添付物のサイズとを含み得る)などを含み得るが、それらに限定されるものではない。たとえば、メッセージの送信者の特定の宣伝キャンペーンから発信される大量の電子メールメッセージは全て、ある一定のサイズ範囲内であるため、まとめて送信者の単一のグループにグループ分けされ得る。特定の例では、グループ分け規則は、電子メールメッセージを特定のグループに分類するための電子メールメッセージのメタデータに対して適用される(if-then規則の形式の)1つまたは複数の条件/基準のセットを定義することができる。例として、電子メールメッセージの送信者と電子メールメッセージのサイズとの組み合わせに基づいて生成されるグループ分け規則は、以下の形式をとってもよい。
【0043】
グループ分け規則:送信者が=S1であって、電子メールメッセージのサイズが(100kb~200kb)の範囲内である場合、電子メールメッセージを送信者S1の第1のグループに分類する
ブロック304において、電子メールメッセージグループ分けサブシステム118は、ブロック202において処理のために選択された電子メールメッセージに関連付けられたメタデータを特定する。ブロック306において、電子メールメッセージグループ分けサブシステム118は、ブロック302において特定されたグループ分け規則およびブロック304において特定されたメタデータに基づいて、電子メールメッセージのグループを決定する。例として、電子メールメッセージに関連付けられたメタデータ(たとえば、送信者、電子メールのサイズ)の分析およびグループ分け規則のセットに基づいて、電子メールメッセージグループ分けサブシステム110は、電子メールメッセージを送信者の第1のグループに分類することができる。
【0044】
ブロック308において、電子メールメッセージグループ分けサブシステム118は、ブロック306において決定されたグループが既に存在するかどうかを判断するためにチェックを実行する。グループが存在する場合、ブロック314において、電子メールメッセージグループ分けサブシステム118は、電子メールメッセージを既存の特定されたグループに追加して、電子メールメッセージが追加されたグループのサンプリング確率を計算するためのブロック206における処理を実行することに進む。
【0045】
グループが存在しない場合、ブロック310において、電子メールメッセージグループ分けサブシステム118は、電子メールメッセージの新たなグループを作成する。特定の例では、このグループは、(その状態情報とともに)電子メールメッセージの顧客(送信者)に関連付けられて、グループ情報データストア126に記憶される。
【0046】
ブロック312において、電子メールメッセージグループ分けサブシステム118は、ブロック310において作成されたグループに電子メールメッセージを追加して、電子メールメッセージが追加されたグループのサンプリング確率を計算するためのブロック206における処理を実行することに進む。
【0047】
図4は、特定の実施形態に係る、
図1に示されるEMDSによって電子メールメッセージのサンプリング関連処理およびコンテンツスキャンを実行するためのプロセス400の一例を示す図である。
図4に示される処理は、それぞれのシステムの1つまたは複数の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせで実現することができる。ソフトウェアは、非一時的な記憶媒体上(たとえば、メモリデバイス上)に記憶され得る。
図4に示されて以下で説明されるプロセス400は、例示的であって非限定的であるよう意図されている。
図4は、さまざまな処理ステップが特定のシーケンスまたは順序で行われることを示しているが、これは限定的であるよう意図されるものではない。特定の代替的な実施形態では、これらのステップは何らかの異なる順序で実行されてもよく、またはいくつかのステップが並行して実行されてもよい。
図1に示される実施形態などの特定の実施形態では、
図4に示される処理は、メッセージフィルタリングサブシステム116の電子メールメッセージサンプリングサブシステム120および電子メールメッセージコンテンツスキャンサブシステム122によって実行され得る。
【0048】
図4に示される実施形態では、処理はブロック402から開始され、ブロック402において、電子メールメッセージサンプリングサブシステム120は、グループについて計算されたサンプリング確率を取得する。グループのサンプリング確率を計算するために電子メールメッセージサンプリングサブシステムによって実行される処理に関連する詳細は、
図5およびその付随する説明において説明される。
【0049】
ブロック404において、電子メールメッセージサンプリングサブシステム120は、ブロック402において取得されたサンプリング確率に基づいて、グループに追加された直近の電子メールメッセージがコンテンツスキャンのために選択されるかどうかを判断する。ブロック404におけるプロセスは、電子メールメッセージサンプリングサブシステム120が、グループに関連付けられたサンプリング履歴情報を利用することをさらに含み得る。上記のように、サンプリング履歴情報は、新たに受信されたメッセージがサンプリングおよびコンテンツスキャンのために選択されなければならないかどうかを判断するために、以前にサンプリングされたおよび/またはコンテンツスキャンのために選択されたグループ内の電子メールメッセージを決定および/または追跡するのに電子メールメッセージサンプリングサブシステム120が使用することができる。特定の例では、電子メールメッセージのさまざまなグループに関連付けられたサンプリング履歴情報は、EMDS102内のサンプリング履歴データストア132に記憶され得る。
【0050】
ブロック406において、グループに追加された直近の電子メールメッセージがコンテンツスキャンのために選択されないと電子メールメッセージサンプリングサブシステム120が判断する場合、ブロック408において、電子メールメッセージサンプリングサブシステム120は、いかなるコンテンツスキャンも実行することなく、直近に受信された電子メールメッセージを意図した受信者にリレーし、ブロック410において、グループに関連付けられた状態情報を更新する。ブロック406におけるプロセスは、電子メールメッセージサンプリングサブシステム120が、受信者のシステム134への配信のために電子メールメッセージを電子メール通信サブシステム114にリレーせよとの命令をキューマネージャ110に送信することを含み得る。
【0051】
ブロック406において、グループに追加された直近の電子メールメッセージがコンテンツスキャンのために選択されると電子メールメッセージサンプリングサブシステム120が判断する場合、処理はブロック412に進み、ブロック412において、電子メールメッセージコンテンツスキャンサブシステム122は、グループに追加された直近の電子メールメッセージのコンテンツをスキャンするのに使用されるスキャンリソースを特定する。ブロック414において、電子メールメッセージコンテンツスキャンサブシステム122は、ブロック412において特定されたスキャンリソースを使用して電子メールメッセージのコンテンツをスキャンする。
【0052】
ブロック416において、電子メールメッセージコンテンツスキャンサブシステム122は、ブロック414において実行されたコンテンツスキャンの結果に基づいて、電子メールメッセージがフィルタリング除去される必要があるかどうかを判断する。ブロック418において、電子メールメッセージがフィルタリング除去される必要があると判断される場合、ブロック420において、電子メールメッセージコンテンツスキャンサブシステム122は、電子メールメッセージをキュー112から削除せよとの命令をキューマネージャ110に送信して、グループに関連付けられた状態情報を更新する。特定の実施形態では、ブロック421において、電子メールメッセージコンテンツスキャンサブシステム122は、フィルタリングされた電子メールメッセージに対してさらなるアクションを実行することができる。たとえば、アクションは、送信者によって受信された後続の電子メールメッセージを処理することなく削除せよとの命令をキューマネージャ110に送信することを含み得る。別の例として、アクションは、さらなるメッセージを送信する顧客の権利を全面的に一時停止することを含み得る。
【0053】
電子メールメッセージがフィルタリング除去される必要がないと判断される場合、ブロック422において、電子メールメッセージコンテンツスキャンサブシステム122は、受信者のシステム134への配信のために電子メールメッセージを電子メール通信サブシステム114にリレーせよとの命令をキューマネージャ110に送信して、グループに関連付けられた状態情報を更新する。
【0054】
図5は、特定の実施形態に係る、グループのサンプリング確率を計算するために
図1に示されるEMDSによって実行される処理のプロセス500の一例を示す図である。
図5に示される処理は、それぞれのシステムの1つまたは複数の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせで実現することができる。ソフトウェアは、非一時的な記憶媒体上(たとえば、メモリデバイス上)に記憶され得る。
図5に示されて以下で説明されるプロセス500は、例示的であって非限定的であるよう意図されている。
図5は、さまざまな処理ステップが特定のシーケンスまたは順序で行われることを示しているが、これは限定的であるよう意図されるものではない。特定の代替的な実施形態では、これらのステップは何らかの異なる順序で実行されてもよく、またはいくつかのステップが並行して実行されてもよい。
図1に示される実施形態などの特定の実施形態では、
図5に示される処理は、新たに作成されたグループのサンプリング確率を計算するためにメッセージフィルタリングサブシステム116の電子メールメッセージサンプリングサブシステム120によって実行され得る。また、特定の実施形態では、
図5に示される処理は、ある一定の予め定められた条件が満たされる場合に(たとえば、ある一定の数の電子メールメッセージがグループに追加された後に、ある一定の時間後に、など)グループのサンプリング確率を再計算するために実行され得る。
【0055】
特定の実施形態では、グループのサンプリング確率を計算するために実行される処理の一部として、ブロック502において、電子メールメッセージサンプリングサブシステム120は、グループの状態情報128を決定/取得する。上記のように、状態情報128は、グループに関連付けられた送信者のレピュテーション、グループから以前にフィルタリング除去された電子メールの数、グループ内の以前にスキャンされた電子メールの数、顧客/送信者の新しさ、グループに関連付けられた顧客(送信者)に特有のコンプライアンス規則などを含み得るが、それらに限定されるものではない。
【0056】
ブロック504において、電子メールメッセージサンプリングサブシステム120は、電子メールメッセージのコンテンツをスキャンするためのスキャンリソースの利用可能性を示す情報を受信する。スキャンリソースは、たとえば、発見的規則を使用して電子メールメッセージを意図した受信者に配信する前に電子メールメッセージのコンテンツをスキャン/スクリーニングするコンテンツスキャンエンジンを含み得る。
【0057】
ブロック506において、電子メールメッセージサンプリングサブシステム120は、グループのサンプリング確率を決定するために使用される規則を決定する。たとえば、サンプリング規則は、新たに作成されたグループでは、受信されたどの電子メールメッセージも(または、受信された最初の「M個の」電子メールメッセージが)サンプリングおよびスキャンされるべきである一方、ある一定の数の電子メールメッセージが既にサンプリングおよびスキャンされているグループでは、サンプリング確率をある一定の割合だけ減少させてもよい、ということを指定することができる。また、サンプリング規則は、さまざまなさらなる基準を使用して決定され得て、それらの基準は、信頼性の低い顧客および/またはEMDSによって提供される電子メール配信サービスを最近使用していない顧客についてはより多くのサンプリングおよびスキャンを実行すること、グループの一部である後続のメッセージについてはより少ないスキャンを実行することなどを含むが、それらに限定されるものではない。特定のアプローチでは、全く新しい顧客によって送信されたメッセージは、大半または全てがスキャンされてもよい。なぜなら、そのような顧客は、一般的には、限られた数のメッセージしか送信できないからである。また、サンプリング規則によって指定される基準は、スキャンリソースの利用可能性(たとえば、スキャン速度が最大限度に程遠い場合、スキャンはほとんど常に実行される)、およびスキャンコストに基づいて導き出されてもよい。たとえば、スキャンコストは、メッセージのサイズに左右され得る(妥当なスキャナ挙動を仮定すると、非常に小さなメッセージを無条件にスキャンしない理由はないだろう)。
【0058】
ブロック508において、電子メールメッセージサンプリングサブシステム120は、ブロック506において定義された規則と、ブロック502および504において決定された情報とを使用して、グループのサンプリング確率を計算する。本明細書に記載されるように、サンプリング確率とは、特定のメッセージがサンプルとして選択される確率(n/N)を指し、nはサンプルサイズであり、Nはグループのサイズ(母集団)である。特定のアプローチでは、サンプリング確率は、ベルヌーイ分布として表すことができ、ベルヌーイ分布は、確率p=n/Nでは値1をとり、確率q=1-p以下では値0をとる確率変数の離散確率分布である。この実現例では、サンプリング確率は、イエス・ノー質問をする任意の単一の実験の可能な結果のセットのためのモデルとして構築することができ、平均はサンプリング確率pであり、分散は1/4を超えることがないp*qであり、これは、サンプリングが適正である可能性が高いことを意味する。
【0059】
たとえば、ランダムサンプリングに基づいて、グループサイズがN=100であってサンプリング確率が0.5であれば、100個のメッセージの各々は、サンプリングされる可能性が50%である。言い換えれば、サンプリング確率が0.5であれば、100個のサンプルのうちの50個のサンプルの平均が取得され得る。サンプリングされたメッセージを示すのに数字「1」が使用され、サンプリングされていないメッセージを示すのに「0」が使用される場合、サンプリングされたメッセージの平均が50/100である限り、50個のサンプリングされたメッセージは11100000....または1010001....の形式をとることができる。サンプリング確率が0.25であれば、100個のメッセージの各々は、サンプリングされる可能性が1/4(25%)である。これは、100個のメッセージのうちの25個のメッセージがサンプリングされる可能性があることを意味する。p=.25およびq=.75である場合、多数のメッセージにわたる平均は0.25であり、これは、メッセージの4分の1がサンプリングされる可能性があることを意味する。サンプリング確率が1であれば、全てのメッセージがサンプリングされる可能性がある。
【0060】
たとえば、電子メールメッセージサンプリングサブシステム120は、グループに関連付けられた状態情報、グループ分け規則およびスキャンリソースの利用可能性に基づいて、新たに作成されたグループのサンプリング確率が100%であるべきである(すなわち、全てのメッセージがサンプリングされる可能性がある)ことを計算し得る。一方、電子メールメッセージサンプリングサブシステム120は、ある一定の数の電子メールメッセージが既にサンプリングおよびスキャンされているグループについては50%というサンプリング確率を計算し得る。上記のように、グループのサンプリング確率が50%であることは、グループ内の各メッセージがサンプリングされる可能性が50%であることを示す。
【0061】
図1に示される実施形態などの特定の実施形態では、MTA108は、フィルタアプリケーション(「milter」とも称される)で構成され得る。milterは、最初の接続から送信の完了までのメッセージの配信の各段階についてメッセージフィルタリングサブシステム116に通知するように構成され得る。セッションの各段階において、フィルタアプリケーションは、着信メッセージについてのデータを与えられてもよく、その上、メッセージの受け入れを適宜早めに終了させる機会を有する。非常に大きなメッセージでは、電子メールメッセージを拒否する決定をできるだけ早く行う場合にこれは多大な影響を及ぼし得る。milterは、電子メール配信サービスによって使用される通信プロトコル(たとえば、SMTPプロトコル)と足並みをそろえて動作することができるように設計され得て、データは、直接SMTP接続からフィルタに流れる。しかし、代替的なアプローチでは、MTAは、milterをシーケンシャルに動作させるように構成され得る。特に、メッセージのサイズは、コンテンツフィルタを適用するかどうかを判断するのに重要であり得るので、MTAは、どのメッセージもmilterを介してメッセージフィルタリングサブシステムに送信する前にメッセージ全体をバッファリングすることができ、判断がコンテンツスキャンが不要であるというものである場合には、単に接続を閉じることによってmilterを終了させることができる。
【0062】
本開示に記載されているクラウドベースの電子メールメッセージ配信システムは、コマーシャルメッセージストリームの一部として受信された電子メールメッセージを意図した受信者に配信する前にそれらのメッセージを選択的にフィルタリング除去する改良された電子メールメッセージフィルタリングソリューションを提供することによって、従来のメッセージ配信サービスと比較していくつかの技術的進歩および/または向上を提供する。選択的フィルタリングは、メッセージストリーム内の電子メールメッセージに関連付けられたグループについて計算されたサンプリング確率に基づいて、電子メールメッセージがサンプリングのために選択されるかどうかを判断することによって実行される。そして、選択的フィルタリングは、選択された電子メールメッセージのコンテンツをスキャンすることを含む。コンテンツスキャンの結果に基づいて、開示されているプロセスは、選択された電子メールメッセージがフィルタリング除去されるか、または意図した受信者に送信されるかを判断する。メッセージストリームの一部として受信される電子メールメッセージを選択的にサンプリングおよびスキャンすることによって、本明細書に記載される開示されている電子メールメッセージフィルタリングソリューションは、費用対効果が高く、効率的で、時間的制約のある態様での大量の電子メールメッセージの処理を可能にする。
【0063】
クラウドサービスという語は、クラウドサービスプロバイダ(CSP:Cloud Services Provider)によって提供されるシステムおよびインフラストラクチャ(クラウドインフラストラクチャ)を使用してCSPによってユーザまたは顧客がオンデマンドで(たとえば、サブスクリプションモデルを介して)利用できるようにされるサービスを指すために一般に用いられる。一般的には、CSPのインフラストラクチャを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは別のものである。したがって、顧客は、CSPによって提供されるクラウドサービスを、それらのサービスのための別個のハードウェアおよびソフトウェアリソースを購入する必要なしに利用することができる。クラウドサービスは、加入している顧客がそれらのサービスを提供するのに使用されるインフラストラクチャの調達に投資する必要なしに、アプリケーションおよびコンピューティングリソースへの容易でスケーラブルなアクセスを顧客に提供するように設計されている。
【0064】
さまざまなタイプのクラウドサービスを提供するいくつかのクラウドサービスプロバイダがある。サービスとしてのソフトウェア(SaaS:Software-as-a-Service)、サービスとしてのプラットフォーム(PaaS:Platform-as-a-Service)、サービスとしてのインフラストラクチャ(IaaS:Infrastructure-as-a-Service)などを含むさまざまな異なるタイプまたはモデルのクラウドサービスがある。
【0065】
顧客は、CSPによって提供される1つまたは複数のクラウドサービスに加入することができる。顧客は、個人、組織、企業などの任意のエンティティであり得る。CSPによって提供されるサービスに顧客が加入または登録すると、当該顧客のためにテナンシまたはアカウントが作成される。そして、顧客は、このアカウントを介して、このアカウントに関連付けられた、加入した1つまたは複数のクラウドリソースにアクセスすることができる。
【0066】
上述のように、サービスとしてのインフラストラクチャ(IaaS)は、1つの特定のタイプのクラウドコンピューティングである。IaaSは、パブリックネットワーク(たとえば、インターネット)を介して、仮想化されたコンピューティングリソースを提供するように構成され得る。IaaSモデルでは、クラウドコンピューティングプロバイダは、インフラストラクチャ構成要素(たとえば、サーバ、ストレージデバイス、ネットワークノード(たとえば、ハードウェア)、展開ソフトウェア、プラットフォーム仮想化(たとえば、ハイパーバイザ層)など)をホストし得る。いくつかのケースでは、IaaSプロバイダはまた、それらのインフラストラクチャ構成要素に付随するよう、さまざまなサービス(たとえば、課金、監視、ロギング、負荷分散およびクラスタリングなど)を供給してもよい。したがって、これらのサービスはポリシー駆動型であってもよいので、IaaSユーザは、アプリケーションの利用可能性およびパフォーマンスを維持するために負荷分散を駆動するためのポリシーを実行することができるであろう。
【0067】
いくつかの事例では、IaaS顧客は、インターネットなどのワイドエリアネットワーク(WAN:Wide Area Network)を通してリソースおよびサービスにアクセスしてもよく、クラウドプロバイダのサービスを使用して、アプリケーションスタックの残りの要素をインストールしてもよい。たとえば、ユーザは、IaaSプラットフォームにログインして、仮想マシン(VM:Virtual Machine)を作成し、各VMにオペレーティングシステム(OS:Operating System)をインストールし、データベースなどのミドルウェアを展開し、ワークロードおよびバックアップのためにストレージバケットを作成し、さらには企業ソフトウェアをそのVMにインストールし得る。次いで、顧客は、プロバイダのサービスを使用して、ネットワークトラフィックの均衡化、アプリケーション問題のトラブルシューティング、パフォーマンスの監視、災害復旧の管理などを含むさまざまな機能を実行し得る。
【0068】
ほとんどの場合、クラウドコンピューティングモデルは、クラウドプロバイダの参加を必要とすることになる。クラウドプロバイダは、IaaSの提供(たとえば、申し出、レンタル、販売)に特化した第三者サービスであってもよいが、その必要はない。エンティティも、プライベートクラウドを展開することを選択し、インフラストラクチャサービスの独自のプロバイダになってもよい。
【0069】
いくつかの例では、IaaS展開は、新たなアプリケーションまたはアプリケーションの新たなバージョンを準備されたアプリケーションサーバなどに置くプロセスである。それはまた、サーバを準備する(たとえば、ライブラリ、デーモンなどをインストールする)プロセスも含んでもよい。これは、多くの場合、クラウドプロバイダによって、ハイパーバイザ層(たとえば、サーバ、ストレージ、ネットワークハードウェア、および仮想化)の下で管理される。したがって、顧客は、(たとえば、(たとえば、オンデマンドで起動されてもよい)セルフサービス仮想マシン上での)ハンドリング(OS)、ミドルウェア、および/またはアプリケーション展開などを担ってもよい。
【0070】
いくつかの例では、IaaSプロビジョニングは、使用のためにコンピュータまたは仮想ホストを取得すること、および必要とされるライブラリまたはサービスをそれらにインストールすることさえも指してもよい。ほとんどの場合、展開はプロビジョニングを含まず、プロビジョニングは最初に実行される必要があってもよい。
【0071】
いくつかのケースでは、IaaSプロビジョニングには2つの異なる課題がある。第1に、何かが動作する前にインフラストラクチャの初期セットをプロビジョニングするという最初の課題がある。第2に、あらゆるものがプロビジョニングされると、既存のインフラストラクチャを発展させる(たとえば、新たなサービスの追加、サービスの変更、サービスの削除など)という課題がある。いくつかのケースでは、これらの2つの課題は、インフラストラクチャの構成が宣言的に定義されることを可能にすることによって対処されてもよい。言い換えれば、インフラストラクチャ(たとえば、どのような構成要素が必要とされるか、およびそれらがどのように対話するか)は、1つまたは複数の構成ファイルによって定義され得る。したがって、インフラストラクチャの全体的なトポロジー(たとえば、どのようなリソースがどのリソースに依存するか、およびそれらが各々どのように協働するか)は、宣言的に記述され得る。いくつかの事例では、トポロジーが定義されると、構成ファイルに記述される異なる構成要素を作成および/または管理するワークフローを生成し得る。
【0072】
いくつかの例では、インフラストラクチャは、多くの相互接続された要素を有してもよい。たとえば、コアネットワークとしても知られている1つまたは複数の仮想プライベートクラウド(VPC:Virtual Private Cloud)(たとえば、構成可能および/または共有されるコンピューティングリソースの、潜在的にオンデマンドのプール)があり得る。いくつかの例では、ネットワークのインバウンドおよび/またはアウトバウンドトラフィックがどのようにセットアップされるかを定義するためにプロビジョニングされる1つまたは複数のインバウンド/アウトバウンドトラフィックグループルール、および1つまたは複数の仮想マシン(VM)もあり得る。ロードバランサ、データベースなどの他のインフラストラクチャ要素もプロビジョニングされてもよい。ますます多くのインフラストラクチャ要素が所望および/または追加されるにつれて、インフラストラクチャは漸進的に進化し得る。
【0073】
いくつかの事例では、さまざまな仮想コンピューティング環境にわたるインフラストラクチャコードの展開を可能にするために、連続展開技法が採用されてもよい。加えて、説明される技法は、これらの環境内でインフラストラクチャ管理を可能にし得る。いくつかの例では、サービスチームが、1つまたは複数の、ただし多くの場合、多くの、異なる生産環境(たとえば、時として世界全体に及ぶ、さまざまな異なる地理的場所にわたる)に展開されることが望まれるコードを書き込み得る。しかしながら、いくつかの例では、コードが展開されるインフラストラクチャは、最初にセットアップされなければならない。いくつかの事例では、プロビジョニングは、手動で行われ得、プロビジョニングツールを利用してリソースをプロビジョニングしてもよく、および/または、インフラストラクチャがプロビジョニングされると、展開ツールを利用してコードを展開してもよい。
【0074】
図6は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの例示的なパターンを示すブロック
図600である。サービスオペレータ602は、仮想クラウドネットワーク(VCN:Virtual Cloud Network)606およびセキュアホストサブネット608を含み得るセキュアホストテナンシ604に通信可能に結合され得る。いくつかの例では、サービスオペレータ602は、1つまたは複数のクライアントコンピューティングデバイスを用いていてもよく、それらは、ポータブルハンドヘルドデバイス(たとえば、iPhone(登録商標)、セルラー電話、iPad(登録商標)、コンピューティングタブレット、携帯情報端末(PDA:Personal Digital Assistant))またはウェアラブルデバイス(たとえば、Google Glass(登録商標)ヘッドマウントディスプレイ)であってもよく、Microsoft Windows Mobile(登録商標)などのソフトウェア、および/もしくは、iOS、Windows Phone、 Android、BlackBerry 8、Palm OSなどのさまざまなモバイルオペレーティングシステムを実行し、インターネット、電子メール、ショートメッセージサービス(SMS:Short Message Service)、Blackberry(登録商標)、または他のイネーブルにされた通信プロトコルである。代替的に、クライアントコンピューティングデバイスは、例として、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/もしくはLinux(登録商標)オペレーティングシステムを実行するパーソナルコンピュータならびに/またはラップトップコンピュータを含む汎用パーソナルコンピュータとし得る。クライアントコンピューティングデバイスは、たとえばGoogle(登録商標) Chrome OSなどのさまざまなGNU/Linuxオペレーティングシステムを含むがそれに限定されるものではない、さまざまな市販のUNIX(登録商標)またはUNIX様オペレーティングシステムのいずれかを実行するワークステーションコンピュータとし得る。代替的に、または追加的に、クライアントコンピューティングデバイスは、VCN606および/またはインターネットにアクセスし得るネットワークを介して通信することが可能な、シンクライアントコンピュータ、インターネット対応ゲームシステム(たとえば、Kinect(登録商標)ジェスチャ入力装置を有するかまたは有さないMicrosoft Xboxゲームコンソール)、および/またはパーソナルメッセージングデバイスなどの任意の他の電子デバイスであってもよい。
【0075】
VCN606は、ローカルピアリングゲートウェイ(LPG:Local Peering Gateway)610を含み得、それは、SSH VCN612に含まれるLPG610を介してセキュアシェル(SSH:Secure SHell)VCN612に通信可能に結合され得る。SSH VCN612は、SSHサブネット614を含み得、SSH VCN612は、制御プレーンVCN616に含まれるLPG610を介して制御プレーンVCN616に通信可能に結合され得る。また、SSH VCN612は、LPG610を介してデータプレーンVCN618に通信可能に結合され得る。制御プレーンVCN616およびデータプレーンVCN618は、IaaSプロバイダによって所有および/または操作され得るサービステナンシ619に含まれ得る。
【0076】
制御プレーンVCN616は、周辺ネットワーク(たとえば、企業イントラネットと外部ネットワークとの間の企業ネットワークの部分)として機能する制御プレーンデミリタライズドゾーン(DMZ:Demilitarized Zone)層620を含み得る。DMZベースのサーバは、制限された責任を有し、侵害が含まれるように保つのを助けてもよい。さらに、DMZ層620は、1つまたは複数のロードバランサ(LB:Load Balancer)サブネット622と、アプリサブネット626を含み得る制御プレーンアプリ層624と、データベース(DB:Database)サブネット630(たとえば、フロントエンドDBサブネットおよび/またはバックエンドDBサブネット)を含み得る制御プレーンデータ層628とを含み得る。制御プレーンDMZ層620に含まれるLBサブネット622は、制御プレーンアプリ層624に含まれるアプリサブネット626と、制御プレーンVCN616に含まれ得るインターネットゲートウェイ634とに通信可能に結合され得、アプリサブネット626は、制御プレーンデータ層628に含まれるDBサブネット630と、サービスゲートウェイ636と、ネットワークアドレス変換(NAT:Network Address Translation)ゲートウェイ638とに通信可能に結合され得る。制御プレーンVCN616は、サービスゲートウェイ636およびNATゲートウェイ638を含み得る。
【0077】
制御プレーンVCN616は、アプリサブネット626を含み得るデータプレーンミラーアプリ層640を含み得る。データプレーンミラーアプリ層640に含まれるアプリサブネット626は、計算インスタンス644を実行し得る仮想ネットワークインターフェイスコントローラ(VNIC:Virtual Network Interface Controller)642を含み得る。計算インスタンス644は、データプレーンミラーアプリ層640のアプリサブネット626を、データプレーンアプリ層646に含まれ得るアプリサブネット626に、通信可能に結合し得る。
【0078】
データプレーンVCN618は、データプレーンアプリ層646と、データプレーンDMZ層648と、データプレーンデータ層650とを含み得る。データプレーンDMZ層648は、データプレーンアプリ層646のアプリサブネット626およびデータプレーンVCN618のインターネットゲートウェイ634に通信可能に結合され得るLBサブネット622を含み得る。アプリサブネット626は、データプレーンVCN618のサービスゲートウェイ636およびデータプレーンVCN618のNATゲートウェイ638に通信可能に結合され得る。データプレーンデータ層650も、データプレーンアプリ層646のアプリサブネット626に通信可能に結合され得るDBサブネット630を含み得る。
【0079】
制御プレーンVCN616およびデータプレーンVCN618のインターネットゲートウェイ634は、パブリックインターネット654に通信可能に結合され得るメタデータ管理サービス652に通信可能に結合され得る。パブリックインターネット654は、制御プレーンVCN616およびデータプレーンVCN618のNATゲートウェイ638に通信可能に結合され得る。制御プレーンVCN616およびデータプレーンVCN618のサービスゲートウェイ636は、クラウドサービス656に通信可能に結合され得る。
【0080】
いくつかの例では、制御プレーンVCN616またはデータプレーンVCN618のサービスゲートウェイ636は、パブリックインターネット654を通過することなくクラウドサービス656にアプリケーションプログラミングインターフェイス(API:Application Programming Interface)呼び出しを行い得る。サービスゲートウェイ636からのクラウドサービス656へのAPI呼び出しは、一方向であり得、サービスゲートウェイ636は、クラウドサービス656にAPI呼び出しを行い得、クラウドサービス656は、要求されたデータをサービスゲートウェイ636に送信し得る。しかし、クラウドサービス656は、サービスゲートウェイ636へのAPI呼び出しを開始しなくてもよい。
【0081】
いくつかの例では、セキュアホストテナンシ604は、サービステナンシ619に直接接続することができ、サービステナンシ619は、そうでなければ隔離されてもよい。セキュアホストサブネット608は、他の態様では隔離されたシステムを介して双方向通信を可能にし得るLPG610を通じてSSHサブネット614と通信することができる。セキュアホストサブネット608をSSHサブネット614に接続することは、セキュアホストサブネット608にサービステナンシ619内の他のエンティティへのアクセスを与えてもよい。
【0082】
制御プレーンVCN616は、サービステナンシ619のユーザが所望のリソースをセットアップまたは別様にプロビジョニングすることを可能にしてもよい。制御プレーンVCN616内でプロビジョニングされる所望のリソースは、データプレーンVCN618内で展開または別様に使用されてもよい。いくつかの例では、制御プレーンVCN616は、データプレーンVCN618から隔離され得、制御プレーンVCN616のデータプレーンミラーアプリ層640は、データプレーンミラーアプリ層640およびデータプレーンアプリ層646に含まれ得るVNIC642を介して、データプレーンVCN618のデータプレーンアプリ層646と通信し得る。
【0083】
いくつかの例では、システムのユーザまたは顧客は、メタデータ管理サービス652に要求を通信し得るパブリックインターネット654を介して、要求、たとえば、作成、読出、更新、または削除(CRUD)動作を行い得る。メタデータ管理サービス652は、インターネットゲートウェイ634を介して制御プレーンVCN616に要求を通信し得る。この要求は、制御プレーンDMZ層620に含まれるLBサブネット622によって受信され得る。LBサブネット622は、要求が有効であると判断してもよく、この判断に応答して、LBサブネット622は、制御プレーンアプリ層624に含まれるアプリサブネット626に要求を送信し得る。要求が検証され、パブリックインターネット654への呼び出しを必要とする場合、パブリックインターネット654への呼び出しは、パブリックインターネット654への呼び出しを行い得るNATゲートウェイ638に送信されてもよい。要求によって記憶されることが望まれ得るメモリは、DBサブネット630に記憶され得る。
【0084】
いくつかの例では、データプレーンミラーアプリ層640は、制御プレーンVCN616とデータプレーンVCN618との間の直接通信を容易にし得る。たとえば、構成の変更、更新、または他の適切な修正が、データプレーンVCN618に含まれるリソースに適用されることが望まれる場合がある。VNIC642を介して、制御プレーンVCN616は、データプレーンVCN618に含まれるリソースと直接通信し得、それによって、構成に対する変更、更新、または他の好適な修正を実行し得る。
【0085】
いくつかの実施形態では、制御プレーンVCN616およびデータプレーンVCN618は、サービステナンシ619に含まれ得る。この場合、システムのユーザまたは顧客は、制御プレーンVCN616またはデータプレーンVCN618のいずれかを所有または操作しなくてもよい。代わりに、IaaSプロバイダは、制御プレーンVCN616およびデータプレーンVCN618を所有または操作してもよく、それらの両方はサービステナンシ619に含まれてもよい。この実施形態は、ユーザまたは顧客が他のユーザまたは他の顧客のリソースと対話することを防止し得るネットワークの隔離を可能にし得る。また、この実施形態は、システムのユーザまたは顧客が、記憶のために、所望のレベルの脅威防御を有さない場合があるパブリックインターネット654に依存する必要なく、データベースをプライベートに記憶することを可能にしてもよい。
【0086】
他の実施形態では、制御プレーンVCN616に含まれるLBサブネット622は、サービスゲートウェイ636から信号を受信するように構成され得る。この実施形態では、制御プレーンVCN616およびデータプレーンVCN618は、パブリックインターネット654を呼び出すことなく、IaaSプロバイダの顧客によって呼び出されるように構成されてもよい。IaaSプロバイダの顧客は、顧客が使用するデータベースがIaaSプロバイダによって制御されてもよく、パブリックインターネット654から隔離されてもよいサービステナン619上に記憶されてもよいため、この実施形態を所望し得る。
【0087】
図7は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図700である。サービスオペレータ702(たとえば、
図6のサービスオペレータ602)は、仮想クラウドネットワーク(VCN)706(たとえば、
図6のVCN606)およびセキュアホストサブネット708(たとえば、
図6のセキュアホストサブネット608)を含み得るセキュアホストテナンシ704(たとえば、
図6のセキュアホストテナンシ604)に通信可能に結合され得る。VCN706は、SSH VCN712に含まれるLPG610を介してセキュアシェル(SSH)VCN712(たとえば、
図6のSSH VCN612)に通信可能に結合され得るローカルピアリングゲートウェイ(LPG)710(たとえば、
図6のLPG610)を含み得る。SSH VCN712は、SSHサブネット714(たとえば、
図6のSSHサブネット614)を含み得、SSH VCN712は、制御プレーンVCN716に含まれるLPG710を介して制御プレーンVCN716(たとえば、
図6の制御プレーンVCN616)に通信可能に結合され得る。制御プレーンVCN716は、サービステナンシ719(たとえば、
図6のサービステナンシ619)に含まれ得、データプレーンVCN718(たとえば、
図6のデータプレーンVCN618)は、システムのユーザまたは顧客によって所有または操作され得る顧客テナンシ721に含まれ得る。
【0088】
制御プレーンVCN716は、LBサブネット722(たとえば、
図6のLBサブネット622)を含み得る制御プレーンDMZ層720(たとえば、
図6の制御プレーンDMZ層620)と、アプリサブネット726(たとえば、
図6のアプリサブネット626)を含み得る制御プレーンアプリ層724(たとえば、
図6の制御プレーンアプリ層624)と、(たとえば、
図6のDBサブネット630に類似した)データベース(DB)サブネット730を含み得る制御プレーンデータ層728(たとえば、
図6の制御プレーンデータ層628)とを含み得る。制御プレーンDMZ層720に含まれるLBサブネット722は、制御プレーンアプリ層724に含まれるアプリサブネット726と、制御プレーンVCN716に含まれ得るインターネットゲートウェイ734(たとえば、
図6のインターネットゲートウェイ634)とに通信可能に結合され得、アプリサブネット726は、制御プレーンデータ層728に含まれるDBサブネット730と、サービスゲートウェイ736(たとえば、
図6のサービスゲートウェイ)と、ネットワークアドレス変換(NAT)ゲートウェイ738(たとえば、
図6のNATゲートウェイ638)とに通信可能に結合され得る。制御プレーンVCN716は、サービスゲートウェイ736およびNATゲートウェイ738を含み得る。
【0089】
制御プレーンVCN716は、アプリサブネット726を含み得るデータプレーンミラーアプリ層740(たとえば、
図6のデータプレーンミラーアプリ層640)を含み得る。データプレーンミラーアプリ層740に含まれるアプリサブネット726は、計算インスタンス744(たとえば、
図6の計算インスタンス644と同様)を実行し得る仮想ネットワークインターフェイスコントローラ(VNIC)742(たとえば、642のVNIC)を含み得る。計算インスタンス744は、データプレーンミラーアプリ層740に含まれるVNIC742とデータプレーンアプリ層746に含まれるVNIC742とを介して、データプレーンミラーアプリ層740のアプリサブネット726と、データプレーンアプリ層746(たとえば、
図6のデータプレーンアプリ層646)に含まれ得るアプリサブネット726との間の通信を容易にし得る。
【0090】
制御プレーンVCN716に含まれるインターネットゲートウェイ734は、パブリックインターネット754(たとえば、
図6のパブリックインターネット654)に通信可能に結合され得るメタデータ管理サービス752(たとえば、
図6のメタデータ管理サービス652)に通信可能に結合され得る。パブリックインターネット754は、制御プレーンVCN716に含まれるNATゲートウェイ738に通信可能に結合され得る。制御プレーンVCN716に含まれるサービスゲートウェイ736は、クラウドサービス756(たとえば、
図6のクラウドサービス656)に通信可能に結合され得る。
【0091】
いくつかの例では、データプレーンVCN718は、顧客テナンシ721に含まれ得る。この場合、IaaSプロバイダは、顧客ごとに制御プレーンVCN716を提供してもよく、IaaSプロバイダは、顧客ごとに、サービステナンシ719に含まれる固有の計算インスタンス744をセットアップしてもよい。各計算インスタンス744は、サービステナンシ719に含まれる制御プレーンVCN716と顧客テナンシ721に含まれるデータプレーンVCN718との間の通信を可能にしてもよい。計算インスタンス744は、サービステナンシ719に含まれる制御プレーンVCN716においてプロビジョニングされるリソースが、顧客テナンシ721に含まれるデータプレーンVCN718において展開されるかまたは別様に使用されることを可能にしてもよい。
【0092】
他の例では、IaaSプロバイダの顧客は、顧客テナンシ721に在住するデータベースを有してもよい。この例では、制御プレーンVCN716は、アプリサブネット726を含み得るデータプレーンミラーアプリ層740を含み得る。データプレーンミラーアプリ層740は、データプレーンVCN718内に存在し得るが、データプレーンミラーアプリ層740は、データプレーンVCN718内に在住しなくてもよい。すなわち、データプレーンミラーアプリ層740は、顧客テナンシ721へのアクセスを有してもよいが、データプレーンミラーアプリ層740は、データプレーンVCN718内に存在しなくてもよく、またはIaaSプロバイダの顧客によって所有もしくは操作されなくてもよい。データプレーンミラーアプリ層740は、データプレーンVCN718への呼び出しを行うように構成されてもよいが、制御プレーンVCN716に含まれる任意のエンティティへの呼び出しを行うように構成されなくてもよい。顧客は、制御プレーンVCN716内にプロビジョニングされるデータプレーンVCN718内のリソースを展開または別様に使用することを所望してもよく、データプレーンミラーアプリ層740は、顧客のリソースの所望の展開または他の使用を容易にし得る。
【0093】
いくつかの実施形態では、IaaSプロバイダの顧客は、フィルタをデータプレーンVCN718に適用し得る。この実施形態では、顧客は、データプレーンVCN718が何にアクセスできるかを判断し得、顧客は、データプレーンVCN718からパブリックインターネット754へのアクセスを制限してもよい。IaaSプロバイダは、データプレーンVCN718の任意の外部ネットワークもしくはデータベースへのアクセスをフィルタ処理するかまたは別様に制御することができなくてもよい。顧客テナンシ721に含まれるデータプレーンVCN718上に顧客によってフィルタおよび制御を適用することは、データプレーンVCN718を他の顧客およびパブリックインターネット754から隔離するのを助けることができる。
【0094】
いくつかの実施形態では、クラウドサービス756は、パブリックインターネット754上、制御プレーンVCN716上、またはデータプレーンVCN718上に存在しない場合があるサービスにアクセスするために、サービスゲートウェイ736によって呼び出され得る。クラウドサービス756と制御プレーンVCN716またはデータプレーンVCN718との間の接続は、ライブまたは連続的でなくてもよい。クラウドサービス756は、IaaSプロバイダによって所有または操作される異なるネットワーク上に存在してもよい。クラウドサービス756は、サービスゲートウェイ736から呼び出しを受信するように構成されてもよく、パブリックインターネット754から呼び出しを受信しないように構成されてもよい。いくつかのクラウドサービス756は、他のクラウドサービス756から隔離されてもよく、制御プレーンVCN716は、制御プレーンVCN716と同じ領域にない場合があるクラウドサービス756から隔離されてもよい。たとえば、制御プレーンVCN716は「領域1」に位置してもよく、クラウドサービス「展開6」は領域1および「領域2」に位置してもよい。展開6への呼び出しが、領域1に位置する制御プレーンVCN716に含まれるサービスゲートウェイ736によって行われる場合、その呼び出しは、領域1内の展開6に伝送されてもよい。この例では、制御プレーンVCN716、または領域1の展開6は、領域2の展開6に通信可能に結合されなくてもよく、またはそうでなければ通信していなくてもよい。
【0095】
図8は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図800である。サービスオペレータ802(たとえば、
図6のサービスオペレータ602)は、仮想クラウドネットワーク(VCN)806(たとえば、
図6のVCN606)およびセキュアホストサブネット808(たとえば、
図6のセキュアホストサブネット608)を含み得るセキュアホストテナンシ804(たとえば、
図6のセキュアホストテナンシ604)に通信可能に結合され得る。VCN806は、LPG810(たとえば、
図6のLPG610)を含み得、それは、SSH VCN812(たとえば、
図6のSSH VCN612)に含まれるLPG810を介してSSH VCN812に通信可能に結合され得る。SSH VCN812は、SSHサブネット814(たとえば、
図6のSSHサブネット614)を含み得、SSH VCN812は、制御プレーンVCN816(たとえば、
図6の制御プレーンVCN616)に含まれるLPG810を介して制御プレーンVCN816に通信可能に結合され得、データプレーンVCN818(たとえば、
図6のデータプレーン618)に含まれるLPG810を介してデータプレーンVCN818に通信可能に結合され得る。制御プレーンVCN816およびデータプレーンVCN818は、サービステナンシ819(たとえば、
図6のサービステナンシ619)に含まれ得る。
【0096】
制御プレーンVCN816は、ロードバランサ(LB)サブネット822(たとえば、
図6のLBサブネット622)を含み得る制御プレーンDMZ層820(たとえば、
図6の制御プレーンDMZ層620)と、(たとえば、
図6のアプリサブネット626に類似している)アプリサブネット826を含み得る制御プレーンアプリ層824(たとえば、
図6の制御プレーンアプリ層624)と、DBサブネット830を含み得る制御プレーンデータ層828(たとえば、
図6の制御プレーンデータ層628)とを含み得る。制御プレーンDMZ層820に含まれるLBサブネット822は、制御プレーンアプリ層824に含まれるアプリサブネット826と、制御プレーンVCN816に含まれ得るインターネットゲートウェイ834(たとえば、
図6のインターネットゲートウェイ634)とに通信可能に結合され得、アプリサブネット826は、制御プレーンデータ層828に含まれるDBサブネット830に、ならびにサービスゲートウェイ836(たとえば、
図6のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ838(たとえば、
図6のNATゲートウェイ638)に通信可能に結合され得る。制御プレーンVCN816は、サービスゲートウェイ836およびNATゲートウェイ838を含み得る。
【0097】
データプレーンVCN818は、データプレーンアプリ層846(たとえば、
図6のデータプレーンアプリ層646)、データプレーンDMZ層848(たとえば、
図6のデータプレーンDMZ層648)、およびデータプレーンデータ層850(たとえば、
図6のデータプレーンデータ層650)を含み得る。データプレーンDMZ層848は、データプレーンアプリ層846の信頼できるアプリサブネット860および信頼できないアプリサブネット862と、データプレーンVCN818に含まれるインターネットゲートウェイ834とに通信可能に結合され得るLBサブネット822を含み得る。信頼できるアプリサブネット860は、データプレーンVCN818に含まれるサービスゲートウェイ836と、データプレーンVCN818に含まれるNATゲートウェイ838と、データプレーンデータ層850に含まれるDBサブネット830とに通信可能に結合され得る。信頼できないアプリサブネット862は、データプレーンVCN818に含まれるサービスゲートウェイ836と、データプレーンデータ層850に含まれるDBサブネット830とに通信可能に結合され得る。データプレーンデータ層850は、データプレーンVCN818に含まれるサービスゲートウェイ836に通信可能に結合され得るDBサブネット830を含み得る。
【0098】
信頼できないアプリサブネット862は、テナント仮想マシン(VM)866(1)~(N)に通信可能に結合され得る1つまたは複数のプライマリVNIC864(1)~(N)を含み得る。各テナントVM866(1)~(N)は、それぞれの顧客テナンシ870(1)~(N)に含まれ得るそれぞれのコンテナエグレスVCN868(1)~(N)に含まれ得るそれぞれのアプリサブネット867(1)~(N)に通信可能に結合され得る。それぞれのセカンダリVNIC872(1)~(N)は、データプレーンVCN818に含まれる信頼できないアプリサブネット862とコンテナエグレスVCN868(1)~(N)に含まれるアプリサブネットとの間の通信を容易にし得る。各コンテナエグレスVCN868(1)~(N)は、パブリックインターネット854(たとえば、
図6のパブリックインターネット654)に通信可能に結合され得るNATゲートウェイ838を含み得る。
【0099】
制御プレーンVCN816に含まれ、データプレーンVCN818に含まれるインターネットゲートウェイ834は、パブリックインターネット854に通信可能に結合され得るメタデータ管理サービス852(たとえば、
図6のメタデータ管理システム652)に通信可能に結合され得る。パブリックインターネット854は、制御プレーンVCN816に含まれ、データプレーンVCN818に含まれるNATゲートウェイ838に通信可能に結合され得る。制御プレーンVCN816に含まれ、データプレーンVCN818に含まれるサービスゲートウェイ836は、クラウドサービス856に通信可能に結合され得る。
【0100】
いくつかの実施形態では、データプレーンVCN818は、顧客テナンシ870と統合され得る。この統合は、コードを実行するときにサポートを望む場合がある場合などのいくつかの場合において、IaaSプロバイダの顧客にとって有用または望ましくあり得る。顧客は、破壊的である場合があるか、他の顧客リソースと通信する場合があるか、またはそうでなければ望ましくない影響を引き起こす場合がある、実行すべきコードを与える場合がある。これに応答して、IaaSプロバイダは、顧客によってIaaSプロバイダに与えられたコードを実行するかどうかを判断してもよい。
【0101】
いくつかの例では、IaaSプロバイダの顧客は、IaaSプロバイダへの一時的なネットワークアクセスを許可し、ある機能がデータプレーン層アプリ846にアタッチされるよう要求する場合がある。機能を実行するためのコードは、VM866(1)~(N)において実行されてもよく、データプレーンVCN818上の他のどこかで動作するように構成されなくてもよい。各VM866(1)~(N)は、1つの顧客テナンシ870に接続されてもよい。VM866(1)~(N)に含まれるそれぞれのコンテナ871(1)~(N)は、コードを実行するように構成されてもよい。この場合、二重隔離があり得(たとえば、コンテナ871(1)~(N)は、コードを実行し、コンテナ871(1)~(N)は、信頼できないアプリサブネット862に含まれる少なくともVM866(1)~(N)に含まれてもよい)、これは、正しくないかまたはそうでなければ望ましくないコードが、IaaSプロバイダのネットワークを損傷すること、または異なる顧客のネットワークを損傷することを防ぐのを助けることができる。コンテナ871(1)~(N)は、顧客テナンシ870に通信可能に結合されてもよく、顧客テナンシ870との間でデータを送信または受信するように構成されてもよい。コンテナ871(1)~(N)は、データプレーンVCN818内の任意の他のエンティティとの間でデータを送信または受信するように構成されなくてもよい。コードの実行が完了すると、IaaSプロバイダは、コンテナ871(1)~(N)をキルするかまたは別様に廃棄してもよい。
【0102】
いくつかの実施形態では、信頼できるアプリサブネット860は、IaaSプロバイダによって所有または操作され得るコードを実行してもよい。この実施形態では、信頼できるアプリサブネット860は、DBサブネット830に通信可能に結合されてもよく、DBサブネット830内でCRUD動作を実行するように構成されてもよい。信頼できないアプリサブネット862は、DBサブネット830に通信可能に結合されてもよいが、この実施形態では、信頼できないアプリサブネットは、DBサブネット830内で読出動作を実行するように構成されてもよい。各顧客のVM866(1)~(N)に含まれ得、その顧客からのコードを実行してもよいコンテナ871(1)~(N)は、DBサブネット830と通信可能に結合されなくてもよい。
【0103】
他の実施形態では、制御プレーンVCN816およびデータプレーンVCN818は、直接通信可能に結合されなくてもよい。この実施形態では、制御プレーンVCN816とデータプレーンVCN818との間に直接通信がなくてもよい。しかしながら、通信は、少なくとも1つの方法を通して間接的に起こり得る。制御プレーンVCN816とデータプレーンVCN818との間の通信を容易にし得るLPG810が、IaaSプロバイダによって確立されてもよい。別の例では、制御プレーンVCN816またはデータプレーンVCN818は、サービスゲートウェイ836を介してクラウドサービス856に呼び出しを行い得る。たとえば、制御プレーンVCN816からのクラウドサービス856への呼び出しは、データプレーンVCN818と通信し得るサービスの要求を含み得る。
【0104】
図9は、少なくとも1つの実施形態に係る、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図900である。サービスオペレータ902(たとえば、
図6のサービスオペレータ602)は、仮想クラウドネットワーク(VCN)906(たとえば、
図6のVCN606)およびセキュアホストサブネット908(たとえば、
図6のセキュアホストサブネット608)を含み得るセキュアホストテナンシ904(たとえば、
図6のセキュアホストテナンシ604)に通信可能に結合され得る。VCN906は、LPG910(たとえば、
図6のLPG610)を含み得、それは、SSH VCN912(たとえば、
図6のSSH VCN612)に含まれるLPG910を介してSSH VCN912に通信可能に結合され得る。SSH VCN912は、SSHサブネット914(たとえば、
図6のSSHサブネット614)を含み得、SSH VCN912は、制御プレーンVCN916(たとえば、
図6の制御プレーンVCN616)に含まれるLPG910を介して制御プレーンVCN916に通信可能に結合され得、データプレーンVCN918(たとえば、
図6のデータプレーン618)に含まれるLPG910を介してデータプレーンVCN918に通信可能に結合され得る。制御プレーンVCN916およびデータプレーンVCN918は、サービステナンシ919(たとえば、
図6のサービステナンシ619)に含まれ得る。
【0105】
制御プレーンVCN916は、LBサブネット922(たとえば、
図6のLBサブネット622)を含み得る制御プレーンDMZ層920(たとえば、
図6の制御プレーンDMZ層620)と、アプリサブネット926(たとえば、
図6のアプリサブネット626)を含み得る制御プレーンアプリ層924(たとえば、
図6の制御プレーンアプリ層624)と、DBサブネット930(たとえば、
図8のDBサブネット830)を含み得る制御プレーンデータ層928(たとえば、
図6の制御プレーンデータ層628)とを含み得る。制御プレーンDMZ層920に含まれるLBサブネット922は、制御プレーンアプリ層924に含まれるアプリサブネット926と、制御プレーンVCN916に含まれ得るインターネットゲートウェイ934(たとえば、
図6のインターネットゲートウェイ634)とに通信可能に結合され得、アプリサブネット926は、制御プレーンデータ層928に含まれるDBサブネット930と、サービスゲートウェイ936(たとえば、
図6のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ938(たとえば、
図6のNATゲートウェイ638)とに通信可能に結合され得る。制御プレーンVCN916は、サービスゲートウェイ936およびNATゲートウェイ938を含み得る。
【0106】
データプレーンVCN918は、データプレーンアプリ層946(たとえば、
図6のデータプレーンアプリ層646)、データプレーンDMZ層948(たとえば、
図6のデータプレーンDMZ層648)、およびデータプレーンデータ層950(たとえば、
図6のデータプレーンデータ層650)を含み得る。データプレーンDMZ層948は、データプレーンアプリ層946の信頼できるアプリサブネット960(たとえば、
図8の信頼できるアプリサブネット860)および信頼できないアプリサブネット962(たとえば、
図8の信頼できないアプリサブネット862)と、データプレーンVCN918に含まれるインターネットゲートウェイ934とに通信可能に結合され得るLBサブネット922を含み得る。信頼できるアプリサブネット960は、データプレーンVCN918に含まれるサービスゲートウェイ936と、データプレーンVCN918に含まれるNATゲートウェイ938と、データプレーンデータ層950に含まれるDBサブネット930とに通信可能に結合され得る。信頼できないアプリサブネット962は、データプレーンVCN918に含まれるサービスゲートウェイ936と、データプレーンデータ層950に含まれるDBサブネット930とに通信可能に結合され得る。データプレーンデータ層950は、データプレーンVCN918に含まれるサービスゲートウェイ936に通信可能に結合され得るDBサブネット930を含み得る。
【0107】
信頼できないアプリサブネット962は、信頼できないアプリサブネット962内に常駐するテナント仮想マシン(VM)966(1)~(N)に通信可能に結合され得るプライマリVNIC964(1)~(N)を含み得る。各テナントVM966(1)~(N)は、それぞれのコンテナ967(1)~(N)においてコードを実行し得、コンテナエグレスVCN968に含まれ得るデータプレーンアプリ層946に含まれ得るアプリサブネット926に通信可能に結合され得る。それぞれのセカンダリVNIC972(1)~(N)は、データプレーンVCN918に含まれる信頼できないアプリサブネット962とコンテナエグレスVCN968に含まれるアプリサブネットとの間の通信を容易にし得る。コンテナエグレスVCNは、パブリックインターネット954(たとえば、
図6のパブリックインターネット654)に通信可能に結合され得るNATゲートウェイ938を含み得る。
【0108】
制御プレーンVCN916に含まれ、データプレーンVCN918に含まれるインターネットゲートウェイ934は、パブリックインターネット954に通信可能に結合され得るメタデータ管理サービス952(たとえば、
図6のメタデータ管理システム652)に通信可能に結合され得る。パブリックインターネット954は、制御プレーンVCN916に含まれ、データプレーンVCN918に含まれるNATゲートウェイ938に通信可能に結合され得る。制御プレーンVCN916に含まれ、データプレーンVCN918に含まれるサービスゲートウェイ936は、クラウドサービス956に通信可能に結合され得る。
【0109】
いくつかの例では、
図9のブロック
図900のアーキテクチャによって示されるパターンは、
図8のブロック
図800のアーキテクチャによって示されるパターンの例外と見なされてもよく、IaaSプロバイダが顧客と直接通信することができない場合(たとえば、切断された領域)、それは、IaaSプロバイダの顧客にとって望ましい場合がある。各顧客についてVM966(1)~(N)に含まれるそれぞれのコンテナ967(1)~(N)は、顧客によってリアルタイムでアクセスされ得る。コンテナ967(1)~(N)は、コンテナエグレスVCN968に含まれ得るデータプレーンアプリ層946のアプリサブネット926に含まれるそれぞれのセカンダリVNIC972(1)~(N)への呼び出しを行うように構成されてもよい。セカンダリVNIC972(1)~(N)はNATゲートウェイ938に呼び出しを送信し得、NATゲートウェイ938はパブリックインターネット954に呼び出しを送信してもよい。この例では、顧客によってリアルタイムでアクセスされ得るコンテナ967(1)~(N)は、制御プレーンVCN916から隔離され得、データプレーンVCN918に含まれる他のエンティティから隔離され得る。コンテナ967(1)~(N)はまた、他の顧客からのリソースからも隔離されてもよい。
【0110】
他の例では、顧客は、コンテナ967(1)~(N)を使用してクラウドサービス956を呼び出し得る。この例では、顧客は、コンテナ967(1)~(N)内において、クラウドサービス956にサービスを要求するコードを実行してもよい。コンテナ967(1)~(N)はこの要求をセカンダリVNIC972(1)~(N)に送信し得、セカンダリVNIC972(1)~(N)はその要求をNATゲートウェイに送信し、NATゲートウェイはその要求をパブリックインターネット954に送信し得る。パブリックインターネット954は、インターネットゲートウェイ934を介して、制御プレーンVCN916に含まれるLBサブネット922に要求を送信し得る。要求が有効であると判断することに応答して、LBサブネットはその要求をアプリサブネット926に送信し得、アプリサブネット926はその要求をサービスゲートウェイ936を介してクラウドサービス956に送信し得る。
【0111】
図示されるIaaSアーキテクチャ600,700,800,900は、図示される以外の構成要素を有してもよいことを諒解されたい。さらに、図示される実施形態は、本開示の実施形態を組み込んでもよいクラウドインフラストラクチャシステムのいくつかの例にすぎない。いくつかの他の実施形態では、IaaSシステムは、図示されるよりも多いまたは少ない構成要素を有してもよく、2つ以上の構成要素を組み合わせてもよく、または構成要素の異なる構成または配置を有してもよい。
【0112】
特定の実施形態では、本明細書に説明されるIaaSシステムは、セルフサービスであり、サブスクリプションベースであり、弾性的にスケーラブルであり、信頼性があり、高い可用性があり、セキュアな態様で顧客に配信される、アプリケーション、ミドルウェア、およびデータベースサービス提供の一式を含んでもよい。そのようなIaaSシステムの例は、本譲受人によって提供されるOracle Cloud Infrastructure(OCI)である。
【0113】
図10は、さまざまな実施形態が実現され得る例示的なコンピュータシステム1000を示す図である。システム1000は、上記で説明されるコンピュータシステムのうちのいずれかを実現するために使用されてもよい。図に示されるように、コンピュータシステム1000は、バスサブシステム1002を介していくつかの周辺サブシステムと通信する処理ユニット1004を含む。これらの周辺サブシステムは、処理加速ユニット1006、I/Oサブシステム1008、ストレージサブシステム1018、および通信サブシステム1024を含んでもよい。ストレージサブシステム1018は、有形のコンピュータ可読記憶媒体1022およびシステムメモリ1010を含む。
【0114】
バスサブシステム1002は、コンピュータシステム1000のさまざまなコンポーネントおよびサブシステムに、意図されるように互いに通信させるための機構を提供する。バスサブシステム1002は、単一のバスとして概略的に示されるが、バスサブシステムの代替実施形態は、複数のバスを利用してもよい。バスサブシステム1002は、さまざまなバスアーキテクチャのうちのいずれかを用いるメモリバスまたはメモリコントローラ、周辺バスおよびローカルバスを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。たとえば、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA:Industry Standard Architecture)バス、マイクロチャネルアーキテクチャ(MCA:Micro Channel Architecture)バス、拡張ISA(EISA:Enhanced ISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA:Video Electronics Standards Association)ローカルバス、およびIEEE P1386.1規格に従って製造される中二階バスとして実現され得る周辺コンポーネントインターコネクト(PCI:Peripheral Component Interconnect)バスを含んでもよい。
【0115】
処理ユニット1004は、1つまたは複数の集積回路(たとえば、従来のマイクロプロセッサまたはマイクロコントローラ)として実現することができ、コンピュータシステム1000の動作を制御する。1つまたは複数のプロセッサが処理ユニット1004に含まれてもよい。これらのプロセッサは、シングルコアプロセッサまたはマルチコアプロセッサを含んでもよい。特定の実施形態では、処理ユニット1004は、シングルコアプロセッサもしくはマルチコアプロセッサが各処理ユニットに含まれる1つまたは複数の独立した処理ユニット1032および/または1034として実現されてもよい。他の実施形態では、処理ユニット1004はまた、2つのデュアルコアプロセッサを単一のチップに統合することによって形成されるクアッドコア処理ユニットとして実現されてもよい。
【0116】
さまざまな実施形態では、処理ユニット1004は、プログラムコードに応答してさまざまなプログラムを実行することができ、複数の同時に実行されるプログラムまたはプロセスを維持することができる。任意の所与の時間に、実行されるべきプログラムコードの一部または全部が、プロセッサ1004、および/またはストレージサブシステム1018に常駐することができる。好適なプログラミングを通して、プロセッサ1004は、上記で説明されるさまざまな機能を提供することができる。コンピュータシステム1000は、デジタル信号プロセッサ(DSP:Digital Signal Processor)、特殊目的プロセッサなどを含み得る処理加速ユニット1006をさらに含んでもよい。
【0117】
I/Oサブシステム1008は、ユーザインターフェイス入力デバイスおよびユーザインターフェイス出力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを伴う音声入力デバイス、マイクロフォン、および他のタイプの入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、たとえば、ユーザが、ジェスチャおよび発話コマンドを使用して、ナチュラルユーザインターフェイスを通して、Microsoft Xbox(登録商標)360ゲームコントローラなどの入力デバイスを制御し、それと相互作用することを可能にする、Microsoft Kinect(登録商標)モーションセンサなどのモーション感知および/またはジェスチャ認識デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、ユーザから目の動き(たとえば、写真を撮っている間および/またはメニュー選択を行なっている間の「まばたき」)を検出し、アイジェスチャを入力デバイス(たとえばGoogle Glass(登録商標))への入力として変換するGoogle Glass(登録商標)瞬き検出器などのアイジェスチャ認識デバイスも含んでもよい。加えて、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを介して音声認識システム(たとえばSiri(登録商標)ナビゲータ)と対話することを可能にする音声認識感知デバイスを含んでもよい。
【0118】
ユーザインターフェイス入力デバイスは、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線追跡デバイスなどの聴覚/視覚デバイスも含んでもよいが、それらに限定されるものではない。加えて、ユーザインターフェイス入力デバイスは、たとえば、コンピュータ断層撮影、磁気共鳴撮像、陽電子放出断層撮影、医療用超音波検査装置などの医療用撮像入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスはまた、たとえば、MIDIキーボード、デジタル楽器などの音声入力デバイスを含んでもよい。
【0119】
ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または音声出力デバイスなどの非視覚的ディスプレイを含んでもよい。ディスプレイサブシステムは、陰極線管(CRT:Cathode Ray Tube)、液晶ディスプレイ(LCD:Liquid Crystal Display)またはプラズマディスプレイを使用するものなどのフラットパネルデバイス、投影デバイス、タッチスクリーンなどであってもよい。一般に、「出力デバイス」という語の使用は、コンピュータシステム1000からユーザまたは他のコンピュータに情報を出力するための全ての考えられ得るタイプのデバイスおよび機構を含むよう意図される。たとえば、ユーザインターフェイス出力デバイスは、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムなどの、テキスト、グラフィックスならびに音声/映像情報を視覚的に伝えるさまざまな表示デバイスを含んでもよいが、それらに限定されるものではない。
【0120】
コンピュータシステム1000は、現在のところシステムメモリ1010内に位置しているものとして示されているソフトウェア要素を含むストレージサブシステム1018を備えてもよい。システムメモリ1010は、処理ユニット1004上でロード可能および実行可能なプログラム命令、ならびにこれらのプログラムの実行中に生成されるデータを記憶してもよい。
【0121】
コンピュータシステム1000の構成およびタイプに応じて、システムメモリ1010は、揮発性(ランダムアクセスメモリ(RAM:Random Access Memory)など)および/または不揮発性(読み出し専用メモリ(ROM:Read-Only Memory)、フラッシュメモリなど)であってもよい。RAMは、典型的には、処理ユニット1004に即座にアクセス可能である、ならびに/もしくは処理ユニット1004によって現在操作および実行されている、データならびに/またはプログラムモジュールを含む。いくつかの実現例では、システムメモリ1010は、スタティックランダムアクセスメモリ(SRAM:Static Random Access Memory)またはダイナミックランダムアクセスメモリ(DRAM:Dynamic Random Access Memory)など、複数の異なるタイプのメモリを含んでもよい。いくつかの実現例では、起動中などにコンピュータシステム1000内の要素間で情報を転送するのに役立つ基本的なルーチンを含むベーシックインプット/アウトプットシステム(BIOS:Basic Input/Output System)が、典型的には、ROMに記憶されてもよい。限定ではなく例として、システムメモリ1010はまた、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS:Relational Database Management System)などを含んでもよいアプリケーションプログラム1012、プログラムデータ1014、およびオペレーティングシステム1016も示す。例として、オペレーティングシステム1016は、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/もしくはLinux(登録商標)オペレーティングシステム、さまざまな市販のUNIX(登録商標)もしくはUNIX様オペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなどを含むが、それらに限定されない)、ならびに/またはiOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)10OS、およびPalm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含んでもよい。
【0122】
ストレージサブシステム1018はまた、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を記憶するための有形のコンピュータ可読記憶媒体も提供してもよい。プロセッサによって実行されると上述の機能を提供するソフトウェア(プログラム、コードモジュール、命令)が、ストレージサブシステム1018に記憶されてもよい。これらのソフトウェアモジュールまたは命令は、処理ユニット1004によって実行されてもよい。ストレージサブシステム1018はまた、本開示に従って使用されるデータを記憶するためのリポジトリを提供してもよい。
【0123】
ストレージサブシステム1000はまた、コンピュータ可読記憶媒体1022にさらに接続され得るコンピュータ可読記憶媒体リーダ1020を含み得る。システムメモリ1010とともに、およびオプションとして、システムメモリ1010と組み合わせて、コンピュータ可読記憶媒体1022は、コンピュータ可読情報を、一時的および/またはより恒久的に収容、記憶、伝送、および検索するために、遠隔の、ローカルな、固定された、および/またはリムーバブルなストレージデバイスに記憶媒体を加えたものを包括的に表してもよい。
【0124】
コードまたはコードの一部を含むコンピュータ可読記憶媒体1022はまた、限定はしないが、情報の記憶および/または伝送のための任意の方法または技術で実現される揮発性および不揮発性の、リムーバブルおよび非リムーバブル媒体などの、記憶媒体ならびに通信媒体を含む、当該技術分野において公知であるかまたは用いられる任意の適切な媒体を含むことができる。これは、RAM、ROM、電子的に消去可能プログラマブルROM(EEPROM:Electronically Erasable Programmable ROM)、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD:Digital Versatile Disk)、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または他の有形のコンピュータ可読媒体などの有形のコンピュータ可読記憶媒体を含んでもよい。これはまた、データ信号、データ伝送、または所望の情報を伝送するために使用することができ、コンピューティングシステム1000によってアクセスすることができる、任意の他の媒体などの非有形のコンピュータ可読媒体を含むことができる。
【0125】
例として、コンピュータ可読記憶媒体1022は、非リムーバブル不揮発性磁気媒体に対して読み書きするハードディスクドライブ、リムーバブル不揮発性磁気ディスクに対して読み書きする磁気ディスクドライブ、CD ROM、DVDおよびBlu-Ray(登録商標)ディスクなどの、リムーバブル不揮発性光ディスクに対して読み書きする光ディスクドライブ、または他の光学媒体を含んでもよい。コンピュータ可読記憶媒体1022は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB:Universal Serial Bus)フラッシュドライブ、セキュアデジタル(SD:Secure Digital)カード、DVDディスク、デジタルビデオテープなどを含んでもよいが、それらに限定されない。コンピュータ可読記憶媒1022はまた、フラッシュメモリベースのSSD、エンタープライズフラッシュドライブ、ソリッドステートROMなどの不揮発性メモリに基づくソリッドステートドライブ(SSD:Solid-State Drive)、ソリッドステートRAM、ダイナミックRAM、スタティックRAMなどの揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(MRAM:Magnetoresistive RAM)SSD、およびDRAMとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDも含んでもよい。ディスクドライブおよびそれらに関連付けられるコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶をコンピュータシステム1000に提供してもよい。
【0126】
通信サブシステム1024は、他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム1024は、他のシステムとコンピュータシステム1000との間のデータの送受のためのインターフェイスとして働く。たとえば、通信サブシステム1024は、コンピュータシステム1000がインターネットを介して1つまたは複数のデバイスに接続することを可能にしてもよい。いくつかの実施形態では、通信サブシステム1024は、(たとえば、セルラー電話技術、3G、4GもしくはEDGE(グローバル進化のための高速データレート)などの先進データネットワーク技術、WiFi(IEEE802.11ファミリー規格、もしくは他のモバイル通信技術、またはそれらの任意の組み合わせを用いて)無線音声および/もしくはデータネットワークにアクセスするための無線周波数(RF:Radio Frequency)送受信機コンポーネント、グローバルポジショニングシステム(GPS:Global Positioning System)受信機コンポーネント、ならびに/または他のコンポーネントを含んでもよい。いくつかの実施形態では、通信サブシステム1024は、無線インターフェイスに加えて、またはその代わりに、有線ネットワーク接続性(たとえば、イーサネット(登録商標))を提供することができる。
【0127】
いくつかの実施形態では、通信サブシステム1024はまた、コンピュータシステム1000を使用してもよい1人または複数人のユーザの代わりに、構造化されたおよび/または構造化されていないデータフィード1026、イベントストリーム1028、イベント更新1030などの形式で入力通信を受信してもよい。
【0128】
例として、通信サブシステム1024は、Twitter(登録商標)フィード、Facebook(登録商標)更新、Rich Site Summary(RSS)フィードなどのウェブフィード、および/もしくは1つまたは複数の第三者情報源からのリアルタイム更新などの、ソーシャルネットワークならびに/または他の通信サービスのユーザからリアルタイムでデータフィード1026を受信するように構成されてもよい。
【0129】
加えて、通信サブシステム1024はまた、連続データストリームの形式でデータを受信するように構成されてもよく、これは、明確な終端を伴わない、本質的に連続的または無限であってもよい、リアルタイムイベントのイベントストリーム1028および/またはイベント更新1030を含んでもよい。連続データを生成するアプリケーションの例としては、たとえば、センサデータアプリケーション、金融株式相場表示板、ネットワークパフォーマンス測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通監視などが含まれてもよい。
【0130】
通信サブシステム1024はまた、構造化されたおよび/または構造化されていないデータフィード1026、イベントストリーム1028、イベント更新1030などを、コンピュータシステム1000に結合される1つまたは複数のストリーミングデータソースコンピュータと通信してもよい1つまたは複数のデータベースに出力するように構成されてもよい。
【0131】
コンピュータシステム1000は、ハンドヘルドポータブルデバイス(たとえば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、または任意の他のデータ処理システムを含む、さまざまなタイプのうちの1つとすることができる。
【0132】
常に変化するコンピュータおよびネットワークの性質のため、図に示されるコンピュータシステム1000の説明は、具体的な例として意図されているに過ぎない。図に描写されるシステムより多いまたは少ないコンポーネントを有する、多くの他の構成が可能である。たとえば、カスタマイズされたハードウェアも使用されてもよく、および/または、特定の要素が、ハードウェア、ファームウェア、ソフトウェア(アプレットを含む)、または組み合わせで実現されてもよい。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスへの接続が採用されてもよい。本明細書に提供される開示および教示に基づいて、当業者は、さまざまな実施形態を実現するために、他の態様および/または方法を理解するであろう。
【0133】
特定の実施形態について説明してきたが、さまざまな修正、変更、代替構成、および均等物も本開示の範囲内に包含される。実施形態は、ある特定のデータ処理環境内での動作に限定されず、複数のデータ処理環境内で自由に動作することができる。加えて、実施形態は、特定の一連のトランザクションおよびステップを使用して説明されているが、本開示の範囲は、説明された一連のトランザクションおよびステップに限定されるものではないことが、当業者に明白となるはずである。上述した実施形態のさまざまな特徴および局面は、個々にまたは一緒に用いられてもよい。
【0134】
さらに、実施形態は、ハードウェアおよびソフトウェアの特定の組み合わせを使用して説明されたが、ハードウェアおよびソフトウェアの他の組み合わせも本開示の範囲内であることを認識されたい。実施形態は、ハードウェアのみで、またはソフトウェアのみで、またはそれらの組合せを使用して実現されてもよい。本明細書に記載されたさまざまなプロセスは、同じプロセッサまたは任意の組み合わせの異なるプロセッサ上で実現され得る。したがって、構成要素またはモジュールが特定の動作を実行するように構成されるとして記載されている場合、そのような構成は、たとえば、動作を実行するように電子回路を設計すること、動作を実行するようにプログラム可能な電子回路(マイクロプロセッサなど)をプログラムすること、またはそれらの任意の組み合わせによって達成され得る。プロセスは、プロセス間通信のための従来の技術を含むがそれに限定されないさまざまな技術を用いて通信することができ、異なる対のプロセスが異なる技術を用いてもよく、同じ対のプロセスが異なる時間に異なる技術を用いてもよい。
【0135】
したがって、明細書および図面は、限定的な意味ではなく例示的な意味で見なされるべきである。しかしながら、特許請求の範囲に記載された、より広範な精神および範囲から逸脱することなく、追加、削減、削除、ならびに他の修正および変更がなされ得ることは明らかであろう。したがって、特定の開示の実施形態を説明してきたが、これらは限定を意図するものではない。さまざまな修正および均等物が、特許請求の範囲内にある。
【0136】
開示された実施形態を説明する文脈における(特に、特許請求の範囲の文脈における)文言「ある(a)」および「ある(an)」および「その(the)」ならびに同様の指示対象の使用は、本明細書において別段の指示がない限り、または文脈によって明らかに矛盾しない限り、単数形および複数形の両方を包含すると解釈されるべきである。文言「備える(comprising)」、「有する(having)」、「含む(including)」、および「含有する(containing)」は、特に断らない限り、非限定的な文言(すなわち、「~を含むがそれに限定されない」を意味する)として解釈されるべきである。「接続される」という文言は、何かが介在する場合であっても、部分的または全体的に内部に含まれる、取り付けられる、または共に合わせられるものとして解釈されるべきである。本明細書における値の範囲の記載は、本明細書において別段の指示がない限り、単に、その範囲内に入る各別々の値を個々に言及する簡潔な方法としての役割を果たすことを意図しており、各別々の値は、あたかもそれが本明細書において個々に記載されているかのように本明細書に組み込まれる。本明細書に記載される全ての方法は、本明細書において別段の指示がない限り、または文脈によって明らかに矛盾しない限り、任意の好適な順序で実行され得る。本明細書で提供される任意のおよび全ての例、または例示的な言葉(たとえば、「など」)の使用は、単に、実施形態をよりよく説明することを意図するものであり、別段の請求がない限り、本開示の範囲を限定するものではない。本明細書におけるいかなる文言も、任意の請求されていない要素を本開示の実施に不可欠であることを示すものとして解釈されるべきではない。
【0137】
句「X、Y、またはZのうちの少なくとも1つ」などの離接的文言は、特に別段の記載がない限り、項目、用語などがX、Y、もしくはZ、またはそれらの任意の組合せ(たとえば、X、Y、および/またはZ)のいずれかであってもよいことを提示するために一般に使用される文脈内で理解されることが意図される。したがって、そのような離接的文言は、概して、ある実施形態が、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、またはZのうちの少なくとも1つが各々存在することを必要とすることを包含するよう意図されるものではなく、および包含するべきではない。
【0138】
本開示を実施するために公知の最良の形態を含む、本開示の好ましい実施形態が本明細書に記載されている。これらの好ましい実施形態の変形例は、前述の説明を読めば当業者には明らかになるであろう。当業者は、適宜、そのような変形例を採用することができるはずであり、本開示は、本明細書に具体的に説明されるものとは別様に実施されてもよい。したがって、本開示は、適用可能な法によって許可されるように、特許請求の範囲に記載される主題の全ての修正物および均等物を含む。さらに、その全ての可能な変形物における上記の要素の任意の組み合わせは、本明細書において別段の指示がない限り、本開示によって包含される。
【0139】
本明細書に引用される刊行物、特許出願、および特許を含む全ての引用文献は、あたかも各引用文献が個々にかつ具体的に引用により援用されるよう示され、その全体がここに記載されるのと同程度に、ここに引用により援用される。
【0140】
上記の明細書では、本開示の局面についてその具体的な実施形態を参照して説明しているが、本開示はそれに限定されるものではないということを当業者は認識するであろう。上記の開示のさまざまな特徴および局面は、個々にまたは一緒に用いられてもよい。さらに、実施形態は、本明細書の、より広い精神および範囲から逸脱することなく、本明細書に説明されるものを超えて、任意の数の環境および用途において利用され得る。したがって、明細書および図面は、限定的ではなく例示的であると見なされるべきである。
【国際調査報告】