“服务化”,就是既有系统进化为“服务”的努力。
什么是服务?每个架构师都有不同的定义,在不同的场景下可能也有不同的定义。
在各系统“服务化”的场景中,我们对“服务”的定义是:
自管理的业务能力。
这个定义里有两个要点:
- 自管理。自管理意味着服务自身对服务内容和服务质量负责。而不是用户负责或者双方共同负责。同时,也意味着对服务内容和质量有定义和进化的权利。
- 业务:服务合同以业务为依据制定。比如:
- 服务内容,只包括某领域业务范围的服务,而不传递其他领域的服务。
- 服务粒度,以业务场景为依据划分服务和设计交互。
- 服务形式,以最大限度支持业务的变化为依据制定。
系统“服务化”实践中,我们用三个线索来思考改善这两个要点:
- 系统应该/可以提供何种服务?:
- 系统的业务定位如何?即它在所参与的企业活动中的位置如何?
- 这种定位是否理想?可能如何进化?
- 系统以何种形式提供服务?
- 基于所处的业务定位,何种服务形式可以适应业务快速发展?
- 基于所处的企业IT环境,何种服务形式便于其他系统使用?
- 系统如何实现(或改善)自管理能力?1
- “服务”对系统各方面质量特别是运行时质量提出了不一样的要求。
- 系列:质量保障措施参考清单
ps: FAQ
Q:“服务化”是为了减小系统开发维护成本么?
A:可能碰巧有这个效果,但目标不是减小单个系统的成本,而是减小企业范围的总成本。减小的是:业务变化时,IT系统适应业务并支持业务所需的成本。
Q:“服务化”是“组件化”么?
A:“服务化”是使既有既有系统形成适当的“组件”的过程。可以说“服务化”是为了“组件化”。“组件化”包括两个方面:
- 形成适当的“组件”
- 形成“组件”间有效组合并管理的机制。
-
主要考虑服务质量部分,服务内容部分已在1.中考虑。↩