核心衝突
- Applet 沙箱限制:僅能連回下載源伺服器 (代碼庫)
- CORBA 位置透明承諾:物件可部署在任意網路節點
結果:Applet 做 CORBA 客戶端時,所有遠端物件必須部署在代碼庫伺服器上,違背 CORBA 分散式初衷。
安全與連通性解決方案
1. 內網環境放寬沙箱
- 瀏覽器安全策略配置信任站點
- 簽名 Applet (JDK 1.1+
jarsigner) 获取提升權限
- Java 1.2+ 細粒度權限政策文件
2. 防火牆穿透技術
- HTTP Tunneling:將 IIOP 封裝在 HTTP/HTTPS 中,利用標準 80/443 埠穿透
- SOCKS 代理:JVM 支援
-DsocksProxyHost
- ORB 專用防火牆代理:Visibroker GateKeeper、Iona Wonderwall 等
3. ORB 廠商專有方案
- 內建 HTTP Tunneling (如 OrbixWeb, VisiBroker)
- 壓縮/加密/連接池優化
- Applet 專用輕量 ORB (如
ORBacus for Java)
架構建議
- 新專案避免 Applet:Web Start (JNLP)、JavaFX、HTML5/JS + REST 替代
- 既有 Applet 系統:簽名 + 策略文件 + HTTP Tunneling 組合
- CORBA 服務端部署於 DMZ,配合防火牆代理對外暴露
- 考慮將 CORBA 介面以 SOAP/REST 暴露,Applet 改呼叫 Web Service
總結
Applet + CORBA 技術棧雙重約束 (沙箱 + 防火牆) 導致部署極其脆弱。現代化改造路徑:前端遷移至 HTML5/TypeScript,後端以 REST/gRPC 暴露業務能力,CORBA 內部總線保留或逐步淘汰。