【问题标题】:Is this web development approach more MVC or SOA? Or both?这种 Web 开发方法更像是 MVC 还是 SOA?或两者?
【发布时间】:2011-03-30 06:20:24
【问题描述】:

我通常的 Web 开发工作方式是将项目分成三层,分别是:

  1. 数据层 - 根据要求访问各种关系数据库
  2. 服务器层 - 为客户端控制器调用提供服务。
  3. 客户端层 - 呈现视图以及加载控制器 javascript。

根据我的理解,这种方法基本上是 MVC 性质的,即控制器 javascript 在服务器端调用模型并期望从那里得到结果。一旦收到结果,控制器就会调用适当的渲染方法来修改视图,即浏览器上要显示的 XHTML/CSS。

不过,我不确定这是否也可以称为 SOA(面向服务的架构)?

我可以轻松地将服务器端语言转换为另一种语言,只需更改数据访问模块,因为服务器和客户端之间的通信是通过 JSON 完成的。我认为这意味着服务器和客户端之间的松散耦合,因为服务器只专注于提供服务。也可以通过 SOAP 引入 Web 服务,但我更喜欢 JSON,因为根据我的知识,它更容易实现。

有什么想法吗?

【问题讨论】:

    标签: model-view-controller soa


    【解决方案1】:

    MVC 是一种表示模式,实际上与 SOA 无关。

    如今,MVC 中的模型,尤其是 Web 开发中的模型,已经变成了 View Model,您的真实模型或域模型在您的 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

    【讨论】:

      猜你喜欢
      • 2011-05-03
      • 2014-03-24
      • 1970-01-01
      • 2012-02-17
      • 2016-07-11
      • 1970-01-01
      • 2014-11-21
      • 2012-04-12
      • 1970-01-01
      相关资源
      最近更新 更多