知识卡片

面向服务架构风格SOA

普通读书笔记卡

内容

面向服务架构(SOA)1996年由Gartner Group最早提出,最初目的并非企业系统集成,但因Web Service技术的广泛应用而在企业集成领域获得主流地位——SOA是一个组件模型,把应用程序的不同功能单元(服务)通过定义良好的接口和契约联系起来:服务是一个粗粒度的、可发现的软件实体,以单独实例存在,通过一组松散耦合、基于消息的模型与其他应用或服务交互;接口以中立方式定义,独立于实现服务的硬件平台、操作系统和编程语言。SOA体系中三种角色围绕三种操作展开:服务提供者把服务接口的描述信息发布到服务注册中心;服务请求者通过查询服务注册中心的数据库发现所需服务;发现服务后,服务请求者根据描述信息绑定并调用服务。SOA的价值在于基于标准、松散耦合、共享服务、粗粒度这四个特性——既降低了集成现有系统的成本,又通过标准化架构提升开发效率、降低维护复杂度。优点是灵活性(可根据需求变化重新编排服务)、对IT资产的复用、让业务人员能根据需求编排服务而不必考虑技术细节;缺点是服务的粒度划分本身很困难、服务编排是否得当难以判断、接口标准选择不当会带来额外开销和不稳定性、目前对IT硬件资产还谈不上复用、主流实现方式的接口标准林立难以统一、且大多只局限于不带界面的服务共享。金蝶EAS是典型案例:构建于自研的金蝶BOS业务操作系统之上,遵循SOA架构体系,由信息门户(整合第三方系统、协同工作)、业务流程(可灵活配置的流程引擎,业务规则/路线/状态可视)、业务服务(统一接口标准,业务作为功能插件挂在流程上、可按需启用替换)、基础平台(封装底层技术细节、降低集成部署复杂度)四部分构成。

参考来源

- 位置:《软件架构理论与实践》第4章《软件架构的风格与模式》"4.3.16 面向服务架构风格"节(源文件:_epub-src/OEBPS/text00034.html) - 结论依据:原文说明"SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来",并逐一列出服务请求者/提供者/注册中心三种角色及发布/发现/绑定调用三种操作,直接支撑本卡片结论。 - 原始内容:服务(service)是一个粗粒度的、可发现的软件实体。它以一个单独的实例存在,并通过一组松散耦合和基于消息的模型与其他应用或服务交互……面向服务架构风格在于具有基于标准、松散耦合、共享服务和粗粒度等优势。