背景技術(shù):
許多公司和其他組織運(yùn)營(yíng)互連許多計(jì)算系統(tǒng)以支持他們的操作的計(jì)算機(jī)網(wǎng)絡(luò),諸如其中所述計(jì)算系統(tǒng)共置(例如,作為本地網(wǎng)絡(luò)的一部分)或者替代地位于多個(gè)不同的地理位置中(例如,經(jīng)由一個(gè)或多個(gè)專用或公用中間網(wǎng)絡(luò)連接)。例如,容納大量互連的計(jì)算系統(tǒng)的分布式系統(tǒng)已變得平常。此類分布式系統(tǒng)可以向與客戶端交互的web服務(wù)器提供后端服務(wù)。此類分布式系統(tǒng)也可以包括由實(shí)體運(yùn)營(yíng)以向客戶提供計(jì)算資源的數(shù)據(jù)中心。一些數(shù)據(jù)中心運(yùn)營(yíng)商為由各種客戶擁有的硬件提供網(wǎng)絡(luò)訪問(wèn)、電力和安全安裝設(shè)施,然而其他數(shù)據(jù)中心運(yùn)營(yíng)商提供也包括可供由他們的客戶使用的硬件資源的“全服務(wù)”設(shè)施。
因?yàn)榉植际较到y(tǒng)的規(guī)模和范圍已增加,所以提供、經(jīng)營(yíng)和管理資源的任務(wù)已變得日益復(fù)雜。例如,當(dāng)分布式系統(tǒng)的各種組件出現(xiàn)問(wèn)題時(shí)維護(hù)常常是必要的。系統(tǒng)管理員往常以人工和自組織方式執(zhí)行此類維護(hù)任務(wù)。當(dāng)人工地執(zhí)行維護(hù)任務(wù)時(shí),結(jié)果可能是不必要地昂貴的且易于出錯(cuò)。附加地,可能需要系統(tǒng)管理員開(kāi)發(fā)并部署用于執(zhí)行維護(hù)任務(wù)的定制系統(tǒng)。
附圖說(shuō)明
圖1圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境。
圖2圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境的另外的方面。
圖3圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境(包括隊(duì)列服務(wù))的另外的方面。
圖4a圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境(包括觸發(fā)器到動(dòng)作的一對(duì)一映射)的另外的方面。
圖4b圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境(包括觸發(fā)器到動(dòng)作的一對(duì)多映射)的另外的方面。
圖4c圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境(包括觸發(fā)器到動(dòng)作的多對(duì)一映射)的另外的方面。
圖4d圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境(包括觸發(fā)器到動(dòng)作的多對(duì)多映射)的另外的方面。
圖5a圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境(包括觸發(fā)器到動(dòng)作以及也到隊(duì)列交換的映射)的另外的方面。
圖5b圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境(包括觸發(fā)器到隊(duì)列交換而非到動(dòng)作的映射)的另外的方面。
圖6是圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的方法的流程圖。
圖7是圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的消息觸發(fā)的方法的流程圖。
圖8是圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于調(diào)度的動(dòng)作觸發(fā)的方法的流程圖。
圖9圖示出根據(jù)一些實(shí)施例的用于基于規(guī)則的動(dòng)作觸發(fā)的路由處理程序的示例系統(tǒng)環(huán)境。
圖10圖示出根據(jù)一些實(shí)施例的用于基于規(guī)則的動(dòng)作觸發(fā)的路由處理程序的示例系統(tǒng)環(huán)境(包括動(dòng)態(tài)加載的路由圖的使用)的另外的方面。
圖11圖示出根據(jù)一些實(shí)施例的用于基于規(guī)則的動(dòng)作觸發(fā)的路由處理程序的示例系統(tǒng)環(huán)境(包括針對(duì)特定子服務(wù)的http客戶端的使用)的另外的方面。
圖12圖示出根據(jù)一些實(shí)施例的用于基于規(guī)則的動(dòng)作觸發(fā)的路由處理程序的示例系統(tǒng)環(huán)境(包括子服務(wù)的示例)的另外的方面。
圖13圖示出根據(jù)一些實(shí)施例的用于基于規(guī)則的動(dòng)作觸發(fā)的路由處理程序的示例系統(tǒng)環(huán)境(包括更新路由圖以反映對(duì)子服務(wù)的更新)的另外的方面。
圖14圖示出根據(jù)一些實(shí)施例的用于基于規(guī)則的動(dòng)作觸發(fā)的路由處理程序的示例系統(tǒng)環(huán)境(包括子服務(wù)和路由處理程序處的度量收集)的另外的方面。
圖15是圖示出根據(jù)一些實(shí)施例的用于使用用于基于規(guī)則的動(dòng)作觸發(fā)的路由處理程序的方法的流程圖。
圖16圖示出可以在一些實(shí)施例中使用的計(jì)算裝置的示例。
雖然在本文中針對(duì)數(shù)個(gè)實(shí)施例和說(shuō)明性附圖通過(guò)示例對(duì)實(shí)施例進(jìn)行描述,但是本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,實(shí)施例不限于所描述的實(shí)施例或附圖。應(yīng)該理解的是,附圖及其詳細(xì)描述不旨在將實(shí)施例限于所公開(kāi)的特定形式,而是相反,意圖是涵蓋落入如由所附權(quán)利要求所限定的精神和范圍內(nèi)的所有修改、等同物和替代方案。本文中所使用的標(biāo)題僅用于組織目的,而不旨在用于限制本說(shuō)明書或權(quán)利要求的范圍。如遍及本申請(qǐng)所使用的,單詞“可以”在允許意義(即,意指“有可能”)而不是強(qiáng)制意義(即,意指“必須”)上使用。類似地,單詞“包括”意指“包括但不限于”。
具體實(shí)施方式
描述了針對(duì)提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的方法和系統(tǒng)的各種實(shí)施例。使用本文中所描述的技術(shù),可以基于觸發(fā)器和動(dòng)作來(lái)定義規(guī)則。在一個(gè)實(shí)施例中,規(guī)則可以包括一個(gè)或多個(gè)觸發(fā)器和一個(gè)或多個(gè)動(dòng)作。提供商網(wǎng)絡(luò)中的資源可以在它們的操作期間被監(jiān)視。當(dāng)滿足任一個(gè)觸發(fā)器的條件時(shí),可以執(zhí)行與規(guī)則中的觸發(fā)器相關(guān)聯(lián)的任何動(dòng)作。為了發(fā)起動(dòng)作,可以生成描述動(dòng)作的消息并且將所述消息發(fā)送到消息傳送服務(wù)。例如,消息傳送服務(wù)可以包括隊(duì)列服務(wù),并且可以將消息放置在一個(gè)或多個(gè)隊(duì)列中??梢詫⑾南魉头?wù)遞送給執(zhí)行消息中所描述的動(dòng)作的一個(gè)或多個(gè)動(dòng)作處理程序。以這種方式,可以使提供商網(wǎng)絡(luò)中的維護(hù)任務(wù)或其他任務(wù)自動(dòng)化。
描述了用于基于規(guī)則的動(dòng)作觸發(fā)的路由處理程序的方法和系統(tǒng)的各種實(shí)施例。使用本文中所描述的技術(shù),路由處理程序可以將請(qǐng)求路由到各種子服務(wù)。路由處理程序可以使用從外部數(shù)據(jù)存儲(chǔ)中檢索到的路由圖來(lái)將請(qǐng)求中的特定操作映射到特定子服務(wù)。子服務(wù)可以包括用于基于規(guī)則的動(dòng)作觸發(fā)、對(duì)動(dòng)作進(jìn)行調(diào)度、基于規(guī)則執(zhí)行動(dòng)作和/或任何其他適合的任務(wù)的子服務(wù)。當(dāng)特定子服務(wù)處的一個(gè)或多個(gè)操作被更新時(shí),可以更新路由圖而不是路由處理程序它本身。路由處理程序可以是一隊(duì)路由處理程序的一部分。通過(guò)更新路由圖而不是整隊(duì)路由處理程序,可以高效地實(shí)現(xiàn)對(duì)子服務(wù)的更新。
提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)
圖1圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境?;谝?guī)則的動(dòng)作觸發(fā)系統(tǒng)100可以包括用于基于規(guī)則觸發(fā)和執(zhí)行動(dòng)作的多個(gè)組件。在一個(gè)實(shí)施例中,基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100可以包括觸發(fā)器定義功能110a、動(dòng)作定義功能110b和規(guī)則定義功能110c。數(shù)據(jù)存儲(chǔ)115可以存儲(chǔ)與使用觸發(fā)器定義功能110a、動(dòng)作定義功能110b和/或規(guī)則定義功能110c所定義的觸發(fā)器111a、動(dòng)作111b和規(guī)則111c相關(guān)聯(lián)的信息。數(shù)據(jù)存儲(chǔ)115可以使用任何適合的存儲(chǔ)技術(shù)(諸如數(shù)據(jù)庫(kù)管理技術(shù))來(lái)實(shí)現(xiàn)。
基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100還可以包括用戶接口105。在一個(gè)實(shí)施例中,用戶接口105可以使得用戶能夠使用觸發(fā)器定義功能110a、動(dòng)作定義功能110b和/或規(guī)則定義功能110c來(lái)定義和/或選擇觸發(fā)器111a、動(dòng)作111b和/或規(guī)則111c。例如,用戶接口105可以允許用戶選擇一個(gè)或多個(gè)預(yù)定義觸發(fā)器并且/或者定義一個(gè)或多個(gè)定制觸發(fā)器。類似地,用戶接口105可以允許用戶選擇一個(gè)或多個(gè)預(yù)定義動(dòng)作并且/或者定義一個(gè)或多個(gè)定制動(dòng)作。用戶接口105可以允許用戶定義一個(gè)或多個(gè)規(guī)則。在一個(gè)實(shí)施例中,可以將規(guī)則定義為包括一個(gè)或多個(gè)觸發(fā)器和一個(gè)或多個(gè)動(dòng)作。在一個(gè)實(shí)施例中,可以將規(guī)則定義為包括觸發(fā)器和消息交換。關(guān)于圖4a、圖4b、圖4c、圖4d、圖5a和圖5b在下面更詳細(xì)地討論觸發(fā)器111a、動(dòng)作111b和規(guī)則111c的定義。
基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100可以使用一個(gè)或多個(gè)計(jì)算裝置來(lái)實(shí)現(xiàn),所述一個(gè)或多個(gè)計(jì)算裝置中的任一個(gè)可以由圖16中所圖示的示例計(jì)算裝置3000來(lái)實(shí)現(xiàn)。在各種實(shí)施例中,基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100的功能的部分可以由同一計(jì)算裝置或者由任何適合數(shù)量的不同的計(jì)算裝置來(lái)提供。如果基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100的組件中的任一個(gè)使用不同的計(jì)算裝置來(lái)實(shí)現(xiàn),則所述組件及其相應(yīng)的計(jì)算裝置可以例如經(jīng)由網(wǎng)絡(luò)以通信方式耦合。所圖示的組件中的每一個(gè)可以表示可用于執(zhí)行它們相應(yīng)的功能的軟件和硬件的任何組合。設(shè)想了基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100可以包括未示出的附加組件、比所示更少的組件,或所示組件的不同的組合、配置或量。
基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100可以使用一個(gè)或多個(gè)網(wǎng)絡(luò)190或其他互連耦合到提供商網(wǎng)絡(luò)170。提供商網(wǎng)絡(luò)170可以包括諸如計(jì)算資源171a和171b至171n的多個(gè)計(jì)算資源。資源171a-171n可以包括任何適合數(shù)量和配置的計(jì)算實(shí)例和/或其他處理資源、存儲(chǔ)資源、數(shù)據(jù)庫(kù)資源、網(wǎng)絡(luò)資源、電力資源和/或其他適合類型的計(jì)算資源。盡管出于圖示的目的示出三個(gè)計(jì)算資源171a、171b和171n,然而設(shè)想了可以使用任何適合數(shù)量和配置的計(jì)算資源。提供商網(wǎng)絡(luò)170可以包括用于動(dòng)作的觸發(fā)器的源、觸發(fā)動(dòng)作的目標(biāo)和/或執(zhí)行觸發(fā)動(dòng)作的一個(gè)或多個(gè)動(dòng)作處理程序。
提供商網(wǎng)絡(luò)170可以由諸如公司或公共部門組織的實(shí)體運(yùn)營(yíng)以經(jīng)由互聯(lián)網(wǎng)和/或其他網(wǎng)絡(luò)向一組分布式客戶端提供資源(諸如資源171a-171n)和/或服務(wù)(諸如各種類型的基于云的計(jì)算或存儲(chǔ))。提供商網(wǎng)絡(luò)170可以包括托管各種資源池的許多數(shù)據(jù)中心,諸如物理和/或虛擬化計(jì)算機(jī)服務(wù)器、存儲(chǔ)裝置以及用于實(shí)現(xiàn)并分發(fā)由提供商提供的基礎(chǔ)設(shè)施和服務(wù)的聯(lián)網(wǎng)設(shè)備的集合。在一些實(shí)施例中,可以將資源按照被稱作“實(shí)例”(諸如虛擬或物理計(jì)算實(shí)例或存儲(chǔ)實(shí)例)的單元提供給客戶端。虛擬計(jì)算實(shí)例可以例如包括具有指定的計(jì)算容量(其可以通過(guò)指示cpu的類型和數(shù)量、主存儲(chǔ)器大小等來(lái)指定)和指定的軟件棧(例如,操作系統(tǒng)的特定版本,其可以進(jìn)而在管理程序之上運(yùn)行)的一個(gè)或多個(gè)服務(wù)器??梢詥为?dú)地或相結(jié)合地使用許多不同類型的計(jì)算裝置以在不同的實(shí)施例中實(shí)現(xiàn)提供商網(wǎng)絡(luò)170的資源,包括通用或?qū)S糜?jì)算機(jī)服務(wù)器、存儲(chǔ)裝置、網(wǎng)絡(luò)裝置等。
在一個(gè)實(shí)施例中,提供商網(wǎng)絡(luò)170可以為客戶端實(shí)現(xiàn)一組靈活的資源保留、控制和訪問(wèn)接口。例如,提供商網(wǎng)絡(luò)170可以實(shí)現(xiàn)允許客戶端了解資源、選擇資源、購(gòu)買對(duì)資源的訪問(wèn)和/或保留資源的程序資源保留接口(例如,經(jīng)由網(wǎng)站或一組網(wǎng)頁(yè))。在一個(gè)實(shí)施例中,可以使用客戶端可訪問(wèn)的服務(wù)來(lái)代表客戶端保留資源。在一個(gè)實(shí)施例中,提供商網(wǎng)絡(luò)170可以使用提供商網(wǎng)絡(luò)的選擇的資源池的一個(gè)或多個(gè)資源來(lái)代表客戶端執(zhí)行任務(wù)。在一個(gè)實(shí)施例中,可以基于各種任務(wù)的預(yù)期計(jì)算需要自動(dòng)地選擇資源池。在一個(gè)實(shí)施例中,可以基于由客戶端提交的特定資源請(qǐng)求或保留來(lái)選擇資源池。
提供商網(wǎng)絡(luò)170還可以包括監(jiān)視功能180。監(jiān)視功能180可以例如在資源的操作和/或使用期間監(jiān)視任一個(gè)資源。監(jiān)視功能180可以使用代理軟件或任何其他適合的技術(shù)來(lái)監(jiān)視個(gè)別資源。在一個(gè)實(shí)施例中,監(jiān)視提供商網(wǎng)絡(luò)中的資源可以包括監(jiān)視一個(gè)或多個(gè)服務(wù)日志、監(jiān)視一個(gè)或多個(gè)服務(wù)度量和/或監(jiān)視任何適合的數(shù)據(jù)流。在一個(gè)實(shí)施例中,監(jiān)視可以將與資源171a-171n的操作有關(guān)的性能度量、使用度量和/或其他適合的數(shù)據(jù)與預(yù)定閾值和/或警報(bào)進(jìn)行比較。任何適合的預(yù)定閾值和/或警報(bào)可以表示特定觸發(fā)器的一個(gè)或多個(gè)條件。當(dāng)計(jì)算資源的監(jiān)視指示滿足觸發(fā)器的任何條件時(shí),監(jiān)視功能180可以激發(fā)或者激活觸發(fā)器。監(jiān)視功能180可以基于閾值和/或警報(bào)確定對(duì)觸發(fā)器來(lái)說(shuō)已經(jīng)滿足條件。例如,監(jiān)視功能180可以檢測(cè)警報(bào)狀態(tài)改變并且作為結(jié)果可以使觸發(fā)器被激發(fā)。在一個(gè)實(shí)施例中,外部代理可以實(shí)現(xiàn)監(jiān)視功能180并且激發(fā)觸發(fā)器。在一個(gè)實(shí)施例中,提供商網(wǎng)絡(luò)170內(nèi)的服務(wù)可以實(shí)現(xiàn)監(jiān)視功能180并且激發(fā)觸發(fā)器。在一個(gè)實(shí)施例中,監(jiān)視功能180可以通過(guò)經(jīng)由適當(dāng)?shù)膽?yīng)用編程接口(api)向基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100發(fā)送請(qǐng)求來(lái)激發(fā)觸發(fā)器。
在一個(gè)實(shí)施例中,基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100可以包括規(guī)則實(shí)施功能120。規(guī)則實(shí)施功能120可以例如在接收到激發(fā)觸發(fā)器的請(qǐng)求之后按照激發(fā)的觸發(fā)器行動(dòng)。當(dāng)接收到激發(fā)觸發(fā)器的請(qǐng)求時(shí),規(guī)則實(shí)施功能120可以確定哪些規(guī)則(若有的話)包括觸發(fā)器。為了確定哪些規(guī)則包括觸發(fā)器,規(guī)則實(shí)施功能120可以參考數(shù)據(jù)存儲(chǔ)115中所存儲(chǔ)的規(guī)則、觸發(fā)器和/或其他適當(dāng)?shù)臄?shù)據(jù)。在檢索到包括經(jīng)激發(fā)的觸發(fā)器的任何規(guī)則之后,規(guī)則實(shí)施功能120可以確定所檢索到的規(guī)則中定義的任何動(dòng)作。規(guī)則實(shí)施功能120然后可以發(fā)起所檢索到的規(guī)則中定義的任何動(dòng)作或者以其他方式使動(dòng)作被執(zhí)行。當(dāng)發(fā)起動(dòng)作時(shí),規(guī)則實(shí)施功能120可以供應(yīng)動(dòng)作的元數(shù)據(jù)或參數(shù),例如,如在激發(fā)觸發(fā)器的請(qǐng)求中接收到的。以這種方式,當(dāng)特定觸發(fā)器被激活時(shí)基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100可以使用定義的規(guī)則來(lái)執(zhí)行特定動(dòng)作。
圖2圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境的另外的方面?;谝?guī)則的動(dòng)作觸發(fā)系統(tǒng)100可以包括消息生成功能130。當(dāng)由規(guī)則實(shí)施功能120調(diào)用時(shí),消息生成功能130可以生成描述待例如當(dāng)與動(dòng)作相關(guān)聯(lián)的觸發(fā)器被激發(fā)時(shí)執(zhí)行的動(dòng)作的消息145。消息生成功能130可以將消息145發(fā)送到消息傳送服務(wù)140??梢曰诮o任何激發(fā)的觸發(fā)器供應(yīng)的運(yùn)行時(shí)輸入?yún)?shù)和/或與動(dòng)作相關(guān)聯(lián)的缺省參數(shù)來(lái)生成消息。在一個(gè)實(shí)施例中,作業(yè)分配器150可以與消息傳送服務(wù)140交互以基于消息145分配作業(yè)。
在一個(gè)實(shí)施例中,動(dòng)作執(zhí)行環(huán)境160可以執(zhí)行在消息145中描述并且由作業(yè)分配器150分配的動(dòng)作。動(dòng)作執(zhí)行環(huán)境160可以包括用于執(zhí)行指令(包括腳本、工作流和/或編譯的程序代碼)的一個(gè)或多個(gè)環(huán)境。動(dòng)作執(zhí)行環(huán)境160可以包括一個(gè)或多個(gè)動(dòng)作處理程序,諸如動(dòng)作處理程序161a和161b至161n。盡管出于圖示的目的示出三個(gè)動(dòng)作處理程序161a、161b和161n,然而設(shè)想了可以使用任何數(shù)量的動(dòng)作處理程序。由動(dòng)作處理程序161a-161n執(zhí)行的動(dòng)作可以包括資源171a-171n和/或其組成要素中的任一個(gè)的任何適合的修改和/或配置。例如,當(dāng)特定觸發(fā)器被激發(fā)時(shí)動(dòng)作可以在提供商網(wǎng)絡(luò)170中自動(dòng)地終止、掛起或者重新啟動(dòng)計(jì)算實(shí)例。作為另一示例,當(dāng)向特定存儲(chǔ)位置、目錄或桶添加圖像文件時(shí)可以執(zhí)行動(dòng)作以自動(dòng)地重新調(diào)整圖像文件的大小至預(yù)定義寬度和預(yù)定義高度。動(dòng)作可以由動(dòng)作處理程序基于觸發(fā)器被激發(fā)、基于調(diào)度或者基于來(lái)自用戶或其他計(jì)算組件的請(qǐng)求來(lái)執(zhí)行。
在一個(gè)實(shí)施例中,基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100可以包括推薦引擎。推薦引擎可以使用機(jī)器學(xué)習(xí)技術(shù)來(lái)基于客戶資源使用模式和/或資源元數(shù)據(jù)向客戶推薦自動(dòng)化。推薦引擎還可以適應(yīng)客戶反應(yīng)并且隨著時(shí)間的推移而改進(jìn)推薦??梢允褂镁哂衼?lái)自客戶的輸入的反饋環(huán)和基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100中的流行趨勢(shì)來(lái)改進(jìn)推薦。
圖3圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境(包括隊(duì)列服務(wù))的另外的方面。在一個(gè)實(shí)施例中,消息傳送服務(wù)140可以使用管理一個(gè)或多個(gè)隊(duì)列的隊(duì)列服務(wù)來(lái)實(shí)現(xiàn)。描述待執(zhí)行的動(dòng)作的消息145可以被發(fā)送到消息傳送服務(wù)或者放置在一個(gè)或多個(gè)隊(duì)列中。盡管出于圖示的目的示出三個(gè)隊(duì)列141a、141b和141n,然而設(shè)想了可以使用任何適合數(shù)量的隊(duì)列。在一個(gè)實(shí)施例中,隊(duì)列141a可以是最初存儲(chǔ)由消息生成功能130生成的所有消息的主隊(duì)列,而其他隊(duì)列141b-141n可以僅在主隊(duì)列不足以處理所有消息的情況下用作備用隊(duì)列。
在一個(gè)實(shí)施例中,作業(yè)分配器150可以使用任務(wù)輪詢器151來(lái)實(shí)現(xiàn)。任務(wù)輪詢器151可以以適合的間隔輪詢一個(gè)或多個(gè)隊(duì)列以確定所述隊(duì)列是否包括消息,例如,描述待執(zhí)行的動(dòng)作的消息。任務(wù)輪詢器151可以在從主隊(duì)列141a接收到適當(dāng)?shù)腻e(cuò)誤消息時(shí)發(fā)起備用隊(duì)列141b-141n的使用。任務(wù)輪詢器151可以以特定間隔輪詢各個(gè)隊(duì)列141a-141n中的每一個(gè)。在一個(gè)實(shí)施例中,任務(wù)輪詢器151可以比備用隊(duì)列141b-141n更頻繁地輪詢主隊(duì)列141a。
圖4a圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境(包括觸發(fā)器到動(dòng)作的一對(duì)一映射)的另外的方面。如以上所討論的,數(shù)據(jù)存儲(chǔ)115可以存儲(chǔ)觸發(fā)器111a、動(dòng)作111b和規(guī)則111c。在圖4a中所示的示例中,觸發(fā)器111a可以包括觸發(fā)器400a和400b至400n。然而,設(shè)想了可以在數(shù)據(jù)存儲(chǔ)115中存儲(chǔ)任何適合數(shù)量的觸發(fā)器。
在圖4a中所示的示例中,動(dòng)作111b可以包括動(dòng)作配置410a和一個(gè)或多個(gè)附加動(dòng)作配置(未示出)。每個(gè)動(dòng)作配置(諸如動(dòng)作配置410a)可以包括動(dòng)作(諸如動(dòng)作411)、用于該動(dòng)作的任何缺省參數(shù)(諸如缺省參數(shù)412)以及該動(dòng)作所需的任何角色(諸如角色413)。動(dòng)作可以包括用于執(zhí)行一個(gè)或多個(gè)任務(wù)的功能的一個(gè)或多個(gè)命令、指令或其他調(diào)用。動(dòng)作可以與適用于動(dòng)作的所有調(diào)用的缺省參數(shù)相關(guān)聯(lián)。在一個(gè)實(shí)施例中,也可以在動(dòng)作被調(diào)用時(shí)為動(dòng)作的特定實(shí)例指定運(yùn)行時(shí)輸入?yún)?shù)。在一個(gè)實(shí)施例中,運(yùn)行時(shí)輸入?yún)?shù)可以擴(kuò)增但不覆寫缺省參數(shù)。例如,如果動(dòng)作涉及在圖像文件被添加時(shí)重新調(diào)整圖像文件的大小,則缺省參數(shù)可以包括目標(biāo)寬度和高度,而運(yùn)行時(shí)輸入?yún)?shù)可以包括圖像文件的存儲(chǔ)位置。角色可以包括允許動(dòng)作能夠在運(yùn)行時(shí)訪問(wèn)一組資源的權(quán)限或其他安全憑證。角色可以與任何特定用戶或用戶組無(wú)關(guān)并且可以表示機(jī)構(gòu)對(duì)所關(guān)聯(lián)的動(dòng)作的授權(quán)。
在圖4a中所示的示例中,規(guī)則111c可以包括規(guī)則420a和一個(gè)或多個(gè)附加規(guī)則(未示出)。規(guī)則420a可以指定觸發(fā)器中的一個(gè)(諸如觸發(fā)器400a)和動(dòng)作配置中的一個(gè),諸如動(dòng)作配置410a。當(dāng)觸發(fā)器400a被激發(fā)時(shí),規(guī)則實(shí)施功能120可以使用數(shù)據(jù)存儲(chǔ)115來(lái)確定觸發(fā)器400a是規(guī)則420a的一部分。規(guī)則實(shí)施功能120也可以使用數(shù)據(jù)存儲(chǔ)115來(lái)確定動(dòng)作配置410a也是規(guī)則420a的一部分,即,綁定到觸發(fā)器400a。規(guī)則實(shí)施功能120然后可以使所指定的動(dòng)作411以缺省參數(shù)412(和可選地運(yùn)行時(shí)輸入?yún)?shù))并且使用角色413來(lái)執(zhí)行。在一個(gè)實(shí)施例中,消息生成功能130可以生成指定動(dòng)作411、缺省參數(shù)412、任何運(yùn)行時(shí)輸入?yún)?shù)和角色413的消息。
圖4b圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境(包括觸發(fā)器到動(dòng)作的一對(duì)多映射)的另外的方面。在圖4b中所示的示例中,觸發(fā)器111a可以包括觸發(fā)器400a和400b至400n。然而,設(shè)想了可以在數(shù)據(jù)存儲(chǔ)115中存儲(chǔ)任何適合數(shù)量的觸發(fā)器。在圖4b中所示的示例中,動(dòng)作111b可以包括動(dòng)作配置410a和410b至410n。然而,設(shè)想了可以在數(shù)據(jù)存儲(chǔ)115中存儲(chǔ)任何適合數(shù)量的動(dòng)作配置。如以上所討論的,動(dòng)作配置410a-410n中的每一個(gè)可以包括動(dòng)作、用于該動(dòng)作的任何缺省參數(shù)和該動(dòng)作所需的任何角色。動(dòng)作配置410a-410n中的個(gè)別動(dòng)作配置可以表示相同的動(dòng)作(例如,具有不同的缺省參數(shù))或不同的動(dòng)作。
在一個(gè)實(shí)施例中,規(guī)則111c可以包括觸發(fā)器到動(dòng)作的一對(duì)多映射。在圖4b中所示的示例中,規(guī)則111c可以包括規(guī)則420a和420b。規(guī)則420a可以表示觸發(fā)器400a到動(dòng)作配置410a的綁定。規(guī)則420b可以表示相同的觸發(fā)器400a到不同的動(dòng)作配置410b的綁定。當(dāng)觸發(fā)器400a被激發(fā)時(shí),規(guī)則實(shí)施功能120可以使用數(shù)據(jù)存儲(chǔ)115來(lái)確定觸發(fā)器400a是規(guī)則420a和420b的一部分。規(guī)則實(shí)施功能120也可以使用數(shù)據(jù)存儲(chǔ)115來(lái)確定動(dòng)作配置410a是規(guī)則420a的一部分并且動(dòng)作配置410b是規(guī)則420b的一部分。規(guī)則實(shí)施功能120然后可以使兩個(gè)動(dòng)作配置410a和410b中所指定的動(dòng)作被執(zhí)行。在一個(gè)實(shí)施例中,消息生成功能130可以生成指定動(dòng)作、與動(dòng)作相關(guān)聯(lián)的缺省參數(shù)、任何運(yùn)行時(shí)輸入?yún)?shù)和任何必要的角色的一個(gè)或多個(gè)消息。
圖4c圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境(包括觸發(fā)器到動(dòng)作的多對(duì)一映射)的另外的方面。在圖4c中所示的示例中,觸發(fā)器111a可以包括觸發(fā)器400a和400b至400n。然而,設(shè)想了可以在數(shù)據(jù)存儲(chǔ)115中存儲(chǔ)任何適合數(shù)量的觸發(fā)器。在圖4c中所示的示例中,動(dòng)作111b可以包括動(dòng)作配置410a和410b至410n。然而,設(shè)想了可以在數(shù)據(jù)存儲(chǔ)115中存儲(chǔ)任何適合數(shù)量的動(dòng)作配置。如以上所討論的,動(dòng)作配置410a-410n中的每一個(gè)可以包括動(dòng)作、用于該動(dòng)作的任何缺省參數(shù)和該動(dòng)作所需的任何角色。
在一個(gè)實(shí)施例中,規(guī)則111c可以包括觸發(fā)器到動(dòng)作的多對(duì)一映射。在圖4c中所示的示例中,規(guī)則111c可以包括規(guī)則420a和420c。規(guī)則420a可以表示觸發(fā)器400a到動(dòng)作配置410a的綁定。規(guī)則420c可以表示不同的觸發(fā)器400b到相同的動(dòng)作配置410a的綁定。當(dāng)觸發(fā)器400a被激發(fā)時(shí),規(guī)則實(shí)施功能120可以使用數(shù)據(jù)存儲(chǔ)115來(lái)確定觸發(fā)器400a是規(guī)則420a的一部分。類似地,當(dāng)觸發(fā)器400b被激發(fā)時(shí),規(guī)則實(shí)施功能120可以使用數(shù)據(jù)存儲(chǔ)115來(lái)確定觸發(fā)器400b是規(guī)則420c的一部分。當(dāng)任何一個(gè)或兩個(gè)觸發(fā)器400a和/或400b被激發(fā)時(shí),規(guī)則實(shí)施功能120可以使用數(shù)據(jù)存儲(chǔ)115來(lái)確定動(dòng)作配置410a是規(guī)則420a的一部分并且動(dòng)作配置410a也是規(guī)則420c的一部分。如果觸發(fā)器400a或400b中的任何一個(gè)已被激發(fā)或者兩者已被激發(fā),則規(guī)則實(shí)施功能120然后可以使在動(dòng)作配置410a中所指定的動(dòng)作被執(zhí)行。在一個(gè)實(shí)施例中,消息生成功能130可以生成指定動(dòng)作、與該動(dòng)作相關(guān)聯(lián)的缺省參數(shù)、任何運(yùn)行時(shí)輸入?yún)?shù)和任何必要的角色的消息。
圖4d圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境(包括觸發(fā)器到動(dòng)作的多對(duì)多映射)的另外的方面。在圖4d中所示的示例中,觸發(fā)器111a可以包括觸發(fā)器400a和400b至400n。然而,設(shè)想了可以在數(shù)據(jù)存儲(chǔ)115中存儲(chǔ)任何適合數(shù)量的觸發(fā)器。在圖4d中所示的示例中,動(dòng)作111b可以包括動(dòng)作配置410a和410b至410n。然而,設(shè)想了可以在數(shù)據(jù)存儲(chǔ)115中存儲(chǔ)任何適合數(shù)量的動(dòng)作配置。如以上所討論的,動(dòng)作配置410a-410n中的每一個(gè)可以包括動(dòng)作、用于該動(dòng)作的任何缺省參數(shù)和該動(dòng)作所需的任何角色。
在一個(gè)實(shí)施例中,規(guī)則111c可以包括觸發(fā)器到動(dòng)作的多對(duì)多映射。在圖4d中所示的示例中,規(guī)則111c可以包括規(guī)則420a、420b、420c和420d。規(guī)則420a可以表示第一觸發(fā)器400a到第一動(dòng)作配置410a的綁定。規(guī)則420b可以表示第一觸發(fā)器400a到第二動(dòng)作配置410b的綁定。規(guī)則420c可以表示第二觸發(fā)器400b到第一動(dòng)作配置410a的綁定。規(guī)則420d可以表示第二觸發(fā)器400b到第二動(dòng)作配置410b的綁定。當(dāng)觸發(fā)器400a被激發(fā)時(shí),規(guī)則實(shí)施功能120可以使用數(shù)據(jù)存儲(chǔ)115來(lái)確定觸發(fā)器400a是規(guī)則420a和420b的一部分。規(guī)則實(shí)施功能120也可以使用數(shù)據(jù)存儲(chǔ)115來(lái)確定動(dòng)作配置410a是規(guī)則420a的一部分并且動(dòng)作配置410b是規(guī)則420b的一部分。類似地,當(dāng)觸發(fā)器400b被激發(fā)時(shí),規(guī)則實(shí)施功能120可以使用數(shù)據(jù)存儲(chǔ)115來(lái)確定觸發(fā)器400b是規(guī)則420c和420d的一部分。規(guī)則實(shí)施功能120也可以使用數(shù)據(jù)存儲(chǔ)115來(lái)確定動(dòng)作配置410a是規(guī)則420c的一部分并且動(dòng)作配置410b是規(guī)則420d的一部分。如果觸發(fā)器400a或400b中的任何一個(gè)已被激發(fā)或者兩者已被激發(fā),則規(guī)則實(shí)施功能120然后可以使動(dòng)作配置410a和410b中所指定的動(dòng)作被執(zhí)行。在一個(gè)實(shí)施例中,消息生成功能130可以生成指定動(dòng)作、與動(dòng)作相關(guān)聯(lián)的缺省參數(shù)、任何運(yùn)行時(shí)輸入?yún)?shù)和任何必要的角色的一個(gè)或多個(gè)消息。
圖5a圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境(包括觸發(fā)器到動(dòng)作以及也到隊(duì)列交換的映射)的另外的方面。在圖5a中所示的示例中,觸發(fā)器111a可以包括觸發(fā)器400a和400b至400n。然而,設(shè)想了可以在數(shù)據(jù)存儲(chǔ)115中存儲(chǔ)任何適合數(shù)量的觸發(fā)器。在圖5a中所示的示例中,動(dòng)作111b可以包括動(dòng)作配置410a和410b至410n。然而,設(shè)想了可以在數(shù)據(jù)存儲(chǔ)115中存儲(chǔ)任何適合數(shù)量的動(dòng)作配置。如以上所討論的,動(dòng)作配置410a-410n中的每一個(gè)可以包括動(dòng)作、用于該動(dòng)作的任何缺省參數(shù)和該動(dòng)作所需的任何角色。
在一個(gè)實(shí)施例中,規(guī)則111c可以包括觸發(fā)器到動(dòng)作的映射和觸發(fā)器到隊(duì)列交換的映射。在圖5a中所示的示例中,規(guī)則111c可以包括規(guī)則420a和420e。規(guī)則420a可以表示觸發(fā)器400a到動(dòng)作配置410a的綁定。規(guī)則420e可以表示相同的觸發(fā)器400a到隊(duì)列交換430的綁定。隊(duì)列交換430可以指定待生成的一個(gè)或多個(gè)隊(duì)列消息。當(dāng)觸發(fā)器400a被激發(fā)時(shí),規(guī)則實(shí)施功能120可以使用數(shù)據(jù)存儲(chǔ)115來(lái)確定觸發(fā)器400a是規(guī)則420a和420e的一部分。規(guī)則實(shí)施功能120也可以使用數(shù)據(jù)存儲(chǔ)115來(lái)確定動(dòng)作配置410a是規(guī)則420a的一部分并且隊(duì)列交換430是規(guī)則420b的一部分。規(guī)則實(shí)施功能120然后可以使動(dòng)作配置410a中所指定的動(dòng)作被執(zhí)行。在一個(gè)實(shí)施例中,消息生成功能130可以生成指定動(dòng)作、與動(dòng)作相關(guān)聯(lián)的缺省參數(shù)、任何運(yùn)行時(shí)輸入?yún)?shù)和任何必要的角色的一個(gè)或多個(gè)消息。附加地,規(guī)則實(shí)施功能120可以生成如由隊(duì)列交換430指定的隊(duì)列消息并且將該消息放置在隊(duì)列中或者以其他方式將該消息發(fā)送到消息傳送服務(wù)。例如,隊(duì)列消息可以表示觸發(fā)器400a在特定時(shí)間被激發(fā)或者動(dòng)作配置410a中的動(dòng)作被以特定參數(shù)并且在特定時(shí)間執(zhí)行的通知(例如,給管理員或日志)。
圖5b圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的示例系統(tǒng)環(huán)境(包括觸發(fā)器到隊(duì)列交換而非到動(dòng)作的映射)的另外的方面。在圖5b中所示的示例中,觸發(fā)器111a可以包括觸發(fā)器400a和400b至400n。然而,設(shè)想了可以在數(shù)據(jù)存儲(chǔ)115中存儲(chǔ)任何適合數(shù)量的觸發(fā)器。在圖5b中所示的示例中,動(dòng)作111b可以包括動(dòng)作配置410a和410b至410n。然而,設(shè)想了可以在數(shù)據(jù)存儲(chǔ)115中存儲(chǔ)任何適合數(shù)量的動(dòng)作配置。如以上所討論的,動(dòng)作配置410a-410n中的每一個(gè)可以包括動(dòng)作、用于該動(dòng)作的任何缺省參數(shù)和該動(dòng)作所需的任何角色。
在一個(gè)實(shí)施例中,規(guī)則111c可以包括觸發(fā)器到隊(duì)列交換的映射。在圖5b中所示的示例中,規(guī)則111c可以包括規(guī)則420f。規(guī)則420f可以表示觸發(fā)器400n到隊(duì)列交換430的綁定。隊(duì)列交換430可以指定待生成的一個(gè)或多個(gè)隊(duì)列消息??梢圆粚⑾嗤挠|發(fā)器400n綁定到動(dòng)作配置410a-410n中的任一個(gè)。當(dāng)觸發(fā)器400n被激發(fā)時(shí),規(guī)則實(shí)施功能120可以使用數(shù)據(jù)存儲(chǔ)115來(lái)確定觸發(fā)器400n是規(guī)則420f的一部分。規(guī)則實(shí)施功能120也可以使用數(shù)據(jù)存儲(chǔ)115來(lái)確定隊(duì)列交換430是規(guī)則420f的一部分。規(guī)則實(shí)施功能120可以生成如由隊(duì)列交換430指定的隊(duì)列消息并且將該消息放置在隊(duì)列中或者以其他方式將該消息發(fā)送到消息傳送服務(wù)。例如,隊(duì)列消息可以表示觸發(fā)器400n在特定時(shí)間被激發(fā)的通知(例如,給管理員或日志)。
圖6是圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的動(dòng)作觸發(fā)的方法的流程圖。如605中所示,可以基于多個(gè)觸發(fā)器和多個(gè)動(dòng)作來(lái)定義多個(gè)規(guī)則。在一個(gè)實(shí)施例中,特定規(guī)則包括一個(gè)或多個(gè)觸發(fā)器和一個(gè)或多個(gè)動(dòng)作??商娲兀囟ㄒ?guī)則可以包括觸發(fā)器和隊(duì)列交換。觸發(fā)器、動(dòng)作和/或規(guī)則可以由用戶使用預(yù)定義要素和/或定制要素來(lái)定義或者選擇。
如610中所示,可以監(jiān)視提供商網(wǎng)絡(luò)中的多個(gè)資源??梢员O(jiān)視資源以確定是否激發(fā)任一個(gè)觸發(fā)器。換句話說(shuō),可以在資源的操作或使用期間監(jiān)視提供商網(wǎng)絡(luò)中的條件以確定所述條件是否滿足任何觸發(fā)器。在一個(gè)實(shí)施例中,監(jiān)視提供商網(wǎng)絡(luò)中的資源可以包括監(jiān)視一個(gè)或多個(gè)服務(wù)日志、一個(gè)或多個(gè)服務(wù)度量和/或一個(gè)或多個(gè)其他數(shù)據(jù)流。監(jiān)視可以由任何適合的組件(諸如外部代理和/或服務(wù)本身)來(lái)執(zhí)行。如615中所示,可以基于監(jiān)視確定對(duì)特定一個(gè)或多個(gè)觸發(fā)器來(lái)說(shuō)已經(jīng)滿足條件。615中所示的操作可以包括將度量與閾值進(jìn)行比較、對(duì)日志進(jìn)行分析和/或檢測(cè)警報(bào)級(jí)改變。如果對(duì)觸發(fā)器來(lái)說(shuō)已經(jīng)滿足條件,則可以例如從執(zhí)行監(jiān)視的外部代理、服務(wù)或其他實(shí)體向基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)發(fā)送“激發(fā)觸發(fā)器”請(qǐng)求。
如620中所示,可以確定包括被激發(fā)的特定一個(gè)或多個(gè)觸發(fā)器的規(guī)則中的特定一個(gè)或多個(gè)??梢皂憫?yīng)于確定對(duì)特定一個(gè)或多個(gè)觸發(fā)器來(lái)說(shuō)滿足條件而確定特定一個(gè)或多個(gè)規(guī)則??梢酝ㄟ^(guò)基于規(guī)則內(nèi)定義的特定一個(gè)或多個(gè)觸發(fā)器從數(shù)據(jù)存儲(chǔ)中檢索規(guī)則來(lái)確定特定一個(gè)或多個(gè)規(guī)則。所述特定規(guī)則中的每一個(gè)還可以包括特定一個(gè)或多個(gè)動(dòng)作。
如625中所示,可以生成一個(gè)或多個(gè)消息。所述一個(gè)或多個(gè)消息可以描述也包括特定一個(gè)或多個(gè)觸發(fā)器的特定一個(gè)或多個(gè)規(guī)則中的特定一個(gè)或多個(gè)動(dòng)作。如630中所示,可以將所述一個(gè)或多個(gè)消息發(fā)送到消息傳送服務(wù)。在一個(gè)實(shí)施例中,消息傳送服務(wù)可以使用隊(duì)列服務(wù)來(lái)實(shí)現(xiàn),并且可以將所述一個(gè)或多個(gè)消息放置在由該隊(duì)列服務(wù)管理的一個(gè)或多個(gè)隊(duì)列中。
如635中所示,可以將所述一個(gè)或多個(gè)消息從消息傳送服務(wù)分配給一個(gè)或多個(gè)動(dòng)作處理程序。動(dòng)作處理程序可以是動(dòng)作執(zhí)行環(huán)境的一部分。如640中所示,一個(gè)或多個(gè)動(dòng)作處理程序可以執(zhí)行所述一個(gè)或多個(gè)消息中所描述的一個(gè)或多個(gè)動(dòng)作。在一個(gè)實(shí)施例中,執(zhí)行的動(dòng)作可以導(dǎo)致另一觸發(fā)器被激發(fā),使得針對(duì)不同的觸發(fā)器、不同的規(guī)則和/或不同的動(dòng)作再次執(zhí)行610至640中所示的操作。以這種方式,觸發(fā)器可以鏈接到其他觸發(fā)器以執(zhí)行動(dòng)作的復(fù)雜鏈。
圖7是圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于規(guī)則的消息觸發(fā)的方法的流程圖。如605中所示,可以基于多個(gè)觸發(fā)器和多個(gè)動(dòng)作來(lái)定義多個(gè)規(guī)則。在一個(gè)實(shí)施例中,特定規(guī)則包括一個(gè)或多個(gè)觸發(fā)器和一個(gè)或多個(gè)動(dòng)作??商娲兀囟ㄒ?guī)則可以包括觸發(fā)器和隊(duì)列交換。觸發(fā)器、動(dòng)作和/或規(guī)則可以由用戶使用預(yù)定義要素和/或定制要素來(lái)定義或者選擇。
如610中所示,可以監(jiān)視提供商網(wǎng)絡(luò)中的多個(gè)資源??梢员O(jiān)視資源以確定是否激發(fā)任一個(gè)觸發(fā)器。換句話說(shuō),可以在資源的操作或使用期間監(jiān)視提供商網(wǎng)絡(luò)中的條件以確定所述條件是否滿足任何觸發(fā)器。在一個(gè)實(shí)施例中,監(jiān)視提供商網(wǎng)絡(luò)中的資源可以包括監(jiān)視一個(gè)或多個(gè)服務(wù)日志、一個(gè)或多個(gè)服務(wù)度量和/或一個(gè)或多個(gè)其他數(shù)據(jù)流。監(jiān)視可以由任何適合的組件(諸如外部代理和/或服務(wù)本身)來(lái)執(zhí)行。如615中所示,可以基于監(jiān)視確定對(duì)特定一個(gè)或多個(gè)觸發(fā)器來(lái)說(shuō)已經(jīng)滿足條件。615中所示的操作可以包括將度量與閾值進(jìn)行比較、對(duì)日志進(jìn)行分析和/或檢測(cè)警報(bào)級(jí)改變。如果對(duì)觸發(fā)器來(lái)說(shuō)已經(jīng)滿足條件,則可以例如從執(zhí)行監(jiān)視的外部代理、服務(wù)或其他實(shí)體向基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)發(fā)送“激發(fā)觸發(fā)器”請(qǐng)求。
如720中所示,可以確定包括被激發(fā)的特定觸發(fā)器的特定規(guī)則。可以響應(yīng)于確定對(duì)特定觸發(fā)器來(lái)說(shuō)滿足條件而確定特定規(guī)則??梢酝ㄟ^(guò)基于規(guī)則內(nèi)定義的特定觸發(fā)器從數(shù)據(jù)存儲(chǔ)中檢索規(guī)則來(lái)確定特定規(guī)則。所述特定規(guī)則還可以包括指定要生成的一個(gè)或多個(gè)隊(duì)列消息的特定隊(duì)列交換。
如725中所示,可以基于特定規(guī)則中的隊(duì)列交換來(lái)生成隊(duì)列消息。如730中所示,可以將隊(duì)列消息發(fā)送到諸如隊(duì)列服務(wù)的消息傳送服務(wù)。在一個(gè)實(shí)施例中,隊(duì)列消息可以被放置在由隊(duì)列服務(wù)管理的一個(gè)或多個(gè)隊(duì)列中并且最終遞送給適當(dāng)?shù)慕邮辗健?/p>
圖8是圖示出根據(jù)一些實(shí)施例的提供商網(wǎng)絡(luò)中的基于調(diào)度的動(dòng)作觸發(fā)的方法的流程圖。如605中所示,可以基于多個(gè)觸發(fā)器和多個(gè)動(dòng)作來(lái)定義多個(gè)規(guī)則。在一個(gè)實(shí)施例中,特定規(guī)則包括一個(gè)或多個(gè)觸發(fā)器和一個(gè)或多個(gè)動(dòng)作??商娲兀囟ㄒ?guī)則可以包括觸發(fā)器和隊(duì)列交換。觸發(fā)器、動(dòng)作和/或規(guī)則可以由用戶使用預(yù)定義要素和/或定制要素來(lái)定義或者選擇。
如807中所示,可以針對(duì)特定時(shí)間對(duì)觸發(fā)器進(jìn)行調(diào)度。可以將觸發(fā)器作為一次性事件或者作為循環(huán)事件進(jìn)行調(diào)度。例如,可以每天在特定時(shí)間、每七天在特定時(shí)間、在每月的特定天或者以任何其他適合的間隔對(duì)觸發(fā)器進(jìn)行調(diào)度??梢宰詣?dòng)地或者基于用戶輸入對(duì)觸發(fā)器進(jìn)行調(diào)度。如810中所示,可以在提供商網(wǎng)絡(luò)中監(jiān)視時(shí)間的經(jīng)過(guò)以確定何時(shí)激發(fā)任何調(diào)度的觸發(fā)器。
如815中所示,可以基于監(jiān)視確定已到達(dá)激發(fā)特定調(diào)度的觸發(fā)器的時(shí)間。如果已到達(dá)觸發(fā)器的時(shí)間,則可以例如從執(zhí)行監(jiān)視的外部代理、服務(wù)或其他實(shí)體向基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)發(fā)送“激發(fā)觸發(fā)器”請(qǐng)求。如620中所示,可以確定包括被激發(fā)的特定調(diào)度的觸發(fā)器的規(guī)則中的特定一個(gè)或多個(gè)??梢皂憫?yīng)于確定對(duì)所述特定調(diào)度的觸發(fā)器來(lái)說(shuō)滿足條件而確定特定一個(gè)或多個(gè)規(guī)則??梢酝ㄟ^(guò)基于規(guī)則內(nèi)定義的特定調(diào)度的觸發(fā)器從數(shù)據(jù)存儲(chǔ)中檢索規(guī)則來(lái)確定特定一個(gè)或多個(gè)規(guī)則。所述特定規(guī)則中的每一個(gè)還可以包括特定一個(gè)或多個(gè)動(dòng)作。
如625中所示,可以生成一個(gè)或多個(gè)消息。所述一個(gè)或多個(gè)消息可以描述也包括特定調(diào)度的觸發(fā)器的特定一個(gè)或多個(gè)規(guī)則中的特定一個(gè)或多個(gè)動(dòng)作。如630中所示,可以將所述一個(gè)或多個(gè)消息發(fā)送到消息傳送服務(wù)。在一個(gè)實(shí)施例中,消息傳送服務(wù)可以使用隊(duì)列服務(wù)來(lái)實(shí)現(xiàn),并且可以將所述一個(gè)或多個(gè)消息放置在由該隊(duì)列服務(wù)管理的一個(gè)或多個(gè)隊(duì)列中。
如635中所示,可以將所述一個(gè)或多個(gè)消息從消息傳送服務(wù)分配給一個(gè)或多個(gè)動(dòng)作處理程序。動(dòng)作處理程序可以是動(dòng)作執(zhí)行環(huán)境的一部分。如640中所示,一個(gè)或多個(gè)動(dòng)作處理程序可以執(zhí)行所述一個(gè)或多個(gè)消息中所描述的一個(gè)或多個(gè)動(dòng)作。在一個(gè)實(shí)施例中,執(zhí)行的動(dòng)作可以導(dǎo)致另一觸發(fā)器被激發(fā),使得針對(duì)不同的觸發(fā)器、不同的規(guī)則和/或不同的動(dòng)作再次執(zhí)行610至640中所示的操作。以這種方式,觸發(fā)器可以鏈接到其他觸發(fā)器以執(zhí)行動(dòng)作的復(fù)雜鏈。
用于基于規(guī)則的動(dòng)作觸發(fā)的路由處理程序
圖9圖示出根據(jù)一些實(shí)施例的用于基于規(guī)則的動(dòng)作觸發(fā)的路由處理程序的示例系統(tǒng)環(huán)境。路由處理程序900可以將請(qǐng)求路由到以上所討論的組件中的各個(gè)組件,包括基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100的組件和由基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100使用的其他組件。路由處理程序900也可以被稱為基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100及其相關(guān)組件的代理。路由處理程序900將請(qǐng)求路由到的組件可以在本文中被稱為子服務(wù)。路由處理程序900可以將個(gè)別請(qǐng)求路由到多個(gè)子服務(wù)(諸如子服務(wù)950a和950b至950n)中的選擇的子服務(wù)。盡管出于圖示的目的示出三個(gè)子服務(wù)950a、950b和950n,然而設(shè)想了可以使用任何適合數(shù)量和配置的子服務(wù)。子服務(wù)950a-950n可以表示不同的子服務(wù)或同一子服務(wù)的不同版本。如圖9的示例中所示,所述子服務(wù)中的一個(gè)或多個(gè)(諸如子服務(wù)950a)可以實(shí)現(xiàn)基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100的功能的各方面。所述子服務(wù)中的其他子服務(wù)(諸如子服務(wù)950b和950n)可以實(shí)現(xiàn)由基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100調(diào)用的或者以其他方式與基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100相關(guān)聯(lián)的功能。以這種方式,路由處理程序900可以為與和以上所討論的基于規(guī)則的動(dòng)作觸發(fā)和/或基于調(diào)度的動(dòng)作觸發(fā)相關(guān)聯(lián)的各種不同的子服務(wù)950a-950n的交互提供統(tǒng)一的客戶體驗(yàn)。附加地,可以在不用更新和/或重新部署路由處理程序本身的情況下為一隊(duì)路由處理程序更新路由信息。
路由處理程序900可以例如通過(guò)網(wǎng)絡(luò)從一個(gè)或多個(gè)客戶端990接收請(qǐng)求901??蛻舳?90可以表示維護(hù)路由處理程序900的組織的外部客戶、維護(hù)路由處理程序900的組織的內(nèi)部客戶或子服務(wù)950a-950n中的任何適合的子服務(wù)。個(gè)別請(qǐng)求可以指定待由個(gè)別子服務(wù)執(zhí)行的操作。如將在下面更詳細(xì)地討論的,路由處理程序900可以確定子服務(wù)中的哪一個(gè)是任何特定請(qǐng)求的目標(biāo)。路由處理程序900然后可以例如通過(guò)網(wǎng)絡(luò)將請(qǐng)求路由到該特定子服務(wù)(例如,到實(shí)現(xiàn)該子服務(wù)的一個(gè)或多個(gè)主機(jī))。如果對(duì)請(qǐng)求的任何響應(yīng)由接收方子服務(wù)生成,則路由處理程序可以接收該響應(yīng)并且將它路由到發(fā)送了請(qǐng)求的客戶端。如圖9的示例中所示,路由處理程序900可以發(fā)送請(qǐng)求951a并從子服務(wù)950a接收響應(yīng)952a,可以發(fā)送請(qǐng)求951b并從子服務(wù)950b接收響應(yīng)952b,并且可以發(fā)送請(qǐng)求951n并從子服務(wù)950n接收響應(yīng)952n。從客戶端接收到的請(qǐng)求901可以共同地表示路由到子服務(wù)950a-950n的請(qǐng)求951a-951n。路由到客戶端的響應(yīng)902可以共同地表示從子服務(wù)950a-950n接收到的響應(yīng)952a-952n。
路由處理程序900可以使用一個(gè)或多個(gè)計(jì)算裝置來(lái)實(shí)現(xiàn),所述一個(gè)或多個(gè)計(jì)算裝置中的任一個(gè)可以由圖16中所圖示的示例計(jì)算裝置3000來(lái)實(shí)現(xiàn)。在各種實(shí)施例中,路由處理程序900的功能的部分可以由同一計(jì)算裝置或者由任何適合數(shù)量的不同的計(jì)算裝置來(lái)提供。如果路由處理程序900的組件中的任一個(gè)使用不同的計(jì)算裝置來(lái)實(shí)現(xiàn),則所述組件及其相應(yīng)的計(jì)算裝置可以例如經(jīng)由網(wǎng)絡(luò)以通信方式耦合。路由處理程序900可以是一隊(duì)路由處理程序的一部分。該隊(duì)路由處理程序中的其他路由處理程序可以被類似地配置并且/或者提供類似的功能。
子服務(wù)950a-950n中的每一個(gè)也可以使用一個(gè)或多個(gè)計(jì)算裝置來(lái)實(shí)現(xiàn),所述一個(gè)或多個(gè)計(jì)算裝置中的任一個(gè)可以由圖16中所圖示的示例計(jì)算裝置3000來(lái)實(shí)現(xiàn)。在各種實(shí)施例中,子服務(wù)950a-950n中的任一個(gè)的功能可以由同一計(jì)算裝置或者由任何適合數(shù)量的不同的計(jì)算裝置來(lái)提供。如果子服務(wù)950a-950n中的一個(gè)的組件中的任一個(gè)使用不同的計(jì)算裝置來(lái)實(shí)現(xiàn),則所述組件及其相應(yīng)的計(jì)算裝置可以例如經(jīng)由網(wǎng)絡(luò)以通信方式耦合。
圖10圖示出根據(jù)一些實(shí)施例的用于基于規(guī)則的動(dòng)作觸發(fā)的路由處理程序的示例系統(tǒng)環(huán)境(包括動(dòng)態(tài)加載的路由圖的使用)的另外的方面。路由處理程序900可以使用從外部數(shù)據(jù)存儲(chǔ)915中檢索到的路由圖916來(lái)將請(qǐng)求中的特定操作映射到特定子服務(wù)。數(shù)據(jù)存儲(chǔ)915可以使用任何適合的存儲(chǔ)技術(shù)來(lái)實(shí)現(xiàn)。在一個(gè)實(shí)施例中,路由處理程序900可以包括請(qǐng)求分析功能910、動(dòng)態(tài)路由配置功能920和操作至子服務(wù)映射功能930。設(shè)想了路由處理程序900可以包括未示出的附加組件、比所示更少的組件或所示組件的不同組合、配置或量。
在一個(gè)實(shí)施例中,請(qǐng)求分析功能910可以對(duì)傳入請(qǐng)求901執(zhí)行請(qǐng)求分析。使用任何適合的技術(shù),請(qǐng)求分析功能910可以確定傳入請(qǐng)求中所指定的一個(gè)或多個(gè)操作。例如,可以將傳入請(qǐng)求作為http(超文本傳輸協(xié)議)請(qǐng)求來(lái)接收,并且可以在該http請(qǐng)求的特定部分中指定操作。各種操作可以表示由各種子服務(wù)提供的各種api(應(yīng)用編程接口)。
在一個(gè)實(shí)施例中,動(dòng)態(tài)路由配置功能920可以維護(hù)最新的路由圖916。路由圖916可以被以適當(dāng)?shù)拈g隔從外部數(shù)據(jù)存儲(chǔ)915中檢索并且由動(dòng)態(tài)路由配置功能920緩存。路由圖916可以在路由處理程序900處動(dòng)態(tài)地加載,例如,在無(wú)需更新路由處理程序的程序代碼的情況下在路由處理程序的執(zhí)行期間加載,重新部署路由處理程序,或者重新啟動(dòng)路由處理程序。路由圖916可以表示特定操作名稱(或其他標(biāo)識(shí)符)到提供那些操作的特定子服務(wù)的映射。路由圖916可以使用鍵-值數(shù)據(jù)存儲(chǔ)來(lái)實(shí)現(xiàn),在所述鍵-值數(shù)據(jù)存儲(chǔ)中鍵表示操作名稱(或其他標(biāo)識(shí)符)并且所關(guān)聯(lián)的值表示子服務(wù)名稱(或其他標(biāo)識(shí)符)。在一個(gè)實(shí)施例中,多個(gè)路由處理程序(例如,在一隊(duì)路由處理程序中)可以例如通過(guò)緩存路由圖的不同副本來(lái)參考相同的路由圖916。
在一個(gè)實(shí)施例中,操作至子服務(wù)映射功能930可以使用路由圖916來(lái)確定傳入請(qǐng)求應(yīng)該被路由到的特定子服務(wù)。操作至子服務(wù)映射功能930可以在路由表916(如由動(dòng)態(tài)路由配置功能920所提供的)中查找特定操作(如由請(qǐng)求分析功能910所確定的)以確定提供請(qǐng)求中所命名的操作的特定子服務(wù)。路由處理程序900然后可以將請(qǐng)求路由到如由操作至子服務(wù)映射功能930所確定的適當(dāng)?shù)淖臃?wù)??梢詫⒂陕酚商幚沓绦?00從子服務(wù)接收到的任何響應(yīng)路由到發(fā)送了請(qǐng)求的客戶端。一隊(duì)主機(jī)可以實(shí)現(xiàn)特定子服務(wù),并且將請(qǐng)求路由到子服務(wù)可以包括將請(qǐng)求路由到與該子服務(wù)相關(guān)聯(lián)的負(fù)載均衡器。負(fù)載均衡器然后可以將請(qǐng)求路由到特定主機(jī)。
圖11圖示出根據(jù)一些實(shí)施例的用于基于規(guī)則的動(dòng)作觸發(fā)的路由處理程序的示例系統(tǒng)環(huán)境(包括針對(duì)特定子服務(wù)的http客戶端的使用)的另外的方面。在一個(gè)實(shí)施例中,可以將請(qǐng)求901表達(dá)為http請(qǐng)求,并且路由處理程序900可以使用多個(gè)http客戶端來(lái)與子服務(wù)950a-950n進(jìn)行通信。在一個(gè)實(shí)施例中,路由處理程序900可以每子服務(wù)或每子服務(wù)主機(jī)使用一個(gè)http客戶端。如圖11的示例中所示,路由處理程序900可以使用一個(gè)http客戶端940a來(lái)與子服務(wù)950a進(jìn)行通信,使用另一http客戶端940b來(lái)與子服務(wù)950b進(jìn)行通信,并且使用又一個(gè)http客戶端940n來(lái)與子服務(wù)950n進(jìn)行通信。然而,設(shè)想了可以使用任何適合數(shù)量和配置的http客戶端。當(dāng)路由處理程序900設(shè)法將請(qǐng)求路由到子服務(wù)950a-950n中的對(duì)應(yīng)一個(gè)時(shí)可以創(chuàng)建(例如,例示)或者重新使用http客戶端940a-940n中的任一個(gè)。
在一個(gè)實(shí)施例中,http客戶端可以在該http客戶端在將請(qǐng)求轉(zhuǎn)發(fā)到子服務(wù)中的一個(gè)之后等待響應(yīng)的同步模式下執(zhí)行。在一個(gè)實(shí)施例中,一個(gè)或多個(gè)http客戶端可以替代地在異步模式下執(zhí)行。在異步模式下,http客戶端中的一個(gè)或多個(gè)線程可以在所述一個(gè)或多個(gè)線程已用于將請(qǐng)求路由到子服務(wù)之后被返回給線程池。一個(gè)或多個(gè)隊(duì)列可以由路由處理程序900使用來(lái)從子服務(wù)接收響應(yīng)。以這種方式使用異步輸入/輸出(i/o),可以更高效地使用路由處理程序900處的資源。
圖12圖示出根據(jù)一些實(shí)施例的用于基于規(guī)則的動(dòng)作觸發(fā)的路由處理程序的示例系統(tǒng)環(huán)境(包括子服務(wù)的示例)的另外的方面。在各種實(shí)施例中,所述子服務(wù)可以包括用于基于規(guī)則的動(dòng)作觸發(fā)、對(duì)動(dòng)作進(jìn)行調(diào)度、基于規(guī)則執(zhí)行動(dòng)作和/或任何其他適合的任務(wù)的子服務(wù)。如圖12的示例中所示,路由處理程序900可以將請(qǐng)求路由到規(guī)則子服務(wù)950c、調(diào)度子服務(wù)950d和動(dòng)作子服務(wù)950e。規(guī)則子服務(wù)950c可以表示以上針對(duì)基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)100所描述的功能,例如,如以上關(guān)于圖1、圖2和圖3所討論的。例如,規(guī)則子服務(wù)950c可以定義將觸發(fā)器綁定到動(dòng)作并且可以激發(fā)觸發(fā)器以基于規(guī)則執(zhí)行動(dòng)作的規(guī)則。規(guī)則子服務(wù)950c可以接收從路由處理程序900路由的請(qǐng)求951c并且向該路由處理程序發(fā)送響應(yīng)952c。調(diào)度子服務(wù)950d可以對(duì)待在特定時(shí)間執(zhí)行的動(dòng)作進(jìn)行調(diào)度,例如,如以上關(guān)于圖8所討論的。調(diào)度子服務(wù)950d可以接收從路由處理程序900路由的請(qǐng)求951d并且向該路由處理程序發(fā)送響應(yīng)952d。動(dòng)作子服務(wù)950e可以表示以上針對(duì)動(dòng)作處理程序161a-161n和/或動(dòng)作執(zhí)行環(huán)境160所描述的功能,例如,如以上關(guān)于圖1、圖2和圖3所討論的。例如,動(dòng)作子服務(wù)950e可以對(duì)提供商網(wǎng)絡(luò)170中的資源171a-171n執(zhí)行基于規(guī)則的動(dòng)作和/或基于調(diào)度的動(dòng)作。動(dòng)作子服務(wù)950e可以接收從路由處理程序900路由的請(qǐng)求951e并且向該路由處理程序發(fā)送響應(yīng)952e。
圖13圖示出根據(jù)一些實(shí)施例的用于基于規(guī)則的動(dòng)作觸發(fā)的路由處理程序的示例系統(tǒng)環(huán)境(包括更新路由圖以反映對(duì)子服務(wù)的更新)的另外的方面。當(dāng)特定子服務(wù)處的一個(gè)或多個(gè)操作被更新時(shí),可以更新路由圖而不是路由處理程序它本身。路由處理程序可以是一隊(duì)路由處理程序的一部分。通過(guò)更新路由圖而不是整隊(duì)路由處理程序,可以高效地實(shí)現(xiàn)對(duì)子服務(wù)的更新。因此,如圖13中所示,更新的子服務(wù)950f可以替換或者補(bǔ)充另一子服務(wù)(例如,子服務(wù)950b)。與和路由處理程序900一起使用的較早版本相比,經(jīng)更新的子服務(wù)950f可以實(shí)現(xiàn)并向客戶端提供:一個(gè)或多個(gè)附加的操作、一個(gè)或多個(gè)更少的操作和/或一個(gè)或多個(gè)修改的操作。經(jīng)修改的操作可以反映與操作相關(guān)聯(lián)的操作名稱(或其他標(biāo)識(shí)符)和/或參數(shù)方面的差異。在一個(gè)實(shí)施例中,服務(wù)所有者960可以負(fù)責(zé)更新經(jīng)更新的子服務(wù)950f并且將經(jīng)更新的子服務(wù)950f添加到其業(yè)務(wù)由路由處理程序900管理的子服務(wù)的集合。當(dāng)經(jīng)更新的子服務(wù)950f被添加到由路由處理程序900管理的子服務(wù)的集合時(shí),服務(wù)所有者960也可以產(chǎn)生更新的路由圖917。經(jīng)更新的路由圖917可以表示特定操作名稱(或其他標(biāo)識(shí)符)到提供那些操作(包括針對(duì)經(jīng)更新的子服務(wù)950f的經(jīng)更新的操作)的特定子服務(wù)的映射。服務(wù)所有者960可以將經(jīng)更新的路由圖917存儲(chǔ)在數(shù)據(jù)存儲(chǔ)915中。在一個(gè)實(shí)施例中,服務(wù)所有者960可以提供任何適合的安全憑證以便用數(shù)據(jù)存儲(chǔ)915中的經(jīng)更新的路由圖917覆寫陳舊的路由圖916。
圖14圖示出根據(jù)一些實(shí)施例的用于基于規(guī)則的動(dòng)作觸發(fā)的路由處理程序的示例系統(tǒng)環(huán)境(包括子服務(wù)和路由處理程序處的度量收集)的另外的方面。在一個(gè)實(shí)施例中,個(gè)別子服務(wù)950a-950n可以收集與請(qǐng)求901的接收和/或處理有關(guān)的性能度量。如圖14的示例中所示,子服務(wù)950a可以包括度量收集功能955a,子服務(wù)950b可以包括度量收集功能955b,并且子服務(wù)950n可以包括度量收集功能955n。路由處理程序900也可以包括用于收集與它執(zhí)行的各種任務(wù)(包括路由請(qǐng)求901和響應(yīng)902)有關(guān)的性能度量的度量收集功能945。所收集的度量可以涉及網(wǎng)絡(luò)使用、處理器使用、存儲(chǔ)器使用、存儲(chǔ)使用、電力使用和/或其他資源使用。各種度量收集功能955a-955n和945可以將所收集的度量報(bào)告給任何適合的組件以用于聚合和/或分析。例如,為了測(cè)量用于請(qǐng)求的路由和處理的端到端延遲,可以從路由處理程序900和接收方子服務(wù)兩者收集請(qǐng)求的延遲度量。
在一個(gè)實(shí)施例中,子服務(wù)950a-950n中的個(gè)別子服務(wù)可以表示同一子服務(wù)的不同版本。例如,子服務(wù)950a-950n中的兩個(gè)可以表示規(guī)則子服務(wù)的較早版本和規(guī)則子服務(wù)的較新版本。路由處理程序900可以通過(guò)將一些請(qǐng)求路由到一個(gè)版本并且將其他請(qǐng)求路由到另一個(gè)版本來(lái)協(xié)助同一子服務(wù)的兩個(gè)版本的a/b測(cè)試??梢曰诳蛻舳税酌麊魏?或客戶端黑名單路由請(qǐng)求。在一個(gè)實(shí)施例中,對(duì)應(yīng)子服務(wù)處的度量收集功能以及路由處理程序900處的度量收集功能945可以用于例如通過(guò)確定同一子服務(wù)的兩個(gè)不同版本的相對(duì)性能來(lái)評(píng)估測(cè)試的結(jié)果。
圖15是圖示出根據(jù)一些實(shí)施例的用于使用用于基于規(guī)則的動(dòng)作觸發(fā)的路由處理程序的方法的流程圖。如1505中所示,可以在請(qǐng)求路由器處從客戶端接收請(qǐng)求。該請(qǐng)求可以指定特定子服務(wù)處的特定操作。如1510中所示,可以確定請(qǐng)求中的特定操作。在一個(gè)實(shí)施例中,可以使用請(qǐng)求分析來(lái)確定特定操作,例如,以標(biāo)識(shí)http請(qǐng)求中的操作名稱(或其他標(biāo)識(shí)符)。
如1515中所示,可以基于特定操作確定子服務(wù)中的特定一個(gè)。子服務(wù)中的特定一個(gè)可以使用表示操作名稱(或其他標(biāo)識(shí)符)與子服務(wù)名稱(或其他標(biāo)識(shí)符)之間的關(guān)聯(lián)的路由圖來(lái)確定??梢詮臄?shù)據(jù)存儲(chǔ)動(dòng)態(tài)地加載路由圖,使得一隊(duì)中的每個(gè)路由處理程序具有最新的路由信息。
如1520中所示,可以將請(qǐng)求從路由處理程序路由到特定子服務(wù)。如1525中所示,可以在路由處理程序處從特定子服務(wù)接收對(duì)請(qǐng)求的響應(yīng)。如1530中所示,可以將響應(yīng)從路由處理程序返回給客戶端。
可以鑒于以下條款更好地理解上文:
1.一種系統(tǒng),包括:
多個(gè)計(jì)算裝置,所述多個(gè)計(jì)算裝置被配置成實(shí)現(xiàn)基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)和包括多個(gè)資源的提供商網(wǎng)絡(luò),其中所述基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)被配置成:
至少部分地基于多個(gè)觸發(fā)器和多個(gè)動(dòng)作來(lái)定義多個(gè)規(guī)則,其中所述多個(gè)規(guī)則中的每一個(gè)包括相應(yīng)一個(gè)或多個(gè)所述觸發(fā)器和相應(yīng)一個(gè)或多個(gè)所述動(dòng)作;
接收激發(fā)特定一個(gè)所述觸發(fā)器的請(qǐng)求,其中用于激發(fā)所述特定一個(gè)所述觸發(fā)器的一個(gè)或多個(gè)條件是至少部分地基于對(duì)所述提供商網(wǎng)絡(luò)中的所述多個(gè)資源的監(jiān)視而確定的;
確定包括所述特定一個(gè)所述觸發(fā)器的特定一個(gè)或多個(gè)所述規(guī)則;
生成一個(gè)或多個(gè)消息,所述一個(gè)或多個(gè)消息描述包括所述特定一個(gè)所述觸發(fā)器的所述特定一個(gè)或多個(gè)所述規(guī)則中的特定一個(gè)或多個(gè)所述動(dòng)作;
將所述一個(gè)或多個(gè)消息發(fā)送到消息傳送服務(wù);以及
將所述一個(gè)或多個(gè)消息從所述消息傳送服務(wù)遞送給一個(gè)或多個(gè)動(dòng)作處理程序,其中所述一個(gè)或多個(gè)動(dòng)作處理程序被配置成執(zhí)行所述一個(gè)或多個(gè)消息中所描述的所述特定一個(gè)或多個(gè)所述動(dòng)作。
2.根據(jù)條款1所述的系統(tǒng),其中所述基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)還被配置成:
確定包括所述特定一個(gè)所述觸發(fā)器的附加的一個(gè)所述規(guī)則,其中所述附加的一個(gè)所述規(guī)則包括隊(duì)列交換;以及
至少部分地基于所述附加的一個(gè)所述規(guī)則中的所述隊(duì)列交換向隊(duì)列服務(wù)發(fā)送隊(duì)列消息。
3.根據(jù)條款1所述的系統(tǒng),其中所述基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)還被配置成:
接收激發(fā)附加的一個(gè)所述觸發(fā)器的請(qǐng)求,其中所述附加的一個(gè)所述觸發(fā)器是針對(duì)特定時(shí)間而調(diào)度的;
生成一個(gè)或多個(gè)附加消息,所述一個(gè)或多個(gè)附加消息描述包括所述附加的一個(gè)所述觸發(fā)器的附加的一個(gè)或多個(gè)所述規(guī)則中的附加的一個(gè)或多個(gè)所述動(dòng)作;
將所述一個(gè)或多個(gè)附加消息發(fā)送到所述消息傳送服務(wù);以及
將所述一個(gè)或多個(gè)附加消息從所述消息傳送服務(wù)遞送給所述一個(gè)或多個(gè)動(dòng)作處理程序,其中所述一個(gè)或多個(gè)動(dòng)作處理程序被配置成執(zhí)行所述一個(gè)或多個(gè)附加消息中所描述的所述附加的一個(gè)或多個(gè)所述動(dòng)作。
4.根據(jù)條款1所述的系統(tǒng),其中,響應(yīng)于所述一個(gè)或多個(gè)消息中所描述的所述特定一個(gè)或多個(gè)所述動(dòng)作,所述基于規(guī)則的動(dòng)作觸發(fā)系統(tǒng)還被配置成:
接收激發(fā)附加的一個(gè)或多個(gè)所述觸發(fā)器的請(qǐng)求;
確定包括所述附加的一個(gè)或多個(gè)所述觸發(fā)器的附加的一個(gè)或多個(gè)所述規(guī)則;
生成一個(gè)或多個(gè)附加消息,所述一個(gè)或多個(gè)附加消息描述包括所述附加的一個(gè)或多個(gè)所述觸發(fā)器的所述附加的一個(gè)或多個(gè)所述規(guī)則中的附加的一個(gè)或多個(gè)所述動(dòng)作;
將所述一個(gè)或多個(gè)附加消息發(fā)送到所述消息傳送服務(wù);以及
將所述一個(gè)或多個(gè)附加消息從所述消息傳送服務(wù)遞送給所述一個(gè)或多個(gè)動(dòng)作處理程序,其中所述一個(gè)或多個(gè)動(dòng)作處理程序被配置成執(zhí)行所述一個(gè)或多個(gè)附加消息中所描述的所述附加的一個(gè)或多個(gè)動(dòng)作。
5.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括:
確定包括一個(gè)或多個(gè)觸發(fā)器的一個(gè)或多個(gè)規(guī)則,其中在包括多個(gè)資源的提供商網(wǎng)絡(luò)中確定所述一個(gè)或多個(gè)觸發(fā)器的一個(gè)或多個(gè)條件;
確定包括所述一個(gè)或多個(gè)觸發(fā)器的所述一個(gè)或多個(gè)規(guī)則中的一個(gè)或多個(gè)動(dòng)作;以及
執(zhí)行所述一個(gè)或多個(gè)動(dòng)作,包括修改所述提供商網(wǎng)絡(luò)中的所述多個(gè)資源中的一個(gè)或多個(gè)。
6.根據(jù)條款5所述的方法,還包括:
生成描述所述一個(gè)或多個(gè)動(dòng)作的一個(gè)或多個(gè)消息;
將所述一個(gè)或多個(gè)消息發(fā)送到消息傳送服務(wù);以及
將所述一個(gè)或多個(gè)消息從所述消息傳送服務(wù)遞送給一個(gè)或多個(gè)動(dòng)作處理程序。
7.根據(jù)條款6所述的方法,其中所述消息傳送服務(wù)包括隊(duì)列服務(wù),其中所述一個(gè)或多個(gè)消息被放置在由所述隊(duì)列服務(wù)管理的一個(gè)或多個(gè)隊(duì)列中,并且其中所述一個(gè)或多個(gè)消息由作業(yè)分配器從所述一個(gè)或多個(gè)隊(duì)列中移除。
8.根據(jù)條款5所述的方法,還包括:
確定包括所述一個(gè)或多個(gè)觸發(fā)器中的至少一個(gè)的附加規(guī)則,其中所述附加規(guī)則包括隊(duì)列交換;以及
至少部分地基于所述附加規(guī)則中的所述隊(duì)列交換向隊(duì)列服務(wù)發(fā)送隊(duì)列消息。
9.根據(jù)條款5所述的方法,還包括:
針對(duì)特定時(shí)間對(duì)附加觸發(fā)器進(jìn)行調(diào)度;
響應(yīng)于所述特定時(shí)間的到達(dá),確定包括所述附加觸發(fā)器的一個(gè)或多個(gè)附加規(guī)則中的一個(gè)或多個(gè)附加動(dòng)作;以及
執(zhí)行所述一個(gè)或多個(gè)附加動(dòng)作。
10.根據(jù)條款5所述的方法,其中,響應(yīng)于執(zhí)行所述一個(gè)或多個(gè)動(dòng)作,所述方法還包括:
激發(fā)一個(gè)或多個(gè)附加觸發(fā)器;
確定包括所述一個(gè)或多個(gè)附加觸發(fā)器的一個(gè)或多個(gè)附加規(guī)則;
確定包括所述一個(gè)或多個(gè)附加觸發(fā)器的所述一個(gè)或多個(gè)附加規(guī)則中的一個(gè)或多個(gè)附加動(dòng)作;以及
執(zhí)行所述一個(gè)或多個(gè)附加動(dòng)作。
11.根據(jù)條款5所述的方法,其中所述一個(gè)或多個(gè)條件是至少部分地基于對(duì)所述提供商網(wǎng)絡(luò)中的所述多個(gè)資源的監(jiān)視而確定的,其中所述監(jiān)視包括監(jiān)視一個(gè)或多個(gè)服務(wù)日志、監(jiān)視一個(gè)或多個(gè)服務(wù)度量、監(jiān)視一個(gè)或多個(gè)數(shù)據(jù)流、監(jiān)視一個(gè)或多個(gè)警報(bào)狀態(tài)改變或其組合。
12.根據(jù)條款5所述的方法,還包括:
接收至少部分地基于多個(gè)觸發(fā)器和多個(gè)動(dòng)作來(lái)定義多個(gè)規(guī)則的用戶輸入,其中所述多個(gè)規(guī)則中的每一個(gè)包括相應(yīng)一個(gè)或多個(gè)所述觸發(fā)器和相應(yīng)一個(gè)或多個(gè)所述動(dòng)作。
13.一種存儲(chǔ)程序指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述程序指令可由計(jì)算機(jī)執(zhí)行以執(zhí)行:
至少部分地基于多個(gè)觸發(fā)器和多個(gè)動(dòng)作來(lái)定義多個(gè)規(guī)則,其中所述多個(gè)規(guī)則中的每一個(gè)包括相應(yīng)一個(gè)或多個(gè)所述觸發(fā)器和相應(yīng)一個(gè)或多個(gè)所述動(dòng)作;
確定對(duì)特定一個(gè)或多個(gè)所述觸發(fā)器來(lái)說(shuō)滿足一個(gè)或多個(gè)條件,其中在包括多個(gè)資源的提供商網(wǎng)絡(luò)中確定所述一個(gè)或多個(gè)條件;
確定包括所述特定一個(gè)或多個(gè)所述觸發(fā)器的特定一個(gè)或多個(gè)所述規(guī)則;以及
發(fā)送一個(gè)或多個(gè)消息,所述一個(gè)或多個(gè)消息描述包括所述特定一個(gè)或多個(gè)所述觸發(fā)器的所述特定一個(gè)或多個(gè)所述規(guī)則中的特定一個(gè)或多個(gè)所述動(dòng)作,其中一個(gè)或多個(gè)動(dòng)作處理程序被配置成接收所述一個(gè)或多個(gè)消息并且執(zhí)行所述一個(gè)或多個(gè)消息中所描述的所述特定一個(gè)或多個(gè)所述動(dòng)作。
14.根據(jù)條款13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,在發(fā)送所述一個(gè)或多個(gè)消息時(shí),所述程序指令還可由計(jì)算機(jī)執(zhí)行以執(zhí)行:
將所述一個(gè)或多個(gè)消息發(fā)送到消息傳送服務(wù);以及
將所述一個(gè)或多個(gè)消息從所述消息傳送服務(wù)遞送給所述一個(gè)或多個(gè)動(dòng)作處理程序。
15.根據(jù)條款13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述規(guī)則中的至少一個(gè)將所述觸發(fā)器中的一個(gè)綁定到所述動(dòng)作中的多個(gè)。
16.根據(jù)條款13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述程序指令還可由計(jì)算機(jī)執(zhí)行以執(zhí)行:
確定包括所述特定一個(gè)或多個(gè)所述觸發(fā)器的附加的一個(gè)所述規(guī)則,其中所述附加的一個(gè)所述規(guī)則包括隊(duì)列交換;以及
至少部分地基于所述附加的一個(gè)所述規(guī)則中的所述隊(duì)列交換向隊(duì)列服務(wù)發(fā)送隊(duì)列消息。
17.根據(jù)條款13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述程序指令還可由計(jì)算機(jī)執(zhí)行以執(zhí)行:
針對(duì)特定時(shí)間對(duì)附加的一個(gè)所述觸發(fā)器進(jìn)行調(diào)度;以及
發(fā)送一個(gè)或多個(gè)附加消息,所述一個(gè)或多個(gè)附加消息描述包括所述附加的一個(gè)所述觸發(fā)器的附加的一個(gè)或多個(gè)所述規(guī)則中的附加的一個(gè)或多個(gè)所述動(dòng)作,其中所述一個(gè)或多個(gè)動(dòng)作處理程序被配置成接收所述一個(gè)或多個(gè)附加消息并且執(zhí)行所述一個(gè)或多個(gè)附加消息中所描述的所述附加的一個(gè)或多個(gè)所述動(dòng)作。
18.根據(jù)條款13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,響應(yīng)于執(zhí)行所述一個(gè)或多個(gè)消息中所描述的所述特定一個(gè)或多個(gè)所述動(dòng)作,所述程序指令還可由計(jì)算機(jī)執(zhí)行以執(zhí)行:
激發(fā)附加的一個(gè)或多個(gè)所述觸發(fā)器;
確定包括所述附加的一個(gè)或多個(gè)所述觸發(fā)器的附加的一個(gè)或多個(gè)所述規(guī)則;
發(fā)送一個(gè)或多個(gè)附加消息,所述一個(gè)或多個(gè)附加消息描述包括所述附加的一個(gè)或多個(gè)所述觸發(fā)器的所述附加的一個(gè)或多個(gè)所述規(guī)則中的附加的一個(gè)或多個(gè)所述動(dòng)作,其中所述一個(gè)或多個(gè)動(dòng)作處理程序被配置成接收所述一個(gè)或多個(gè)附加消息并且執(zhí)行所述一個(gè)或多個(gè)附加消息中所描述的所述附加的一個(gè)或多個(gè)所述動(dòng)作。
19.根據(jù)條款13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述一個(gè)或多個(gè)條件是至少部分地基于對(duì)所述提供商網(wǎng)絡(luò)中的所述多個(gè)資源的監(jiān)視而確定的,其中所述監(jiān)視包括監(jiān)視一個(gè)或多個(gè)服務(wù)日志、監(jiān)視一個(gè)或多個(gè)服務(wù)度量、監(jiān)視一個(gè)或多個(gè)數(shù)據(jù)流、監(jiān)視一個(gè)或多個(gè)警報(bào)狀態(tài)改變或其組合。
20.根據(jù)條款13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,在定義所述多個(gè)規(guī)則時(shí),所述程序指令還可由計(jì)算機(jī)執(zhí)行以執(zhí)行:
接收定義所述多個(gè)規(guī)則的用戶輸入,其中所述用戶輸入包括對(duì)一個(gè)或多個(gè)預(yù)定義動(dòng)作、一個(gè)或多個(gè)定制動(dòng)作或者一個(gè)或多個(gè)預(yù)定義動(dòng)作和一個(gè)或多個(gè)定制動(dòng)作的選擇。
此外,可以鑒于以下附加條款更好地理解上文:
1.一種系統(tǒng),包括:
多個(gè)計(jì)算裝置,所述多個(gè)計(jì)算裝置被配置成實(shí)現(xiàn)多個(gè)子服務(wù)和路由處理程序,并且其中所述路由處理程序被配置成:
從客戶端接收指定所述多個(gè)子服務(wù)中的特定一個(gè)處的特定操作的請(qǐng)求,其中所述多個(gè)子服務(wù)包括規(guī)則子服務(wù)和動(dòng)作子服務(wù),其中所述規(guī)則子服務(wù)包括用于使用多個(gè)觸發(fā)器和多個(gè)動(dòng)作來(lái)定義多個(gè)規(guī)則的一個(gè)或多個(gè)操作,其中所述規(guī)則中的個(gè)別規(guī)則被定義成將相應(yīng)一個(gè)或多個(gè)所述觸發(fā)器綁定到相應(yīng)一個(gè)或多個(gè)所述動(dòng)作,并且其中所述動(dòng)作子服務(wù)包括用于在包括多個(gè)資源的提供商網(wǎng)絡(luò)中執(zhí)行所述動(dòng)作的一個(gè)或多個(gè)操作;
確定所述請(qǐng)求中的所述特定操作;
至少部分地基于所述特定操作確定所述子服務(wù)中的所述特定一個(gè),其中所述子服務(wù)中的所述特定一個(gè)是使用路由圖來(lái)確定,其中所述路由圖被從數(shù)據(jù)存儲(chǔ)動(dòng)態(tài)地加載到所述路由處理程序;
將所述請(qǐng)求路由到所述子服務(wù)中的所述特定一個(gè);
從所述子服務(wù)中的所述特定一個(gè)接收對(duì)所述請(qǐng)求的響應(yīng);以及
將所述響應(yīng)返回給所述客戶端。
2.根據(jù)條款1所述的系統(tǒng),其中所述多個(gè)子服務(wù)包括調(diào)度子服務(wù),其中所述調(diào)度子服務(wù)包括用于在特定時(shí)間對(duì)所述動(dòng)作中的個(gè)別動(dòng)作進(jìn)行調(diào)度的一個(gè)或多個(gè)操作。
3.根據(jù)條款1所述的系統(tǒng),其中,響應(yīng)于所述一個(gè)或多個(gè)操作在所述規(guī)則子服務(wù)處的修改或所述一個(gè)或多個(gè)操作在所述動(dòng)作子服務(wù)處的修改,至少部分地基于所述路由圖來(lái)生成更新的路由圖,其中所述更新的路由圖包括一個(gè)或多個(gè)新的或修改的操作到所述子服務(wù)中的特定一個(gè)的映射,并且其中所述更新的路由圖被存儲(chǔ)在所述數(shù)據(jù)存儲(chǔ)中。
4.根據(jù)條款1所述的系統(tǒng),其中所述特定子服務(wù)包括所述規(guī)則子服務(wù),其中所述特定操作包括激發(fā)特定觸發(fā)器的操作,并且其中,在執(zhí)行所述激發(fā)所述特定觸發(fā)器的操作時(shí),所述規(guī)則子服務(wù)被配置成:
確定包括所述特定觸發(fā)器的特定一個(gè)或多個(gè)所述規(guī)則;以及
生成一個(gè)或多個(gè)消息,所述一個(gè)或多個(gè)消息描述包括所述特定觸發(fā)器的所述特定一個(gè)或多個(gè)所述規(guī)則中的特定一個(gè)或多個(gè)所述動(dòng)作。
5.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括:
在路由處理程序處從客戶端接收指定多個(gè)子服務(wù)中的特定一個(gè)處的特定操作的請(qǐng)求,其中所述多個(gè)子服務(wù)包括用于定義多個(gè)規(guī)則的一個(gè)或多個(gè)操作,其中所述規(guī)則中的個(gè)別規(guī)則被定義成將多個(gè)觸發(fā)器中的相應(yīng)一個(gè)或多個(gè)綁定到多個(gè)動(dòng)作中的相應(yīng)一個(gè)或多個(gè),并且其中所述多個(gè)子服務(wù)包括用于在包括多個(gè)資源的提供商網(wǎng)絡(luò)中執(zhí)行所述多個(gè)動(dòng)作的一個(gè)或多個(gè)操作;
在所述路由處理程序處確定所述請(qǐng)求中的所述特定操作;
在所述路由處理程序處至少部分地基于所述特定操作確定所述子服務(wù)中的所述特定一個(gè),其中所述子服務(wù)中的所述特定一個(gè)是使用由所述路由處理程序和一個(gè)或多個(gè)附加路由處理程序所共享的路由圖來(lái)確定;以及
將所述請(qǐng)求路由到所述子服務(wù)中的所述特定一個(gè)。
6.根據(jù)條款5所述的方法,其中所述多個(gè)子服務(wù)包括規(guī)則子服務(wù),其中所述規(guī)則子服務(wù)包括用于定義所述多個(gè)規(guī)則的所述一個(gè)或多個(gè)操作,并且其中所述規(guī)則子服務(wù)包括用于激發(fā)所述觸發(fā)器中的一個(gè)或多個(gè)的一個(gè)或多個(gè)操作。
7.根據(jù)條款5所述的方法,其中所述多個(gè)子服務(wù)包括動(dòng)作子服務(wù),其中所述動(dòng)作子服務(wù)包括用于在包括所述多個(gè)資源的所述提供商網(wǎng)絡(luò)中執(zhí)行所述多個(gè)動(dòng)作的所述一個(gè)或多個(gè)操作。
8.根據(jù)條款5所述的方法,其中所述多個(gè)子服務(wù)包括調(diào)度子服務(wù),其中所述調(diào)度子服務(wù)包括用于在特定時(shí)間對(duì)所述動(dòng)作中的個(gè)別動(dòng)作進(jìn)行調(diào)度的一個(gè)或多個(gè)操作。
9.根據(jù)條款5所述的方法,其中所述路由圖被從數(shù)據(jù)存儲(chǔ)動(dòng)態(tài)地加載到所述路由處理程序,并且其中所述方法還包括:
至少部分地基于所述路由圖來(lái)生成更新的路由圖,其中所述更新的路由圖包括一個(gè)或多個(gè)新的或修改的操作到所述子服務(wù)中的特定一個(gè)的映射;以及
將所述更新的路由圖存儲(chǔ)在所述數(shù)據(jù)存儲(chǔ)中。
10.根據(jù)條款5所述的方法,其中所述特定子服務(wù)包括規(guī)則子服務(wù),其中所述特定操作包括激發(fā)特定觸發(fā)器的操作,并且其中,在執(zhí)行所述激發(fā)所述特定觸發(fā)器的操作時(shí),所述方法還包括:
確定包括所述特定觸發(fā)器的特定一個(gè)或多個(gè)所述規(guī)則;以及
生成一個(gè)或多個(gè)消息,所述一個(gè)或多個(gè)消息描述包括所述特定觸發(fā)器的所述特定一個(gè)或多個(gè)所述規(guī)則中的特定一個(gè)或多個(gè)所述動(dòng)作。
11.根據(jù)條款5所述的方法,還包括:
在所述路由處理程序處從所述子服務(wù)中的所述特定一個(gè)接收對(duì)所述請(qǐng)求的響應(yīng);以及
將所述響應(yīng)返回給所述客戶端。
12.根據(jù)條款5所述的方法,其中所述請(qǐng)求是使用特定http客戶端被路由到所述子服務(wù)中的所述特定一個(gè),并且其中附加請(qǐng)求是使用附加http客戶端被路由到所述子服務(wù)中的另一個(gè)。
13.一種存儲(chǔ)程序指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述程序指令可由計(jì)算機(jī)執(zhí)行以執(zhí)行:
在路由處理程序處從客戶端接收指定多個(gè)子服務(wù)中的特定一個(gè)處的特定操作的請(qǐng)求,其中所述多個(gè)子服務(wù)包括用于定義多個(gè)規(guī)則的一個(gè)或多個(gè)操作,其中所述規(guī)則中的個(gè)別規(guī)則被定義成將多個(gè)觸發(fā)器中的相應(yīng)一個(gè)或多個(gè)綁定到多個(gè)動(dòng)作中的相應(yīng)一個(gè)或多個(gè),并且其中所述多個(gè)子服務(wù)包括用于在包括多個(gè)資源的提供商網(wǎng)絡(luò)中執(zhí)行所述多個(gè)動(dòng)作的一個(gè)或多個(gè)操作;
在所述路由處理程序處確定所述請(qǐng)求中的所述特定操作;
在所述路由處理程序處至少部分地基于所述特定操作確定所述子服務(wù)中的所述特定一個(gè),其中所述子服務(wù)中的所述特定一個(gè)是使用從數(shù)據(jù)存儲(chǔ)加載并且由所述路由處理程序和一個(gè)或多個(gè)附加路由處理程序所共享的路由圖來(lái)確定;以及
將所述請(qǐng)求路由到所述子服務(wù)中的所述特定一個(gè)。
14.根據(jù)條款13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述多個(gè)子服務(wù)包括規(guī)則子服務(wù),其中所述規(guī)則子服務(wù)包括用于定義所述多個(gè)規(guī)則的所述一個(gè)或多個(gè)操作,并且其中所述規(guī)則子服務(wù)包括用于激發(fā)所述觸發(fā)器中的一個(gè)或多個(gè)的一個(gè)或多個(gè)操作。
15.根據(jù)條款13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述多個(gè)子服務(wù)包括動(dòng)作子服務(wù),其中所述動(dòng)作子服務(wù)包括用于在包括所述多個(gè)資源的所述提供商網(wǎng)絡(luò)中執(zhí)行所述多個(gè)動(dòng)作的所述一個(gè)或多個(gè)操作。
16.根據(jù)條款13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述多個(gè)子服務(wù)包括調(diào)度子服務(wù),其中所述調(diào)度子服務(wù)包括用于在特定時(shí)間對(duì)所述動(dòng)作中的個(gè)別動(dòng)作進(jìn)行調(diào)度的一個(gè)或多個(gè)操作。
17.根據(jù)條款13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述程序指令還可由計(jì)算機(jī)執(zhí)行以執(zhí)行:
至少部分地基于所述路由圖來(lái)生成更新的路由圖,其中所述更新的路由圖包括一個(gè)或多個(gè)新的或修改的操作到所述子服務(wù)中的特定一個(gè)的映射;以及
將所述更新的路由圖存儲(chǔ)在所述數(shù)據(jù)存儲(chǔ)中。
18.根據(jù)條款13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述特定子服務(wù)包括規(guī)則子服務(wù),其中所述特定操作包括激發(fā)特定觸發(fā)器的操作,并且其中,在執(zhí)行所述激發(fā)所述特定觸發(fā)器的操作時(shí),所述規(guī)則子服務(wù)被配置成執(zhí)行:
確定包括所述特定觸發(fā)器的特定一個(gè)或多個(gè)所述規(guī)則;以及
生成一個(gè)或多個(gè)消息,所述一個(gè)或多個(gè)消息描述包括所述特定觸發(fā)器的所述特定一個(gè)或多個(gè)所述規(guī)則中的特定一個(gè)或多個(gè)所述動(dòng)作。
19.根據(jù)條款13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述程序指令還可由計(jì)算機(jī)執(zhí)行以執(zhí)行:
在所述路由處理程序處從所述子服務(wù)中的所述特定一個(gè)接收對(duì)所述請(qǐng)求的響應(yīng);以及
將所述響應(yīng)返回給所述客戶端。
20.根據(jù)條款13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述請(qǐng)求是使用特定http客戶端被路由到所述子服務(wù)中的所述特定一個(gè),其中附加請(qǐng)求是使用附加http客戶端被路由到所述子服務(wù)中的另一個(gè),并且其中所述特定http客戶端被配置成使用異步輸入/輸出來(lái)路由所述請(qǐng)求。
說(shuō)明性計(jì)算機(jī)系統(tǒng)
在至少一些實(shí)施例中,實(shí)現(xiàn)本文中所描述的一個(gè)或多個(gè)技術(shù)的一部分或全部的計(jì)算機(jī)系統(tǒng)可以包括包含或者被配置成訪問(wèn)一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的通用計(jì)算機(jī)系統(tǒng)。圖16圖示出這樣的通用計(jì)算裝置3000。在所圖示的實(shí)施例中,計(jì)算裝置3000包括經(jīng)由輸入/輸出(i/o)接口3030耦合到系統(tǒng)存儲(chǔ)器3020的一個(gè)或多個(gè)處理器3010。計(jì)算裝置3000還包括耦合到i/o接口3030的網(wǎng)絡(luò)接口3040。
在各種實(shí)施例中,計(jì)算裝置3000可以是包括一個(gè)處理器3010的單處理器系統(tǒng)或包括數(shù)個(gè)處理器3010(例如,兩個(gè)、四個(gè)、八個(gè)或另一適合的數(shù)量)的多處理器系統(tǒng)。處理器3010可以包括能夠執(zhí)行指令的任何適合的處理器。例如,在各種實(shí)施例中,處理器3010可以是實(shí)現(xiàn)各種指令集架構(gòu)isa中的任一個(gè)(諸如x86、powerpc、sparc或mipsisa或任何其他適合的isa)的通用或嵌入式處理器。在多處理器系統(tǒng)中,處理器3010中的每一個(gè)可以通常但未必實(shí)現(xiàn)相同的isa。
系統(tǒng)存儲(chǔ)器3020可以被配置成存儲(chǔ)可由處理器3010訪問(wèn)的程序指令和數(shù)據(jù)。在各種實(shí)施例中,系統(tǒng)存儲(chǔ)器3020可以使用任何適合的存儲(chǔ)器技術(shù)(諸如靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、同步動(dòng)態(tài)ram(sdram)、非易失性/閃速型存儲(chǔ)器或任何其他類型的存儲(chǔ)器)來(lái)實(shí)現(xiàn)。在所圖示的實(shí)施例中,實(shí)現(xiàn)一個(gè)或多個(gè)期望功能的程序指令和數(shù)據(jù)(諸如以上所描述的那些方法、技術(shù)和數(shù)據(jù))被示出為作為代碼(即,程序指令)3025和數(shù)據(jù)3026存儲(chǔ)在系統(tǒng)存儲(chǔ)器3020內(nèi)。
在一個(gè)實(shí)施例中,i/o接口3030可以被配置成協(xié)調(diào)處理器3010、系統(tǒng)存儲(chǔ)器3020及裝置中的任何外圍器件(包括網(wǎng)絡(luò)接口3040或其他外圍接口)之間的i/o業(yè)務(wù)。在一些實(shí)施例中,i/o接口3030可以執(zhí)行任何必要的協(xié)議、定時(shí)或其他數(shù)據(jù)變換以將來(lái)自一個(gè)組件(例如,系統(tǒng)存儲(chǔ)器3020)的數(shù)據(jù)信號(hào)轉(zhuǎn)換成適合于由另一組件(例如,處理器3010)使用的格式。例如,在一些實(shí)施例中,i/o接口3030可以包括對(duì)通過(guò)各種類型的外圍總線(諸如外圍組件互連(pci)總線標(biāo)準(zhǔn)或通用串行總線(usb)標(biāo)準(zhǔn)的變體)附連的裝置的支持。例如,在一些實(shí)施例中,可以將i/o接口3030的功能分到兩個(gè)或更多個(gè)單獨(dú)的組件,諸如北橋和南橋。另外,在一些實(shí)施例中可以將i/o接口3030的功能中的一些或全部(諸如到系統(tǒng)存儲(chǔ)器3020的接口)直接并入處理器3010。
網(wǎng)絡(luò)接口3040可以被配置成允許在計(jì)算裝置3000與附連到一個(gè)或多個(gè)網(wǎng)絡(luò)3050的其他裝置3060之間交換數(shù)據(jù)。例如,在各種實(shí)施例中,網(wǎng)絡(luò)接口3040可以經(jīng)由任何適合的有線或無(wú)線通用數(shù)據(jù)網(wǎng)絡(luò)(諸如以太網(wǎng)型網(wǎng)絡(luò))支持通信。附加地,網(wǎng)絡(luò)接口3040可以經(jīng)由諸如模擬語(yǔ)音網(wǎng)絡(luò)或數(shù)字光纖通信網(wǎng)絡(luò)的電信/電話網(wǎng)絡(luò)、經(jīng)由諸如光纖通道san的存儲(chǔ)區(qū)域網(wǎng)絡(luò)或者經(jīng)由任何其他適合類型的網(wǎng)絡(luò)和/或協(xié)議支持通信。
在一些實(shí)施例中,系統(tǒng)存儲(chǔ)器3020可以是被配置成存儲(chǔ)如上所述用于實(shí)現(xiàn)對(duì)應(yīng)方法和設(shè)備的實(shí)施例的程序指令和數(shù)據(jù)的計(jì)算機(jī)可讀(即,計(jì)算機(jī)可訪問(wèn))介質(zhì)的一個(gè)實(shí)施例。然而,在其他實(shí)施例中,可以在不同類型的計(jì)算機(jī)可讀介質(zhì)上接收、發(fā)送或者存儲(chǔ)程序指令和/或數(shù)據(jù)。一般地說(shuō),計(jì)算機(jī)可讀介質(zhì)可以包括諸如磁或光學(xué)介質(zhì)的非暫時(shí)性存儲(chǔ)介質(zhì)或存儲(chǔ)器介質(zhì),例如,經(jīng)由i/o接口3030耦合到計(jì)算裝置3000的磁盤或dvd/cd。非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)還可以包括可以在計(jì)算裝置3000的一些實(shí)施例中作為系統(tǒng)存儲(chǔ)器3020或另一類型的存儲(chǔ)器包括的任何易失性或非易失性介質(zhì),諸如ram(例如,sdram、ddrsdram、rdram、sram等)、rom等。另外,計(jì)算機(jī)可讀介質(zhì)可以包括經(jīng)由諸如網(wǎng)絡(luò)和/或無(wú)線鏈路的通信介質(zhì)傳送的傳輸介質(zhì)或信號(hào)(諸如電、電磁或數(shù)字信號(hào)),所述通信介質(zhì)諸如可以經(jīng)由網(wǎng)絡(luò)接口3040來(lái)實(shí)現(xiàn)。諸如圖16中所圖示的計(jì)算裝置的多個(gè)計(jì)算裝置的部分或全部可以用于實(shí)現(xiàn)各種實(shí)施例中所描述的功能;例如,在各種不同的裝置和服務(wù)器上運(yùn)行的軟件組件可以合作以提供所述功能。在一些實(shí)施例中,所描述的功能的部分除了或者代替使用通用計(jì)算機(jī)系統(tǒng)來(lái)實(shí)現(xiàn)之外還可以使用存儲(chǔ)裝置、網(wǎng)絡(luò)裝置或?qū)S糜?jì)算機(jī)系統(tǒng)來(lái)實(shí)現(xiàn)。如本文中所使用的術(shù)語(yǔ)“計(jì)算裝置”指代至少所有這些類型的裝置,并且不限于這些類型的裝置。
各種實(shí)施例還可以包括在計(jì)算機(jī)可讀介質(zhì)上接收、發(fā)送或者存儲(chǔ)依照上述描述所實(shí)現(xiàn)的指令和/或數(shù)據(jù)。一般地說(shuō),計(jì)算機(jī)可讀介質(zhì)可以包括諸如磁或光學(xué)介質(zhì)的存儲(chǔ)介質(zhì)或存儲(chǔ)器介質(zhì)(例如,磁盤或dvd/cd-rom)、諸如ram(例如,sdram、ddr、rdram、sram等)、rom等的易失性或非易失性介質(zhì)。在一些實(shí)施例中,計(jì)算機(jī)可讀介質(zhì)還可以包括經(jīng)由諸如網(wǎng)絡(luò)和/或無(wú)線鏈路的通信介質(zhì)傳送的傳輸介質(zhì)或信號(hào)(諸如電、電磁或數(shù)字信號(hào))。
如圖中所圖示的和本文中所描述的各種方法表示方法的實(shí)施例的示例。所述方法可以用軟件、硬件或其組合來(lái)實(shí)現(xiàn)。在各種方法中,可以改變步驟的順序,并且可以添加、重新排序、組合、省略、修改等各種要素??梢宰詣?dòng)地(例如,在無(wú)需通過(guò)用戶輸入直接提示的情況下)和/或以編程方式(例如,根據(jù)程序指令)執(zhí)行所述步驟中的各個(gè)步驟。
在本文發(fā)明的描述中使用的術(shù)語(yǔ)僅用于描述特定實(shí)施例的目的,而不旨在限制本發(fā)明。如本發(fā)明和所附權(quán)利要求的描述中所使用的,除非上下文另外清楚地指示,否則單數(shù)形式“一”、“一個(gè)”和“所述”旨在還包括復(fù)數(shù)形式。還應(yīng)理解的是,如本文中所使用的術(shù)語(yǔ)“和/或”指代并包含所關(guān)聯(lián)的列舉項(xiàng)中的一個(gè)或多個(gè)的任一且所有可能的組合。還應(yīng)理解的是,術(shù)語(yǔ)“包括”當(dāng)用在本說(shuō)明中時(shí),指定陳述的特征、整數(shù)、步驟、操作、要素和/或組件的存在,但是不排除一個(gè)或更多個(gè)其他特征、整數(shù)、步驟、操作、要素、組件和/或其組的存在或添加。
如本文中所使用的,取決于上下文,術(shù)語(yǔ)“如果”可以被解釋為意指“何時(shí)”或“在...時(shí)”或“響應(yīng)于確定”或“響應(yīng)于檢測(cè)到”。類似地,取決于上下文,短語(yǔ)“如果確定了”或“如果檢測(cè)到[陳述的條件或事件]”可以被解釋為意指“在確定...時(shí)”或“響應(yīng)于確定”或“在檢測(cè)到[所陳述的條件或事件]時(shí)”或“響應(yīng)于檢測(cè)到[所陳述的條件或事件]”。
還將理解的是,盡管術(shù)語(yǔ)第一、第二等可以在本文中用于描述各種要素,但是這些要素不應(yīng)該受這些術(shù)語(yǔ)限制。這些術(shù)語(yǔ)僅用于區(qū)分一個(gè)要素與另一要素。例如,在不脫離本發(fā)明的范圍的情況下,第一觸點(diǎn)能被稱為第二觸點(diǎn),并且類似地,第二觸點(diǎn)能被稱為第一觸點(diǎn)。第一觸點(diǎn)和第二觸點(diǎn)皆是觸點(diǎn),但是它們不是同一觸點(diǎn)。
在本文中闡述了許多特定細(xì)節(jié)以提供對(duì)要求保護(hù)的主題的徹底理解。然而,本領(lǐng)域的技術(shù)人員應(yīng)理解的是,可以在沒(méi)有這些特定細(xì)節(jié)的情況下實(shí)踐要求保護(hù)的主提。在其他實(shí)例中,尚未詳細(xì)地描述本領(lǐng)域的普通技術(shù)人員所知道的方法、設(shè)備或系統(tǒng),以便不使要求保護(hù)的主題混淆??梢宰龀鋈鐚?duì)于已受益于本公開(kāi)的本領(lǐng)域的技術(shù)人員而言將顯而易見(jiàn)的各種修改和改變。旨在包含所有此類修改和改變,并且因此,以上描述將在說(shuō)明性而不是限制性意義上考慮。