加载中…

加载中...

个人资料
人月神话
人月神话 新浪个人认证
  • 博客等级:
  • 博客积分:0
  • 博客访问:4,204,775
  • 关注人气:5,928
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

服务契约和服务实现

(2011-04-19 21:36:40)
标签:

soa

soma

it

分类: IT咨询
该文摘录自IBM的SOMA方法论

服务规约

经过服务发现阶段,服务目录基本形成,但是对于每个服务本身的属性信息依然零散。服务规约阶段的主要任务是规范性地描述服务各个方面的属性,其中既包括输入/输出消息等功能性属性,服务安全约束和响应时间等服务质量约束,以及服务在业务层面的诸多属性,如涉及的业务规则、业务事件、时间/人员消耗等。与此同时,规范描述服务相关方面的关系也很重要,如服务间依赖关系,服务和业务组件间关系,服务和IT组件间关系和服务消息间关系等。

进行服务暴露的决策是服务规约的第一步。理论上所有的服务候选者都可以暴露为服务,但是一旦暴露为服务,该服务候选者就必须满足附加的安全性、性能等方面的要求。企业还必须为服务的规划、设计、开发、维护、监管支付额外的开支,因此,我们会根据一定的规则来决定将哪些服务候选者暴露为服务。

这些规则包含以下几个方面:
  • 业务对齐。该服务候选者可以支持相关的业务流程和业务目标。
  • 可组装。该服务候选者满足技术中立、自包含及无状态等特点,还满足复合应用的相关非功能性需求。
  • 可重用。该服务候选者可以在不同的应用、流程中重用,减少重复的功能实现,降低开发和维护的成本。

基于企业应用开发的经验,我们还可以有其他一些方面的考虑。

经过服务暴露的决策后,层次化的服务目录基本形成。下一步是结合传统的方法学对服务各方面属性进行描述。这里说的传统的方法学是指企业架构,面向对象的分析和设计等。在企业架构方法学的产物中,企业数据模型有助于服务消息的定义,IT组件模型有助于服务和IT组件间关系的描述,企业安全架构有助于服务安全约束规约,企业基础设施架构有助于服务质量的描述。在面向对象分析和设计的产物中,业务用例和系统用例有助于服务消息、服务相关业务规则和业务事件等描述,组件静态模型和动态模型有助于描述服务间关系。

经过服务规约,服务组件(企业组件)和服务的各个方面的属性被规范下来,它会成为业务和IT层面互动的基础。以后,业务对IT的新需求会体现为服务层面的变更,IT层面的变化会尽量遵循服务规约。在SOA监管的配合下,任何对服务规约的变更都是可管理和可控制的。

服务实现

经过服务规约阶段,作为业务和IT互动的服务契约已经形成。但是服务契约和IT的现状还是有很大差距的,为了将服务契约落在实地,服务实现阶段通过差距分析,并结合传统方法学完成每个服务实现决策。这其中包括的内容甚多,其主要包括现有系统分析,确定服务分配,服务实现决策,服务基础设施设计等方面内容

现有系统分析:调研现有系统架构,了解架构风格、主要架构元素和能力和架构元素的基本特征;调研现有应用,了解应用主要功能和对外接口,技术实现特征等;如果应用构建已经遵循基于组件开发规范,编制应用已有组件目录;如果应用并没有组件化,将应用覆盖的业务功能和服务规约确定的企业组件进行映射,确定应用现有"组件"目录。

确定服务分配:通过服务组件和现有系统分析确定的IT组件间差距分析,确定服务组件和IT组件间映射关系。例如,一个服务组件对应一个或多个IT组件,没有IT组件和服务组件对应,没有服务组件和IT组件对应,服务组件和IT组件对应时有能力缺失或不匹配等。经过差距分析,一些服务中介被确定下来去实现服务路由,或消息格式等不匹配现象,一些新的IT组件被确定下来,如实现某业务流程的组件或实现人工服务的组件等。最终,服务组件都被映射到IT组件上,从而完成服务分配。

服务实现决策:服务分配仅仅确定了需要哪些组件来实现服务,但是并没有实现的策略和技术层面的决策。服务实现决策首先帮助确定服务实现策略,是在现有基础上进行服务包装,还是重新构建,如果重新构建,是采用已经包装好的应用,还是外包,或者自己构建;如果是服务包装的话,有哪些候选方案等。通常服务实现决策和传统的架构决策是关联在一起的。

服务基础设施设计:服务的功能实现、非功能需求的满足都需要服务基础设施的支持。在进行服务实现决策后,需要根据具体的需求确定服务基础设施的能力,如用于支撑人工服务的人工服务容器,用于支撑服务编排的流程引擎等。

总的来看,SOMA方法主要是三个步骤:第一个步骤是找到服务。对于一个企业(服务对象)来讲有那么多种业务,怎么确定SOA架构里需要哪些服务,以及有哪些服务是需要抽象出来的?找到了这些服务之后,第二个步骤就是服务的描述。这些服务之间的相互关系是怎样的,这些服务分别由哪些服务组件实现。所以第三个步骤就要考虑这些服务采用什么样的技术实现,可能是租用别人提供的服务,也可以重用以前有的服务,也可以重新开发一套服务,或者我利用我们的已有系统,把已有系统的功能进行封装成一个服务等,已达到服务实现的目的。

0

阅读 收藏 转载 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有