The Unfrozen Caveman Engineer

Ramblings and Pontifications from the world of MBF

MBF and WinFS

My last post was in late June when I blogged on WinFS.  At that point I hinted that there was a relationship between MBF and WinFS.  Since then, my blog has gone dark.

I'm sure this was very unsatisfying for anyone who has an interest in MBF.  But hopefully you can now start to see the reasons behind the blackout.   As a personal philosophy, I want to make my best effort to only deliver you reliable information.  If I truly don't have reliable information, then I would rather stay quiet.

Things weren't very reliable over the summer.  I don't think this should be a big surprise for anyone given the recent announcements about the Longhorn replan.  Avalon and Indigo are planned to ship co-incident with Longhorn but are not part of the operating system.  WinFS also is not part of the operating system and is planned to be in beta when the operating system ships and be delivered after that in production form.

As I hinted in my June post, MBF does have a relationship with WinFS.  So MBF had some uncertainty over the summer as well.  I'm not certain that everything is sorted out yet.  But there have been some recent public announcements made and I would like to comment on them. 

First, we have to establish the relationship between MBF and WinFS.  At some level MBF has a relationship or dependency on all the components of WinFX.  (WinFX being the name used to refer to Avalon, Indigo, and WinFS in the collective sense).  MBF needs Indigo to enable its mission to build Service Oriented business applications.  MBF will enable developers to build Avalon-based user interfaces for those business applications as well.

But MBF has the deepest relationship with WinFS.  At the surface, they look totally different... WinFS is (was) used to show pictures in the "My Pictures" folder on your hard drive and MBF is used to build multi-user ERP applications. 

Under the surface, MBF and WinFS were also significantly different.  WinFS is basically a single-user system (with some peer-to-peer type synchronization capabilities).  MBF is based on an N-Tier architecture.  WinFS is optimized for a client machine... memory footprint needs to be very small.  MBF is optimized for a server machine where you might want to consume more memory if it improved overall scalability.

So MBF and WinFS were very different.  But should they be?

I specifically selected examples for WinFS and MBF to be as different as possible (My Pictures vs. and ERP system).  But there is alot of overlap in other scenarios.  Suppose you're building a small business application.  Take Microsoft Money or Quickbooks or Peachtree as an example (Disclaimer:  These are just examples... this should not infer in any way that any of these products are really using MBF or WinFS).  Which would you choose:  MBF or WinFS?

You want your product to run well on a single machine (small memory consumption) and you would want the deep shell integration that WinFS would bring.  Wouldn't it be fantastic to finally let users see their Customers and Orders in the shell?  But a significant portion of your business is selling multi-user systems.  While WinFS synchronization is great for keeping your pictures synced across machines, it really isn't going to be viable to build a multi-user business application.  So you need the server-side N-Tier capabilities that MBF provides.

Earlier this year, it became apparent to us that ISVs really need one combined platform which merges the best of the WinFS and MBF data persistence stories.  A formal decision was made last May to begin an effort at aligning WinFS and MBF.  We (MBF) formed a team of 24 people to work on the merger.  I personally took the task of leading the development effort for that team.

We worked over the summer taking MBF N-tier code, plus other goodies related to business logic support and worked to integrate that with the WinFS world.  We had alot of fun.  Got to work in the innards of Longhorn.

But over the summer it also became clear that some changes were going to be made with the Longhorn plan in order for it to ship as planned in 06.  And adding more complexity by trying to align MBF and WinFS, while needed and important, was only making the schedule issues worse.  Now I do <not> want to infer that MBF integration was responsible for the overall Longhorn reset!  We were a very, very small part of a much more complex situation.

However, at some point decisions had to be made.  We could not align MBF and WinFS and release Longhorn on time.  So the decision was to continue working on aligning MBF and WinFS, even if it meant that WinFS would not be part of Longhorn.   You can see this in any of the Longhorn reset PR. The press release says: (roughly) "WinFS was removed from Longhorn to make sure that it got server-side support".  While MBF is not mentioned by name... the server-side support for WinFS is at least partly coming from the MBF alignment.

So where are we now?  Here is a link to one story:  http://www.techworld.com/opsys/news/index.cfm?NewsID=2170&Page=1&pagePos=14

The story is generally factually correct.  The current plan of record has MBF joined at the hip with WinFS.  If WinFS slips, then so does MBF.  The story also correctly notes that there is still a possibility that MBF might ship earlier:

"The current plan remains to ship MBF in the WinFS time frame. The MBF team, as a result of the decision to remove the link between WinFS and Longhorn, is investigating if it is possible to release earlier, but no commitments can be made at this time," a Microsoft spokesman said.

But to make things clear... there is <no> move afoot to sever the alignment between MBF and WinFS.  We still have every intention of having a single API long term.  But it may be possible to ship something early which still aligns with a "1 API" story.  Before the Longhorn change, the combined WinFS \ MBF had to support both LOB scenarios and "My Pictures" in the Longhorn shell.  Now the WinFS has been removed from Longhorn it <may> be possible to ship a version early which only supports LOB.  It would still be one API, but it would be LOB focused in the near term, with more Shell focus added for the next release of the OS.

There are no promises here.  The plan of record is that MBF will get aligned with WinFS.  If we can figure a way to accomplish that and still ship something earlier, then that will be considered a bonus.  Nothing is decided yet, but I can tell you that we are working very hard to get MBF to our ISVs as soon as possible.

Published Monday, September 20, 2004 11:57 AM by timbrookins

Comments

 

Lynn Eriksen said:

Any clue how Object Spaces fits into this all?
September 20, 2004 1:56 PM
 

Frans Bouma said:

Thanks for the information, Tim! At least someone speaks openly about it.

I had the idea MBF and WinFS were already planned to be aligned when Objectspaces was moved into WinFS, was that a premature assumption?

Frans, who is quoted in the techworld article you linked to.
September 20, 2004 2:10 PM
 

Tim Brookins said:


For Frans,

Yes MBF, WinFS, and Objectspaces were all aligned at the same time. When I said: "A formal decision was made last May to begin an effort at aligning WinFS and MBF" I just neglected to mention Objectspaces. We were all part of the same decision.

For Lynn,

I don't speak for the Objectspaces world. But from my perspective, the general rule is the we want to have one "stack" which can handle Shell, LOB, and general purpose OR. We want to make sure we get the design for the stack right. And once we think we have the design right, we may consider shipping portions of the stack early. This might apply to MBF, or it might apply to OS. Or we may all wait and ship in the same wave.
September 20, 2004 3:25 PM
 

robdelacruz said:

Thanks for the update.

One question, technically does MBF run on top of the WinFS layer, or are they 'joined at the hip' as you mentioned. If they are joined at the hip, then we really will just have one single API/layer (WinFS) which has the multi-user n-tier functionality of MBF. I'm sure there are technical reasons for doing this, I'm just trying to understand the reasons behind the relationship. Sorry for my confusion :)
September 20, 2004 3:56 PM
 

Tim Brookins said:

Good question Rob...

The true relationship between MBF and WinFS is complex. It is certainly accurate to say that MBF will use WinFS for persistence of objects. But as you note, there are elements of MBF (N-Tier) which could be considered more than plain persistence. We are also looking at moving <some> of the MBF business logic functionality into WinFS as well.

On the other hand, we want to keep a factored system. We want to keep WinFS lightweight. If we stuff all the functionality from MBF into WinFS, then WinFS will likely become too heavyweight for shell scenarios. It's all about drawing the line in the right place between MBF and WinFS.

I think the best way to handle this is for me to make a post on this topic. I'm not sure that exponding on this question in a feedback entry is the best answer!
September 20, 2004 4:17 PM
 

John Cavnar-Johnson said:

Chance of this WinFX/MBF/ObjectSpaces monstrosity actually succeeding seem to be rapidly approaching zero. The underlying premise (that there exists One Schema to Rule Them All) is flawed. The challenge of integrating the competing requirements of the three projects is enormous. The general technology area is littered with failed projects. The overall thrust of the project flies in the face of current technology trends. Success would likely threaten to upset the marketing message for some very powerful groups within Microsoft (especially Office and SQLServer). Are you guys sure you really want to go down this road (which seems paved with good intentions)?
September 20, 2004 7:10 PM
 

Chris Garty's Weblog said:

September 21, 2004 11:44 PM
 

Christian Nagel's OneNotes said:

March 8, 2005 9:40 AM
 

Christian Nagel's OneNotes said:

March 8, 2005 12:18 PM
Anonymous comments are disabled

© 2008 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker