在建立調解原則時,使用 WSRR 作為「原則編寫點」及使用 WebSphere® DataPower® 作為「原則強制執行點」的實作詳細資料。
您可以使用 WSRR 來建立所有 SOA 原則,包括 SLA(服務等級協定)原則、調解原則、監視原則,以及自訂原則。您可以使用 Business Space 使用者介面來建立、更新或刪除 WSRR 中的原則文件。原則文件可以包含原則表示式,指定特定原則網域的一些原則。或者,您可以建立可從其他文件組合現有原則的原則文件。使用原則 ID 來參照個別的原則,該 ID 是在您新增原則至文件時所指定。原則表示式代表原則的宣告,並與 WS-Policy 文件中的 <wsp:Policy> 元素相等。
若要在 Business Space 中建立調解原則,請參閱編寫新的調解原則。
「服務等級協定 (SLA)」源自商業需求,要求服務提供的服務品質必須符合指定的標準。當設計服務時,會建立功能需求,以指引服務進行之動作的邏輯。非功能需求會平行指定,作為該服務的分析及設計的一部分,以指定預期服務提供的服務品質。例如,企業可能具有一個服務,提供資訊以回應客戶的網際網路查詢。目標是要在 3 秒內傳回回應。作為端對端交易操作的一部分,決定此服務必須在 2 秒內傳回其資訊,才能符合企業的非功能需求。
您可以撰寫一個原則,對服務的效能實作執行時期檢查,並在符合需求時採取動作,以保證服務符合其 SLA。例如,您可能有一個服務主要端點,其通常(95% 的時間)能夠在兩秒內提供服務回應。SOA 設計師會在另一部伺服器上建立一個次要端點,可以用作主要端點中斷時的快速待命端點,但也對該端點授權,可在主要端點無法承受交易負載時用於溢位的資料流量。您可以撰寫一個原則,檢查服務回應時間,並在必要時重新遞送資料流量,以符合 SLA。
另一個透過執行時期原則保持 SLA 的範例是,服務正在回應具有各種消費者之交易,而每一個交易都有不同優先順序層次的狀況。簡易範例可能會有 "gold" 及 "bronze" 客戶,其中企業僅對 "gold" 客戶保證特定的服務品質。在此範例中,您可以檢查消費者是否為 "gold",並將其重新遞送至次要端點,讓要處理的 "bronze" 客戶有較慢的回應時間。企業之所以做出此決定,是因為 "bronze" 客戶提供的增量收益不足以支應為符合 "gold" 客戶的 SLA 而操作回應時間的費用。
在第三個範例中,您可能會遇到服務已盡可能提供的狀況,但是當它判定其低於負載時,會將來自低優先順序消費者服務的訊息置入佇列,或甚至拒絕。當批次常式在非預期的時間,使得系統填滿消費者的要求時,這是其中一個範例。若要保護服務品質,您可以建立一個僅在上班時段生效,並在此期間拒絕所有批次要求的執行時期原則。
一般來說,調解原則會容許對來自用戶端(消費者)送入的訊息進行驗證及轉換,然後再呈現給伺服器(提供者)。
原則可支援此類型的訊息驗證及轉換。可以僅對提供者服務、對特定的消費者-提供者配對,或對提供者服務的「匿名」消費者指定原則。「匿名」客戶的原則提供一種定義預設原則的方法,僅在沒有套用其他原則時套用至消費者。使用此功能容許對未表明身分的不良消費者指定原則。這類消費者服務便可以拒絕其交易。這可能有助於防止嘗試使系統填滿交易,讓提供者服務停擺之消費者駭客的阻斷服務攻擊。
可以提出調解主張,容許執行時期原則控制服務的 SLA、從消費者到提供者的訊息轉換,或驗證消費者訊息的訊息綱目。
SLA 原則條件(特殊類型的調解原則)有效地容許具有一個條件,以及一組要執行的動作(視條件如何評估而定)的傳統 if-then-else 建構。指定條件是選用的。如果未指定條件,則相等於評估為 True 的邏輯條件,並且會相應地強制執行任何指定的動作。
條件(如果指定的話)必須由布林表示式或排程規格組成,或條件可以同時包括這兩者。
排程
排程(如果指定的話)可識別原則何時生效。日期和時間是由本端「原則強制執行點」評估,而且使用的時區為「原則強制執行點」的時區。如果未指定排程,則一旦從「原則編寫點」下載原則至「原則強制執行點」即會啟動原則,並無限期繼續。
排程會定義選用的開始日期及選用的停止日期、選用的每日時間範圍,以及選用的星期幾清單。例如,排程可以定義為從 2012 年 10 月 1 日到 2012 年 10 月 30 日,從星期三及星期日的上午 8:00 到下午 5:00 生效。
調解原則條件表示式
條件表示式(如果指定的話)為指定布林表示式的非重複元素。
表示式包含三個參數:Attribute、Operator 及 Value,加上選用的 Interval 及 Limit 參數。如果 Attribute 及 Value 上應用的 Operator,加上適當的 Interval 及 Limit,評估為 True,則表示式評估為 True。Limit 元素僅與 HighLow 及 TokenBucket 運算子搭配使用。如果未指定,則 Limit 的值為 0。如果未指定 Interval,則預設值為 60 秒。
屬性 | 說明及類型 |
---|---|
ErrorCount | 在此監視間隔期間觀察到的錯誤數目。 |
MessageCount | 在監視間隔期間截取的實際訊息數目。 |
InternalLatency | 內部延遲(處理時間)(以秒為單位)。 |
BackendLatency | 軟體驅動裝置到伺服器延遲(以秒為單位)。 |
TotalLatency | 後端系統與內部延遲之和(以秒為單位)。 |
運算子 | 意義 |
---|---|
GreaterThan | 簡式數值演算法,當 Attribute 大於定義的 Value 時,即會評估為 True。 |
LessThan | 簡式數值演算法,當 Attribute 小於定義的 Value 時,即會評估為 True。 |
TokenBucket | 容許激增的速率型演算法。此演算法的組成為儲存區與 Limit 記號的上限容量。儲存區會以每個 Interval 的 Value 記號的常數速率重新填入,然而對於每一個單位的 Attribute,則會移除一個記號。儲存區中沒有記號時,此演算法會評估為 True,否則評估為 False。以下範例可協助說明此演算法:假設 Limit=100、Value=5、Interval=1 秒,以及 Attribute=MessageCount。
|
HighLow | 當 Attribute 達到指定為 Value 的高臨界值時,此演算法會評估為 True,並繼續評估為 True,直到 Attribute 達到指定為 Limit 的低臨界值。 |
當 wsme:Operator 為 HighLow 時,它會定義低臨界值,而 wsme:Value 則會定義高臨界值。指定的臨界值必須低於 wsme:Value 的臨界值。未指定時,預設 Limit 為 0。
當 wsme:Operator 為 TokenBucket 時,它會定義激增的大小上限,或儲存區中的記號數上限,而 Value 則指定重新填入儲存區的速率,以每個 Interval 的記號數表示。未指定時,預設 Limit 為 0,然後 TokenBucket 相等於 GreaterThan 作業。
值 | 說明 |
---|---|
SOAPBody | 「SOAP 主體」元素的內容,而不特別處理 SOAP 錯誤。(預設值) |
SOAPBodyOrDetails | SOAP 錯誤的詳細資料元素的內容,否則驗證「主體」的內容。 |
SOAPEnvelope | 整個 SOAP 訊息(包括封套)。 |
SOAPIgnoreFaults | 如果訊息是 SOAP 錯誤,則不進行驗證,否則驗證「SOAP 主體」的內容。 |