InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

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

作者 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项目实施和咨询经验,专注于SOA及云计算的融合。

说的对。 发表人 陈 实 发表于
Re: 说的对。 发表人 Lan Enoch 发表于
重用的概念就是不清的! 发表人 熊 军 发表于
Re: 重用的概念就是不清的! 发表人 李 新 发表于
Re: 重用的概念就是不清的! 发表人 马 国耀 发表于
Re: 重用的概念就是不清的! 发表人 Lee Vincent 发表于
重用本身是正确的!! 发表人 bin wu 发表于
重用的对象? 发表人 D W 发表于
  1. 返回顶部

    说的对。

    发表人 陈 实

    就全球范围的服务重用,现阶段是没有意义的,现阶段服务重用主要集中在公司,集团内部,其实就算是在公司与某个集团内部的重用也是很困难的。

  2. 返回顶部

    Re: 说的对。

    发表人 Lan Enoch

    如果谈到服务重用一般会具体到某个领域中。比如在财务软件中、办公软件中,有些业务是可以在各自的领域中被重用,关键在于如何抽象业务和构建服务;还有一些是属于基础的服务,比如认证服务等,从各种领域中被抽象出来,这种服务的价值往往比较容易被认同和使用。

  3. 返回顶部

    重用的概念就是不清的!

    发表人 熊 军

    什么叫重用?是被不同的地方多次调用吗?可这是服务的本质啊,无所谓重用不重用的。

  4. 返回顶部

    Re: 重用的概念就是不清的!

    发表人 李 新

    赞同。
    作者/译者好像没有确实指出文章中“服务”与“重用”上的差别。只能从上下文推测“服务重用”是指服务尽可能多的服务于不同业务。从这个角度看,服务确实不应该过分强调“重用”,而应该是“价值”——好用。

  5. 返回顶部

    Re: 重用的概念就是不清的!

    发表人 Lee Vincent

    这都要讨论? 重用当然不是调用。
    如果一个服务不断在新的应用中部署,然后在该应用中提供同样规格的功能(也可能经过定制稍有不同),这就是服务重用。

  6. 返回顶部

    Re: 重用的概念就是不清的!

    发表人 马 国耀

    指出文章中“服务”与“重用”上的差别

    服务和重用是两个不同级别的东西,无法比较。


    服务可能被重用,也看能不被重用。


    服务的重用不是被多次调用,而是这个功能在不同的应用系统中使用,如查询客户信息服务,可能存在于CRM系统中,那么Call-center这个系统可以使用CRM系统的中的这个服务,也可以自行开发这个服务,如果使用CRM中的这个查询客户信息的服务的话,那么这个服务就认为是被重用了。


    我个人的理解是:重用指得是不需要自行开发而是使用别人的服务的做法。

  7. 返回顶部

    重用本身是正确的!!

    发表人 bin wu

    重用本身是正确的!!只是重用的要求比较高,一般在开发的时候用户与开发者就应该想好该服务的重用性.当然服务本身也是应该有生命的,当太OLD的时候就应该DIE.至于服务是否会被重用,这应该是从多个角度来看.商业,市场,程序调用,等,但如果都要考虑那么多问题,那何必提出重用.
    比如我是IBM提供了银行汇率计算服务,那你时候的时候考虑安全,效率,费用等等诸多问题,结果说因为你是微软所以不用,那这样有意义吗?所以重用是一种方法论,至于环境场景需要人或去协调,但这不能说"重用"是过分,或者说"重用"是不对的!

  8. 返回顶部

    重用的对象?

    发表人 D W

    “重用”这个概念下,隐含着“重用哪些资源”的概念。我认为,重用应该关注的是数据,是业务规则,而不是具体的应用或者流程。