2010-04-16 28 views
1

我正在構建一個後端應用程序,需要從50多個第三方Web服務獲取各種計劃的數據,並且該數字將繼續增長。來自這些服務的數據目前可以分爲3種類型,因此每個響應都需要映射到3個已知模式中的一個。使用50+第三方Web服務,我應該使用BizTalk還是僅僅使用C#?

編寫自定義c#打擊每個Web服務似乎是一個管理噩夢沒有關係在代碼中的所有數據映射。

目前的想法是建立在BizTalk 2009的基礎之上,仍然有很多維護,但至少已經有了一個定義良好的具有映射/轉換功能的平臺。

我正在尋找任何人誰可能已經做到這一點的建議,這真的買我們什麼?我知道在BTS中缺乏輪詢功能,但是有足夠的解決方法來解決這個問題。

謝謝!

回答

3

讓人耳目一新聽取有人考慮BizTalk over C#!

我會建議在BizTalk方法,充分利用的ESB工具包2.0和UDDI服務V3,有幾個原因(在BizTalk Server 2009年發現)功能:

  • 50網絡服務端點可維持在UDDI註冊中心 - 一個可以添加和維護未來端點的通用管理門戶;
  • 每個Web服務調用都會被輪詢,並將生成的消息帶到總線上,映射到三條消息之一併傳遞到特定的端點;

關於映射,需要爲三種常見消息類型和每個Web服務響應中的每一種定義模式,那麼需要創建映射將響應消息映射到適當的通用模式。

在這種情況下使用ESB功能的優點在於,該溶液的無方面將被緊密耦合:當接收到web服務響應,正確的地圖被解決(在運行時)上從屬性響應消息。一旦消息映射到其通用架構格式,就可以相應地路由它。

2

在實現了這樣的解決方案之前,確定工具集的一個重要因素就是您需要調用的Web服務的複雜性。藉助BizTalk,您將爲每個第三方Web服務開發轉型。在大多數情況下,這是一項簡單的任務,但您可能會遇到映射變得不平凡的情況 - 在這些情況下,實現映射所需的時間會迅速超過直接在C#中編寫映射所需的時間。

任何Web服務是否需要多個調用?例如。在輪詢它們之前獲取身份驗證令牌?這些服務將需要通過BizTalk調用更復雜的業務流程。

一般來說,我想你會發現它更容易開發和維護一個有針對性的C#解決問題的辦法,不是利用企業系統類似的BizTalk。根據我實施BizTalk解決方案的經驗,所需維護的數量和解決問題的難度大大超過平臺提供的任何收益。但是,我的經驗是BizTalk 2006 R2 - 2009可能解決了我們遇到的問題。

+0

關於第1段:如果映射將變得很難看,沒有任何東西阻止您使用XSLT(可以嵌入C#函數)或在Expression塊中調用的C#組件。 – Jimmy 2012-02-17 14:48:12

相關問題