第28篇-构件技术与软件复用:CORBA与主流构件标准

发布时间:2026/9/11 18:12:27
第28篇-构件技术与软件复用:CORBA与主流构件标准 【软考系统架构设计师全链路通关实战】第 28 篇构件技术与软件复用CORBA 与主流构件标准本系列定位以软考系统架构设计师高级考试为主线语言无关的架构方法论视角覆盖官方教程第二版全部 20 章考点按「综合知识 → 案例分析 → 论文」三科组织每篇含考点精讲 真题规律 应试技巧 Mermaid 图解。本篇你将学到构件Component的严格定义与三大特性——综合知识高频多选题的原文出处CORBA 体系全解ORB 对象请求代理、IIOP 协议、客户端 Stub 与服务端 Skeleton、IDL 接口定义语言配完整调用时序图——案例分析与选择题双高频三大主流构件标准对比微软系 COM/DCOM/COM、Java 系 EJB、OMG 系 CORBA一张大表收口中间件与构件的关系——衔接第 15 篇中间件分类打通「复用基础设施」的知识闭环软件复用的六个级别与复用度递进关系、复用的收益与障碍——论文可用的方法论素材本篇是模块五架构核心的倒数第二篇。前四篇我们讲完了 DSSA第 24 篇、ABSD第 25 篇、ADD第 26 篇、演化维护第 27 篇这些方法论的落地都依赖一个共同基石——可复用的软件单元。构件技术就是这个基石的工业化形态。考点热力表考点综合知识案例分析论文构件定义与三大特性★★★ 高频多选原文级考法★ 偶现于方案辨析★ 可作论文理论铺垫CORBA 体系ORB/IIOP/Stub-Skeleton/IDL★★★ 稳定出题区★★★ 补图/问答高频★★ 中间件类论文素材COM/DCOM/COM、EJB、CORBA 三标准对比★★★ 对比型选择题★★ 特性判断★中间件与构件关系★★ 概念辨析★★★ 论文背景句复用级别与复用度递进★★ 常考排序题★ 偶现★★★ 复用/产品线论文核心论据复用的收益与障碍★ 偶现★★★ 论文「存在问题」段素材一、构件的定义与特性从「复用」出发的严格定义软件构件的概念人人都能说两句但考试考的是官方教程的严格定义。先看定义原文的要点构件是一个独立可交付的功能单元通过接口访问其服务对外封装了实现细节。构件可以被独立部署、由第三方组装且对外界无可见的状态。这个定义拆出三大特性是多选题的原文出处务必逐条记牢独立部署构件是一个自包含的部署单元可以脱离开发它的系统单独安装、替换、升级不需要改动其他构件。这与传统面向对象程序里「类必须编译链接进整个应用」形成鲜明对比。第三方组装构件的使用者组装者不是构件的开发者。第三方在不知道内部实现的情况下仅凭接口契约契约 接口 语义约束就能把构件组装进自己的系统。无状态对外可见构件实例之间不应有需要外界感知的状态差异——更准确地说一个构件的实例不能与另外一个构件实例有所区别至少对外不可区分。这个特性最容易被忽略也是多选题最爱的干扰项。一句话记忆口诀能独立部署、能第三方组装、对外看不出状态。再辨析三组易混概念选择题惯用手法概念与构件的区别对象类实例对象是开发期的程序构造依赖编程语言与编译单元构件是部署期单元跨语言、跨进程模块模块是源代码组织单位如一个包不要求独立部署构件以二进制形态交付服务服务是运行期通过网络可达的功能单元松耦合程度更高第 29 篇展开从「对象 → 构件 → 服务」的演进本质是复用粒度不断加大、耦合程度不断降低的过程这条主线贯穿第 15 篇Web Service 协议基础→ 本篇构件→ 第 29 篇服务→ 第 39 篇SOA 实战。在智联云商项目中「支付构件」就是一个典型构件它封装了对接多个支付渠道的全部逻辑通过统一接口下单、查单、退款对外服务电商平台、小程序商城、线下收银系统三个应用都组装这个构件支付渠道升级时只重新部署支付构件三个宿主应用零改动。二、CORBA 体系详解跨平台分布式对象调用的教科书CORBACommon Object Request Broker Architecture公共对象请求代理体系结构由 OMG对象管理组织制定是考试中最成体系、出题密度最高的构件/中间件技术没有之一。原因很简单它把「跨平台、跨语言的分布式对象调用」的完整机制讲清楚了时序图、角色划分、协议分层都是命题富矿。2.1 OMG 对象管理体系结构四个层次OMG 的对象管理体系结构OMA 参考模型分为四层OMA参考模型应用对象层面向具体业务的分布式应用公共对象服务层命名/事务/安全等通用服务 COS公共设施层跨领域通用功能界面、打印、邮件对象请求代理 ORB核心总线定位并调用对象对象请求代理ORB整个体系的核心负责在客户端与服务端对象之间透明地传递请求与响应——所谓透明是指调用远端对象和调用本地对象在代码层面几乎无差别。对象服务CORBA Services / COS与领域无关的通用服务如命名服务、事务服务、安全服务、生命周期服务。公共设施半通用水平功能应用对象最终业务系统。考试问「CORBA 体系结构的核心/基础是什么」答案就是ORB。对象服务层COS在选择题中偶有涉及记住几个代表性服务的「服务名—用途」对应即可命名服务按名字查找对象引用类比电话簿、事务服务跨多个对象的分布式事务协调、安全服务认证、授权、加密、生命周期服务对象的创建、删除、迁移、事件服务对象间的异步通知与第 23 篇事件驱动风格中的观察者机制同源。2.2 IDL接口定义语言——契约先行IDLInterface Definition Language是 CORBA 的接口描述语言作用是把接口定义与实现语言解耦服务端用 IDL 声明对象接口有哪些方法、参数类型、返回类型IDL 编译器把接口定义编译映射为具体编程语言的**客户端 Stub存根与服务端 Skeleton骨架**代码客户端语言可以是 Java服务端可以是 C——双方共享的只有 IDL 契约。IDL 的语法骨架与多数强类型语言的接口声明相似module划分命名空间对应包、interface声明对象类型、内部列出方法签名含参数方向 in/out/inout、类型与返回值、attribute声明属性、exception声明可抛出的异常。两点命题细节其一IDL只定义接口不定义实现是纯契约语言其二IDL 不是 CORBA 专用的通用编程语言它不能表达业务逻辑——判断题常拿「IDL 中可以编写对象实现逻辑」设坑。这段「契约先行、语言无关」的思想在后世的 WSDL第 15 篇已讲、第 29 篇深化中再次出现命题人非常喜欢考这个一脉相承的对应关系IDL 之于 CORBA正如 WSDL 之于 Web Service。2.3 完整调用时序Stub、ORB 与 Skeleton 的协作CORBA 客户端调用一个远端对象的完整链路是本篇最重要的图案例分析补时序图题的直接素材服务对象实现 Servant服务端 Skeleton 骨架ORB 对象请求代理客户端 Stub 存根客户端程序 Client服务对象实现 Servant服务端 Skeleton 骨架ORB 对象请求代理客户端 Stub 存根客户端程序 Client调用接口方法本地调用形式参数打包/序列化Marshalling通过 IIOP 发送请求报文定位目标对象查接口仓库/实现仓库转交请求参数解包/反序列化Unmarshalling调用真正的实现方法返回结果结果打包经 IIOP 返回送达响应报文还原为本地调用返回值按图逐个角色记忆要点Stub存根位于客户端是 IDL 接口在客户端的「替身」。客户端程序像调用本地方法一样调用 StubStub 负责把方法名与参数**序列化Marshalling**成报文交给 ORB。作用概括客户端侧的代理与参数打包器。Skeleton骨架位于服务端是 IDL 接口在服务端的「底座」。它接收 ORB 转来的请求**反序列化Unmarshalling**出参数调用真正的对象实现Servant再把结果打包返回。作用概括服务端侧的参数解包器与分发器。ORB总线角色。负责对象定位借助接口仓库 Interface Repository 与实现仓库 Implementation Repository、请求路由、传输。不同厂商 ORB 之间通过GIOP/IIOP协议互通。IIOPInternet Inter-ORB ProtocolORB 之间在 TCP/IP 上交换请求的线缆协议。它是 GIOP通用 ORB 间协议映射到 TCP/IP 的具体版本。选择题问「CORBA 中客户端与服务端通信采用什么协议」答IIOP不是 DCOM 的 RPC也不是 HTTP。一个高频陷阱动态调用接口DII与静态 Stub 的区别。静态调用需在编译期把 IDL 编译成 Stub动态调用接口DII允许客户端在运行期才发现并调用接口。对应地服务端有动态骨架接口DSI。近年偶考见题记住「DII 运行期动态发现调用」即可。把这条链路压缩成流程图记忆版案例补图时两种图都能画本地方式调用IIOP 报文转交请求调用原路返回结果客户端程序Stub 存根序列化打包ORB定位/路由Skeleton 骨架反序列化解包Servant 对象实现再强调一个时序图题的易错点请求的返回路径。阅卷标准答案通常要求画出「实现 → Skeleton 打包 → ORB → Stub 解包 → 客户端」的完整回程很多考生只画去程忘了回程白白丢一半分数。补图题的原则有几个参与者就画几段完整往返。2.4 CORBA 的跨语言与跨平台特性总结CORBA 机制解决的问题IDL 接口定义语言语言解耦接口契约独立于实现语言ORB 对象请求代理位置透明调用方无需知道对象在哪台机器上IIOP 协议平台/厂商解耦不同 ORB 产品在 TCP/IP 上互通Stub / Skeleton编程模型透明远程调用长得像本地调用接口仓库 / 实现仓库运行期元数据支持动态发现与对象定位CORBA 的固有短板论文可用作「局限性」论据二进制协议对企业防火墙不友好、体系庞杂学习曲线陡峭、厂商实现互操作性实际欠佳——这些正是后来 Web Service基于 XML/HTTP 文本协议兴起的直接原因。这条「演进因果线」是论文里非常出彩的写法。三、主流构件标准对比三足鼎立大表除 CORBA 外考试要求掌握另外两大系的构件标准。三者对比是综合知识「标准类」题目的钉子户且在案例材料中偶现技术选型判断。3.1 三大标准概览维度CORBAOMG 系COM/DCOM/COM微软系EJBJava 系制定组织OMG 对象管理组织微软SunJava 阵营跨平台性跨平台平台无关绑定 Windows「一次编写到处运行」依赖 JVM跨语言性跨语言IDL 映射多语言语言无关二进制标准仅 Java通信协议IIOPRPCDCE RPC 扩展RMI / RMI-IIOP接口定义IDLIDLMIDL与类型库Java 接口 部署描述符中间件/运行支撑ORBCOM 运行时MTS 服务EJB 容器应用服务器典型适用异构企业系统集成Windows 桌面/企业内应用Java 企业级应用三个系各自的演进脉络微软系COM组件对象模型进程内二进制复用标准→ DCOM分布式 COM跨机器调用→ COMCOM MTS 事务/池化等企业服务。演进关键词从进程内到分布式再到企业服务增强。Java 系EJB 由容器管理生命周期分会话 Bean业务逻辑又分有状态/无状态、实体 Bean持久化数据、**消息驱动 Bean异步消费**三类——这个三分法在选择题中反复出现。OMG 系CORBA 2.x 实现 ORB 间互操作IIOPCORBA 3 支持与 Java、CORBA 构件模型CCM集成。3.2 智联云商中的选型示例案例分析思维演练智联云商早期遗留的库存系统由 Windows 平台的 C 团队开发新电商平台基于 Java 技术栈会员系统为大型机遗留应用。集成时会员系统对外暴露 CORBA 接口大型机侧已有 ORB 产品电商平台通过 IDL 生成的 Java Stub 调用——体现 CORBA 的跨语言跨平台能力库存系统以 COM 构件形式包装在 Windows 服务器上通过网关层完成协议转换接入——体现微软系平台绑定的现实约束新业务统一以 EJB会话 Bean实现业务构件部署于应用服务器容器中——体现容器托管的构件运行方式。这个选型叙述本身就是案例分析「给场景判断技术」的答题模板先看平台约束 → 再看语言约束 → 最后看互操作需求。四、中间件与构件的关系复用的基础设施第 15 篇我们系统讲过中间件的四大类数据库访问中间件ODBC/JDBC 类、消息中间件MQ 类、事务处理中间件TP Monitor 类、RPC 中间件远程过程调用类。本篇把「构件」放进来形成完整认知中间件是构件运行与协作的支撑平台。构件要实现独立部署、跨机器透明调用必须依赖中间件提供定位、通信、事务、安全等系统级服务——CORBA 的 ORB、EJB 的容器、COM 的运行时本质上都是面向构件的中间件有时称「构件中间件」或分布式对象中间件。构件是复用的单元中间件是使复用得以透明发生的的基础设施。没有中间件构件调用就得自己处理网络、序列化、事务、故障独立部署无从谈起。从中间件家族谱系看RPC 中间件如早期 Sun RPC解决「调用透明」→ 分布式对象中间件CORBA/DCOM/EJB把「对象/构件」作为调用单位并加上服务支持 → 服务中间件ESB/Web Service 栈第 39 篇把「服务」作为复用与集成单位。复用单元在变大中间件的能力在变强。一张图固化这个关系应用系统构件 A构件 B构件 C构件中间件层ORB / EJB 容器 / COM 运行时基础中间件RPC 消息 事务 数据库访问操作系统与网络辨析题口诀中间件管「怎么连」构件管「提供什么」。五、软件复用级别从代码到服务的复用度阶梯复用是构件存在的根本目的。官方考点是把复用按抽象级别分为六级复用度复用带来的收益倍数逐级递增级别复用对象复用形态复用度代码级复用源代码片段/函数库复制粘贴、源码库链接最低设计级复用设计模型、设计模式参照既有设计如 GoF 模式↑架构级复用架构风格、参考架构沿用整体结构第 22~23 篇的风格↑框架级复用应用框架Framework反向控制填充扩展点↑构件级复用二进制构件组装、黑盒替换↑服务级复用网络服务跨组织按契约调用最高三点展开说明代码级复用是最低级的复用——复制代码往往引入「多份副本各自腐化」的问题设计级复用尤其是设计模式不复制代码而复用「经验的结构」第 38 篇层次式架构中会落地。架构级复用与第 24 篇 DSSA 直接挂钩特定领域软件架构就是领域级架构复用的组织化手段产品线工程则让架构复用形成制度。考试常把「DSSA 是实现高层次复用的关键技术」作为论述选项正确。框架级复用的特点是「控制反转」框架是半成品应用骨架已定控制流由框架掌握开发者填充扩展点。框架复用设计但方向与构件库相反——框架调用你的代码你调用构件的代码。这个「谁调用谁」的辨析是经典选择题。服务级复用即 SOA 思想的前奏跨越组织边界按契约消费能力松耦合程度最高下一篇详细展开。这个阶梯本身就是排序题的固定出法给出「构件/代码/服务/设计/架构/框架」六个词让排复用度顺序。记忆钩子越往抽象高层走一次复用摊派的成本越多、对上下文的依赖越少复用度越高——代码复制要适配上下文服务调用连对方用什么实现都不必知道。考试偶有「复用分类」的另一种切法按复用方式分为白盒复用可看源码、可修改本质是源码级复用与黑盒复用只通过接口使用、不可见内部构件与服务级复用的典型形态。黑盒复用度高、维护责任清晰维护收敛在构件提供方是构件技术追求的目标形态白盒复用灵活但会导致「改一处、散一地」的失控维护。复用的收益与障碍论文素材收益论文「取得成效」段可直接引用提升开发效率、缩短交付周期需求→设计→编码的工作量都被摊薄提升质量与可靠性复用件经过多次使用验证缺陷密度显著低于新开发代码降低维护成本与人员要求维护面收敛到少数可复用资产促进标准化与架构一致性复用资产即架构决策的物化。障碍论文「存在问题与改进」段素材管理与组织障碍缺乏复用管理制度与激励「重复造轮子」的考核文化技术障碍缺乏可复用资产与检索机制构件质量与文档参差领域划分不清经济障碍前期建立复用资产投入大、见效慢「谁投资、谁受益」账难算清法律障碍第三方构件的知识产权与许可限制注意表述分寸合同/授权约束不展开具体厂商。论文写作时把智联云商「支付构件 会员 CORBA 接口 数据访问中间件」作为复用实践证据把上述障碍对照写出改进措施建立构件库管理制度、以领域工程沉淀资产——呼应第 24 篇就是一篇结构完整的复用主题论文。本篇小结知识点核心内容构件三大特性独立部署、第三方组装、对外无可见状态——多选原文CORBA 核心ORB 是核心总线IDL 定义接口契约Stub 客户端打包、Skeleton 服务端解包CORBA 通信ORB 之间用 GIOP/IIOPTCP/IP互通DII 支持运行期动态调用三大标准CORBA 跨平台跨语言COM 绑定 WindowsEJB 仅 Java 但跨平台JVM中间件与构件中间件是构件透明协作的基础设施ORB/容器本质是构件中间件复用六级代码→设计→架构→框架→构件→服务复用度递增复用方式白盒复用可改源码、黑盒复用只走接口黑盒是构件技术目标形态复用收益/障碍效率质量双升 vs 管理技术经济法律四类障碍下篇预告第 29 篇基于服务的构建与 Web 2.0 全景服务三要素与 SOA 三角角色、Web Service 工作流程时序、SOAP 消息结构拆解、SOAP 与 REST 选型对比、Mashup/Ajax 与 HTML5/CSS3 一图流并给出模块五第 20~29 篇收官总表——为模块八 SOA 实战打底。如果本篇内容对你有帮助欢迎点赞收藏有任何疑问欢迎在评论区交流。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询