天天看點

.NET實作SOA(1)

SOA:面向服務的架構

SOA的優缺點在這裡就不浪費文字論述了,請參考:

http://www.ibm.com/developerworks/cn/webservices/ws-goodbad/index.html

目前實作SOA的.NET技術有以下幾種

1.Web Service

2.Socket

3.Remoting

4.WCF(Windows Communication Foundation)

這幾種技術有以下優缺點

1.Web Service:成熟的技術,Windows中有IIS強力支援,開發簡單,上手容易。但是底層自由度小,無法定制自己的安全驗證,隻能基于HTTP協定,無法推送資料。不過絕大部分企業和業務都無需主動推送資料。

2.Socket:不用說了,比較底層的東西,優點是可以自由的定制資料傳輸模式,支援TCP/IP,UDP,支援推送資料,但是實作SOA的工作量大,開發效率低,而且實作到最後其實也是一個類似于被閹割的IIS的東西。

3.Remoting:由于Remoting是使用Socket實作,是以其優缺點類似于Socket。當然,工作量會比Socket少。

4.WCF:為了實作SOA,更加深度的封裝了Socket,擁有Socket的優點,并且使得開發效率大幅度提升,而且支援部署在IIS中。但是,研究了一下,配置很麻煩,開發效率達不到理想的地步。而且需要深入學習。

經過比較決定選擇Web Service,畢竟相對于什麼平台架構,運作效率。開發效率才是一個現代企業所追求的東西(能夠對市場快速的反應是企業的核心之一)。

資料流為 用戶端(Winform/Browser)->IIS->SOA Web Service->SOA Web Service Core->Controller(ORM)->DAL(DB Helper)->DB

通過SOA Web Service Core反射用戶端傳來的類名,方法名和參數調用Controller中的方法。這樣可以避免暴露接口。

相關類:SOA Web Service(僅作為一個部署的接口,僅包含接收字元串的“CallMethod”一個Web Method,調用SOA Web Service Core),SOA Web Service Core(解析用戶端穿過來的XML/JSON,序列化成對象,反射調用Controller中的方法,包括調用加密,解密和驗證的功能),AOP(用來做日志和權限驗證),ORM,Model(實體層),DAL(資料通路層),Common(公共方法類),Controller(包括所有的業務邏輯,可以調用AOP做日志和權限驗證)

待續........

繼續閱讀