地理信息服务粒度的划分标准主要关注服务的重用性、灵活性和性能。其中,服务的重用性就是服务可以应用于不同应用领域的能力,灵活性是能够根据具体的应用情景做出适当改变的能力。
1.重用性
重用性是SOA的核心思想,通过服务的重用可以降低软件实体的开发和维护成本,缩短应用交付的周期,提升质量等。在服务粒度的选择上,一个设计良好的服务应该易于重用,且符合业务需求(O.Sims,2005)。
与任何基于分解的范例相一致,粒度的大小直接影响到服务的可重用性。一个简单的经验法则就是细粒度的服务更容易被重用。换句话说,就是粒度越粗,服务越少被重用或者越难以被重用。这是因为,随着粒度的增加,越来越多的业务规则和领域知识被嵌入到业务逻辑中,服务逐渐变得具有特定的业务意义。要使用它,用户必须首先了解它封装了哪些规则,否则无法确信这个服务是否用户所需要的。这并不意味着我们就不要构建粗粒度的服务,事实上粗粒度的服务往往还停留在“Business-Grained”层面(Z.Wang,2005),它让业务用户和IT人员可以直接对话,对业务有直接的意义,应该暴露出来。当然,服务的设计也不能仅仅机械地考虑重用性,否则会出现大量粒度很小的功能单元,这将对系统整体性能和容量带来严重的影响。
2.灵活性
Web Service的目标之一就是让信息技术变得更为灵活,能够更快地适应持续变化的应用领域环境。因此,作为设计良好服务的重要指标,灵活性也应该作为选择服务粒度的重要标准之一,细粒度的服务可以更容易地组装,为交付新的业务功能或改变业务流程提供了更多的灵活性(A.Erradi,2006)。但是,仅仅考虑灵活性将导致大量的细粒度的服务,带来昂贵的开发成本,并使得维护变得困难。因此,在考虑业务流程灵活性的同时,考虑后台服务的良好组织、效率和开发维护成本,对于识别和设计粒度适中的服务是至关重要的(D.Foody,2005)。(www.xing528.com)
服务的设计可以遵循自顶向下的一级级流程分解的策略,直到不能或者不需要进一步分解为止,其中分解出来的功能流程就是候选的服务。对于不同的应用领域需要使用不同的分解策略,而且也不是所有的应用领域都要首先考虑灵活性。
3.性能
灵活性和效率往往是成对出现的,性能也是限制服务粒度大小的制约性因素之一,但是并不是绝对地服务粒度越小或者越大,系统应用的性能就会一定越好。一个服务本身的复杂度以及业务到服务映射的复杂度(即实现一个应用所需的服务调用次数)是影响Web服务性能的两个主要方面。服务粒度越大,意味着包含的功能越多,业务逻辑越复杂,网络延迟就会增加,对客户端响应变慢。而服务粒度越小,也就意味着包含的功能越简单,虽然单个服务执行效率很高,但完成一项应用任务所需的服务调用次数越多,请求响应次数会相应增加,反而会显著提高应用的性能开销。
因此,一方面需要限制服务包含的功能范围和复杂度,即服务粒度不能太粗;另一方面需要限制服务调用的次数,即服务粒度不能太细。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。