前言:標準化分工是工業化的前提
Sun EJB 規範定義了完整基於 EJB 的分布式計算結構由六大角色組成,各角色可由不同開發商提供,但必須遵循統一規範以保證兼容性。這不僅是技術規範,更是軟體工程責任鏈的工業化實踐——將系統級複雜度與業務級複雜度分離,交由最適合的專家處理。
六大角色職責全景
1. EJB 組件開發者 —— 業務邏輯專家
- 核心產出:實現業務邏輯的 EJB 組件,打包為
ejb-jar 文件
- 關鍵交付物:
- Remote / Home 接口定義
- Bean 實現類(業務邏輯核心)
- 部署描述符:EJB 名稱、資源引用(JDBC 等)、環境屬性
- 技能畫像:領域業務專家,**無需精通**事務、同步、安全、分布式計算等系統級編程
2. 應用組合者 —— 系統集成架構師
- 核心職責:利用各類 EJB 組裝完整應用系統
- 輔助產出:Web 端程序(JSP、Servlet 等)
- 知識邊界:掌握所用 EJB 的 Home/Remote 接口,**無需知曉**接口具體實現
3. 部署者 —— 運行環境配置專家
- 核心職責:將
ejb-jar 部署至目標系統環境(特定 EJB Server + Container)
- 關鍵動作:
- 驗證部署描述符聲明的所有資源可用(如配置數據庫連接池)
- 使用容器工具生成運行時輔助類/接口(Stub、Skeleton、容器管理代碼)
- 安裝 Bean 類與生成類至容器
- 編寫簡單測試程序驗證部署結果
- 技能畫像:特定 EJB 運行環境專家(WebLogic、WebSphere、JBoss 等)
4. EJB 服務器提供者 —— 基礎設施建設者
- 核心能力:分布式事務管理、分布式對象管理、系統級服務
- 典型來源:作業系統廠商、中間件廠商、數據庫廠商
- 規範假設:當前規範假定 Server 與 Container 來自同一廠商,未定義兩者間標準接口
5. EJB 容器提供者 —— 組件運行時守護者
- 核心服務:
- 部署工具
- 運行時環境(生命週期管理、事務、安全、實例池、緩存)
- 標準化、易用 API 屏蔽伺服器內部技術細節
- 系統監測工具(實時監控容器與 Bean 狀態)
- 技能畫像:系統級編程專家 + 應用領域經驗,專注打造可擴展、事務型、集成於 Server 的容器
6. 系統管理員 —— 生產環境守門人
- 核心職責:提供企業級計算/網絡環境,7×24 監控與支撐
- 必備技能(無需 Java 專家但需實操能力):
- JVM 設置與環境參數關聯(CLASSPATH 等)
- JAR 命令管理類文件
- Web Server 與 Servlet 工作原理
- 通過運行狀態監控確定優化方向
角色分離的工程學價值
代碼層面的專家分工
- EJB 提供者 = 業務專家/分析師 → 確定組織內最優信息流
- 應用組合者 = 二級領域專家 → 集成不同 EJB、確保滿足應用需求
- 部署者 = 配置專家 → 目錄服務、現有系統集成、安裝配置
- 系統管理員 = 運維專家 → 全天候監控、優化、故障響應
角色交叉與現實適配
現實中角色常有重疊:
- 部署者 ≒ 系統管理員(配置與驗證的分工細化)
- 小團隊中單人可能扮演多角,但職責邊界必須清晰
總結
EJB 六大角色定義,實質是將「業務複雜度」與「系統複雜度」解耦,建立責任清晰、接口標準、可替換、可擴展的軟體供應鏈。這正是軟體工程從「手工作坊」向「工業化生產」邁進的關鍵一步。無論技術棧如何演進(Spring、微服務、Serverless),角色分離、契約優先、責任鏈閉環的工程智慧永不落伍。