I am evaluating JBI, netBeans for my organizantion which will be used to develop the components in ESB layer. We are planning to keep our ESB layer simple enough for Transformation and Routing activities.We did few POC's on XSLT, BPEL, JAX-WS.
We are looking at following parameters:
Appreciate if you can provide any bench mark indicators or suggest, pros and cons of each approach like, XSLT, BPEL and JAX-WS.
1. Can we do complex mappings in JBI-XSLT ?
2. Can we do complex mappings in JBI-BPEL ?
3. XSLT or BPEL, which is faster and where we can easily implement complex transformations.
4. In XSLT, BPEL and JAX-WS, which is the best approach to implement complex transformations?
5. Maintainbility will be at ease in XSLT or BPEL and JAX-WS ?
6. Performance is good with XSLT or BPEL or JAX-WS ?
While I dont have comprehensive answer for all you questions, I can provide some pointers in regards to BPEL. We (BPEL Engine team) did lot of work for improving the scalability. You can read more about it here - http://wiki.open-esb.java.net/Wiki.jsp?page=ScalabilitySupport. Also, some tests were performed to measure the scalabiity using some representative project. You can find the results here at - http://wiki.open-esb.java.net/Wiki.jsp?page=BPSEScalabilityTesting
1. XSLT - does not come with an out-of-the-box graphical editor so complex mappings would be difficult, however, it is possible to use third-party editors or just write the XSL yourself, so probably, not suitable for very complex mappings.
2. BPEL - absolutely, very powerful graphical mapping
3. XSLT will be slightly faster than BPEL if my experience is anything to go by - its a trade-off - with BPEL you get better ease-of-use, better for long running processes, XSLT you get speed but better for very short activities.
4. Again BPEL is the only one with graphical mapping so again I would choose this.
5. All are easily maintained, there is a built in debugger with BPEL which provides similar functionality to a java debugger
6. Performance - in my experience (fastest to slowest) - Java, XSLT, BPEL... however like Malkit said, BPEL has been highly tuned.
You need to try out all these, they each have their place in an ESB project, OpenESB users often do simple repeatable transformations in XSLT, orchestrate them with BPEL, and if they require any Java functionality, call out from XSLT to do this.