新四季網

基於面向服務流水線的體系結構的製作方法

2023-04-23 02:20:51 2

專利名稱:基於面向服務流水線的體系結構的製作方法
基於面向服務流水線的體系結構背景主存服務正變得日益常見,其中各種應用程式在共享硬體上服務大量消費者(稱 為多承租人系統)。主存服務可以向多個客戶機提供同一類型的服務或向單個客戶機提供 多個服務。如此,主存服務能是相當複雜的系統。複雜主存服務系統的代表性示例是基於 web的客戶關係管理(CRM)服務。CRM解決方案通常在主存計算機應用程式環境中提供創建和維護客戶的從第一次 接觸到購買和售後的清晰形象所需的工具和能力。對複雜承租人而言,CRM系統可提供幫助 改善銷售和營銷組織瞄準新客戶的方式、管理營銷活動、以及推動銷售活動的特徵和能力。 CRM系統可包括由承租人內部或外部的用戶單獨地或以共享方式利用的許多硬體和軟體組 件。諸如主存CRM服務等複雜系統需要響應於客戶機請求來執行一系列操作。這些操 作可以是同步的或異步的,可具有次序依賴性,並可由不同的各方來實現。在實現這樣的系 統時的一個挑戰是管理該系統的複雜性,尤其是在第三方提供者添加操作時。這一挑戰在 其中服務提供者不完全信任第三方擴展的軟體即服務(SaaS)應用程式中惡化。概述提供本概述是為了以簡化的形式介紹將在以下詳細描述中進一步描述的一些概 念。該概述並非旨在標識所要求保護的主題的關鍵特徵或必要特徵,也不旨在用於幫助確 定所要求保護的主題的範圍。各實施例針對提供採用流水線體系結構的主存服務。用於擴展現有功能或提供附 加功能的第三方擴展通過元數據來註冊並在流水線中與平臺操作串行地執行,其中操作的 次序和每一操作的階段通過元數據來交換,以便均衡地對待系統功能和自定義功能。還可 以使用循環檢測機制來阻止通過偶然或惡意創建無限循環而對系統資源的濫用。通過閱讀以下詳細描述並查閱相關聯的附圖,這些和其他特徵和優點將是顯而易 見的。可以理解,前述一般描述和以下詳細描述均僅是說明性的,且不限制所要求保護的各 方面。附圖簡述

圖1是示出示例多承租人服務系統體系結構的示圖;圖2示出具有流水線體系結構的面向服務系統中的各主要組件;圖3示出具有流水線體系結構的示例面向服務系統(CRM);圖4是其中可以實現各實施例的示例聯網環境的示圖;圖5是其中可以實現各實施例的示例計算操作環境的框圖;圖6示出用於管理具有流水線體系結構的面向服務系統中的操作的過程的邏輯流程圖;以及圖7示出用於具有流水線體系結構的面向服務系統中的循環檢測過程的邏輯流程圖。詳細描述
如以上簡要描述的,可以在用於管理第三方插件功能的面向服務系統中實現流水線體系結構。在以下詳細描述中,參考了構成其一部分並作為說明示出了各具體實施例或 示例的附圖。可組合這些方面,可利用其他方面,並且可以做出結構上的改變而不背離本發 明的精神或範圍。因此,以下詳細描述並不旨在限制,本發明的範圍由所附權利要求及其等 效方案來定義。雖然在結合在個人計算機上的作業系統上運行的應用程式執行的程序模塊的一 般上下文中描述了各實施例,但是本領域技術人員會認識到各方面也可以結合其他程序模 塊實現。一般而言,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、組 件、數據結構和其他類型的結構。此外,如本領域技術人員理解的,各實施例可以用其他計 算機系統配置來實施,包括手持式設備、多處理器系統、基於微處理器或可編程消費者電子 產品、小型計算機、大型計算機等等。各實施例還能在其中任務由通過通信網絡連結的遠程 處理設備來執行的分布式計算環境中實現。在分布式計算環境中,程序模塊可以位於本地 和遠程存儲器存儲設備中。各實施例可被實現為計算機進程(方法)、計算系統、或者如電腦程式產品或計 算機可讀介質等製品。電腦程式產品可以是計算機系統可讀並編碼了用於執行計算機進 程的指令的電腦程式的計算機存儲介質。電腦程式產品還可以是計算系統可讀並編碼 了用於執行計算機進程的指令的電腦程式的載波上的傳播信號。參考圖1,示出了示例多承租人服務系統體系結構的示圖100。在一典型的多承租 人系統中,與不同的承租人相關聯的用戶可以從服務請求操作,該服務可執行涉及承租人 專用信息的同步和異步操作。如上所述,主存服務使用多方面的默認和定製功能來便於各種應用程式與大量客 戶之間在共享硬體上的交互。例如,客戶關係管理(CRM)服務可使與多個承租人相關聯的 用戶能夠記錄、跟蹤、分析、以及處理聯繫人、銷售線索(sales lead)等,同時向每一承租人 提供安全和自定義功能。這些所謂的軟體即服務(SaaS)的某些自定義(或默認)功能能 以與內核平臺操作一起註冊和執行的第三方擴展或插件的形式提供。在一典型的主存服務環境中,可伸縮和冗餘的一組web服務伺服器112與承租人 數據存儲114 一起工作來存儲和處理與該服務的各個承租人相關聯的數據。還可以通過另 一組伺服器和/或數據存儲來提供補充服務116。例如,不同的伺服器組能以優化系統性能 的分布式方式來執行同步和異步處理。通過使用同步和異步進程的獨立分發以及伺服器和資料庫之間的交互,能夠使主 存服務組的任何部分都可以伸縮。因此,可以提供伺服器(和/或資料庫)的多個實例來 解決增加的工作負載、附加承租人、數據容量等等。在一操作中,主存服務接收輸入數據(例如,CRM服務中的新聯繫人信息)並從用 戶102請求處理。用戶102可以與用於定製主存服務的用戶應用程式、工具、和/或插件 104的獨立系統相關聯。與該獨立系統相關聯的數據可以存儲在用戶數據存儲106中。用 戶102可以向主存服務提供擴展(插件)以用於附加或定製功能,其中這些插件連同內核 平臺操作一起註冊和執行。根據一些實施例,這些插件不僅提供附加功能,而且還擴展服務 的現有默認功能。
用戶102可以自己提供插件或從第三方(未示出)請求插件來由主存服務註冊。 在這樣的場景中,主存服務可以與該第三方提供者直接交互以在平臺中註冊該插件。此外, 第三方提供者可以在用戶(承租人)請求註冊他們的擴展中的一個或多個時聯繫主存服 務,並提供使主存服務確保所提供的插件確實是用戶所請求的插件的證書。當然,該複雜的交互可對服務造成控制其操作完整性和用戶數據安全性的挑戰。 不是所有的第三方提供者都是可信的源,可能存在與服務平臺和插件相關聯的兼容性問 題,並且將插件集成到服務的操作結構中可能不是簡單的。根據一些實施例,可響應於客戶機請求來串行地執行具有基於流水線體系結構的 插件功能的靈活且可伸縮的平臺。請求對象可以作為參數傳遞到流水線中的每一插件,並 且每一插件可以創建或操縱響應對象。可以沿該流水線傳遞任意狀態以在插件之間傳遞數 據。圖2示出具有流水線體系結構的面向服務系統中的各主要組件。一種根據各實施 例的系統可以採用通過響應於客戶機請求插入功能來定義靈活且可伸縮平臺的流水線體 繫結構。請求對象作為參數傳遞到流水線中的每一插件,該插件可以創建或操縱響應對象。 如果兩個客戶機請求操作同一流水線,則它們的行為應當相同。如此,這樣的系統中的測試 案例矩陣與硬編碼行為的系統相比減小了。在根據一個實施例的系統中,由流水線配置來表示要響應於客戶機請求執行的動 作序列。流水線中動作的次序可以通過依賴圖分析來確定。可以在不重新編譯系統的情況 下通過在流水線配置中註冊「插件」來配置新動作。這樣,可以添加新功能或修改現有功能, 從而形成動態和可伸縮的執行模型。更重要地,流水線配置包括定義要執行的動作序列的 依賴信息以及實際插件代碼模塊。面向服務流水線體系結構中的動作也可以是異步的,在這種情況下,可以保存並 恢復流水線的狀態以進行處理。因此,異步動作不能影響響應。根據一些實施例,插件配置 (包括插件代碼)可以集中地存儲,從而允許具有當前流水線配置的相干視圖的基於群集 的系統。根據一個實施例,面向服務體系結構可以被實現為前端以供調用流水線體系結構 系統。流水線配置(包括插件代碼)隨後可通過該面向服務系統的應用編程接口(API)來 配置(例如,通過web服務)。插件執行可以使用受管執行環境以取決於它們的作者(例 如,通過代碼籤名確定的)來實施對插件的有限信任。為了對根據各實施例的面向服務系統構建插件,實現者可以設計調用該插件代碼 的接口。在調用插件時,系統可將上下文對象與流水線的當前狀態一起傳遞。從該上下文 對象,插件可獲取可通過其執行附加系統功能的接口。如該附圖所示,web服務212與應用程式222、工具224、以及工作流(業務流 程)226進行交互以處理用戶請求。另外,web服務212接收用戶插件(例如,231、232、235、 236)來執行用戶定義的動作。用戶通過插件定義的動作可包括通過現有功能的擴展或與現 有功能並行的新功能的客戶化。插件通過元數據在API中註冊,該元數據可包括插件的次 序和階段(例如,在激活另一插件之前使操作取消、完成等)。插件隨後可與平臺操作234 一起(由執行流水線230)執行,取決於元數據所定義的註冊次序,有些在前(例如,231、 232)而有些在後(例如,235、236)。
在一示例場景中,一個插件可被配置成在添加新信息或修改(刪除)現有信息時 更新聯繫人信息,同時使用與該第一插件串行執行的另一插件以基於該第一插件所執行的 更新來審計用戶的聯繫人記錄。在根據各實施例的系統中,給予插件定義它們自己的事務 邊界的能力,從而允許靈活且可伸縮的系統。插件可以串行或並行執行。各實施例不限於 一種特定執行方法。如上所述,根據各實施例的系統可包括單獨的伺服器和處理主機(例如,異步處 理主機)的許多實例。通過實現其中各單獨的伺服器將長期運行請求排入隊列以供稍後處 理的可靠進程隊列,可以獨立地伸縮這些伺服器集群中的每一個。調用來自這些插件的系統行為的能力,甚至是在受管執行環境中,打開了無限循 環的可能性。這可導致系統性能降級,尤其是對於多承租人系統中的其他承租人而言。這些 循環可包括偶然或惡意生成無限數據量的退化循環或無限但不是退化的非退化循環(例 如,要在不確定的時間段內一年處理一次的生日提醒)。為終止(或控制)這些循環,可以 在接收到客戶機請求時設置默認「預算」和互相關id。在調用插件內的系統方法時,可以傳 遞互相關標識符和預算的一部分。如果子調用具有不足的預算,則這導致錯誤,從而終止循 環。一種根據各實施例的系統針對所設預算來為每一操作分配成本,所設預算分布在 各個子操作中。因此,調用者獨立地發起的且不具有相關聯的先前上下文的動作和作為另 一動作的結果(例如,子動作)的具有繼承上下文的動作可以使用與調用者相關聯的操作 帳戶來跟蹤。例如,用戶可以經由web服務來要求創建新帳戶,並且創建新帳戶可以使插件 調用創建任務的調用。創建任務的調用具有從對帳戶的原始創建所繼承的上下文。如果正 在創建新帳戶,則可在這時設置預算,並且對該帳戶每次執行操作時,可以遞減預算。根據 另一實施例,可以利用深度參數來終止無限循環。可以在一開始設置操作(子操作)次數 的計數,並在執行附加操作(創建子操作)時遞增。在達到最初設置的深度限制時,終止循 環。根據其他實施例,可以採用基於時間的預算復位以允許作為非退化的無限循環, 諸如定時成在喚醒進行生日提醒之前休眠一年的異步事件。在操作序列中存在預定義延遲 的情況下,系統可復位預算或深度。又一實施例採用在無限循環檢測和終止中的有限樹結 構化操作(子操作)例外。例如,區域帳戶創建可能是非統一的(每一州具有可變數量的 銷售區域),從而導致有限樹結構。在預算(或深度)以固定方式分布在所有子操作中的情 況下,基於預算的循環檢測算法可能嘗試終止操作。該系統可被配置成考慮這樣的有限樹 結構,並且當在執行循環檢測時豁免它們。圖3示出具有流水線體系結構的示例面向服務系統(CRM)。CRM系統是其中客戶 能夠向他們的組織(承租人)籤到的多承租人系統的示例,該組織邏輯上是他們自己的CRM 數據的資料庫。客戶可請求諸如創建帳戶、發送電子郵件、或刪除聯繫人。這些請求在服務 器集群上處理。在圖3的示例系統300中,CRM web服務312通過執行平臺內核操作334(默認功 能)連同提供擴展或替換功能的插件331、332、335、336來處理這樣的用戶請求,從而允許 為用戶定製該服務。這些插件在CRM執行流水線330中串行執行並且它們的順序可由用戶 來定義(331、332、335、336)。根據一個實現,這些插件可被分組成用於預處理或後處理內核功能所處理的數據的預事件(pre-event)和後事件(post-event)操作,但這一分組不是限 制。在根據各實施例的系統中,這些插件和內核操作可以用任何方式來分組或根本不分組。CRM web服務312可以與特定CRM應用程式322交互,利用CRM工具324,以及將 業務流程存儲為CRM工作流326。根據一示例實現,利用CRM web服務312可用作對用戶 請求的傳輸。諸如結構化查詢語言(SQL)資料庫等關係資料庫可用作該流水線配置的儲存 庫,並且另一資料庫可用作插件代碼模塊的儲存庫。圖2和圖3中描述的面向服務的系統和操作是用於說明目的的示例。可以使用更 多或更少組件或使用此處描述的原理的其他方案來實現用於在多承租人服務中採用流水 線體系結構的系統。圖4是其中可以實現各實施例的示例聯網環境。採用流水線體系結構的面向服務 系統可以用分布式方式在多個物理和虛擬的客戶機和伺服器上實現。它們還可以在非群集 系統或利用通過一個或多個網絡(例如,網絡450)通信的多個節點的群集系統中實現。這種系統可以包括伺服器、客戶機、網際網路服務提供者、以及通信介質的任何拓撲 結構。同樣,該系統可以具有靜態或動態拓撲結構。術語「客戶機」可以表示客戶機應用程 序或客戶機設備。儘管實現多承租人服務中的流水線體系結構的聯網系統可以涉及更多組 件,但結合此附圖來討論相關組件。此外,根據各實施例的系統還可以是用於服務與單承租 人相關聯的用戶的單承租人系統。處理請求可通過各個客戶機設備441-443來自各個用戶。用戶自己或第三方提供 者(通過伺服器444)可向一個或多個伺服器(例如,伺服器452)所管理的流水線體系結 構提供用於擴展或附加功能的插件。該服務還可以在一個或多個伺服器中實現。承租人數 據庫可被包括在數據存儲458中。可使用專用資料庫伺服器(例如,資料庫伺服器456)來 協調一個或多個此類數據存儲中的數據檢索和存儲。網絡450可以包括諸如企業網絡等安全網絡、諸如無線開放網絡等非安全網絡、 或網際網路。網絡450提供此處描述的節點之間的通信。作為示例而非局限,網絡450可以 包括諸如有線網絡或直接線連接等有線介質,以及諸如聲學、RF、紅外線和其它無線介質等 無線介質。可以利用計算設備、應用程式、數據源、數據分布系統的許多其它配置來實現面向 服務系統中的流水線體系結構。此外,圖4中所討論的聯網環境僅用於說明目的。各實施 例不限於示例應用程式、模塊、或過程。圖5及相關聯的討論旨在提供對適於在其中實現各實施例的計算環境的簡要概 括描述。參考圖5,示出了諸如計算設備500等示例計算操作環境的框圖。在一基本配置 中,計算設備500可以是提供與採用流水線體系結構的面向服務系統相關聯的服務的服務 器,並通常包括至少一個處理單元502和系統存儲器504。計算設備500還可包括協作執行 程序的多個處理單元。取決於計算設備的確切配置和類型,系統存儲器504可以是易失性 的(諸如RAM)、非易失性的(諸如ROM、快閃記憶體等)或是兩者的某種組合。系統存儲器504通 常包括適於控制聯網個人計算機的操作的作業系統505,諸如來自華盛頓州雷德蒙市的微 軟公司的WINDOWS 作業系統。系統存儲器504還可以包括一個或多個軟體應用程式, 諸如程序模塊606、web服務522、以及插件524。web服務522可以是分開的應用程式或是向與計算設備500相關聯的客戶機應用程式提供數據和處理服務的主存服務應用程式的整合模塊。如上所述,插件524可以提供 為特定用戶和/或操作定製web服務522的操作的附加功能。該基本配置在圖5中由虛線 508內的組件示出。計算設備500可具有附加特徵或功能。例如,計算設備500還可包括附加數據存 儲設備(可移動和/或不可移動),諸如例如磁碟、光碟或磁帶。這些其它存儲在圖5中由 可移動存儲509和不可移動存儲510示出。計算機存儲介質可包括以用於存儲諸如計算機 可讀指令、數據結構、程序模塊或其它數據等信息的任何方法或技術實現的易失性和非易 失性、可移動和不可移動介質。系統存儲器504、可移動存儲509和不可移動存儲510都是 計算機存儲介質的示例。計算機存儲介質包括,但不限於,RAM、R0M、EEPR0M、快閃記憶體或其它存 儲器技術、CD-ROM、數字多功能盤(DVD)或其它光碟存儲、磁帶盒、磁帶、磁碟存儲或其它磁 性存儲設備、或能用於存儲所需信息且可以由計算設備500訪問的任何其它介質。任何這 樣的計算機存儲介質都可以是設備500的一部分。計算設備500還可具有諸如鍵盤、滑鼠、 筆、語音輸入設備、觸摸輸入設備等輸入設備512。還可包括諸如顯示器、揚聲器、印表機等 輸出設備514。這些設備在本領域中公知且無需在此處詳細討論。計算設備500還可以包含允許該設備諸如在分布式計算環境中,例如在內聯網或 網際網路中通過無線網絡與其它計算設備518通信的通信連接516。其他計算設備518可包 括執行與提供插件的另一服務或第三方提供者相關聯的應用程式的伺服器。通信連接516 是通信介質的一個示例。通信介質通常由諸如載波或其他傳輸機制等已調製數據信號中的 計算機可讀指令、數據結構、程序模塊或其他數據來體現,並包括任何信息傳遞介質。術語 「已調製數據信號」指的是其一個或多個特徵以在信號中編碼信息的方式被設定或更改的 信號。作為示例而非限制,通信介質包括有線介質,諸如有線網絡或直接線連接,以及無線 介質,諸如聲學、RF、紅外線和其它無線介質。如此處所使用的術語「計算機可讀介質」包括 存儲介質和通信介質兩者。所要求保護的主題還包括各方法。這些方法可以用任何數量的方式,包括本文中 所描述的結構來實現。一種此類方式是通過本文中描述的類型的設備的機器操作。另一可任選方式是結合一個或多個人類操作者執行該方法的各個操作中的某一 些來執行該方法的一個或多個操作。這些人類操作者無需彼此同在一處,而是其每一個可 以僅與執行程序的一部分的機器同在一處。圖6示出用於管理具有流水線體系結構的面向服務系統中的操作的過程600的邏 輯流程圖。過程600可作為例如主存CRM服務的一部分來實現。過程600在操作602開始,在此流水線體系結構服務接收用戶構造的方案(和/ 或操作)。該方案(和/或操作)與可由該用戶或由該用戶授權的第三方提供的一個或多 個插件相關聯。處理從操作602前進至操作604。在操作604,自動地配置該方案。例如,在利用SQL資料庫的CRM系統中,可以基於 該方案、相關聯的元數據、以及操作本身來生成SQL數據(查詢)。系統至今不執行任何操 作,因為與用戶數據相關聯的用戶沒有請求任何動作。處理從操作604移至操作606。在操作606,接收用戶插件。這些插件執行用戶請求的動作,從而以均衡方式向該 服務的內核功能提供擴展或替換功能。處理從操作606移至操作608。在操作608,通過元數據在系統API中註冊用戶動作,元數據還包括在流水線中執行用戶動作時每一插件的次序和階段。處理從操作608移至操作610,其中在來自用戶的請 求時,服務以指定次序執行註冊插件來處理用戶數據。該系統可以執行附加操作,諸如用於 對流水線操作進行排序的依賴性分析(在上傳插件時),從而使多方都能夠擴展該系統並 可預測地工作。處理從操作610移至調用過程以供進一步操作。如上所述,通過允許用戶註冊並以任何次序(以及在進行中)執行他們自己的擴 展,該系統因為偶然或惡意生成的無限循環而易受性能降級的損害。因此,可以使用循環檢 測機制來檢測並終止無限循環,同時允許特定準無限(無限但非退化)循環免於終止。這 些機制在下面將更詳細地描述。圖7示出用於具有流水線體系結構的面向服務系統中的循環檢測過程700的邏輯 流程圖。過程700可以在圖6的操作管理過程600內實現。過程700在操作702開始,在這裡接收調用。該調用可以針對最初動作或針對現 有帳戶上的動作。這由系統通過檢查與該調用一起傳遞的上下文來確定。處理從操作702 前進至判定操作704。在判定操作704,作出所傳遞的上下文是否包括現有預算(深度)的判定。如果對 所請求的動作沒有找到現有預算(深度),則在操作706創建一個預算(深度)。如果找到 與該調用相關聯的現有預算(深度),則在操作708基於與該調用相關聯的操作的數量或 類型來遞減該預算(深度)。每一操作都具有相對於預算的成本,預算分布於各子操作中。 如上所述,還可以使用基於子操作或操作的計數的深度來代替預算。暫時跳過可任選操作710和712,在判定操作714,作出所分配的預算是否耗盡的 判定。如果預算耗盡,則終止操作。如果仍然存在可用預算,則在後續操作716執行與該調 用相關聯的操作。儘管阻止退化循環,但根據各實施例的系統還可便於看似無限循環的例外,這些 例外不應作為標準操作過程的一部分來終止。例如,設定在不確定時間內的、對聯繫人的生 日提醒操作就是一個例外。因此,系統可能感覺它是無限循環並嘗試終止它。跟在708之 後的可任選操作710旨在進行這一豁免。如果操作包括預定義延遲(如生日提醒之間的一 年延遲),則復位預算(深度)。另一示例例外是涉及有限樹結構的操作。例如,CRM服務的銷售區域可能是非統 一地分布的。儘管可能向一個州分配了一個銷售區域,但可能向另一人口更多的州分配多 個銷售區域。如果在子操作之間採用固定深度或預算分配,則該系統同樣感覺這一動作是 無限的並嘗試終止它。在可任選操作712,如果調用涉及有限樹結構,則可以復位預算或深 度,從而阻止過早終止這些操作。包括在過程600和700內的各操作僅出於說明目的。提供採用流水線體系結構的 主存服務可以使用此處所述的各原理通過具有更少或更多步驟的相似過程、以及不同的操 作次序來實現。以上說明書、示例和數據提供了對各實施例組成的製造和使用的全面描述。儘管 用結構特徵和/或方法動作專用的語言描述了本主題,但可以理解,所附權利要求書中定 義的主題不必限於上述具體特徵或動作。相反,上述具體特徵和動作是作為實現權利要求 和各實施例的示例形式而公開的。
1權利要求
一種至少部分地在計算設備(500)中執行以用於在面向服務系統中實現流水線體系結構的方法(600),所述方法包括自動地配置用戶構造的方案(604)接收與所述方案相關聯的插件(231、232、234、235、236、331、332、335、336)(606)通過元數據註冊所述插件(231、232、234、235、236、331、332、335、336)(608),其中所述元數據包括以下至少一個所述插件的次序和階段;以及響應於從所述用戶接收到對動作的調用,在執行流水線中根據接收到的次序連同一個或多個內核平臺操作一起執行所述插件(231、232、234、235、236、331、332、335、336)(610)。
2.如權利要求1所述的方法(600),其特徵在於,還包括在執行期間向所述插件(231、232、234、235、236、331、332、335、336)傳遞請求對象,以 使得所述插件能夠操縱響應對象。
3.如權利要求1所述的方法(600),其特徵在於,還包括向所述插件(231、232、234、235、236、331、332、335、336)傳遞與所述執行相關聯的任 意狀態。
4.如權利要求1所述的方法(600),其特徵在於,所述插件(231、232、234、235、236、`331、332、335、336)和所述內核平臺操作按以下方式中的一種來執行順序方式和並行方式。
5.如權利要求1所述的方法(600),其特徵在於,還包括 接收另一插件(231、232、234、235、236、331、332、335、336)通過註冊所述另一插件(231、232、234、235、236、331、332、335、336)在不編譯的情況 下配置所述方案。
6.如權利要求5所述的方法(600),其特徵在於,還包括分析所述元數據所提供的依賴性信息來確定所述插件(231、232、234、235、236、331、`332、335、336)和所述內核平臺操作的次序。
7.如權利要求1所述的方法(600),其特徵在於,所述插件(231、232、234、235、236、 331、332、335、336)用於以下之一添加新功能和擴展所述面向服務系統的現有功能。
8.如權利要求1所述的方法(600),其特徵在於,所述插件配置和所述插件代碼集中式 的存儲在所述面向服務系統中。
9.如權利要求1所述的方法(600),其特徵在於,所述面向服務系統被配置成執行以下 至少一個同步過程和異步過程。
10.如權利要求9所述的方法(600),其特徵在於,執行所述異步過程還包括 保存所述流水線的狀態;以及隨後恢復所述流水線的狀態以進行處理。
11.一種實現流水線體系結構的面向服務系統(200),包括 至少一個web伺服器(112),其被配置成接收用戶構造的方案(602); 自動地配置所述方案(604);接收用於以下之一的多個插件(231、232、234、235、236、331、332、335、336) (606)添 加與所述方案相關聯的新功能和擴展所述面向服務系統與所述方案相關聯的現有功能;通過元數據註冊所述插件(231、232、234、235、236、331、332、335、336) (608),其中所述 元數據包括以下至少一個所述插件的次序和階段;分析所述元數據所提供的依賴性信息來確定所述插件(231、232、234、235、236、331、 332、335、336)和內核平臺操作的次序;以及 執行流水線,其被配置成在從所述用戶接收到請求後,根據接收到的次序連同所述內核平臺操作一起、通過將 請求對象傳遞到所述插件(231、232、234、235、236、331、332、335、336)以使所述插件(231、 232、234、235、236、331、332、335、336)能夠操縱響應對象、並通過向所述插件傳遞與所述執 行相關聯的任意狀態來執行所述插件(231、232、234、235、236、331、332、335、336) (610)。
12.如權利要求11所述的系統,其特徵在於,所述面向服務系統(200)被實現為前端以 用於調用流水線體系結構系統(230)。
13.如權利要求11所述的系統,其特徵在於,所述插件(231、232、234、235、236、331、 332、335、336)通過所述面向服務系統(200)的應用編程接口(API)來註冊,並且其中所述 流水線通過所述API來配置。
14.如權利要求11所述的系統,其特徵在於,所述執行流水線還被配置成在調用插件(231、232、234、235、236、331、332、335、336)時,向所述插件(231、232、 234、235、236、331、332、335、336)傳遞具有所述流水線的當前狀態的上下文對象,以使所述 插件(231、232、234、235、236、331、332、335、336)能夠獲得用於執行附加系統功能的接口。
15.如權利要求11所述的系統,其特徵在於,所述至少一個web伺服器是可伸縮的,並 且其中所述系統能夠便於所述伺服器的多個實例。
16.如權利要求11所述的系統,其特徵在於,所述至少一個web伺服器還被配置成 向每一動作分配預算和深度參數之一,其中所述預算和所述深度參數中所分配的一個的一部分被分配給每一子動作;在調用插件(231、232、234、235、236、331、332、335、336)內的系統方法時,傳遞所述預 算和所述深度參數之一的所述部分連同分配給每一子動作的互相關標識符;遞減要執行的每一子動作的所述預算之一(708),其中所述預算基於與子動作相關聯 的每一操作的成本來遞減;以及基於與所請求的動作相關聯的子動作的計數來遞增要執行的每一子動作的深度參數;如果所述預算和所述深度參數之一達到對應的預定義閾值,則終止所述操作並提供出 錯消息。
17.如權利要求16所述的系統,其特徵在於,所述至少一個web伺服器還被配置成 如果與一動作相關聯的操作序列中包括預定義延遲,則復位所述預算之一的遞減和所述深度參數的遞增(710);以及如果所述動作包括子動作的有限樹結構,則復位所述預算之一的遞減和所述深度參數 的遞增(712)。
18.一種其上存儲有用於在面向服務系統(200)中實現流水線體系結構的指令的計算 機可讀存儲介質,所述指令包括接收用戶構造的方案(602);自動地配置所述方案(604);接收與所述方案相關聯的用於以下之一的插件(231、232、234、235、236、331、332、335、 336) (606);添加新功能和擴展所述面向服務系統的現有功能;通過元數據註冊所述插件(231、232、234、235、236、331、332、335、336) (608),其中所述 元數據包括以下至少一個所述插件(231、232、234、235、236、331、332、335、336)的依賴性 信息和階段;以及分析所述元數據所提供的依賴性信息來確定所註冊的插件(231、232、234、235、236、331、332、335、336)和內核平臺操作的次序;在執行流水線中根據接收到的次序連同所述內核平臺操作來執行所述插件(231、232、 234、235、236、331、332、335、336) (610),其中執行所述插件(231、232、234、235、236、331、332、335、336)包括向所述插件(231、232、234、235、236、331、332、335、336)傳遞請求對象,以使得所述插 件(231、232、234、235、236、331、332、335、336)能夠操縱響應對象;以及向所述插件(231、232、234、235、236、331、332、335、336)傳遞與所述執行相關聯的任 意狀態。
19.如權利要求18所述的計算機可讀存儲介質,其特徵在於,所述指令還包括 向每一動作分配預算,其中所分配的預算的一部分被分配給每一子動作;在調用插件(231、232、234、235、236、331、332、335、336)內的系統方法時,傳遞所述預 算的所述部分連同分配給每一子動作的互相關標識符;基於與子動作相關聯的每一操作的預定成本來遞減要執行的每一子動作的所述預算 (708);以及如果所述預算耗盡,則終止所述操作並提供出錯消息。
20.如權利要求19所述的計算機可讀存儲介質,其特徵在於,所述指令還包括 如果與動作相關聯的操作序列中包括預定義延遲,則復位所述預算的遞減(710);以及如果所述動作包括子動作的有限樹結構,則復位所述預算的遞減(712)。
全文摘要
提供了採用流水線體系結構來適應用於擴展現有功能或提供附加功能的第三方擴展的面向服務系統。用戶或第三方提供的插件通過元數據來註冊並且在流水線中與平臺操作一起執行。該流水線可用新上傳的插件來在進行中擴展。用於對同步或異步流水線操作進行排序的依賴性分析使得多方能夠擴展系統並可預測地操作。循環檢測機制阻止通過偶然或惡意創建無限循環而濫用系統資源,非退化無限循環除外。
文檔編號G06F17/00GK101809562SQ200880109401
公開日2010年8月18日 申請日期2008年9月29日 優先權日2007年9月27日
發明者A·塔卡奇, A·簡迪塔卡恩, G·阿拉什, M·J·奧特, N·古普塔 申請人:微軟公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀