2010-08-16 65 views
0

我在web開發工作的通常方法是將項目分爲三個層次,分別是:這種web開發方法更多的是MVC還是SOA?或兩者?

  1. 數據層 - 訪問各種關係數據庫的基礎上,要求
  2. 服務器層 - 提供給服務客戶端控制器調用。
  3. 客戶端層 - 呈現視圖以及加載控制器的JavaScript。

基本上從我的理解來看,這種方法是MVC性質的,也就是說,控制器在服務器端調用模型,並期望從那裏得到結果。一旦收到結果,控制器就會調用適當的渲染方法來修改視圖,這是瀏覽器上顯示的XHTML/CSS。

但是,我不確定這也可以稱爲SOA(面向服務的體系結構)?

由於服務器和客戶端之間的通信是通過JSON完成的,所以我可以通過更改數據訪問模塊輕鬆地將服務器端語言切換到另一個語言。我認爲這意味着服務器和客戶端之間的鬆散耦合,因爲服務器只專注於提供服務。通過SOAP的Web服務也可以引入,但是我更喜歡JSON,因爲根據我的知識,它更容易實現。

有什麼想法?

回答

1

MVC是一種演示模式,實際上與SOA無關。

現在MVC中的模型,尤其是Web開發中的模型已經意味着View模型,您的真實模型或領域模型在BLL中,或者包含在服務層後面。 SOA可歸結爲您使用設計,分區和託管業務邏輯的範例。

你可以一起使用兩個嗎?當然可以!您的MVC控制器可以調用查詢域模型的服務端點,這可以作爲SOAP,純XML或者您更喜歡JSON來實現,協議的選擇不是SOA所做的。 SOA的一個變體是REST,它將修改後的範例應用於設計服務端點的方式。

將返回的信息按照視圖模型(模型中的表示層知道它)並呈現適當的視圖。

以下是一些實際SOA資源的鏈接。

我建議你閱讀Thomas Erl和Roger Sessions的文章,這將使你很清楚SOA是什麼。

SOA Design Pattern

Achieving integrity in a SOA

Why your SOA should be like a VW Beetle

相關問題