An Introduction to Smart Clients

Back in the day (1960-1980), there were no personal computers – only mainframes (server) and dumb terminals (workstation).  The applications were completely dependent on the server for the interface, business logic behind the interface, and the database.  This was great for developers and network administrators in that a change to the program affected all users instantly without requiring any new software to be installed.  At the same time, the interface was limited relying on the server for everything created unneeded high demand.

The advent of the Personal Computer in the early 1980’s changed this.  The PC put the interface on the workstation, the database on the server, and the business rules anywhere in between.  Although this allowed for a much richer and more productive experience for the end user, it was a nightmare developers and networking administrators, who had to make sure all workstations had the latest software installed, were configured properly, etc.

In the early-1990’s, the World Wide Web was introduced and, within a few years, brought many information systems back to the original, mainframe/dumb terminal model.  With only a standard web browser, a user may access information systems without ever having to worry about installing software or ensuring the correct version. Unfortunately, this brings back the same limitation as the original model.  Although HTML, CSS, and JavaScript are constantly improving, the interface capability is still very limited.  Additionally, the web server must load from disk, process, and send the entire page to the client every time – even if a minor change is made to the page.

Today, with Smart Client technology, users and developers get the best of both worlds.  A Smart Client is an application that may be run from the Internet, an Intranet, a network share drive, or on the workstation itself.  It does not have the interface limitations of a webpage and requires no installation or worrying about having the current version.

A Smart Client is like any other Windows application, with two key enhancements: remoting and security.  Remoting gives the application the ability to easily load the components it needs to run from a remote location.  Instead of storing all of the components, such as the interface, business logic, etc, within the application, the application is able to use the Internet to download these components as needed, assuring that the application always has the latest version of the component.

Just as a web application is restricted from performing certain actions, such as browsing for files on the client’s hard drive, a Smart Client application is equally restricted.  Unless the user explicitly allows it, the Smart Client application is unable to access any information about the machine, change any of the settings, or even access a remote server other than the server it was downloaded from. 

These security features allow Smart Client applications from Internet Explorer without any dangerous-sounding warning messages popping up, discouraging users from using the application.  Additionally, Smart Client applications are able to communicate with Internet Explorer, and visa versa, with ease.  For example, a Smart Client application could be run from a page, used to resize and crop photographs, send the photographs to the server, and notify the page in Internet Explorer that the photographs are uploaded, sending the user to a new page.

By using this technology, one can develop better information systems in far less than before. Smart Client technology provides an interface that’s easier to develop and more productive for the end user.  While not an appropriate solution for all cases, Smart Clients are an ideal solution for intranet and other internal applications.

No Comments