SOA体系架构

https://zhuanlan.zhihu.com/p/399488651   

        SOA作为一种面向服务的架构,是一种软件架构设计的模型和方法论。服务是SOA的主体,服务之间的关系构成了SOA软件架构。将服务比作砖石,那么SOA软件架构必然是参天大厦,而大厦不同的楼层,代表着服务之间的相互依赖、连接关系。即,SOA软件架构中,隐含着分层思想,服务是可分层的服务。上层服务使用下层服务,下层服务给上层提供能力支撑。通过将不同上层服务的需求抽离聚合,形成一个个下层服务,逐步迭代,最终形成SOA软件服务的分层架构。

     从广义上来看,SOA是指一种新的企业应用架构和企业IT基础架构,它可以使企业实现跨应用、跨部门、跨企业甚至跨行业之间的离散系统实现互连。

     而狭义的SOA是指一种软件架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。

      简单的理解,面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。

     所有基于SOA软件架构的服务开发,其接口必须是充分暴露出来的,任何人都可以使用。

缺点:

1)性能方面:SOA软件架构将共通的功能逻辑下沉封装成服务,这就意味着将原本的一个功能主体拆分成不同的服务,共同编排组合形成业务功能。服务间通过网络通信,增加了系统的复杂度,对性能略有影响。

2)基于SOA软件架构开发的服务,都是独立部署,相较于传统的功能块部署,增加了复杂度,每个服务都需要独立的配置、部署、监控、日志收集等,运维成本将有所提升。

3) 一个完整的功能,通常是需要多个服务协同完成。这就涉及到服务间的依赖关系测试以及服务异常的容错处理机制,对服务开发过程有相对较高的要求。

     

posted @ 2022-07-26 16:46  yinghualeihenmei  阅读(1599)  评论(0编辑  收藏  举报