:Guest Column: Will Open Source Lose the Battle for the Web?
Guest Column: Will Open Source Lose the Battle for the Web? Aug 14, 2001, 06 :56 UTC (302 Talkback[s]) (120577 reads) (Other stories by Ganesh Prasad)
It's the applications, stupid!
Synopsis: This
article argues that the shift towards web services has reduced
the attractiveness of the current generation of Open Source web
products. The only solution is for Open Source to adopt a web
services architecture, and fast. Fortunately, there is one at
hand, and it's not dotGNU! Can the Open Sourcers wake up
and save the world before it is too late? Read on to find out.
Straws in the wind - Why did Apache slip?
It may be
true that one swallow doesn't make a summer. But equally,
sometimes, the first swallow doesn't appear until summer is well
under way. The 5% gain in Microsoft's webserver market share at
the expense of Apache is distressing, but if anything,
overdue. Apache is like the cartoon character that has
walked off the edge of a cliff a while ago, and has just looked
down.
This may seem a harsh and unfair pronouncement, but we live
in a technological environment where we need to keep running just
to stay in the same place. So it's nothing short of miraculous
that Apache managed to retain its market share for about two
years while essentially treading water. Let's face it, in spite
of a few point releases, Apache hasn't introduced any significant
user features in two years. (For example, has Apache even managed
to deliver a standard GUI configuration tool in all this time?)
Many Open Source supporters greeted the news of the Apache
setback with derisive disbelief ("Why would anyone in their right
mind switch from Unix/Apache to Windows/IIS?"), but they miss the
point. Those users who switched from Apache to IIS did so not for
the superior HTTP-serving capabilities, if any, of IIS. That's
commodity stuff, and Apache does it well enough for them not to
look further. They switched because they had begun to look beyond
web servers to web services. Right under the
collective nose of the Open Source community, the battleground
has shifted. People need vanilla webservers today like they need
Rolodexes in an age of digital organisers.
IIS, by contrast, isn't just a webserver anymore. It's being
positioned as the vanguard of the .NET server platform. The
Microsoft marketing machine is convincing decision makers that
web services are the way to go, and that .NET is the leading web
services delivery platform. Our low-cost, standard, commodity
products were the Maginot line that Microsoft could not cross,
but alas, how easily they have walked around it. They have turned
the "good enough" argument against us. IIS on .NET is a web
services delivery platform, but it's also a "good enough"
webserver, if that's all the customer wants today. Using IIS will
satisfy today's needs as well as tomorrow's!
What would a user rather have -- a free server that does
plain webserving, or a moderately priced one that does webserving
plus e-commerce? Faced with such an adversary, does a
plain webserver stand a chance, much less one that is virtually
stagnant? True, the dramatic drop in Apache's market share comes
from just two large ISPs, but will they be the only ones to
switch?
Web services - Where we need to go
.NET may be largely
vapourware today, but we in Open Source have been amusing
ourselves with our own, -- Mozilla 1.0 on the client and Apache
2.0 on the server. How wonderful it's all going to be! Mozilla
supports XUL and a cross-platform component object model!
Oooh! It's more than a browser, it's an application
platform! Aaah! And Apache 2.0 is both multi-process and
multi-threaded, it has a new API for modules, and is so much more
stable on Windows! Swoon!
We've been so carried away by our own hype that we fail to
see that's not the way the web is going. Even Apache 2.0 (when it
finally deigns to appear) won't offer any really revolutionary
user benefits. It's just a better architecture for a vanilla
webserver. What we need today is no longer a webserver, but a
web services delivery platform. Sorry, but Apache doesn't cut it
anymore where newer web applications are being built.
"Web services" is a simple concept, and its basic
technological underpinnings aren't rocket science, either. This
is all about applications advertising their own capabilities,
searching for other applications on the web and invoking their
services without prior design or negotiation. Reduced to the
technological basics, it's just XML over HTTP. And the relevant
specifications aren't closed either. They're Internet
standards. This is classic Open Source territory, an invitation
to commoditisation if there ever was one. So why hasn't Open
Source produced a web services platform? Why are we still
tweaking yesterday's product to make it a wee bit better? This is
the syndrome of engineers putting features into a product with no
input from marketing. It's a great technical product, guys, but
the market doesn't want this anymore.
There will be Apache defenders who will bristle at the
suggestion that it is a vanilla webserver. Look at PHP, they will
say. PHP actually has greater market share than ASP. You can
build fantastic web applications with PHP at a fraction of the
cost of any commercial alternatives, including Microsoft.
That's great, but when will PHP grow to become something more
than a web scripting language? Where is the PHP enterprise
component architecture? What about clustering and failover? Where
are the WSDL and UDDI implementations? Don't show me bits and
pieces here and there. Show me a framework. Show me a reference
implementation. Show me a friendly interface. Not there yet? So
PHP has been left in the dust as well, while ASP is morphing into
ASP.NET, the browser delivery front-end of the Microsoft web
services platform.
What we're witnessing is Microsoft doing an end-run around
Open Source in the web applications space.
The other power
All is not doom and gloom, however.
While Microsoft has been nimbly outflanking Open Source on the
Western front, another power has been successfully engaging them
on the Eastern front. Far from being vapourware, this is a real
Enterprise architecture, a set of well-designed interfaces, and
plenty of stable implementations to actually provide a viable
alternative to .NET. That's the Java 2 Enterprise Edition, or
J2EE. The trouble is, the way the big J2EE vendors are repeating
history is textbook Santayana. Their greed for high margins is
causing them to abdicate the low end of web services to Microsoft
and .NET. Big mistake. We remember how high-margin Unix
workstations ultimately fared against "low-end" PCs.
It needn't be this way. J2EE doesn't have to be an expensive
alternative at all. There is an excellent Open Source J2EE
server called JBoss, which provides a solid foundation on which
to base a platform. Most Open Source enterprise components such
as databases, directory services, message queues, mailservers and
the like already support J2EE interfaces. What we need to do now
is add Open Source implementations of web services standards
(WSDL, UDDI, ebXML) and combine them all with a nice user
interface (can anyone say "drag and drop"?). In fact, some of
these standards are already implemented as Open Source
(e.g. pUDDIng). That would be the Open Source answer to
.NET.
Java has mindshare, maturity and corporate respectability. A
Java-based web services framework will completely turn around
Open Source's fortunes. From an architecture-less motley
collection of software based on mid-90s technology, the Open
Source web services framework will emerge as a proven,
comprehensive solution and a compelling direction for
forward-looking organisations. So what is holding us back?
The mote in their eye, and the beam in ours
My dear
fellow Open Source supporters, I share your frustration and
exasperation at the blind spot that most people seem to have
regarding Open Source. I share your pain when they simply don't
get it. However, forgive me for pointing out your own
football-sized blind spot about Java. I'm afraid you don't get it
either.
"Java is not free", the refrain goes. That's right, it
isn't. But does that mean we shouldn't touch it with a barge
pole? Does it justify all the nonsense about dotGNU and Mono, the
Open Source implementations of .NET? Of all the architecture
ideas in this world, did we have to go and embrace .NET?
To our eternal mortification, we are again reduced to chasing
tail lights. A proud Unix community is letting a desktop
application company teach it how to build distributed enterprise
applications. The shame of it! In our eagerness to snub Sun, we
are legitimising Microsoft and belittling ourselves.
We can quibble about whether dotGNU will help or hurt
Microsoft. We can argue about whether it will help or hurt Open
Source. But there's no denying that it will hurt J2EE by
strengthening the appeal of an alternative architecture and
technology. It's like allied bombers suddenly starting to blitz
Moscow instead of Berlin. Wrong city, or at the very least,
awful timing.
"Your points are valid, Mr. Prasad, but you need to be
lecturing Sun, not us." Right. Our house is burning, but we're
not going to do a thing because it's the fireman's job to put it
out. Don't look at us.
"Sun is a bunch of control freaks just like Microsoft. Why
exchange one tyrant for another?" Because Sun simply doesn't have
the exclusive power over Java that Microsoft has over any of
their technologies. The community participation in Java is too
far advanced for Sun to wrest back control now. Once we build
Open Source implementations of Java virtual machines, compilers
and libraries (we're almost there), we don't need Sun at
all. They can't change the Java spec without breaking their own
(and their partners') products. If we can implement J2EE with
half the zeal some of us are trying to implement dotGNU, we'd be
far better off.
"But Java is slow, as everyone knows". Can we do better than
regurgitate second-hand comments dating from 1995? Because, by
the same token, Linux is a command-line environment, as everyone
knows. Tried server-side Java lately? That's a good example of
what "Enterprise-class" means, with all its requirements for
robustness, scalability and performance.
Now this is going to be controversial and will not win me
many friends, but I think the Open Source community has to get
real about a couple of things. There is nothing in the Open
Source stables to match J2EE (No, CORBA is a poor alternative).
Linux and Open Source alone cannot beat Microsoft and make the
world safe for open standards. Open Source needs Java's help to
beat off Microsoft. We need to swallow our pride, ideology, or
whatever else is standing in the way of our embracing Java. If
there is one thing I'm asking of my readers, it is a commitment
to be at least open-minded about Java.
Pragmatism, or One thing at a time
Churchill and
Roosevelt knew they had to ally with Stalin to beat Hitler. It
took another forty years to liberate Stalin's empire, but
ultimately both battles were won. If they had been pigheaded
about Stalin in the first place, we would all be living in the
Third Reich right now.
Yes, we need to fight to make Java free, but that's
tomorrow's battle. Today, the Anschluß of Austria
has occurred, and it's a wake-up call. In a few years from now,
it will either be a Java-Linux world, or a .NET world. The choice
is ours.
www.jboss.org
The website of the JBoss Open Source application server
www.theserverside.com
A (mainly pro-J2EE) site for builders of server-side web applications
www.webservices.org
A good portal site and community forum for those interested in web
services
About the author
Ganesh Prasad is a Sun Certified Java
Programmer, a web architect by profession and a Linux user by
choice. He is a devout follower of the pro-humanity Java-Linux
religion. When depressed, he tries to cheer himself up by
reading his own optimistic article of 2000, "The
coming Java-Linux duopoly".
Copyright
(c)2001Ganesh Prasad. Permission is granted to copy, distribute
and/or modify this document under the terms of the GNU Free
Documentation License, Version 1.1 or any later version published
by the Free Software Foundation; with no Invariant Sections, no
Front-Cover Texts and no Back-Cover Texts. A copy of the license
is available at http://www.gnu.org/copyleft/fdl.html.