Monday, October 11, 2004

Web Service intermediaries in Axis

I've spent most of this weekend trying to work out how to best implement Web Service intermediaries in Apache Axis. Turns out this is quite hard.

While Axis is incredibly modularized, allowing you to plug-in functionality at many points, none of these are immediately useful for creating general intermediaries.

I did manage to find a way and got an ugly intermediary working for the GetQuote sample that comes with Axis. After that I began working on a more generalized framework for doing this. I have a basic framework that allows you to very simply implement a class, deploy part of the framework as an implementation of the service you want to act as an intermediary for, add a reference to your class in the WSDD entry for this service and that's it.

Your class then gets access to the request SOAPHeader and SOAPBody and the same on the way back through for the response. You can alter these as they pass.

The hardest part of this has been trying to come up with the requirements for the framework. No one appears to be doing any work with Web Services intermediaries and so I don't really know what people would want from the framework above and beyond.

One annoyance I have is that there does not appear to be an easy way to bounce between Axis' SOAPElement objects and XML DOM objects and back again. I am wondering if intermediary implementer would be okay with SOAPElements or would they rather work with pure XML DOM. I do suspect it would be the latter, as there are far more tools for assisting with that and it is the logical model of a SOAP service. However, I am concerned about the overhead in processing this.

I am a way off of releasing this, I need to add some more functionality, some examples (based on the Axis samples probably) and a really good from scratch example of a complex intermediary. I have a fairly good idea for this last part. Then more testing and some documentation.

If anyone has any ideas of features they would like to see in this let me know and I'll try and get them in, or at least architect around planned extensions.

4 comments:

Matt Large said...

I did look at ActiveSOAP, but I'm not sure if I am thick or something, but I don't see how it hooks up to Axis? This is something I was particularly looking for, as well as making this a really easy to implement solution.

Guess I'll have to look at ActiveSOAP again, but a little more in the way of documentation wouldn't go amiss. Thanks.

Anonymous said...

Matt, Any progress on the SOAP intermediary framework you were developing.

cheers
Rishi

Unknown said...

arizona cardinals
coach outlet store
chicago bears
michael kors outlet online
soccer jerseys,soccer jerseys wholesale,soccer jerseys cheap,soccer jerseys for sale,cheap soccer jersey,usa soccer jersey,football jerseys
ugg boots on sale
cheap oakley sunglasses
true religion sale
kobe 9 elite
nike air max 2014
mont blanc
ed hardy outlet
philadelphia eagles
belstaff jackets
michael kors handbags sale
vans sneakers
michael kors handbags,michael kors outlet,michael kors outlet online,michael kors,kors outlet,michael kors outlet online sale,michael kors handbags clearance,michael kors purses,michaelkors.com,michael kors bags,michael kors shoes,michaelkors,cheap michael kors
nike free
north face outlet
nike air huarache,nike huarache,nike huarache sneakers,nike huarache shoes
pittsburgh steelers
boston celtics
ralph lauren
air jordan 11 free shipping
nike air max 90
swarovski outlet
michael kors online outlet
nike running shoes
baltimore ravens
winter jackets outlet
san antonio spurs
cheap uggs
dddd1110

chenmeinv0 said...

michael kors outlet
adidas yeezy boost 350
true religion jeans
coach outlet store online
michael kors outlet online
nike air max pas cher
toms shoes outlet
nike cortez ultra
louboutin shoes
le coq sportif usa
2017.2.23xukaimin