The Licenser Kit
The Licenser Kit(TM), also known as the CSLicensing library was originally developed for use in TIFFany by Caffeine Software in 1993 and was widely accepted by the NEXTSTEP development community. It was extended to support OpenStep on Windows and OpenStep on SOLARIS by Stone Design Corp. for use in Create®, Mac OS X's first application. The Library supports:
Hassle-free and efficient for end user, but growth oriented for ISV:
* Floating licenses: Lets everyone on network use app, but only up to number of allowed users.
* Multiple licenses: Sites can add licenses, number of users is cumulative.
* Expiring (Demo) licenses: Lets potential clients try your app at full strength for a limited time.
* Unlimited site licenses.
Provides many entries into restricting licenses:
* Lock to user name: License can be tightly coupled to user name.
* Lock to host: License can be tied to host's ID on Mac OS X or OpenStep 4.2.
* Lock to location: License files will cease functioning if copied from site (Mac OS X and OpenStep 4.2).
Licenses are stored as individual files at specified locations and are checked by the runtime system when an application launches. The floating system supports limited or unlimited copies, system crash recovery and on-demand daemon launch. It also supports individual host-bound licenses among floating licenses for operating systems that support hostids.
All licensing operations are performed totally hidden from the user. This way the user is not tempted to tamper with the license settings. Also, the first-time licensing is made very easy as the user can simply drag & drop a pre-defined license file onto the license panel. A license can also be given on the phone, and such licenses may even include features like timebomb, variable user setting and a non-editable user name. This allows widely distributing your application as a demo, but allowing instant conversion into a full-featured version.
CSLicensing allows multiple copies of the same app to run with distinct licenses on the same network without collisions. To guarantee correct functionality under any circumstances, the license provider should make sure that all license files / keys have a unique serial number. The CSLicenseGenerator makes this task easy.
The CSLicensing scheme is very flexible. The same daemon program is used in all applications that incorporate this licensing scheme without causing any collision. The license controllers and especially the license class itself can be extended to support individual needs.
For any specific questions please send a mail to Stone Design, email@example.com. NeXTmail and MIME mail welcome.
The CSLicensing library consists of six classes (CSLicense, CSLicenser, CSLicensePanel, CSNServer, CSLicenseTable, CSLicenseTableCell) and some library functions for the daemon and the encoding scheme. All classes are discussed in their respective rtf files.
CSLicensing Function Library
void daemon (int argc, char **argv);
You get a fully functional daemon program, which is implemented as a "tproj" or "Tool Project" in XCODE. It gets placed in the app wrapper of your application. If you happen to need some private initialization of the daemon before the CSDaemon is started (which should never be needed and is highly discouraged), do your initialization in your own version of Daemon, a non-AppKit program. After your initialization is done, (which should be very brief in any case), call daemon with the same parameters as main has been called. The program usually never returns from this call.
TOC | PREV | NEXT
|©2000-2008 Stone Design|