Migrating
from applications to services: A .Net technology primer
A
programming language called C#, a Meta language XML and
a range of servers add some meat to Microsoft .NET strategy
with XML occupying the center stage. An overview
Last
year Microsoft unveiled its .NET strategy, and true to
its marketing prowess, it was immediately regarded as
vaporware. Since then, it has added many components to
its .NET strategy, with XML taking center stage. Before
we dwell more into the technicalities of this framework,
lets understand the business logic behind the model. Today,
businesses are faced with continuous challenges prompted
by mergers and acquisitions, changing consumer trends,
and shifting demographics among others.
Against this backdrop .NET talks about a framework where
software is a Web service which operates through SOAP
(Simple Object Access Protocol) using XML for messaging
and storage. The clear advantage would be that, being
open standard, services and plug-able businesses would
not have to bother about integration issues and speed
of deployment.
It seems we developers can do just about anything with
Microsoft's .NET technical strategy. It can be used for
developing an internal system i.e. client-server system
for automating a business process (C#, VB.Net); for developing
a business site (Asp.NET); for integration between businesses
(Biztalk Server); for giving a Web interface to existing
businesses (Commerce Server 2000); for having mobile touch
points in new/existing sites (Mobile Information Server),
selling services through an exposed Web Services model.
WEB SERVICES
Microsoft's pitch about Web services is as follows: The
.NET XML Web services are an integrated set of building
block services, including Passport (for user authentication)
and services for file storage, user preference management,
calendar management, and many other functions. XML Web
services allow applications to share data and invoke capabilities
from other applications across any platform or operating
system.
Microsoft is now repackaging its Web-based applications,
its Passport Internet authentication technology and its
MSN Messenger client for instant messaging, as horizontal
Web services building blocks, under its Hailstorm initiative.
. NET Server Range
A total of eight server products (See Box), form the core
part of the .NET server group, as part of the larger .NET
development framework released by Microsoft last year.
Some products come from a family offering earlier known
as Back Office.
A detailed article elsewhere in this issue (page 40) talks
about the product features in detail and how .NET servers
fall into the range.
C#
Pronounced C Sharp, is a programming language derived
from C/C++. Contrary to popular notion, it is not a copy
of Java, but inspired by it in terms of design. On a high
level, we will point out when the syntactical structures
are the same, and spend time talking about when they are
different. There are a few syntactical "extras"
in C# that do not have equivalents in Java as I found
out.
Java has a couple of primitive data types: byte, char,
int, long, floats, double. Primitives are the basic building
blocks of Java; they are the smallest "unit."
What usually annoys most programmers is that, whereas
all objects in Java extend from java.lang.Object, primitives
do not extend from anything. This means that any class
that operates on objects will not work with primitives.
The primitives must be mapped into the object model in
order to use it. This is not the case with C#.
C# uses the .NET object/type system so that C# programs
may inter-communicate with other .NET languages without
having type confusion for example, the type int is an
alias to System.Int32 which in turn ultimately extends
from System.Object. This means that the primitive, or
simple types in C# function just like any other object.
It supports a fairly rich type system termed "Common
Language Specification (CLS)" ensuring interoperability
with components written using other CLS compliant languages
such as Visual Basic.NET. Since C# has been created for
the .NET platform it supports events and properties as
part of its language syntax, and it also supports creation
of Web services natively.
Because of its component structure it also provides migration
avenues from languages like Smalltalk.
Where do you want to go tomorrow?
While Microsoft is building a big picture of how and why
developers and corporations should migrate to the .NET
platform, it's still premature as the framework is still
evolving. While the Web Services front-end is open, and
soon to be standardized it's the enterprise level system
integration that is still getting locked into proprietary
technologies e.g. MSMQ Vs JMS, and not to forget ASP.NET.
The hyper EAI environment, which Microsoft paints, is
still infested with proprietary code lock-ins.
On the other hand, Sun with its newly released set of
APIs, is fast catching up on the Web Services front and
given its track record in the server side arena, it's
bound to catch up.
Microsoft recently entered the enterprise space and already
it has a very bankable offering: Biztalk Server 2000,
which leverages the power of XML. In the Indian context,
a disturbing trend that is being is noticed is that enterprises
are prototyping their application workflows using these
products and eventually using competing products for deployment.
It needs to be seen how Microsoft will make that transition
from a desktop company to an enterprise company. Market
concerns are with regard to server version support, as
enterprises cannot migrate their server products every
year. Also, under its C# initiative the CLR initiative
is not available for the non-windows environment although
the initiation has already taken place.
Till then, switching to Windows XP wouldn't be a bad choice.
(The author is a Strategist with Plexus
Technologies. The views expressed here are his own. Write
to him at bhavishsood@netscape.net)
XML
Web Services Foundation
Simple,
Open, Broad Industry Support
Publish,
Find, Use Services : UDDI
Service
Interactions : SOAP
Universal Data Format : XML
Ubiquitous
Communications : Internet
<<
>>