2011-02-05 89 views
0

問題是我們組織上的現有應用程序需要多次輸入相同的數據,數據命名轉換在各應用程序之間不一致。設計Web應用程序,它會消耗許多Web服務

當前有許多WCF和asmx Web服務已經部署用於現有的應用程序。但我無法控制任何這些服務,並且他們在不同的國家/地區接待。我可以對現有的應用程序進行小的修改(例如鏈接到具有所需採石場字符串的新應用程序)。

爲了克服重複數據輸入過程,我必須找到解決方案。目前我的想法是創建Web應用程序並保持業務邏輯層參考所有必需的服務。 需要請求對現有應用程序進行一些修改以連接新的應用程序,它將映射所需的數據並在分離的應用程序之間建立連接。

以下是幾個問題目前正面臨着,

  1. 做一個任務可能有很多需要 服務,如果服務 不是在過程 我怎麼可以回滾過程中應對?
  2. 因爲都是服務調用它可能 需要更多的時間做一個簡單的 操作,但我需要提高應用程序的性能 ,如何 我可以提高性能,同時 一個 處理應用程序中的許多服務?
+1

哇!這種明確的要求。還有什麼需要設計一個應用程序! – Mayank 2011-02-05 18:26:03

+0

聽起來就像你不是真正的將業務邏輯與接口分開,如果你依靠多個來源完成響應。我建議將您的架構改造爲傳統的3層系統,或者開發一箇中間層(中間平臺),如果重構/重新開發不是一種選擇,那麼所有這些中間層都可以運行。 – 2011-02-05 18:42:15

回答

3

Biztalk等工具可能適合您的方案,具體取決於您的架構和集成選項。請參閱http://www.microsoft.com/biztalk/en/us/default.aspx

編輯:按照您的編輯 與你的其他問題:

  1. 如果你存儲結果到本地數據庫,你應該能夠做一個數據庫回滾如果任何一個服務調用失敗。如果服務調用將持續很長時間,以便在單個會話的上下文中不會發生這種情況,則可以在數據模型中創建一個排序區域。持有區域可以容納來自您的各種服務呼叫的所有結果。如果全部成功,您可以將保存區域轉移到您的永久存儲區。如果全部失敗,則可以回滾保存區域數據。

  2. 在這種情況下提高用戶響應度的一種方法是異步調用Web服務。這可能需要重新設計頁面,因爲即使所有服務調用都沒有完成,用戶的瀏覽器頁面也會收到其響應。但是,如果您無法控制服務並且必須打電話給他們,這可能是您提高用戶響應度的唯一選擇。