IHuman

A humanistic look at developing software

Recent Posts

Sponsors

October 2003 - Posts

PDC Panel 05

Panel 05

Client Architecture & the Zen of Data Driven Apps

 

Panelists from the WinFS Team:

Quentin Clark - Program Manager

Anil Nori - Architect

Mike Deem - Architect

John Ludeman

 

Panelists from the Avalon Team:

Alex Hoppman

 

Panelists from ADO.NET

Mike Pizzo - Architect

 

Panelists from Outlook

Will Kennedy - General Manager/Development Manager

 

Panelists from the Windows Forms team.

Mark Boulter - Program Manager

 

Moderator: Jeremy Mazner (TE Longhorn)

 

The basic context of the discussion was how to deal with information driven technology. Information is king, how do you manage it and present it in a reasonable fashion. How do you do this with loosely federated system (service architecture). There is no master database, no one place it live. The data is just "out there" but not really anywhere you could point to. So what are the implications? From a client perspective they should not know the difference. And it should operate at the "speed of the PC, not the speed of the network". Much like the way Outlook now works. The conversation also turned on WinFS architecture and the tools it brings to the table in the problem domain,

 

Outlook 2003 was considered to be the model that apps should work toward. Some paraphrasing of Will Kennedy: Outlook cache mode is great improvement. [ed: we needed it at PDC!] The goal was to make "offline" mode more transparent. The idea was to leave people in offline mode all the time and only spinning up connections as necessary. It led to a sea change in the philosophy: it is ok to separate the semantics between user and data and client and server. These are separate problems. Implementation is simply file based and isolated algorithms handle the management of the offline folders. What they learned is that by separating the semantics allowed them to optimized each separately and learned a great deal about how it is used. So now only diff-gram like packages for changes are moved over the wire.

 

The real point that Will was making was that the question of how the data gets to the cached local store and what the user does with it are really two separate problems and that by effectively isolating them, they gained some real insights into how the data was used and what the user experience should be. For instance, one story that was told was that the RPC message on Outlook XP ("Outlook is reading data from the Exchange Server") was provided solely to provide a cancel button so that the user could opt out of the operation. What they found was that it was perceived as another indication of unreliability. The user wants to be isolated from the mechanics of working with the data regardless of the origin of the data. More paraphrasing of Will:

 

From a WinFS perspective, there is no distinction between when the data is local and when it is not. And then synchronization handles the actual movement. We tried to address two problems: when data is synched to a local device and retrieving it from the local store. Then the store figures out where to put the data and where to retrieve it from and then moves only what is necessary. So there is a one programming model, but it still makes a distinction between connected and disconnected data.

 

For obvious reasons the WinFS discussion was a bit more abstract. There was a very interesting discussion regarding whether or not WinFS was an OODB or not. The panelists were pretty emphatic that it is not a persistent programming construct, but should rather be thought of as object relational. An interesting artifact is the comment that they assumed there would be relational mapping component to all value-add extensions to file system and therefore the schema design by first considering how the mapping would take place and then working backwards.

 

I'll follow up with a post on the more interesting things that came from that discussion that weren't really germane to the larger topic.

PDC '03
This was my first PDC and all I have to say is that if you've never been to one, you've got to go. MSFT knows how to do these large events as well as anyone, and I am always amazed at the complexity of the logistics. Kudos to the organizers for a well run show. Particularly in light of the travel issues. This could easily have been a disaster, but it wasn't.
More Posts