最近牵头在梳理部门的系统架构合理性,开始工作之前,我首先想到的是如何定义架构合理性?
从研发的角度来看如果系统上下文清晰、应用架构设计简单、应用拆分合理应该称之为架构合理。
基于以上的定义可以从以下三个方面来梳理评估:
1、系统的上下文清晰:明确的知道和周围系统的调用关系,数据同步机制;
2、应用架构设计简单:架构分层合理,功能定位清晰,不会出现功能边界之外事情;
3、应用拆分合理:系统内的应用粒度在一个合理的范围内;应用间调用链路不应过长。
系统的上下文清晰
系统上下文图一词最早是从Simon Brown的C4模型中借用而来的,该模型”通过在不同的抽象层次重新定义方框和虚线来抽象表达架构的含义“。
C4模型把系统分为四层,每层都代表着不同的视图架构,关注点不同。第一层,讲的系统上下文,系统高层次的抽象。
如下图显示个人银行账号在浏览账户过程中发生不同的系统之间交互。 如果把Internet Banking Sysytem 当成我们的目标系统,那么E-mail System、MarinFrame Banking Sytem 就是它的伴生系统,也可以称为外部系统,它给Internet Banking Sysytem 提供系统价值,属于系统外,是黑盒。

系统上下文明确了目标系统和外部系统的关系,它和外部系统一起给目标用户提供价值。绘制系统上下文的时候,需要注意目标系统和外部系统之间的依赖方向。北向依赖意味着外部系统调用目标系统的服务,需要考虑目标系统定义了什么样的服务契约;南向依赖意味着目标系统调用了外部系统的的服务,需要了解外部系统的接口、调用方式,通信机制,甚至当外部系统出现故障时,目标系统该如何处理。
除了参考以上的画法,也可以用业务序列图表示。它脱胎与UML的序列图。序列图可以从左侧的角色开始,体现消息传递的次序。这隐含这一种驱动力:我们从左侧的

最低0.47元/天 解锁文章
2257

被折叠的 条评论
为什么被折叠?



