繁体   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