Wednesday, November 24, 2004

Ruminating on SOAP

It seems that lot of people are starting to move their CORBA/DCOM/RPC/RMI/etc designs to us SOAP instead. To me, that seems to miss the point. SOAP can be used as a replacement for the various RPC technologies that already exist, sure. In my mind, there are 2 key reasons for SOAP rather than RPC(etc).
  1. Sending larger, potentially irregular or semi-structured units of data.

  2. Abstracting from the exact details of the current classes/data-structures


The first point speaks to the fact that most RPC-like technologies are around passing some parameters to a virtualized function call, and returning the result. What if I want to capture a snapshot of a set of tables, or a varied collection of data (all the updates to my inbox status, for example). In a loosely coupled world, where a remote action invocation may take some time, you want to package as much information as possible into a single message. This tends to be quite awkward with the RPC style technologies, which is not to say it is impossible, just unpleasant. That SOAP allows an arbitrary payload of XML provides a perfect workaround to that problem. XML may not be a perfect solution, but it is the best public standard for this kind of thing that we have today.

The 2nd point was hit home to me some years ago when talking to developers building web front-ends on disjoint back-end functionality where each back-end was owned by a different team. It was much easier to convince them to expose an ASP/CGI/etc that returned text/xml, than it was to convince the other teams to expose their databases directly. If the front-end was tightly dependent on implementation details (database vendor, machine name, database schema, etc), that restricted how much the back-end teams could adjust their designs over time. By putting a simple SOAP(ish) access point, the back-end teams now had much more freedom. The front-end didn’t care what database was used, or what the schema was. All of that was carefully isolated behind a simple, clearly defined API, which was not tied to any implementation technology. (well… almost)

All the SOAP stacks I see today are all based around just repeating the old RPC infrastructure, but with SOAP in the middle. What is the plan for supporting implementation abstraction? Each side is using the tools to serialize the SOAP data to/from objects, and then working off those objects. What happens in V2, when you change your back-end and it no longer matches your protocol 1-to-1? It is great to see tools that make it easy to build a web-service, but these tools do not seem to be doing a good job with planning for the future. Is the theory that as soon as you break the 1-to-1 mapping, everyone will have to hand code their SOAP listeners? It is good to see that people are thinking about designing XSD schemas to support evolution of the data on the wire, but what about evolution of the code at either end of the wire?

The things people say

It is funny what you sometimes say, and how horribly misinterpreted it can be, out of context. For example, over lunch today, Dare and I were talking about software to implement weblogs. Somehow that conversation produced this gem from Dare: "I play with my backend all the time."

Language comprehension is so much about context. In the context of our discussion, Dare's comment made sense, and was a testament to his geekiness, not to some vaguely obscene activity. (Although, I imagine there are those who might consider tweaking ASP.Net and C# code obscene, that obviously isn't what I meant.) This aspect of natural language is one of the reasons computers have such a damn hard time 'understanding' humans. What we say/write can have totally different interpretations in different contexts.

I have long pondered trying out some of the speech recognition technology out now, but am curious how it would handle my schitzophrenic lifestyle. My workday is a constant jumble of English (email and meetings) and code. I'm not even sure I know how to speak most of the code I write. Being a manager, I spend most of my time looking at code, so tight integration with search might do the trick. Long weekend ahead, maybe I'll wander down to CompUSA and finally break down and buy Dragon Naturally Speaking

Friday, November 12, 2004

A Few Brave Souls

We are winding up our current deliverables, and it is time to start planning for our next release. Part of that is getting some fresh blood in these halls. My team has some open positions in development, test, and management. I am looking for some experienced developers to add to my team. How would you like to own the XML parser used by the core OS and an astounding myriad of applications? Or what about helping me manage the team that is building the next generation of System.Xml? This is a rare opportunity to own a key core component in the Microsoft platform.

You can find more details by going to http://www.microsoft.com/careers/search/ and selecting Location=WA - Redmond, and Product = SQL Server (yea... it sounds odd, but for various reasons, we ultimately report up in the SqlServer product unit today) and Keyword = XML. The Job Codes for Developer positions reporting to me are 121896 and 113340.

Why should you join me at the Evil Empire? We have a great team of diverse people, who care about delivering quality components to our customers. This isn't about Microsoft brainwashing. It is about a good work environment, fun and intelligent coworkers, and an opportunity to build components on which applications the world over will be using. I'm looking for people with curiosity, experience, and intelligence, to help make our next release great!

Contact me directly for more information: derekdb at microsoft dot com

Thursday, November 11, 2004

The DOM of DOOM

When I first started working at Microsoft, my job was to implement the XML DOM for IE5. This was back while W3C was still defining DOM Level 1 and XML was a newborn babe. One of the guys I worked with (Rich Rollman) was on the W3C's DOM working group, and he and I would debate API issues over email at least once a day. The one thing that I remember most clearly from those days was that Outlook would always try and correct "DOM" to "DOOM". Little did I realize how right it was.

Fast forward 6 years. Now I manage the team working on DOM in the next release of the .Net Frameworks (code-name Whidbey). A few months back Sun released a parser/DOM performance benchmark (commonly called XML Mark). We have been investigating this benchmark and our numbers for Whidbey just were not as good as we wanted. The developer who owns our DOM code came into my office this morning to tell me that he found a bug in their tests that mean that meant that they never excersize their save code in Java, while the .Net version is correct. Fix this and our Whidbey numbers rock! Now that is how to make your Lead a happy boy!

Note: The bug is a very simple typo. I am making no claim that this was intentional on Sun's part and we are in the process of informing them of our findings. Competition is a good thing, and if this just spurs Sun to improve their DOM code even more, that only ends up benefit both of our customers.

Wednesday, November 10, 2004

Aural Contrasts

Why I live in Seattle: (or at least why I live in a city...)

  • Psychic TV, Nov 6th: interesting show... I have wanted to see Genesis P-Orridge performing live ever since discovering those old Psychic TV records in college.
  • Laurie Anderson, Nov 9th: Amazing show! Possibly the most beautiful show since seeing Lisa Gerard.
  • Ministry, Nov 13th: I just want to be able to say that I saw Ministry and Laurie Anderson in the same week. Besides, there new album is damn good. Note to self: bring earplugs.

Wednesday, November 03, 2004

Some Aural Goodness

Psychic TV - 11/6 - Chop Suey - I have always wanted to see these guys live. I remember playing LPs of them when I did a 1-3am radio show in college

Ministry & MLTKK - 11/13 - Fenix - There was a time when I had hair that made people compare me to GroovyMan... and Ministry? They helped define the angst of my teen years.

Finally some shows to make me want to see live music!


Not What I Expected

President Bush was re-elected. Damn. Not exactly what I was expected. We can just hope that his second term demonstrates a man of more consideration and compromise than the last 2 years. If I hadn't just bought a house, I'd be sorely tempted to polish my resume and look to emigrate.