Section 10.4. Fat Clients


10.4. Fat Clients

The term "fat client" is a common synonym for an application type that provides a lot of its core processes on the client machine and usually relies on a single backend system, which can be a relational database or a host system that provides some procedural capabilities.

Fat clients have a bad reputation in IT departments mainly because they created real challenges for deployment and maintenance. Because they aggregate a lot of computational logic, they require frequent rollouts of the whole application package throughout the enterprise. On the other hand, fat client applications have enjoyed a good reputation among many end users. They provide swift operations compared to many poorly built Web applications that have been created to replace them. They also provide complex interaction models and advanced graphical capabilities that are very hard to re-create using Web interfaces. Therefore, in many usage scenarios, fat clients are regarded as more user-friendly.

Although fat client applications need a considerable amount of deployment and maintenance effort, they also help to save bandwidth and increase response times compared to typical Web applications. Another strong advantage of fat clients is that they offer easy access to local hardware devices such as printers and smart card readers, which makes them particularly well suited for use in a controlled environment with medium to long release cycles.

You can use services together with fat clients to transform fat clients to rich clients, in which the client application directly accesses different services and keeps track of any necessary state information. This works in much the same way as for the Web application layer in Section 10.1. The core advantage is that the rich client application can be completely decoupled from the backend implementation. It thus remains robust in the face of alteration in the data model and ultimately against a possible change in the overall backend infrastructure, such as the gradual replacement of host systems with integrated services.

Build Rich Clients, Not Fat Clients

Usage of thin clients does not necessarily mean reduced functionality. Services can enable you to build rich clients rather than fat clients.


Fat clients can differ in their authentication schemes. Whereas a Web application user needs to authenticate itself to the servere.g. using username and passwordfat clients might be trusted clients or might be authenticated using a certificate. Where backend systems do not support this type of authentication, the service might present some default username and password as a proxy user. When using a proxy user, you must take care to minimize the resultant security risk (see Chapter 9). In particular, the proxy user credential should not be stored in clear text; they must be configurable, and the allowed origins of proxy user request should be restricted to a well-defined set of network addresses.

Proxy Users Protect Backend Systems

Proxy users can isolate backend systems from physical users. Because this also involves a security risk, you must take extra care to prevent the misuse of proxy users.


In the check-in example, rich clients include check-in kiosks and workstations of check-in clerks. These rich clients access printers for boarding passes and baggage tags and are usually equipped with card readers for electronic tickets, credit cards, or frequent traveler cards. Advanced check-in kiosks might also connect to baggage scales and conveyors. They provide interfaces that make it as easy as possible to navigate across the seat map of the airplane and to choose seats for check-in. Yet they do not perform the actual check-in process and do not directly manipulate data. Instead, they use a service layer that is usually identical to the one used by Web applications. Figure 10-10 shows a typical rich client setup.

Figure 10-10. Example of a fat client containing a smart card reader, luggage scale, luggage tag printer, and boarding pass printer. The fat client uses standard services that in turn rely on relational databases and host systems.




    Enterprise SOA. Service-Oriented Architecture Best Practices
    Enterprise SOA: Service-Oriented Architecture Best Practices
    ISBN: 0131465759
    EAN: 2147483647
    Year: 2003
    Pages: 142

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net