SOA架构
针对传统的单体架构存在的问题,后来出现了一种SOA架构。
SOA架构是一个面向服务的架构,它是一个组件模型。SOA架构将应用程序的不同功能单元(称为服务)进行拆分,并通过在这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以使用一种统一和通用的方式进行交互。
SOA架构将原来的单体架构按照功能细分为不同的子系统,SOA架构如图1所示。
图1 SOA架构图
由图1可知,一个完整的项目会分为多个模块,并且数据库也会有主库与从库两种,并且主库与从库是数据同步的,这样的SOA架构解决了1.1.1小节中单体式架构所遗留下的问题,但SOA本身也存在一些缺点。
SOA一般使用某种集中式管理,比如会有审查委员会、主架构师或架构委员会等部门来严格定义每个系统组件应当做什么,如何执行,相同类型的功能可能会在多个组件中分别定义和记录,每个组件使用的语言或者工具集可以是统一的,也可以不是。在SOA架构中,系统和服务的界定比较模糊,而且服务的接口协议不固定,种类繁多,不利于系统维护。