通过将Web服务引入现有架构,开发人员可以想到一种可能的架构,以扩展Web应用程序.在这种情况下,主要关注的是数据的完整性和安全性.
下图将提出开发人员可以想到的两种方法.
此体系结构指示所有请求应由单个服务层处理.因此,只有服务层才能与数据库通信并满足Web应用程序和网关的要求.
第二种方法显示Web应用程序直接与DB通信.例如,管理门户.同时,可能会有一个外部Web服务也与DB通信.此方法可能会导致违反数据完整性的情况.但是,引入外部Web服务可能比重构现有Web应用程序从开发人员端调用Web服务要容易.因此,我们仍然可以通过使用外部Web服务和单独的Web应用程序而不是同时使用单个Web服务层满足Web应用程序和网关的要求来折衷长期后果.任何对此的合理评论将不胜感激.
最佳答案
您可以构建一个可以访问所有内容的API.换句话说,Web应用程序可以使用Ajax / WebSockets通过rest / rpc api运行.
由于所有内容都通过API进行,因此不应随时强制执行数据完整性.另外,您将与Client,Api和Database清晰分开.
这将使您可以用其他任何方式替换数据库,而不会破坏系统的其他部分.