- Developing with XFire
- Diephouse's preferred WS specifications
- XFire's extension endpoints for future expansion
- When to use SOAP over REST or XML-RPC
- His impressions of the ESB ServiceMix
- Using BPEL What are your thoughts on XFire?
Out of Dan Diephouse's frustration with a "really slow" Axis came XFire: a Web services stack for Java that implements standards such as SOAP, WSDL and other Web services specifications, making it easier to integrate with other platforms via SOAP. In this tech talk, given at TheServerSide Java Symposium in March, Diephouse talks about the history behind and various features included in XFire. He also addresses how the current emphasis on SOA is affecting the Web services world. Additional topics include:
- Posted by: Regina Lynch
- Posted on: September 05 2006 11:35 EDT
- its a bit dated by Garry Kelly on September 05 2006 12:58 EDT
- Re: its a bit dated by Tatu Saloranta on September 05 2006 17:20 EDT
- Re: its a bit dated by Mileta Cekovic on September 06 2006 05:00 EDT
- XFire by Spencer Uresk on September 05 2006 18:15 EDT
- CeltiXfire by John Davies on September 05 2006 18:25 EDT
Java WS/SOAP stacks are like buses, you wait for ages for one and 3 show up together. In May 2006, these 3 were released, note the link to to a talk given in March so its well out of date... Apache Axis 2 JAX-WS 2.0 XFire 1.0 The talk is out of date, indeed most of the stuff on google searches for java web services is out of date... All 3 above are much better than Axis 1, thanks guys. If your committed to NOT using Java 5, then xfire or axis 2 are both great improvements on what went before. Of the 3, my preference in Sun's JAX-WS RI. It is a full featured WS stack, got all the performance and advantages of the other 2 and hopefully will become an integral part of the Java platform. While its a bit intimidating to start with it worked well for anything I tried. (WS-Security, signing/encryption/certs etc) If WS is to gain acceptance the stack and interfaces need to standardize. We dont spend too much effort in selecting a file i/o technology, the HTTP/Servlet specification sorted out the mystery of the HTTP protocol. Think the debate should move from REST/XMLRPC/doc lit/SOAP/SOAP stacks blah blah blah and on to making it easier to code and deploy secure reliable SOA services using Java... This stuff is supposed to make our lives easier?
In May 2006, these 3 were released, note the link to to a talk given in March so its well out of date... Actually, although XFire 1.0 was released in february of this year, it has existed and been useful for well over a year. All the 3 alternatives were well known in march, by the time of the talk. The fact there are multiple choices is actually anything but surprising: when there was a problem to be solved, many people jumped in to solve it. And I personally think it is great, even essential, to have more than just one effort. There is much less risk of the "chosen one" going wrong; competition improves quality. Concerns over fragmentation are greatly exaggerated: let's just let marketplace decide which one is the best, and let it get most contributors. As to preferences regarding implementation: I agree that all 3 are superior to Axis 1.x. That is a good thing. As to which one to choose: generally Sun's track record has not been stellar with the reference implementations (not horrible like Oracle's, just uneven -- usually it has been someone else who has delivered the best impl), so I am bit suspicious of JAX-WS 2.0. However, JAXB 2.0 is very good and rock solid, so perhaps WS 2 is actually good since it is related to JAXB. We'll see.
Java WS/SOAP stacks are like buses, you wait for ages for one and 3 show up together.Has anyone compared these three SOAP stacks for performance? What happened Glue (formely from The Mind Electrics)? Is it still owned by Systinet? Has it changed name? Has the development of Glue continued after aquisitions? Glue was pretty fast at the time.
What happened Glue (formely from The Mind Electrics)?Mind Electrics was bought by WebMethods and Glue was integrated into their core product from what I remember. I understand it all went a bit pear-shaped, that's just what I heard though I don't know first hand. Graham Glass the founder of Mind Electics and Glue and later CTO of WebMethods has recently started EDU 2.0. -John- CTO, C24
Has anyone compared these three SOAP stacks for performance? What happened Glue (formely from The Mind Electrics)?There is a performance comparison on the xfire site... yeah, Glue was ahead of its time... On comparisions, most stacks claim they are 5 times faster than Axis, meaning Axis 1 but everything is much faster than Axis 1 :) ... Most of the newer SOAP stacks use Stax for XML processing which gives the performance boost. I havent tried Axis 2, just looked at the docs, It does seem comparable to XFire, of the 2, I preferred the approach in XFire, but thats just an opinion... I did measure Axis 1.4 vs JAX-WS 2.0, it was over 5 times quicker than Axis 1 for my scenarios which were exchanging complex data types (objects within objects ...) ... Spring integration is not out of the box, but it rarely takes much effort to use Spring. Note JAX-WS is Java 5 which limits your deployment options currently. I think performance will be most affected by design decisions such as do you use data binding, or do you need to implement WS-Security rather than the choice of SOAP stack. Thats my gut feeling but if theres any other reports out there, please reply....
We used XFire 1.1 for our previous project and had only minor problems with inheritance support. We tried JAX-WS 2.0 too, but it was unable to handle large attachments.
Note JAX-WS is Java 5 which limits your deployment options currently.I successfully used Retrotranslator (it's my own project) for running both XFire 1.1 and JAX-WS 2.0 on JRE 1.4.2. But since XFire makes use of generics for WSDL generation only on JRE 5.0 I had to specify -Djava.class.version=49.0 for runtime. Cheers, Taras
I first looked at the JAX-WS RI, but ended up using XFire largely due to its excellent integration with Spring. Unfortunately, the Spring intergation documentation is a little clumsy. After a day or so of experimenting with XFire, reading the mailing list, and digging through the code, I had a pretty slick and simple setup. Using Spring, XFire and JSR-181 annotations makes it really easy to expose and consume web services. I have to say, the XFire mailing list is usually very helpful, and Dan does a good job of being very responsive.
The next release of Axis2 (1.1) also has excellent Spring integration. Also checkout how WSO2 Tungsten, which build on Apache Axis2, allows you to easily expose any existing Spring beans as Web services.Check http://tools.wso2.net/tryit/tungsten/1.1/
So Dan, any comments on what you're up to with IONA and CeltiXfire? Obviously the talk was done a long time before you got into Celtix but it would be good to get an update from you about what's new in Xfire and CeltiXFire. Cheers, -John- CTO, C24