HTTP, XML, REST, and $100

Don Box's Spoutlet

Syndication

I dedicated my previous post to cataloging the investments we've already made in HTTP, XML, and REST across Microsoft. The list wasn't necessarily complete, but it was a pretty good snapshot based on one person's recollection.
 
Now onto the more interesting part.
 
Tim posed the following challenge:
 
    …we ought to be pouring resources and investment into tooling and developer support around simple XML/HTTP/REST technologies.
 
What I'd like to do is apply a common technique I've seen used during product planning called "the $100 dollar challenge."
 
The basic premise is this:
 
You have $100 engineering dollars to spend.  No matter how many millions we'd actually wind up spending, we use $100 as an easy number for people to keep in their heads.
 
There are well over $100 dollars worth of features you want.
 
The challenge is in determining how to spread the $100 in a way that produces with the most aggregate value.
 
In case it's not obvious, you can't suggest killing another product team and stealing their $100, so don't think you can raid the WS-* bank account to fund this one.
 
They get to keep their $100.
 
Since I'm asking about the Microsoft platform, suggesting we all move to PHP, Apache, and Linux doesn't really fit into this exercise either.
 
Here are some ideas to think about:
 
  1. What can we do to make HTTP more accessible to developers, IT pros, and users?
    1. How should we make our server-side stack easier to program against?  Easier to manage? More flexible for some scenario? More reliable? More scalable?
    2. What should we do on the client side?
    3. Do we need to invest in more general metadata to drive tooling (think "Add Web Reference") and if so, how?  
  2. What can we do to make XML more accessible to developers, IT pros, and end-users?
    1. How pervasive should we assume XML is, or should we be investing in some other data model and rep (e.g., JSON)? 
    2. What do we do about the perceived and real complexity of XSD?  How would you do about our customers' (and our own) XSD investments?
    3. What would you do with XQuery? Is it the "universal query language for all data," a niche operator in SQL, or something in between?
    4. How much farther than VB9 do we need to go in our programming languages?  VB9 supports XML literals, LINQ, and duck typing over XML. What did we miss?
    5. What more can we do in the store?
    6. What more can we do with Biztalk server?
    7. Where else should we be investing and how? Office? Shell?
  3. What would you do about Lo-Rest?
    1. Where could we do a better job supporting HTTP GET and how?
    2. Should we do a better job supporting Lo-Rest over things other than HTTP and if so, how?
  4. What would you do about Hi-Rest?
    1. How far (if at all) would you push Hi-Rest as a broad initiative?  Of the four buckets we're looking at in this exercise, Hi-Rest has the least traction both inside and outside of Microsoft.
    2. Assuming you were pushing Hi-Rest as a broad initiative, how would you do it?
    3. Assuming you weren't pushing Hi-Rest, what would you do to make sure folks who wanted to embrace it could do it on our platform?
 
Feel free to post your allocation of the $100 here in comments or if you prefer, send me mail. 
 
I'll post my own allocation next week.

Posted Mar 18 2006, 04:10 PM by don-box

Comments

Mike Bluestein wrote re: HTTP, XML, REST, and $100
on 03-18-2006 12:05 PM
I think there should be something native in HTTP, ASP.Net, IIS, IE to make connected type apps in a browser (think im, app share, etc). Not with applets or activeX but with native technology in the browser. I recently did an instant messaging prototype and to get the im capability in a browser I resorted to an IM relay service running on a server with an asmx web service wrapped around it. To make the experience feel like a real-time client, I added some ajax code to poll in the browser. What I really wanted was to have something like the duplex binding you guys have in Indigo available with the browser at one endpoint, so I don't have to write the code to route the messages to the correct place on each polling roundtrip and of course, to get rid of the polling all-together. Something like, say, a connected XmlHttp would be cool. Anyways, that's where I'd spend my $100.
Mark Baker wrote re: HTTP, XML, REST, and $100
on 03-18-2006 1:03 PM
"In case it's not obvious, you can't suggest killing another product team and stealing their $100, so don't think you can raid the WS-* bank account to fund this one."

I don't need to raid their bank. I'd just spend my $100 trying to kill off the WS-* APIs, since that would leave folks with System.Net and System.Web ... which are good enough (from what I've seen of them - never had the occasion to use them myself).

There's still lots of room for advancements to be made, but let's not forget all the existing HTTP-friendly code we've already written over the past 15 years.
Message for you, sir! wrote Helping Don spend $100
on 03-18-2006 6:17 PM
Dare Obasanjo aka Carnage4Life wrote How Tool Vendors Can Better Support REST
on 03-19-2006 9:02 AM
David wrote re: HTTP, XML, REST, and $100
on 03-19-2006 9:47 AM
Without much deep thought, how about...

$15 - Lo-Rest WCF language bindings, i.e. explicit tooling for GET on an object graph. Nearly all this cash on VS Mort-style YAGNI tooling rather than anything new about WCF/stores.

$20 - to split the 'Biztalk Family' into a set of winfx Assemblyhood libraries, components and design spaces.

$5 - RelaxNG support, mainly as insurance off of the impending 'XSD complexity crash of 2008'.

$13 - Hi-Rest long-shot experiment using a mash of RSS/SQL Server Broker/XQuery. Just for fun.

$26 - Make a good go of E4X (ref:Dare). If that is too unsavory then fall-back is to spend it on client-side (Browser) support of XML libraries, kinda 'Atlas goes Wild with XMLHTTP!' etc.

$20 - MSImportantApps (shell, office etc) bribe/coercion money to get them to use any of the above.

99c - Team t-shirts, USB-based gifts for conferences. Oh, and C#Linq/literal support I guess. With so little cash on it it will be a good experiment to see how the VB 'volunteers' do first while waiting.

1c - The Box Compound Interest Investment Fund, in case it all goes wrong.
Sam Ruby wrote re: HTTP, XML, REST, and $100
on 03-19-2006 12:56 PM
$100: http://www.intertwingly.net/blog/2004/10/21/WS-HTTP
ws-suffering wrote re: HTTP, XML, REST, and $100
on 03-20-2006 5:48 AM
$100 for WS-* creators to sit down and build a real enterprise API today (like Amazon, Salesforce.com or eBay APIs), that supports LAMP callers. Then see how much crap you get for making it too complex and full of all kinds of headers that make no sense to anyone.
Alexis Smirnov wrote Good questions to web platform developers
on 03-20-2006 10:38 AM
Don Box (yes, that Don Box) is obviously trying to turn Microsoft's ship from WS to REST. Having spent significant efforts on WS, his courage has to be aplauded. In the process he is asking quesitons that should be...
pwb wrote re: HTTP, XML, REST, and $100
on 03-20-2006 11:21 AM
$100 on a guide that explains how to build a rest-full service.

Still to this day, if you ask for information about REST, you are directed to a PHD dissertation on "Representational State Transfer".

Sorry, that doesn't cut it.
Sam Ruby wrote re: HTTP, XML, REST, and $100
on 03-20-2006 12:59 PM
pwb: http://www.xml.com/pub/at/34

(Hint: start at the bottom, and work your way up)
Ray Rogers wrote re: HTTP, XML, REST, and $100
on 03-20-2006 5:23 PM
xmlrpc
Chui Tey wrote re: HTTP, XML, REST, and $100
on 03-21-2006 8:37 PM
I'd spend $30 tooling up SQL Server to support PUT, and DELETE, and fixing up GET so that one can obtain resource URI's for individual records.

e.g.
HTTP GET /Northwind/customers
HTTP PUT /Northwind/customers/10365
HTTP DELETE /Northwind/customers/10365

Spend $20 to provide a library similar to DataAdapter to read and update the SQL Server xml, so that sites can interoperate. Publish XSDs for database schemas.

Spend $30 to tool up ASP.net to be able to serve the identical protocol. This way, developers can choose to put logic in SQL procs or in .net data access layer.

Spend $20 to provide adapters for MSMQ and BizTalk to understand these protocols.
Mike Herrick wrote re: HTTP, XML, REST, and $100
on 03-21-2006 10:10 PM
I’d target event driven architecture & or pub/sub using HTTP,XML,REST ...
Bill wrote re: HTTP, XML, REST, and $100
on 03-24-2006 11:18 AM
Here's a second suggestion. You may not like this answer any better than the last but it does address my development wish list.

Windows is the winner on client machines. Linux on the client can't even come close. They can't even get a display configured properly without human intervention. I would spend $10 dollars on making sure PHP is fully supported on Windows. Protecting revenue from Windows sales is far more important than VB sales. People still think you need Linux for PHP and that it simply not true.

Creating an application for system tray access is far too technical. Make it simple and at the same time transform a web page into an application. I would spend $20 on providing the ability to drag a web page to the system tray, magically endow it with a standard set of functionality and allow it to sit there and do its thing. One of its things would be to periodically check the Internet for changes the user has defined useful to that user and provided by that website. Whenever the user defined driteria were met the application would be activated automatically from the system tray.

As far as HTTP is concerned, the key problem is one concerning security. Even Shiflett has not come up with a simple piece of code such that once you have entered valid security on one web page you can gain access to the rest of the web pages requiring that security. I'd spend $30 to extend the browser functionality for developer use such that once security is successful the developer need not be concerned about security on subsequent pages. (Of course I would want it to be verified on PHP's get_file_contents() function but that could be a secondary effort by 100s after the one Microsoft dude got it to work.)

I'd take the remaining $40 and throw a big Microsoft employee party or give the money back to the shareholders. Office '97 works fine, Windows XP finally brought some stability to the desktop and that's pretty much the end of the story.

On second thought, perhaps the remaining $40 should be spent to provide a "home package" of Windows Vista copies. Back in the old days when I could afford $3,000 PCs that were less than 100Mhz I probably bought 8 copies of DOS on 8 separate machines at home. Then I bought all the supposedly "bug fix" releases that Microsoft called new releases. Finally it seems that Windows XP has provided a reasonable level of stability. Now I'm down to 6 PCs with three copies of XP, two Windows ME and one Windows '98. After the Windows Vista release I'll finally replace the last copy of Windows '98. What is the purpose behind the apparent Microsoft desire to keep kids in the house on old copies of Microsoft operating systems? I haven't a clue!

Scott Banwart's Blog wrote REST vs. WS-*
on 03-28-2006 2:35 PM
I’ve been following a discussion thread between Tim Bray, Don Box, and Dare Obasanjo concerning the future of web services. (see here, here and here) There seems to be a developer backlash against the WS-EverythingButTheKitchenSink platform being...
Bogdan Nedelcu wrote re: HTTP, XML, REST, and $100
on 04-25-2006 8:29 AM
I’ll try to spend my 100$ for my own personal needs, although they do not cover all the points Don wrote. I’ll make the same notations as the author.

50$ = 1.1 Invest resources in dynamic languages. I love the idea of writing code and not have to compile everything again, deploy, etc. Code that just works, and maybe later compiled for performance purposes. Personally I would like to have .DLL files as two regions (one with source code and one with compiled code) and be able to change code directly in the file.

25$ = 1.2 A standardized language for UI design and UI processes. XAML&WF is close but not adopted by others. HTML&Javascript shows its limits with Ajax.

10$ = 2.6 Open BizTalk to scripting because deployment of complex project is not easy. Minor changes should be done without the need to redeploy all the solution.

5$ = 2.7 A Windows integrated code editor which does auto complete for all kind of dynamically added references (COM, WebService, DLL) .No need to “Add reference”, the editor just highlight if the code you wrote is compliant to the references. This should generate script .DLL files which simply work. ?

10$ = 4.1 Develop by Hi-Rest the basis for a standard interface through which applications could easily use a document management system developed by anyone who respects the imposed standards. Make this Hi-Rest accessible to others and integrate in NTFS, WinFS, etc.

Waiting for Don’s spending...
Best regards,
Bogdan Nedelcu - my blog wrote Regarding what Don Box wrote about spending 100$ for good ideas.
on 04-25-2006 11:33 AM
I’ll try to spend my 100$ for my own personal needs, although they do not cover all the points Don wrote....
Alex Barnett blog wrote Let's REST!
on 07-21-2006 7:22 PM
A bunch of links to RESTful resources I've collated here and there - should be a good starting point...
Matt W's Windows Workflow Place wrote In this corner... (and $100)
on 08-22-2006 11:33 AM
The great thing about this position is that I get to pay attention to all of the conversations folks...

Add a Comment

(required)  
(optional)
(required)  
Remember Me?