Simon Fell > Its just code
Mark Baker emailed me to point out what the issue with RPC part of SOAP and REST is [thanks Mark]. So are people using SOAP in the messaging style ?, I don't know of a single toolkit that defaults to messaging style SOAP [I discount ASP.NET in this case, as although it defaults to doc/literal SOAP, the messages it defines have RPC semantics]
Sunday, April 28, 2002
PocketSOAP 1.3 ships !
Wooo Hooo !. Just released v1.3.0 of PocketSOAP, this extends PocketSOAP to support Soap with Attachments and DIME attachments, along with improved support for document/literal style services. Also available is a beta of the new WSDL proxy generator, which will generate you a complete VB6 proxy project from WSDL (plus Schema) including classes for complex types and custom serializers.
Keith throws out a complete red herring. I don't see how the RPC spec or the encoding spec are unRESTfull, the only unRESTfull thing in the SOAP spec, is the always POST HTTP binding.
Joel is talking about SOAP ... "It doesn't have events (which makes it useless for large classes of applications). It doesn't support references (ditto)" Huh ?, SOAP is about messages, what sematics you want to assign to those messages is upto you. You can certaintly do events with SOAP [Although you may want to not use the HTTP transport in this case]. And what's so special about object references ?, that just one of many different ways to handle server side state.
Thursday, April 25, 2002
A number of people have asked why I don't like IComparer.Compare. What I don't like is that I have to implement tests for <, = and >. STL uses Strict Weak Ordering which only requires a < operator (or a binary predicate equivilent). This has nothing to do with STL's use of templates, and in fact the implementation of IComparer.Compare I wrote only needs a < operator for the type it delegates to.
public int Compare ( object a, object b )
DateTime l = ((sample)a).date ;
DateTime r = ((sample)b).date ;
if ( l < r )
if ( r < l )
return 0 ;
Tuesday, April 23, 2002
I'm now scraping Tomas Restrepo's weblog to generate an RSS feed using RssDistiller. Radio users can click here to subscribe. [Peter Drayton's Radio Weblog]
Hmm, no luck so far "Can't subscribe to the channel. The most likely cure is to check the URL in a web browser and see if you can get it to read the feed. The following message probably won't help you figure out what went wrong, but we include it here because it might. "Poorly formed XML text, string constant is improperly formatted. (At character #66.)"
Sunday, April 21, 2002
It's The Runtime Stupid [Sam Gentile's Radio Weblog] This is of course, just a specialization of the meta argument "Understand your platform". This is same argument Tim made at the WS DevCon, if you want to do SOAP, you need to understand XML and Schemas. You can't use MFC without understanding what its doing for you, etc. It seems to me though that the industry has got to get to the point where this isn't the case, and I can't see that happening with the current mainstream software development paradigms.
Re: No consensus on draft findings on Unsafe Methods (whenToUseGet-7) That sounds an awful lot like the GET HTTP binding from the WSDL spec.
YAST (Yet another SOAP Thread) over on xml-dev
Saturday, April 20, 2002
Simon Fell would rather see a general binary infoset serialization format, that didn't rely on schema's being known a priori. Why? WSDL provides meta data that is not known a priori and it seems to be working OK. The key, IMO, is to allow the meta data to evolve on one end of the wire without requiring it to evolve on the other end of the wire at exactly the same instant. [deem] That's one of the keys. In addition, you'll have to cope with some of the open ended schema constructs anyway (like any & anyAttribute), and tying it to schema just feeling like you're cross connecting to many layers.
What do you think about a binary XML serialization format? How much of the ubiquity of XML do we owe to text and angle brackets? Does the future success of web services depend on them or on getting rid of them?
Has anyone else run across this (also this)? [deem] There's a number of cases where this is useful, given that most people using SOAP don't give a monkey's about the resulting XML, the bits going over the wire could easily be XML with angle brackets, a binary Infoset serialization or whatever. Now having said that, from a development / debugging perspective, having it in plain text makes life much easier. I've been trying to debug some issues with a SSL only service, and its driving me nuts trying to workout what's going on, without being able to see the actual "bits on the wire". Working on the DIME support for PocketSOAP prompted me to add a hex viewer mode to YATT. The articles Mike point to describe what appears to be a schema specific binary encoding, this is an interesting idea, but personally, I'd rather see a general binary infoset serialization format, that didn't rely on schema's being known a priori.
Reactions to the Google API. Paul Prescod has been "working like a fiend" on a plain HTTP alternative to Google's API. He's put up a summary page on the various efforts, including a petition to Google. [More Like This WebLog]
DiveIntoMark has a nearly apples to apples comparison (modulo a gratuitous reordering and omission of parameters) between SOAP and XML-RPC, but omits any line by line comparison. Still waiting for the light bulb to go off. [Sam Ruby] Call me biased, but the XML-RPC version doesn't look any less complex than the SOAP version, if anything, the SOAP version looks less complex.
... but the Cape Clear experiment he disses is interesting, even if it irritates him. (What about all the email addresses they're accumulating, that worries me.) [Scripting News] That's pretty ironic since MTTF is busy accumulating email adrresses, and worse, the GoogleGatweway is busy accumulating Google keys. (Not that I think Dave or the CapeClear guys have any bad intentions)
Thursday, April 18, 2002
The .NET Compact Framework beta 1 is about to become available. This will finally bring C# and the rest of the .NET goodies to the Pocket PC crowd. If you are interested in signing up for the beta, check out the Microsoft GotDotNet website for more information. [Sam Gentile's Radio Weblog] Done !
Ingo (along with Peter Drayton & myself) have launched a .NET Remoting open source project http://www.dotnetremoting.cc/projects This includes the Jabber Transport that Peter & I demo'd at the WS DevCon.
Wednesday, April 17, 2002
Amazon goes REST, Google goes SOAP. While the W3C's Technical Architecture Group (TAG) argues about the safety of various flavors of HTTP programming, two icons of the Web have gone different directions: Google toward SOAP, and Amazon (whether they know it or not) toward REST. [xmlhack] If the Amazon API was REST, wouldn't most of the query parameters actually be part of the path ?
Tuesday, April 16, 2002
Other than the fact someone doesn't know their media types, the PocketSOAP DIME code works fine with the ASP.NET DIME sample. DIME Interop : 3 for 3 :-)
PEAR SOAP is a recent addition to SOAPBuilders, but already its turning in some impressive interop results. :-)
Looks like there might be a bug in the Radio RSS generator. Look down to the DIME post. Now do view source and look at the URL for the link to the thread, notice that the ampersands are correctly encoded. Now, try and load the RSS feed, the ampersands here are unencoded, causing XML parser errors.
0xDECAFBAD: Sounds like I need to write a personal HTTP proxy that includes "404 Correction" by consulting Google's cache whenever one encounters a 404. Could be a new project, too, since someone I was talking to wanted searchable personal web browsing history and I think a personal HTTP proxy could help with that. Cool idea! [Sam Ruby]
Great idea to hook it up to the Google cache. Peter's been talking about something like this, that allows you to search recently viewed content etc. There was a discussion about this not too long ago on HTP.
Hey, Mike, is MSTK 3.0 going to support xsd:hexBinary ?
Spent some time looking at the SAML spec yesterday, pretty interesting stuff, it sort of feels like a SOAP version of Kerberos, its (practically speaking) dependent on XML Signature, which is dependent on canonical XML, so next stop is to look at the canonical XML spec again.
Is it just me, or is Sam having some problems.
Dave is up after midnight pointing at work Simon Fell is doing with SOAP, the Blogger API, the Google API and Microsoft Word. My heart sinks a bit knowing that the stuff he's done will only work on Windows. (Please correct me if I'm wrong on that. ;-) [Jakes Brainpan] Well, this specific case is Windows only, but there’s no reason for it to be, I thought XML-RPC & SOAP support was baked into Mac’s these days, and I guess the Mac version of Office is similarly scriptable. I’m sure some enterprising Mac developer could put it together without too much trouble.
Just posted a revised version of the Word Blogging Macros. This includes a fix for the transport problem below, adds some comments, and I also added some code that will copy over bold and italic formatting.
Friday, April 12, 2002
Thanks to Stephen J. Ogden, Vincent Flanders & Matt Conway, they all pointed out a bug in the Word blogging code, I'd gone to the trouble to extract the HTTP proxy settings out to the top of script, where they'd be easly spottable / changable, then completely forgot to change the code that configures the proxy connection, doh !. The correct version of the getTransport function should look like
Private Function getTransport() As Object
Set t = CreateObject("pocketSOAP.HTTPTransport")
If Len(PROXY_SERVER) > 0 Then
t.SetProxy PROXY_SERVER, PROXY_PORT
Set getTransport = t
I'll update the code drop later tonight.
Inspired by Rael, the Related: logs on the right are now generated by Google. Note: I initially tried the google.macros.box, but what I got was pretty much "Sam Ruby, Sam Ruby, Sam Ruby, ..." Booring. [Sam Ruby] Slick, looks like a good idea.
I guess this might be a good time to mention this, I'm looking for a job. If you're looking for a switched on Web Services guy in the Bay Area, let me know.
This post was typed & edited in Word, and posted to my Radio blog, via some PocketSOAP code. Almost a year to the day, since I did the same for Manila !
Whilst everyone's on the subject of Google, if you're a Visual Studio 6 user, then you might want to check out my vsGoogle utility.
Here's a PocketSOAP sample for calling the Google API
Just started looking at the Google API, looks pretty straightforward. There's a bug in the WSDL though, its missing an <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> from the schema section.
Wednesday, April 10, 2002
Hey James relax, I'll try and remember to put smileys on my posts next time :)
Microsoft, I.B.M. and VeriSign to Cooperate on Web Security. Microsoft, I.B.M. and VeriSign plan to announce a new technical approach that they hope will ensure greater security and thus stimulate commercial development of Web services. By Steve Lohr. [New York Times: Technology] Sounds like there's going to be a new version of WS-Security coming down the pipe.
Microsoft Has Shelved Its Internet 'Persona' Service. Microsoft has quietly shelved a consumer information service that was once planned as the centerpiece of the company's foray into the market for tightly linked Web services. By John Markoff. [New York Times: Technology] Not a big shock. I wonder what'll happen to Passport and .NET Alerts ?
Evolving Interfaces : This takes the COM versioning model and applies to Web Services. As an old school COM guy, this makes sense to me, however, Microsoft themselves have ditched COM's versioning model (and lets face it, they were always the biggest culprits in not following it), the versioning model in the CLR allows for more interesting versioning scenarios, I'm surprised that they think the COM model is fine for Web Services. I agree with James's comment that types should be revised using XSD's derivation support. In answer to Sams' question about ASP.NET, I think the reason why ASP.NET just applies defaults has nothing to do with versioning, but was a simple speed/functionality trade-off. Its a pity that you don't get the option in ASP.NET to enable validation if you want it (Hey, Keith, this is on the todo list right ?). I believe that the version model Sam is pushing for makes a lot of sense, and feels more like the XML way, it'd be an interesting exercise to see if this is possible in any of the current toolkits.
Sam & James have been debating this MSDN article by Scott Seely that discusses evolving SOAP / WSDL interfaces. I haven't had chance to read it yet, so will refrain from commenting, however past experience tells me that I could just agree with whatever Sam's saying, and save me the trouble of having to actually read it !
Analysis: Microsoft fires back in Web services war [IDG InfoWorld] I'm sooo sick of reading about MSFT vs Sun.
After reading through some of the emails that Jon links to, I can see some merit in Paul Prescod's proposal that every SOAP callable method should have its own URL. This of course causes big problems for WSDL (not that problems with WSDL should be a new concept to anyone <g>)
I've just updated the round 2 interop results with the 1.3 beta 5 release of pocketSOAP.
Jon raises some interesting point on SOAP security. SOAPAction has something of a checkered past, and looks set to be deprecated in SOAP 1.2. I was against SOAPAction to start with, it seemed so pointless, its description in the spec is very vague, which i think lead to a lot of the problems. I did change my mind though, at some point there was a post from Andrew Layman (I think, it could of been Henrik Frystyk Nielsen), with a really good description of what the intent of SOAPAction was and how to use it. Unfortuantly allmost all the toolkits by default work in a manner different to this, I doubt that there are many services deployed that use SOAPAction in the intended manner.
People who are thinking about implementing the Weblogs.Com SOAP 1.1 Interface should spend a moment to think about federation. [Sam Ruby] You may also want to think about getting data out of the system in a pub/sub manner, rather than polling.
Monday, April 08, 2002
PocketSOAP 1.3 Beta 5 now available : Just posted this, it should be the last beta release for the 1.3 version, it includes support for SOAP attachments, via both DIME and SwA. The attachments are fully streaming both ways, you can send files much larger than the available memory. There are various other tweaks and bug fixes as well. The DIME side conforms to both the core DIME spec, as well as the Encapsulating SOAP in DIME spec. Attachments Interop results are also available.
Are you doing SOAP over RS-485? [BitWorking] Ahhh, that takes me back to the "good ole days" !. As some of you may know, I originally worked in the process control industry, and had my fair sharing of banging my head against various RS-232, RS-485 serial protocols, and a whole pile of proprietry twisted pair 64kb/s token ring networks. I think Sattbus was my favorite at the time, although DH+ was a close second, you could route between multiple DH+ networks using a DH backbone, which allowed you to build some pretty big networks, without saturating the local links. There were move afoot to standardize the process control networks, when I left the industry, I wonder if it succeeded ?
BitWorking: "I have to admit that I am impressed with the design of C#. " Have you looked at Java recently? ":-)" [Snell's Blog] Why, has the design on the Java language changed recently ?
Sunday, April 07, 2002
I just noticed Sam's blog has a new tagline, it looks strangely familar :)
Julian started a Web Services over IM thread on his Ecademy blog, I've posted a few comments.
Anteater sounds interesting.
Cool !, Radio's getting Manila style shortcuts :)
Back on the coding train, trying to get the coding for the 1.3 release of PocketSOAP wrapped up, I re-worked the DIME receiving code last night, and its now all nicely streaming, just a few more issues to fix.
Hopefully I'll have time to look at XSpaces and I also want to have a deeper look at XML-RPC.NET, Peter and I were discussed an XML-RPC formatter for .NET remoting when we were working on the Jabber channel. I wonder if i can use XML-RPC.NET as the basis of an XML-RPC formatter, and take the Jabber channel, and use the combintation to talk to Radio over Jabber ?
Friday, April 05, 2002
Congrat's to Ingo, his .NET Remoting book is released today !. I've had a copy pre-ordered for a while, can't wait to get my hands on it.
Another article from Sam, this time Neurotransmitters, about message based systems.
XML-RPC for .Net. Excellent. Say you're working in .NET with MS tools and you need a lighter weight web service protocol than SOAP, or you need to call an XML-RPC service like the Blogger API or weblogs.com. Well now you can with XML-RPC.Net [Ecademy: user blogs] Look interesting, it seems to be modeled on the same patterns as ASP.NET webservices, so will be familar to a lot of folks (and also have the same issues, a fixed 1:1 type/serializer match is bad news)
Namespaces in XML 1.1 draft released [WebServices.Org] I can finally undeclare prefixes! :-) This is one I've wanted for a while. (tell me, is it strange to get excited about such things?) [Snell's Blog] It certainly is strange !. BTW, why do you think this is useful ?
Thursday, April 04, 2002
I keep reading this post from Dave, but still can't make any sense of it. .... "IBM didn't join the process (nor did the people he applauds) for many years after it started." .... many years ?? huh ?, SOAP 1.1 is 2 years old in a month and few days time. WS-I is a recent creation, but many of the participants have been involved in the SOAPBuilders interop testing. The interop testing around validator.soapware.org pre-dates SOAPBuilders, but not by much, 2/7/1 was the first non-Userland product (my own 4s4c) to pass the validator, closely followed by SOAP::Lite. whilst the first post about a live SOAPBuilders round 1 service is dated 2/13/1. I'm not aware of any cross tool SOAP interop testing that pre-dates this. I can only assume I'm miss-reading it, any one care to enlighten me ?
Sam comments on my earlier note about the next proposed SOAPBuilder interop F2F. I'm all for having more people involved, the obvious question is why did people choose not to get involved with the last one (IIRC, there's about 30 endpoints for the round 2 tests, and there was about 12 or 13 toolkits at the round 3 meeting) ?
Wednesday, April 03, 2002
Web services group leaves Sun in cold [ZDNet] More whining from Sun. Yes, people are deploying Web Services on Java, but not with Sun's tools, everyone I know of doing Java Web Services is using Apache SOAP or GLUE. Perhaps I'd take them more seriously if they'd attended the WSDL F2F (They were invited), or were involved on SOAPBuilders, but of course its always easier to whine than to do.
I've started planning for the fourth SOAPBuilders interop meeting - the proposal is the first week in June at IBM Almaden focusing on Tony Hong's scenarios. Got feedback? Let us know in the SOAPBuilders discussion group. [Sam Ruby's Radio Weblog] Sounds good to me (especially the location <g>), I've only glanced through the spec/wsdl's but they don't seem to be pushing the envelope over what we did last time, is this going to move the interop situation forward ?
Java arrived late? One of the very first SOAP implementations available was written in Java. While it may take a frustratingly long time for things to filter into the Java specification, that in no way means it doesn't exist. Java not only arrived at the party on time, but was there an hour early helping to blow up the balloons and spike the punch. [Snell's Blog]
Java (and now .NET as well) suffer from being an overloaded term, in this case Jon was referring to Java the class library / standard, vs a SOAP implementation running on Java. As James points out, SOAP4J (which later became Apache SOAP) was the first significant SOAP toolkit, shipping well before any equivilent offering from Microsoft. And to this day, Java developers have a wider and more mature choice set of offerings for SOAP toolkits than the Microsoft developers.
Monday, April 01, 2002
[...] How about hosting all those custom Remoting projects (like Peter and Simon's Jabber Channel, my SMTP/POP3 Channel, some additional channel sinks, etc.) in a publicly accessible form like CVS or Subversion? Any takers? Anyone has the servers - or the knowledge ;) - to set this up? Peter & Simon: What's your opinion on this idea? [Ingo Rammer's DotNetCentric] Sounds like a great idea to me, I've setup CVS servers before, its pretty straightforward, I've actually been thinking about hosting a public CVS server for the PocketSOAP code, perhaps I can kill 2 birds with one stone.