隨著軟體系統規模與複雜度攀升,軟體架構選型已超越資料結構與演算法的重要性。三層客戶端/伺服器架構為企業資源規劃整合提供優良框架,成為建構企業級管理資訊系統的首選。本文結合電信計劃建設管理資訊系統實作案例,深入剖析三層架構模式、分散式元件技術與 J2EE 框架落地實踐。
傳統兩層模式僅適用於小規模、單一資料庫、安全高速區域網路環境。隨著系統擴大至多用戶、多資料庫、非安全網路(如 Internet),其缺陷暴露無遺:
因此,三層 Web 模式應運而生。
三層模式在邏輯上將應用分為:客戶顯示層(圖形介面)、業務邏輯層(封裝企業業務模型,隔離表示層與資料庫代碼)、資料層(定義、維護、存取資料)。核心優勢包括:

電信計劃建設管理系統面向省公司統一管理、地市公司資料錄入查詢、用戶分布廣泛、資料集中處理的場景,綜合權衡後選擇三層 Web 模式開發。
Microsoft DCOM 擴展 COM 支援跨網路物件通訊;OMG CORBA 旨在實現分散式環境下物件重用、可移植、互操作。兩者均適合區域網特定環境,但面向跨平台與 Internet 應用時靈活性不足。

J2EE 架構分為客戶表示層、中間邏輯層、資料管理層及應用系統,具備跨平台特性,三層可部署於不同平台協作。客戶端程式多樣化支援分散式管理;後台整合可保護既有資源投資。核心優勢:

本系統業務邏輯與資料處理規則由集團/省公司統一管理,資料與程式集中於統一伺服器,且伺服器與客戶端平台異構,採用 J2EE 框架最為適配。

針對大量用戶並發登入,採用連接池管理資料庫連線:
class DBConnectionPool {
public DBConnectionPool(String name, String URL, String user, String password) {
this.name = name; this.URL = URL; this.user = user; this.password = password;
}
private void createPools(Properties props) {
Hashtable pools = new Hashtable();
String poolName = props.getProperty("poolname").trim();
String url = props.getProperty(poolName+".url").trim();
String user = props.getProperty(poolName + ".user");
String password = props.getProperty(poolName + ".password");
String maxconn = props.getProperty(poolName + ".maxconn", "0");
int max = Integer.parseInt(maxconn);
DBConnectionPool pool = new DBConnectionPool(poolName, url, user, password);
pools.put(poolName, pool);
System.out.println("成功創建連接池 " + poolName);
}
}
利用 SessionBean 處理登入驗證,結合 Bean 監聽功能追蹤用戶登入時間,超時自動斷開連線強制重新登入。
採用 Servlet 過濾器實現登入後權限管控:

<web-app>
<filter>
<filter-name>IE Filter</filter-name>
<filter-class>com.ibm.devworks.filters.IEFilter</filter-class>
</filter>
</web-app>
將各業務邏輯分解為獨立 EJB 元件:客戶請求經 Servlet 處理後調用對應 EJB,EJB 存取資料庫並返回結果集,經 Servlet 匯總後送至客戶端顯示。
本系統已成功應用於電信計劃建設管理,實際部署中於請求處理層增加 SNMP 協議設備介面執行緒獲取網路設備資訊。相較傳統 CGI 模式,系統效率顯著提升,極適合構建功能複雜的 Web 應用。未來可進一步研究自動創建/撤銷資料庫操作執行緒的條件優化。