|
|
Log in / Subscribe / Register

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Technocrat looks at gSOAP. "[gSOAP] takes a header defining C or C++ functions, or a URL for someone else's web service definition, and automatically writes both clients and servers in C or C++. The impact of this program on a programmer's task is as great as that of a compiler converting a high-level-language to assembly code."

to post comments

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 11, 2008 21:09 UTC (Fri) by ajross (guest, #4563) [Link] (6 responses)

Indeed. Because what could be better than seamlessly exposing low level constructs designed for single-threaded in-process execution to asynchronous execution by the rest of the internet? What could possibly go wrong?

This sort of tool never fails to amaze me. Why are there so many people out there (smart people, even) who think that the best way to make hard design problems easy is to write a tool that saves the developer some typing bandwidth?

I'm just a curmudgeon, and I'm sure someone will use this and like it. But please: analogizing a wrapper generator (a straightforward conversion in the syntax realm) to a high level language (which makes entirely new metaphors expressible in code) is just dumb.

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 11, 2008 21:37 UTC (Fri) by vmole (guest, #111) [Link]

Why are there so many people out there (smart people, even) who think that the best way to make hard design problems easy is to write a tool that saves the developer some typing bandwidth?

Because such tools are a lot easier to write than solving hard problems?

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 12, 2008 3:42 UTC (Sat) by BrucePerens (guest, #2510) [Link]

Multiple threads are supported and the context is confined to one small object that you can clone as necessary. You get all of the generated code to look over, it's not too big for that to work. You get to code the main server loop, it's just the piece after accept() that is generated.

I get the feeling that you might chide me for trusting a compiler, too. I submit that the "more typing" in hand-coded alternatives will lead to more, not fewer, errors and security issues. The other environments for doing this are interpretive languages or the JVM, which are at least 10 times bigger in terms of executed source lines.

Your point is appreciated - security requires that you look at everything, and understand it too. It just may be mistargeted.

Thanks

Bruce

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 12, 2008 17:57 UTC (Sat) by man_ls (guest, #15091) [Link] (3 responses)

Why are there so many people out there (smart people, even) who think that the best way to make hard design problems easy is to write a tool that saves the developer some typing bandwidth?
Because typing is how errors get into your code. The less code you write, the fewer errors you produce.
But please: analogizing a wrapper generator (a straightforward conversion in the syntax realm) to a high level language (which makes entirely new metaphors expressible in code) is just dumb.
The analogy may be a bit exaggerated, but both tools allow you to stop thinking about low-level problems (in this case how to map a WSDL to code). Therefore you write less code.

Ethereal and Samba4 are good examples of the success of automatic code generation: the code is generated straight from the (hand-crafted) protocol description. This approach reduces the amount of errors and of security holes.

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 12, 2008 20:44 UTC (Sat) by jordanb (guest, #45668) [Link] (1 responses)

> Ethereal [...] are good examples [...] This approach reduces the
> amount of [...] security holes.

Is this a joke?

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 13, 2008 18:31 UTC (Sun) by nix (subscriber, #2304) [Link]

You don't know how many security holes it would have if it *didn't* do 
that. :)

(actually it's now acquired privilege separation, which is good: I can run 
it as a sacrificial user and just ignore dissector problems.)

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 13, 2008 21:26 UTC (Sun) by tpot (guest, #22069) [Link]

Last time I checked, Samba 4 had about 50% ratio of generated to non-generated code.  I think
that's pretty amazing especially when you think of all the stupid little cut&paste bugs that
creep in to hand-maintained code.

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 12, 2008 19:11 UTC (Sat) by muwlgr (guest, #35359) [Link] (17 responses)

What had happened to OMG's CORBA and its IDL ? Mix IDL into XML, replace IIOP with HTTP (and
don't forget that you have to run XML over it!), and you are done.

Some "tuchnologies" just don't wish to die voluntarily ... :>

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 13, 2008 0:22 UTC (Sun) by whitemice (guest, #3748) [Link] (16 responses)

> What had happened to OMG's CORBA and its IDL ?

Still very much alive and well.  In fact I encountered a new application using CORBA/IIOP just
this morning.

>Mix IDL into XML, replace IIOP with HTTP (and
>don't forget that you have to run XML over it!), 
>and you are done

Yep, I realize that you are being ironic,  but this is SOAP.  Which is a great technology.  I
point wsdl at the web service and all the obects I need to interact with the remote service
magically appear.  Then one can go back to writing applications - a developer spending time
diddling around with be they lber, xml, base64, or whatever is a developer wasting their time
(unless they are specifically writing a network protocol, which there is almost no reason to
do).

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 13, 2008 18:32 UTC (Sun) by nix (subscriber, #2304) [Link] (15 responses)

SOAP? Great? RPC atop XML atop HTTP atop TCP atop IP... sorry, but 
`grotesque' is the best description I can think of for that. The APIs are 
pretty vile for the most part as well.

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 13, 2008 21:28 UTC (Sun) by paragw (guest, #45306) [Link] (1 responses)

I found ZeroC ICE (http://zeroc.com) to be much cleaner, faster (http://zeroc.com/performance)
and easier to use than SOAP for developing distributed applications. It is open source and
support is available for lots of languages C++/Java/C#/Python being the some I know of.

The ZeroC site even has a comparison of ICE with SOAP which I found interesting
http://zeroc.com/iceVsSoap.html.

SOAP alternatives

Posted Jan 14, 2008 13:33 UTC (Mon) by man_ls (guest, #15091) [Link]

I find REST also promising, at least for read-only services.

However, the whole point of web services is that everyone use the same engine; having a host of them will hardly be useful. So, I'm afraid we are pretty much stuck with SOAP in the business realm. Let us hope that the remaining WS-* abominations do not prosper.

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 14, 2008 8:13 UTC (Mon) by Los__D (guest, #15263) [Link] (9 responses)

RPC atop XML atop _anything_ thankyouverymuch

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 14, 2008 12:08 UTC (Mon) by muwlgr (guest, #35359) [Link] (8 responses)

This all is web-oriented. I think XMLRPC over anything other than HTTP/TCP/IP(v4?) would very
rarely be useful.

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 14, 2008 12:34 UTC (Mon) by Los__D (guest, #15263) [Link] (7 responses)

I completely agree, but the referencing of the entire chain, when the tech is only really
dependant on XML (ok, and a reliable service) ticked me off a bit.

The use of HTTP is mostly a way of making it available from as many places as possible.

-Which is more or less the whole point to WS-*, services that can be consumed by anyone.

If you need a small-overhead, realtime protocol, by all means use something else, but SOAP is
IMHO currently the best for the problems it is supposed to solve.

Business interchange

Posted Jan 14, 2008 14:06 UTC (Mon) by man_ls (guest, #15091) [Link]

Those that think SOAP stinks should remember that, in the business realm, the alternatives are not cool things like REST or proven frameworks like CORBA, but stuff like EDI.

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 14, 2008 20:33 UTC (Mon) by nix (subscriber, #2304) [Link] (2 responses)

i.e. the HTTP and XML layers are just an end-run around badly-implemented 
corporate firewalls?

Thought so.

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 14, 2008 21:01 UTC (Mon) by Los__D (guest, #15263) [Link] (1 responses)

The XML layer is to simplify validation and extensibility.

The HTTP layer is probably "an end-run around badly-implemented firewalls",  but that's all
part of making services available everywhere, and there's no way around things like that.

- We can't change how things work at a lot of customers' sites, just because we don't like it,
you know?

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 14, 2008 21:29 UTC (Mon) by muwlgr (guest, #35359) [Link]

The world is clearly going to deprecate any non-HTTP TCP transfers :>

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 16, 2008 23:49 UTC (Wed) by whitemice (guest, #3748) [Link] (2 responses)

> The use of HTTP is mostly a way of making it available from as 
> many places as possible.

And most services are hosted by.... drumroll.... web servers!  Because we already have web
servers,  most web servers are sophisticated, reasonably secure, people know how to
manage/configure them, etc...  Why should be go create something else?  HTTP is very simple
GET/POST that pleasantly doesn't care about it's payload.  And talk about low overhead, an
HTTP request is just text.  I think the EeeGads!  response to XML over HTTP over TCP/IP is
just down right silly.  What else would you use that would be cleaner?  The data has to be
encapulated SOMEHOW including data that isn't text (not all data is in the real world) and it
has to be transported across the Internet somehow so why not the most well known protocol of
all?

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 17, 2008 7:57 UTC (Thu) by muwlgr (guest, #35359) [Link] (1 responses)

HTTP was designed with some initial purpose, and trying to use it as a generic vehicle for lot
of other (unrelated) purposes shows its limitations and drawbacks very well. The same said
about XML.

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Feb 4, 2008 2:05 UTC (Mon) by whitemice (guest, #3748) [Link]

> HTTP was designed with some initial purpose, and trying 
> to use it as a generic vehicle for lot of other (unrelated) 
> purposes shows its limitations and drawbacks very well. 

And those would be?  I do lots of RPC and RPC related development and I just don't see the
"obvious" drawbacks of HTTP.  HTTP is a wonderfully simple and almost delightfully stupid
protocol.

> The same said about XML.

No, XML was absolutely NOT "designed with some initial purpose", hence the "X" for
"eXtensible".  XML was designed as a means to express data,  which is exactly what it is used
for in SOAP / XML-RPC.

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 14, 2008 12:56 UTC (Mon) by smitty_one_each (subscriber, #28989) [Link] (2 responses)

Don't be such a naysayer!
Once the performance/scalability problems of marshalling all information as an XML tree in
UTF-8 comes home to roost, we'll just pull back slightly from touting the human legibility of
XML, and just compress the text on the sending end.  
Problem solve^Wshifte^Wturned into business opportunity!

Web Services Without Pain: gSOAP Writes Your XML, SOAP, and RPC. (Technocrat)

Posted Jan 16, 2008 12:32 UTC (Wed) by k8to (guest, #15413) [Link] (1 responses)

The whole idea of XML being human readable is so funny.  Guess what?  Hex dumps are human
readable.  In the sense that many many humans did read them, so it's clearly possible.  Beyond
that sense of the term it's just not so.

It's plain text

Posted Jan 16, 2008 15:57 UTC (Wed) by man_ls (guest, #15091) [Link]

The big advantage is to have information stored as plain text, instead of some random proprietary binary format. Believe it or not, a lot of companies store all of their information in binary formats, and interchange becomes really painful. Plain text, while not really human-readable, allows you to use a host of text tools like grep, diff... on the data.

Having a structured tree that can be validated is a plus. XML is nicely machine-readable.


Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds