<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>服务化架构 on 文艺技术笔记</title><link>https://wenyiblog.top/tags/%E6%9C%8D%E5%8A%A1%E5%8C%96%E6%9E%B6%E6%9E%84/</link><description>Recent content in 服务化架构 on 文艺技术笔记</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><copyright>文艺技术笔记 | 软件工程师文艺</copyright><lastBuildDate>Thu, 18 Jun 2026 22:00:00 +0800</lastBuildDate><atom:link href="https://wenyiblog.top/tags/%E6%9C%8D%E5%8A%A1%E5%8C%96%E6%9E%B6%E6%9E%84/index.xml" rel="self" type="application/rss+xml"/><item><title>SOA 参考架构白皮书精读：企业信息化架构设计的服务化第一课</title><link>https://wenyiblog.top/2026/06/soa-reference-architecture/</link><pubDate>Thu, 18 Jun 2026 22:00:00 +0800</pubDate><guid>https://wenyiblog.top/2026/06/soa-reference-architecture/</guid><description>&lt;h2 id="2026-年了为什么还要聊-soa"&gt;&lt;a href="#2026-%e5%b9%b4%e4%ba%86%e4%b8%ba%e4%bb%80%e4%b9%88%e8%bf%98%e8%a6%81%e8%81%8a-soa" class="header-anchor"&gt;&lt;/a&gt;2026 年了，为什么还要聊 SOA？
&lt;/h2&gt;&lt;p&gt;每次跟团队里的年轻工程师聊架构演进，总会有人问：&amp;ldquo;SOA 不是上古时代的产物吗？现在都云原生、Service Mesh 了，还有必要回头看它吗？&amp;rdquo;&lt;/p&gt;
&lt;p&gt;有必要。而且非常有必要。&lt;/p&gt;
&lt;p&gt;微服务不是从石头缝里蹦出来的。它的核心思想——服务化、松耦合、接口契约、服务编排——全部来自 SOA。区别只在于实现手段从 SOAP/ESB 换成了 REST/gRPC/Service Mesh。如果你不理解 SOA 当年试图解决什么问题，你在微服务架构里踩的坑，大概率是前人已经踩过并写进白皮书里的。&lt;/p&gt;
&lt;p&gt;这篇文章基于《SOA 参考架构白皮书》和《SOA 标准体系白皮书》两份文档，拆解 SOA 的架构设计逻辑。不管你是在做企业数字化转型，还是在重构遗留系统，这些设计思路至今依然成立。&lt;/p&gt;
&lt;h2 id="soa-核心概念服务到底是什么"&gt;&lt;a href="#soa-%e6%a0%b8%e5%bf%83%e6%a6%82%e5%bf%b5%e6%9c%8d%e5%8a%a1%e5%88%b0%e5%ba%95%e6%98%af%e4%bb%80%e4%b9%88" class="header-anchor"&gt;&lt;/a&gt;SOA 核心概念：服务到底是什么
&lt;/h2&gt;&lt;p&gt;白皮书对 SOA 的定义引用了 OASIS 标准组织的表述：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;SOA 是一种软件体系结构范型，可以组织和使用处于不同所有者控制下的分布式功能。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;说白了，SOA 做的事情就是：把散布在各个系统里的业务能力，封装成标准化的&amp;quot;服务&amp;quot;，让不同的系统能互相调用，而不需要知道对方的内部实现。&lt;/p&gt;
&lt;p&gt;白皮书强调服务的几个关键特征：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;自描述&lt;/strong&gt;：服务通过 WSDL 等契约文件对外暴露接口，调用方不需要看源码就能接入&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;松耦合&lt;/strong&gt;：接口松耦合（封装实现细节）、技术松耦合（不绑定特定语言或平台）、流程松耦合（不绑定特定业务流程，保证可复用性）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;粗粒度&lt;/strong&gt;：服务不是函数级别的封装，而是业务操作级别的封装。一个服务对应一个完整的业务动作&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;标准化&lt;/strong&gt;：接口、消息格式、通信协议全部走开放标准（SOAP、WSDL、UDDI），不依赖特定厂商&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这里有一个很关键的洞察：SOA 的&amp;quot;服务&amp;quot;不是技术概念，而是业务概念。服务从更高抽象层次上定义，直接与业务相对应。这一点跟后来 DDD 里的 Bounded Context 思想高度一致。&lt;/p&gt;
&lt;h2 id="参考架构的分层设计"&gt;&lt;a href="#%e5%8f%82%e8%80%83%e6%9e%b6%e6%9e%84%e7%9a%84%e5%88%86%e5%b1%82%e8%ae%be%e8%ae%a1" class="header-anchor"&gt;&lt;/a&gt;参考架构的分层设计
&lt;/h2&gt;&lt;p&gt;白皮书给出的 SOA 技术参考架构分为两大部分：&lt;strong&gt;运行时平台&lt;/strong&gt;和&lt;strong&gt;辅助工具&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;运行时平台从上到下包含以下层次：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;层次&lt;/th&gt;
&lt;th&gt;组件&lt;/th&gt;
&lt;th&gt;职责&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;交互层&lt;/td&gt;
&lt;td&gt;交互服务&lt;/td&gt;
&lt;td&gt;人与服务的交互入口，统一操作界面，多渠道支持&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;应用层&lt;/td&gt;
&lt;td&gt;业务服务、流程服务、信息服务&lt;/td&gt;
&lt;td&gt;业务逻辑执行、流程编排、数据访问&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;骨干层&lt;/td&gt;
&lt;td&gt;连通服务（ESB）、协作服务&lt;/td&gt;
&lt;td&gt;服务间通信骨干、跨组织互操作&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;接入层&lt;/td&gt;
&lt;td&gt;适配器&lt;/td&gt;
&lt;td&gt;遗留系统和数据资源的服务化封装&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;横切层&lt;/td&gt;
&lt;td&gt;安全服务、运行管理、资源管理&lt;/td&gt;
&lt;td&gt;认证授权、监控、服务注册发现&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;几个值得细说的设计：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;连通服务（即 ESB）&lt;/strong&gt; 是整个架构的骨干。每个服务都通过通信代理挂到 ESB 上，服务间不直接通信。ESB 负责消息路由、协议转换、负载均衡、可靠传输。这个设计后来被 Service Mesh 的 Sidecar 模式继承——只不过 ESB 是集中式的，Mesh 是分布式的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;适配器&lt;/strong&gt;负责把遗留系统（数据库、老应用、文件系统）包装成标准服务接入平台。白皮书特别提到，适配器需要支持连接管理、事务管理和安全管理，是产品级的质量属性。这就是后来&amp;quot;防腐层&amp;quot;（Anti-Corruption Layer）的前身。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;协作服务&lt;/strong&gt;解决跨组织的互操作问题。当两个组织各自用不同的 SOA 平台时，通过协作服务的 WebServices 代理实现跨平台通信。这个场景放到今天就是 B2B API 网关。&lt;/p&gt;
&lt;h2 id="soa-vs-微服务一张表看清演进关系"&gt;&lt;a href="#soa-vs-%e5%be%ae%e6%9c%8d%e5%8a%a1%e4%b8%80%e5%bc%a0%e8%a1%a8%e7%9c%8b%e6%b8%85%e6%bc%94%e8%bf%9b%e5%85%b3%e7%b3%bb" class="header-anchor"&gt;&lt;/a&gt;SOA vs 微服务：一张表看清演进关系
&lt;/h2&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;维度&lt;/th&gt;
&lt;th&gt;SOA&lt;/th&gt;
&lt;th&gt;微服务&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;服务粒度&lt;/td&gt;
&lt;td&gt;粗粒度，面向业务操作&lt;/td&gt;
&lt;td&gt;细粒度，面向单一职责&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;通信方式&lt;/td&gt;
&lt;td&gt;ESB 集中式路由，SOAP/XML&lt;/td&gt;
&lt;td&gt;直连通信，REST/gRPC/事件驱动&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;数据管理&lt;/td&gt;
&lt;td&gt;共享数据库，信息服务统一访问&lt;/td&gt;
&lt;td&gt;数据库私有化，每个服务独立存储&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;服务注册&lt;/td&gt;
&lt;td&gt;UDDI 注册中心，静态/动态查找&lt;/td&gt;
&lt;td&gt;Service Registry（Consul、Nacos 等）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;部署方式&lt;/td&gt;
&lt;td&gt;传统部署，单体或大粒度模块&lt;/td&gt;
&lt;td&gt;容器化部署，独立可伸缩&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;治理重心&lt;/td&gt;
&lt;td&gt;接口契约 + 服务等级协议（SLA）&lt;/td&gt;
&lt;td&gt;API 网关 + 可观测性 + 混沌工程&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;编排方式&lt;/td&gt;
&lt;td&gt;BPEL 流程编排，集中式&lt;/td&gt;
&lt;td&gt;Saga/事件编排，去中心化&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;标准化&lt;/td&gt;
&lt;td&gt;WS-* 全家桶（W3C、OASIS）&lt;/td&gt;
&lt;td&gt;事实标准（OpenAPI、gRPC Proto）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;适用场景&lt;/td&gt;
&lt;td&gt;企业应用集成、遗留系统复用&lt;/td&gt;
&lt;td&gt;互联网高并发、快速迭代&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;本质区别在于：SOA 解决的是&amp;quot;已有系统怎么打通&amp;quot;的问题，微服务解决的是&amp;quot;新系统怎么快速演进&amp;quot;的问题。如果你的企业有大量遗留系统需要集成，SOA 的设计思路比微服务更直接适用。&lt;/p&gt;
&lt;h2 id="服务治理soa-留给我们的核心遗产"&gt;&lt;a href="#%e6%9c%8d%e5%8a%a1%e6%b2%bb%e7%90%86soa-%e7%95%99%e7%bb%99%e6%88%91%e4%bb%ac%e7%9a%84%e6%a0%b8%e5%bf%83%e9%81%97%e4%ba%a7" class="header-anchor"&gt;&lt;/a&gt;服务治理：SOA 留给我们的核心遗产
&lt;/h2&gt;&lt;p&gt;白皮书花了大量篇幅讨论服务质量属性（QoS），归纳起来就是三件事：&lt;/p&gt;
&lt;h3 id="1-安全性"&gt;&lt;a href="#1-%e5%ae%89%e5%85%a8%e6%80%a7" class="header-anchor"&gt;&lt;/a&gt;1. 安全性
&lt;/h3&gt;&lt;p&gt;SOA 的安全设计分四个层次：传输级（SSL/TLS、VPN）、消息级（XML 签名和加密）、服务级（WS-Security 框架、SAML 单点登录、XACML 访问控制）、环境级（防病毒、安全审计）。这套分层安全模型，放到今天的 API Gateway + OAuth2 + mTLS 体系里，思路完全一样。&lt;/p&gt;
&lt;h3 id="2-可靠传输"&gt;&lt;a href="#2-%e5%8f%af%e9%9d%a0%e4%bc%a0%e8%be%93" class="header-anchor"&gt;&lt;/a&gt;2. 可靠传输
&lt;/h3&gt;&lt;p&gt;白皮书定义可靠消息传递需要满足：有保证的传递、消息状态通知、去重、消息排序。对应到 WS-Reliability 和 WS-ReliableMessaging 标准。今天我们在消息队列（Kafka、RabbitMQ）里做的 at-least-once/exactly-once 语义，本质上就是在解决同一个问题。&lt;/p&gt;
&lt;h3 id="3-事务性"&gt;&lt;a href="#3-%e4%ba%8b%e5%8a%a1%e6%80%a7" class="header-anchor"&gt;&lt;/a&gt;3. 事务性
&lt;/h3&gt;&lt;p&gt;SOA 支持三种事务模式：原子事务（两阶段提交）、补偿事务（反向操作回退）、流程事务（混合模式，允许人工干预）。这个分类非常经典——微服务里的 Saga 模式就是补偿事务的翻版，而 Seata 等分布式事务框架则把三种模式都实现了。&lt;/p&gt;
&lt;h2 id="企业落地-soa-的实操经验"&gt;&lt;a href="#%e4%bc%81%e4%b8%9a%e8%90%bd%e5%9c%b0-soa-%e7%9a%84%e5%ae%9e%e6%93%8d%e7%bb%8f%e9%aa%8c" class="header-anchor"&gt;&lt;/a&gt;企业落地 SOA 的实操经验
&lt;/h2&gt;&lt;p&gt;白皮书在&amp;quot;实施中需要考虑的问题&amp;quot;一节里提到几个至今仍然有效的告诫：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;XML 解析的性能代价。&lt;/strong&gt; 大量基于 XML 的描述和消息传递带来了良好的互操作性，但解析效率是硬伤。这在今天对应的教训是：JSON 比 XML 轻量，但 gRPC/Protobuf 比 JSON 更高效。选型时要权衡通用性和性能。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;标准竞争风险。&lt;/strong&gt; 当时同一技术领域存在多个互相竞争的 WS-* 标准，选型风险大。今天的对应场景是：CloudEvents vs gRPC vs GraphQL，每个都有拥趸，选错了就是生态孤立。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;从小系统开始。&lt;/strong&gt; 白皮书明确建议&amp;quot;可以通过一些较小、较简单的系统开始进行，采用简单成熟的技术，逐步积累经验&amp;quot;。这条建议放在任何架构转型里都成立——不要一上来就搞全面改造，先跑通一个试点。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;服务治理不是可选的。&lt;/strong&gt; 白皮书反复强调运行管理、资源管理、安全监控这些横切关注点的重要性。没有治理能力的 SOA 就是一堆失控的远程调用。微服务时代也一样，没有可观测性和 API 管理的微服务就是分布式单体。&lt;/p&gt;
&lt;h2 id="写在最后"&gt;&lt;a href="#%e5%86%99%e5%9c%a8%e6%9c%80%e5%90%8e" class="header-anchor"&gt;&lt;/a&gt;写在最后
&lt;/h2&gt;&lt;p&gt;SOA 的很多具体技术（SOAP、UDDI、BPEL）确实已经退出了主流舞台。但它建立的架构思维——服务化封装、接口契约、松耦合、标准化互操作、服务治理——构成了今天所有分布式系统设计的底层逻辑。&lt;/p&gt;
&lt;p&gt;当你在设计 API 网关、规划服务拆分、选型 Service Mesh、或者为遗留系统做绞杀者模式改造时，你其实都在做 SOA。只是工具变了，思路没变。&lt;/p&gt;
&lt;p&gt;建议每个做企业架构的工程师都花点时间读一读这两份白皮书。不是为了学 SOAP，而是为了理解那些穿越了二十年依然成立的架构原则。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;参考资料：《SOA 参考架构白皮书》（长风开放标准平台软件联盟）、《SOA 标准体系白皮书 V1.0》（中国电子技术标准化研究所互联网标准开放实验室，2008）&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>