in Search
Welcome to Neopoleon - Sign in | Join | Help
Navigation: Home | Forums | Galleries

Take the time to learn the damn web service tools - For the love of GOD

Traffic on BigCo's stretch of the information superhighway came to a grinding halt today as everybody had to stop and let (yet another) hand-crafted SOAP parser/generator/transport solution cross the road.

Unfortunately, the solution seems to have been drunk, and made its way very clumsily from one side of the street to the other. It was mumbling a lot, making the messages it was spouting a little difficult to comprehend, and its listening abilities also seem to have been affected by a little too much of The Drink.

Let me tell you something, people.

Going your own way and bypassing The Tools when working with XML is, in most cases, unforgivable.

When you go to hammer a nail into a board, what do you use? Your hand? Your head? A banana?

No! You use The Tools. You grab a hammer and pound. Hammers were designed to do just this sort of work, and they're exceptionally good at it.

You see, your hand is soft and fleshy. Trying to pound a nail into a board with it will result in:

    - A nail that isn't pounded into a board

    - A trip to the emergency room to have your hand sewn back together

A hammer, on the other hand, would make the job a snap.

So why, God, why are there still developers out there who insist on doing this stuff by hand?

If you can write your own bloody SOAP transport using a low-level sockets interface, then I promise you can learn how to use the tools that will generate your client/server code from WSDL/whatever you happen to have.

It isn't hard. Granted, WSDL is nasty as hell, and some of the web services mucky-muck we have to deal with is so ugly that our messages belong inside "http://schemas.xmlsoap.org/soap/paper-bag" rather than "http://schemas.xmlsoap.org/soap/envelope," but still...

When you avoid the tools and do it all by hand, remember that someone else is going to have to come along later and wipe the ass of the mess that you've left behind.

Published Wednesday, May 12, 2004 10:00 PM by Rory

Filed Under:

Comments

 

Brett said:

AMEN


Oh, wait... That wasn't too loud for you, was it?
May 13, 2004 1:42 AM
 

Rory said:

"Oh, wait... That wasn't too loud for you, was it?"

As long as you don't "sing" it at me for a week straight against a backdrop of 70s trash rock, no - not too loud :)
May 13, 2004 1:49 AM
 

Bret said:

Trust me, christian 70's rock is way better than christian emo ;)

I've been pounding my head against the wall lately working on purposely forming a soap request envelope poorly in order to send it in the required format. It had to be way harder to write that service badly than if they had just used the frickin' tools.
May 13, 2004 1:56 AM
 

Rory said:

"I've been pounding my head against the wall lately working on purposely forming a soap request envelope poorly in order to send it in the required format."

YES! That is *exactly* what I'm talking about.

I'm having to do the same thing, and I'm learning that it's actually pretty tough to get a SOAP request looking as badly as it needs to given the requirements.

"It had to be way harder to write that service badly than if they had just used the frickin' tools."

Again, you've nailed it.

The guys on the other end have basically written their own HTTP implementation and then thrown their own SOAP stack on top of it.

It would have been a bajillion times easier to have just learned the right way to do it.

ARGH!

ARGH, ARGH, ARGH FRIKKITY ARGH!
May 13, 2004 2:35 AM
 

Craig said:

I agree with the sentiment in general, but given the state of the tools right now, I'd say they're more like a wrench than a hammer: still beats a banana for pounding nails, but not exactly optimum.

Which, of course, I'm pulling from the old joke: "Software engineering is simply a matter of finding the right wrench with which to pound in the right screw."
May 13, 2004 12:07 PM
 

Joe Duffy said:

What about those of us writing web services goop using Java? The "tools" suck massive donkey butt. So do the APIs, but hey, I'm not one for complaining! Ahem.
May 13, 2004 2:03 PM
 

Rory said:

Craig -

"Which, of course, I'm pulling from the old joke: 'Software engineering is simply a matter of finding the right wrench with which to pound in the right screw.'"

I'd actually never heard this "old" joke before. I'm feeling left out of the loop.

Either way, it's pretty damn good :)
May 13, 2004 2:13 PM
 

Rory said:

Joe -

"What about those of us writing web services goop using Java? The 'tools' suck massive donkey butt. So do the APIs"

But do they suck so bad that you have to write your own stack from start to finish?

This includes:

- XML "Parser"
- HTTP goop
- SOAP goop

If so, then you have my apologies :) That sounds awful.
May 13, 2004 2:18 PM
 

Rory said:

Joe -

"What about those of us writing web services goop using Java?"

I just thought of something else.

You could look into using Jython. I've found Python + XML to not be at all painful.

Depending on your requirements, maybe Jython is a possibility...
May 13, 2004 2:20 PM
 

Joe Duffy said:

I am exaggerating just a bit. Writing a stack from scratch isn't the norm - Apache and IBM both have decent stable toolkits for the plumbing stuff. So, I guess the more accurate statement would be that the APIs are there, but the tools still have a long way to go.

I guess I'm a sucker for using the term monkey butt in every sentence I possible can. Understandable, no?

[BTW: Thanks for the suggestion w/ Jython. I've tinkered with Python in the past, but never its XML support, and never Jython. I think I'll take a look.]
May 13, 2004 7:41 PM
 

Joe Duffy said:

To quote myself:
"I guess I'm a sucker for using the term monkey butt in every sentence I possible can. Understandable, no?"

Doh! I said donkey butt originally.

I guess I just like a diverse array of animal butts altogether.

Uhh...
May 13, 2004 7:43 PM
 

Rory said:

Joe -

"BTW: Thanks for the suggestion w/ Jython. I've tinkered with Python in the past, but never its XML support, and never Jython. I think I'll take a look."

Python in general (and Jython by extension) just kicks so much more butt than Java when it comes to string manipulation that it'd be tough to go wrong with it.

I'll admit that I haven't messed with Python/XML since last summer, but I'm pretty sure that I remember both DOM and Sax APIs.

Almost certainly worth looking into...
May 13, 2004 8:19 PM
 

Rory said:

Joe -

"I guess I just like a diverse array of animal butts altogether."

Thanks to Google, you'll never live this down.

It's going to be preserved.

For *eternity*.
May 13, 2004 8:20 PM
 

OOOYY said:

http://dmm001.googlepages.com/2772.htm ????
http://dmm001.googlepages.com/2774.htm ???
http://dmm001.googlepages.com/2775.htm ????
http://dmm001.googlepages.com/2776.htm ??????
http://dmm001.googlepages.com/2777.htm ??????
http://dmm001.googlepages.com/2778.htm ??????
http://dmm001.googlepages.com/2779.htm ????
http://dmm001.googlepages.com/2780.htm ????
http://dmm001.googlepages.com/2781.htm ????
http://dmm001.googlepages.com/2782.htm ?????
http://dmm001.googlepages.com/2783.htm ????
http://dmm001.googlepages.com/2784.htm ????
http://dmm001.googlepages.com/2785.htm ????
http://dmm001.googlepages.com/2786.htm ????
http://dmm001.googlepages.com/2787.htm ????
http://dmm001.googlepages.com/2788.htm ????
http://dmm001.googlepages.com/2789.htm ??????
http://dmm001.googlepages.com/2790.htm ??????
http://dmm001.googlepages.com/2791.htm ??????
http://dmm001.googlepages.com/2792.htm ??????
http://dmm001.googlepages.com/2793.htm ??????
http://dmm001.googlepages.com/2794.htm ??????
http://dmm001.googlepages.com/2795.htm ??????
http://dmm001.googlepages.com/2796.htm ??????
http://dmm001.googlepages.com/2797.htm ????
http://dmm001.googlepages.com/2798.htm ???
http://dmm001.googlepages.com/2799.htm ??av??
http://dmm001.googlepages.com/2800.htm ????
http://dmm001.googlepages.com/2801.htm ??????
http://dmm001.googlepages.com/2802.htm ??????
http://dmm001.googlepages.com/2803.htm ????
http://dmm001.googlepages.com/2804.htm ????
http://dmm001.googlepages.com/2805.htm ????
http://dmm001.googlepages.com/2806.htm ????
http://dmm001.googlepages.com/2807.htm ????
http://dmm001.googlepages.com/2808.htm ????
http://dmm001.googlepages.com/2809.htm ????
http://dmm001.googlepages.com/2810.htm ??????
http://dmm001.googlepages.com/2811.htm ??????
http://dmm001.googlepages.com/2812.htm ??????
http://dmm001.googlepages.com/2813.htm ??????
http://dmm001.googlepages.com/2814.htm ?????
http://dmm001.googlepages.com/2815.htm ???????
http://dmm001.googlepages.com/2817.htm ??? ??
http://dmm001.googlepages.com/2818.htm ??a?
http://dmm001.googlepages.com/2819.htm ????
http://dmm001.googlepages.com/2820.htm ?????
http://dmm001.googlepages.com/2821.htm ??????
http://dmm001.googlepages.com/2822.htm ??????
http://dmm001.googlepages.com/2824.htm ??????
http://dmm001.googlepages.com/2825.htm ??????
http://dmm001.googlepages.com/2828.htm ??
http://dmm001.googlepages.com/2732.htm ??????
http://xdmmll.googlepages.com/2407.htm ????
http://xdmmll.googlepages.com/2408.htm ????
http://xdmmll.googlepages.com/2409.htm ????
http://xdmmll.googlepages.com/2379.htm ????
http://xdmmll.googlepages.com/2380.htm ????
http://xdmmll.googlepages.com/2381.htm ????
http://xdmmll.googlepages.com/2382.htm ????
http://xdmmll.googlepages.com/2383.htm ????
http://xdmmll.googlepages.com/2384.htm ????
http://xdmmll.googlepages.com/2385.htm ????
http://xdmmll.googlepages.com/2386.htm ??????
http://xdmmll.googlepages.com/2387.htm ??????
http://xdmmll.googlepages.com/2388.htm ??????
http://xdmmll.googlepages.com/2389.htm ??????
http://xdmmll.googlepages.com/2390.htm ??????
http://xdmmll.googlepages.com/2391.htm ??????
http://xdmmll.googlepages.com/2392.htm ??????
http://xdmmll.googlepages.com/2410.htm ????
http://xdmmll.googlepages.com/2411.htm ???
http://xdmmll.googlepages.com/2412.htm ???
http://xdmmll.googlepages.com/2413.htm ???
http://xdmmll.googlepages.com/2728.htm ??????
http://xdmmll.googlepages.com/2907.htm ????
http://xdmmll.googlepages.com/2908.htm ????
http://xdmmll.googlepages.com/2909.htm ??????
http://xdmmll.googlepages.com/2372.htm ?????
http://xdmmll.googlepages.com/2373.htm ?????
http://xdmmll.googlepages.com/2374.htm ?????
http://xdmmll.googlepages.com/2375.htm ?????
http://xdmmll.googlepages.com/2376.htm ?????
http://xdmmll.googlepages.com/2377.htm ?????
http://xdmmll.googlepages.com/2378.htm ?????
http://xdmmll.googlepages.com/2393.htm ??????
http://xdmmll.googlepages.com/2394.htm ??????
http://xdmmll.googlepages.com/2395.htm ??????
http://xdmmll.googlepages.com/2396.htm ??????
http://xdmmll.googlepages.com/2397.htm ??????
http://xdmmll.googlepages.com/2398.htm ??????
http://xdmmll.googlepages.com/2399.htm ??????
http://xdmmll.googlepages.com/2400.htm ??????
http://xdmmll.googlepages.com/2401.htm ??????
http://xdmmll.googlepages.com/2402.htm ??????
http://xdmmll.googlepages.com/2403.htm ??????
http://xdmmll.googlepages.com/2404.htm ??????
http://xdmmll.googlepages.com/2405.htm ??????
http://xdmmll.googlepages.com/2406.htm ??????
http://xdmmll.googlepages.com/2431.htm ???
http://xdmmll.googlepages.com/2432.htm ?????
http://xdmmll.googlepages.com/2433.htm ?????
http://xdmmll.googlepages.com/2434.htm ??????
http://xdmmll.googlepages.com/2414.htm ??
http://xdmmll.googlepages.com/2415.htm ????
http://xdmmll.googlepages.com/2416.htm ????
http://xdmmll.googlepages.com/2417.htm ??
http://xdmmll.googlepages.com/2418.htm ??
http://xdmmll.googlepages.com/2419.htm ??????
http://xdmmll.googlepages.com/2420.htm ????
http://xdmmll.googlepages.com/2421.htm 18??
http://xdmmll.googlepages.com/2422.htm ??18
http://xdmmll.googlepages.com/2423.htm ????
http://xdmmll.googlepages.com/2424.htm ????
http://xdmmll.googlepages.com/2425.htm ????
http://xdmmll.googlepages.com/2426.htm ????
http://xdmmll.googlepages.com/2427.htm ???????
http://xdmmll.googlepages.com/2428.htm ?????????
http://xdmmll.googlepages.com/2429.htm ?????????
http://xdmmll.googlepages.com/2430.htm ??????
http://xdmmll.googlepages.com/2435.htm ?????????
http://xdmmll.googlepages.com/2436.htm ???????
http://xdmmll.googlepages.com/2437.htm ???????
http://xdmmll.googlepages.com/2438.htm ???????
http://xdmmll.googlepages.com/2439.htm ????????
http://xdmmll.googlepages.com/2440.htm ??????????
http://xdmmll.googlepages.com/2441.htm ????????
http://xdmmll.googlepages.com/2442.htm ???????
http://xdmmll.googlepages.com/2443.htm ??????????
http://xdmmll.googlepages.com/2444.htm ??????
http://xdmmll.googlepages.com/2445.htm ??????????
http://xdmmll.googlepages.com/2446.htm ???????
http://xdmmll.googlepages.com/2447.htm ??????
http://xdmmll.googlepages.com/2448.htm ?????
http://xdmmll.googlepages.com/2449.htm ??????
http://xdmmll.googlepages.com/2450.htm ????
http://xdmmll.googlepages.com/2451.htm ???
http://xdmmll.googlepages.com/2452.htm ??????
http://xdmmll.googlepages.com/2453.htm ????
http://xdmmll.googlepages.com/2454.htm ????
http://xdmmll.googlepages.com/2455.htm ????
http://xdmmll.googlepages.com/2456.htm ????
http://xdmmll.googlepages.com/2457.htm ????
http://xdmmll.googlepages.com/2458.htm ????
http://xdmmll.googlepages.com/2459.htm ????
http://xdmmll.googlepages.com/2460.htm ????
http://xdmmll.googlepages.com/2461.htm ????
http://xdmmll.googlepages.com/2462.htm ????
http://xdmmll.googlepages.com/2463.htm ????
http://xdmmll.googlepages.com/2464.htm ?????
http://xdmmll.googlepages.com/2465.htm ?????
http://xdmmll.googlepages.com/2466.htm ?????
August 14, 2006 2:58 AM
 

TrackBack said:

W3C vagueness and SOAP
May 13, 2004 12:42 PM
 

TrackBack said:

W3C vagueness and SOAP
June 26, 2005 8:11 PM
New Comments to this post are disabled

About Rory

I *own* this site, you loser.