企業應用面臨重複造輪子問題:資料庫連線、交易管理、安全驗證、訊息佇列、郵件服務等通用需求。各大廠商推出專屬中間件,但介面不互通。Sun 制定 **J2EE 規範**,定義標準 API 與契約,實現 **Write Once, Run Anywhere (應用伺服器層面)**。
| 術語 | 定義 | 實作範例 |
|---|---|---|
| 中間件 | 介於作業系統與應用程式之間,屏蔽底層異構性,提供通用服務 | WebLogic, WebSphere, JBoss, Tomcat (Web 容器) |
| Web 容器 | 管理 Servlet/JSP 生命週期、提供 HTTP 請求處理、Session 管理 | Tomcat, Jetty, Undertow, Resin |
| EJB 容器 | 管理 Enterprise Bean:交易、安全、並發、持久化、遠端存取、生命週期 | WildFly, WebLogic, WebSphere, OpenEJB |
| RMI-IIOP | Java 遠端方法調用 + CORBA 協議,支援跨語言/跨平台遠端呼叫 | EJB 遠端介面、分散式服務 |
| JNDI | 命名/目錄服務,統一查找 DataSource、EJB、環境變數、郵件 Session | LDAP, DNS, 檔案系統, 應用伺服器內建 |
| JMS | 訊息導向中介軟體 (MOM) API,支援 Queue (P2P) 與 Topic (Pub/Sub) | ActiveMQ, IBM MQ, RabbitMQ (via JMS client) |
| JTA | 高層交易 API,UserTransaction、TransactionManager,協調多資源管理器 (XA) | Atomikos, Narayana, 應用伺服器內建 |
| JAAS/JACC | 認證與授權框架,Principal、Subject、Policy、Permission | 登入模組、角色基礎存取控制 (RBAC) |
| 伺服器 | 類型 | 授權 | 特色 | 現狀 |
|---|---|---|---|---|
| WebLogic | 全功能 J2EE | 商業 | 效能強、管理主控台完善、生產級首選 | Oracle 持續更新 (14c+) |
| WebSphere | 全功能 J2EE | 商業 | 企業級整合強、支援 z/OS、安全合規完善 | IBM 持續更新 (9.0/Traditional) |
| JBoss / WildFly | 全功能 J2EE | 開源 (LGPL) | 創新快、社群活躍、Red Hat 支援版 (EAP) | WildFly 27+ (Jakarta EE 10) |
| Tomcat | Web 容器 (Servlet/JSP) | 開源 (ASL 2.0) | 輕量、啟動快、生產廣泛用於 Spring Boot | 10.1.x (Servlet 6.0) |
| Jetty | Web 容器 | 開源 (EPL/ASL) | 嵌入式優先、模組化、Spring Boot 內建選項 | 11/12 (Servlet 5/6) |
| GlassFish / Payara | 全功能 J2EE | 開源 (CDDL/GPL) | Jakarta EE 相容性參考實作 | Payara 社群/企業版持續維護 |
DataSource (JNDI) 與 UserTransaction (JTA),若需完整 XA 可整合 Atomikos/Narayana。