Web 应用程序可以被视为 client/server 架构的一部分吗?

Can web application be considered part of client/server architecture?

我正在研究 client/server 体系结构和 Web 应用程序。我一直在网上阅读不同的想法和建议。有人说 Web 应用程序不被视为 client/server 架构应用程序,而其他人则说完全相反。我想知道什么才是正确的,如果有人能提供深入的解释,我将不胜感激?

这取决于您的 Web 应用程序的 architecture/design。经验法则是:客户端应用程序必须是(资源)服务器之外的另一个软件。没有"one right way"设计client/server架构

基于 Web 的应用程序最常见的实现是 MVC(模型视图控制器和 SPA(单页应用程序))。

MVC 应用程序(如 ASP.NET 或 ZendFramework)是用于呈现客户端并在后端处理业务逻辑的应用程序,而不是基于 client/server 模型。 (控制器中的操作处理请求、加载一些数据并呈现 HTML 视图作为响应)。

但是:如果您的 MVC 应用程序作为代理在内部调用 "remote" Web 服务(通过 SOAP 或其他方式),则应将其视为客户端应用程序。 例如:CRM 系统是 运行 在 Intranet 网络中,并为桌面客户端提供数据服务。您可以编写一个 Web 应用程序来显示来自这些服务的数据,然后是另一个客户端应用程序。


SPA 架构要求将服务器与前端分离,SPA 是前端,而 SPA 又是客户端应用程序。有了这个要求,您基本上已经实现了 client/server 架构。假设 AngularJS 前端和后端可以是 REST 服务(如 ASP.NET WebAPI 或 Lumen)。

选择托管客户端应用程序的位置不会影响 client/server 体系结构,因为应用程序在执行时仍然是分开的:浏览器在访问者的设备上执行 JavaScript SPA并调用某个数据中心的服务。

Web 应用程序是客户端-服务器体系结构的一部分。任何实现总是有两层或更多层,因此两个或更多进程相互通信。 您可以看一下我的旧演示文稿“Architecture of enterprise (automated) information system - Layers and levels”,它显示了不同的客户端-服务器架构,包括 Web 应用程序案例(幻灯片 "Tiers are physical layers (examples)" 显示了示例)。