Sheriff adopts a client-server architecture:
Server. This is the Sheriff DLL that provides licensing services through its API functions.
Registry. Sheriff utilises the Windows Registry to keep track of various licences and the location of licence databases on the user's machine.
Sheriff Licence Database. This maintains information such as licence policy, licence usage and user's activities.
When an application executes it provides Sheriff with information such as the Product ID and user name, which Sheriff validates against its licence database. If validation is successful the application runs normally, if unsuccessful an application can either exit or continue running in 'demo' mode.
- Client. This is the application you wish to protect. Client interacts with the licence server through API functions.
While an application is running it periodically communicates with Sheriff to ensure the currency of the database; this is often referred to as a 'heartbeating'. Before an application exits it notifies Sheriff to free-up its resources, making them available for the next user. Should an application terminate abnormally Sheriff automatically reclaims the licence.