zoukankan      html  css  js  c++  java
  • 某大型银行深化系统之九:服务层之一

    传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229

    服务层

            服务层主要体现了SOA体系下的组件复用和业务复用机制。服务的边界定义决定于粒度和耦合度。
            粒度表示的是一个服务的大小,它可以理解为服务操作的范围,粗粒度的服务,操作的内容广而且杂;细粒度的服务,操作的内容细而且简单。粗粒度的服务设计,可以减小服务之间的耦合性,但付出的代价就是增加服务的复杂性,服务具备了太多的功能,增加了设计的复杂性和维护的难度;细粒度的服务,可以让服务的实现变得简单,但这样会增加服务的数量,服务过细过多,这样必然有一些服务需要组合才能实现一定的功能,那样就增加了服务之间的耦合度,只要其中一个服务发生了变动,势必牵一发而动全身。
            耦合代表的是服务与服务之间的关系。SOA的初衷就是为了降低系统各个部分之间的耦合性,使得服务可以重用。但很显然,耦合性是受到服务粒度很大的影响,而且从某种程度上讲,粒度的选择就决定了系统内部的耦合性。

    1服务分类

            SOA提倡服务要粗粒度,即应该具有更大的闭包集合。因此按照粒度来分,可以把服务分解为四种类型:基本服务、组合服务、合成服务和流程服务。

    1.1基本服务

            例如核心层中的SSO验证模块等等。基本服务即是系统提供的最小粒度的服务,或者说是原子服务。这类服务考虑的是利用它们的可重用性,它们是组成一些较大粒度的服务的基础。基本服务可以说是原有系统跟业务需求细分的中间结合点,它既是原有系统能够提供的最细粒度的服务,同时也是要设计的系统最细粒度的服务。

    1.2合成服务

            是基本服务简单的组合,只是为了把具有相同功能但操作不同的业务对象的基本服务组合到一起,形成一个对外提供相同功能的服务。它类似设计模式里面的工厂模式,只要告诉服务接口传进来的是哪一个业务对象,那么服务就能自动识别应该调用哪一个基本服务。

    1.3组合服务

            组合服务是系统里面最复杂的部分,它不是基本服务的简单堆积到一块,它是最大粒度的服务,里面各个基本服务的关系受到工作流程的控制。它是基本服务与工作流程的结合。

    1.4流程服务

            流程服务是业务流程的技术实现载体,根据业务和管理领域划分流程服务域,不同的服务域实现不同的业务和管理流程。流程服务调用基础服务获得业务功能和数据,流程服务之间也可以通过互相调用以实现不同流程的串接。根据业务负载的大小规划每个服务域内流程服务的数量,比如业务推动服务域通常负载较重,则构建多个处理不同类流程的流程服务以分担业务负载。原则上业务流程应独立于应用系统,但在部署一体化套装软件的情况下,应优先使用套装软件提供的业务流程功能,此时对应的服务域内不需部署同类功能的流程服务。
            基于上面的理解,我们的服务设计遵循这样的设计思路:先从功能模块分离出基本服务,各个功能模块可以看成是合成服务,由功能模块分离出来的就是基本服务;然后在基本服务的基础上设计组件和业务对象;设计完组件和业务对象之后再来设计组合服务;与提供核心数据和业务功能的基础服务不同,流程服务实现的是有人机交互的长时处理流程,对于短时的全自动不需人工参与的处理流程,一般由基础服务域内基于服务编排成的合成服务来实现。这样不管组合服务需要多少,组合服务多复杂,都可以通过基本服务和工作流程进行各种形式组合起来。而且组合服务经常需要变动,这样的设计能够保证这些变动不会引起太大的改动。因此我们根据功能分主要分为两类:包括录入、验印、扫描、数据核对、版面分类等人工处理服务,以及记账、影像切分、OCR等自动服务。
  • 相关阅读:
    【codecombat】 试玩全攻略 第九关 循环又循环
    【codecombat】 试玩全攻略 第十三关 已知敌人
    【codecombat】 试玩全攻略 第十一关 再次迷宫经历
    【codecombat】 试玩全攻略 第六关 cell commentary
    【codecombat】 试玩全攻略 第八关 火舞
    【codecombat】 试玩全攻略 第十二关 恐惧之门
    【codecombat】 试玩全攻略 第十四关 已知敌人
    苹果apns推送总结
    Xcode 提升速度小技巧
    UITextField 限制输入字数
  • 原文地址:https://www.cnblogs.com/innosight/p/3271134.html
Copyright © 2011-2022 走看看