.NET acknowledges that the Internet is now the application platform environment. And Windows? Just a significant port in the storm.

Inter.NET Initiative

.NET acknowledges that the Internet is now the application platform environment. And Windows? Just a significant port in the storm.

There are significant changes afoot. I’m sure that’s just what you wanted to hear, right? With Windows 2000 just getting under way, Microsoft is already looking forward to restructuring how applications will take advantage of the platform and how they’ll work in a more distributed manner, even beyond Win2K.

The first step in this process, as always, is to bring along the significant base of developers that builds the applications and has always driven the Microsoft engine. If the general reception of the developers at the recent Professional Developers Conference (PDC) in Orlando is any indication, there’s good news for Microsoft, tempered as always with a wait-and-see attitude.

PDC - A Developer's Conference?

The PDC is a great conference to attend even if you’re not a developer. You can get a good understanding of where Microsoft is trying to go strategically. You also may gain a solid understanding of the underlying architecture of the components that comprise the Win2K operating system.

Finally, you can get Microsoft’s developers to tell you things the marketers will never divulge. It’s a great place to find out what’s really happening under the covers. If you know architecturally how something is supposed to work, then you have a good starting point for troubleshooting when it doesn’t work.

Underpinnings of Modularity

Microsoft’s architectural underpinnings have followed a fairly delineated pathæ starting from the old days of shared memory to OLE to ActiveX to COM to DCOM. The thread running through all of these has been the abstract model of modular components that work together to create a functional whole. Actually, this model has been the basis of the core of the criticism that Microsoft’s products are bloated with code. One of the natural results of the modular abstract model is a larger code image. Win2K continues to follow this model with what Microsoft first called the Digital Nervous System Architecture (DNA), now changed to Distributed interNet Application Architecture (same acronym). Recently, Microsoft announced the Next Generation Windows Services at various technical gatherings (such as the PDC) as the .NET architecture (as in “dot-net”). Whew! Cool name, but confusing and what does it really mean?

From the user’s perspective it’s the next step toward the old Macintosh idea of a document-centric view of computing rather than application-oriented. However, this time it will manifest itself as a browser-centric world in which modular distributed services provide functionality to content living within the browser framework. The need to cut and paste between applications-driven documents will recede into the past as functions to modify data are summoned based upon the task you choose from the browser. At least this is the vision. But before you get too far into this future, there are many things that need to be put into place before users will see anything like it. One of them is a ubiquitous Win2K environment.

Fundamentally, .NET is a continuation of the abstraction of code into modular, multithreaded components. Along with this is the idea of those components distributed from memory space on a standalone computer, to a client/server on a LAN, and now to small objects distributed across the Internet. Can anyone say Java applets over a Java runtime?

Of course, this is hardly a bold new idea, let alone a singularly Microsoft one. This has also been the plan for CORBA and Java from the friends at Sun and Oracle. This has always been the battle behind the whole fat/thin client war. However, Microsoft is trying to leapfrog this idea beyond Java to include any “programming language” as it has always characterized Java. Just as Ada, Pascal, COBOL, and C before were designed to provide a common programming language, Microsoft argues that Java is just another language that should be in anyone’s quiver of tools. Sun and company are trying to make Java and its runtime engine essentially a replacement OS for the “bloated” Windows. With the growing cracks in the Java family, and with history as a guide, Microsoft’s view will probably prove more accurate.

Windows Re-swizzle

The foundation for .NET in the Windows world is a runtime engine that will sit on every Windowsill. Sound familiar? The difference between Microsoft’s new Common Language Runtime (CRL) and the Java runtime is that CRL will embrace any mainstream language, including a wide variety of scripting languages.

Does this mean the end of Windows as we know it? Of course not. You don’t shoot cash cows. But it does re-swizzle the mix. While .NET is best served up with Win2K, the distributed objects can reside on any client that supports HTTP—which is just about anything. There’s also the likely possibility that one or more of the third-party developers at the PDC will build a CRL for other platforms—such as Solaris and Linux.

As previously mentioned, the base of .NET is the Common Language Runtime. The CLR layer loads and runs code written in any runtime-aware programming language that has been compiled into the Internal Language (IL) format. This includes Java; C++; C# (naturally), the new programming language Microsoft created especially for .NET; Perl; Visual Basic; and, amazingly, COBOL. On top of the CLR is a service framework with libraries that can be called from any of these languages, as well as access to network services.

Security will be controlled, as with all Win2K services, by access control lists (ACLs) associated with a security identifier (SID). Therefore a service application will have an identity associated with it that will control access to objects and resources with the Win2K network. Access to objects outside a particular security domain will be controlled by the other platform’s security mechanisms. The “applications” will be located through a directory, such as Active Directory, and delivered as granular and specialized black box functionality reached through URL addresses. At this level, applications, or assemblies, will communicate through HTTP and XML, the next great panacea on the scene.

XML Connection

XML is designed to be the standard meta-language used to describe and type data. It’s a generic and simple way to bring any text formatted data into a structured and typed format for use by dissimilar applications. Microsoft is using XML to create a Service Description Language (SDL), which it’ll use to expose its .NET services. This will be accomplished by creating XML tags that are advertised and accessible by any development language you prefer. Another new developing standard that will be important to .NET is Simple Object Access Protocol (SOAP). SOAP is essentially an envelope that provides a standard way to put XML across the wire.

Microsoft is exposing virtually every product it has through XML. In fact, it could have called the new initiative .XML and not lost too much in the translation. A cousin of HTML, XML uses the familiar syntax to describe the data instead of just formatting it. Using these XML tags is how you define and structure the data types. XML is rapidly being applied to different services from many vendors and various applications. One visible example is directory services with Directory Services Markup Language (DSML). By creating and agreeing to well-known tags related to directory services, you can open up interesting information in proprietary directory services to other proprietary directory services without caring how data is manipulated underneath.

Since everyone and her mother is supporting it, be prepared to see tons of XML in your future. This common denominator is pushing the layer of OSI functionality up the stack where it belongs, so the arguments don’t revolve around OS saturation. Dissimilar platform communication will be abstracted to HTTP and XML. The value-add will be in the various underlying platform services. Sun will promote Java and Microsoft will promote .NET, but the real competition will be under the covers—where it belongs. While our technical interest in competing systems will remain, our practical concerns will be focused on mapping data and applet functionality across these distributed computing systems rather than arguing over the ideal platform. Well, that discussion will never go away, but it will be minimized as, say, the disagreements over Token Ring and Ethernet have faded.

Another aspect of .NET to note is that Microsoft is making moves to build .NET components that it’ll rent from its servers across the Internet and plug into your system as an application component. Time will tell how the pricing model for software will shape up as the Internet continues to develop and permeate society.

Additional Information
  • To learn more about .NET, visit www.microsoft.com/net. Right now, the offerings consist of paperware.
  • You can read more about Directory Services Markup Language (DSML) at www.dsml.org.

.NET is a blatantly tacit acknowledgement that the Internet is now the application platform environment, and Windows is just a significant port in the storm. The trick for Microsoft is how to completely leverage the omnipresent Internet while holding onto and adding value to the Win2K platform. .NET is an interesting strategy to do just that. We won’t know until we see the real response from the developers, which will be with actual products built with forthcoming tools. Keep an eye on the horizon, because you’ll have to support it; but you don’t need to change your current plans. Those plans should still be focused on building a distributed available enterprise anyway. Regardless of who wins the next war, that’s certainly the way we’re headed—whether .NET or .NOT.

Featured