The Future of Client-Server Computing

Since client / server application architecture has become a mainstay in corporate computing, there have been many ideas on what is the best architecture to increase performance and the user experience. Some of these ideas include thin client and fat client technologies and web services. While each of these methods have been successful for many companies and strides will continue to be made on each technology, they are not the future of client / server computing.
For many, the mainframe was the beginning of corporate computing. Dumb terminals where used to let the user interact with the processing power of the central mainframe. All the work was done on the mainframe. The upside was that the end user terminals where cheap, didn’t store data, and could be easily replaced. The downside was that the backend mainframe was expensive, complicated to manage, and all the data resided in one place. Then the client / server bandwagon took off. The availability of fast cheap workstations allowed for a portion of the processing power to be moved to the local workstation. In the client / server computing architecture the workstation and server are separate and connected by a network. Client software sends requests to one or more servers and data from the server is passed back to the client. In this model, the computing power was spread between the end user location and the centralized servers. The client / server architecture has allowed IT administrators and support staff to choose how applications are deployed to maximize performance and functionality. Decisions on client / server technologies are made based on criteria such as computing power of desktops, computing power of servers, network bandwidth and throughput, application compatibility, support ability for desktops, supportability of servers, and overall costs. The Current Client / Server Situation Through the advent of client / server technologies such as thin client, fat client, and web services, companies now have many options for determining where the computing resources of an application take place. Bottlenecks in the overall IT infrastructure can be overcome by use of these technologies. When the network is the bottleneck, thin clients such as citrix or remote desktop can be used to minimize network traffic to the client. When client desktops have large computing capacities, fat client technology can be used to increase application performance. When desktop software compatibility issues arise, or the management of desktop resources is strained, web services can be used to ease the burden. In all of these current client / server technologies, computing resources are statically assigned to either on the client or the server but not both. This becomes an either or situation, where tradeoffs are made. Issues arise when not all clients or servers have the same computing power. For example, when a company has both old and new desktop clients, users with older clients are penalized in fat client implementations and users with new fast clients are penalized in a thin client implementation. Application availability is also a concern with current client / server technologies. For a user, the application is unavailable when any of the client, network, or server components is not functioning. New developments are being made to address the issue of availability. Google, Microsoft, Adobe and others are deploying application frameworks (Google – Google Gears, Adobe – Apollo, Microsoft –Silverlight) that allow an application to function locally when the network or server is unavailable. Website owners such as Ebay are beginning to use these new technologies to allow clients to use their sites when not connected to a network. The Future of Client / Server Computing The future of client / server computing is to dynamically determine and assign where the computing resources for an application will reside. The holy grail of client / server computing will occur when an application will be able to dynamically determine whether to run in like a thin client, fat client, or web service based on server performance and load, client desktop, performance and load, and network throughput. This exact same future application package would process transactions differently on fast and slow desktops, when server load is high, and when the network is not performing adequately. Imagine the benefits to an IT support staff and administrators when they can manage one application install that functions and performs adequately for both new and 5 year old hardware. The days of having to deploy a separate thin client architecture for some users and fat client technologies for others to access the same application will be gone. Users of laptops will also be able to work with the same application while offline. IT organizations will be able to increase the usable life of desktop and server hardware, gain operational efficiencies that do not exist today. An analogy of this future architecture can be made with grid computing. Grid computing allows many small servers to act as one large server and share load between them. Computing resources are allocated to idle systems when they are needed. Currently grid computing works only for the backend server portion of the client / server model. In the future of client / server, the end user’s desktop or laptop will essentially join the grid and serve as one instance of the overall computing paradigm. While this musing is totally at a conceptual level, I can envision an initial implementation consisting of a configuration slidebar on the client that you can choose from “client” to “server” or levels in between to determine where the processing will take place. Eventually applications will be smart enough to dynamically adjust the processing location based on desktop load, server load, and network performance. What do you think?
Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Netscape
  • Reddit
  • StumbleUpon
  • Technorati

Leave a Reply