Here's a use case:
I have a desktop application (built using Eclipse RCP) which on start, pops open a dialog box with 'UserName' and 'Password' fields in it. Once the end user, inputs his UserName and Password, a server is contacted (a spring remote-servlet, with the client side being a spring httpclient: similar to the approaches here.), and authentication is performed on the server side.
A few questions related to the above mentioned scenario:
Please let me know your design/architectural comments/suggestions. Appreciate your help.
The thick client application communicates directly with the server in a two-tier architecture. This model consists of the presentation tier and the data tier. The end user has direct access to the data tier, which makes it a less secure network architecture compared to the three-tier model.
Essentially, any device that can function completely independently of a remote server is a thick client. Everyday examples of thick clients include desktop PCs or laptops running Windows or MacOS.
Also referred to as desktop, fat, or heavy client, thick clients are systems that connect to servers even without a network. Put simply, a thick client does not rely on server applications since it can process, store and manage data, as well as perform different tasks independently.
The simple answer is: Don't let the authentication service go down!
Make sure your authentication service is running in a clustered, load balanced environment behind a virtual IP. That way, you can avoid downtime in the event that one of the individual servers goes down. This goes for not only the service itself, but any data sources that it relies on.
Obviously no system is completely fail-safe, but you should be able to get your uptime close enough to 100% that there is no need to build a "limited" mode for the desktop client.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With