面向服务的体系架构(SOA)—入门篇

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情


1、面向服务的体系架构(SOA)

        面向服务的架构service-oriented architecture)是Gartner于2O世纪9O年代中期提出的面向服务架构的概念。2002年的l2月,Gartner提出“面向服务的架构(SOA)”是“现代应用开发领域最重要的课题”之后。国内外计算机专家、学者掀起了对SOA的积极研究与探索。

     在分布式的环境中,将各种功能都以服务的形式提供给最终用户或者其他服务。如今,企业级应用的开发都采用面向服务的体系架构来满足灵活多变,可重用性高的需求。




2、架构的演变过程

      随着互联网技术迅速发展和演变,不断改变的商业化应用系统越来越复杂,由单一的应用架构到垂直的应用架构,但还是面临的扩容的问题。流量分散在各个系统中,虽然体积可控,但对开发人员和维护人员带来极麻烦。此时,将核心的业务单独提炼出来作为单独的系统对外提供服务。达成业务之间复用,系统也将演变成分布式系统架构。分布式架构是各组件分布在网络计算机上、组件之间仅仅通过消息传递来通信并协调行动。




3、RPC简介

      RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。



4、分布系统的基础设施

4.1、分布式缓存

        Memcache 高性能对象缓存系统,在内存中维护一个巨大的基于key-value的hashtable。可以用来缓存任何数据。(对象通过序列化后,转换成二进制缓存)当空间不够用的时候采用LRU算法淘汰数据。网络连接处理采用libevent,高效低耗。memcache采用的是基于tcp连接的memcache协议,协议可以承载文本行和结构化数据,文本行主要用来传输指令,结构化数据主要用来传输数据。
        
另外一种做法是讲session缓存在一个集群上面,例如memcache集群。这样系统的吞吐量高,而且有利于对session的刷新(session都是有有效期的,需要定期刷新),但是缺点也显而易见: 一旦cache集群重启,所有内存里面的session将全部丢失。


       Redis是一个高性能的key-value数据库也可以做缓存,redis丰富的数据结构,其hash,list,set以及丰富的数据结构和超高的性能以及简单的协议,让Redis能够很好的作为数据库的上游缓存层。但是我们会比较担心Redis的单点问题,单点Redis容量大小总受限于内存,在业务对性能要求比较高的情况下,理想情况下我们希望所有的数据都能在内存里面,不要打到数据库上,所以很自然的就会寻求其他方案。 比如,SSD将内存换成了磁盘,以换取更大的容量。




4.2、持久化储存

        HbaseMySQL、Redis传统的IOE方案: IBM小型机Oracle数据库 EMC持久储存成本很高。传统的数据库提供完整地acid功能,并且提供丰富的内连接外连接关联查询等功能。但是,对于高并发应用来说,有的时候会牺牲关联查询事务数据一致性(降级为最终一致性)。   

       Hbase有更好地伸缩能力,更适合海量数据储存。并发写入十分出色,能够支持多regionserver同时写入。但是其本身对于查询的支持力度有限,比如group by order by join等。   

       Redis是一个key-value类型的数据库,能够支持更高的并发量,而且支持的数据类型也比其他的key-value数据库的数据类型多。



5、消息系统

       JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。

       比如开源的ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。




6、其他基础设施

      在分布式系统应用中,上面说的系统外,还有搜索引擎系统、文件系统、日志系统、数据仓库等等。




7、系统架构演化历程

7.1、系统架构演化历程-数据库读写分离

       数据库写入、更新的这些操作的部分数据库连接的资源竞争非常激烈,导致了系统变慢。
读写分离,是把对数据库读和写的操作分开对应不同的数据库服务器。主数据库提供写操作,从数据库提供读操作。当主数据库进行写操作时,数据要同步到从的数据库,有效保证数据库完整性。
       Quest SharePlex就是比较牛的同步数据工具,听说比oracle本身的流复制还好,MySQL也有自己的同步数据技术。
       mysql只要是通过二进制日志来复制数据。通过日志在从数据库重复主数据库的操作达到复制数据目的。这个复制比较好的就是通过异步方法,把数据同步到从数据库,读的操作怎么样分配到从数据库上?应该根据服务器的压力把读的操作分配到服务器,而不是简单的随机分配。mysql提供了MySQL-Proxy实现读写分离操作。不过MySQL-Proxy好像很久不更新了。oracle可以通过F5有效分配读从数据库的压力。
      解决方案:mysql有Mysql Proxy、Amoeba、Atlas;




7.2、系统架构演化历程-反向代理和CDN加速

        为了应付复杂的网络环境和不同地区用户的访问,通过CDN和反向代理加快用户访问的速度,同时减轻后端服务器的负载压力。CDN与反向代理的基本原理都是缓存。
       解决方案: Nginx,apache




7.3、系统架构演化历程-分布式文件系统和分布式数据库

       发现分库后查询仍然会有些慢,于是按照分库的思想开始做分表的工作数据库采用分布式数据库(所有节点的数据加起来才算是整体数据),文件系统采用分布式文件系统任何强大的单一服务器都满足不了大型系统持续增长的业务需求,数据库读写分离随着业务的发展最终也将无法满足需求,需要使用分布式数据库及分布式文件系统来支撑。
       分布式数据库是系统数据库拆分的最后方法,只有在单表数据规模非常庞大的时候才使用,更常用的数据库拆分手段是业务分库,将不同的业务数据库部署在不同的物理服务器上。
      解决方案:mysql有mysql cluster 和 Mysql Proxy;mongodb(是一个基于分布式文件存储的数据库);分布式文件系统方案:CEPH、glusterfs、fastDFS、mogilefs 、moosefs,Hadoop实现了一个分布式文件系统(Hadoop Distributed File System)




7.4、系统架构演化历程-使用NoSQL和搜索引擎

特征:系统引入NoSQL数据库及搜索引擎。
描述:随着业务越来越复杂,对数据存储和检索的需求也越来越复杂,系统需要采用一些非关系型数据库如NoSQL和分数据库查询技术如搜索引擎。应用服务器通过统一数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。

 



7.5、系统架构演化历程-业务拆分

特征:系统上按照业务进行拆分改造,应用服务器按照业务区分进行分别部署。

描述:为了应对日益复杂的业务场景,通常使用分而治之的手段将整个系统业务分成不同的产品线,应用之间通过超链接建立关系,也可以通过消息队列进行数据分发,当然更多的还是通过访问同一个数据存储系统来构成一个关联的完整系统。


纵向拆分:
       将一个大应用拆分为多个小应用,如果新业务较为独立,那么就直接将其设计部署为一个独立的Web应用系统、 纵向拆分相对较为简单,通过梳理业务,将较少相关的业务剥离即可。
横向拆分:
       将复用的业务拆分出来,独立部署为分布式服务,新增业务只需要调用这些分布式服务、 横向拆分需要识别可复用的业务,设计服务接口,规范服务依赖关系。
 



7.6、系统架构演化历程-分布式服务

特征:公共的应用模块被提取出来,部署在分布式服务器上供应用服务器调用。
描述:随着业务越拆越小,应用系统整体复杂程度呈指数级上升,由于所有应用要和所有数据库系统连接,最终导致数据库连接资源不足,拒绝服务。
 


8、分布式服务应用会面临哪些问题?

(1) 当服务越来越多时,服务URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。
(2) 当进一步发展,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。
(3) 接着,服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器?
(4) 服务多了,沟通成本也开始上升,调某个服务失败该找谁?服务的参数都有什么约定? 
(5) 一个服务有多个业务消费者,如何确保服务质量?
(6) 随着服务的不停升级,总有些意想不到的事发生,比如cache写错了导致内存溢出,故障不可避免,每次核心服务一挂,影响一大片,人心慌慌,如何控制故障的影响面?服务是否可以功能降级?或者资源劣化? 




9、分布式架构下系统间交互的5种通信模式

request/response模式(同步模式):客户端发起请求一直阻塞到服务端返回请求为止。

Callback(异步模式):客户端发送一个RPC请求给服务器,服务端处理后再发送一个消息给消息发送端提供的

callback端点,此类情况非常合适以下场景:A组件发送RPC请求给B,B处理完成后,需要通知A组件做后续处理。

Future模式:客户端发送完请求后,继续做自己的事情,返回一个包含消息结果的Future对象。客户端需要使用返回结果时,使用Future对象的.get(),如果此时没有结果返回的话,会一直阻塞到有结果返回为止。

Oneway模式:客户端调用完继续执行,不管接收端是否成功。

Reliable模式:为保证通信可靠,将借助于消息中心来实现消息的可靠送达,请求将做持久化存储,在接收方在线时做送达,并由消息中心保证异常重试。

1、面向服务的体系架构(SOA)

        面向服务的架构service-oriented architecture)是Gartner于2O世纪9O年代中期提出的面向服务架构的概念。2002年的l2月,Gartner提出“面向服务的架构(SOA)”是“现代应用开发领域最重要的课题”之后。国内外计算机专家、学者掀起了对SOA的积极研究与探索。

     在分布式的环境中,将各种功能都以服务的形式提供给最终用户或者其他服务。如今,企业级应用的开发都采用面向服务的体系架构来满足灵活多变,可重用性高的需求。




2、架构的演变过程

      随着互联网技术迅速发展和演变,不断改变的商业化应用系统越来越复杂,由单一的应用架构到垂直的应用架构,但还是面临的扩容的问题。流量分散在各个系统中,虽然体积可控,但对开发人员和维护人员带来极麻烦。此时,将核心的业务单独提炼出来作为单独的系统对外提供服务。达成业务之间复用,系统也将演变成分布式系统架构。分布式架构是各组件分布在网络计算机上、组件之间仅仅通过消息传递来通信并协调行动。




3、RPC简介

      RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。



4、分布系统的基础设施

4.1、分布式缓存

        Memcache 高性能对象缓存系统,在内存中维护一个巨大的基于key-value的hashtable。可以用来缓存任何数据。(对象通过序列化后,转换成二进制缓存)当空间不够用的时候采用LRU算法淘汰数据。网络连接处理采用libevent,高效低耗。memcache采用的是基于tcp连接的memcache协议,协议可以承载文本行和结构化数据,文本行主要用来传输指令,结构化数据主要用来传输数据。
        
另外一种做法是讲session缓存在一个集群上面,例如memcache集群。这样系统的吞吐量高,而且有利于对session的刷新(session都是有有效期的,需要定期刷新),但是缺点也显而易见: 一旦cache集群重启,所有内存里面的session将全部丢失。


       Redis是一个高性能的key-value数据库也可以做缓存,redis丰富的数据结构,其hash,list,set以及丰富的数据结构和超高的性能以及简单的协议,让Redis能够很好的作为数据库的上游缓存层。但是我们会比较担心Redis的单点问题,单点Redis容量大小总受限于内存,在业务对性能要求比较高的情况下,理想情况下我们希望所有的数据都能在内存里面,不要打到数据库上,所以很自然的就会寻求其他方案。 比如,SSD将内存换成了磁盘,以换取更大的容量。




4.2、持久化储存

        HbaseMySQL、Redis传统的IOE方案: IBM小型机Oracle数据库 EMC持久储存成本很高。传统的数据库提供完整地acid功能,并且提供丰富的内连接外连接关联查询等功能。但是,对于高并发应用来说,有的时候会牺牲关联查询事务数据一致性(降级为最终一致性)。   

       Hbase有更好地伸缩能力,更适合海量数据储存。并发写入十分出色,能够支持多regionserver同时写入。但是其本身对于查询的支持力度有限,比如group by order by join等。   

       Redis是一个key-value类型的数据库,能够支持更高的并发量,而且支持的数据类型也比其他的key-value数据库的数据类型多。



5、消息系统

       JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。

       比如开源的ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。




6、其他基础设施

      在分布式系统应用中,上面说的系统外,还有搜索引擎系统、文件系统、日志系统、数据仓库等等。




7、系统架构演化历程

7.1、系统架构演化历程-数据库读写分离

       数据库写入、更新的这些操作的部分数据库连接的资源竞争非常激烈,导致了系统变慢。
读写分离,是把对数据库读和写的操作分开对应不同的数据库服务器。主数据库提供写操作,从数据库提供读操作。当主数据库进行写操作时,数据要同步到从的数据库,有效保证数据库完整性。
       Quest SharePlex就是比较牛的同步数据工具,听说比oracle本身的流复制还好,MySQL也有自己的同步数据技术。
       mysql只要是通过二进制日志来复制数据。通过日志在从数据库重复主数据库的操作达到复制数据目的。这个复制比较好的就是通过异步方法,把数据同步到从数据库,读的操作怎么样分配到从数据库上?应该根据服务器的压力把读的操作分配到服务器,而不是简单的随机分配。mysql提供了MySQL-Proxy实现读写分离操作。不过MySQL-Proxy好像很久不更新了。oracle可以通过F5有效分配读从数据库的压力。
      解决方案:mysql有Mysql Proxy、Amoeba、Atlas;




7.2、系统架构演化历程-反向代理和CDN加速

        为了应付复杂的网络环境和不同地区用户的访问,通过CDN和反向代理加快用户访问的速度,同时减轻后端服务器的负载压力。CDN与反向代理的基本原理都是缓存。
       解决方案: Nginx,apache




7.3、系统架构演化历程-分布式文件系统和分布式数据库

       发现分库后查询仍然会有些慢,于是按照分库的思想开始做分表的工作数据库采用分布式数据库(所有节点的数据加起来才算是整体数据),文件系统采用分布式文件系统任何强大的单一服务器都满足不了大型系统持续增长的业务需求,数据库读写分离随着业务的发展最终也将无法满足需求,需要使用分布式数据库及分布式文件系统来支撑。
       分布式数据库是系统数据库拆分的最后方法,只有在单表数据规模非常庞大的时候才使用,更常用的数据库拆分手段是业务分库,将不同的业务数据库部署在不同的物理服务器上。
      解决方案:mysql有mysql cluster 和 Mysql Proxy;mongodb(是一个基于分布式文件存储的数据库);分布式文件系统方案:CEPH、glusterfs、fastDFS、mogilefs 、moosefs,Hadoop实现了一个分布式文件系统(Hadoop Distributed File System)




7.4、系统架构演化历程-使用NoSQL和搜索引擎

特征:系统引入NoSQL数据库及搜索引擎。
描述:随着业务越来越复杂,对数据存储和检索的需求也越来越复杂,系统需要采用一些非关系型数据库如NoSQL和分数据库查询技术如搜索引擎。应用服务器通过统一数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。

 



7.5、系统架构演化历程-业务拆分

特征:系统上按照业务进行拆分改造,应用服务器按照业务区分进行分别部署。

描述:为了应对日益复杂的业务场景,通常使用分而治之的手段将整个系统业务分成不同的产品线,应用之间通过超链接建立关系,也可以通过消息队列进行数据分发,当然更多的还是通过访问同一个数据存储系统来构成一个关联的完整系统。


纵向拆分:
       将一个大应用拆分为多个小应用,如果新业务较为独立,那么就直接将其设计部署为一个独立的Web应用系统、 纵向拆分相对较为简单,通过梳理业务,将较少相关的业务剥离即可。
横向拆分:
       将复用的业务拆分出来,独立部署为分布式服务,新增业务只需要调用这些分布式服务、 横向拆分需要识别可复用的业务,设计服务接口,规范服务依赖关系。
 



7.6、系统架构演化历程-分布式服务

特征:公共的应用模块被提取出来,部署在分布式服务器上供应用服务器调用。
描述:随着业务越拆越小,应用系统整体复杂程度呈指数级上升,由于所有应用要和所有数据库系统连接,最终导致数据库连接资源不足,拒绝服务。
 


8、分布式服务应用会面临哪些问题?

(1) 当服务越来越多时,服务URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。
(2) 当进一步发展,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。
(3) 接着,服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器?
(4) 服务多了,沟通成本也开始上升,调某个服务失败该找谁?服务的参数都有什么约定? 
(5) 一个服务有多个业务消费者,如何确保服务质量?
(6) 随着服务的不停升级,总有些意想不到的事发生,比如cache写错了导致内存溢出,故障不可避免,每次核心服务一挂,影响一大片,人心慌慌,如何控制故障的影响面?服务是否可以功能降级?或者资源劣化? 




9、分布式架构下系统间交互的5种通信模式

request/response模式(同步模式):客户端发起请求一直阻塞到服务端返回请求为止。

Callback(异步模式):客户端发送一个RPC请求给服务器,服务端处理后再发送一个消息给消息发送端提供的

callback端点,此类情况非常合适以下场景:A组件发送RPC请求给B,B处理完成后,需要通知A组件做后续处理。

Future模式:客户端发送完请求后,继续做自己的事情,返回一个包含消息结果的Future对象。客户端需要使用返回结果时,使用Future对象的.get(),如果此时没有结果返回的话,会一直阻塞到有结果返回为止。

Oneway模式:客户端调用完继续执行,不管接收端是否成功。

Reliable模式:为保证通信可靠,将借助于消息中心来实现消息的可靠送达,请求将做持久化存储,在接收方在线时做送达,并由消息中心保证异常重试。

分布式软件架构——SOA架构/微服务架构/无服务架构 摘抄自《周志明的软件架构课》——极客学院 阅读详情

相关推荐

面向服务体系架构

1 概述面向服务体系架构(Service Oriented Architecture, SOA)就是在分布式的环境中,将各种功能都以服务的形式提供给最终用户或者其他服务。如今,企业级应用的开发都采用面向服务体系架构来满足灵活多变,可重用性高的需求。2 面向服务体系架构 - SOA在经典软件工程理论中,不管是瀑布方法还是原型方法,都是从需求分析做起,一步一步构建起形形色色的软件系统。但是,需求

tyrone的专栏 1万+

SOA架构概述

SOA(Service-Oriented Architecture,面向服务的架构)是一种在计算机环境中设计、开发、部署和管理离散模型的方法。SOA不是一种新鲜事物,它是在企业内部IT系统重复构建以及效率低下的背景下提出的。在SOA模型中,所有的功能都被定义成了独立的服务,所有的服务通过服务总线(ESB)或流程管理器来连接。

u011441473的专栏 1万+

面向服务的架构SOA

(1)SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通信,不涉及底层编程接口和通信模型。(2)在SOA中,服务是一种为了满足某项业务需求的操作、规则等的逻辑组合,它包含一系列有序活动的交互,为实现用户目标提供支持。(3)SOA并不仅仅是一种开发方法,还具有管理上的优点,管理员可直接管理开发人员所构建的相同的服务。多个服务通过ESB(企业服务总线)提出服务请求,有应用管理来进行处理。

apple20150410的博客 1545

SOA架构概述--基本概念

SOA架构是一种组件模型,它采用广为接受的标准,将业务功能封装成标准化的服务,通过确定的且与最后实现没有关联的接口进行定义。SOA架构主要有三种实体:service provider(服务提供者)、service requestor(服务使用者)和service register(服务注册中心)。SOA(Service-Oriented Architecture)是一种基于服务的体系结构,它将应用程序的不同功能单元通过标准化的方式组织在一起。这样,各服务组件之间就可以相互访问,从而扩展了服务的组合形式。

weixin_46481662的博客 4469

SOA体系结构:面向服务设计的核心概念与实践

本文还有配套的精品资源,点击获取 简介:面向服务的体系结构(SOA)是一种软件设计方法,强调业务功能的独立可重用服务构建和组合,以实现灵活协作。SOA中的服务是独立、自包含的单元,通过标准接口与其他服务通信。文章详细介绍了SOA的关键概念,如服务、接口、服务发现、服务编排、服务治理、企业服务总线(ESB)、松耦合、重用、异步通信和面向合同的服务交互。SOA广泛应用于系统集成...

weixin_42627459的博客 2413

SOA面向服务架构)全面解析

SOA(Service-Oriented Architecture,面向服务架构)是一种将应用程序功能以“服务”的形式进行模块化设计的架构风格。这些服务是独立的功能模块,它们通过定义明确的接口进行通信,并可以跨不同的平台和技术栈相互协作。在SOA中,每个服务通常代表一个独立的业务功能(如客户管理、订单处理等),能够被其他服务独立地调用和复用。SOA的目标是通过服务复用和松耦合,实现灵活性、扩展性和可维护性,便于构建复杂的企业级应用。

hello.reader 1万+

SOA面向服务体系架构

SOA 发表时间:2020年5月14日 SOA面向服务体系架构 张利杰 (石家庄铁道大学 信息科学与技术学院,河北 石家庄,050043) 摘要:为了理解SOA面向服务体系架构的定义,明白SOA的基本特质以及优势,传统的java类库要解决是的代码的复用,而SOA架构的目的是服务...

zlj的博客 559

谈谈SOA面向服务体系架构的安全问题

谈谈SOA面向服务体系架构的安全问题 本文我们讨论的是面向服务体系架构SOA)的安全应用。在展开讨论之前,首先让我们来解析面向服务体系架构的实际含义。面向服务体系架构是一种涉及若干以服务为导向的应用软件的体系架构。最初面向服务体系架构中的服务与一系列技术相关,包括...

axnjynnq782831的博客 835

电子电气架构 --- 面向服务体系架构

电子电气架构 --- 面向服务体系架构

Soly_kun的博客 1373

SOA面向服务架构详解

SOA(Service-Oriented Architecture,面向服务的架构)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。

顺其自然~专栏 3万+

面向服务体系架构SOA)理论基础

1、RPC 1)名词解释 Remote Process Call,远程过程调用; 将原来的本地调用转变为调用远程的服务器上的方法; RPC的实现包括客户端和服务端,服务的调用方与服务的提供方。 一次RPC调用:服务调用方发送RPC请求到服务提供方,服务提供方根据调用方提供的参数执行请求方法,将执行结果返回给调用方。 调用参数及响应结果的序列化和反序列操作; 服务提供方的压力增...

程序媛一枚 1312

面向服务体系架构SOA)—架构篇

      面向服务体系架构SOA)—架构篇 1、面向服务体系架构SOA)         面向服务的架构(service-oriented architecture)是Gartner于2O世纪9O年代中期提出的面向服务架构的概念。2002年的l2月,Gartner提出“面向服务的架构(SOA)”是“现...

wangliang369的博客 2919

面向服务的架构(SOA)详解

面向服务的架构(Service-Oriented Architecture,简称SOA)是一种软件设计和软件架构模式,它将应用程序的不同功能单元(服务)通过定义良好的接口和协议进行组合。这些服务是独立的、可重用的,它们可以跨多个系统和组织进行交互。SOA的目标是提高软件系统的灵活性、可扩展性和可维护性。面向服务的架构(SOA)是一种将业务逻辑划分为一系列独立服务的软件设计模式,使得系统具有高度的灵活性、可扩展性和可重用性。

sinat_26065899的博客 7665

面向服务体系架构SOA)和企业服务总线(ESB)

面向服务体系架构 SOA Service Oriented Architecture (SOA)是一个粗粒度、松耦合的服务架构。它将系统内部不同的功能单元称为服务,并通过定义简单、精确的接口和协议进行通信。这些接口是通过中立的方式进行定义,独立于各个服务的硬件平台、操作系统和编程语言。这让异构系统中的各种服务可以以通用的方式进行通信。 企业服务总线 ESB Enterprise Service Bus (ESB)是由中间件技术实现的全面支持面向服务的基础软件平台,是传统中间件技术与XML、Web服务

信道者 2257

SOA面向服务的架构)

面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。 SOA五种基本架构模式 目前,面向服务的架构(SOA)已成为连接复杂服务系统的主要解决方案。虽然SOA的理论

Vision_xie的博客 1万+

面向服务的架构(SOA

面向服务的架构(Service-Oriented Architecture, SOA)是一种,它将应用程序结构化为一组相互通信的服务。每个服务代表一个业务能力或一组相关功能,可以通过标准化的接口和协议访问。核心理念是将复杂的应用分解成一系列松耦合的服务,这些服务可以独立部署、管理和重用。(Request-Response Pattern):客户端发送请求给服务服务处理请求并返回响应。(Event-Driven Pattern):服务发布事件,其他服务或客户端可以消费这些事件。

暮色尽染的博客 3095

面向服务体系架构SOA

面向服务体系架构SOA)—架构篇 1、面向服务体系架构SOA)      面向服务的架构(service-oriented architecture)是Gartner于2O世纪9O年代中期提出的面向服务架构的概念。2002年的l2月,Gartner提出“面向服务的架构(SOA)”是“现代应用开发领域最重要的课题”之后。国内外计算机专家、学者掀起了对SOA的积极研究与

用心做每件事 2万+
上一篇: [Echarts可视化] 一.入门篇之简单绘制中国地图和贵州地区
下一篇: JAVA中的数据存储(堆及堆栈)
aglne
博客等级 码龄11年 24粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值