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 was 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 is 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 allows them to be deployed with variable sets of modules. Consequently, these servers may be deployed in resource-friendly configurations with a 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 commercials 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 is inherently more robust and secure than traditional Desktop software. Middleware vendors have invested millions of dollars in ensuring their middleware is scalable, reliable, and secure for highly sensitive industries like the financial industry. And, software that operates within the secure environment of middleware is 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 J2EE developers 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.
About the Author:
Vijay Mariadassou completed his Master’s degree program at San Francisco State University in 2004. During the program, he has had the opportunity to work at Sun Microsystems as an intern and gain experience in developing Web Services for Enterprise Application Integration. He has also been mentored on Six Sigma processes. He was unwilling to be just another of 4000 employees, and turned down an offer from a software giant and took up a position at a startup. Vijay is now an Enterprise Solutions Architect, writing applications on the J2EE platform.
Vijay Mariadassou can be reached at [email protected]