微服务分解策略-什么是微服务架构-软件架构

软件架构定义:

The software architecture of a computing system is the set of structures needed to reason about
the system, which comprise software elements, relations among them, and properties of both.
 

出自  《Documenting Software Architectures》

看起来比较抽象,借用Chris Richardson的解释就是:本质上应用架构是应用分解为不同的部分和这些部分之间的联系。分解是非常重要的:

1、让多个有专业知识的人或组尽可能高效的一起为一个应用工作。

2、定了软件元素怎么交互。

软件架构的4+1视图:

微服务分解策略-什么是微服务架构-软件架构

 

4+1视图是一个很好的描述应用架构的方法。

Logical view(逻辑视图):

开发者开发的元素。在对象导向的语言中,这些元素是类和包。元素之间的联系就是这些类和包之间的联系,包括继承、关联和依赖。

Implementation view(实现视图):

由构建系统模块产生,JAR文件、WAR文件或可执行文件。

Process view(进程视图):

运行时的组件。每一个元素是一个进程,进程之间的联系代表内部进程通信。

Deployment view(部署视图):

进程怎样映射到机器。这个视图的元素包括机器和进程。机器之间的联系代表网络。

scenario(场景):

描述了在特定视图不同架构组件为了处理一个请求怎样合作。在逻辑视图描述类怎么合作。类似的在进程视图描述进程之间怎样合作。