[英]BizTalk Internal and External schemas
我正在網上閱讀你將你的“外部模式”與你的“內部模式”分開,並且永遠不會將“內部模式”暴露給任何外部參與者。
如果我的解決方案僅作為消息總線在兩個現有系統之間創建松散耦合,那么我真的需要任何內部模式嗎?
System A makes a Request(Message with SchemaA) to Biztalk
Biztalk Maps SchemaA to SchemaB
Biztalk forwards request of type SchemaB to SystemB
SystemB returns ResponseB
Biztalk maps ResponeB to ResponeA
Biztalk routes the result back to System A
我看不到擁有內部架構和地圖的專業人士:
SchemaA - > SchemaInternal - > SchemaB
?
術語canonical schema
通常用於描述內部模式(在上一個示例中為SchemaInternal
)到BizTalk等集成機制的創建。
規范模式的使用被廣泛認為是最佳實踐 ,因為它將您的BizTalk流控制映射與任何“其他”系統模式分離(此處的其他系統可能在您的組織內部或在其外部,例如供應商,客戶或合作伙伴系統)。 這樣,如果通過BizTalk集成的任何系統發生變化,它只是外部模式,並映射到需要更改的規范模式。 它還可以防止外部模式中固有的外部約定,命名和層次結構差異泄漏到您的內部BizTalk工件中。
通常,傳入消息到規范模式的轉換盡可能早地完成,例如在接收上,並且類似地,盡可能晚地完成規范的轉換,例如在發送端口映射上。
Canonical Schemas(CS)的一個常見場景是單個編排或消息流對於多個交易方是共同的(例如,您可能有許多供應商使用不同的系統,但是,所有供應商都提交了處理發票)。 在這種情況下,每個新的供應商系統只需要與您的CS集成 - 不需要添加或復制新的處理邏輯 - CS實際上可以減少此類情況下的總體工作量。 ( 這里詳細解釋了nxm問題)。 CS至關重要的另一個例子是您的業務切換消息 - 例如,醫療行業轉換將有許多醫生和實踐系統發送授權請求和發票,這些需要映射並路由到多個醫療基金(醫療援助)系統。
和FWIW:
在描述的解決方案中,您不需要內部模式。 那么你可以從System Y的用戶那里隱藏System X的模式,但這並不是那么重要。
在這種情況下,外部=公共,意味着在您的組織之外。
該指南旨在保護內部實施細節,命名約定等。
如果系統A和系統B都在您的組織內,那么“安全性”不是問題,但您的應用程序仍然可以向消費者提供“外部”架構,以保護他們免受應用程序的內部更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.