專利名稱:恢復和調試失敗的網絡可訪問服務構建的方法和系統的制作方法
技術領域:
本發明一般地涉及構建網絡可訪問服務,更具體地說,涉及恢復和調試網絡可訪問服務此類失敗的構建。
背景技術:
復合網絡可訪問服務,例如萬維網(下文稱為“Web”)服務,可以使用可重用軟件組件來構建。此類組件可以由分布式應用來發現和調用以指派其子功能。Web服務的規范被發布到目錄,并通過將所述服務部署到應用服務器來提供聯機訪問。應用從Web服務目錄中搜索感興趣的Web服務并使用發布的訪問信息來調用適當的候選服務。
標題為“Constructing Network-Accessible Services”(構建網絡可訪問服務,2003年12月4日,序列號10/727,672[代理案號JP920030196US1],其在此引入作為參考)的先前申請的專利申請中說明了一種構建網絡可訪問服務的方法。此專利申請說明了作為兩個階段的過程來構建復合服務。在第一階段,規劃選擇器生成抽象規劃或工作流以便組裝復合服務定義。可以根據公共能力將Web服務實例分組成Web服務類型并進行正式說明。所述規劃選擇器實現人工智能(AI)規劃算法,并通過智能地搜索Web服務能力的可能組合來構建規劃。第一階段的輸出是抽象工作流規劃,它在結構上完整并標識了要調用的Web服務類型,但是未指定組件實例。在此過程的第二階段,將所述規劃實例化為可執行物理規劃,然后評估其運行時配置。
這種網絡可訪問服務構建的兩階段過程的缺點是所述過程的任何失敗都會導致不能構建所述網絡可訪問服務,且沒有任何過程為何失敗的反饋。即,不會為希望創建給定網絡可訪問服務的個人提供任何關于如何修復失敗的信息,并且所述個人最多只能猜測過程為何失敗。因此,出于這樣和那樣的原因,存在對本發明的需要。
發明內容
本發明涉及從失敗的網絡可訪問服務構建中恢復。它提供了一組可以通過隨時間進一步學習來歸納和擴充的基本恢復規則。如果規則的解決操作明確并且無需人工干預,則規則將自動執行。以下在詳細說明中將引用此類可自動化的規則的實例,如規則P-4、P-7和P-9。不自動執行的規則需要人工交互(即,開發人員參與)來恢復,并可以協助調試。本文將前一種規則稱為自動恢復規則,而后一種規則稱為失敗修補或修復規則。
本發明的方法響應于判定計算機生成網絡可訪問服務的抽象工作流規劃失敗,嘗試在沒有人工干預的情況下自動從所述失敗中恢復。當嘗試自動從此失敗中恢復不成功時,所述方法在人工干預的情況下應用規劃選擇失敗修復規則以協助調試所述失敗。例如,在恢復規則不可用的情況下,可能會出現自動恢復失敗。
此外,響應于判定計算機分配抽象工作流規劃的實際規劃失敗,所述方法嘗試在沒有人工干預的情況下自動從所述失敗中恢復。當嘗試自動從此失敗中恢復不成功時,所述方法在人工干預的情況下應用規劃分配失敗修復規則以協助調試所述失敗。
最后,響應于判定計算機評估所述實際規劃的運行時配置失敗,所述方法嘗試在沒有人工干預的情況下自動從所述失敗中恢復。當嘗試自動從此失敗中恢復不成功時,所述方法在人工干預的情況下應用運行時評估失敗修復規則以協助調試所述失敗。
注意,在實施例中,無需必須嘗試自動恢復。例如,通過執行所述方法來嘗試實現希望的網絡可訪問規劃的開發人員或其他個人可能希望不嘗試自動恢復。在此類實施例中,將在檢測到生成抽象工作流規劃,分配實際規劃或評估所述實際規劃的運行時配置失敗時手動(即,借助人工干預)來應用所述失敗修復規則。
本發明的系統包括網絡可訪問服務生成裝置以及失敗恢復和修復裝置。前一種裝置(復合)旨在生成網絡可訪問服務的抽象工作流規劃,為所述抽象工作流規劃分配實際規劃,并評估所述實際規劃的運行時配置,它們都無需人工干預。后一種裝置(恢復和修復)旨在嘗試從生成所述抽象工作流規劃,分配所述實際規劃以及評估所述實際規劃的運行時配置的失敗中恢復。開發人員指定的將自動采用的規則有助于在沒有人工干預的情況下恢復。其余的規則將幫助開發人員手動調試失敗。
本發明的制品包括計算機可讀介質及所述介質中的裝置。所述計算機可讀介質可以是可記錄的數據存儲介質、調制的載波信號,或其他類型的計算機可讀介質。所述裝置用于沒有人工干預的情況下嘗試自動從生成網絡可訪問服務的抽象工作流規劃的失敗、從分配所述抽象工作流規劃的實際規劃的失敗,以及從評估所述實際規劃的運行時配置的失敗中恢復。所述裝置還用于在自動恢復失敗時應用規則以借助人工干預協助調試。
因此,較之現有技術,本發明的實施例存在優勢。當網絡可訪問服務構建失敗時,本發明首先嘗試自動從所述失敗中恢復,以便可以繼續構建所需的服務。本發明應用規則以提供有關為何不能創建網絡可訪問服務的信息。這些規則可以是預先指定的,和/或它們可以是計算機隨時間學習的。通過閱讀以下詳細說明和參考附圖,本發明的其他優點、方面和實施例將變得顯而易見。
在此引用的附圖形成了說明書的一部分。附圖中示出的功能只是說明本發明的某些實施例,而非本發明的所用實施例,除非另外明確指出,并且不必另行做出相反的暗示,這些附圖是圖1是根據本發明的實施例的用于構建網絡可訪問服務的系統的示意圖;圖2是根據本發明的實施例的用于從構建網絡可訪問服務失敗中恢復和用于提供調試信息以響應此類失敗的過程的流程圖;圖3是根據本發明的實施例的網絡可訪問服務的抽象工作流規劃的代表和實例構建的示意圖;圖4是根據本發明的實施例的示意性地表示圖3的網絡可訪問服務的抽象工作流規劃的實際規劃的可能選擇的示意圖;圖5是根據本發明的實施例的代表性系統的示意圖;圖6是根據本發明的實施例的代表性計算設備的示意圖。
具體實施例方式
在本發明的示例性實施例的以下詳細說明中,參考了形成本說明一部分的附圖,并且其中通過示例的方式示出了其中可以實現本發明的特定示例性實施例。這些實施例被充分詳細地描述,以便使得本領域的技術人員能夠實現本發明。可以使用其他實施例并且可以在不偏離本發明的精神或范圍的情況下做出邏輯的、機械的更改和其他更改。因此,不應以限制的意義來理解以下的詳細說明,并且本發明的范圍僅由所附的權利要求來限定。
圖1示出了根據本發明的實施例的用于構建網絡可訪問復合服務的系統100的示意表示。系統100是在先前引入作為參考的名為“ConstructingNetwork-Accessible Services”的專利申請中更具體地說明的系統。系統100包括規劃選擇器120、規劃分配器140和運行時評估器160。規劃選擇器120與規劃分配器140交互,后者則與運行時評估器160交互。這些組件中的每個組件都可以以硬件、軟件或硬件和軟件的組合來實現。
規劃選擇器120生成要實現的希望網絡可訪問服務的抽象工作流規劃。該抽象工作流規劃標識生成希望網絡可訪問服務所需使用的Web服務的類型及其順序。規劃分配器140則接收該抽象工作流規劃并為其分配實際規劃。具體地說,規劃分配器140向抽象工作流規劃分配Web服務的特定實例。運行時評估器160則接收該實際的或實例化的規劃,并對其進行評估以判定該實際規劃是否違背任何運行時限制,例如,響應時間、吞吐量、成本、可用性、利益沖突等,這些通常在服務水平協議(SLA)文檔中定義。即,可以說運行時評估器160評估實際規劃的運行時配置。
因此,規劃選擇器120可以使用現有的人工智能(AI)規劃技術來搜索滿足組合的Web服務的邏輯目標的規劃。這種規劃技術特別將目標和狀態轉變說明(例如,服務類型說明)作為輸入并合成規劃以實現這些目標。輸出是標識要使用的服務類型及順序的抽象工作流規劃。但是,該抽象工作流規劃并未做出任何關于這些服務的確切實例的承諾。
因此,規劃分配器140從抽象工作流規劃實例化實際規劃,該規劃確實承諾這些服務的確切實例。在一個實施例中,規劃分配器140可以提供許多不同的可選實際規劃,所有這些規則都被提供給運行時評估器160。運行時評估器160然后評估這些實際規劃,這被稱為運行時評估所述實際規劃的運行時配置,以判定它們是否滿足運行時限制。運行時評估器160在此方面可以向規劃分配器140提供反饋,后者則可以向規劃選擇器120提供抽象工作流規劃的反饋,如先前引入作為參考的名為“ConstructingNetwork-Accessible Services”的專利申請中更具體地說明的。
規劃選擇器120生成抽象工作流規劃被稱為沒有人工干預的計算機生成,因為一旦開發人員或其他個人定義了要實現的初始Web服務,規劃選擇器120便不需要人工干預來繼續抽象工作流規劃的生成,以便它是完全由計算機生成的。同樣,規劃分配器140分配實際規劃被稱為沒有人工干預的計算機分配,因為開發人員或其他個人不參與此分配,它完全由計算機來分配。運行時評估器160評估實際規劃的運行時配置也是沒有人工干預的計算機評估,因為開發人員或其他個人沒有參與此評估,并且它完全由計算機來評估。
圖2示出了根據本發明的實施例,可以遵循以鑒于在由圖1的系統100執行的網絡可訪問服務生成過程的任何部分期間的失敗來提供恢復和/或調試信息的過程200。首先通過概括的方式說明過程200的各個部分來在此提供對過程200的說明。此后,提供了關于如何可以實際地實現過程200的實現細節。
規劃選擇器120嘗試提供網絡可訪問服務的抽象工作流規劃。如果規劃選擇器120不能提供抽象工作流規劃(202)—即,如果抽象工作流規劃的計算機生成不成功—則應用規劃選擇自動恢復規則(204)以嘗試自動從此失敗中恢復。在一個實施例中,此類自動恢復可以包括選擇要實現的網絡可訪問服務的備選抽象工作流規劃,或提供其他可以幫助抽象工作流規劃生成的信息。因此,在一個實施例中,過程200通過判定規劃選擇器120是否成功生成抽象工作流規劃來隱含地判定抽象工作流規劃的計算機生成是否成功。
如果自動恢復成功(206),則向規劃選擇器120提供自動恢復的結果(例如,備選抽象工作流規劃),以便規劃選擇器120可以再次嘗試使用由應用規劃選擇自動恢復規則提供的新信息來生成抽象工作流規劃。因此,所述恢復是自動的并且在沒有人工干預的情況下執行。但是,如果自動恢復不成功(208),則過程200在人工干預的情況下應用規劃選擇失敗修復規則(208)。應用這些規則提供了調試信息228,它可以協助開發人員或其他個人評估為何出現失敗。
當規劃選擇器120最終能夠提供抽象工作流規劃時(202),規劃分配器140便會嘗試分配抽象工作流規劃的實際規劃。如果規劃分配器140不能分配此類實際規劃(222)—即,如果實際規劃的計算機分配不成功—則應用規劃分配自動恢復規則(210)以嘗試自動從該失敗中恢復。在一個實施例中,這種自動恢復可以包括選擇抽象工作流規劃的備選實際規劃,或提供其他可以幫助實際規劃分配的信息。因此,在一個實施例中,過程200通過判定規劃分配器140是否成功分配該實際規劃來隱含地判定規劃的計算機分配是否成功。
如果自動恢復成功(212),則向規劃分配器140提供自動恢復的結果(例如,備選實際規劃),以便規劃分配器140可以使用由應用規劃分配自動恢復規則所提供的新信息來再次嘗試分配抽象工作流規劃的實際規劃。因此,所述恢復是自動的并且在沒有人工干預的情況下執行。但是,如果自動恢復不成功(212),則過程200在人工干預的情況下應用規劃分配失敗修復規則(214)。應用這些規則提供了調試信息228,它可以幫助開發人員或其他個人評估為何出現失敗。
當規劃分配器140最終可以分配抽象工作流規劃的實際規劃時(222),運行時評估器160便會嘗試評估該實際規劃,這在此稱為嘗試評估實際規劃的運行時配置。如果運行時評估器160不能成功評估該規劃(224)—即,如果該規劃的運行時配置的計算機評估不可接受—則應用運行時評估器自動恢復規則(216)以嘗試自動從該失敗中恢復。在一個實施例中,這種自動恢復可以包括提供實際規劃的不同或備選運行時配置,或提供其他可以協助可接受的運行時評估的信息。因此,在一個實施例中,過程200通過判定由運行時評估器160執行的運行時評估是否可以接受來隱含地判定計算機評估實際規劃的運行時配置是否成功。
如果自動恢復成功(218),則向運行時評估器160提供自動恢復的結果(例如,不同的運行時配置),以便運行時評估器160可以使用由應用運行時評估器自動恢復規則所提供的新信息來再次嘗試評估實際規劃的運行時配置。因此,所述恢復是自動的并且在沒有人工干預的情況下執行。但是,如果自動恢復不成功(218),則過程200在人工干預的情況下應用運行時評估失敗修復規則(220)。應用這些規則提供了調試信息228,它可以幫助開發人員或其他個人評估為何出現失敗。注意,當運行時評估最終可接受(即,成功)時,過程200結束(226)。
可以通過解釋失敗原因及由此應用預定規則或計算機隨時間學習的規則來在圖2的過程200的204、210和216中實現自動恢復。預定的規則可以在設置時編碼。也可以通過現有的規則集內的已知失敗情況的各種解決方案來獲知自動恢復規則。此外,某些向用戶建議的修復可以在其提供自動恢復并且系統獲知用戶可以接受此類恢復時遷移到自動恢復集。
在一個實施例中,如參考文獻“P-QueriesEnabling Querying forSemantic Association on the Semantic Web”(Kemafor Anyanwu和AmitSheth,先前發表于在匈牙利布達佩斯舉行的關于萬維網的第十二界國際會議的論文集,690-699(2003),其在此引入作為參考)中說明的,可以定義此類自動恢復規則。例如,關于由規劃選擇器120自動恢復失敗以生成抽象工作流規劃,由于各種原因(如在域模型中丟失項、丟失關系、丟失功能),會出現這種失敗。如果失敗被報告為丟失關系,則其可能是規劃選擇器120從域模型獲得所需關系失敗而造成的漏報。通過使用Anyanwu參考文獻中描述的方法來嘗試發現之前未知的可能存在于域模型中的關系,從此類漏報自動恢復是可能的。在Anyanwu的參考文獻中,根據關系圖的結構說明了概念與其他概念的一系列關系。如果兩個概念之間沒有直接的聯系/關系,則根據連接到這兩個概念的其他概念的連通性來定義所述概念之間的弱關系。因此,可以通過新發現的關系來再次調用規劃選擇器120。
注意,圖2的過程200的204、210和216的自動恢復不必在本發明的所有實施例中執行。例如,用戶(如嘗試實現希望的網絡可訪問服務的開發人員或其他個人)可能不希望自動恢復。在這種情況下,如本領域的技術人員可以理解的,在人工干預的情況下檢測到失敗時,將在208、214和220中立即應用失敗修復規則,而不是僅在自動恢復自身已失敗后才應用所述規則。現在提供了此類失敗修復規則的實例,以及有關如何使用學習來使系統隨時間進化的說明。
可以將各種失敗修復規則實現為用于組合過程的每個階段的一組決策表,并因此可以實現為規則系統。可以將每個規則解釋為以下規則模板的實例如果組合是規則的<Composition Stage><Information Needed>階段且<Failure Condition>為真,則返回feedback=<Feedback>和remedy=<Resolution>。因此,該規則模板判定給定的規則是否可以應用,如果是,則返回某些信息,具體地說,反饋和修復信息。對于給定的失敗,可以執行以下偽代碼過程或算法來判定所有與該失敗有關的信息,所述信息作為圖2的過程200中的調試信息228被提供給用戶結果={}對于表中的每個規則如果規則匹配將該規則的反饋和修復信息添加到結果結束如果結束對于返回結果根據所述結果,將首先應用自動規則,然后將使用需要人工干預的手動規則來指導開發人員。
以下規則表可以在實現網絡可訪問服務的邏輯組合階段期間應用。該邏輯組合階段由規劃選擇器120執行,因此該表中的規則是在圖2的過程200的208中應用的規劃選擇失敗修復規則或在204中應用的規劃選擇自動恢復規則,其中每個行代表一個規則。如果在人工干預下應用了給定規則,則它是在208中應用的修復規則,而如果在沒有人工干預的情況下應用了給定規則,則它是在204中應用的自動恢復規則。
因此,當生成抽象工作流規劃中存在失敗時,將為這些行中的每個行應用以上提供的規則模板。例如,如果在具有本體的概念查找階段內出現失敗,其中所需的信息是各種項和這些項之間的關系,并且值為真的失敗條件是未找到所需的關系,則提供的反饋是“丟失關系”,提供的修復為“添加關系”。上表還為每個規則—即,每個唯一的行—分配標識符或ID。
接下來,下面的規則表可以在實現網絡可訪問服務的實際組合階段期間應用。實際組合階段由規劃分配器140執行,因此,該表中的規則是在圖2的過程200的214中應用的規劃分配失敗修復規則或在210中應用的規劃分配自動恢復規則,其中每個行代表一個規則。如果在人工干預下應用了給定規則,則它是在214中應用的修復規則,而如果在沒有人工干預的情況下應用了給定規則,則它是在210中應用的自動恢復規則。
因此,當分配實際規劃失敗時,為這些行中的每一行應用以上提供的規則模板。例如,如果在實例選擇階段出現失敗,其中所需的信息為數據類型映射,并且值為真的失敗條件是不存在已知的映射,則兩個不同的規則相關。第一個規則提供數據類型能力與所提供的要求之間存在不匹配的反饋,并提供應定義數據類型映射和應部署具有所需的數據類型的其他服務實例的修復。第二個規則提供選擇限制可能失敗的反饋,并提供應放松限制的修復。上表為每個規則—即,每個唯一的行—分配標識符或ID。
最后,下面的規則表可以在實現網絡可訪問服務的運行時評估階段應用。運行時評估階段由運行時評估器160執行,因此,該表中的規則是在圖2的過程200的220中應用的運行時評估失敗修復規則或在216中應用的運行時評估器自動恢復規則,其中,每一行代表一個規則。如果在人工干預下應用了給定規則,則它是在220中應用的修復規則,而如果在沒有人工干預的情況下應用了給定規則,則它是在216中應用的自動恢復規則。
因此,在運行時評估實際規劃的運行時配置失敗時,為這些行中的每一行應用上面提供的規則模板。例如,如果在執行階段出現失敗,其中所需的信息是端口和綁定信息,并且值為真的失敗條件是調用實例失敗,則所提供的反饋是出現運行時中斷,所提供的修復是應預保存或動態重新安排運行時。上表為每個規則—即,每個唯一的行—分配標識符或ID。
其他規則可以由計算機隨時間而學習—即,由執行過程200的計算機本身學習。因此,可以對上面三個表中提供的初始規則集使用學習方法。在失敗反饋和解決方案的現有知識庫的范圍內,這些學習方法對根據用戶反饋正確性來按優先順序排列規則和生成新規則很有用。例如,考慮下面的表段。
當由于未找到項而出現失敗時,可以根據兩個失敗條件(標識為L-1的規則和標識為L-2的規則)中的一個來建議反饋和解決方案。根據所提供的響應(即,所提供的反饋和解決方案)最終是否正確(如用戶所判定的),可以對這兩個規則分級。
因此,可以通過許多不同的方式來學習新的規則。例如,對于相同的所需信息,可以從中隨機選擇現有的規則的反饋,并根據基于用戶反饋按照新的條件來確定反饋的適當性或正確性。例如,在具有本體的概念查找階段的組合期間所需的信息包括在短語“項和關系”中。有時,可以建議標識為L-1的規則的反饋和解決方案,即使失敗條件是未找到關系。根據用戶反饋,即使當關系丟失時,系統也可以獲知未正確地為項建模。因此,所述過程便是通過結合機器學習方法(例如關聯規則和用戶反饋)來構建現有失敗條件的新反饋。可以實現規則生成器,它可以誘導地建議新規則,并且用戶可以判斷其是否相關,以便如果給定的規則有幫助,則將其包括在最終的規則集中。
第二,因為在上面三個表中提供的規則遵循組合的不同階段,所以它們之間具有隱含的順序,這可以用于學習新的修復規則。例如,對于給定的失敗條件,可以構建從對之前的組合階段出現的失敗條件的反饋得出的修復規則。因此,可以實現以這種方式建議新規則的規則生成器。
第三,可以使用有關組合的抽象工作流規劃的運行時失敗和導出反饋的性質的分析技術,以便生成更多規則,如果給定的抽象工作流規劃在同一點重復失敗,則它可以是抽象工作流規劃的結構內的關鍵活動,可能需要替換其Web服務類型,或可以推斷此類工作流結構在給定的執行環境中不合適。因此,可以實現以這種方式建議新規則的規則生成器。
現在提供了構建網絡可訪問服務以及如何使用本發明的實施例來提供調試信息以響應構建此服務失敗的實例。圖3示出了根據本發明的實施例的構建網絡可訪問服務300的代表性實例。具體地說,構建服務300的邏輯組合階段在圖3中示出,因此在圖3中示出的是網絡可訪問服務300的抽象工作流規劃。圖3取自先前引入作為參考的名為“ConstructingNetwork-Accessible Services”的專利申請,并且該專利申請中提供了有關此實例的其他信息。
在此,充分地說明網絡可訪問服務300使用三種類型的Web服務可以返回給定人名的地址的地址簿服務310;可以返回兩個輸入地址間的駕駛方向的定向服務320;以及可以返回兩個給定姓名的個人的位置間的駕駛方向的GPS定向服務330。因此,此服務300的項的本體域可以是{地址,姓名,姓名1,姓名2,地址1,地址2,方向}。關系可以表達為{{姓名←→姓名1,姓名2},{地址←→地址1,地址2}}。
接下來,下表將這些服務排列成表格形式,并具有可用的服務實例,因此可以用于表示在構建網絡可訪問服務300的實際組合階段中構建的抽象工作流規劃的實際規劃。
現在,圖4示意地表示根據本發明的實施例的網絡可訪問服務300的規劃選擇器120的可能選擇,如規劃P1 400和規劃P2 400′。如同圖3,圖4取自先前引入作為參考的名為“Constructing Network-AccessibleServices”的專利申請,并且該專利申請中提供了有關此實例的其他信息。根據圖4,對于規劃P1 400,規劃分配器140的選擇為L={GPS1,GPS2},而對于規劃P2 400′,規劃選擇器140的選擇為A1,A2={AD1,AD2,AD3,AD4}和D={DD1,DD2},其中A1和A2為代表地址的變量,而D為代表駕駛方向的變量。成本的運行時變量可以具有可能的值C={25,50,100,200}。即,成本(以美元或其他單位)為25、50、100和200中的一個。每個服務的成本估計C在下表中表示。
限制可以是成本C應小于100個單位。映射是在實例化的規劃中可以對成本C做出貢獻的任何服務。因此,運行時評估器160評估每個服務實例的成本并更新服務實例及所需的關聯成本。
現在,所述網絡可訪問服務300的組合目標可以是生成其姓名作為輸入提供的個人的相應地址間導航的駕駛方向,并且組合服務的成本應小于100個單位。此實例是在先前引入作為參考的名為“ConstructingNetwork-Accessible Services”的專利申請中所描述的同一實例。在第一次重復中,規劃選擇器120可以輸出規劃P1。規劃分配器140則輸出L=GPS1,其中存在映射L→C,而變量L對C做出貢獻。運行時評估器160輸出C大于100的分析,這是不可接受的,因為C應小于100,因此運行時評估器160提供C應小于100的反饋。規劃分配器140因此可以提供L沒有可行的更低的分配的反饋,以便應將L設置為等于零。
在第二次重復中,規劃選擇器120于是可以輸出P2。規劃分配器140于是可以輸出A1=AD1、A2=AD4和D=DD1,其中存在映射A1、A2、D→C,并且變量A1、A2和D對C做出貢獻。運行時評估器160輸出C等于100的分析,這是不可接受的,因為C應小于100,因此運行時評估器提供C應小于100的反饋。規劃分配器140因此可以提供A1、A2和D都沒有更低的分配的反饋,因此A1或D不可能出現改變,盡管A2具有可行的備選對象。
在第三次重復中,規劃選擇器120因此可以再次輸出規劃P2。規劃分配140則可以輸出A1=AD1、A2=AD2和D=DD1,其中存在映射A1、A2、D→C,并且變量A1、A2和D對C做出貢獻。運行時評估器輸出C等于75的分析,這是可以接受的。因此,在第三次重復中,生成了網絡可訪問服務300的成功實施方式。
根據有關圖3和4說明的實例網絡可訪問服務300,本發明的實施例可以提供如下的失敗反饋和修復(即,調試信息)。例如,組合規范可以是獲取為輸入“姓名”的人提供“城市”的服務。但是,項城市在項的本體域中不存在,因此組合應在邏輯組合階段失敗。輸出因此將是該組合已失敗,因此通過規則L-1,反饋為“丟失項”,這可以通過將“城市”添加到項的本體域來解決。
現在,假定項“城市”已被添加到本體域。但是,沒有到“地址”的關系。因此,組合應該在邏輯組合階段再次失敗。輸出因此將是該組合已失敗,因此通過規則L-3,反饋為“丟失關系”,這可以通過將“城市”和“地址”之間的關系“部分”添加到項的本體域來解決。此外,通過規則L-4,輸出也可以說明未找到“城市”的服務,因此需要創建和填充新的服務。系統可以向用戶顯示規則L-3和L-4的應用。
但是,用戶可能已接受關于規則L-3的反饋,而不是關于規則L-4的反饋。所述系統因此可以記錄對于L-3存在一個肯定的實例,而對于L-4存在一個否定的實例。對于未來的類似失敗,所述系統可以使用此信息對規則分級,以判定要應用哪個規則并將其顯示給用戶。
接下來,組合規范可以是獲取給出輸入“姓名”的個人的相應地址間導航的“駕駛方向”的服務。假定提供了如上所述的規劃P2。該規劃包括兩個地址簿服務和一個駕駛方向服務,因此必須找到它們的實例。假定規劃分配器140選擇用于兩個地址簿服務的AD1和AD2。因此,組合已進行到實際組合階段的部署階段。
現在,假定存在失敗條件“未找到實例”。但是,會在當前失敗條件下備選地生成具有規則P-3的反饋的新規則,而非規則P-7。如果用戶接受提供的反饋,便可以向系統添加新的已驗證的規則。
圖5更為詳細地示出了根據本發明的實施例的代表系統100,其還可以用于實現已說明的網絡可訪問服務構建的恢復和修復方面。因此,系統100包括網絡可訪問服務生成裝置602和失敗恢復和修復裝置604。每個裝置602和604都可以以硬件、軟件或硬件和軟件的組合來實現。
生成裝置602如上所述在沒有人工干預的情況下生成網絡可訪問服務的抽象工作流規劃,為所述抽象工作流規劃分配實際規劃,并評估所述實際規劃的運行時配置。裝置602因此包括規劃選擇器120、規劃分配器140和運行時評估器160。相比之下,恢復和修復裝置604可以在沒有人工干預的情況下嘗試從構建過程內的失敗自動恢復,和/或如上所述的在人工干預的情況下將規則應用到此類失敗以提供調試信息。
最后,圖6是根據本發明的實施例的如上所述的適于構建網絡可訪問服務的該類計算設備500的示意表示。計算機軟件在計算設備500上安裝的合適操作系統下執行以協助執行所述技術。可以使用任何適合的計算機編程語言來編程此計算機軟件。
計算設備500的組件包括計算機520、鍵盤510和鼠標515以及視頻顯示器590。計算機520包括處理器540、存儲器550、輸入/輸出(I/O)接口560、565、視頻接口545和存儲設備555。處理器540是執行操作系統及在該操作系統下執行的計算機軟件的中央處理單元(CPU)。存儲器550包括隨機存取存儲器(RAM)和只讀存儲器(ROM),并在處理器540的控制下使用。
視頻接口545連接到視頻顯示器590并提供用于在視頻顯示器590上顯示的視頻信號。從鍵盤510和鼠標515提供操作計算機520的用戶輸入。存儲設備555可以包括盤驅動器或任何其他適合的存儲介質。計算機520的每個組件都連接到包括數據、地址和控制總線的內部總線530,以允許計算機520的組件通過總線530相互通信。計算設備500可以通過使用到網絡(表示為互聯網580)的通信通道585的輸入/輸出(I/O)接口565來連接到一個或多個其他類似的計算機。
計算機軟件可以記錄到便攜式存儲介質上,在這種情況下,計算機軟件程序可由計算設備520從存儲設備555來訪問。可選地,計算機軟件可以由計算機520直接從互聯網580來訪問。在任一情況下,用戶都可以使用鍵盤510和鼠標515與計算設備520交互以操作在計算機520上執行的編程的計算機軟件。可以同等地使用其他配置或類型的計算機系統來執行組合網絡服務的計算方面。上述計算設備500僅被描述為適合于實現所描述技術的特定類型系統的一個實例。
注意,盡管在此示出和描述了特定的實施例,但是本領域的技術人員將理解,任何適于實現相同目的的安排都可以替代示出的特定實施例。因此,本申請旨在覆蓋本發明的實施例的任何修改或變體。因此明顯地,本發明旨在僅由權利要求及其等同物來限制。
權利要求
1.一種方法,所述方法包括響應于判定計算機生成網絡可訪問服務的抽象工作流規劃失敗,嘗試在沒有人工干預的情況下自動從所述失敗恢復;當嘗試自動從所述計算機生成所述抽象工作流規劃的失敗中恢復不成功時,在人工干預的情況下應用多個規劃選擇失敗修復規則,以協助調試所述計算機生成所述抽象工作流規劃失敗;響應于判定計算機分配所述抽象工作流規劃的實際規劃失敗,嘗試在沒有人工干預的情況下自動從所述失敗中恢復;當嘗試自動從所述計算機分配所述抽象工作流規劃的所述實際規劃的失敗中恢復不成功時,在人工干預的情況下應用多個規劃分配失敗修復規則,以協助調試所述計算機分配所述實際規劃失敗;響應于判定計算機評估所述實際規劃的運行時配置失敗,嘗試在沒有人工干預的情況下自動從所述失敗中恢復;以及當嘗試自動從所述計算機評估所述實際規劃的所述運行時配置的失敗中恢復不成功時,在人工干預的情況下應用多個運行時評估失敗修復規則,以協助調試所述計算機評估所述運行時配置失敗。
2.根據權利要求1的方法,其中嘗試自動從所述計算機生成所述網絡可訪問服務的所述抽象工作流規劃的失敗中恢復包括應用多個規則。
3.根據權利要求2的方法,其中所述多個規則包括預定的規則。
4.根據權利要求2的方法,其中所述多個規則包括計算機隨時間而學習的規則。
5.根據權利要求1的方法,其中在人工干預的情況下應用所述多個規劃選擇失敗修復規則以協助調試所述計算機生成所述抽象工作流規劃的失敗包括應用與所述計算機生成所述抽象工作流規劃的具有本體的概念查找階段有關的規則。
6.根據權利要求1的方法,其中在人工干預的情況下應用所述多個規劃選擇失敗修復規則以協助調試所述計算機生成所述抽象工作流規劃的失敗包括應用與所述計算機生成所述抽象工作流規劃的過濾和選擇服務以便組合的階段有關的規則。
7.根據權利要求1的方法,其中在人工干預的情況下應用所述多個規劃選擇失敗修復規則以協助調試所述計算機生成所述抽象工作流規劃的失敗包括應用與所述計算機生成所述抽象工作流規劃的組合所述抽象工作流規劃階段有關的規則。
8.根據權利要求1的方法,其中嘗試自動從所述計算機分配所述抽象工作流規劃的所述實際規劃的失敗中恢復包括應用多個規則。
9.根據權利要求8的方法,其中所述多個規則包括預定的規則。
10.根據權利要求8的方法,其中所述多個規則包括計算機隨時間而學習的規則。
11.根據權利要求1的方法,其中在人工干預的情況下應用所述多個規劃分配失敗修復規則以協助調試所述計算機分配所述實際規劃的失敗包括應用與所述計算機分配所述實際規劃的實例選擇階段有關的規則。
12.根據權利要求1的方法,其中在人工干預的情況下應用所述多個規劃分配失敗修復規則以協助調試所述計算機分配所述實際規劃的失敗包括應用與所述計算機分配所述實際規劃的部署階段有關的規則。
13.根據權利要求1的方法,其中嘗試自動從所述計算機評估所述實際規劃的所述運行時配置的失敗中恢復包括應用多個規則。
14.根據權利要求13的方法,其中所述多個規則包括預定的規則。
15.根據權利要求13的方法,其中所述多個規則包括計算機隨時間而學習的規則。
16.根據權利要求1的方法,其中在人工干預的情況下應用所述多個運行時評估失敗修復規則以協助調試所述計算機評估所述運行時配置的失敗包括應用與所述計算機評估所述運行時配置的評估階段有關的規則。
17.一種系統,所述系統包括網絡可訪問服務生成裝置,用于在沒有人工干預的情況下生成網絡可訪問服務的抽象工作流規劃、分配所述抽象工作流規劃的實際規劃,以及評估所述實際規劃的運行時配置;以及失敗恢復和修復裝置,用于在生成所述抽象工作流規劃、分配所述實際規劃以及評估所述實際規劃的運行時配置失敗時,嘗試在人工干預的情況下應用多個規則以協助調試。
18.根據權利要求17的系統,其中所述失敗恢復和修復裝置在應用所述多個規則以協助調試之前,還在沒有人工干預的情況下嘗試自動從生成所述抽象工作流規劃、分配所述實際規劃以及評估所述實際規劃的運行時配置的失敗中恢復。
全文摘要
一種響應于判定計算機生成網絡可訪問服務的抽象工作流規劃失敗,嘗試自動從所述失敗恢復的方法。當嘗試自動從此失敗恢復不成功時,所述方法應用修復規劃以協助調試所述失敗。響應于判定計算機分配所述抽象工作流規劃的實際規劃失敗,所述方法嘗試自動從所述失敗中恢復。當嘗試自動從此失敗中恢復不成功時,所述方法應用修復規則以協助調試所述失敗。響應于判定計算機評估所述實際規劃的運行時配置失敗,所述方法嘗試自動從所述失敗中恢復。當嘗試自動從此失敗中恢復不成功時,所述方法應用修復規則以協助調試所述失敗。
文檔編號H04L12/28GK1976353SQ20061014707
公開日2007年6月6日 申請日期2006年11月14日 優先權日2005年11月29日
發明者B·斯里瓦斯塔瓦, A·庫馬爾, K·達斯古普塔 申請人:國際商業機器公司