SOA架构是一种面向服务的架构,主要由服务、服务注册表、服务总线和服务编排器等组成。

下面是一个简单的SOA架构图示,用于说明SOA架构的基本组件和交互方式:

+-----------------------+                           +-----------------------+
|       Service 1        |                           |       Service 2        |
|    +---------------+  |                           |   +---------------+   |
|    |    Interface 1|  |                           |   |    Interface 2|   |
|    +---------------+  |                           |   +---------------+   |
|    |  Implementation 1| <--- Service Bus ---->    |   |  Implementation 2|   |
|    +---------------+  |                           |   +---------------+   |
+-----------------------+                           +-----------------------+|                                           ||                                           ||                                           |v                                           v
+-----------------------+                           +-----------------------+
|  Service Registry     |                           |  Service Orchestrator  |
+-----------------------+                           +-----------------------+

在这个图示中,有两个服务(Service 1和Service 2),每个服务都有自己的接口和实现。服务之间通过Service Bus进行通信,Service Bus是一个中间件组件,用于协调和管理服务之间的消息传递。服务的接口和实现都注册在Service Registry中,以便其他服务可以访问它们。服务编排器(Service Orchestrator)则用于协调和管理服务之间的业务流程,将不同的服务组合成一个完整的业务流程。服务编排器可以基于不同的规则和条件来选择和组合服务。

SOA架构的核心思想是将系统拆分为一组相互协作的服务,每个服务都具有明确定义的接口和独立的实现。通过使用Service Bus、Service Registry和Service Orchestrator等中间件组件,服务可以相互协作并进行集成。这种方式可以提高系统的可维护性、可扩展性和可重用性,同时还可以支持分布式部署和跨组织边界的集成。

电商soa架构

假设我们有一个电商网站,它使用SOA架构来实现各种功能。以下是一个简单的SOA架构示例,用于说明SOA架构的实际应用:

  1. 订单服务(Order Service):这个服务提供了一组用于创建、查询和取消订单的操作。订单服务的接口包括以下几个方法:
  • CreateOrder(创建订单):创建一个新的订单,并返回订单号。
  • GetOrder(查询订单):根据订单号查询订单信息,并返回订单详情。
  • CancelOrder(取消订单):取消一个已经存在的订单,并返回取消结果。

订单服务的实现包括一个数据库,用于存储订单信息,并且还包括一个Web API,用于提供服务接口。

  1. 库存服务(Inventory Service):这个服务提供了一组用于查询和更新商品库存的操作。库存服务的接口包括以下几个方法:
  • GetStock(查询库存):查询商品的库存数量,并返回库存信息。
  • UpdateStock(更新库存):更新商品的库存数量,并返回更新结果。

库存服务的实现包括一个数据库,用于存储商品库存信息,并且还包括一个Web API,用于提供服务接口。

  1. 支付服务(Payment Service):这个服务提供了一组用于处理支付请求和返回支付结果的操作。支付服务的接口包括以下几个方法:
  • Pay(支付):根据订单号和支付金额进行支付,并返回支付结果。
  • Refund(退款):根据订单号和退款金额进行退款,并返回退款结果。

支付服务的实现包括一个支付网关,用于处理支付请求和返回支付结果,并且还包括一个Web API,用于提供服务接口。

  1. 服务总线(Service Bus):这个组件用于协调和管理各个服务之间的消息传递。当一个服务需要调用另一个服务时,它会将请求消息发送到服务总线,服务总线会将消息路由到目标服务,并将响应消息返回给源服务。

  2. 服务注册表(Service Registry):这个组件用于注册和查找服务的接口和实现。每个服务都将自己的接口和实现注册到服务注册表中,并且其他服务可以通过服务注册表来查找和访问它们。

  3. 服务编排器(Service Orchestrator):这个组件用于协调和管理各个服务之间的业务流程。例如,在电商网站中,订单服务可能需要调用库存服务和支付服务来完成订单处理流程。服务编排器可以基于不同的规则和条件来选择和组合服务,以便完成完整的业务流程。

总之,SOA架构可以将系统拆分为一组相互协作的服务,每个服务都具有明确定义的接口和独立的实现。在电商网站的例子中,订单服务、库存服务和支付

服务编排器

服务编排器 是怎么实现订单服务调用库存服务和支付服务来完成订单处理流程的

服务编排器是SOA架构中的一个重要组件,它用于协调和管理各个服务之间的业务流程。在电商网站的例子中,服务编排器可以使用以下步骤来实现订单服务调用库存服务和支付服务来完成订单处理流程:

  1. 接收订单请求:当一个用户提交订单请求时,订单服务会将请求消息发送到服务总线,并且通知服务编排器。

  2. 查询库存:服务编排器收到订单请求后,会调用库存服务的GetStock方法,查询商品库存信息。如果库存不足,服务编排器将返回一个错误消息,并且订单处理流程终止。

  3. 支付订单:如果库存充足,服务编排器会调用支付服务的Pay方法,根据订单号和支付金额进行支付处理。如果支付成功,服务编排器将继续订单处理流程。如果支付失败,服务编排器将返回一个错误消息,并且订单处理流程终止。

  4. 创建订单:如果库存充足且支付成功,服务编排器会调用订单服务的CreateOrder方法,创建一个新的订单,并返回订单号。订单服务会将订单信息保存到数据库中,并且通知服务编排器。

  5. 返回响应消息:订单服务收到服务编排器的请求后,会将订单号封装到响应消息中,返回给服务编排器。服务编排器将响应消息发送回给用户,并结束订单处理流程。

在上述流程中,服务编排器充当了一个协调和管理各个服务之间业务流程的角色。它根据不同的规则和条件来选择和组合服务,以便完成完整的业务流程。这种方式可以提高系统的可维护性、可扩展性和可重用性,并且可以支持分布式部署和跨组织边界的集成。

我的天哪, 什么是SOA架构相关推荐

  1. 论SOA架构的几种主要开发方式

    论SOA架构的几种主要开发方式 面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署.组合和使用.服务层是SOA的基础,可以直接被应用调 ...

  2. SOA架构下的人事信息管理系统的构建与分析

    [摘要] 本文讨论<企业人事信息系统>项目的需求分析方法与工具的选用.该系统的建设目标是帮助该企业管理好企业内部的人员和人员的活动,人事信息管理指的是企业员工从招聘面试到离职退休的全过程, ...

  3. [转]论SOA架构的几种主要开发方式

    面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署.组合和使用.服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理 ...

  4. 构建基于分布式SOA架构的统一身份认证体系

    摘要:本文充分利用SOA架构松耦合的特点,通过规范统一网络接口实现业务系统整合,既提升系统安全性,又简化资源访问操作,具有重要的理论和现实意义. 统一身份认证旨在将分散在各个信息系统中的用户和权限资源 ...

  5. 浅谈BPM和SOA架构下的电子政务系统

    摘  要:面对我国电子政务建设中存在的若干问题,为了实现政府由"管理型"向"服务型"转变,本文提出,未来的电子政务系统采用以服务驱动为核心的SOA技术架构将更能 ...

  6. 微服务和SOA架构的区别

    经常会有同学问,微服务和SOA架构有什么区别.这个区别一定要从架构的发展过程来了解.这两种架构模式,其实本质上应该是在分布式架构这条时间线上,基于服务化思想的不断完善,以及基础设施的逐步成熟之下的一种 ...

  7. SOA架构师注意的问题

    什么是SOA架构设计师的职责? 那什么是企业级SOA架构设计师的具体角色呢?什么是SOA架构设计师与设计和开发人员之间的差别呢?相信这些都是使大家最容易产生迷惑的问题.举个实际的例子来说,当构建一个基 ...

  8. SOA架构设计经验分享—架构、职责、数据一致性

    1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DDD+GRAS ...

  9. 系统架构设计师 - 单体架构、SOA架构、微服务架构

    文章目录 横向对比 SOA 设计原则 主要技术 UDDI 统一描述发现集成 SOAP 简单对象访问协议 WSDL web服务描述语言 BPEL 业务过程执行语言 REST 表述性状态转移 实现方法 W ...

  10. 基于AgileEAS.NET企业应用平台实现基于SOA架构的应用整合方案-开篇

    为什么80%的码农都做不了架构师?>>>    开篇 系统架构的文章,准备在这段时间好好的梳理和整理一下,然后发布基于AgileEAS.NET平台之上的企业级应用架构实践,结合具体的 ...

最新文章

  1. javaScript小问题,托拽元素,获得当前鼠标的坐标
  2. Python 字符串前面加u,r,b的含义
  3. 自动驾驶技术如何升级?这份技能图谱为你指路
  4. git merge 冲突_更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇
  5. 中年女性凹“少女感”引发不适,90后最在意什么?
  6. solaris 10安装mysql5
  7. t-sql导出EXCEL语句
  8. 豆瓣9.6分!再一次被BBC的纪录片震惊!
  9. 云漫圈 | 什么是微服务?
  10. 预测一下web前端未来的6个趋势
  11. python123选择题及答案_py利用selenium库 爬取 python123官网的练习题及答案
  12. hadoop 配置 docker伪分布式(单节点)
  13. stack(栈)数据结构详解
  14. “只要就“其实是废话,没有任何用处
  15. B4A-Basic4android
  16. 互联网常见的大数据分析指标
  17. halcon轮廓擦除_Halcon中轮廓分割segment
  18. 计算机网络学习笔记(九)——网络层IP地址
  19. 6.7 广义特征向量与特征空间
  20. Postgresql数组操作符及数组函数

热门文章

  1. 简单Chrome插件如何做到月收入5000美金 - 人物志第15篇
  2. 字节内部人手一份,超大指令集鼠标垫,我粉丝每人包邮送一块!
  3. active什么牌子_ELLE Active
  4. JS控制Video播放器(video详细介绍)(快进、后退、播放、暂停、音量大小)
  5. Bzoj3875 [Ahoi2014]骑士游戏
  6. 蓝屏0x00000050的解决方法
  7. 食品行业RFID技术应用浅析
  8. java版Spring Cloud+Spring Boot+mybatis+uniapp b2b2c 多商户入驻商城 直播商城 直播带货商城之分销代理列表
  9. vue3.0 引入Ueditor(百度编辑器)
  10. Vue封装树形菜单组件