聂同学

一个程序员和架构师的实践与思考

“服务化”

“服务化”,就是既有系统进化为“服务”的努力。

什么是服务?每个架构师都有不同的定义,在不同的场景下可能也有不同的定义。

在各系统“服务化”的场景中,我们对“服务”的定义是:

自管理的业务能力。

这个定义里有两个要点:

  1. 自管理。自管理意味着服务自身对服务内容和服务质量负责。而不是用户负责或者双方共同负责。同时,也意味着对服务内容和质量有定义和进化的权利。
  2. 业务:服务合同以业务为依据制定。比如:
  3. 服务内容,只包括某领域业务范围的服务,而不传递其他领域的服务。
  4. 服务粒度,以业务场景为依据划分服务和设计交互。
  5. 服务形式,以最大限度支持业务的变化为依据制定。

系统“服务化”实践中,我们用三个线索来思考改善这两个要点:

  1. 系统应该/可以提供何种服务?:
  2. 系统的业务定位如何?即它在所参与的企业活动中的位置如何?
  3. 这种定位是否理想?可能如何进化?
  4. 系统以何种形式提供服务?
  5. 基于所处的业务定位,何种服务形式可以适应业务快速发展?
  6. 基于所处的企业IT环境,何种服务形式便于其他系统使用?
  7. 系统如何实现(或改善)自管理能力?1
  8. “服务”对系统各方面质量特别是运行时质量提出了不一样的要求。
  9. 系列:质量保障措施参考清单

ps: FAQ

Q:“服务化”是为了减小系统开发维护成本么?
A:可能碰巧有这个效果,但目标不是减小单个系统的成本,而是减小企业范围的总成本。减小的是:业务变化时,IT系统适应业务并支持业务所需的成本。

Q:“服务化”是“组件化”么?
A:“服务化”是使既有既有系统形成适当的“组件”的过程。可以说“服务化”是为了“组件化”。“组件化”包括两个方面:

  1. 形成适当的“组件”
  2. 形成“组件”间有效组合并管理的机制。

  1. 主要考虑服务质量部分,服务内容部分已在1.中考虑。

架构

分享 -