服务设计模式
SOAP/WSDL 和 RESTful Web 服务的基础设计解决方案
2011
企业应用程序不可避免的一个真理是,它们不是孤立的。你可能专注于解决某个特定的业务问题,但为了做到这一点,你将无法自己捕获所有需要的数据,也无法开发所有处理过程。即使你有时间,这些数据和处理过程也正在其他地方进行,重复既浪费时间,又会导致混乱的不一致。因此,几乎所有企业应用程序都需要与其他应用程序通信。这些外部系统通常不在同一个组织中,而是由一些第三方组织提供。
多年来,这种协作中最困难的部分之一就是建立某种通信路径。这些应用程序通常在不同的平台上编写,使用不同的语言,在不同的操作系统上运行,支持不同的通信协议。但在网络出现的十年里,它已经成为连接问题的解决方案。几乎所有系统都可以打开端口 80 并通过它进行文本通信。
但这仍然留下了许多关于它们应该如何通信的问题。它们应该使用 RPC 风格的 API、面向消息的 API,还是这种流行的 REST 方式?逻辑应该直接嵌入服务中,还是委托给底层对象?我们如何在不破坏客户端的情况下更改现有的服务?
一般来说,在我的系列中,书籍涵盖了其他地方很少涉及的主题,但关于 Web 服务各个方面的书籍已经太多了。因此,当 Robert 的书的草稿出现在我面前时,我认为我不会对此感兴趣。改变我主意的是,它将这些关键问题汇集到一本手册中,以一种我喜欢在值得阅读的技术书籍中看到的风格。
首先,他采用将主题领域分解成模式的方法,因此我们有了词汇来讨论这些主题。然后,他深入研究每种模式,解释每种模式的工作原理以及如何在它们之间进行选择。因此,你可以看到 Web 服务设计的各种方法,并决定哪种方法适合你的环境。他提供了代码示例,以便你可以看到这些模式在实践中的工作方式,但这些模式足够通用,可以应用于许多技术栈。
结果是一本收集了使用 Web 服务的重要设计决策点的书籍,其风格侧重于原则,这些原则即使在技术发生变化的情况下也可能具有价值。