2011-11-17 66 views
1

我很想在新項目上使用ESB(可能是WSO2,Mule,花瓣或服務組合)。使用ESB進行二進制文件處理(WSO2,Mule,花瓣,服務組合)

我有許多業務流程/工作流程,這些業務流程/工作流程可以在ESB中很好地工作:但是我正在爲一種特定情況而苦苦掙扎。

的基本要求是通過多個階段的處理輸入的二進制文件:

  • 預處理使用外部工具的文件;
  • 根據一些配置數據分割文件;
  • 處理每個這些較小的文件來計算「分數」。其中一些將由我將編寫的代碼處理,但在某些情況下也會調用外部軟件;
  • 將所有計算得分加載到數據庫中。這必須在流程結束時完成,而不是逐步完成(因爲主鍵只能在處理文件的過程中找到);
  • 將初始文件移動到歸檔區域。

傳入的文件將被放入本地目錄。所有的工具都支持輪詢目錄,所以這不是問題。

但是,從我讀過的大多數工具中,我們期望消息的有效載荷易於閱讀,從而可以直接在有效載荷上執行處理。在我的情況下,我只想使用傳入文件來生成我的真實有效負載數據:我將寫入數據庫的值。

這是ESB可以支持的模式嗎?有沒有關於使用上述任何工具進行這種數據處理的文章?我應該看看其他技術/模式嗎?

希望這是有道理的!

非常感謝,

回答

1

這應該可以用ESB。特別是對於UltraESB,您可以通過其內置的文件傳輸來完成此操作,該操作支持默認情況下將文件處理後的文件移動到歸檔區域。

UltraESB的拆分和聚合功能可用於將文件拆分爲多個部分並分別進行處理。 「分數」的產生可以用Java或任何其他利用UltraESB API與消息進行交互的腳本語言(在這種情況下是文件的一部分)及其環境來完成。

使用UltraESB及其數據庫連接機制可輕鬆完成數據庫交互。此外,你可以用UltraESB進行這些更新。

如果文件是標準的CSV或EDI格式,那麼您可以使用csv或EDI支持輕鬆處理文件。所有這些通過使用Java或任何腳本語言的非常簡單的配置。

[1] - http://docs.adroitlogic.org/display/esb/Transactional+ESB+use+cases+made+simple+with+the+UltraESB

[2] - http://docs.adroitlogic.org