Friday, December 10, 2010

What happened to 'J2EE Application Servers on Desktops' ?

Here is an article I wrote a long time ago (11/2004 to be precise) about J2EE Application Servers on Desktops. It is 2010 and obviously my prediction hasn't come true. While I analyze what might have gone wrong with my prediction, here is the article for your perusal.

Nov, 2004
Summary
This article looks at several reasons that make it feasible and often desirable to use server-based software on desktops.

J2EE Application Servers on Desktops - Vijay Mariadassou

Last week, I was overjoyed to read about IBM's plans for Web-based desktop software. The software is part of IBM's Lotus Workplace strategy and is designed to be distributed and accessed through a Web server. The news reaffirmed my long-held belief that desktop applications will, in the not so distant future, be replaced by application server-based software. Server-based software has traditionally been confined to deployments on large enterprise servers. But, as I discuss below, there are several reasons that make it feasible and often desirable to use server-based software on desktops also.

Application Servers are feasible on Desktops

The primary reason for the absence of server-based software on desktops is the resource-intensive nature of server software, also known as middleware. Traditionally, middleware were designed and built to handle large numbers of transactions typical of large organizations with huge IT infrastructures. But, as Information Technology has permeated organizations of all sizes, middleware has evolved to fit into smaller infrastructure. Middleware based on J2EE and .Net are notable in this respect.

The latest breed of J2EE-based application servers like JBoss and Geronimo have highly modularized architectures based on the Java Management Extension (JMX) API that allow them to be deployed with variable sets of modules. Consequently, these servers may be deployed in resource-friendly configurations with minimal number of modules. For example, modules such as messaging (JMS) and transactions (JTS) may be removed without any adverse effects on the normal functioning of the application server. Such configurations make it possible for these servers to overcome any resource constraints.

Also, most modern application servers make use of some sort of resource caching to further optimize resource usage and performance.

Finally, the processing capacity of desktops has been steadily increasing. Thanks to Moore's Law, yesterday's servers are today's desktops. Modern desktops are now capable of handling the many CPU-intensive operations normally associated with application servers. And, the imminent arrival of 64-bit processors in the desktop market will go a long way in guaranteeing this capability.

Thus, it is my belief that application servers are feasible on desktops and concerns about their consumption of resources are unnecessary.

Application Servers are desirable on Desktops

Application server-based software is desirable for several reasons, which let us discuss below.But, before we go into the discussion, I wish to make a disclaimer. There will always be certain applications like games, music editing and animation software that are very sensitive to response times and will remain the domain of Desktop software. For such applications, Desktop software is preferable to middleware-based software because they are optimized for the operating system and the hardware hosting the software. For most other applications that are not as sensitive to response time, middleware-based software is desirable.

An important advantage of using middleware-based software on the desktop will be the reduced impact of viruses in the event of an attack. The devastation caused by the current wave of virus attacks and Internet worms is attributed primarily to the monoculture (read Windows) that exists on the desktop. The choices that both commercial as well as free J2EE application server vendors provide will bring diversity to the desktop and rid it of this monoculture.

In addition, middleware-based software are inherently more robust and secure than traditional Desktop software. Middleware vendors have invested millions of dollars in ensuring their middleware are scalable, reliable and secure for highly sensitive industries like the financial industry. And, software that operate within the secure environment of a middleware are likely to be less vulnerable to security attacks than those that operate out of this secure environment.

Another advantage of middleware based-software is the cost advantage it offers to the vendor and, consequently, to the user. Since there is no difference between a middleware platform deployed on a desktop and that deployed on a large Enterprise Server, vendors can move their existing Enterprise applications to the desktop at no extra cost. Vendors can also leverage the huge talent pool of J2EEdevelopers available in the Enterprise Application industry to build applications for the desktop. These developers do not have to be trained on the myriad Operating System APIs.

Finally, as users spend more time online, they will find it Web-based interfaces more natural to use than traditional desktop interfaces. A case in point is the growing popularity of services like Ofoto and Yahoo! Photos that are replacing the traditional photo albums on the desktop.

Over The Horizon

I see IBM’s recently announced plans as foreshadowing where we can expect to see the first breed of middleware-based desktop software emerging – the workplace. Workplace software is expected to benefit the most from the security and cost advantages of middleware-based software.


Ciao

No comments: