- 定义
- 服务:泛指系统对外提供的功能集
- SOA 是一种应用框架,将业务应用划分为单独的业务功能和流程
- SOA 使用户可以构建部署和整合这些服务
- SOA 是一个组件模型,服务间通过定义良好的接口和契约联系起来
- 业务流程指为了实现某种业务目的的行为所进行的流程或一系列动作
- BPEL:使用 Web 服务定义和执行流程的语言
- 微服务化发展
- 更细粒度、更通用化程度发展,就是微服务
- SOA 与微服务区别
- 微服务更精细
- 微服务接口方式更通用化
- 微服务更倾向于分布式去中心化的部署方式
- SOA 是面向服务架构,整体拆分为多个独立的功能模块,模块间通过调用接口交互。模块间松耦合。以企业服务总线链接,是集中式架构。应用间相互依赖导致服务部署复杂,降低响应速度
- 微服务去除 ESB 企业服务总线,去中心化
- 参考架构,关注点分离。六大类
- 业务逻辑服务
- 整合已有应用
- 整合新开发的应用
- 整合客户和业务伙伴
- 控制服务
- 数据整合
- 流程整合
- 用户访问整合
- 连接服务——企业服务总线 ESB
- 描述服务的元数据和服务注册管理
- 传递数据,数据转换
- 发现路由匹配和选择的能力
- 安全支持、质量保证、可管理性、负载均衡
- 业务创新和优化服务
- 以业务性能管理 BPM 技术为核心
- 开发服务
- 开发环境和工具中为不同开发者的角色提供的功能
- IT 服务管理
- 为业务流程和服务提供安全、高效和健康的运行环境
- 业务逻辑服务
- SOA 主要协议和规范
- UDDI:商业实体可以彼此发现
- WSDL:描述 Web 服务和说明如何与 Web 服务通信的 XML 语言
- SOAP:在分散或分布式的环境中交换信息的简单协议
- SOA 设计标准和原则
- 无状态
- 单一实例
- 明确定义的接口
- 自包含和模块化
- 粗粒度
- 服务之间的松耦合性
- 重用能力
- 互操作性、兼容和策略声明
- SOA 设计模式
- 服务注册表模式
- 服务注册:向注册表公布他们的功能
- 服务位置:帮助他们查询注册服务,寻找复合自身要求的服务
- 服务绑定:消费者利用检索到的服务合同来开发代码
- 企业服务总线模式
- 由中间件技术实现的支持面向服务架构的基础软件平台,异构环境
- 典型交互过程:服务请求者触发一次交互过程,标准化消息发送到服务总线,ESB 根据服务名或者接口名进行目的组件查找。事件驱动的消息交互模式
- ESB 核心功能
- 位置透明性的消息路由和寻址服务
- 服务注册和命名的管理功能
- 多种消息传递泛型
- 多种可以广泛使用的传输协议
- 多种数据格式及其相互转换
- 日志和监控
- 微服务模式
- SOA 思想进入到单个业务系统内部实现真正的组件化
- 特点:复杂应用解耦、独立、技术选型灵活、容错、松耦合易扩展
- 常见模式
- 聚合器微服务:多个微服务实现系统应用程序所需功能
- 链式微服务:返回一个经过合并处理的响应,服务之间形成一条调用链
- 数据共享微服务:多个微服务共享缓存与数据库存储
- 异步消息传递微服务:写入消息队列,实现业务逻辑以异步方式运行
- 缺点:复杂、分区数据库体系、测试复杂、大规模应用部署
- 服务注册表模式
- SOA 构建和实施
- 构建注意问题
- 原有系统架构中的集成需求
- 服务粒度的控制以及无状态服务的设计
- SOA 实施过程:尽量选择能进行全局规划的方案、选择时充分考虑企业自身的需求、从平台实施等技术方面进行考查
- 业务流程的分析过程
- 建立服务模型
- 建立业务流程
- 构建注意问题