RSS订阅
RSS订阅TT SOA
您现在的位置:TT SOA > SOA基础 > 调整合适的Web服务粒度

调整合适的Web服务粒度

2008-5-27  选择字号:  | |
打印本文章

导读:调整合适的Web服务粒度,Web服务可以通过远程进行访问。这意味着需要花大量的资金在实现信息往返上。由于这个原因,你需要重新审视服务的设计,去除不必要的调用。

关键词:Web服务 粒度 性能 规模 服务

正在加载数据... 【TechTarget中国原创】我读过很多关于Web服务方面的参考文献,文章中都强调设计服务的粒度是如何的重要,确实是这样的。但是实际上,针对如何使粒度合适,这些参考文献并没有提出任何有用的建议。虽然这个问题可能没有完美的答案,因为至今也没有一本指导书可以使你做到确保粒度时时刻刻保持最优,但是下面的这些分析也许可以给你很大的帮助。

  你可以从以下三个关键方面来考虑粒度问题:

  性能和规模
  事务处理和状态
  商业适应性

【TechTarget中国原创】我读过很多关于Web服务方面的参考文献,文章中都强调设计服务的粒度是如何的重要,确实是这样的。但是实际上,针对如何使粒度合适,这些参考文献并没有提出任何有用的建议。虽然这个问题可能没有完美的答案,因为至今也没有一本指导书可以使你做到确保粒度时时刻刻保持最优,但是下面的这些分析也许可以给你很大的帮助。

  你可以从以下三个关键方面来考虑粒度问题:

  性能和规模
  事务处理和状态
  商业适应性

  性能和规模

  Web服务可以通过远程进行访问。这意味着需要花大量的资金在实现信息往返上。由于这个原因,你需要重新审视服务的设计,去除不必要的调用。例如,在为每一个项目调用“添加项目”之后,不要创建包括“创建PO模板”的购买订单 - 而是创建唯一的“创建PO”服务。

  下面是一些简单的经验方法:

  把执行时间少于5秒的(相关)操作组合起来 (因为就算是一个简单的“ping”,它的时间开销的最低限度也要在几毫秒,最终以时间百分率太高而结束,这个时间仅仅是其自身的基础结构所占用的。

  把执行时间超过5秒的操作拆分开(如果可能的话)。这通常意味着你正在尝试着一次就执行过多的操作。那些需要花费长时间的操作可以限制并发的消耗量,这样的话你的服务便可以得到处理。

  就规模而言,许多Web服务的实现正是受到了它们所高效处理的消息大小的限制。一个原因是,整个消息需要被调入内存中,所以你需要考虑处理并发调用所需的内存大小。特别地,当消息的大小小于1MB时,这时是安全的。因为当消息大小超过这个极限时,为了符合这个限制,将会执行有差异操作。所以,在调整粒度时应当考虑消息大小。

  事务处理和状态

  你应该避免设计那些需要在操作之间维护过渡状态的服务。这不仅影响性能(需要启动在调用之间保存其数据的服务),而且会影响故障恢复 – 在一个群组中,当其中的一个节点出现故障时,会有发生什么事情?另外一种表达方式就是:每个操作都要是独立性的。

  如果一个操作正要改变数据,那么数据更改应该作为一个事物处理的一部分来执行(决不可以多于一个的事务处理)。这样做的原因是,当第一个事务处理完成之后,如果系统在某处发生故障,那么处理这个故障恢复就会非常的困难,尤其是当期望用户会为故障做出赔偿时。

  次之,这样做还可以避免在一个操作中输入过多的信息。让我们再来看这个“创建PO”的例子。虽然这个例子看起来好像是一个完美合理的粒度,但是当同时创建多个购买订单时的“创建多个PO”会怎么样呢?这也许看起来是合理的(因为可能信息往返会比较少),但是这意味着什么?实际上,这代表PO可以影响另外一个PO – 如果在处理提交的多个PO中,其中的一个问题发生,那么所有的处理都将被拒绝并且结束。

  商业适应性

  了解你的业务,这样的话你才能够理解什么样的粒度是有意义的 – 虽然这看起来很符合逻辑,但是很多开发人员和工程师都不会因为要理解他们所做事情的蓝图而花费额外的精力。对于实现一个成功的服务设计,这是至关重要的。

  也就是说,要从易用性和通用性上来考虑粒度。争取做到使用一个简单的操作来实现完整的商业任务,并且仅当绝对必要的时候才添加一个额外的操作。如果简单化使其更通用(反之亦然), 那么你是正确的。如果你使得粒度适合,那么重用你的服务的机会就会大大增加。

还没有登录? 阅读全文请先登录或注册
用户名:(请填写您的E-mail做为登录账号)
  • 获取最新的IT业界资讯、市场动态、行业趋势等独家原创内容。
  • 分享国内外技术专业人士提供的技巧经验。
  • 利用专注IT的技术资源中心,不断更新专业知识。
  • 享受白皮书、Webcast等系列特色增值服务。
  • 免费参加TT中国举办的各种会员活动。
  • 更多的精彩服务,在不断开发中……
用户名:(请填写您的E-mail)
密 码:
 永久登录
请输入您的登录email:
相关的白皮书
现在再来谈什么是SOA已经过时,对于SOA人人心里都有一笔账。我们还是从最基本的说起,什么是SOA……
达芬奇曾指出:一个好的设计应该是简单的。这种观点容易理解,但当企业面临IT基础架构的简化问题时,他们应该往什么方向走,却是一件不易办到的事情……
在今年管理软件稳中有降的大环境下,软件即服务(SaaS)呈爆发式增长,为整个行业带来了新活力……
所谓Saas是Software-as-a-service(软件即服务)的简称,它是一种通过Internet提供软件的模式,用户不用再购买软件,而改用向提供商租用基于Web的软件……
据市场研究公司Burton Group称,围绕SOA的问题主要不是技术和复杂性问题,因为SOA的问题是关于企业内部的人和流程的问题……
虚拟化和SOA之间是一种间接的、相辅相成的关系。也许在IT及业务转型中,两者的结合使用会发挥最大的优势。虚拟化有助于更快地显示部署基础设施的投资回报率(ROI)。
云计算的概念越来越流行,Amazon、Google和IBM是第一批将云计算引入公众视线的公司。云计算就是新的Web2.0,一种既有技术上的市场绽放。
安全对于许多的IT部门来说都是一个重要的问题之一,但是SOA安全问题完全是在另一个新的纬度上了。对于SOA为一个机构所带来的许多的好处,例如具有在许多不同的提供者和供应商的情况下混合和匹配服务。
最新更新
专家答疑
技巧
Dana Gardner
您能解释什么是“私有云”吗,能否举例说明?这是供应商需要建立的基础吗?作为托管服务供应商和服务供应商寻求最有效和最强大的基础设施,作为他们的“云”支持能力……
Andrew Pollack
我们正在寻找一种从主机选择SOAP服务器的请求。我们希望制造一个远程程序呼叫(RPC)从CICS程序的SOAP服务器,其中进程请求,使错误或成功后的反应……
Andrew Nash
如何验证在Web服务和Web应用程序之间不同的数据?正常的Web应用程序数据验证仍然需要Web服务。缓冲溢出和正确的数据类型处理以及所有其他形式的数据验证的匹配问题……