我工作的一个客户有一个标准,他们要求将新应用程序的数据层包装到 Web 服务中,并将一台机器与托管业务/表示层的位置分开。有人能告诉我这样做有什么好处吗?在我看来,这导致的问题多于解决的问题:
- 导致更多的流量/CPU 时间 - 生成 XML 肥皂请求/响应而不是直接连接到数据库
- 难以调试 - 需要调试两个独立的项目,而不是一个
我猜这可能是出于安全考虑(演示机器暴露在互联网上,而数据层机器没有);但是,我看不出这比直接连接到数据库更安全:登录到数据库的帐户不应拥有比 Web 服务包装器更多的访问权限。
我错过了什么吗?
最佳答案
我认为背后的原因与将域和业务逻辑包装到存储过程中的原因相同。为在不同平台上运行的多个应用程序和客户端提供对数据的安全访问,同时在数据层执行数据完整性检查和其他规则。
这个想法实际上是有道理的,但实现的想法并不完美。如果数据层的流量很大,那么序列化和反序列化数据在性能和设备要求方面会产生巨大的成本。
关于architecture - 三层网络架构 : Are Layers on Separate Machines Beneficial?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1525771/