2010-09-20 34 views

回答

3

簡短的答案是:不,我知道的。

要牢記的另一件事(你可能已經意識到)是抽象層次非常重要。

一個層次,SOA中的「服務」是業務服務 - 不是像Web服務這樣的技術服務;實際上在這個層面上,實現的想法是完全不相關的。這更多的是企業架構和企業架構級別。

下部向下,有可以稱之爲面向服務的設計,其中軟件系統是建立在一個方式,是基於服務 - 它提供的東西是很容易被其他系統所消耗(或大部分消費服務同樣的方式)。即使在這一點上,我們也沒有談論像technologu這樣的實現特定的東西 - 它更多的是一種思維方式 - 系統如何安排(架構)。

下一個層次是軟件系統提供服務作爲由地址,綁定和契約(SOA的ABC)定義的物理端點。

在這個級別,你將能夠找到實現;我想起了NServiceBus(不是我用過它) - 但你不需要服務巴士來做「服務」導向的建築。

最後,我不確定您在問題的上下文中如何查看ASP.NET。如果你是基於.Net的,那麼WCF是開始尋找的地方;其中一種綁定類型是Web服務,它是基於Web的類型,屬於ASP.NET的範疇。或者,如果您正在構建網站或Web應用程序,那麼應用程序提供或使用的服務將位於數據訪問或服務層 - 與業務邏輯(BL)層鬆散耦合 - 因此它們並不實際直接關係到你正在做一個Web應用程序的事實,因爲這個架構可以適用於不同類型的應用程序(而不僅僅是Web)。

+0

謝謝,你指出我的困惑!我們公司有一個開發架構,我們稱之爲Core。我們的核心是基於OOP開發的,我正在研究將體系結構改爲SOA。在我們的Core中,我們已經將CRUD存儲庫數據服務層(使用實體框架),服務層,編排層以及最後一個UI(ASP.NET WebForm)進行了廣義化。我已經看到NServiceBus和MSMQ,但正如你所提到的,它不是必須使用這些類型的技術,它只是在中期。我想改變和修改我們的核心。 – 2010-09-23 17:57:50

+0

PS:我們在服務層實現函數(如AddOrder,ApproveOrder,...),並在編排層中使用它們。 – 2010-09-23 18:00:30