“服务重用”是否被过度使用?

  • Mark Little
  • 马国耀

2009 年 7 月 13 日

话题:SOA语言 & 开发架构

服务重用经常作为 SOA 的一个重要特征被提及。很多人甚至用它来衡量 SOA 是否成功。如Eric Roch曾说:

毫无疑问,在衡量 SOA 成功时,最明显的尺度当然是服务重用。开发团队间为实现重用的最大化而展开的友好竞争是宣传和鼓励服务开发和重用的最好方法。

或者 IBM 的立场

重用在 SOA 中占很大比重。它是 SOA 简洁性的一部分,也是将服务串接起来解决端到端的业务问题或流程的一部分。

正如上面所说,在衡量 SOA 成功与否时,服务重用的总数经常被作为重要的衡量指标

服务重用即是 SOA 的特征之一,也是 SOA 带来的好处之一。

然而,事情并非那么简单,早在 SOA 刚刚兴起时就有人认为服务的重用无足轻重,或者,至少不能被做为 SOA 背后的主要驱动力。如Dave Chappel 在 2006 年说道:

为重用而创建服务,就必须要预见未来……服务创建者怎么知道未来的应用需要什么?“守株待兔(if-you-build-it-they-will-come)”式的方法很难实现真正的重用。

现在Burton 的 Richard Watson也加入了讨论,他认为“人们对于重用的预期一直过高”;开发人员、用户和决策者不应该把眼光定格在服务重用上。他说:

服务有可能永远都不会被重用,但它仍然以其他的方式在创造价值:通过适配的方式、维护成本低 、减少冗余、通过政策的坚实执行来提高安全性和合规性等,这里仅列举少数几个其他方面的价值。过分强调重用让我们忽视了服务的其他价值。

他提议将重用的价值问题分解成一个方程,随着时间的推移来计算重用的数量及节省的成本,当然也要将部署以及应用程序的具体要求等因素考虑在内。依 Richard 看来,我们真正需要重视的是服务的价值,而重用仅仅是其 中一小部分而已。他还说:

[……] 服务的价值偶尔可以体现出来,比如当汇报制度的改变要求使用一组不同的规则并且需要修改的是某个孤立的点,而不是全盘的修改。它将我们带回到服务“使用”的价值,而不是服务“重用”的价值。

对象重用经常被曲解成是面向对象的主要好处,但实际往往相悖于理论。最终,人们逐渐不再用它,而关注 OO 带来的其他能够摸得到的好处。服务重用是否会重蹈覆辙呢?

查看英文原文Is Service Reuse Over Used?

SOA语言 & 开发架构