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.


James Strachan said...

Incidentally this is why we started the ActiveSOAP project...

Which allows you to process any headers/body using whatever XML framework you wish; XMLBeans, JAXB, XStream, DOM etc.

Also SOAP intermediaries often just wanna look at a header or two and then forward the rest of the body elsewhere; so parsing into a DOM is often unnecessary overhead - so doing this kinda thing in pure StAX is often much better for a high performance intermediary

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.


mao qiuyun said...

juicy couture outlet
soccer jerseys
ralph lauren outlet
hermes bags,
christian louboutin outlet
louis vuitton bags,
louis vuitton handbags
cheap nfl jerseys,
fitflop shoes
ugg boots,
oakley sunglasses wholesale,
michael kors uk
michael kors outlet
the north face clearance
manchester united jersey
iphone 6 cases
michael kors uk
rolex watches
coach outlet store,
giuseppe zanotti outlet
converse all star
air max 2015
mcm handbags
michael kors factory outlet,
michael kors factory outlet,
cheap soccer jerseys
true religion jeans,
tory burch shoes
hermes birkin
coach outlet
tory burch outlet online
oakley sunglasses

风骚达哥 said...

20150930 junda
Abercrombie & Fitch Factory Outlet
Abercrombie T-Shirts
canada goose outlet online
coach factory outlet online
Wholesale Authentic Designer Handbags
Oakley Vault Outlet Store Online
Louis Vuitton Handbags Discount Off
nike trainers
michael kors outlet
coach factory outlet
cheap toms shoes
Michael Kors Outlet Online Mall
Coach Factory Outlet Online Sale
michael kors uk
Abercrombie And Fitch Kids Online
louis vuitton
true religion jeans
cheap jordan shoes
Louis Vuitton Handbags Official Site
Mont Blanc Legend And Mountain Pen Discount
cheap uggs
tory burch outlet
ugg boots
coach outlet
Michael Kors Handbags Huge Off
Hollister uk
michael kors handbags
louis vuitton outlet
uggs australia
Discount Ray Ban Polarized Sunglasses

Wenhao Guo 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,,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

Jian Zhuo said...

the north face outlet
louis vuitton handbags
ralph lauren outlet
armani exchange
red bottoms
christian louboutin sale
michael kors canada
coach outlet
christian louboutin outlet

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

chenmeinv0 said...

mbt shoes
kate spade outlet
adidas originals tubular
vans outlet
ray ban sunglasses
ferragamo shoes
nike magista obra
ugg boots clearance
jordan shoes
michael kors outlet online