SAN MATEO (05/01/2000) - When bullets are flying overhead, it's wise to lie low. That's been Microsoft Corp.'s strategy of late, speaking in whispers while Sun Microsystems Inc. and the U.S. Department of Justice deliberate on Microsoft's corporate fate. Now that the foregone guilty verdict is in, Microsoft is letting some long-confined strategy genies out of their bottles.
We've recently been barraged with news about browsers, handheld computers, programming languages, and Windows ME. The most significant development is the growing discussion of Microsoft's Next Generation Windows Services (NGWS) initiative. If you don't scrutinize Microsoft for a living as I do, the company's statements about NGWS are confusing. Is it an operating system? A programming language? Is it a product or just a concept? For all the times Microsoft has invoked the name, it's said remarkably little of substance about NGWS. When I contacted Microsoft's PR agency about NGWS, I got a four-word briefing: "We're not commenting further."
So what is there to analyze? In my view, NGWS is the crystallization of strategic shifts Microsoft has been making all along. NGWS may eventually manifest as products: Microsoft CEO Steve Ballmer has promised new software across the board. That will take time to materialize. If you've been watching Microsoft, you can make some solid guesses about the shape NGWS is likely to take. For managers, project leaders, and others involved in long-range planning, such speculation is essential. It's the only way to stay competitive and to get real-world projects delivered in Internet time. What follows is my speculative take on Microsoft's course. I hope to give you a head start on evaluating the importance of Next Generation Windows Services in the work you do and the impact it will have on your projects.
Windows DNA minus the "D"
In short, NGWS is Microsoft's preparation for the demise of distributed computing.
Microsoft coined the phrase "Windows DNA" (Distributed InterNet Architecture) to distill dozens of discrete network application technologies into one flask.
The phrase never caught on -- Windows DNA is as misunderstood as the technologies it was meant to simplify -- but the idea of a unifying mantra stuck. Next Generation Windows Services is Microsoft's kitchen-sink phrase. It describes the server-side technologies and tools that will shape Microsoft's Internet application strategy for the next several years.
The run-time core of Windows DNA will undoubtedly be the core of NGWS. The Windows 2000 COM+ (Component Object Model) provides a credible middleware layer: Brokered objects, transactions, messaging, and directory services are part of the operating system. Once you add the Internet Information Server (IIS) 5.0 and the Microsoft Database Engine (MSDE), you have HTTP, relational database, and scripting covered. Windows 2000's standard journaling file system, hierarchical storage, and dynamic disk-management features round out the picture. Put them together and you have Windows DNA 2000.
Microsoft previously sold Windows DNA 2000 as part of the Total Windows Experience: Windows servers talking to other Windows servers, Windows clients acting as servers to other Windows clients. This incestuous arrangement brought Microsoft lots of licensing revenue, but it made fast-growing Windows networks almost impossible to manage. Administrators got in over their heads, and before long the buzz was that Windows NT was no good as a server OS. There was actually nothing wrong with Windows NT. The dream of distributed computing, seamless blending of servers and clients, was achieved. When we arrived at reality, we discovered that the distributed model looked better in the brochure. We have since learned that centralized services are much easier to set up and manage.
As we discovered in the PC revolution of the '80s, it's damn hard to go from centralized to distributed. The best we could do was teach PCs to act like terminals, and that remains the most widely-implemented solution. As a purely technical matter, it's easier to go from distributed to centralized. Most of the adjustment is in developers' hands. If you're writing server code, you stop assuming there's a PC on the other end of the wire. It might be a PC, but it could be anything from a Braille terminal to a cellular phone with a 20-character display. Internet server software developers have been assuming large color displays, fast network connections, and client machines with speedy CPUs. NGWS hauls all client assumptions to the dumpster. The client's only role is to present an interface to the user. The client no longer places its resources at the server's behest. All application code lives on and is executed by servers. Compared to the traditional Windows approach, this is a radical change.
To go centralized, and to do it before Sun cuts Microsoft off, Microsoft must quickly put new tools and technologies in developers' hands. Windows 2000 Advanced Server and SQL Server 2000, both key to NGWS, go a long way toward achieving NGWS's objectives. We can't be lured by Windows Terminal Services:
It's cheating to make every client look like Windows. Besides, that approach doesn't work for non-PC clients such as cell phones and voice-synthesized screen readers. Instead, we must use XML and related technologies such as XSLT (XML Stylesheet Transformations) to give our servers more power over client presentation. NGWS brings XML support to SQL Server 2000 and gives us the powerful BizTalk Server as a scalable business-to-business data interchange service. BizTalk Server also gives developers ready access to an XSLT engine capable of translating presentation code, such as HTML, XML, WAP (Wireless Application Protocol), and so on, to match client capabilities. With products already released or near the ship date, Microsoft will have the majority of the services it needs for NGWS.
Developers like it
Microsoft's quick embrace of XML surprised many, given the company's legendary reluctance to endorse standards that did not originate in Redmond. I expect to see standards support become a cornerstone of Microsoft's new approach.
Adopting standards for its services is necessary to boost Windows 2000's credibility among those who see Windows as a proprietary platform.
Microsoft will not remain in the Java business. The tip-off is Microsoft's positioning of Visual Basic (VB) as the NGWS programming language for Internet applications. Windows DNA's language-agnostic approach will likely give way to a Java-inspired emphasis on VB. Visual C++ will be relegated to more of a behind-the-scenes role, supplying high-performance objects that are woven together in VB code.
Visual Basic enjoys a distinct advantage over Java: no learning period. Java projects are tough and expensive to staff; Java talent searches turn into free-for-all bidding wars, often ending with the candidate consulting instead.
In contrast, VB is such an easy language to acquire that employers are willing to let inexperienced candidates learn it on the job.
My position is that VB's ease of use carries a hidden cost. Inexperienced programmers, working in any language, write unmaintainable code. VB's loose structure doesn't penalize sloppy design the way Java and C++ do. Is Java a better language than VB? Undoubtedly. Will Java win in the end? Probably not.
Visual Basic is to coding what Hamburger Helper is to cuisine. "Better" almost always takes a backseat to "easier."
One size fits all
Visual Studio 7 will automate more of the Internet application development process. Microsoft has worked hard to hide the complexity of multiuser applications while simultaneously reducing the fragility of server code. A programmer coding to Windows 2000's COM+ model writes as though there is only one user, one database, and one server. Windows 2000 services already take care of multiple database connections, brokered objects, transactions, and concurrency protection. With NGWS, Windows will take on the new roles of flexible presentation, data transformation, workflow tracking, and business rules interpretation.
New client types, changing database layouts, new database servers, and even changes to the structure of the network require modification of most Internet application code. NGWS will abstract these elements and insulate server applications from client and infrastructure changes. Responsibility for this abstraction will be split between Windows 2000 services and the Visual Studio 7 development environment. Therein lies NGWS's greatest challenge.
In the past, Microsoft has been slow to expose new operating system features to developers. Experienced Windows C++ coders can access new features right away, but VB and script programmers must wait for language enhancements. As NGWS evolves by taking on more features and tightening its adherence to standards, Visual Studio must evolve with it. Because Sun's Internet application strategy relies on a Java-based suite of services, Java programmers can take immediate advantage of service enhancements. To make NGWS work, Microsoft has to match its feature rollouts with the tools and documentation needed to implement them in code.
Microsoft, as a matter of survival, must establish Windows 2000's centralized credentials. It cannot continue to rely on dwindling desktop revenues while Sun walks off with million-dollar contracts. Sun can afford to give software away to sell servers. Unless Microsoft gets into the server hardware business (saints preserve us), its best hope against Sun is to make the Windows 2000 suite of application services irresistible to developers, ASPs (application service providers), and corporate IT. That's what NGWS is meant to do.
With centralized, standards-based services being key to the Windows enterprise future, it isn't hard to sketch the outline of Next Generation Windows Services. Now it's up to Microsoft to deliver the services we need while meeting our requirements for performance, scalability, accessibility, and adaptability. Server applications is a new field (again), a genuine footrace that's just getting under way. It would be foolhardy to call the race now. I advise hanging back. Watch for a while before committing your resources. In the meantime, start making some adjustmentsto nudge your PC operations toward a centralized, standards-based, client-independent strategy. Whether Microsoft's NGWS initiative succeeds or fails, those adjustments will pay off.
Tom Yager (firstname.lastname@example.org) is a senior analyst in the Test Center. He covers a variety of topics from operating systems to programming tools.
Preparing for Next Generation Windows ServicesAlthough Next Generation Windows Services remains a fuzzy concept, consider taking steps now to align your Windows services strategy with Microsoft's push toward centralization.
* Beef up server resources. Budget for large multi-CPU servers, disk farms, and shared backup devices. Implement Windows 2000 Advanced Server's clustering and load balancing features to make good use of your aggregate server resources.
* Prepare your users. Start weaning your users off high-powered desktop PCs.
Swap "fat" for "cool." Offer fussy users gadgets such as LCD flat-panel monitors and PDAs (personal digital assistants) when you downgrade their beefy desktops. Equip new employees with small, affordable notebook computers or inexpensive PCs.
* Think independently. Replace client-specific code in your server applications. Remove hard-coded references to specific servers and databases.
Increase the use of standards in new development projects.
* Eliminate assumptions. Test applications at low resolutions, in black-and-white, and over dial-up connections. All new sites and applications should be able to run without cookies, ActiveX objects, and client-side Java applets. Make sure all content remains navigable in text-only browsers.
* Go for scale. Migrate server COM (Component Object Model) objects to COM+.
Wrap all critical procedures in transactions. Shift from a synchronous ("while you wait") to an asynchronous (queued) processing model. Exhaustively load-test components and applications before putting them in production.
THE BOTTOM LINE
Next Generation Windows Services, Technology PreviewBusiness Case: NGWS will shift the Windows server application model from distributed (client-dependent) to centralized (client-independent). In the long term, direct and indirect computing costs, including hardware, support, service, and security, will fall dramatically. Managing the cultural aspects of this shift will be more difficult than adapting your technology.
Technology Case: Windows 2000 Advanced Server is already positioned to shift the balance of power from desktops to servers. NGWS will give developers the tools they need to break their current dependence on high-powered clients.
Applications written to use NGWS services will adapt to clients of all shapes, sizes, speeds, and capabilities.
+ Improved adherence to standards
+ Better interoperability with non-Windows clients+ Better Visual Studio support for server applicationsCons:
- Microsoft has yet to get specific about NGWS- Visual Studio 7 is required but a long way offMicrosoft Corp., Redmond, Washington; (425) 882-8080; www.microsoft.com.