Smart Clients - Part 1/3

Published 01 April 06 01:30 PM | makif 

About: This post is the first in a series of three posts about smart clients. The series will provide an overview of the smart client technology; compare it with thick and thin clients, explain the various manifestations of smart clients and describe a roadmap and series of steps that an organization can undertake to implement smart client solutions.

 

Part 2: http://blogs.msdn.com/mohammadakif/archive/2006/04/21/580741.aspx

Part 3: http://blogs.msdn.com/mohammadakif/archive/2006/05/04/590176.aspx

 

Hello,

 

Like every other word in the IT industry, the term ‘smart client’ is overloaded and means many different things to different organizations. In the current series of posts I will try to define the various manifestations of smart clients, compare it with other ways of developing and deploying applications and discuss ideas and resources about when and how to utilize smart clients

 

What are smart clients? How do they differ from thick and thin clients?

 

Keeping the academic definition aside, in my opinion the foundational concept of smart client lies in the way they are deployed and managed. The thick clients, also called the fat and rich clients, typically have the following attributes compared to the thin clients (and yes you can argue about each one of them and yes it does depend on the application and yes it does depend on the architecture and design)

 

1)      Richer user interface - Plus

2)      Superior responsiveness - Plus

3)      Can work offline – Plus

4)      Leverages local hardware resources – Plus or minus

5)      Lesser reach – Minus

6)      Tough to deploy – Minus

7)      Even tougher to update – Big Minus

 

The thin clients, also called the web clients have the following attributes compared to the thick clients

 

1)      Broader reach - Plus

2)      Easier to update – Big Plus

3)      Easier to deploy (do not require deployment) – Plus

4)      Easier to manage – Plus

5)      100% availability of Network – Minus

6)      Bandwidth requirements – Minus

7)      Limited user interface – Minus

 

There are other pluses and minuses of both approaches e.g. the complexity of coding thin clients in many cases can be greater than the thick client especially if session and state management is important.

 

Smart clients combine the plus of both approaches while avoiding the negatives, smart clients typically have the following attributes

 

1)      Rich user interface

2)      Responsive

3)      Offline capabilities

4)      Easy to update

5)      Easy to deploy

6)      Easy to manage

 

Why should I consider using smart clients?

 

That is an easy question to answer, thin clients are a good solution for many scenarios, especially where reach is critical, however, they are often unable to offer a level of user experience that can be done through rich clients, they are also unable to operate ‘offline’ which may be critical because of business or legal reasons. Rich clients can be much more feature rich but deploying and updating them can be a nightmare, you should consider smart clients if you are looking for a happy medium between the two approaches.

 

How do smart clients works?

 

For those of you, like myself, who were part of the J2EE side of the IT world, Java Applets and Java Web Start technologies tried the same approach that is taken by the newer smart client offerings; however, unfortunately they could not deliver completely on the idea because of a variety of factors. Microsoft also offered some technologies in the past which had varying levels of success; I think that the key technology today that has truly made smart clients a very viable and real choice for a number of scenarios is called ‘Click Once’.  Please note that ClickOnce is not the only technology in this area, e.g. smart tags and smart documents are also important smart client technologies that I will cover in my future posts, however, today I do want to focus on ClickOnce

 

What is ClickOnce

 

ClickOnce is a .NET 2.0 technology that greatly reduces the pains of deploying and updating rich clients. A ClickOnce deployment is done through two XML file called the deployment manifest and application manifest. The deployment manifest, authored by deployment administrators, describes the current version, publisher identity and update behavior. The application manifest, authored by application developers, describes the application assemblies, dependent libraries and application permissions requirements.

 

ClickOnce allows for the following two basic models

 

  1. Launched applications
  2. Installed applications

 

Launched applications do not get installed on the client desktop, they are of course always updated as there are no client side files, whereas this model is applicable to certain types of scenarios, it does mean a relatively longer start time as the application gets launched.

 

Installed applications maybe installed the first time from a variety of media (Web, UNC, CD ROM) and offers a rich choice set in terms of updates. In addition, they can also be integrated with the start menu and with the Add/Remove programs. In terms of the updates some of the interesting choices that ClickOnce offers are as follows:

 

  1. User Consent – If updates are found, the application can ask the user whether they want to accept the updates; If the user agrees, then only the files and assemblies that have been modified are updated, it can also be setup so that the updates occur the next time that the applications are run. This ‘pull’ model is one of the many choices available, an alternative ‘push’ model is also available where you can setup a minimum required version or setup the version that every user must use.
  2. Update Checking – It allows for setting various options for how/when the applications check for updates
  3. Secure Execution – It allows for running the application within various security zones that restrict what the application can do. An associated visual studio technology that can help you determine the application requirements is the ‘permission calculator’ that can tell you the minimum permissions required for your applications, you can also setup so that the application requests for more permissions from the users when required. Furthermore, XML DSig are used to sign ClickOnce manifests, and it requires a publisher key to deploy the updates to ensure that no malicious updates can be transmitted.
  4. Early adopters – It is possible to program using ClickOnce so that you only distribute updates to a selected group of people whereas everyone else continues to use the previous version

 

There are many other options in ClickOnce including adding an ‘update now’ in the application menu, choosing between synchronous and asynchronous updating, grouping files for updates and much more. You can find out more about ClickOnce by visiting

 

http://msdn.microsoft.com/smartclient/understanding/windowsforms/2.0/features/clickonce.aspx

 

and

 

http://www.windowsforms.net/FAQs/default.aspx?PageID=1&CategoryID=24&tabindex=2

 

Conclusion

 

Smart client is a development and deployment approach that allows you to combine the best of features from thin and thick clients. There are a number of key technologies and concepts in the area of smart clients, I provided an overview of ClickOnce technology which takes a lot of pains away from deploying and managing applications, in the next two parts I will explain some of the other technologies and concepts, discuss how organizations can start adopting smart client technologies and provide additional resources.

 

Best regards,

Mohammad

 

Part 2: http://blogs.msdn.com/mohammadakif/archive/2006/04/21/580741.aspx

Part 3: http://blogs.msdn.com/mohammadakif/archive/2006/05/04/590176.aspx

Filed under:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# No Spin Architecture said on April 21, 2006 12:32 PM:
About: This is the second in a series of three posts about smart clients. The series will provide an...
# Karuna said on April 24, 2006 4:58 AM:
This is very useful material that distinguish between thin and thick client. I want to know more about Smart client.........
# No Spin Architecture said on May 4, 2006 4:23 PM:
About: This is the third and last in a series of three posts about smart clients. The series provides...

Leave a Comment

(required) 
(optional)
(required) 
Page view tracker