我使用WCF 4.0進行工作,並從技術角度對如何構建服務有個很好的想法。現在我已經和WCF一起工作了3年。SOA:圖書館vs服務:圖書館可以是更好的選擇嗎?
儘管這樣我和其他人我談有什麼應該是軟件,構成了一個服務單位,什麼不應該不同的想法。我所交談的很多人都認爲服務應該細化。事實上,我以前的公司花了很多時間把他們的一些會議變成了服務(所以我被告知)。
在許多情況下,我不能看到如何服務好......,也許它並不總是應該。我給你舉個例子:在我們的系統中,我們有一個真正發展到執行兩個不同獨立工作的大型服務。我將它分成兩個服務,原因有兩個:性能和故障隔離(我們自己託管在Windows服務中,沒有IIS)。事情是,儘管服務兩個獨立的業務流程(一個服務可能會關閉而不會影響另一個服務),但它們都具有相當一般的業務邏輯。
現在一些提醒我,這個共同的邏輯應該在SOA校長被分隔成3服務,並通過兩個新分裂的服務消費。正如我所看到的,這只是部分解除了首先分裂大服務的好處:我們引入了性能瓶頸和單點故障。如果第三個服務的主機進程關閉,則1和2不能再繼續工作。我們現在發生在我們擁有許多服務「深層」結構的地方。一個出去,任何依賴服務的鏈超時,因爲他們的電話從來沒有回答。
現在,如果公共邏輯只是一個庫而不是服務,那麼我們就可以獲得代碼重用的好處,沒有性能瓶頸和故障隔離,因爲每個服務都在自己的內存中執行自己的程序集副本。也沒有序列化開銷。
什麼是人民對這個想法?在決定什麼時候應該成爲服務或圖書館時,是否有規則或一般準則?任何其他建議?
感謝 邁克爾
+1優秀的問題 – 2011-05-18 07:16:41