BPM系統(EFGP)與異質系統的整合架構與流程

BPM系統(EFGP)與異質系統的整合架構與流程

解析 Java 專案中 EJB 與 DWR 的協作機制,幫助掌握 EAR、WAR 與 JAR 的整合層級與 HCP 系統串接邏輯。


在 BPM 系統中,最常見的就是與其他系統的整合,透過 EFGP 的客製功能,我們來了解兩套系統間的協作機制。

1. 實際整合流程:以 HCP 系統串接為例

我們希望由 EFGP 發起請假單,並透過表單上進行 HCP 的 WEB SERVICE 的檢查,並且透過 SESSIONBEAN 的方式將核准後的資料寫入到 HCP 的請假明細中。完整的流程如下:

Loading Diagram...

流程細節說明:

  1. 前端觸發:使用者在 EFGP 表單執行動作,觸發 JavaScript。
  2. DWR 轉送:透過 DWR 自動產生的 Proxy,將請求轉送至 Ajax 專案的 Java 方法。
  3. JNDI 尋找:Ajax 類別作為 Client,透過 JNDI 名稱在伺服器環境中尋找目標 EJB 實體。
  4. 邏輯委派:將業務請求委派給 EJB 容器中的 Session Bean 處理。
  5. Web Service 呼叫:EJB 控制層使用 SOAP Stub 類別與 HCP 系統進行跨主機通訊。
  6. 結果回傳:資料由外而內封裝回傳,最後經由 DWR 轉換為 JS 物件並觸發 Callback 函式更新介面。

2.核心技術解析

🚀 WildFly (應用程式伺服器)

WildFly (前身為 JBoss) 是承載整個 EFGP 系統運行的 Java EE 容器。它負責管理資料庫連線 (DataSource)、提供 JNDI 服務以便不同專案間互相呼叫,並確保 EJB 的生命週期與交易安全。它是讓 JAR、WAR 能夠共同協作的底層引擎。

📘 Enterprise JavaBeans (EJB)

EJB 是專門為企業級應用設計的後端元件架構。其最核心的優勢在於容器管理事務 (CMT):開發者無需手動撰寫 commitrollback 代碼,伺服器會根據執行結果自動確保資料的一致性與安全性。在 EFGP 的客製整合中,它扮演著穩定執行商業邏輯與異質系統通訊的關鍵角色。

🔑 Session Bean

Session Bean 是 EJB 的一個分類,專門用來處理業務邏輯。它作為「服務提供者」,接收來自 Ajax 層的請求,並透過流程將功能整合,並執行如「檢查 HCP 假別」或「寫入請假明細」等核心任務。

🛰️ Direct Web Remoting (DWR)

DWR 的運作鏈結為:JS 呼叫dwr.xml 轉換Java Class。它解決了傳統前端與 Java 溝通時,需要手動建立多個 Servlet 的繁雜過程。

3. 客製化專案架構

在 EFGP 開發中,功能通常被拆分為三個互相依賴的模組,各自承載不同的職責:

專案類型技術核心最終產出關鍵職責
Ejb (邏輯)EJB 3.x, SOAPJAR核心業務流程、DB 運算、外部服務 (HCP) 串接。
Ajax (網頁)DWR, ServletWAR提供前端 JS 呼叫介面,管理 HTML/JS 資源。
Ear (主專案)MavenEAR管理編譯設定,整合 JAR 與 WAR。

4. 部屬方式

當客製專案的 EJB 與 Ajax 模組皆開發完成並通過初步測試後,最終會由 Ear 專案打包成一份整體的 .ear 檔案。部署過程非常直覺:只需將測試完成的 Ear 檔案放置於系統主機的部署路徑(如 WildFly 的 deployments 資料夾)即可完成更新。隨後,開發者即可透過前端表單發起單據,實測「發起請假 -> WebService 檢查 -> SessionBean 寫入」的完整流程,確保異質系統整合無誤。