【问题标题】:is there a difference between web app architecture and web app architectural designWeb 应用程序架构和 Web 应用程序架构设计之间有区别吗
【发布时间】:2021-06-02 21:43:00
【问题描述】:

我对这些术语有点困惑。 SOA(面向服务的架构)、MVC 和微服务有什么区别?

【问题讨论】:

    标签: model-view-controller design-patterns architecture microservices soa


    【解决方案1】:

    SOA 和微服务是设计系统(具有多个组件)的一种方式:

    SOA 或面向服务的架构定义了一种通过服务接口使软件组件可重用的方法。这些接口采用通用通信标准,可以快速集成到新应用程序中,而无需每次都进行深度集成。1

    与 SOA 一样,微服务架构由松散耦合、可重用和专用的组件组成。但是,微服务通常不是在企业范围内采用,而是用于构建单个应用程序,使它们更加敏捷、可扩展和弹性。2

    模型视图控制器 (MVC) 是一种实现系统给定组件的方法,您可以在其中分离模型(业务逻辑和数据)、视图和控制器(表示/用户界面)。

    【讨论】:

    • 在MVC中,模型包括数据和业务逻辑。视图和控制器都是表示工件。
    • 应用程序逻辑并不存在于控制器中,而是存在于应用程序服务中,它们是service layer的一部分。控制器只是将请求数据委托给他们。表示逻辑(“MVC”中的“V”和“C”)中的业务逻辑(“MVC”中的“M”)的MVC ensures the separation
    • 根据您的输入调整了答案。不过,您链接的服务层页面似乎涵盖了与 MVC 不同的内容。
    【解决方案2】:

    SOA 和微服务是两种类型的软件架构。因此,它们的定义很模糊,每个建筑师对它的确切含义都有自己的看法。没有标准机构可以决定特定的软件架构是否属于某个类别。

    微服务可能是面向服务的,因此虽然这两个术语的含义并不完全相同,但在实践中可能会有很大的重叠。

    与这两种架构风格相反,模型视图控制器(MVC)是一种设计模式,是一种更具体的描述。架构风格试图描述系统的大型组件如何交互,而设计模式则描述了一小段源代码的组织方式。

    设计模式往往被更具体地描述,这可以更容易地确定一段特定的代码是否是模式的示例。即便如此,设计模式名称可能会发生明显的语义漂移,因此与原始定义相比,模式的现代解释可能无法识别。 Repository pattern 可能是最引人注目的例子,但 MVC 可能紧随其后。在我看来,每个自称为“MVC 框架”的应用程序框架对 MVC 的含义都有自己的看法。不同的解释之间似乎没有什么共同点。

    【讨论】:

    • 非常感谢。但我觉得我还需要一些研究。我正在撰写关于构建 Web 应用程序的论文,在设计方面,我必须涵盖以下内容:架构设计、程序设计、UI 设计和数据库设计。我不确定架构设计是什么意思,因为我的主管告诉我搜索 SOA,每当我在谷歌上搜索“Web 应用程序架构类型”时,我得到的是 MVC 和其他,而不是 SOA,这使得我很困惑。
    猜你喜欢
    • 1970-01-01
    • 2011-09-30
    • 2013-12-08
    • 2010-10-06
    • 2010-12-23
    • 2022-11-03
    • 2013-12-29
    • 2014-10-26
    • 2011-09-08
    相关资源
    最近更新 更多