SOAP is a Four Letter Word
March 6, 2008 by Isaac
If you are a SOAP fan then you may want to stop reading now. Seriously, I am not interested in a philosophical debate on the "merits" of SOAP. Personally, I think SOAP is a horrible way for distributed resources to communicate. The idea of SOAP being XML and hence partially readable is OK, but for the purposes of efficiency and CPU overhead there are much better ways to do things.
Of course with an introduction like that I do have my personal favorite. My middleware of choice is ZeroC's Ice. What I like about Ice is that it was not created by a large committee like CORBA was. It was a small group and was designed for simplicity and efficiency, which it accomplishes. If you are thinking of doing a project with a distributed architecture then seriously look at Ice. Once you shed the chains of SOAP and embrace Ice you will wonder why you put yourself through such misery for so long. Now, if I could just get Amazon to switch from SOAP to Ice for their remote API.... Oh, and before anyone asks, yes, I have done my fair share of SOAP programming and I dread it each time.
I've also used CORBA and it is OK. I prefer it to SOAP, but find it too clunky. Programming for CORBA in C++ is a nightmare and is best avoided by sane people. CORBA in Python is much better and actually tolerable. I can't speak for other languages. Ice is just much easier to use and Ice in C++ is not a masochistic exercise.
What I would love to see for Ice is something similar to XMethods. XMethods is a large directory of publicly accessible web services. Some of these require payment and some are free. The large service offering of various data feeds is great and I'd love to see more software take advantage of it. One could envision a future where there are so many distributed public services that software could be assembled to do anything you want by just picking and choosing different services.
I lack the dedicated server to start this project, but I would accept a donation if someone wants to start me off. :) What I would love to see is a XMethods type of site for Ice services. Of course for a directory to work there needs to be content to list, so please get started. Go create some Ice service and then put it publicly in the internet. Please leave a comment here with the endpoint and the .ice definitions of the service and I'll give it a try and maybe even a writeup about it.
Here are just some random ideas for Ice services that I'd like to see:
- Stock information
- Phone book (white and yellow pages)
- Zip code information
- Ham radio callsign database
- Remote interface to CoolText
- POV renderer (submit a pov file and get back a rendered image)
- Text to Morse service -- send a text string and get back a wav or MP3 (I've actually written this in Python. I just need someone to donate a server and I'll put it online)
- FCC database
- US Census data
- Directory of radio stations
- Ice API for Google
- Real estate listings
- Weather forecasts
- Lat/Lon calculations
- Ice to text message gateway
- etc....
Posted in 
content rss
