exam markdown J2EE与.NET架构对比
MD 更新:未知
J2EE 与 .NET 架构对比
关联笔记:技术组件与中间件总结、五大架构风格总结
J2EE 架构
J2EE(Java 2 Platform, Enterprise Edition,现称 Jakarta EE)是一套企业级分布式应用开发规范,核心思想是分层 + 容器管理。
四层架构
客户端层 Web 层 业务层 EIS 层
┌──────────┐ ┌──────────────────┐ ┌──────────────┐ ┌──────────┐
│ 浏览器 │──→│ Servlet / JSP │──→│ EJB (会话Bean)│──→│ 数据库 │
│ Applet │ │ (Web 容器) │ │ (EJB 容器) │ │ MQ │
│ 桌面客户端 │ │ Struts/JSF │ │ JTA / JMS │ │ ERP │
└──────────┘ └──────────────────┘ └──────────────┘ └──────────┘
| 层 | 运行位置 | 职责 | 核心技术 |
|---|
| 客户端层 | 浏览器/桌面 | 用户界面 | HTML、JSP、Applet |
| Web 层 | Web 容器 | 处理 HTTP 请求、页面渲染 | Servlet、JSP、JSF |
| 业务层 | EJB 容器 | 核心业务逻辑、事务管理 | EJB、JTA |
| EIS 层 | 数据库服务器 | 数据存储与外部系统 | JDBC、JPA、JMS |
核心组件
| 组件 | 作用 | 考前记忆 |
|---|
| Servlet | 接收 HTTP 请求,返回响应 | Web 层控制器 |
| JSP | 动态生成 HTML 页面 | Web 层视图 |
| EJB | 封装业务逻辑,容器管理事务/安全/并发 | 业务层核心 |
| JDBC | 连接数据库,执行 SQL | 数据访问 |
| JNDI | 名字与目录服务,查找资源 | 服务定位 |
| JTA | 分布式事务管理 | 跨数据库/跨系统事务 |
| JMS | 异步消息通信 | 消息队列 |
容器的核心价值
J2EE 最大的特点是容器替你管一切,开发者只写业务逻辑:
你写的代码只需要声明:
@Transaction
@RolesAllowed("admin")
public void transferMoney() { ... }
容器自动帮你做:
├── 事务管理(开始·提交·回滚)
├── 安全管理(认证·授权)
├── 并发控制(线程池·实例池)
├── 生命周期(创建·销毁)
└── 远程调用(RMI·IIOP)
EJB 三种 Bean
| Bean 类型 | 职责 | 记忆 |
|---|
| 会话 Bean(Session Bean) | 实现业务逻辑 | 干活的人 |
| 实体 Bean(Entity Bean) | O/R 映射,数据库表 → Java 对象 | 数据的人 |
| 消息驱动 Bean(Message-Driven Bean) | 处理异步 JMS 消息 | 收信的人 |
.NET 架构
.NET 是微软的企业级分布式应用平台。对应 J2EE,.NET 的核心是其 DNA 2000 架构(Distributed interNet Application)。
四层架构
表示层 业务层 数据层
┌──────────┐ ┌──────────────┐ ┌──────────────┐
│ ASP.NET │──→│ 业务组件 │──→│ ADO.NET │──→ 数据库
│ WinForms │ │ COM+ / MTS │ │ Entity │
│ WPF │ │ Workflow │ │ Framework │
└──────────┘ └──────────────┘ └──────────────┘
↑ ↑ ↑
IIS 托管 COM+ 容器 连接池管理
| 层 | 核心技术 | J2EE 对应物 |
|---|
| 表示层 | ASP.NET、WinForms、WPF | JSP、Servlet |
| 业务层 | COM+、MTS(事务)、MSMQ(消息) | EJB、JTA、JMS |
| 数据层 | ADO.NET、Entity Framework | JDBC、JPA |
核心组件
| 组件 | 作用 | J2EE 对应 |
|---|
| ASP.NET | Web 应用框架,处理 HTTP 请求 | Servlet + JSP |
| COM+ | 组件服务(事务、安全、池化) | EJB |
| ADO.NET | 数据库访问,连接池管理 | JDBC |
| MSMQ | 异步消息队列 | JMS |
| MTS | 分布式事务协调 | JTA |
| IIS | Web 服务器,托管 ASP.NET | Tomcat / WebLogic |
J2EE vs .NET 详细对比 ⭐⭐
架构层面对比
| 对比维度 | J2EE | .NET (DNA 2000) |
|---|
| 平台 | 跨平台(Linux / Windows / Unix) | Windows 为主(.NET Core 后支持跨平台) |
| 语言 | Java 为主,支持多 JVM 语言 | C#、VB.NET 等 .NET 语言 |
| Web 层 | Servlet + JSP | ASP.NET |
| 业务组件 | EJB(会话/实体/消息驱动 Bean) | COM+ / MTS |
| 数据库访问 | JDBC → JPA / MyBatis / Hibernate | ADO.NET → Entity Framework |
| 事务管理 | JTA(Java Transaction API) | MTS / DTC(分布式事务协调器) |
| 消息队列 | JMS | MSMQ |
| Web 服务器 | Tomcat / Jetty / WebLogic / WebSphere | IIS |
| 运行时 | JVM | CLR(公共语言运行时) |
| 互操作性 | RMI-IIOP、WebService | DCOM、WebService |
设计理念对比
| 维度 | J2EE | .NET |
|---|
| 哲学 | 规范驱动,多厂商实现 | 平台驱动,微软统一提供 |
| 开放程度 | 开放标准,多家厂商竞争 | 传统上封闭,近年开源 |
| 灵活性 | 选择多但集成复杂 | 集成好但选择少 |
| 成本 | 开源免费 + 可选商业服务器 | 传统上 Windows Server 授权费 |
| 开发工具 | Eclipse / IntelliJ IDEA | Visual Studio |
| 学习曲线 | 较陡峭(概念多) | 较平缓(工具集成好) |
构件标准对比(考试重点)
| 标准 | 所属 | 特点 |
|---|
| CORBA | 跨平台通用 | 多语言、跨操作系统,通用性强但复杂 |
| J2EE EJB | Java 阵营 | Java 专属,企业级生态完善 |
| DNA 2000 (COM+) | 微软阵营 | Windows 原生,易集成,封闭生态 |
技术栈对应速查
功能需求 J2EE 方案 .NET 方案
─────────────────────────────────────────────────
Web 应用 Servlet + JSP ASP.NET
桌面应用 Swing / JavaFX WinForms / WPF
业务组件 EJB COM+
数据库访问 JDBC / JPA ADO.NET / EF
事务管理 JTA MTS / DTC
消息队列 JMS MSMQ
Web 服务 JAX-WS WCF
身份认证 JAAS Windows Identity
考试重点
选择题高频
- J2EE 四层架构及各层核心组件
- EJB 三种 Bean 的职责(会话=逻辑、实体=数据、消息驱动=异步)
- J2EE 容器提供的基础服务(事务、安全、并发、生命周期)
- 三大构件标准归属(CORBA / J2EE EJB / DNA 2000)
- J2EE 和 .NET 的平台差异(跨平台 vs Windows)
案例分析高频
- 企业级应用架构选型(J2EE vs .NET 的适用场景)
- EJB 在业务层的应用
- 分层架构中各层的技术选型
论文写作素材
- J2EE 在企业级应用中的应用实践
- 跨国公司异构系统集成(结合 CORBA)
- 从 J2EE 到微服务架构的演进
速记口诀
J2EE 四层:客Web业EIS
EJB 三种:会话做事实体存数据,消息驱动收异步
.NET 对应:ASP.NET → Servlet,COM+ → EJB,ADO.NET → JDBC
三标准归属:CORBA 跨平台,EJB 属 Java,DNA 属微软
相关笔记
创建于:2026年5月15日