【发布时间】:2019-04-15 04:54:15
【问题描述】:
我正在研究客户端/服务器架构和 Web 应用程序。我一直在网上阅读不同的想法和建议。有人说 Web 应用程序不被视为客户端/服务器架构应用程序,而另一些人则完全相反。我想知道什么是正确的,如果有人可以提供深入的解释,将不胜感激?
【问题讨论】:
标签: web architecture client-server software-design
我正在研究客户端/服务器架构和 Web 应用程序。我一直在网上阅读不同的想法和建议。有人说 Web 应用程序不被视为客户端/服务器架构应用程序,而另一些人则完全相反。我想知道什么是正确的,如果有人可以提供深入的解释,将不胜感激?
【问题讨论】:
标签: web architecture client-server software-design
这取决于您的网络应用程序的架构/设计。经验法则是:客户端应用程序必须是(资源)服务器之外的另一个软件。设计客户端/服务器架构没有“唯一正确的方法”。
基于 Web 的应用程序最常见的实现是 MVC(模型视图控制器和 SPA(单页应用程序))。
MVC 应用程序(如 ASP.NET 或 ZendFramework)是用于呈现客户端并在后端处理业务逻辑的应用程序,并且不基于客户端/服务器模型。 (控制器中的操作处理请求、加载一些数据并呈现 HTML 视图作为响应)。
但是:如果您的 MVC 应用程序充当代理在内部调用“远程”Web 服务(通过 SOAP 或其他方式),则应将其视为客户端应用程序。 例如:CRM 系统运行在 Intranet 网络中,并为桌面客户端提供数据服务。您可以编写一个 Web 应用程序来显示来自这些服务的数据,然后是另一个客户端应用程序。
SPA 架构要求将服务器与前端分离,SPA 是前端,而前端又是客户端应用程序。有了这个要求,您基本上已经实现了客户端/服务器架构。假设 AngularJS 前端和后端可以是 REST 服务(如 ASP.NET WebAPI 或 Lumen)。
选择托管客户端应用程序的位置不会影响客户端/服务器架构,因为应用程序在执行时仍然是分开的:浏览器在访问者的设备上执行 JavaScript SPA 并调用某个数据中心中的服务.
【讨论】:
Web 应用程序是客户端-服务器架构的一部分。任何实现总是有两层或更多层,因此两个或更多进程相互通信。 您可以查看我的旧演示文稿“Architecture of enterprise (automated) information system - Layers and levels”,该演示文稿展示了不同的客户端-服务器架构,包括 Web 应用程序案例(幻灯片“层是物理层(示例)”显示了示例)。
【讨论】: