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.