Fog Creek Software
Discussion Board




Joel writes : "SOAP is inadequate for remoting"

In his Apr 25th article about SOAP, Joel advocates that inventing a new protocol simply to be able to pass through firewalls doesn't make much sense : It will be obsolete as soon as firewall developers adapt their products.

My 2 EUR cents to back him up : An article where Don Box himself (author of SOAP) explains that we need a new HTTP : http://news.zdnet.co.uk/story/0,,t269-s2105076,00.html

BTW, I knew that Box left DevelopMentor a few months ago. I learned only a couple of days ago that he joined MS (as .NET evangelist).
[Well, I must be up around 2.5 cents by now :-)]

Serge Wautier
Thursday, April 25, 2002

I'm actually somewhat confused about what he wrote.  He seems to spend several paragraphs complaining about everyone complaining about SOAP, then he uses the last paragraph to rip it a new one.

Over the last month or so I have really questioned if Joel articles are worth reading anymore.

Anthony Rubin
Thursday, April 25, 2002

I thought the best part of having SOAP is it lets you know where excatly to look.....

SOAP is slow though over HTTP.

I guess it has to mature a bit more, and the hype with all the buzz words need to stop, SOAP wow, Web-Services WOW!!!!

Prakash S
Thursday, April 25, 2002

I for one, am really bothered by the whole SOAP concept, but not for Joel's reasons. The idea of xml-based marshaling is certainly the next stage to go in making RPC more reliable and recoverable. The ability to have a readable call stack wired over the network will definitely make debugging easier. But should we really be performing procedure calls over the internet?

It sounds like a nifty idea, but doing real "business-functions" over the net requires Transactional (ACID) semantics, and that's something that SOAP really wasn't built for (Can you really do a 2-phase commit over HTTP?).

I for one, don't feel there's anything wrong with either Batch loading or Message queueing as a way to inter-operate between enterprises. However, they are decidedly un-sexy in their form, and will probably not find very strong adoption since every developer seems to desire linguistic syntax/semantics over the simpler "parse and process file/message)" paradigm.

When you start introducing temporal complexity (ie. RPC sequences) into cross-business/machine/process communications, there's an increased potential for subtle bugs to sneak into the overall "system". This is worsened by the fact that SOAP-like services are essentially black box components that you have no access to. How is this any different from "that third party library" you were complaining about last week? We'll, this virtual DLL is located across the country and there's little chance in hell you'll be able to track down the subtle bugs without raising a lot of ruckus.

There are certainly unique and interesting services that can be performed with SOAP, and Google is definitely one of them. But for the majority of communications required in businesses (most of it is likely to be accounting/ reconciliation/ reports), if it ain't broke, don't fix it.

BTW, I do have to commend Microsoft for raising the bar of awareness of cross-business/real-enough-time communications to the bill paying (READ: Management) public. I just hope it doesn't mutate into something unwieldy I have to debug in 2038 :-)

-james

James Wann
Thursday, April 25, 2002

<hearsay> SOAP originated when MS found out that big businesses prefer CORBA to DCOM because of the vendor lock-in associated with DCOM; They looked for something that would look "open" enough to decision makers, and would possibly work as a DCOM/CORBA bridge, and eventually SOAP came to be</hearsay>

Regardless of whether this is true, SOAP is, in general, bad news: It's inefficient in every possible respect (think 100:1 network and computation resources compared to a properly designed protocol, 10:1 to a less-than-properly-but-not-as-bad-as-SOAP one), taking XMLs inherent inefficiency to a new level, with almost <result><double>0</double></result> benefit. It's a management nightmare (as Joel hints when talking about Firewalls - but it goes way farther than that).

It has no provision for robustness (two phase commit mentioned earlier in this thread, reliability guarantees, load balancing), and it doesn't actually solve any real problem (except, perhaps, Microsoft's problem of the market reluctance to leave CORBA - which is weird, because almost no one is actually using it).

And to anyone who's going to respond that 100 times in efficiency doesn't matter because computers are fast enough - look at it this way: All of the distributed component architectures are complex as hell, cost lots in overhead, and aren't robust unless the app developer has an extremely good grasp of how they work (which is rarely the case). Distributing work among machines generally results in more opportunity for failure, and fault tolerance often costs 10 times as much to get the same performance.
For example, no matter how many front end ASP/JSP servers you have, unless your database is distributed you still have a single point of failure. The minimal installation of an Oracle Parallel Server, A capable fault-tolerant distributed database, costs more than $200,000 (I got a quote of half a mil last time I asked, but if you press hard enough you can probably get down to $200K or so). A single machine license is about 10 times less.
So, assuming you don't have a fault tolerant database, the best thing you can do (leaving, for the moment, security considerations aside) is to run your web server on the same machine that you run the database on, saving network bandwidth, network latencies, and overall cost, without increasing the point-of-failure beyond that of the database machine.

The reason I don't like SOAP (and similarly inefficient systems) is that they don't let me deploy this kind of model - due to the inherent inefficiency, I'll probably be forced to (eventually) go to a distributed model that's extremely harder to do robustly.

Am I the only one bothered by the fact that Mainframes with computational capacity of a Pentium-200Mhz and having 50MB of physical memory were able to handle real application software for hundreds of users simultaneously with good response times using something equivalent to HTML, and the latest-and-greatest technology can't come close with 5 times more processing power and 10 times more memory? (all in the name of making things "simpler", and without any regard for robustness).

Ori Berger
Thursday, April 25, 2002

Forget what Paul Prescod has to say about soap, that Middle Earth analogy at the end should never have been allowed!

Ged Byrne
Thursday, April 25, 2002

Joel is right, but I think there's an underlying issue.  The reason SOAP implementations (in most cases) are no better than the XML/HTTP/URI implementations is that they're largely one-way, untrusted, call-response setups.  Let's say you're using SOAP to make calls to a service found using UDDI through a firewall not configured to allow for real RPC endpoints.  Chances are this is an untrusted service - or you are an untrusted user.

If you're going to allow events to be fired by a remote service, you better trust that it's not going to exploit that power.  If you trust the remote service that much, and plan to have a rich discussion with it, why aren't you using real RPC?  We know how to use tunnels.  We know how to set up static RPC endpoints.  If we're building a real mission critical app, surely we can bring the network guys in to help.  The problem is not one of technology or protocols - it's a problem of trust and logistics.

As for object references - I'm not sure I understand...in any distributed environment either you marshal the object or you don't.  You can simulate reference behaviour with callbacks or some such but it ends up getting implemented by value anyway.  The remote machine does not have access to your RAM.

Brent Rockwood
Thursday, April 25, 2002

Paul Brendon --------------------------------------------------------

When Google exposes its service through SOAP, it is behind the Web because the object with the web URI is the SOAP component ("endpoint"), not the actual query results. I need to go through the component to get to the data, like making a phone call through an operator instead of dialing direct. But in the XML/HTTP/URI way of thinking, every possible query result has its own URI and thus is a first-class web data object.

--------------------------------------------------------------------------

Paul seems to have it all the wrong way round here, from a commercial point of view at least.

Google don't want people linking into their search results whenever they like, but with http its hard to avoid. 

Taking the direct dial metaphor - most IT Departments discourage direct dial into their it departments.  First line contact is always through the Service Desk, to prevent their programmers being constantly intterupted.  Direct dial isn't always the most attractive option.

Ged Byrne
Thursday, April 25, 2002

SOAP isn't required to use HTTP as its transport. While many of the other objections are valid, you need to separate out complaints about SOAP from complaints about SOAP-over-HTTP.

Mike Gunderloy
Thursday, April 25, 2002

"Am I the only one bothered by the fact that Mainframes with computational capacity of a Pentium-200Mhz and having 50MB of physical memory were able to handle real application software for hundreds of users simultaneously with good response times using something equivalent to HTML, and the latest-and-greatest technology can't come close with 5 times more processing power and 10 times more memory? (all in the name of making things "simpler", and without any regard for robustness)."

I wholeheartedly agree.  It seems like cpu cycles on our machines today go into some black hole.  Newer and shinier doesn't translate to performance. 

        

RYan Ware
Thursday, April 25, 2002

"Am I the only one bothered by the fact that Mainframes with computational capacity of a Pentium-200Mhz and having 50MB of physical memory were able to handle real application software for hundreds of users simultaneously with good response times using something equivalent to HTML, and the latest-and-greatest technology can't come close with 5 times more processing power and 10 times more memory? "

No, you're not. 

I used to work on mainframe sytems in the late 80's/eraly 90's.  We had a large system (we were running a nationwide financial institution) but we supported hundreds of applications and thousands of users simultaneously on a 24x7 basis, without so much as a hiccup.  Can't say the same thing for the situation today.

It seems to me that all of these new ways of doing things are designed to make our lives more complex, not easier.

For transferring of data, is XML REALLY any better than transmitting an EDI-like file?  XML takes magnitudes more disk/network space required to accomplish the same thing.

All of these new ways to do the same thing has me wondering if I really want to continue in the IT world....I've been doing this for 14 years now, and it gets less enjoyable all the time.

Brad Clarke
Thursday, April 25, 2002

I don't know how we totally skipped an RPC interface that made calls in POST/GET with results in something like a query string. Sure this can be done but it's not "standard" and many environments aren't set up real well to do it. SOAP (and even XML-RPC) seems over-kill for most of the stuff I envision. I don't quite understand the comparisons to DCOM/CORBA. I'd compare SOAP more to screen-scraping.

pb
Thursday, April 25, 2002

I think some of the angst over SOAP here is because people are expecting a simple technology to be able to handle everything under the sun.

If SOAP allows VB Joe to write a non scalable app that synchronizes CRM or order data from one database to another, it's succeeded.

I'd go so far as to say that MOST distributed computing can be satisfied by the simple Call/Response format.  Stateful objects, ACID transactions, etc. can be emulated, but making them part of the protocol?  You'd have, gasp, DCOM+/CORBA and VB Joe then couldn't do his job.

Easy stuff should be easy.  Let's keep it that way.

Bill Carlson
Thursday, April 25, 2002

Easy is XML-RPC.  Same concept (XML wrapping of an RPC call over HTTP) but infinitely simpler design.

I love XML-RPC.  I use it to transfer data between a web application and a VB client (which then dumps the data into the clients back-end system).  SOAP is scary by comparison; of course, it's designed for so much more (and the "so much more" is what everyone is complaining about!)

Wayne Venables
Thursday, April 25, 2002

Soap's highest and best use may not be in 'real "business-functions"' if "real" means an event that lands on the books at some point.  I find it's application to collaboration much more interesting and less problematic. That said, Soap is just another tool that works, not the only tool that works.

Dan Sickles
Thursday, April 25, 2002

I would find it amazing how many people really do not understand SOAP if it were not for the fact that the SOAP specification is extremely hard to read, SOAP has changed its stripes significantly over the years and Microsoft's tools so abstract over SOAP that people have no idea what SOAP is and isn't doing. Nevertheless -- if you haven't read through the SOAP specification yourself, and thought through the details, then I think you should. Consider that stark dichotomy between part 1 and part 2. What does that mean for interoperability? Why is there a type system in there if Don Box agrees that most people will not and should not use it? If RPC over HTTP is "just one way" to use SOAP, then where are the specifications for the "other ways"? Are non-HTTP uses interoperable? Will they ever be? Based on what specifications?

Paul Prescod
Thursday, April 25, 2002

Hi Paul,

As I mentioned in a response to your other post, the reason a type system was invented was because XML Schema didn't exist.  There was only DTD which didn't express type only structure.

I have read the 1.1 spec (many many times) and I still get a headache reading it :-).  Too many SHOULDs and not enough MUSTs.

I have also read the 1.2 spec (ok...recommendation) and it is a much easier read.  Plus they have a pretty good primer section so far (much like the XML Schema 0: Primer).

As for SOAP over other transports being interoparable (sp?), I say yes because I've built one.  My routing server is based around the SOAP Envelope, Header, and Body structure using XSD defined payloads.  I've sent messages over HTTP that got turned into SMTP payloads and then eventually made their way back to the original sender.  I did all this without the WS-Routing specification.  Now that it is out, it should help things significantly.  Of course, it is a MS and IBM sponsored spec so maybe you don't put a lot of faith in it till the W3C stamps it.  If so, that is your purogative.  But I've got work to do and those specs (WS-Routing, WS-Security, etc.) are speeding my job up right now.  If (or when) the W3C gets off their a$$ and writes specs (and I need more than just XMLDSIG and XMLENC) that accomplish the same thing, I'll move to them.

SOAP-RPC is getting too much hype as you rightly point out.  But SOAP (envelope, extensible header section, and body) is very useful.  Just strip out the encoding stuff, your life will be more pleasent :-)

Also someone somewhere in this thread mentioned, just use good ol' RPC and open up some ports.  Bring the network guys in and have a go at it.  So what happens if I'm using C++ on Windows and someone else is using Objective C on Mac OS X?  Does the RPC framework take care of that?  Does Objective C even have access to an RPC framework on Mac OS X?  Also, having fired up a packet sniffer and looked at DCOM packets and DCE-RPC packets, I much prefer debugging SOAP on the wire :-)

Justin Rudd

Justin Rudd
Friday, April 26, 2002


An alternative to both SOAP and XML-RPC is MIME-RPC. MIME-RPC is even simpler than XML-RPC and avoids some ambiguity in the XML-RPC spec. MIME is not as "sexy" as XML, but it is time-tested and seems like an interesting approach.

http://www.mime-rpc.com

Banana Fred
Friday, April 26, 2002

Could someone please explain the problem with:

Request --
https://www.paypal.com/cgi-bin/webscr?cmd=sendmoney&username=pb&password=password&email=recipient@hotmail.com&amount=10&subject=Madonna+Tickets

Response --
status=completed&txn_id=1231jhj123

pb
Saturday, April 27, 2002

Er...that it's running as a cgi-bin in 2002?

:)

- m

Matthew Christensen
Saturday, April 27, 2002

Patrick, there's nothing wrong with the URL you posted.

But if you want to pass a complicated structure or array or array of structures, you'll need some way to encode them.

In other words, if your needs are simple, then keep it simple. If Paypal interfaces some useful functionality that way I'm sure people will use it.

Dave Winer
Saturday, April 27, 2002

    GREAT WAY TO MAKE MONEY EASY READ THIS!!!!!! 8:00 AM 6/13/2004 I checked the progress of these guys on the list (IT SHOWS IT WORKS) by doing a google search with one or two of the names. I'm going to try it this time I sit at the pc all day long anyway. 

If you ever thought of it, do it this time. below is the letter I got.  15:00 6/23/04GREAT WAY TO MAKE MONEY-READ THIS!!!!!! 8:00 AM 6/13/2004 HOW TO TURN $6 INTO $6,000!!!!!! READING THIS COULD CHANGE YOUR LIFE! I found this on a bulletin board and decided to try it. A little while back, I was browsing through newsgroups, just like you are now, and came across an article similar to this that said you could make thousands of dollars within weeks with only an initial investment of $6.00! So I thought, Yeah right, this must be a scam,but like most of us, I was curious, so I kept reading. Anyway, it said that you send $1.00 to each of the 6 names and address stated in the article. You then place your own name and address in the bottom of the list at #6, and post the article in at least 200 newsgroups. (There are thousands) No catch, that was it. So after thinking it over, and talking to a few people first, I thought about trying it. I figured: what have I got to lose except 6 stamps and $6.00, right? Then I invested the measly $6.00. Well GUESS WHAT!!... within 7 days, I started getting money in the mail! I was shocked! I figured it would end soon, but the money just kept coming in. In my first week, I made about $25.00. By the end of the second week I had made a total of over $1,000.00! In the third week I had over $10,000.00 and it's still growing. This is now my fourth week and I have made a total of just over $42,000.00 and it's still coming in rapidly. It's certainly worth $6.00, and 6 stamps, I have spent more than that on the lottery!! Let me tell you how this works and most importantly, why it works....Also, make sure you print a copy of this article NOW, so you can get the information off of it as you need it. I promise you that if you follow the directions exactly, that you will start making more money than you thought possible by doing something so easy! Suggestion: Read this entire message carefully! (print it out or download it.) Follow the simple directions and watch the money come in! It's easy. It's legal. And, your investment is only $6.00 (Plus postage) IMPORTANT: This is not a rip-off; it is not indecent; it is not illegal; and it is virtually no risk - it really works!!!! If all of the following instructions are adhered to, you will receive extraordinary dividends. PLEASE NOTE: Please follow these directions EXACTLY, and $50,000 or more can be yours in 20 to 60 days. This program remains successful because of the honesty and integrity of the participants. Please continue its success by carefully adhering to the instructions. You will now become part of the Mail Order business. In this business your product is not solid and tangible, it's a service. You are in the business of developing Mailing Lists. Many large corporations are happy to pay big bucks for quality lists. However, the money made from the mailing lists is secondary to the income which is made from people like you and me asking to be included in that list. Here are the 4 easy steps to success: STEP 1: Get 6 separate pieces of paper and write the following on each piece of paper;PLEASE PUT ME ON YOUR MAILING LIST. Now get 6 US $1.00 bills and place ONE inside EACH of the 6 pieces of paper so the bill will not be seen through the envelope (to prevent thievery). Next, place one paper in each of the 6 envelopes and seal them. You should now have 6 sealed envelopes, each with a piece of paper stating the above phrase, your name and address, and a $1.00 bill. What you are doing is creating a service. THIS IS ABSOLUTELY LEGAL! You are requesting a legitimate service and you are paying for it! Like most of us I was a little skeptical and a little worried about the legal aspects of it all. So I checked it out with the U.S. Post Office (1-800-725-2161) and they confirmed that it is indeed legal! Mail the 6 envelopes to the following addresses:

#1) R. Overton P.O. Box 18818  So. Lake Tahoe, CA 96151 #2) KEVIN LEE 8377 APT. I MONTGOMERY RUN RD. ELLICOTT CITY MD 21043 #3) Stephanie Hicks 1283 Evening Canyon Henderson NV 89014 #4) Matt Madracki P.O. Box 1529 Sutton West, Ontario L0E 1R0 #5)Justin Kittleson 650 Shoreline Dr. #208 Howard Lake,MN 55349 #6)Tony Huger P.O. box 5245 tallahassee fl 32314

STEP 2: Now take the #1 name off the list that you see above, move the other names up (6 becomes 5, 5 becomes 4, etc...) and add YOUR Name as number 6 on the list. STEP 3: Change anything you need to, but try to keep this article as close to original as possible. Now, post your amended article to at least 200 newsgroups. (I think there are close to 24,000 groups) All you need is 200, but remember, the more you post, the more money you make! This is perfectly legal! If you have any doubts, refer to Title 18 Sec. 1302 & 1341 of the Postal lottery laws. Keep a copy of these steps for yourself and, whenever you need money, you can use it again, and again. PLEASE REMEMBER that this program remains successful because of the honesty and integrity of the participants and by their carefully adhering to the directions. Look at it this way. If you are of integrity, the program will continue and the money that so many others have received will come your way. NOTE: You may want to retain every name and address sent to you, either on a computer or hard copy and keep the notes people send you. This VERIFIES that you are truly providing a service. (Also, it might be a good idea to wrap the $1 bill in dark paper to reduce the risk of mail theft.) So, as each post is downloaded and the directions carefully followed, six members will be reimbursed for their participation as a List Developer with one dollar each. Your name will move up the list geometrically so that when your name reaches the #1 position you will be receiving thousands of dollars in CASH!!! What an opportunity for only $6.00 ($1.00 for each of the first six people listed above) Send it now, add your own name to the list and you're in business! ---DIRECTIONS ----- FOR HOW TO POST TO NEWSGROUPS------------ Step 1) You do not need to re-type this entire letter to do your own posting. Simply put your cursor at the beginning of this letter and drag your cursor to the bottom of this document, and select 'copy' from the edit menu. This will copy the entire letter into the computer's memory. Step 2) Open a blank 'notepad' file and place your cursor at the top of the blank page. From the 'edit' menu select 'paste'. This will paste a copy of the letter into notepad so that you can add your name to the list. Step 3) Save your new notepad file as a .txt file. If you want to do your postings in different settings, you'll always have this file to go back to. Step 4) Use Netscape or Internet explorer and try searching for various newsgroups (on-line forums, message boards, chat sites, discussions.) Step 5) Visit these message boards and post this article as a new message by highlighting the text of this letter and selecting paste from the edit menu. Fill in the Subject, this will be the header that everyone sees as they scroll through the list of postings in a particular group, click the post message button. You're done with your first one! Congratulations...THAT'S IT! All you have to do is jump to different newsgroups and post away, after you get the hang of it, it will take about 30 seconds for each newsgroup! **REMEMBER, THE MORE NEWSGROUPS YOU POST IN, THE MORE MONEY YOU WILL MAKE!! BUT YOU HAVE TO POST A MINIMUM OF 200** That's it! You will begin receiving money from around the world within days! You may eventually want to rent a P.O.Box due to the large amount of mail you will receive. If you wish to stay anonymous, you can invent a name to use, as long as the postman will deliver it. **JUST MAKE SURE ALL THE ADDRESSES ARE CORRECT.** Now the WHY part: Out of 200 postings, say I receive only 5 replies (a very low example). So then I made $5.00 with my name at #6 on the letter. Now, each of the 5 persons who just sent me $1.00 make the MINIMUM 200 postings, each with my name at #5 and only 5 persons respond to each of the original 5, that is another $25.00 for me, now those 25 each make 200 MINIMUM posts with my name at #4 and only 5 replies each, I will bring in an additional $125.00! Now, those 125 persons turn around and post the MINIMUM 200 with my name at #3 and only receive 5 replies each, I will make an additional $626.00! OK, now here is the fun part, each of those 625 persons post a MINIMUM 200 letters with my name at #2 and they each only receive 5 replies, that just made me $3,125.00!!! Those 3,125 persons will all deliver this message to 200 newsgroups with my name at #1 and if still 5 persons per 200 newsgroups react I will receive $15,625,00! With an original investment of only $6.00! AMAZING! When your name is no longer on the list, you just take the latest posting in the newsgroups, and send out another $6.00 to names on the list, putting your name at number 6 again. And start posting again. The thing to remember is: do you realize that thousands of people all over the world are joining the internet and reading these articles everyday?, JUST LIKE YOU are now!! So, can you afford $6.00 and see if it really works?? I think so... People have said, "e;what if the plan is played out and no one sends you the money? So what! What are the chances of that happening when there are tons of new honest users and new honest people who are joining the internet and newsgroups everyday and are willing to give it a try? Estimates are at 20,000 to 50,000 new users, every day, with thousands of those joining the actual internet. Remember: play FAIRLY and HONESTLY and this will really work. you can check progress on these just google search any of the names and see different stages of proggress I'm tempted to look up one of them and ask them by phone.
    

denise
Friday, June 25, 2004

*  Recent Topics

*  Fog Creek Home