Microsoft Professional Developers Conference Impressions
San Diego, Sep 1997
David N. Blank-Edelman
CCS Director of Technology
In the minutes right before the conference proper began, the A/V personnel decided to play a song from the Talking Heads Little Creatures album as background music. With sweet irony, the 6200 people at the conference heard David Byrne sing "We're on a road to nowhere...Come on along..." as their segue into this gathering. It really couldn't have been better.
I've brought back a CD full of the slides from the presentations from this conference, so I won't dwell too much on any individual talk. Here is a mostly random collection of some of the more salient impressions from my trip:
- Some fun trivia: WindowsNT 4.0 is built from 16 million lines of code. NT5 is not even done yet, but it is already 27millon lines of code long. It takes 11 hours to build from scratch on a 4-200Mhz Pentium machines and 8 hours on an Alpha platform. There is approximately the same number of NT testers working on the product as developers (400 each).
- NT vs. Windows98: NT is seen as a superset of Windows98. 98 is the last Windows9X for the company, within two years the two products will be the same. 98 is being released as a consumer upgrade to help address some of the 95 deficiencies (reliability being the key one) and add some new technologies like streaming multimedia. Getting out the kinks in this technology in particular is probably important to MS because of their push into consumer devices like WebTV boxen. They were showing a TV-tuner like application on 98 when someone next to me said, "I bet this is what the future of WebTV looks like." MS is still quite clear that it would prefer all non-consumer customers commit to NT instead.
- Here are some of the things that will be in NT5 which I did not mention in my previous trip report:
- Multi-lingual support (to allow companies to ship a single binary that will work anywhere in the world). This also allows companies with employees from different backgrounds to use the exact same system (the language of the system can be set per user, without having to reboot at all).
- distributed time services (critical when one is solving the distributed database problem)
- filesystem quotas and CPU resource limits (so a single process can't eat an entire system alive)
- Security policy editor - all security related items are collected into a single template-based management tool (more on this below).
- fibrechannel support
- Windows subsystems not in NT proper, but significant:
- MS Transaction Manager - to allow developers to write transaction-based applications with very little effort.
- Message Queue Manager - plumbing for maintaining message queues (for writing applications that need to communicate.
- Stuff not in the first beta of NT5: IntelliMirror™, migration from NT4/Win95 tools, broader device coverage, some active directory functionality, and a debugged setup process.
- Given the amount of stuff they had to pull off, the A/V folks at the conference did an excellent job. However, there was the occasional glitch. During one these glitches, I realized that this is one example where technology makes one's life more complex. For example, once upon a time if Oog wanted to show you his rock, he would hold it up and say "Look...Oog...Rock." Nowadays, it would be something like "Umm, can I get rock #17 up on the screen? Yes, #17. No, that's 16. Bear with Oog for a minute, folks. Damn, the rock just crashed..."
- One of the upcoming Windows components I've been watching very carefully is the Microsoft Management Console. The MMC unifies all of the administrative tools under one common GUI framework. Each tool is a "snap-in" (read: plug-in) for the MMC. The MMC allows you to construct custom windows which display your snap-in's of choice and save this layout as a document for future use. For instance, you might make a MMC document which contains all of the tools you need to administer your web server, including the web-server admin tools, a network and disk monitor, and perhaps SQL backend you use for it.
This in itself is pretty cool, but I had another "Here's where Microsoft almost gets it, but not quite..." revelation while attending a session on designing good snap-in's. The session consisted mostly of "basic integrated UI design 101". Developers were told where to put buttons, and where not to put them, when to use toolbars and when not to, and so on. The basic message was "keep it consistent with the Windows95/NT GUI." Ordinarily an admirable goal, this misses the mark for the Administration domain the MMC is meant to work in.
The key element which they did not even mention (and their sample snap-in's were terrible in this regard) was focus. When you are doing large to medium scale system administration, it is vitally important to understand the focus for each operation you are performing. Is what you are about to do going to change something on the machine you are on? All of the machines on this subnet? All of the machines in your transglobal domain? If I am using a GUI that makes it easy to perform an operation on multiple machines, I'd better receive all of the focus feedback possible before I initiate that action. Maybe it's something as dumb as having the window change into the shape of a cloud, but before I zorch all of the machines on my net, my GUI better have clued me in. "Are you sure?" dialog boxes do not cut it.
(A related aside: at the previous conference, one of the presenters made the excellent observation about the problem with GUI system administration: "Have you ever heard of drag-and-undrop?")
- While we're on the "Microsoft almost gets it" bandwagon, I also realized that the new Security Policy Editor in NT5 was close-but-no-cigar software as well. This component of NT5 takes the admirable step of collecting all of the kerjillions of security related settings for NT5 and placing them under one roof. An administrator can then create a template with all of the required settings and push this template out to all of her machines, setting their security options accordingly. A second tool allows this same administrator to report any differences between a template and the settings of a running machine.
The problem with this approach (and a very hard problem to solve, granted) is endemic to all template-based schemes. All large-scale template based schemes assume that the user has not only a considerable amount of knowledge about the individual settings, but their interaction as well. "Does turning this checkbox off effect another? How do these three settings differ? ", etc. For security matters, understanding the impact of the settings one has chosen is often complex and non-intuitive. I'm not certain a full-blown expert system is necessary here, but I do know that just giving the user an easy way to view all of a certain kind of setting in one place does not go far enough.
- One goal I really like in Microsoft's game plan is "auto-everything." The theory is that software developers just need to declare attributes of their program and the OS will assure that the back-end plumbing is in place. The Microsoft Transaction Management stuff is the best example of this. A few short stubs in one's code and voila, your program is now transaction based. You as developer have done virtually no work to make this happen. Or " poof, your program is now working in a distributed fashion," not because you wrote hundreds of lines of code to make this true, but because you simply told the development environment to make it so. "Make the libs do the work" was an exact quote.
- As Microsoft keeps on adding features and components to its core operating system, the number of contexts developers on that platform have keep in mind as they build software increases. For instance, the new Power Management stuff is an excellent addition to the OS, but now developers have to keep in mind "What if the user puts the machine to sleep in the middle of this operation? What if I just woke up from a two day sleep?" Now add in "plug and play" ("whoops, the device I was using has been ejected!"), and multi-lingual support. Software development on Microsoft NT platforms becomes even more complex. This is the other side of the double-edged sword from the previous bullet item.
- I spent most of the conference being confused about Microsoft's attitude towards Java. On one hand, several speakers took pains to take not-so-subtle jabs at Java (without mentioning it by name). On the other, there were several tutorial sessions on working with the language. Finally, I backed a Microsoft employee (who wishes to remain anonymous) into a corner for a discussion on the topic. He didn't say the following directly, but here's what it boils down to:
Microsoft has no qualms about Java, the language. They say
they love it (even if they did purge www.microsoft.com of every single Java applet). They are delighted to make and sell to you all kinds of Java development tools, books, resources, etc.. But as soon as someone starts to talk about Java the O.S. (i.e. a machine independent platform on top of which other programs can run), that's when you'll see the Microsoft PR machine scream into action. Microsoft wants only one universal operating system on the block, and it ain't the one from Sun.
I believe their additional Windows hooks into the core language API (see the recent lawsuit) as distributed with IE4.0 is an attempt to create another dependency on the Windows OS. Good strategy.
- More Microsoft strategy: "claim 'interoperability' using a loose definition of the word." During several of the talks, I came to realize "interoperate" means something different to Microsoft: "drop a proxy component into place so we can talk to non-Microsoft components. Under no circumstances create a situation where a non-Microsoft product or vendor can become the center of a computing infrastructure." An example is their Kerberos V implementation. NT cannot authenticate using another vendor's Kerberos server (KDC), despite their claims of interoperability (technical details: they are using one of the Kerberos fields in their tickets for Microsoft/NT specific security information). This may be an issue if a company or institution already has a Kerberos infrastructure in place. I'm willing to bet that Microsoft will allow other non-NT machines to authenticate from its Kerberos services. Microsoft will not "interoperate" (if it can help it), as a peer. Sure, we'll all use the same specs, but not as equal partners.
- Big pushes of the conference: Active Directory (their distributed directory services system, on top of which many, many things are built and depend), Dynamic HTML (the emerging standard which allows an HTML page to be "programmed", responding to user input and etc. without having to reload the page) and COM+ (their object model, now extended to do some interesting things). They are also introducing their "DNA framework" which is their way of viewing software design in the future. It splits into three parts:
Microsoft has components to handle all three layers (surprise!).
Prediction: administering ActiveDirectory (where configuration
information is both everywhere and nowhere at once, automatically) is
going to be a real bear. Microsoft's Zero Administration Initiative is
aimed at cutting down administration time spent dealing with
individual machines and users. It is primarily focused on end-user
service delivery. It does not adequately address the time
adminstrators spend having to debug the infrastructure itself.
Having just come from a conference with lots of discussion on Q.O.S. (Quality of Service), one of the more interesting demos at the conference involved Microsoft's new relationship with Cisco. Together they are working on router and switch equipment that will integrate with the Microsoft infrastructure. "Active Networking" based on Microsoft's Active Directory technology was discussed. The demo shown revolved around bandwidth allocation. Multiple video streams on the network were started up on the network. A particular user's reception of video degraded as the net became more and more saturated. This user was then placed into a different user group using the standard user management tool. The new group had different network parameters specified for it (i.e. all members of the group were given special bandwidth allocation). After the user was moved, his video reception drastically improved because his network environment had automatically been changed. I've sent mail off to the Internet2 QOS folks to let them know about this development effort, since it offers one model for QOS administration,
Every presentation ended with (by command, I'm sure) "A Call to Action." This got old quickly, though you can't really blame the phone company for urging you to use their product.
I had an interesting, informal discussion with one of the top development managers for NT. He/She told me the following (all paraphrased):
- User interface (use HTML/DHTML/Client Scripting)
- Business processes (read "middleware" and "applications layer", for this you use web servers, transaction and message queue managers, scripting, etc.)
- Integrated storage (structured and unstructured access to a backend database, OLEDB, etc.)
Microsoft is going to be pushing the notion of "Accessible UI", i.e. creating a UI which allows people with disabilities (e.g. speech reading of screen contents)" in future releases. Bravo.
Bill Gates' keynote was mildly amusing. No unique message past "speech & vision" will be a larger part of the interactions we have with computers in the next few years. Maybe I'm jaded from my years at the MIT Media Laboratory, but this wasn't all that new to me.
- In response to my comments about the overwhelming number of features in NT5 and how some of them could easily have been left out as part of a single rev of the operating system, he said "Lot's of people have said this. But it's funny, at Microsoft we don't look at it that way. For us, we think this is purely survival. We're paranoid. We know we could lose the market in a microsecond, this is pure survival for us."
- He/She felt that UNIX's biggest problem is that it was never
consumer driven. Only with Linux is this starting to become true in
All in all, it was an excellent conference. It was especially useful for allowing me to understand the course of the Battleship Microsoft for the next year and how it intersects ours.
I was asked to by several people to offer some references to the material I've discussed in this and previous reports. Here's some good stuff on the topics:
http://www.microsoft.com/ntserver/info/nt5.htm - major distribution point for information
http://www.microsoft.com/ntserver/info/nt5_pdcwp.htm - whitepapers galore!
http://www.winmag.com/windowsnt - Windows magazine NT5 site
http://www.microsoft.com/sitebuilder/dna - DNA home page
http://www.microsoft.com/com - com (and com+) information, be sure to check out the Technologies link
NT Management Tools (MMC, Zero Admin Initiative, etc.)
Good PDC Presentations
http://www.microsoft.com/events/documents/shows/pdc/JimA.ppt - NT5 and DNA
http://www.microsoft.com/events/documents/shows/pdc/DaveV.ppt - ties the whole kaboodle together