关于Service Identification,SOA服务划分和定义--其他

来源:互联网 发布:定额预算软件 编辑:程序博客网 时间:2024/06/05 23:45
 

3.      服务的依赖关系分析

可以使用图来描述服务之间的依赖关系。图中的边表示了服务对服务,服务对数据对象,数据对象对数据对象的依赖关系。根据依赖的程度,每条边有不同的权重,例如服务创建且使用数据对象的权重大于服务仅仅使用数据对象的权重。 权重图构建好后, 使用Kernighan and Lin 图形划分算法来进行系统划分,使划分后的子系统之间的依赖权重总和最小, 将系统划分为多个高内聚低耦合的子系统即服务。

 

4.      服务Identification方式

服务Identification按方向,分为三种方式。

(1)     自上向下。从业务流程向下, 来定义业务服务和组件服务。业务服务面向客户完成既定的业务功能, 有相应的执行者和业务执行规则。组件服务也处于业务层面,在业务服务之下,主要功能为负责业务角色之间的信息交互;运算处理业务状况;存储和管理业务状况信息和执行规则。对于复杂的系统,在业务服务和组件服务层里还会存在很多子的层次,我们一方面需要不断把跨业务流程的公共的功能提炼出来封装成新的服务,一方面通过对服务依赖关系的构建和处理,考虑内聚耦合因素,复用性因素和性能因素, 决定子的层次划分到什么程度,服务划分到什么粒度。

(2)     自下而上。从IT层面向上,把对数据的采集,存储,计算,传输和分发封装为基础服务,同时把一些对第三方系统或者软件的调用封装成基础服务。基础服务由上层的组件服务或者业务服务调用,同样可以使用服务依赖关系图的划分确定基础服务的粒度大小。通过分析基础服务的使用情况, 可以把一些最小粒度的基础服务聚合成较大的服务。

(3)     混合方式。从上而下先分析定义出业务流程和业务服务,再从下之上封装好基础服务,同时从两个方向向对方靠近,在组件服务层汇合。

 

Service IdentificationSOA的重点,难点和最关键所在。具备SOA平台只能让我们方便地以各种技术开发实现各种类型接口的服务,SOA平台对于Service Identification无能为力。Service Identification没有现成的规范和固定的方法论,它依赖于对系统乃至世界的认识,依赖于各种系统分析理论知识和在系统开发实践中积累的经验。

原创粉丝点击