I have an unusual design goal that I would like to solve using OpenESB. We have a number of files that will be generated by our system to be transferred to another system. Depending on the data type, the source system and the destination system, a series of transforms will need to take place before the data can be uploaded to the destination system. Any advice on the best approach to this?
General requirements:
- The number and types of transforms are many and could change over time.
- The number and types of data to process will be fairly fixed over time.
- The number of source and destination systems could change radically over time.
- Each of these transforms could be ganged together for the cases where the type, source and destination are similar.
- Based on business rules from each customer, a new transform may need to be substituted or inserted in to the sequence,开发者_如何学编程 which would require a new and separate sequence.
- Solution needs to be as flexible and scalable as possible.
- Many future requirements based on type, source and destination could come in to play for which we have not yet considered. This flexibility is a requirement of the system.
In our way of thinking, it seems like a set of nested BPEL might be the best solution, each calling a POJO class to achieve the desired transform. Is this feasible? Is there a better way?
Try XSLT trasformation in OpenESB.
When it comes to complex business logic it's best to delegate as much work as possible to Java code instead of doing complex stuff in BPELs which are really turn into a mess quickly as they grow. I would just make an EJB and call it from BPEL.
I did one better. I wrote my own data flow processing system from scratch. Everything else available was just too heavyweight and complex.
My new system, code named LightRail, works great. All connectivity is component driven and defined through a single JSON configuration file. All processing and flow control is handled through a single BeanShell script.
I've already deployed 10 different data flows in the last 10 months, connecting to IMAP, SFTP, FTP, Files and a database or two. Life is good again...
Andrew
精彩评论