JP6588544B2 - プロバイダネットワークにおけるルールベースのアクショントリガリングのためのシステム及びコンピュータ可読記憶媒体並びに方法 - Google Patents

プロバイダネットワークにおけるルールベースのアクショントリガリングのためのシステム及びコンピュータ可読記憶媒体並びに方法 Download PDF

Info

Publication number
JP6588544B2
JP6588544B2 JP2017522498A JP2017522498A JP6588544B2 JP 6588544 B2 JP6588544 B2 JP 6588544B2 JP 2017522498 A JP2017522498 A JP 2017522498A JP 2017522498 A JP2017522498 A JP 2017522498A JP 6588544 B2 JP6588544 B2 JP 6588544B2
Authority
JP
Japan
Prior art keywords
action
sub
actions
rule
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017522498A
Other languages
English (en)
Other versions
JP2017533513A (ja
Inventor
パテル,ミヒール・ラジェンドラバイ
トルン,ムスタファ・ウグル
ドウアティ,ジェシー・マーカス
Original Assignee
アマゾン・テクノロジーズ・インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/529,097 external-priority patent/US10567476B2/en
Priority claimed from US14/529,096 external-priority patent/US10397128B2/en
Application filed by アマゾン・テクノロジーズ・インコーポレーテッド filed Critical アマゾン・テクノロジーズ・インコーポレーテッド
Publication of JP2017533513A publication Critical patent/JP2017533513A/ja
Application granted granted Critical
Publication of JP6588544B2 publication Critical patent/JP6588544B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5045Making service definitions prior to deployment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5061Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the interaction between service providers and their network customers, e.g. customer relationship management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Computer And Data Communications (AREA)
  • Vending Machines For Individual Products (AREA)
  • Air Bags (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

多くの会社や他の組織が、(例えば、ローカルネットワークの一部として)同じ場所に配置されているコンピューティングシステム、または、(例えば、1つまたは複数のプライベートまたはパブリックの中間ネットワークを介して接続された)複数の別々の地理的位置に配置されているコンピューティングシステム等、多くのコンピューティングシステムを相互に接続して動作を支援するコンピュータネットワークを運営している。例えば、かなりの数の相互に接続されたコンピューティングシステムを収容している分散システムがごく普通になってきた。このような分散システムは、クライアントと対話するウェブサーバにバックエンドサービスを提供してよい。このような分散システムは、顧客にコンピューティングリソースを提供する実体によって運営されるデータセンタも含んでよい。様々な顧客が所有するハードウェアにネットワークアクセス、電力、及び、安全な設置設備を提供するデータセンタ運営者もいれば、顧客が使用のために入手可能なハードウェアリソースも含む「完全なサービス」設備を提供するデータセンタ運営者もいる。
分散システムの規模や範囲が大きくなったので、リソースのプロビジョニング、アドミニストレーション、及び、管理のタスクが、ますます、複雑になってきた。例えば、分散システムの様々なコンポーネントに問題が生じると、保守が頻繁に必要である。システムアドミニストレータが、手動で、その場その場のやり方でこのような保守タスクを行うことが多い。保守タスクを手動で行うと、不必要に高価で、エラーを起こしやすい結果となる場合がある。さらに、システムアドミニストレータが、保守タスクを行うためにカスタムシステムを開発、デプロイすることが必要になり得る。
ある実施形態による、プロバイダネットワークにおけるルールベースのアクショントリガリングのシステム環境例を示す。 ある実施形態による、プロバイダネットワークにおけるルールベースのアクショントリガリングのシステム環境例のさらなる態様を示す。 ある実施形態による、キューサービスを含む、プロバイダネットワークにおけるルールベースのアクショントリガリングのシステム環境例のさらなる態様を示す。 ある実施形態による、トリガからアクションへの1対1マッピングを含む、プロバイダネットワークにおけるルールベースのアクショントリガリングのシステム環境例のさらなる態様を示す。 ある実施形態による、トリガからアクションへの1対多のマッピングを含む、プロバイダネットワークにおけるルールベースのアクショントリガリングのシステム環境例のさらなる態様を示す。 ある実施形態による、トリガからアクションへの多対1のマッピングを含む、プロバイダネットワークにおけるルールベースのアクショントリガリングのシステム環境例のさらなる態様を示す。 ある実施形態による、トリガからアクションへの多対多のマッピングを含む、プロバイダネットワークにおけるルールベースのアクショントリガリングのシステム環境例のさらなる態様を示す。 ある実施形態による、トリガからアクションとキュー入れ替えへのマッピングを含む、プロバイダネットワークにおけるルールベースのアクショントリガリングのシステム環境例のさらなる態様を示す。 ある実施形態による、トリガからアクションではなくキュー入れ替えへのマッピングを含む、プロバイダネットワークにおけるルールベースのアクショントリガリングのシステム環境例のさらなる態様を示す。 ある実施形態による、プロバイダネットワークにおけるルールベースのアクショントリガリングの方法を示すフローチャートである。 ある実施形態による、プロバイダネットワークにおけるルールベースのメッセージトリガリングの方法を示すフローチャートである。 ある実施形態による、プロバイダネットワークにおけるスケジュールベースのアクショントリガリングの方法を示すフローチャートである。 ある実施形態による、ルールベースのアクショントリガリングのルーティングハンドラのシステム環境例を示す。 ある実施形態による、動的にロードされたルーティングマップの使用を含む、ルールベースのアクショントリガリングのルーティングハンドラのシステム環境例のさらなる態様を示す。 ある実施形態による、特定のサブサービスのためのHTTPクライアントの使用を含む、ルールベースのアクショントリガリングのルーティングハンドラのシステム環境例のさらなる態様を示す。 ある実施形態による、サブサービスの例を含む、ルールベースのアクショントリガリングのルーティングハンドラのシステム環境例のさらなる態様を示す。 ある実施形態による、サブサービスの更新を反映するようにルーティングマップを更新することを含む、ルールベースのアクショントリガリングのルーティングハンドラのシステム環境例のさらなる態様を示す。 ある実施形態による、サブサービスとルーティングハンドラにおけるメトリック収集を含む、ルールベースのアクショントリガリングのルーティングハンドラのシステム環境例のさらなる態様を示す。 ある実施形態による、ルールベースのアクショントリガリングのルーティングハンドラを使用する方法を示すフローチャートである。 ある実施形態で使用され得るコンピューティング装置の例を示す。
例として、幾つかの実施形態に関して例示的な図面を用いて、本明細書に実施形態を記載するが、実施形態は、記載した実施形態や図面に制限されないことを当業者は認識されよう。図面や図面に関する詳細な記載は、開示した特定の形態に実施形態を制限するものではなく、むしろ、添付の請求項に規定された精神及び範囲内に入る全ての修正形態、同等形態、代替形態を含むよう意図していることを理解されたい。本明細書で使用している表題は、系統立てのためであり、明細書または特許請求の範囲の制限に使用されることを意図していない。本出願書で使用される場合、「may」という語は、義務的な意味(すなわち、「しなければならない」を意味する)ではなく、許容の意味(すなわち、「する可能性がある」を意味する)で使用される。同様に、「include」「including」及び「includes」は、「〜を含むが、〜に限らない」を意味する。
プロバイダネットワークにおけるルールベースのアクショントリガリングの方法及びシステムの様々な実施形態を記載する。本明細書に記載の技術を用いて、トリガとアクションに基づいてルールを定義してよい。一実施形態においては、ルールは、1つまたは複数のトリガと1つまたは複数のアクションを含んでよい。プロバイダネットワークのリソースは、その動作中、監視されてよい。トリガのいずれかの条件に合致すると、ルールにおいてそのトリガに関連付けられた任意のアクションを行ってよい。アクションを開始するために、アクションを記述するメッセージが生成されて、メッセージングサービスに送られてよい。例えば、メッセージングサービスは、キューサービスを含んでよく、メッセージは、1つまたは複数のキューに配置されてよい。メッセージは、メッセージングサービスからメッセージに記述されたアクションを行う1つまたは複数のアクションハンドラに配信されてよい。このように、プロバイダネットワークの保守タスクまたは他のタスクは、自動化されてよい。
ルールベースのアクショントリガリングのルーティングハンドラの方法及びシステムの様々な実施形態を記載する。本明細書に記載の技術を使用して、ルーティングハンドラは、要求を様々なサブサービスにルーティングしてよい。ルーティングハンドラは、外部データストアから読み出したルーティングマップを使用して、要求の個々の動作を個々のサブサービスにマッピングしてよい。サブサービスは、ルールベースのアクショントリガリング、アクションのスケジューリング、ルールに基づいたアクションの実行、及び/または、任意の他の適切なタスクのサブサービスを含んでよい。個々のサブサービスの1つまたは複数の動作が更新される時、ルーティングハンドラ自体の代わりにルーティングマップが更新されてよい。ルーティングハンドラは、ルーティングハンドラ群の一部であってよい。ルーティングハンドラ群全ての代わりに、ルーティングマップを更新することによって、サブサービスの更新を効率的に実施してよい。
プロバイダネットワークにおけるルールベースのアクショントリガリング
図1は、ある実施形態による、プロバイダネットワークのルールベースのアクショントリガリングのシステム環境例を示す。ルールベースのアクショントリガリングシステム100は、ルールに基づいてアクションをトリガ、実行する複数のコンポーネントを含んでよい。一実施形態においては、ルールベースのアクショントリガリングシステム100は、トリガ定義機能110A、アクション定義機能110B、及び、ルール定義機能110Cを含んでよい。データストア115は、トリガ定義機能110A、アクション定義機能110B、及び/または、ルール定義機能110Cを用いて定義されたトリガ111A、アクション111B、及び、ルール111Cに関連付けられた情報を記憶してよい。データストア115は、データベース管理技術等、任意の適切な記憶技術を用いて実施されてよい。
ルールベースのアクショントリガリングシステム100は、ユーザインタフェース105も含んでよい。一実施形態においては、ユーザインタフェース105によって、ユーザは、トリガ定義機能110A、アクション定義機能110B、及び/または、ルール定義機能110Cを用いて、トリガ111A、アクション111B、及び/または、ルール111Cを定義及び/または選択できる。例えば、ユーザインタフェース105は、ユーザが、1つまたは複数の所定のトリガを選択し、及び/または、1つまたは複数のカスタムトリガを定義するのを可能にしてよい。同様に、ユーザインタフェース105は、ユーザが、1つまたは複数の所定のアクションを選択し、及び/または、1つまたは複数のカスタムアクションを定義するのを可能にしてよい。ユーザインタフェース105は、ユーザが1つまたは複数のルールを定義するのを可能にしてよい。一実施形態においては、ルールは、1つまたは複数のトリガと1つまたは複数のアクションを含むように定義されてよい。一実施形態においては、ルールは、トリガとメッセージ交換を含むように定義されてよい。トリガ111A、アクション111B、及び、ルール111Cの定義を、図4A、4B、4C、4D、5A及び5Bに関して以下に詳細に記載する。
ルールベースのアクショントリガリングシステム100は、1つまたは複数のコンピューティング装置を用いて実施されてよい。1つまたは複数のコンピューティング装置のいずれかは、図16に示す例示のコンピューティング装置3000によって実施されてよい。様々な実施形態において、ルールベースのアクショントリガリングシステム100の機能の一部は、同じコンピューティング装置によって、または、任意の適切な数の異なるコンピューティング装置によって提供されてよい。ルールベースのアクショントリガリングシステム100のコンポーネントのいずれかが、異なるコンピューティング装置を用いて実施される場合、コンポーネントと、そのコンポーネントの各コンピューティング装置とは、例えば、ネットワークを介して通信可能に接続されてよい。図示のコンポーネントは、それぞれ、各機能の実行に使用可能なソフトウェアとハードウェアの任意の組み合わせを表してよい。ルールベースのアクショントリガリングシステム100は、図に示されていない追加のコンポーネント、図に示されているより少ないコンポーネント、または、図に示されているコンポーネントとは異なる組み合わせ、構成、もしくは、量を含んでよいと考えられる。
ルールベースのアクショントリガリングシステム100は、1つまたは複数のネットワーク190または他のインターコネクトを用いて、プロバイダネットワーク170に接続されてよい。プロバイダネットワーク170は、コンピューティングリソース171A、171B〜171N等、複数のコンピューティングリソースを含んでよい。リソース171A〜171Nは、任意の適切な数及び構成の計算インスタンス、及び/または、他の処理リソース、ストレージリソース、データベースリソース、ネットワークリソース、電力リソース、及び/または、他の適切な種類のコンピューティングリソースを含んでよい。3つのコンピューティングリソース171A、171B及び171Nを例示のために図に示しているが、任意の適切な数及び構成のコンピューティングリソースを使用してよいと考えられる。プロバイダネットワーク170は、アクションのトリガのソース、トリガされたアクションの対象、及び/または、トリガされたアクションを行う1つまたは複数のアクションハンドラを含んでよい。
プロバイダネットワーク170は、会社または公的組織等の実体によって運営され、インターネット及び/または他のネットワークを介して分散したクライアントセットにリソース(リソース171A〜171N等)及び/またはサービス(様々な種類のクラウドベースのコンピューティングまたはストレージ等)を提供してよい。プロバイダネットワーク170は、プロバイダが提供したインフラストラクチャ及びサービスを実施、分散させるために使用される物理的及び/または仮想のコンピュータサーバ、記憶装置、及び、ネットワーク機器のコレクション等、様々なリソースプールをホストする多くのデータセンタを含んでよい。リソースは、ある実施形態においては、仮想もしくは物理的な計算インスタンスまたはストレージインスタンス等、「インスタンス」と呼ばれる単位で、クライアントに提供されてよい。仮想計算インスタンスは、例えば、指定された計算能力(CPUの種類と数、メインメモリのサイズ等を示すことによって指定されてよい)と、指定されたソフトウェアスタック(例えば、特定のバージョンのオペレーティングシステム、当該オペレーティングシステムは、ハイパーバイザに追加して実行してよい)とを有する1つまたは複数のサーバを含んでよい。多くの異なる種類のコンピューティング装置は、単一で、または、組み合わせて使用されて、汎用または特殊用途のコンピュータサーバ、記憶装置、ネットワーク装置等を含む、異なる実施形態におけるプロバイダネットワーク170のリソースを実施してよい。
一実施形態においては、プロバイダネットワーク170は、クライアントのためのリソースの予約、制御、アクセスのインタフェースの柔軟なセットを実施してよい。例えば、プロバイダネットワーク170は、クライアントが、リソースについて知る、リソースを選択する、リソースへのアクセスを購入する、及び/または、リソースを予約することを可能にする(例えば、ウェブサイトまたはウェブページのセットを介した)プログラム的なリソース予約インタフェースを実施してよい。一実施形態において、リソースは、クライアントがアクセス可能なサービスを用いて、クライアントに代わって予約されてよい。一実施形態においては、プロバイダネットワーク170は、プロバイダネットワークの選択されたリソースプールの1つまたは複数のリソースを使用して、クライアントに代わってタスクを実行してよい。一実施形態においては、リソースプールは、様々なタスクの予測される計算ニーズに基づいて自動的に選択されてよい。一実施形態においては、リソースプールは、クライアントが提出した特定のリソース要求または予約に基づいて選択されてよい。
プロバイダネットワーク170は、監視機能180も備えてよい。監視機能180は、例えば、リソースの動作中、及び/または、使用中、リソースのいずれかを監視してよい。監視機能180は、エージェントソフトウェア、または、任意の他の適切な技術を使用して、個々のリソースを監視してよい。一実施形態においては、プロバイダネットワークのリソース監視は、1つまたは複数のサービスログの監視、1つまたは複数のサービスメトリックの監視、及び/または、任意の適切なデータストリームの監視を含んでよい。一実施形態においては、監視は、性能メトリック、使用メトリック、及び/または、リソース171A〜171Nの動作に関する他の適切なデータを所定の閾値及び/または警告と比較してよい。任意の適切な所定の閾値及び/または警告は、個々のトリガに関して1つまたは複数の条件を表してよい。コンピューティングリソースの監視が、トリガのいずれかの条件に合致することを示すと、監視機能180は、トリガを発動または起動させてよい。監視機能180は、閾値及び/または警告に基づいてトリガの条件に合致したことを決定してよい。例えば、監視機能180は、警告状態の変更を検出してよく、結果として、トリガを発動してよい。一実施形態においては、外部エージェントが、監視機能180を実施し、トリガを発動してよい。一実施形態においては、プロバイダネットワーク170内のサービスが、監視機能180を実施し、トリガを発動してよい。一実施形態においては、監視機能180は、適切なアプリケーションプログラミングインタフェース(API)を通してルールベースのアクショントリガリングシステム100に要求を送信することによってトリガを発動してよい。
一実施形態においては、ルールベースのアクショントリガリングシステム100は、ルール施行機能120を備えてよい。ルール施行機能120は、例えば、トリガ発動要求を受信後、発動されたトリガに作用してよい。トリガを発動する要求が受信されると、ルール施行機能120は、どのルールが、そのトリガを含むかを、もしあれば、決定してよい。どのルールがトリガを含むかを決定するために、ルール施行機能120は、データストア115に記憶されたルール、トリガ、及び/または、他の適切なデータを参照してよい。発動されたトリガを含む任意のルールを読み出した後、ルール施行機能120は、読み出されたルールに定義された任意のアクションを決定してよい。ルール施行機能120は、次に、読み出されたルールに定義された任意のアクションを開始してよい、またはそうでなければ、アクションを行わせてよい。アクションを開始する時、ルール施行機能120は、例えば、トリガ発動要求で受信された、アクションのメタデータまたはパラメータを供給してよい。このように、ルールベースのアクショントリガリングシステム100は、特定のトリガが起動された時、定義されたルールを使用して、特定のアクションを行ってよい。
図2は、ある実施形態による、プロバイダネットワークにおけるルールベースのアクショントリガリングのシステム環境例のさらなる態様を示す。ルールベースのアクショントリガリングシステム100は、メッセージ生成機能130を含んでよい。ルール施行機能120によって呼び出されると、メッセージ生成機能130は、例えば、アクションに関連付けられたトリガが発動された時、行うべきアクションを記述したメッセージ145を生成してよい。メッセージ生成機能130は、メッセージ145をメッセージングサービス140に送信してよい。メッセージは、任意の発動されたトリガと共に供給されたランタイム入力パラメータ、及び/または、アクションに関連付けられたデフォルトパラメータに基づいて、生成されてよい。一実施形態においては、ジョブディスパッチャ150は、メッセージングサービス140と対話して、メッセージ145に基づいたジョブを発送してよい。
一実施形態においては、アクション実行環境160は、メッセージ145に記述され、ジョブディスパッチャ150によって送られたアクションを行ってよい。アクション実行環境160は、スクリプト、ワークフロー、及び/または、コンパイル済みプログラムコードを含む、命令実行のための1つまたは複数の環境を含んでよい。アクション実行環境160は、アクションハンドラ161A、161B〜161N等、1つまたは複数のアクションハンドラを含んでよい。3つのアクションハンドラ161A、161B、161Nが例示の目的で図に示されているが、任意の適切な数のアクションハンドラを使用してよいと考えられる。アクションハンドラ161A〜161Nが行うアクションは、リソース171A〜171N及び/またはその構成要素のいずれかの任意の適切な修正及び/または設定を含んでよい。例えば、特定のトリガが発動される時、アクションは、プロバイダネットワーク170で計算インスタンスを自動的に、終了、一時停止、または、再スタートさせて良い。別の例として、画像ファイルが特定の記憶場所、ディレクトリ、または、バケットに追加される時、画像ファイルを所定の幅及び所定の高さに自動的にサイズ変更するアクションが行われてよい。アクションは、発動されているトリガに基づいて、スケジュールに基づいて、または、ユーザもしくは他のコンピューティングコンポーネントからの要求に基づいて、アクションハンドラによって行われてよい。
一実施形態においては、ルールベースのアクショントリガリングシステム100は、推薦エンジンを含んでよい。推薦エンジンは、顧客のリソース使用パターン、及び/または、リソースメタデータに基づいて、機械学習技術を用いて顧客に自動操作を推薦してよい。推薦エンジンは、また、顧客の反応に適応して、経時的に推薦を改良してよい。推薦は、顧客からの入力とルールベースのアクショントリガリングシステム100で人気のある傾向を用いたフィードバックループを使用して改良されてよい。
図3は、ある実施形態による、キューサービスを含む、プロバイダネットワークにおけるルールベースのアクショントリガリングのシステム環境例のさらなる態様を示す。一実施形態においては、メッセージングサービス140は、1つまたは複数のキューを管理するキューサービスを用いて実施されてよい。行うべきアクションを記述するメッセージ145は、メッセージングサービスに送信されてよい、または、1つまたは複数のキューに配置されてよい。3つのキュー141A、141B、141Nが、例示の目的で図に示されているが、任意の適切な数のキューを使用してよいと考えられる。一実施形態においては、キュー141Aは、メッセージ生成機能130が生成した全てのメッセージを最初に記憶する一次キューであってよく、他のキュー141B〜141Nは、一次キューが全てのメッセージを扱うのに十分でない場合、バックアップキューとして使用されるだけであってよい。
一実施形態においては、ジョブディスパッチャ150は、タスクポーラ151を用いて実施されてよい。タスクポーラ151は、適切な間隔で1つまたは複数のキューにポーリングして、キューがメッセージ、例えば、行うべきアクションを記述するメッセージを含むか否かを決定してよい。タスクポーラ151は、一次キュー141Aから適切なエラーメッセージを受信すると、バックアップキュー141B〜141Nの使用を開始してよい。タスクポーラ151は、特定の間隔で様々なキュー141A〜141Nのそれぞれをポーリングしてよい。一実施形態においては、タスクポーラ151は、バックアップキュー141B〜141Nより頻繁に一次キュー141Aをポーリングしてよい。
図4Aは、ある実施形態による、トリガからアクションへの1対1のマッピングを含む、プロバイダネットワークにおけるルールベースのアクショントリガリングのシステム環境例のさらなる態様を示す。上記のように、データストア115は、トリガ111A、アクション111B、及び、ルール111Cを記憶してよい。図4Aに示す例においては、トリガ111Aは、トリガ400A、400B〜400Nを含んでよい。しかしながら、任意の適切な数のトリガがデータストア115に記憶されてよいと考えられる。
図4Aに示す例においては、アクション111Bは、アクション設定410Aと、1つまたは複数の追加のアクション設定(図示せず)とを含んでよい。各アクション設定(アクション設定410A等)は、アクション(アクション411等)、アクションの任意のデフォルトパラメータ(デフォルトパラメータ412等)、及び、アクションに必要な任意の役割(役割(複数可)413等)を含んでよい。アクションは、1つまたは複数のコマンド、命令、または、1つまたは複数のタスクを行う機能の他の呼び出しを含んでよい。アクションは、アクションの全ての呼び出しに当てはまるデフォルトパラメータに関連付けられてよい。一実施形態においては、アクションが呼び出される時、そのアクションの特定のインスタンスに関してランタイム入力パラメータも指定されてよい。一実施形態においては、ランタイム入力パラメータは、デフォルトパラメータを増強させてよいが、オバーライドはしない。例えば、画像ファイルが追加された時にアクションが画像ファイルのサイズ変更を伴う場合、デフォルトパラメータは、目標とする幅と高さを含んでよく、ランタイム入力パラメータは、画像ファイルの記憶場所を含んでよい。役割は、アクションがランタイム時にリソースセットにアクセスすることを可能にする許可または他のセキュリティ証明書を含んでよい。役割は、どの特定のユーザまたはユーザグループとも無関係であってよく、関連付けられたアクションへの権限の委任を表してよい。
図4Aに示す例においては、ルール111Cは、ルール420Aと1つまたは複数の追加のルール(図示せず)を含んでよい。ルール420Aは、トリガ400A等、トリガの1つと、アクション設定410A等、アクション設定の1つを指定してよい。トリガ400Aが発動される時、ルール施行機能120は、データストア115を使用して、トリガ400Aがルール420Aの一部であることを決定してよい。ルール施行機能120は、データストア115を使用して、アクション設定410Aもルール420Aの一部である、すなわち、トリガ400Aに結び付いていることを決定してよい。ルール施行機能120によって、次に、指定されたアクション411をデフォルトパラメータ412(及び、任意で、ランタイム入力パラメータ)と、役割(複数可)413を用いて行わせてよい。一実施形態においては、メッセージ生成機能130は、アクション411、デフォルトパラメータ412、任意のランタイム入力パラメータ、及び、役割(複数可)413を指定するメッセージを生成してよい。
図4Bは、ある実施形態による、トリガからアクションへの1対多のマッピングを含む、プロバイダネットワークにおけるルールベースのアクショントリガリングのシステム環境例のさらなる態様を示す。図4Bに示す例においては、トリガ111Aは、トリガ400A、400B〜400Nを含んでよい。しかしながら、任意の適切な数のトリガをデータストア115に記憶してよいと考えられる。図4Bに示す例においては、アクション111Bは、アクション設定410A、410B〜410Nを含んでよい。しかしながら、任意の適切な数のアクション設定をデータストア115に記憶してよいと考えられる。上記のように、アクション設定410A〜410Nは、それぞれ、アクション、アクションの任意のデフォルトパラメータ、及び、アクションに必要な任意の役割を含んでよい。アクション設定410A〜410Nの個々のアクション設定は、(例えば、異なるデフォルトパラメータを有する)同じアクションまたは異なるアクションを表してよい。
一実施形態においては、ルール111Cは、トリガからアクションへの1対多のマッピングを含んでよい。図4Bに示す例においては、ルール111Cは、ルール420A、420Bを含んでよい。ルール420Aは、トリガ400Aからアクション設定410Aへの結合を表してよい。ルール420Bは、同じトリガ400Aから異なるアクション設定410Bへの結合を表してよい。トリガ400Aが発動される時、ルール施行機能120は、データストア115を使用して、トリガ400Aがルール420A、420Bの一部であることを決定してよい。ルール施行機能120は、データストア115を使用して、アクション設定410Aがルール420Aの一部であり、アクション設定410Bがルール420Bの一部であることも決定してよい。ルール施行機能120は、次に、アクション設定410Aと410Bの両方に指定されたアクションを行わせてよい。一実施形態においては、メッセージ生成機能130は、アクション、アクションに関連付けられたデフォルトパラメータ、任意のランタイム入力パラメータ、及び、任意の必要な役割(複数可)を指定する1つまたは複数のメッセージを生成してよい。
図4Cは、ある実施形態による、トリガからアクションへの多対1のマッピングを含む、プロバイダネットワークにおけるルールベースのアクショントリガリングのシステム環境例のさらなる態様を示す。図4Cに示す例においては、トリガ111Aは、トリガ400A、400B〜400Nを含んでよい。しかしながら、任意の適切な数のトリガをデータストア115に記憶してよいと考えられる。図4Cに示す例においては、アクション111Bは、アクション設定410A、410B〜410Nを含んでよい。しかしながら、任意の適切な数のアクション設定をデータストア115に記憶してよいと考えられる。上記のように、アクション設定410A〜410Nは、それぞれ、アクション、アクションの任意のデフォルトパラメータ、及び、アクションに必要な任意の役割を含んでよい。
一実施形態においては、ルール111Cは、トリガからアクションへの多対1のマッピングを含んでよい。図4Cに示す例においては、ルール111Cは、ルール420A、420Cを含んでよい。ルール420Aは、トリガ400Aからアクション設定410Aへの結合を表してよい。ルール420Cは、異なるトリガ400Bから同じアクション設定410Aへの結合を表してよい。トリガ400Aが発動される時、ルール施行機能120は、データストア115を使用して、トリガ400Aがルール420Aの一部であることを決定してよい。同様に、トリガ400Bが発動される時、ルール施行機能120は、データストア115を使用して、トリガ400Bがルール420Cの一部であることを決定してよい。トリガ400A及び/または400Bのいずれかまたは両方が発動される時、ルール施行機能120は、データストア115を使用して、アクション設定410Aがルール420Aの一部であり、アクション設定410Aはルール420Cの一部でもあることを決定してよい。トリガ400Aまたは400Bのいずれかが発動された場合、または、両方が発動された場合、ルール施行機能120は、アクション設定410Aに指定されたアクションを行わせてよい。一実施形態においては、メッセージ生成機能130は、アクション、アクションに関連付けられたデフォルトパラメータ、任意のランタイム入力パラメータ、及び、任意の必要な役割(複数可)を指定するメッセージを生成してよい。
図4Dは、ある実施形態による、トリガからアクションへの多対多のマッピングを含む、プロバイダネットワークにおけるルールベースのアクショントリガリングのシステム環境例のさらなる態様を示す。図4Dに示す例においては、トリガ111Aは、トリガ400A、400B〜400Nを含んでよい。しかしながら、任意の適切な数のトリガをデータストア115に記憶してよいと考えられる。図4Dに示す例においては、アクション111Bは、アクション設定410A、410B〜410Nを含んでよい。しかしながら、任意の適切な数のアクション設定をデータストア115に記憶してよいと考えられる。上記のように、アクション設定410A〜410Nは、それぞれ、アクション、アクションの任意のデフォルトパラメータ、及び、アクションに必要な任意の役割を含んでよい。
一実施形態においては、ルール111Cは、トリガからアクションへの多対多のマッピングを含んでよい。図4Dに示す例においては、ルール111Cは、ルール420A、420B、420C、及び、420Dを含んでよい。ルール420Aは、第1のトリガ400Aから第1のアクション設定410Aへの結合を表してよい。ルール420Bは、第1のトリガ400Aから第2のアクション設定410Bへの結合を表してよい。ルール420Cは、第2のトリガ400Bから第1のアクション設定410Aへの結合を表してよい。ルール420Dは、第2のトリガ400Bから第2のアクション設定410Bへの結合を表してよい。トリガ400Aが発動される時、ルール施行機能120は、データストア115を使用して、トリガ400Aがルール420A、420Bの一部であることを決定してよい。ルール施行機能120は、データストア115を使用して、アクション設定410Aがルール420Aの一部であり、アクション設定410Bがルール420Bの一部であることも決定してよい。同様に、トリガ400Bが発動される時、ルール施行機能120は、データストア115を使用して、トリガ400Bがルール420C、420Dの一部であることを決定してよい。ルール施行機能120は、データストア115を使用して、アクション設定410Aはルール420Cの一部であり、アクション設定410Bはルール420Dの一部であることも決定してよい。トリガ400Aまたは400Bのいずれかが発動された場合、または、両方が発動された場合、ルール施行機能120は、アクション設定410A、410Bに指定されたアクションを行わせてよい。一実施形態においては、メッセージ生成機能130は、アクション、アクションに関連付けられたデフォルトパラメータ、任意のランタイム入力パラメータ、及び、任意の必要な役割(複数可)を指定する1つまたは複数のメッセージを生成してよい。
図5Aは、ある実施形態による、トリガからアクションとキュー入れ替えへのマッピングを含む、プロバイダネットワークにおけるルールベースのアクショントリガリングのシステム環境例のさらなる態様を示す。図5Aに示す例においては、トリガ111Aは、トリガ400A、400B〜400Nを含んでよい。しかしながら、任意の適切な数のトリガをデータストア115に記憶してよいと考えられる。図5Aに示す例においては、アクション111Bは、アクション設定410A、410B〜410Nを含んでよい。しかしながら、任意の適切な数のアクション設定をデータストア115に記憶してよいと考えられる。上記のように、アクション設定410A〜410Nは、それぞれ、アクション、アクションの任意のデフォルトパラメータ、及び、アクションに必要な任意の役割を含んでよい。
一実施形態においては、ルール111Cは、トリガからアクションへのマッピングと、トリガからキュー入れ替えへのマッピングも含んでよい。図5Aに示す例においては、ルール111Cは、ルール420A、420Eを含んでよい。ルール420Aは、トリガ400Aからアクション設定410Aへの結合を表してよい。ルール420Eは、同じトリガ400Aからキュー入れ替え430への結合を表してよい。キュー入れ替え430は、生成すべき1つまたは複数のキューメッセージを指定してよい。トリガ400Aが発動される時、ルール施行機能120は、データストア115を使用して、トリガ400Aがルール420A、420Eの一部であることを決定してよい。ルール施行機能120は、また、データストア115を使用して、アクション設定410Aがルール420Aの一部であり、キュー入れ替え430がルール420Bの一部であることを決定してよい。ルール施行機能120は、次に、アクション設定410Aに指定されたアクションを行わせてよい。一実施形態においては、メッセージ生成機能130は、アクション、アクションに関連付けられたデフォルトパラメータ、任意のランタイム入力パラメータ、及び、任意の必要な役割(複数可)を指定する1つまたは複数のメッセージを生成してよい。さらに、ルール施行機能120は、キュー入れ替え430によって指定されるキューメッセージを生成してよく、そのメッセージをキューに配置してよい、またはそうでなければ、メッセージをメッセージングサービスに送信してよい。例えば、キューメッセージは、(例えば、アドミニストレータまたはログへの)、トリガ400Aが特定の時刻に発動されたという通知、または、アクション設定410Aのアクションが特定のパラメータを用いて特定の時刻に行われたという通知を表してよい。
図5Bは、ある実施形態による、トリガからアクションではなくキュー入れ替えへのマッピングを含む、プロバイダネットワークにおけるルールベースのアクショントリガリングのシステム環境例のさらなる態様を示す。図5Bに示す例においては、トリガ111Aは、トリガ400A、400B〜400Nを含んでよい。しかしながら、任意の適切な数のトリガをデータストア115に記憶してよいと考えられる。図5Bに示す例においては、アクション111Bは、アクション設定410A、410B〜410Nを含んでよい。しかしながら、任意の適切な数のアクション設定をデータストア115に記憶してよいと考えられる。上記のように、アクション設定410A〜410Nは、それぞれ、アクション、アクションの任意のデフォルトパラメータ、及び、アクションに必要な任意の役割を含んでよい。
一実施形態においては、ルール111Cは、トリガのキュー入れ替えへのマッピングを含んでよい。図5Bに示す例においては、ルール111Cは、ルール420Fを含んでよい。ルール420Fは、トリガ400Nからキュー入れ替え430への結合を表してよい。キュー入れ替え430は、生成すべき1つまたは複数のキューメッセージを指定してよい。同じトリガ400Nが、アクション設定410A〜410Nのいずれにも結合されなくてもよい。トリガ400Nが発動される時、ルール施行機能120は、データストア115を使用して、トリガ400Nがルール420Fの一部であることを決定してよい。ルール施行機能120は、データストア115を使用して、キュー入れ替え430がルール420Fの一部であることも決定してよい。ルール施行機能120は、キュー入れ替え430によって指定されるキューメッセージを生成してよく、そのメッセージをキューに配置してよい、またはそうでなければ、メッセージをメッセージングサービスに送信してよい。例えば、キューメッセージは、トリガ400Nが特定の時刻に発動されたという(例えば、アドミニストレータまたはログ)への通知を表してよい。
図6は、ある実施形態による、プロバイダネットワークにおけるルールベースのアクショントリガリングの方法を示すフローチャートである。605に示すように、複数のルールが、複数のトリガと複数のアクションに基づいて定義されてよい。一実施形態においては、個々のルールは、トリガの1つまたは複数と、アクションの1つまたは複数を含む。あるいは、個々のルールは、トリガとキュー入れ替えを含んでよい。トリガ、アクション、及び/または、ルールは、所定の要素、及び/または、カスタム要素を用いて、ユーザによって定義または選択されてよい。
610に示すように、プロバイダネットワークにおける複数のリソースを監視してよい。リソースを監視して、トリガのいずれかを発動するか否かを決定してよい。言い換えると、プロバイダネットワークの条件をリソースの動作中または使用中に監視して、条件がいずれかのトリガを満たすか否かを決定してよい。一実施形態においては、プロバイダネットワークのリソースの監視は、1つまたは複数のサービスログ、1つまたは複数のサービスメトリック、及び/または、1つまたは複数の他のデータストリームの監視を含んでよい。監視は、外部エージェント及び/またはサービス自体等、任意の適切なコンポーネント(複数可)によって行われてよい。615に示すように、監視に基づいて、特定の1つまたは複数のトリガの条件に合致したことを決定してよい。615に示す動作は、メトリックと閾値の比較、ログ分析、及び/または、警告段階の変更の検出を含んでよい。トリガの条件に合致した場合、「トリガ発動」要求が、例えば、外部のエージェント、サービス、または、監視を行う他の実体からルールベースのアクショントリガリングシステムに送信されてよい。
620に示すように、発動された特定の1つまたは複数のトリガを含むルールの特定の1つまたは複数を決定してよい。特定の1つまたは複数のトリガの条件に合致すると決定したことに応答して、特定の1つまたは複数のルールを決定してよい。特定の1つまたは複数のルールは、ルール内に規定された特定の1つまたは複数のトリガに基づいて、データストアからルールを読み出すことによって決定されてよい。特定のルール(複数可)は、それぞれ、特定の1つまたは複数のアクションも含んでよい。
625に示すように、1つまたは複数のメッセージを生成してよい。1つまたは複数のメッセージは、特定の1つまたは複数のトリガも含む特定の1つまたは複数のルールに、特定の1つまたは複数のアクションを記述してよい。630に示すように、1つまたは複数のメッセージをメッセージングサービスに送信してよい。一実施形態においては、メッセージングサービスは、キューサービスを用いて実施されてよく、1つまたは複数のメッセージは、キューサービスが管理する1つまたは複数のキューに配置されてよい。
635に示すように、1つまたは複数のメッセージは、メッセージングサービスから1つまたは複数のアクションハンドラに送られてよい。アクションハンドラ(複数可)は、アクション実行環境の一部であってよい。640に示すように、1つまたは複数のアクションハンドラは、1つまたは複数のメッセージに記述された1つまたは複数のアクションを行ってよい。一実施形態においては、行われたアクションによって、別のトリガが発動されてよく、その結果、異なるトリガ、異なるルール、及び/または、異なるアクションに対して、610〜640に示す動作が再度、行われる。このように、トリガは、他のトリガにチェーンされて、複雑なアクションチェーンを行ってよい。
図7は、ある実施形態による、プロバイダネットワークにおけるルールベースのメッセージトリガリングの方法を示すフローチャートである。605に示すように、複数のルールが、複数のトリガと複数のアクションに基づいて定義されてよい。一実施形態においては、個々のルールは、トリガの1つまたは複数と、アクションの1つまたは複数を含む。あるいは、個々のルールは、トリガとキュー入れ替えを含んでよい。トリガ、アクション、及び/または、ルールは、所定の要素及び/またはカスタム要素を用いてユーザによって定義または選択されてよい。
610に示すように、プロバイダネットワークの複数のリソースを監視してよい。リソースを監視して、トリガのいずれかを発動するか否かを決定してよい。言い換えると、リソースの動作中または使用中にプロバイダネットワークの条件を監視して、条件がいずれかのトリガを満たすか否かを決定してよい。一実施形態においては、プロバイダネットワークのリソースの監視は、1つまたは複数のサービスログ、1つまたは複数のサービスメトリック、及び/または、1つまたは複数の他のデータストリームの監視を含んでよい。監視は、外部エージェント及び/またはサービス自体等、任意の適切なコンポーネント(複数可)によって行われてよい。615に示すように、監視に基づいて、特定の1つまたは複数のトリガの条件に合致したことを決定してよい。615に示す動作は、メトリックと閾値の比較、ログ分析、及び/または、警告段階の変更の検出を含んでよい。トリガの条件に合致した場合、「トリガ発動」要求が、例えば、外部のエージェント、サービス、または、監視を行う他の実体から、ルールベースのアクショントリガリングシステムに送信されてよい。
720に示すように、発動された特定のトリガを含む特定のルールを決定してよい。特定のトリガの条件に合致したと決定することに応答して、特定のルールが決定されてよい。特定のルールは、ルール内で定義された特定のトリガに基づいて、データストアからルールを読み出すことによって、決定されてよい。特定のルールは、生成すべき1つまたは複数のキューメッセージを指定する特定のキュー入れ替えも含んでよい。
725に示すように、キューメッセージは、特定のルールのキュー入れ替えに基づいて生成されてよい。730に示すように、キューメッセージは、キューサービス等のメッセージングサービスに送信されてよい。一実施形態においては、キューメッセージは、キューサービスによって管理される1つまたは複数のキューに配置されてよく、最終的には、適切な受信者に配信されてよい。
図8は、ある実施形態による、プロバイダネットワークにおけるスケジュールベースのアクショントリガリングの方法を示すフローチャートである。605に示すように、複数のルールは、複数のトリガと複数のアクションに基づいて定義されてよい。一実施形態においては、個々のルールは、トリガの1つまたは複数と、アクションの1つまたは複数とを含む。あるいは、個々のルールは、トリガとキュー入れ替えを含んでよい。トリガ、アクション、及び/または、ルールは、所定の要素及び/またはカスタム要素を用いてユーザによって定義または選択されてよい。
807に示すように、特定の時刻にトリガをスケジューリングしてよい。トリガは、ワンタイムイベントとして、または、繰り返しイベントとしてスケジューリングされてよい。例えば、トリガは、毎日特定の時刻に、7日毎に特定の時刻に、毎月特定の日に、または、任意の他の適切な間隔でスケジューリングされてよい。トリガは、自動で、または、ユーザ入力に基づいてスケジューリングされてよい。810に示すように、プロバイダネットワークにおいて、時間の経過を監視して、任意のスケジューリングされたトリガをいつ発動するかを決定してよい。
815に示すように、監視に基づいて、特定のスケジューリングされたトリガを発動する時刻になったことを決定してよい。トリガの時刻になった場合、「トリガ発動」要求が、例えば、外部のエージェント、サービス、または、監視を行う他の実体から、ルールベースのアクショントリガリングシステムに送信されてよい。620に示すように、発動された特定のスケジューリングされたトリガを含むルールの特定の1つまたは複数が決定されてよい。特定の1つまたは複数のルールは、特定のスケジューリングされたトリガの条件に合致すると決定されたことに応答して、決定されてよい。特定の1つまたは複数のルールは、ルール内に定義された特定のスケジューリングされたトリガに基づいて、データストアからルールを読み出すことによって決定されてよい。特定のルール(複数可)は、それぞれ、特定の1つまたは複数のアクションも含んでよい。
625に示すように、1つまたは複数のメッセージを生成してよい。1つまたは複数のメッセージは、特定のスケジューリングされたトリガも含む特定の1つまたは複数のルールに、特定の1つまたは複数のアクションを記述してよい。630に示すように、1つまたは複数のメッセージは、メッセージングサービスに送信されてよい。一実施形態においては、メッセージングサービスは、キューサービスを使用して実施してよく、1つまたは複数のメッセージは、キューサービスによって管理された1つまたは複数のキューに配置されてよい。
635に示すように、1つまたは複数のメッセージは、メッセージングサービスから1つまたは複数のアクションハンドラに送られてよい。アクションハンドラ(複数可)は、アクション実行環境の一部であってよい。640に示すように、1つまたは複数のアクションハンドラは、1つまたは複数のメッセージに記述された1つまたは複数のアクションを行ってよい。一実施形態においては、行われたアクションによって、別のトリガが発動されてよく、その結果、異なるトリガ、異なるルール、及び/または、異なるアクションに対して610〜640に示す動作が再度、行われる。このように、トリガは、他のトリガにチェーンされて、複雑なアクションを行ってよい。
ルールベースのアクショントリガリングのルーティングハンドラ
図9は、ある実施形態による、ルールベースのアクショントリガリングのルーティングハンドラのシステム環境例を示す。ルーティングハンドラ900は、ルールベースのアクショントリガリングシステム100のコンポーネントと、ルールベースのアクショントリガリングシステム100に使用される他のコンポーネントを含む、上記コンポーネントの様々なコンポーネントに、要求をルーティングしてよい。ルーティングハンドラ900は、ルールベースのアクショントリガリングシステム100及びその関連するコンポーネントのプロキシとも呼ばれてよい。ルーティングハンドラ900が要求をルーティングするコンポーネントは、本明細書においては、サブサービスと呼ばれてよい。ルーティングハンドラ900は、サブサービス950A、950B〜950N等、複数のサブサービスのうちの選択されたサブサービスに個々の要求をルーティングしてよい。3つのサブサービス950A、950B、950Nが例示の目的で示されているが、任意の適切な数及び設定のサブサービスを使用してよいと考えられる。サブサービス950A〜950Nは、異なるサブサービス、または、同じサブサービスの異なるバージョンを表してよい。図9の例に示すように、サブサービス950A等、サブサービスの1つまたは複数は、ルールベースのアクショントリガリングシステム100の機能の態様を実施してよい。サブサービス950B、950N等、サブサービスのうちの他のサブサービスは、ルールベースのアクショントリガリングシステム100に呼び出される機能、またはそうでなければ、関連付けられた機能を実施してよい。このように、ルーティングハンドラ900は、上記のルールベースのアクショントリガリング及び/またはスケジュールベースのアクショントリガリングに関連付けられた様々な異なるサブサービス950A〜950Nとの対話に統一された顧客体験を提供してよい。さらに、ルーティングハンドラ自体を更新及び/または再デプロイすることなしに、ルーティングハンドラ群のルーティング情報を更新してよい。
ルーティングハンドラ900は、1または複数のクライアント990から、例えば、ネットワークを介して要求901を受信してよい。クライアント990は、ルーティングハンドラ900を維持する組織の外部の顧客、ルーティングハンドラ900を維持する組織の内部の顧客、または、サブサービス950A〜950Nの任意の適切な顧客を表してよい。個々の要求は、個々のサブサービスが行うべき動作を指定してよい。以下により詳細に記載するように、ルーティングハンドラ900は、サブサービスのうちのどのサブサービスが任意の特定の要求の対象であるかを決定してよい。ルーティングハンドラ900は、次に、例えば、ネットワークを介して、その特定のサブサービスへの要求を、(例えば、サブサービスを実施する1つまたは複数のホストに)ルーティングしてよい。要求に対する任意の応答が、受信者のサブサービスによって生成される場合、ルーティングハンドラは、応答を受信して、要求を送信したクライアントにその応答をルーティングしてよい。図9の例に示すように、ルーティングハンドラ900は、要求951Aをサブサービス950Aに送信して、サブサービス950Aから応答952Aを受信してよく、要求951Bをサブサービス950Bに送信して、サブサービス950Bから応答952Bを受信してよく、要求951Nをサブサービス950Nに送信して、サブサービス950Nから応答952Nを受信してよい。クライアントから受信された要求901は、サブサービス950A〜950Nにルーティングされた要求951A〜951Nを集合的に表してよい。クライアントにルーティングされた応答902は、サブサービス950A〜950Nから受信された応答952A〜952Nを集合的に表してよい。
ルーティングハンドラ900は、1つまたは複数のコンピューティング装置を用いて実施されてよく、1つまたは複数のコンピューティング装置のいずれかは、図16に示す例示のコンピューティング装置3000によって実施されてよい。様々な実施形態において、ルーティングハンドラ900の機能の一部は、同じコンピューティング装置によって、または、任意の適切な数の異なるコンピューティング装置によって提供されてよい。ルーティングハンドラ900のコンポーネントのいずれかが、異なるコンピューティング装置によって実施される場合、コンポーネントと、その各コンピューティング装置は、例えば、ネットワークを介して、通信可能に接続されてよい。ルーティングハンドラ900は、ルーティングハンドラ群の一部であってよい。ルーティングハンドラ群のうちの他のルーティングハンドラは、同様に構成されてよい、及び/または、類似の機能を提供してよい。
サブサービス950A〜950Nも、それぞれ、1つまたは複数のコンピューティング装置を用いて実施されてよく、1つまたは複数のコンピューティング装置のいずれかは、図16に示す例示のコンピューティング装置3000によって実施されてよい。様々な実施形態において、サブサービス950A〜950Nのいずれかの機能は、同じコンピューティング装置によって、または、任意の適切な数の異なるコンピューティング装置によって、提供されてよい。サブサービス950A〜950Nの1つのサブサービスのコンポーネントのいずれかを異なるコンピューティング装置を使用して実施する場合、コンポーネントとその各コンピューティング装置は、例えば、ネットワークを介して通信可能に接続されてよい。
図10は、ある実施形態による、動的にロードされたルーティングマップの使用を含む、ルールベースのアクショントリガリングのルーティングハンドラのシステム環境例のさらなる態様を示す。ルーティングハンドラ900は、外部データストア915から読み出されたルーティングマップ916を使用して、要求の特定の動作を特定のサブサービスにマッピングしてよい。データストア915は、任意の適切なストレージ技術を用いて実施されてよい。一実施形態においては、ルーティングハンドラ900は、要求分析機能910、動的ルーティング設定機能920、及び、動作からサブサービスへのマッピング機能930を含んでよい。ルーティングハンドラ900は、図に示されていない追加のコンポーネント、図に示されているより少ないコンポーネント、または、図に示されたコンポーネントの異なる組み合わせ、構成、もしくは、量を含んでよいことを意図している。
一実施形態においては、要求分析機能910は、着信要求901に関する要求分析を行ってよい。任意の適切な技術(複数可)を用いて、要求分析機能910は、着信要求で指定された1つまたは複数の動作を決定してよい。例えば、着信要求は、ハイパーテキスト転送プロトコル(HTTP)要求として受信されてよく、動作(複数可)は、HTTP要求の特定の部分に指定されてよい。様々な動作は、様々なサブサービスが提供した様々なアプリケーションプログラミングインタフェース(API)を表してよい。
一実施形態においては、動的ルーティング設定機能920は、最新のルーティングマップ916を維持してよい。ルーティングマップ916は、適切な間隔で外部データストア915から読み出され、動的ルーティング設定機能920によってキャッシュされてよい。ルーティングマップ916は、動的に、ルーティングハンドラ900にロードされてよい。例えば、ルーティングハンドラのプログラムコードの更新、ルーティングハンドラの再デプロイ、ルーティングハンドラの再スタートを必要とせずに、ルーティングハンドラ実行中にロードされてよい。ルーティングマップ916は、個々の動作名(または他の識別子)をその動作を行う個々のサブサービスにマッピングすることを表してよい。ルーティングマップ916は、キーと値のデータストアを用いて実施されてよい。キーと値のデータストアにおいて、キーは、動作名(または、他の識別子)を表し、関連付けられた値は、サブサービス名(または、他の識別子)を表す。一実施形態においては、(例えば、ルーティングハンドラ群の形態の)複数のルーティングハンドラは、例えば、ルーティングマップの異なるコピーをキャッシュすることによって、同じルーティングマップ916を参照してよい。
一実施形態においては、動作からサブサービスへのマッピング機能930は、ルーティングマップ916を使用して、着信要求をルーティングすべき特定のサブサービスを決定してよい。動作からサブサービスへのマッピング機能930は、(動的ルーティング設定機能920によって提供された)ルーティングテーブル916の(要求分析機能910によって決定された)特定の動作を調べて、要求で指定された動作を提供する特定のサブサービスを決定してよい。ルーティングハンドラ900は、次に、動作からサブサービスへのマッピング機能930によって決定された適切なサブサービスに要求をルーティングしてよい。サブサービスからルーティングハンドラ900によって受信された応答はいずれも、要求を送信したクライアントにルーティングされてよい。ホスト群は、特定のサブサービスを実施してよく、要求のサブサービスへのルーティングは、サブサービスに関連付けられたロードバランサに要求をルーティングすることを含んでよい。ロードバランサは、次に、要求を特定のホストにルーティングしてよい。
図11は、ある実施形態による、特定のサブサービスのためのHTTPクライアントの使用を含む、ルールベースのアクショントリガリングのルーティングハンドラのシステム環境例のさらなる態様を示す。一実施形態においては、要求901は、HTTP要求として表されてよく、ルーティングハンドラ900は、複数のHTTPクライアントを使用して、サブサービス950A〜950Nと通信してよい。一実施形態においては、ルーティングハンドラ900は、サブサービス毎またはサブサービスホスト毎に1つのHTTPクライアントを使用してよい。図11に示すように、ルーティングハンドラ900は、1つのHTTPクライアント940Aを使用して、サブサービス950Aと通信してよく、別のHTTPクライアント940Bを使用して、サブサービス950Bと通信してよく、さらに別のHTTPクライアント940Nを使用して、サブサービス950Nと通信してよい。しかしながら、任意の適切な数及び設定のHTTPクライアントを使用してよいと考えられる。ルーティングハンドラ900が、要求をサブサービス950A〜950Nのうちの1つの対応するサブサービスにルーティングしようとする時、HTTPクライアント940A〜940Nのいずれかを、作成(例えば、インスタンス化)してよく、または、再使用してよい。
一実施形態においては、HTTPクライアントは、同期モードで実行してよい。同期モードにおいては、HTTPクライアントは、サブサービスのうちの1つに要求を転送した後、応答を待つ。一実施形態においては、HTTPクライアントの1つまたは複数は、代わりに、非同期モードで実行してよい。非同期モードにおいては、HTTPクライアントの1つまたは複数のスレッドは、要求をサブサービスにルーティングするために使用された後、スレッドプールに返されてよい。1つまたは複数のキューが、ルーティングハンドラ900によって使用されて、サブサービスからの応答を受信してよい。このように非同期入力/出力(I/O)を用いて、ルーティングハンドラ900のリソースをより効率的に使用してよい。
図12は、ある実施形態による、サブサービスの例を含む、ルールベースのアクショントリガリングのルーティングハンドラのシステム環境例のさらなる態様を示す。様々な実施形態において、サブサービスは、ルールベースのアクショントリガリング、アクションのスケジューリング、ルールに基づいたアクションの実行、及び/または、任意の他の適切なタスクのサブサービスを含んでよい。図12の例に示すように、ルーティングハンドラ900は、ルールサブサービス950C、スケジューリングサブサービス950D、及び、アクションサブサービス950Eに要求をルーティングしてよい。ルールサブサービス950Cは、例えば、図1、図2、及び、図3に関して記載したように、ルールベースのアクショントリガリングシステム100の上記機能を表してよい。例えば、ルールサブサービス950Cは、トリガをアクションに結合するルールを定義してよく、トリガを発動して、ルールに基づいてアクションを行わせてよい。ルールサブサービス950Cは、ルーティングハンドラ900からルーティングされた要求951Cを受信して、応答952Cをルーティングハンドラに送信してよい。スケジューリングサブサービス950Dは、例えば、図8に関して記載したように、特定の時刻にアクションが行われるようにスケジューリングしてよい。スケジューリングサブサービス950Dは、ルーティングハンドラ900からルーティングされた要求951Dを受信して、応答952Dをルーティングハンドラに送信してよい。アクションサブサービス950Eは、例えば、図1、図2、及び、図3に関して記載したように、アクションハンドラ161A〜161N及び/またはアクション実行環境160に関して上述した機能を表してよい。例えば、アクションサブサービス950Eは、プロバイダネットワーク170のリソース171A〜171Nにルールベース、及び/または、スケジュールベースのアクションを行ってよい。アクションサブサービス950Eは、ルーティングハンドラ900からルーティングされた要求951Eを受信して、応答952Eをルーティングハンドラに送信してよい。
図13は、ある実施形態による、サブサービスへの更新を反映するようにルーティングマップを更新することを含む、ルールベースのアクショントリガリングのルーティングハンドラのシステム環境例のさらなる態様を示す。特定のサブサービスの1つまたは複数の動作を更新する時、ルーティングハンドラ自体の代わりに、ルーティングマップを更新してよい。ルーティングハンドラは、ルーティングハンドラ群の一部であってよい。ルーティングハンドラ群全体の代わりにルーティングマップを更新することによって、サブサービスの更新を効率的に実施してよい。従って、図13に示すように、更新されたサブサービス950Fが、別のサブサービス(例えば、サブサービス950B)に置き換わってよい、または、補ってよい。ルーティングハンドラ900と共に使用した旧バージョンと比較して、更新されたサブサービス950Fは、1つまたは複数の追加の動作、1つまたは複数のより少ない動作、及び/または、1つまたは複数の修正された動作を実施してよく、クライアントに提供してよい。修正された動作は、動作名(または、他の識別子)、及び/または、動作に関連付けられたパラメータの相違を反映してよい。一実施形態においては、サービスオーナー960は、更新されたサブサービス950Fを更新し、トラフィックがルーティングハンドラ900によって管理されるサブサービスセットに更新されたサブサービス950Fを追加してよい。更新されたサブサービス950Fが、ルーティングハンドラ900によって管理されるサブサービスセットに追加される時、サービスオーナー960は、更新されたルーティングマップ917も生成してよい。更新されたルーティングマップ917は、特定の動作名(または、他の識別子)から、更新されたサブサービス950Fの更新された動作を含む、それらの動作を提供する特定のサブサービスへのマッピングを表してよい。サービスオーナー960は、データストア915に更新されたルーティングマップ917を記憶してよい。一実施形態においては、サービスオーナー960は、もはや使用されていないルーティングマップ916をデータストア915の更新されたルーティングマップ917で上書きするために、任意の適切なセキュリティ証明書を提供してよい。
図14は、ある実施形態による、サブサービスとルーティングハンドラのメトリックコレクションを含む、ルールベースのアクショントリガリングのルーティングハンドラのシステム環境例のさらなる態様を示す。一実施形態においては、個々のサブサービス950A〜950Nは、要求901の受信及び/または処理に関する性能メトリックを収集してよい。図14の例に示すように、サブサービス950Aは、メトリックコレクション機能955Aを含んでよく、サブサービス950Bは、メトリックコレクション機能955Bを含んでよく、サブサービス950Nは、メトリックコレクション機能955Nを含んでよい。ルーティングハンドラ900は、要求901及び応答902のルーティングを含む、ルーティングハンドラ900が行う様々なタスクに関連する性能メトリックを収集するメトリックコレクション機能945も含んでよい。収集されたメトリックは、ネットワーク使用量、プロセッサ使用量、メモリ使用量、ストレージ使用量、電力使用量、及び/または、他のリソース使用量に関連してよい。様々なメトリックコレクション機能955A〜955N及び945は、集約及び/または分析のための任意の適切なコンポーネントに収集されたメトリックを報告してよい。例えば、要求のルーティングと処理のためのエンドツーエンド待ち時間を測定するために、要求の待ち時間メトリックをルーティングハンドラ900と受信者サブサービスの両方から収集してよい。
一実施形態においては、サブサービス950A〜950Nの個々のサブサービスは、同じサブサービスの異なるバージョンを表してよい。例えば、サブサービス950A〜950Nのうちの2つは、ルールサブサービスの旧バージョンと、ルールサブサービスの新バージョンを表してよい。ルーティングハンドラ900は、一部の要求を1つのバージョンにルーティングし、他の要求を他のバージョンにルーティングすることによって、同じサブサービスの2つのバージョンのA/Bテストを支援してよい。要求は、クライアントホワイトリスト及び/またはクライアントブラックリストに基づいて、ルーティングされてよい。一実施形態においては、対応するサブサービスのメトリックコレクション機能と、ルーティングハンドラ900のメトリックコレクション機能945を使用して、例えば、同じサブサービスの2つの異なるバージョンの相対的な性能を決定することによって、テストの結果を評価してよい。
図15は、ある実施形態による、ルールベースのアクショントリガリングのルーティングハンドラを使用する方法を示すフローチャートである。1505に示すように、要求は、要求ルータでクライアントから受信されてよい。要求は、特定のサブサービスの特定の動作を指定してよい。1510に示すように、要求の特定の動作を決定してよい。一実施形態においては、特定の動作は、要求分析を用いて、例えば、HTTP要求の動作名(または他の識別子)を識別して決定されてよい。
1515に示すように、サブサービスの特定のサブサービスを、特定の動作に基づいて決定してよい。サブサービスの特定のサブサービスは、動作名(または、他の識別子)とサブサービス名(または、他の識別子)の間の関連付けを表すルーティングマップを用いて、決定されてよい。ルーティングマップは、ルーティングハンドラ群の各ルーティングハンドラが最新のルーティング情報を有するように、データストアから動的にロードされてよい。
1520に示すように、要求は、ルーティングハンドラから特定のサブサービスにルーティングされてよい。1525に示すように、要求への応答は、特定のサブサービスからルーティングハンドラで受信されてよい。1530に示すように、応答は、ルーティングハンドラからクライアントに返信されてよい。
上述の事項は、以下の条項を考慮すると、よりよく理解されよう。
1.ルールベースのアクショントリガリングシステムを実施するように構成された複数のコンピューティング装置と、複数のリソースを含むプロバイダネットワークと、
を含むシステムであって、前記ルールベースのアクショントリガリングシステムは、
複数のトリガと複数のアクションとに少なくとも部分的に基づいて、複数のルールであって、それぞれ、前記トリガの各1つまたは複数と、前記アクションの各1つまたは複数とを含む、前記複数のルールを定義し、
前記トリガの特定のトリガを発動する要求であって、当該特定のトリガを発動する1つまたは複数の条件は、前記プロバイダネットワークの前記複数のリソースの監視に少なくとも部分的に基づいて決定される、前記トリガの前記特定のトリガを発動する前記要求を受信し、
前記トリガの前記特定のトリガを含む前記ルールの特定の1つまたは複数を決定し、
前記トリガの前記特定のトリガを含む前記ルールの前記特定の1つまたは複数に前記アクションの特定の1つまたは複数を記述する1つまたは複数のメッセージを生成し、
前記1つまたは複数のメッセージをメッセージングサービスに送信し、且つ、
前記1つまたは複数のメッセージを前記メッセージングサービスから1つまたは複数のアクションハンドラに送るように構成され、前記1つまたは複数のアクションハンドラは、前記1つまたは複数のメッセージに記述された前記アクションの前記特定の1つまたは複数を行うように構成される、
前記システム。
2.前記ルールベースのアクショントリガリングシステムは、
前記トリガの前記特定のトリガを含む前記ルールのうちの追加のルールであって、キュー入れ替えを含む前記追加のルールを決定し、且つ、
前記ルールのうちの前記追加のルールの前記キュー入れ替えに少なくとも部分的に基づいて、キューメッセージをキューサービスに送信する、
ようにさらに構成される、条項1に記載のシステム。
3.前記ルールベースのアクショントリガリングシステムは、
前記トリガのうちの追加のトリガであって、特定の時刻にスケジューリングされた前記追加のトリガを発動する要求を受信し、
前記トリガのうちの前記追加のトリガを含む前記ルールの追加の1つまたは複数に前記アクションの追加の1つまたは複数を記述する1つまたは複数の追加メッセージを生成し、
前記1つまたは複数の追加メッセージを前記メッセージングサービスに送信し、且つ、
前記1つまたは複数の追加メッセージを前記メッセージングサービスから前記1つまたは複数のアクションハンドラに送る
ようにさらに構成され、前記1つまたは複数のアクションハンドラは、前記1つまたは複数の追加メッセージに記述された前記アクションの前記追加の1つまたは複数を行うように構成される、
条項1に記載のシステム。
4.前記1つまたは複数のメッセージに記述された前記アクションの前記特定の1つまたは複数に応答して、前記ルールベースのアクショントリガリングシステムは、
前記トリガのうちの追加の1つまたは複数を発動する要求を受信し、
前記トリガのうちの前記追加の1つまたは複数を含む前記ルールの追加の1つまたは複数を決定し、
前記トリガのうちの前記追加の1つまたは複数を含む前記ルールの前記追加の1つまたは複数に前記アクションの追加の1つまたは複数を記述する1つまたは複数の追加メッセージを生成し、
前記1つまたは複数の追加メッセージを前記メッセージングサービスに送信し、且つ、
前記1つまたは複数の追加メッセージを前記メッセージングサービスから前記1つまたは複数のアクションハンドラに送るようにさらに構成され、前記1つまたは複数のアクションハンドラは、前記1つまたは複数の追加メッセージに記述された前記追加の1つまたは複数のアクションを行うように構成される、
条項1に記載のシステム。
5.1つまたは複数のトリガを含む1つまたは複数のルールであって、当該トリガの1つまたは複数の条件は、複数のリソースを含むプロバイダネットワークで決定される、前記1つまたは複数のルールを決定することと、
前記1つまたは複数のトリガを含む前記1つまたは複数のルールに1つまたは複数のアクションを決定することと、
前記プロバイダネットワークの前記複数のリソースの1つまたは複数を修正することを含む、前記1つまたは複数のアクションを行うことと、
を含む、コンピュータ実施方法。
6.前記1つまたは複数のアクションを記述する1つまたは複数のメッセージを生成することと、
前記1つまたは複数のメッセージをメッセージングサービスに送信することと、
前記1つまたは複数のメッセージを前記メッセージングサービスから1つまたは複数のアクションハンドラに送ることと、
をさらに含む、条項5に記載の方法。
7.前記メッセージングサービスは、キューサービスを含み、前記1つまたは複数のメッセージは、前記キューサービスが管理する1つまたは複数のキューに配置され、前記1つまたは複数のメッセージは、前記1つまたは複数のキューからジョブディスパッチャによって取り除かれる、条項6に記載の方法。
8.前記1つまたは複数のトリガの少なくとも1つを含む追加のルールであって、キュー入れ替えを含む前記追加のルールを決定することと、
前記追加のルールの前記キュー入れ替えに少なくとも部分的に基づいて、キューメッセージをキューサービスに送信することと、
をさらに含む、条項5に記載の方法。
9.特定の時刻に追加のトリガをスケジューリングすることと、
前記特定の時刻になったことに応答して、前記追加のトリガを含む1つまたは複数の追加のルールに1つまたは複数の追加のアクションを決定することと、
前記1つまたは複数の追加のアクションを行うことと、
をさらに含む、条項5に記載の方法。
10.前記1つまたは複数のアクションを行うことに応答して、前記方法は、
1つまたは複数の追加のトリガを発動することと、
前記1つまたは複数の追加のトリガを含む1つまたは複数の追加のルールを決定することと、
前記1つまたは複数の追加のトリガを含む前記1つまたは複数の追加のルールに1つまたは複数の追加のアクションを決定することと、
前記1つまたは複数の追加のアクションを行うことと、
をさらに含む、条項5に記載の方法。
11.前記1つまたは複数の条件は、前記プロバイダネットワークの前記複数のリソースの監視に少なくとも部分的に基づいて決定され、前記監視は、1つまたは複数のサービスログの監視、1つまたは複数のサービスメトリックの監視、1つまたは複数のデータストリームの監視、1つまたは複数の警告状態の変更の監視、または、それらの組み合わせを含む、条項5に記載の方法。
12.複数のトリガと複数のアクションとに少なくとも部分的に基づいて、複数のルールを定義するユーザ入力を受信することをさらに含み、前記複数のルールは、それぞれ、前記トリガの各1つまたは複数と、前記アクションの各1つまたは複数とを含む、
条項5に記載の方法。
13.プログラム命令を記憶するコンピュータ可読記憶媒体であって、前記プログラム命令は、
複数のトリガと複数のアクションとに少なくとも部分的に基づいて、複数のルールであって、それぞれ、前記トリガの各1つまたは複数と、前記アクションの各1つまたは複数を含む、前記複数のルールを定義することと、
前記トリガの特定の1つまたは複数のための1つまたは複数の条件であって、複数のリソースを含むプロバイダネットワークにおいて決定される前記1つまたは複数の条件に合致することを決定することと、
前記トリガの前記特定の1つまたは複数を含む前記ルールの特定の1つまたは複数を決定することと、
前記トリガの前記特定の1つまたは複数を含む前記ルールの前記特定の1つまたは複数に前記アクションの特定の1つまたは複数を記述する1つまたは複数のメッセージを送信することと、を行うようにコンピュータによって実行可能であり、1つまたは複数のアクションハンドラが、前記1つまたは複数のメッセージを受信し、前記1つまたは複数のメッセージに記述された前記アクションの前記特定の1つまたは複数を行うように構成される、
前記コンピュータ可読記憶媒体。
14.前記1つまたは複数のメッセージを送信する際、前記プログラム命令は、
前記1つまたは複数のメッセージをメッセージングサービスに送信することと、
前記1つまたは複数のメッセージを前記メッセージングサービスから前記1つまたは複数のアクションハンドラに送ることと
を行うようにさらにコンピュータによって実行可能である、条項13に記載のコンピュータ可読記憶媒体。
15.前記ルールの少なくとも1つは、前記トリガの1つを前記アクションの複数に結合する、条項13に記載のコンピュータ可読記憶媒体。
16.前記プログラム命令は、
前記トリガの前記特定の1つまたは複数を含む前記ルールのうちの追加のルールであって、キュー入れ替えを含む前記追加のルールを決定することと、
前記ルールのうちの前記追加のルールの前記キュー入れ替えに少なくとも部分的に基づいて、キューメッセージをキューサービスに送信することと、
を行うようにさらにコンピュータによって実行可能である、条項13に記載のコンピュータ可読記憶媒体。
17.前記プログラム命令は、
特定の時刻に前記トリガのうちの追加のトリガをスケジューリングすることと、
前記トリガのうちの前記追加のトリガを含む前記ルールの追加の1つまたは複数に前記アクションの追加の1つまたは複数を記述する1つまたは複数の追加メッセージを送信することと、を行うようにさらにコンピュータによって実行可能であり、前記1つまたは複数のアクションハンドラは、前記1つまたは複数の追加メッセージを受信し、前記1つまたは複数の追加メッセージに記述された前記アクションのうちの前記追加の1つまたは複数を行うように構成される、
条項13に記載のコンピュータ可読記憶媒体。
18.前記1つまたは複数のメッセージに記述された前記アクションの前記特定の1つまたは複数を行うことに応答して、前記プログラム命令は、
前記トリガのうちの追加の1つまたは複数を発動することと、
前記トリガのうちの前記追加の1つまたは複数を含む前記ルールの追加の1つまたは複数を決定することと、
前記トリガのうちの前記追加の1つまたは複数を含む前記ルールの前記追加の1つまたは複数に前記アクションの追加の1つまたは複数を記述する1つまたは複数の追加メッセージを送信することと、
を行うように、さらにコンピュータによって実行可能で、前記1つまたは複数のアクションハンドラは、前記1つまたは複数の追加メッセージを受信し、前記1つまたは複数の追加メッセージに記述された前記アクションの前記追加の1つまたは複数を行うように構成される、条項13に記載のコンピュータ可読記憶媒体。
19.前記1つまたは複数の条件は、前記プロバイダネットワークの前記複数のリソースの監視に少なくとも部分的に基づいて決定され、前記監視は、1つまたは複数のサービスログの監視、1つまたは複数のサービスメトリックの監視、1つまたは複数のデータストリームの監視、1つまたは複数の警告状態の変更の監視、または、それらの組み合わせを含む、条項13に記載のコンピュータ可読記憶媒体。
20.前記複数のルールを定義する際、前記プログラム命令は、
前記複数のルールを定義するユーザ入力を受信すること
を行うようにさらにコンピュータによって実行可能であり、前記ユーザ入力は、1つもしくは複数の所定のアクション、1つもしくは複数のカスタムアクション、または、1つもしくは複数の所定のアクションと1つもしくは複数のカスタムアクション、からの選択を含む、条項13に記載のコンピュータ可読記憶媒体。
さらに、上記事項は、以下の追加の条項を考慮することによってよりよく理解されよう。
1.複数のサブサービスを実施するように構成された複数のコンピューティング装置と、ルーティングハンドラとを含むシステムであって、前記ルーティングハンドラは、
前記複数のサブサービスの特定のサブサービスの特定の動作を指定する要求をクライアントから受信することであって、前記複数のサブサービスは、ルールサブサービスとアクションサブサービスを含み、前記ルールサブサービスは、複数のトリガと複数のアクションを用いて複数のルールを定義する1つまたは複数の動作を含み、前記ルールの個々のルールは、前記トリガの各1つまたは複数を前記アクションの各1つまたは複数に結合させるように定義され、前記アクションサブサービスは、複数のリソースを含むプロバイダネットワークにおいて前記アクションを行う1つまたは複数の動作を含む、前記要求を前記クライアントから受信すること、
前記要求の前記特定の動作を決定すること、
前記特定の動作に少なくとも部分的に基づいて、前記サブサービスの前記特定のサブサービスを決定することであって、前記サブサービスの前記特定のサブサービスは、ルーティングマップを用いて決定され、前記ルーティングマップは、データストアから前記ルーティングハンドラに動的にロードされる、前記特定のサブサービスを決定すること、
前記要求を前記サブサービスの前記特定のサブサービスにルーティングすること、
前記サブサービスの前記特定のサブサービスから前記要求への応答を受信すること、且つ、
前記応答を前記クライアントに返信すること、
を行うように構成される、前記システム。
2.前記複数のサブサービスは、スケジューリングサブサービスを含み、前記スケジューリングサブサービスは、特定の時刻に前記アクションの個々のアクションをスケジューリングする1つまたは複数の動作を含む、条項1に記載のシステム。
3.前記ルールサブサービスの前記1つまたは複数の動作の修正、または、前記アクションサブサービスの前記1つまたは複数の動作の修正に応答して、前記ルーティングマップに少なくとも部分的に基づいて、更新されたルーティングマップが生成され、前記更新されたルーティングマップは、1つまたは複数の新しいまたは修正された動作から前記サブサービスの特定のサブサービスへのマッピングを含み、前記更新されたルーティングマップは、前記データストアに記憶される、条項1に記載のシステム。
4.前記特定のサブサービスは、前記ルールサブサービスを含み、前記特定の動作は、特定のトリガを発動する動作を含み、前記特定のトリガを発動する前記動作を行う際、前記ルールサブサービスは、
前記特定のトリガを含む前記ルールの特定の1つまたは複数を決定し、且つ、
前記特定のトリガを含む前記ルールの前記特定の1つまたは複数に前記アクションの特定の1つまたは複数を記述する1つまたは複数のメッセージを生成するように、
構成される、条項1に記載のシステム。
5.ルーティングハンドラにおいて、クライアントから、複数のサブサービスの特定のサブサービスの特定の動作を指定する要求を受信することであって、前記複数のサブサービスは、複数のルールを定義する1つまたは複数の動作を含み、前記ルールの個々のルールは、複数のトリガの各1つまたは複数を複数のアクションの各1つまたは複数に結合するように定義され、前記複数のサブサービスは、複数のリソースを含むプロバイダネットワークにおいて前記複数のアクションを行うための1つまたは複数の動作を含む、前記要求を受信することと、
前記ルーティングハンドラにおいて、前記要求の前記特定の動作を決定することと、
前記ルーティングハンドラにおいて、前記特定の動作に少なくとも部分的に基づいて、前記サブサービスの前記特定のサブサービスを決定することであって、前記サブサービスの前記特定のサブサービスは、前記ルーティングハンドラと1つまたは複数の追加のルーティングハンドラによって共有されるルーティングマップを用いて決定される、前記特定のサブサービスを決定することと、
前記要求を前記サブサービスの前記特定のサブサービスにルーティングすることと、
を含む、コンピュータ実施方法。
6.前記複数のサブサービスは、ルールサブサービスを含み、前記ルールサブサービスは、前記複数のルールを定義する前記1つまたは複数の動作を含み、前記ルールサブサービスは、前記トリガの1つまたは複数を発動する1つまたは複数の動作を含む、条項5に記載の方法。
7.前記複数のサブサービスは、アクションサブサービスを含み、前記アクションサブサービスは、前記複数のリソースを含む前記プロバイダネットワークにおいて前記複数のアクションを行うための前記1つまたは複数の動作を含む、条項5に記載の方法。
8.前記複数のサブサービスは、スケジューリングサブサービスを含み、前記スケジューリングサブサービスは、特定の時刻に前記アクションの個々のアクションをスケジューリングする1つまたは複数の動作を含む、条項5に記載の方法。
9.前記ルーティングマップは、データストアから前記ルーティングハンドラに動的にロードされ、前記方法は、
前記ルーティングマップに少なくとも部分的に基づいて、更新されたルーティングマップを生成することであって、前記更新されたルーティングマップは、1つまたは複数の新しいまたは修正された動作を前記サブサービスの特定のサブサービスにマッピングすることを含む、前記更新されたルーティングマップを生成することと、
前記更新されたルーティングマップを前記データストアに記憶することと、
をさらに含む、条項5に記載の方法。
10.前記特定のサブサービスは、ルールサブサービスを含み、前記特定の動作は、特定のトリガを発動する動作を含み、前記特定のトリガを発動する前記動作を行う際、前記方法は、
前記特定のトリガを含む前記ルールの特定の1つまたは複数を決定することと、
前記特定のトリガを含む前記ルールの前記特定の1つまたは複数に前記アクションの特定の1つまたは複数を記述する1つまたは複数のメッセージを生成することと、
をさらに含む、条項5に記載の方法。
11.前記ルーティングハンドラにおいて、前記サブサービスの前記特定のサブサービスからの前記要求への応答を受信することと、
前記応答を前記クライアントに返信することと、
をさらに含む、条項5に記載の方法。
12.前記要求は、特定のHTTPクライアントを用いて、前記サブサービスの前記特定のサブサービスにルーティングされ、追加の要求は、追加のHTTPクライアントを用いて前記サブサービスのうちの別のサブサービスにルーティングされる、条項5に記載の方法。
13.プログラム命令を記憶するコンピュータ可読記憶媒体であって、前記プログラム命令は、
ルーティングハンドラにおいてクライアントから複数のサブサービスの特定のサブサービスの特定の動作を指定する要求を受信することであって、前記複数のサブサービスは、複数のルールを定義する1つまたは複数の動作を含み、前記ルールの個々のルールは、複数のトリガの各1つまたは複数を複数のアクションの各1つまたは複数に結合するように定義され、前記複数のサブサービスは、複数のリソースを含むプロバイダネットワークにおいて前記複数のアクションを行うための1つまたは複数の動作を含む、前記要求を受信することと、
前記ルーティングハンドラにおいて、前記要求の前記特定の動作を決定することと、
前記ルーティングハンドラにおいて、前記特定の動作に少なくとも部分的に基づいて、前記サブサービスの前記特定のサブサービスを決定することであって、前記サブサービスの前記特定のサブサービスは、データストアからロードされ、前記ルーティングハンドラと1つまたは複数の追加のルーティングハンドラとによって共有されるルーティングマップを用いて、決定される、前記特定のサブサービスを決定することと、
前記サブサービスの前記特定のサブサービスに前記要求をルーティングすることと、
を行うようにコンピュータによって実行可能である、前記コンピュータ可読記憶媒体。
14.前記複数のサブサービスは、ルールサブサービスを含み、前記ルールサブサービスは、前記複数のルールを定義する前記1つまたは複数の動作を含み、前記ルールサブサービスは、前記トリガの1つまたは複数を発動するための1つまたは複数の動作を含む、条項13に記載のコンピュータ可読記憶媒体。
15.前記複数のサブサービスは、アクションサブサービスを含み、前記アクションサブサービスは、前記複数のリソースを含む前記プロバイダネットワークにおいて前記複数のアクションを行う前記1つまたは複数の動作を含む、条項13に記載のコンピュータ可読記憶媒体。
16.前記複数のサブサービスは、スケジューリングサブサービスを含み、前記スケジューリングサブサービスは、特定の時刻に前記アクションの個々のアクションをスケジューリングする1つまたは複数の動作を含む、条項13に記載のコンピュータ可読記憶媒体。
17.前記プログラム命令は、
前記ルーティングマップに少なくとも部分的に基づいて、更新されたルーティングマップを生成することであって、前記更新されたルーティングマップは、1つまたは複数の新しいまたは修正された動作を前記サブサービスの特定のサブサービスにマッピングすることを含む、前記更新されたルーティングマップを生成することと、
前記更新されたルーティングマップを前記データストアに記憶することと、
を行うようにさらにコンピュータによって実行可能である、条項13に記載のコンピュータ可読記憶媒体。
18.前記特定のサブサービスは、ルールサブサービスを含み、前記特定の動作は、特定のトリガを発動する動作を含み、前記特定のトリガを発動する前記動作を行う際、前記ルールサブサービスは、
前記特定のトリガを含む前記ルールの特定の1つまたは複数を決定することと、
前記特定のトリガを含む前記ルールの前記特定の1つまたは複数に前記アクションの特定の1つまたは複数を記述する1つまたは複数のメッセージを生成することと、
を行うように構成される、
条項13に記載のコンピュータ可読記憶媒体。
19.前記プログラム命令は、
前記サブサービスの前記特定のサブサービスから前記要求に対する応答を前記ルーティングハンドラにおいて受信することと、
前記応答を前記クライアントに返信することと、
を行うようにさらにコンピュータによって実行可能である、条項13に記載のコンピュータ可読記憶媒体。
20.前記要求は、特定のHTTPクライアントを用いて前記サブサービスの前記特定のサブサービスにルーティングされ、追加の要求は、追加のHTTPクライアントを用いて前記サブサービスの別のサブサービスにルーティングされ、前記特定のHTTPクライアントは、非同期入力/出力を用いて前記要求をルーティングするように構成される、条項13に記載のコンピュータ可読記憶媒体。
例示のコンピュータシステム
少なくとも一部の実施形態において、本明細書に記載の技術の1つまたは複数の一部または全てを実施するコンピュータシステムは、汎用コンピュータシステムを含んでよい。汎用コンピュータシステムは、1つまたは複数のコンピュータ可読媒体を含む、または、当該コンピュータ可読媒体にアクセスするように構成される。図16は、このような汎用コンピューティング装置3000を示す。図示の実施形態においては、コンピューティング装置3000は、入力/出力(I/O)インタフェース3030を介してシステムメモリ3020に接続された1つまたは複数のプロセッサ3010を含む。コンピューティング装置3000は、I/Oインタフェース3030に接続されたネットワークインタフェース3040をさらに含む。
様々な実施形態において、コンピューティング装置3000は、1つのプロセッサ3010を含むユニプロセッサシステム、または、幾つか(例えば、2、4、8、または、他の適切な数)のプロセッサ3010を含むマルチプロセッサシステムであってよい。プロセッサ3010は、命令を実行できる任意の適切なプロセッサを含んでよい。例えば、様々な実施形態において、プロセッサ3010は、x86、PowerPC、SPARC、または、MIPS ISA、または、任意の他の適切なISA等、様々な命令セットアーキテクチャ(ISA)のいずれかを実施する汎用または組み込みプロセッサであってよい。マルチプロセッサシステムにおいて、各プロセッサ3010は、必ずしも同じISAを実施しないが、通常は実施してもよい。
システムメモリ3020は、プロセッサ(複数可)3010によってアクセス可能なプログラム命令及びデータを記憶するように構成されてよい。様々な実施形態において、システムメモリ3020は、スタティックランダムアクセスメモリ(SRAM)、同期型ダイナミックRAM(SDRAM)、不揮発性/フラッシュ型メモリ、または、任意の他の種類のメモリ等、任意の適切なメモリ技術を使用して実施されてよい。図示の実施形態においては、上記の方法、技術、及び、データ等、1つまたは複数の所望の機能を実施するプログラム命令及びデータは、コード(すなわち、プログラム命令)3025及びデータ3026のように、システムメモリ3020内に記憶されていることが示されている。
一実施形態において、I/Oインタフェース3030は、ネットワークインタフェース3040または他の周辺インタフェースを含む、プロセッサ3010、システムメモリ3020、及び、装置内の任意の周辺機器間のI/Oトラフィックを調整するように構成されてよい。ある実施形態においては、I/Oインタフェース3030は、任意の必要なプロトコル、タイミング、または、他のデータの変換を行って、1つのコンポーネント(例えば、システムメモリ3020)からのデータ信号を別のコンポーネント(例えば、プロセッサ3010)での使用に適したフォーマットに変換してよい。ある実施形態においては、I/Oインタフェース3030は、例えば、周辺コンポーネントインターコネクト(PCI)バス規格またはユニバーサルシリアルバス(USB)規格の変形等、様々な種類の周辺バスを通して取り付けられる装置に対する支援を含んでよい。ある実施形態においては、I/Oインタフェース3030の機能は、例えば、ノースブリッジ及びサウスブリッジ等、2つまたは複数の別個のコンポーネントに分割されてよい。また、ある実施形態においては、システムメモリ3020へのインタフェース等、I/Oインタフェース3030の機能の一部または全ては、プロセッサ3010に直接、組み込まれてよい。
ネットワークインタフェース3040は、コンピューティング装置3000と、ネットワークまたはネットワーク3050に取り付けられた他の装置3060との間のデータ交換を可能にするように構成されてよい。様々な実施形態においては、ネットワークインタフェース3040は、例えば、イーサネット(登録商標)ネットワークの種類等、任意の適切な有線または無線の一般的なデータネットワークを介して通信を支援してよい。従って、ネットワークインタフェース3040は、アナログ音声ネットワークまたはデジタルファイバ通信ネットワーク等、テレコミュニケーション/テレフォニーネットワークを介して、ファイバーチャンネルSAN等、ストレージエリアネットワークを介して、または、任意の他の適切な種類のネットワーク及び/もしくはプロトコルを介して、通信を支援してよい。
ある実施形態においては、システムメモリ3020は、対応する方法及び装置の実施形態を実施するために上記プログラム命令及びデータを記憶するように構成されたコンピュータ可読(すなわち、コンピュータアクセス可能な)媒体の一実施形態であってよい。しかしながら、他の実施形態においては、プログラム命令及び/またはデータは、受信、送信、または、異なる種類のコンピュータ可読媒体に記憶されてよい。一般的に言えば、コンピュータ可読媒体は、I/Oインタフェース3030を介してコンピューティング装置3000に接続されたディスクまたはDVD/CD等、磁気または光学媒体等の非一時的記憶媒体またはメモリ媒体を含んでよい。非一時的コンピュータ可読記憶媒体は、システムメモリ3020または別の種類のメモリ等、コンピューティング装置3000のある実施形態に含まれ得る、RAM(例えば、SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等、任意の揮発性または不揮発性媒体も含んでよい。さらに、コンピュータ可読媒体は、ネットワークインタフェース3040を介して実施され得る等の、ネットワーク及び/または無線リンク等の通信媒体を介して伝達される、電気、電磁気、もしくは、デジタルの信号等、送信媒体または信号を含んでよい。様々な実施形態において、図16に示すコンピューティング装置等の複数のコンピューティング装置の一部または全てを使用して、様々な実施形態で記載の機能を実施してよい。例えば、様々な異なる装置及びサーバで実行しているソフトウェアコンポーネントは、協働して機能を提供してよい。ある実施形態においては、記載した機能の一部は、汎用コンピュータシステムを用いて実施することに加えて、または、それに代えて、記憶装置、ネットワーク装置、もしくは、専用コンピュータシステムを用いて実施してよい。本明細書で使用される「コンピューティング装置」という語は、少なくともこれらの種類の装置の全てを指すが、これらの種類の装置に限らない。
様々な実施形態は、コンピュータ可読媒体上で、上記記載に従って実施される命令及び/またはデータを受信、送信、または、記憶することをさらに含んでよい。一般的に言うと、コンピュータ可読媒体は、磁気または光学媒体等の記憶媒体またはメモリ媒体、例えば、ディスクまたはDVD/CD−ROMや、RAM(例えば、SDRAM、DDR、RDRAM、SRAM等)、ROM等の揮発性または不揮発性媒体を含んでよい。ある実施形態においては、コンピュータ可読媒体は、ネットワーク及び/または無線リンク等の通信媒体を介して伝達される、電気、電磁気、もしくは、デジタルの信号等、送信媒体または信号も含んでよい。
図に示し、本明細書に記載した様々な方法は、方法の実施形態例を表す。方法は、ソフトウェア、ハードウェア、または、それらの組み合わせで実施されてよい。様々な方法において、ステップの順序は、変更されてよく、様々な要素が追加、並べ替え、組み合わせ、省略、修正等されてよい。ステップのうちの様々なステップは、自動で(例えば、ユーザ入力によって直接、プロンプトされることなく)、及び/または、プログラムで(例えば、プログラム命令に従って)行われてよい。
本明細書の発明の記載で使用される語は、特定の実施形態の記載のみを目的としており、発明を制限することは意図していない。発明の記載及び請求項で使用される、単数形の「a」「an」「the」は、文脈から明らかに別の意味を示さない限り、複数形を含むものとする。本明細書で使用される「and/or(及び/または)」という語は、関連する列挙された項目の1つまたは複数のいずれかまたは全ての可能な組み合わせを指し、含むと理解されよう。「includes」「including」「comprises」、及び/または、「comprising」という語は、本明細書で使用される場合、記載した特徴、整数、ステップ、動作、要素、及び/または、コンポーネントの存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、及び/または、それらのグループの存在または追加を除外しないこともさらに理解されよう。
本明細書で使用する「if(の場合)」という語は、文脈に応じて、「when(時)」または「upon(すると)」または、「in response to determining(決定に応答して)」または「in response to detecting(検出に応答して)」を意味すると解釈されてよい。同様に、「if it is determined(と決定される場合)」または「if[a stated condition or event]is detected(記載の条件またはイベント)が検出された場合」という句は、文脈に応じて、「upon determining(決定すると)」または「in response to determining(決定に応答して)」または「(記載の条件またはイベント)を検出すると(upon detecting[the stated condition or event]」または「(記載された条件またはイベント)の検出に応答して(in response to detecting[the stated condition or event]」を意味すると解釈してよい。
第1、第2等の語が、様々な要素の記載に本明細書で使用され得るが、これらの要素は、これらの語によって限定されるべきではないことも理解されよう。これらの用語は、1つの要素と別の要素を区別するためにのみ用いられる。例えば、本発明の範囲を逸脱することなく、第1の接点は、第2の接点と称してもよく、同様に、第2の接点は、第1の接点と称してもよい。第1の接点と第2の接点は両方とも接点であるが、同じ接点ではない。
請求の主題が完全に分かるように、多くの具体的詳細を記載している。しかしながら、請求の主題は、これらの具体的詳細なしに実践してよいことを当業者は理解されよう。他の例では、当業者であれば知っている方法、装置、または、システムは、請求の主題を曖昧にしないように詳細に記載しなかった。本開示の利益を有する当業者にとっては明らかであるように、様々な修正及び変更を行ってよい。このような修正及び変更全てを含むことを意図しており、従って、上記記載は、制限的ではなく例示的な意味であるとみなすべきである。

Claims (15)

  1. ルールベースのアクショントリガリングシステムを実施するように構成された複数のコンピューティング装置と、複数のクライアントのそれぞれに複数のリソースを提供するように構成されたプロバイダネットワークとを含むシステムであって、前記ルールベースのアクショントリガリングシステムは、
    前記ルールベースのアクショントリガリングシステムを介して、及び、前記クライアントからの入力に従って、複数のトリガと複数のアクションに少なくとも部分的に基づいて、複数のルールを定義することであって、前記複数のルールのそれぞれは、前記トリガのうちの各1つまたは複数と前記アクションのうちの各1つまたは複数とを含む、前記複数のルールを定義することと、
    前記トリガのうちの特定のトリガを発動する要求を受信することであって、前記要求は、当該特定のトリガを発動するための1つまたは複数の条件が満たされると生成され、前記1つまたは複数の条件が満たされたかどうかは、前記プロバイダネットワークの前記複数のリソースの監視に少なくとも部分的に基づいて決定される、前記要求を受信することと、
    前記トリガのうちの前記特定のトリガを含む前記ルールのうちの特定の1つまたは複数を決定することと、
    前記トリガのうちの前記特定のトリガを含む前記ルールのうちの前記特定の1つまたは複数における前記アクションのうちの特定の1つまたは複数を記述する、1つまたは複数のメッセージを生成することと、
    前記1つまたは複数のメッセージをメッセージングサービスに送信することと、且つ、
    前記1つまたは複数のメッセージを前記メッセージングサービスから1つまたは複数のアクションハンドラに送ることと、
    を行うように構成され、前記1つまたは複数のアクションハンドラは、前記1つまたは複数のメッセージに記述された前記アクションの前記特定の1つまたは複数を行うように構成される、
    システム。
  2. 前記ルールベースのアクショントリガリングシステムは、
    前記トリガのうちの追加のトリガを発動する要求を受信することであって、前記追加のトリガは、前記特定の時刻にスケジューリングされている、前記追加のトリガを発動する要求を受信することと、
    前記トリガのうちの前記追加のトリガを含む前記ルールのうちの追加の1つまたは複数に前記アクションのうちの追加の1つまたは複数を記述する、1つまたは複数の追加メッセージを生成することと、
    前記1つまたは複数の追加メッセージを前記メッセージングサービスに送信することと、
    前記1つまたは複数の追加メッセージを前記メッセージングサービスから前記1つまたは複数のアクションハンドラに送ることと、を行うようにさらに構成され、前記1つまたは複数のアクションハンドラは、前記1つまたは複数の追加メッセージに記述された前記アクションの前記追加の1つまたは複数を行うように構成される、
    請求項1に記載のシステム。
  3. プログラム命令を記憶するコンピュータ可読記憶媒体であって、前記プログラム命令は、
    プロバイダネットワークのクライアントからの入力に従って、複数のトリガと複数のアクションに少なくとも部分的に基づいて、複数のルールを定義することであって、前記複数のルールのそれぞれは、前記トリガのうちの各1つまたは複数と前記アクションのうちの各1つまたは複数とを含む、前記複数のルールを定義することと、
    前記トリガのうちの特定の1つまたは複数のための1つまたは複数の条件が満たされていると決定することであって、前記1つまたは複数の条件が満たされているかどうかは、複数のリソースを含むプロバイダネットワークにおける前記複数のリソースの監視に少なくとも部分的に基づいて決定される、前記1つまたは複数の条件が満たされていると決定することと、
    前記トリガのうちの前記特定の1つまたは複数を含む前記ルールのうちの特定の1つまたは複数を決定することと、
    前記トリガのうちの前記特定の1つまたは複数を含む前記ルールのうちの前記特定の1つまたは複数における前記アクションのうちの特定の1つまたは複数を記述する、1つまたは複数のメッセージを送信することと、
    を行うようにコンピュータによって実行可能で、1つまたは複数のアクションハンドラが、前記1つまたは複数のメッセージを受信し、前記1つまたは複数のメッセージに記述された前記アクションのうちの前記特定の1つまたは複数を行うように構成される、
    コンピュータ可読記憶媒体。
  4. 前記1つまたは複数のメッセージを送信する際、前記プログラム命令は、
    前記1つまたは複数のメッセージをメッセージングサービスに送信することと、
    前記1つまたは複数のメッセージを前記メッセージングサービスから前記1つまたは複数のアクションハンドラに配信することと、
    を行うようにさらにコンピュータによって実行可能である、
    請求項3に記載のコンピュータ可読記憶媒体。
  5. 前記プログラム命令は、
    前記トリガのうちの前記特定の1つまたは複数を含む前記ルールのうちの追加のルールを決定することであって、前記追加のルールはキュー入れ替えを含む、前記追加のルールを決定することと、
    前記ルールのうちの前記追加のルールの前記キュー入れ替えに少なくとも部分的に基づいてキューメッセージをキューサービスに送信することと、
    を行うようにさらにコンピュータによって実行可能である、請求項3に記載のコンピュータ可読記憶媒体。
  6. 前記プログラム命令は、
    前記トリガのうちの追加のトリガを特定の時刻にスケジューリングすることと、
    前記トリガのうちの前記追加のトリガを含む前記ルールのうちの追加の1つまたは複数における、前記アクションのうちの追加の1つまたは複数を記述する1つまたは複数の追加メッセージを送信することと、
    を行うようにさらにコンピュータによって実行可能であり、前記1つまたは複数のアクションハンドラは、前記1つまたは複数の追加メッセージを受信し、前記1つまたは複数の追加メッセージに記述された前記アクションの前記追加の1つまたは複数を行うように構成される、請求項3に記載のコンピュータ可読記憶媒体。
  7. 前記監視は、1つまたは複数のサービスログの監視、1つまたは複数のサービスメトリックの監視、1つまたは複数のデータストリームの監視、1つまたは複数の警告状態の変更の監視、または、それらの組み合わせを含む、請求項3−6のいずれか一項に記載のコンピュータ可読記憶媒体。
  8. 前記複数のルールを定義する際、前記プログラム命令は、
    前記複数のルールを定義するユーザ入力の受信を行うようにさらにコンピュータによって実行可能で、前記ユーザ入力は、1つもしくは複数の所定のアクション、1つもしくは複数のカスタムアクション、または、1つもしくは複数の所定のアクションと1つもしくは複数のカスタムアクションからの選択を含む、請求項3に記載のコンピュータ可読記憶媒体。
  9. 複数のサブサービスを実施するように構成された複数のコンピューティング装置と、ルーティングハンドラと
    を含むシステムであって、前記ルーティングハンドラは、
    前記複数のサブサービスのうちの特定のサブサービスにおける特定の動作を指定する要求をクライアントから受信することであって、前記複数のサブサービスは、ルールサブサービスとアクションサブサービスを含み、前記ルールサブサービスは、複数のトリガと複数のアクションとを用いて複数のルールを定義するという1つまたは複数の動作を含み、前記ルールのうちの個々のルールは、前記トリガのうちの各1つまたは複数を前記アクションのうちの各1つまたは複数に結合するように定義され、前記アクションサブサービスは、複数のリソースを含むプロバイダネットワークにおいて前記複数のアクションを行うという1つまたは複数の動作を含む、前記要求を受信すること、
    前記要求における前記特定の動作を決定すること、
    前記特定の動作に少なくとも部分的に基づいて、前記サブサービスのうちの前記特定のサブサービスを決定することであって、前記サブサービスのうちの前記特定のサブサービスはルーティングマップを用いて決定され、前記ルーティングマップは、データストアから前記ルーティングハンドラに動的にロードされる、前記特定のサブサービスを決定すること、
    前記要求を前記サブサービスのうちの前記特定のサブサービスにルーティングすること、
    前記要求への応答を前記サブサービスのうちの前記特定のサブサービスから受信すること、
    前記応答を前記クライアントに返信すること、
    を行うように構成される、システム。
  10. 前記ルールサブサービスのうちの前記1つまたは複数の動作の修正、または、前記アクションサブサービスのうちの前記1つまたは複数の動作の修正に応答して、前記ルーティングマップに少なくとも部分的に基づいて、更新されたルーティングマップが生成され、前記更新されたルーティングマップは、1つまたは複数の新しいまたは修正された動作の前記サブサービスのうちの特定のサブサービスへのマッピングを含み、前記更新されたルーティングマップは、前記データストアに記憶される、請求項9に記載のシステム。
  11. 前記特定のサブサービスは、前記ルールサブサービスを含み、前記特定の動作は、特定のトリガを発動するという動作を含み、前記特定のトリガを発動するという前記動作を行う際、前記ルールサブサービスは、
    前記特定のトリガを含む前記ルールのうちの特定の1つまたは複数を決定し、且つ、
    前記特定のトリガを含む前記ルールのうちの前記特定の1つまたは複数における前記アクションのうちの特定の1つまたは複数を記述する、1つまたは複数のメッセージを生成する
    ように構成される、請求項9に記載のシステム。
  12. ルーティングハンドラにおいてクライアントから、複数のサブサービスのうちの特定のサブサービスにおける特定の動作を指定する要求を受信することであって、前記複数のサブサービスは、複数のルールを定義するという1つまたは複数の動作を含み、前記ルールのうちの個々のルールは、複数のトリガの各1つまたは複数を複数のアクションのうちの各1つまたは複数に結合するように定義され、前記複数のサブサービスは、複数のリソースを含むプロバイダネットワークにおいて前記複数のアクションを行うという1つまたは複数の動作を含む、前記要求を受信することと、
    前記ルーティングハンドラにおいて、前記要求における前記特定の動作を決定することと、
    前記ルーティングハンドラにおいて、前記特定の動作に少なくとも部分的に基づいて、前記サブサービスのうちの前記特定のサブサービスであって、前記ルーティングハンドラと1つまたは複数の追加のルーティングハンドラとによって共有されるルーティングマップを用いて決定される前記特定のサブサービスを決定することと、
    前記要求を前記サブサービスのうちの前記特定のサブサービスにルーティングすることと、
    を含む、コンピュータ実施方法。
  13. 前記複数のサブサービスは、ルールサブサービスを含み、前記ルールサブサービスは、前記複数のルールを定義する前記1つまたは複数の動作を含み、前記ルールサブサービスは、前記トリガの1つまたは複数を発動するという1つまたは複数の動作を含む、請求項12に記載の方法。
  14. 前記複数のサブサービスは、アクションサブサービスを含み、前記アクションサブサービスは、前記複数のリソースを含む前記プロバイダネットワークにおいて前記複数のアクションを行うという前記1つまたは複数の動作を含む、請求項12に記載の方法。
  15. 前記特定のサブサービスは、ルールサブサービスを含み、前記特定の動作は、特定のトリガを発動するという動作を含み、前記特定のトリガを発動するという前記動作を行う際、前記方法は、
    前記特定のトリガを含む前記ルールのうちの特定の1つまたは複数を決定することと、
    前記特定のトリガを含む前記ルールのうちの前記特定の1つまたは複数における前記アクションのうちの特定の1つまたは複数を記述する、1つまたは複数のメッセージを生成すること、
    をさらに含む、請求項12に記載の方法。
JP2017522498A 2014-10-30 2015-10-30 プロバイダネットワークにおけるルールベースのアクショントリガリングのためのシステム及びコンピュータ可読記憶媒体並びに方法 Active JP6588544B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/529,097 US10567476B2 (en) 2014-10-30 2014-10-30 Rule-based action triggering in a provider network
US14/529,096 2014-10-30
US14/529,096 US10397128B2 (en) 2014-10-30 2014-10-30 Routing handler for rule-based action triggering
US14/529,097 2014-10-30
PCT/US2015/058432 WO2016070108A1 (en) 2014-10-30 2015-10-30 Rule-based action triggering in a provider network

Publications (2)

Publication Number Publication Date
JP2017533513A JP2017533513A (ja) 2017-11-09
JP6588544B2 true JP6588544B2 (ja) 2019-10-09

Family

ID=54540237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017522498A Active JP6588544B2 (ja) 2014-10-30 2015-10-30 プロバイダネットワークにおけるルールベースのアクショントリガリングのためのシステム及びコンピュータ可読記憶媒体並びに方法

Country Status (8)

Country Link
EP (2) EP3588860A1 (ja)
JP (1) JP6588544B2 (ja)
KR (1) KR101999458B1 (ja)
CN (2) CN107148767B (ja)
AU (4) AU2015338947A1 (ja)
CA (1) CA2965520A1 (ja)
SG (1) SG11201703476TA (ja)
WO (1) WO2016070108A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10565034B2 (en) * 2017-12-29 2020-02-18 Futurewei Technologies, Inc. Event-driven serverless function orchestration
US10521280B2 (en) 2017-12-29 2019-12-31 Futurewei Technologies, Inc. Event-driven serverless function orchestration
CN109272400A (zh) * 2018-09-28 2019-01-25 阿里巴巴集团控股有限公司 资源处理方法及装置
US20230112996A1 (en) * 2020-04-30 2023-04-13 Intel Corporation Compilation for function as a service implementations distributed across server arrays
KR102560230B1 (ko) * 2023-02-16 2023-07-27 나무기술 주식회사 클라우드 기반의 클라이언트 운영 분석 결과를 기반으로 하는 모니터링 정책의 자동 처리 및 배포 방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7930340B2 (en) * 1995-11-13 2011-04-19 Lakshmi Arunachalam Network transaction portal to control multi-service provider transactions
US6308216B1 (en) * 1997-11-14 2001-10-23 International Business Machines Corporation Service request routing using quality-of-service data and network resource information
US6631363B1 (en) * 1999-10-11 2003-10-07 I2 Technologies Us, Inc. Rules-based notification system
EP1350176A2 (en) * 2000-07-06 2003-10-08 Homeportal, Inc. Method and system for controlling and coordinating devices and appliances, such as from a central portal and via a wide/area communications network
US8060587B2 (en) * 2001-10-05 2011-11-15 International Business Machines Corporation Methods and apparatus for launching device specific applications on storage area network components
US7702724B1 (en) * 2004-05-27 2010-04-20 Oracle America, Inc. Web services message broker architecture
JP4110129B2 (ja) * 2004-09-24 2008-07-02 株式会社日立製作所 コンピュータシステムの制御方法、コンピュータシステム、および、制御プログラム
US8635596B2 (en) * 2006-04-21 2014-01-21 Microsoft Corporation Model-based event processing
US20080115192A1 (en) * 2006-11-07 2008-05-15 Rajandra Laxman Kulkarni Customizable authentication for service provisioning
KR20110040934A (ko) * 2008-08-08 2011-04-20 이노패스 소프트웨어, 아이엔시. 지능형 모바일 디바이스 매니지먼트 클라이언트
CN101615015A (zh) * 2009-07-20 2009-12-30 南京联创科技股份有限公司 由监控告警自动触发控制动作的实现方法
US8787174B2 (en) * 2009-12-31 2014-07-22 Tekelec, Inc. Methods, systems, and computer readable media for condition-triggered policies
US9373246B2 (en) * 2010-02-04 2016-06-21 Schneider Electric It Corporation Alarm consolidation system and method
US8296411B2 (en) * 2010-03-01 2012-10-23 International Business Machines Corporation Programmatically determining an execution mode for a request dispatch utilizing historic metrics
US8484659B2 (en) * 2010-04-20 2013-07-09 Management Systems Resources, Inc. Distributed processing of binary objects via message queues including a failover safeguard
JP5731223B2 (ja) * 2011-02-14 2015-06-10 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 異常検知装置、監視制御システム、異常検知方法、プログラムおよび記録媒体
US8612599B2 (en) * 2011-09-07 2013-12-17 Accenture Global Services Limited Cloud service monitoring system
WO2014147692A1 (ja) * 2013-03-18 2014-09-25 株式会社日立製作所 監視対象装置、エージェントプログラム及び監視システム
CN103500094A (zh) * 2013-09-25 2014-01-08 北京大学 一种支持用户可视化自定义的服务平台监控模型

Also Published As

Publication number Publication date
CN112688816B (zh) 2023-04-28
EP3588860A1 (en) 2020-01-01
SG11201703476TA (en) 2017-05-30
CN107148767B (zh) 2021-01-12
KR101999458B1 (ko) 2019-07-11
JP2017533513A (ja) 2017-11-09
AU2022203400A1 (en) 2022-06-09
CN112688816A (zh) 2021-04-20
AU2015338947A1 (en) 2017-05-18
AU2020223693A1 (en) 2020-09-10
CA2965520A1 (en) 2016-05-06
AU2022203400B2 (en) 2023-07-06
WO2016070108A1 (en) 2016-05-06
CN107148767A (zh) 2017-09-08
AU2019200198A1 (en) 2019-01-31
KR20170077182A (ko) 2017-07-05
AU2020223693B2 (en) 2022-02-24
AU2019200198B2 (en) 2020-05-28
EP3213463B1 (en) 2019-08-14
EP3213463A1 (en) 2017-09-06

Similar Documents

Publication Publication Date Title
AU2019200198B2 (en) Rule-based action triggering in a provider network
US11757977B2 (en) Rule-based action triggering in a provider network
CN112256423B (zh) 分布式资源管理系统中的动态租户结构调整的系统、设备和过程
US9760420B1 (en) Fleet host rebuild service implementing vetting, diagnostics, and provisioning pools
JP6113747B2 (ja) ステートフル・アプリケーションの可用性の増加
CN105051698B (zh) 用于基础设施即服务云中故障管理的方法和布置
CN112416581B (zh) 定时任务的分布式调用系统
Sotiriadis et al. Vertical and horizontal elasticity for dynamic virtual machine reconfiguration
CN115812298A (zh) 供应故障的区块链管理
US11068487B2 (en) Event-stream searching using compiled rule patterns
US10397128B2 (en) Routing handler for rule-based action triggering
US11750710B2 (en) Management cluster with integration service for deploying and managing a service in tenant clusters
JP6322332B2 (ja) エネルギー管理システムおよび業務アプリケーションの実行方法
Battula Efficient resource management for fog computing
CN116781710A (zh) 伸缩容方法及装置、电子设备及介质
Rybka Fault Tolerant, Self-Healing and Vendor Neutral Multi-Cloud Patterns and Framework Focusing on Deployment and Management

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170425

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190422

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190813

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190912

R150 Certificate of patent or registration of utility model

Ref document number: 6588544

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250