共用方式為


商務規則架構的架構

下圖顯示「商務規則架構」的元件架構。

商務規則架構元件架構
「Microsoft 商務規則架構」的架構

架構的部分元件會在下列段落中描述。

原則類別

Policy物件是商務原則的單一實例,並提供規則型應用程式所使用的介面。 它提供的抽象概念可以讓應用程式開發人員無需顧慮以下事項:規則存放區位置、從規則存放區擷取規則集、產生基礎規則引擎的執行個體,並確保長期事實會判斷提示至引擎。 在許多情況下,以規則為基礎的應用程式會使用 Policy 物件的並行實例。 這些並行執行個體可以代表相同原則、不同版本的相同原則,或是不同版本的不同原則。

RuleEngine 類別

RuleEngine物件可作為商務原則的執行引擎。 它會使用三個外掛程式元件 (轉譯程式、介面引擎和追蹤攔截器) 以進行實作。 RuleEngine物件會採用RuleSet物件,代表商務原則做為輸入,並使用為規則集設定的翻譯工具、推斷引擎和追蹤攔截器,以實作規則集所定義的商務原則。

事實擷取器

事實擷取器是一個選擇性、使用者定義的外掛程式元件,負責收集長期事實以供商務原則使用。 如需詳細資訊,請參閱 如何建立事實擷取器

在執行之前, Policy 物件實例會將其 RuleEngine 實例提供給事實擷取器,讓您有機會更新規則引擎工作記憶體中的一組事實。 如需詳細資訊,請參閱 短期事實與 Long-Term 事實

規則引擎更新服務

「規則引擎更新」服務會在分散式環境中提供動態商務原則更新。 自動啟動的 Microsoft Windows NT 服務應用程式,會負責訂閱在變更商務原則時所發生的原則部署與解除部署事件。

在一般的企業實例中,商務原則會在更新、測試和版本建立之後,進行部署。 部署包含將已更新的原則新增到安全且持續性的規則存放區,以及選擇性地在存放區上執行邏輯,以便將已更新原則的相關資訊發佈給所有感興趣的合作對象 (請注意,是發佈原則的相關資訊而非原則本身)。

在裝載以規則為基礎之應用程式的伺服器上執行的「規則引擎更新」服務,會接收原則更新通知,並快取資訊以供後續使用。 使用 pub/sub 模型以進行原則更新,可以讓您以近乎即時的方式變更商務原則,而不需將服務停機或中斷。

原則/詞彙撰寫工具

Microsoft 中的商務規則編輯器BizTalk Server為終端使用者和開發人員提供原則和詞彙撰寫功能。

規則存放區

規則存放區是商務原則和詞彙的存放庫。 存放庫可以是簡單的檔案或安全、可調整、持續性且可靠的資料庫,例如 Microsoft SQL Server。 (SQL Server 可做為架構的預設規則存放區)。

快取

商務規則引擎架構提供 RuleEngine 實例的快取機制。 每個 RuleEngine 實例都包含特定原則版本的記憶體內部標記法。

下列步驟說明 當新的原則 實例具現化 (API 或呼叫 規則 圖形的執行) 時的程式:

  1. Policy物件會從規則引擎快取要求RuleEngine實例。

  2. 如果原則版本的 RuleEngine 實例存在於快取中, RuleEngine 實例就會傳回至 Policy 物件。 如果 RuleEngine 實例無法使用,快取會建立新的實例。 具現化 RuleEngine 實例時,如果已針對原則版本設定,它就會建立新的事實擷取器實例。

    Policy物件上呼叫Execute方法時,會發生下列步驟:

  3. 如果事實擷取器存在,Policy 物件會在事實擷取器實例上呼叫 UpdateFacts方法。 事實擷取器的 方法實作可能會判斷長期事實到 RuleEngine的工作記憶體中。

  4. Policy物件會判斷在Execute呼叫中傳遞之Array中包含的短期事實。

  5. Policy物件會呼叫RuleEngine上的Execute

  6. RuleEngine會完成執行,並將控制權傳回至Policy物件。

  7. Policy物件會從RuleEngine中撤銷短期事實。 由事實擷取器所判斷提示的長期事實將保留於規則引擎的工作記憶體中。

    Policy物件上呼叫Dispose方法之後,RuleEngine實例就會釋回規則引擎快取。

    規則引擎快取將會有多個指定原則版本的規則引擎執行個體 (若負載需要它),而每個規則引擎執行個體都有自己的事實擷取器執行個體。

另請參閱

商務規則引擎