簡體   English   中英

使用ESB(WSO2,Mule,花瓣,服務組合)的二進制文件處理

[英]Binary file processing using ESBs (WSO2, Mule, Petals, Service Mix)

我很想在一個新項目中使用ESB(可能是WSO2,Mule,Petals或Service Mix)。

我有許多業務流程/工作流程將在ESB中很好地工作:但是我正在為一種特殊情況而苦苦掙扎。

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

  • 使用外部工具預處理文件;
  • 根據一些配置數據拆分文件;
  • 處理這些較小的文件中的每一個以計算“得分”。 其中一些將由我將編寫的代碼處理,但在某些情況下也會調用外部軟件;
  • 將所有計算出的分數加載到數據庫中。 這必須在流程的最后而不是遞增地完成(因為主鍵只能在文件處理期間找到);
  • 將初始文件移動到存檔區域。

傳入的文件將被刪除到本地目錄中。 所有工具都支持輪詢目錄,因此這不是問題。

但是,從我閱讀的內容來看,大多數工具都希望消息的有效負載易於讀取,因此可以直接對有效負載執行處理。 在我的情況下,我只想使用傳入的文件來生成我的真實有效載荷數據:我將寫入數據庫的值。

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

希望這是有道理的!

非常感謝,

WSO2提供了偵聽文件系統中文件的功能。 但是,根據您的查詢,您似乎需要使用您的專有格式處理二進制文件。 如果是這樣,則可以使用WSO2 ESB vfs transport [1],並且必須實現自定義消息格式化程序和構建器(如[2]所述的簡單Java代碼)

[1] http://wso2.org/project/esb/java/4.0.0/docs/samples/transport_samples.html#Sample254 [2] http://charithwiki.blogspot.com/2010/11/how-to -write-的axis2-消息builder.html

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM