2009-12-03 42 views

回答

2

您可以組織系統在許多不同的方式,有不只是一個分層架構。我從來沒有使用過「外層」一詞。以多種方式對同一個系統進行分析是合理的...邏輯架構,物理架構...

如果我們知道您在討論中的架構中選擇了哪些層,我們只能回答您的問題,那麼應該有可能瞭解服務所在之處。你只告訴我們關於「外部」,我們不知道有什麼替代方案。

我usuaully想想表示,業務邏輯和持久性。在這種情況下,服務在於業務邏輯層。

我要說的是,這是相當合理的考慮服務作爲公共接口的系統,因此在某種意義上,它們位於「外」層。

添加回應意見:

這不是一個簡單的答案。這一切都取決於我們所說的「服務」以及我們的圖層在做什麼。我們舉一個具體的例子:假設我們的用戶界面想要顯示發票的細節。我們可以選擇創建一個服務

InvoiceDto getInvoiceDetails(int invoiceNumber) 

似乎很明顯,這種服務的實施在業務邏輯層。接口可能是一個簡單的庫或Web服務,具體取決於我們在圖層之間的通信方式。

然後,我們決定公開該服務於客戶,使他們的應用程序可以調用在互聯網上的服務。我們將不得不也許暴露了REST服務的Web層的一些代碼

http://dave.org/service/invoice/nnnn 

顯然還有的適配器代碼一點點在網絡層運行,並有我們可以管理認證等,但哪裏是服務?它只是那個過客?這是商業邏輯嗎?這是兩個嗎?

要我想真正的服務的方式是在業務層上運行的邏輯,剩下的只是管道。

+2

我使用3層架構...我有前端,其中用戶登錄和第三方驗證登錄信息爲它檢查從數據庫中詳細..所以在這個基礎上,我想知道在哪裏做服務層在哪裏? – Abhineet 2009-12-03 09:16:20