2010-12-09 145 views
1

我計劃在應用程序層和數據庫層之間建立另一層以減少數據庫訪問。WCF,Web服務或休息

有200個應用程序服務器和一個巨型數據庫服務器。

我不想要200服務器來查詢數據庫服務器。因此計劃在後面建立另一個層並緩存數據,例如緩存場。此層中的服務器將定期查詢數據庫並在服務層中緩存結果,客戶端將查詢WCF服務器。

我不是在談論分佈式緩存,我已經有了。

我不熟悉WCF,這是否是一個很好的選擇來實現此目的?

你會推薦REST嗎?或網絡服務?

回答

3

WCF 是Microsoft堆棧上Web(和其他)服務的新標準,它還支持構建基於SOAP和基於REST的服務。

它也非常適合處理內部(公司內部局域網/內聯網 - 使用快速高效的TCP/IP通信)以及面向外部的服務。它與Windows Azure和雲接口,如果你需要支持的話。它可與任何SOAP或REST客戶端交互操作,具有高度可配置性,高度可擴展性,並且可以提供統一的編程模型。它可以與消息隊列進行交互,如果你需要的話 - 都具有相同的編程經驗。

基於WCF,您可以輕鬆定義數據庫模型並將其作爲基於REST的OData提供 - 您可以在幾分鐘內將數據庫置於Web上(如果您喜歡冒險並希望這樣做。 ......但至少可以!)。

所以:是的! WCF肯定是要走的路!

至於資源:有MSDN WCF Developer Center它包含了從初學者的教程到文章和示例代碼的所有內容。

此外,檢查出的screen cast library up on MSDN對一些信息的真正有用的,10-15分鐘的塊在幾乎與WCF的任何話題,你可能會感興趣。

1

標準的SOAP Web服務就像使用WCF時一樣簡單,並且同時控制服務器和客戶端。

您需要在服務器端做的所有事情都是定義您的操作合同和數據合同,客戶端將能夠自動構建用於訪問Web服務的代理類。

定義操作和數據合同時需要學習一些東西,但一旦完成,客戶端可以非常容易地在設計時戳服務,訪問生成的WSDL並自動生成代理類以訪問新的操作與他們的數據合同。

+0

感謝您的回答。 – DarthVader 2010-12-09 20:16:24

+1

沒有問題。如果你正在考慮走這條道路,請告訴我,我可以提供一些幫助,以及避免 – MStodd 2010-12-09 20:18:51

+1

我不認爲易於做故意的事情嗎?我不確定這是最好的比喻。 ; 0 – kenny 2010-12-09 20:55:18

1

我就很少使用REST作爲主要互動應用服務器和數據庫服務器之間的機制如果交互的兩端由您控制並且位於同一個數據中心並且可以同步更新,那麼創建RESTful系統所需的額外工作可能會被浪費。

就我個人而言,我會更傾向於看消息類型系統。像nServiceBus一樣。