大叔自由人

软考 / 架构师 / 第15章

基于中间件的开发

一、章节概述

中间件是处于操作系统、网络、数据库之上,应用软件之下的基础软件,用于解决分布异构环境下系统集成与互操作问题。本章围绕中间件技术展开,介绍其概念、分类、典型产品(MQSeries、Tuxedo),以及 J2EE、.NET 两大企业级开发平台、企业应用集成 EAI,并对比 Struts+Spring+Hibernate 轻量级架构与 EJB 重量级架构。理解本章有助于在分布式系统中合理选型与分层。

二、知识结构框架

15.1 中间件技术
概念 / 分类(8类) / 产品(MQSeries、Tuxedo)
15.2 应用服务器技术
概念 / 主要应用服务器
15.3 J2EE
表示层 / 应用服务层
15.4 .NET
.NET 平台 / .NET 框架(CLR、CTS)
15.5 企业应用集成 EAI
数据集成 / 应用集成 / 业务过程集成
15.6 轻量级 vs 重量级
Struts / Spring / Hibernate / SSH 架构

三、核心概念

1. 中间件定义

中间件是独立系统软件/服务程序,位于操作系统之上、应用之下,屏蔽底层异构性,提供标准接口与协议,支持跨网络、跨平台透明交互。Standish Group 归纳其十大优越性,其中总建设费用可减少约 50%

2. 中间件八大分类

类别说明/代表产品
通信处理(消息)中间件跨平台可靠传输;MQSeries、TongLINK
事务处理(交易)中间件OLTP、负载均衡、永不停机;BEA Tuxedo
数据存取管理中间件虚拟缓冲、格式转换、解压
Web 服务器中间件扩展 HTTP 会话能力;SilverStream
安全中间件加密、认证、防火墙国产化
跨平台和架构的中间件CORBA / JavaBeans / COM+
专用平台中间件特定领域(电商、网站)构件库
网络中间件网管、接入、虚拟社区

3. J2EE 与 .NET 对比

  • J2EE:跨平台、语言单一(Java),表示层用 Servlet/JSP,应用服务层用 EJB,体现"一次编写到处运行"。
  • .NET:平台绑定 Windows,但支持多语言(C#、VB.NET);核心是 .NET 框架,包含 CLR(公共语言运行时)和 FCL,采用 CTS 实现语言互操作。

4. 企业应用集成 EAI

集成层次由低到高:数据集成 → 应用集成 → 业务过程集成。代表有 ESB、EJB、Web Service。

5. 轻量级架构 SSH

  • Struts:表示层 MVC 框架,ActionServlet 控制器解析 struts-config.xml。
  • Spring:业务层,IoC 延时注入 + AOP 切面,封装 Hibernate 会话工厂与事务。
  • Hibernate:持久层 ORM,使用 HQL 查询对象,支持主流数据库。

四、关键要点(无公式章节)

本章以概念识记与对比为主,核心关系如下:

  • 中间件三层位置:OS/网络/DB ← 中间件 ← 应用软件
  • MQSeries 保证异步可靠传输,Tuxedo 保证事务完整性
  • SSH 架构分层:表示层 Struts + 业务层 Spring + 持久层 Hibernate。
  • J2EE = 跨平台 + 单语言;.NET = 单平台 + 多语言。

五、图示引用

图15-1 中间件的位置

中间件的位置

图15-12 SSH 轻量级架构

中间件八大分类及代表产品是高频考点;J2EE 与 .NET 的特点对比(跨平台/多语言)需准确区分;SSH 架构中三个框架的分层职责(Struts 表示层、Spring 业务层、Hibernate 持久层)务必记牢;轻量级 vs 重量级架构的优劣势对比易出选择题。