联系
Knight's Tale » 架构

架构系列之:业务服务化技术

2014-08-13 21:10
  • 当业务迅猛发展,应用层技术架构较陈旧,无法满足快速迭代的需求
  • 期望在流程、组件、模块、服务等,不同层面下的逻辑复用
  • 目标是构建易扩展、高性能、可快速迭代的服务化系统

模块化与服务化

  • 模块是一个内聚的组件集、是进程内重用的无状态代码块;
  • 服务是独立部署的模块或模块集; 服务可以是进程间重用的有状态模块集,也可是复用价值高的无状态模块集。

如何确定服务

  • 服务需要自包含。要达成边界明晰、高度内聚、外部松耦合的效果。
  • 服务要粒度适中。太小会造成接口爆炸、性能降低;太大会导致灵活度差,维护成本高。

业务系统服务化的思路

  • 提取多产品线公用服务,作为基础服务组件;
  • 横向对业务进行梳理,在高层次中将业务模型抽象出服务类别;
  • 纵向将模型逐渐拆解(按照主要业务功能拆分),业务模型->功能模型->领域模型->对象模型