The term "thick client" as opposed to thin client describes a graphical client application which runs on the user's operating system. A thick client usually has greater processing capacity and may have a sophisticated graphic interface. Nevertheless, this requires development effort and tends to be a mixture of presentation (graphic interface) and application logic (processing power).
This type of application is usually installed on the user's operating system, and a new version must be installed when upgrading. To resolve this, programmers of thick applications usually build in a functionality which runs on application start-up and checks a remote server to see if a newer version is available, if so, it prompts the user to download and install the upgrade.