.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.
About the Author
Michael Chacon, MCSE, MCT, is a directory services architect, focusing on the business and technical issues surrounding identity management in the enterprise. He is the co-author of new book coming from Sybex Publishing that covers the MCSA's 70-218 exam.