You are on page 1of 15

Software Architecture

Rich Client (aka Fat Client)

Business logic runs on a user workstation If utilizing a shared database or other services, either

Distributed connectivity (i.e. 2-tier model), or Cache data until it can be synched.

Examples of Rich Client Applications

Java Applications, Applets, or .NET applications running on a local workstation. It may or may not connect to a remote database. Audio Recording Software Graphics and movie tools USB interfaces Notepad

Thin Client

User workstation for presentation only; business logic runs on a central server Client must have network connectivity to use the application. Caching is generally not an option.

Examples of Thin Client Applications

A web browser. A thin-client layer such as Citrix or Windows Terminal Server that connects to another computer where applications are running. n-tiered architectures are common with thin client applications.

Which is better?
Fat Client vs. Thin Client

Requirements are needed


Before deciding on what type of architecture to use for a system, it is essential to first consider the purpose of the system and how it will be used.

Will there be a central database or other central services? Consider database connection pooling. Will users need to perform functions while disconnected from the network? Will any functions require specialized hardware? Will the task be memory or processor intensive (such as a game)? Are your users spread out geographically? What type of machines do your users have?

Thin Client (n-tier) Advantages


Deployment is easier (nothing beyond a browser) Less processing on client means less hardware requirements for workstations Servers are easier to secure than workstations Application (function) level security can be used instead of data-level security. Connection pooling across multiple users System updates can be changed in one place on the server. Implementation is hidden from the client. Specific development, test, and production environments Middle-tier load balancing helps performance and server availability Reuse of business logic can be done since it is centralized.

Non-Web-Based Thin Clients (Thin Fat Clients)


Citrix or Windows Terminal Server The benefit is to allow slow workstations to
access rich client applications running on a central server. The drawback is that there is a heavy reliance on graphics, and therefore much harder on the network than a web-based application as well as increased latency

Web Clients and Web Servers

A web server hosts services for clients. Each service has

INPUTS: Items passed to the server for processing. OUTPUT: The results of the server processes: a web page or SOAP response
Amazon: Type in your credit card and their server takes that information and bills your credit card company. Server-side image maps. The input is simply two coordinates. The map is redrawn by the server having those coordinates as the center and sent to the client for display. Simple JSP application. Take your name and say hello.

Examples:

AJAX Asynchronous Javascript And XML

Utilizes several tools that are available to a web browser to create an experience equivalent to a rich client No browser refresh. Instead,

a JavaScript in the browser makes a call to the web server. The web server returns the appropriate data in a textbased format like XML or JSON The JavaScript handles the arrival of the response and refreshes only the parts of the screen that have changed utilizing DHTML and CSS.

Thin Web Clients Arent Always the Answer


Ability to do work offline (filling out expense reports on the airplane). Not all web browsers work exactly the same. A high-speed connection to the server is often needed (though can be designed around). You save money on workstations but spend more on servers; all the processing that could be distributed to multiple workstations is now done on a central server, so you better get a good one.

Bridging the Gap


Applications using both thin & rich client Use of tools like Java Applets can allow
processing compromise. Code updates are still simple. New tools such as Microsoft Vista are being designed to allow developers to write code which is aware of its environment
If the device is disconnected, it will cache data If it is connected, it will connect to the database If it is a handheld device, it will scale back the graphics

Building JSPs
http://java.sun.com/developer/technicalArticles/javaserverpa ges/JSP20

http://www.sitepoint.com/print/parts-1-8-taggedbagged

Questions

You might also like