你的位置:首页 > ASP.net教程

[ASP.net教程]服务治理要先于SOA


 
讲在前面的话:
若企业缺乏对服务变更的控制和规则,那么一个服务在经过几个项目之后,就很有可能被随意更改成多个版本,将来变成什么样更是无法预测。久而久之,降低了服务重用的可能性,提高了服务利用的成本。
服务治理在SOA实施之初的作用不明显,甚至在一定程度上影响到项目的进展,但随着SOA实施深入开展和服务数量的增加,其作用会越来越明显。正如SOA架构通过引入了多个层级,在一定程度上牺牲单笔服务调用的效率却换来架构的灵活性一样。
 
什么是SOA
面向服务的体系结构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约(规范)联系起来。
 
SOA的定义
面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
 
SOA的优势
对 SOA 的需要来源于需要使业务,让服务变得更加灵活,以适应业务中的改变。更好的实现业务驱动。
SOA具有低耦合性特点,业务伙伴对整个业务系统的影响较低。
 
 
SOA的特性
暴露API,可从企业外部访问
随时可用
松散耦合
可重用的服务(与重组服务)
标准化的服务接口
精确定义的服务契约
...
 
SOA四大支柱
团队合作
理念共识
纪律规范
范围边界
 
SOA八个原则
标准化服务合同原则
服务松散耦合原则
服务的抽象原则
服务可重用性原则
服务自治原则(服务合同定义良好功能边界,避免服务重叠)
服务无状态原则?
服务可发现原则
服务可组合原则
 
服务治理的重要性
服务是SOA的核心。按其愿景,在新项目设计实施过程中,项目团队通常会面临如下问题:
1.企业有无服务目录,服务目录在哪里?
2.哪些服务可在新项目实施中重用?
3.需要新开发哪些功能,这些功能是否要封装成服务,供其他应用使用?
4.当新系统所需要的某一功能已经存在于某一现有系统之中,但是并非以服务形式出现时,是否要对它进行封装,如何封装?
5.服务的调用是否必须经过企业服务总线(ESB、dubbo_zk),何种情况下必须经过ESB,何种情况下不需要?
6.当某个现有服务功能部门满足某项需求时,如何对服务进行改造和版本控制?
7.待开发的新系统是对某个旧系统的升级,那么旧系统提供的服务何时中止,用新系统中的服务替换,还是将服务升级成另一种形式?
8.服务来自于哪个系统,被哪些系统所用?
9.服务由谁负责管理和维护?
10.服务可被哪些人或角色有权限访问?
 
如何服务治理
1、建立服务仓库
2、制定治理规范
  服务定义(服务的范围、接口和边界)
  服务部署生命周期(各个生命周期阶段)
  服务版本治理(包括兼容性)
  服务变更(启用和退役)
  服务注册中心(依赖关系)
  服务监视(进行问题确定)
  服务所有权(企业组织)
  服务测试(重复测试)
  服务安全(包括可接受的保护范围)