Healthcare Service Bus (HSB) 互聯互通醫療應用。本文實戰演示如何使用 Apache ServiceMix(開源 JBI 容器)構建 HSB:部署內部服務、互聯多 JBI 環境、整合 HL7 行業標準。
ServiceMix 基於 Spring 框架,提供預置組件。CXFSE 封裝 Apache CXF Web 服務框架,支援攔截器鏈處理訊息:接收請求 → 格式轉換 → 對象綁定 → 調用業務邏輯 → 回應封裝。配置式開發,無需硬編碼。
@WebService 介面,方法參數用 Holder<String> 交換數據(JAX-WS 標準)。<cxfse:endpoint><cxfse:pojo><bean class="..."/></cxfse:pojo></cxfse:endpoint> 宣告 POJO 端點。performTest 操作。<service-assembly> 包含兩個 <service-unit>:服務提供者(目標組件 servicemix-cxf-se)與服務消費者(目標組件 servicemix-cxf-bc)。RadiologyAssembly.zip 放入 hotdeploy 目錄,ServiceMix 自動偵測部署。使用 examples/cxf-wsdl-first/client.html,目標地址 https://localhost:8092/RadiologyService,發送 SOAP 請求,控制台輸出業務日誌,客戶端收到回應,驗證 HSB 運作正常。
場景:JBI-1(消費者 + 外部提供者代理) ↔ JBI-2(內部提供者)。
<cxfbc:provider>),指定 locationURI 指向 JBI-2 服務地址(如 https://192.168.10.33:8092/...)與 WSDL;消費者配置同單容器版。組裝為 RemoteRadiologyAssembly.zip 部署至 JBI-1。測試流程:Client → JBI-1 BC → NMR → JBI-1 外部提供者 BC → HTTP → JBI-2 BC → NMR → CXFSE → 業務類 → 原路返回。驗證 JBI 標準化訊息路由實現跨容器透明調用。
ServiceMix 內建支援 WSDL/SOAP,但暫無原生 HL7 支援。整合策略:
Component、ComponentContext、ServiceUnitManager、Bootstrap 等,控制安裝、啟動、停止、訊息處理生命週期。參考 ServiceMix 官方文檔與 HAPI 專案可快速落地。
ServiceMix 提供成熟 JBI 運行時與 CXFSE/BC 組件,配合 Spring XML 配置,可快速構建 HSB 核心骨幹:內部服務 POJO 化、跨容器透明路由、行業標準擴展點清晰。掌握「服務單元→服務組裝→熱部署」流程,即可將醫療異構系統納入統一總線治理。