From the Bridge of the Enterprise
The Reports of Client/Server's Death are Greatly ExaggeratedA top executive for a major computer manufacturer recently stated that client/server computing is dead or dying and is being replaced by Java. I'm astounded at the statements that some people make, especially those who've risen to such a level of prominence within our industry.
There are several problems with that statement. First, Java is not a computing methodology. It is ultimately, a programming language -- just like C and RPG are programming languages. Second, Java runs on a client/server model. Based on that, how can the statement that client/server is dead in favor of Java make any sense?
The client/server model distributes some level of processing across a network, and potentially, will distribute data across the network as well. Using Java, a "server" deploys an application or portion of an application (called an applet) to a "client" machine. If it's only a portion being deployed, the balance of the application (called a servlet) likely resides on yet another server.
Once the application or applet is distributed via a Java-supported browser, it runs on a local client and interacts with the servlet running on a server. That server is in communication with a database that likely resides on yet another server.
What part of this model is NOT client/server?
The client/server model of computing has been around for many years and is likely to be around for many more. It's been called many things including distributed processing. The use of Java does many things to improve the client/server, distributed model. Maybe that's what the gentleman was referring to.
First, the idea behind Java's write once and run anywhere is a model in application development efficiency. If a developer doesn't have to be concerned with the platform being written to and rewriting the same application to support multiple platforms, that developer can focus more on just the content of the application and likely turn out a better, more efficient product.
Second, Java simplifies two problems that have plagued the client/server model since its inception:
object management and
version control.Let's say that you've added some new functionality to an application and you have 500 "fat" client machines that run it. In this model, you'll need to distribute the updated application to all 500 of the clients and ensure that it's installed properly on each. In a Java model, you may install the application on one or several servers. When a user wants to run that application, at logon the new version can be properly downloaded and installed before it executes.
These two features may not sound like much, but believe me, to a network administrator they're huge. Object management is as much of a concern, if not more so, than any local or wide area network issue that I've seen to date.
Client/server concepts are strong, but the practical application of those concepts must be continually evaluated and improved. How client/server is managed, the tools that are used and the languages deployed will continue to evolve. While Java may be a improvement to this method of computing, it's certainly not a replacement.
Remember, the Web is just a mega-network that can be used in a client/server paradigm the same way any other network can. Whether I use a browser as my interface or a GUI written with Visual C++, I'm still using a client based interface.
No, client/server is not dead. It's simply evolving the way that anything in our fast paced industry does. I only hope that top-level industry executives mark their words and speak responsibly before making such bold, blanket, inaccurate statements.