Wednesday, May 22, 2002

Yesterday I was testing upstreaming from Radio to RCS using SOAP, and I made an interesting discovery: It didn’t work.

After a bit of debugging, I discovered the problem. There was a parameter name mismatch. Radio was sending requests with a parameter named “email”, but the server expected a parameter named “usernum” instead.

A little research revealed this note by Dave, from October, 2001: “Many of the routines take a parameter named email. Implementors may use email addresses to identify users. However, to interop with other xmlStorageSystem applications, you must not assume that it is an email address. Since SOAP uses named parameters, changing the name of these parameters to something more neutral like “userid” would break applications.”

What happened it seems, is that at some point during the development of RCS, the email parameter changed its name to usernum, which would make sense internally, but broke upstreaming when using SOAP.

Obviously, we can’t change the parameter name for requests that Radio sends to RCS, because this would break its connection to any other xmlStorageSystem implementation that the now thousands of Radio users may be talking to. The change has to be made on the server-side.

Fortunately, current users who are upstreaming to RCS are using XML-RPC, which doesn’t care about parameter names. This is a good thing, since changing the name of the parameter that the server expects won’t break any existing users.

So today a small change was made to RCS, that fixes SOAP-based upstreaming: The parameter names changed back to “email” again.

Now I can go make some wiredumps.