应用程序许可使应用程序合作伙伴能够利用 的许可功能来实现自己的许可目的。 IRIS
像管理自己的应用程序许可证一样管理客户应用程序许可证,维护使用计数并根据需要获取和返回用户许可证。当进程退出、停止或从进程表中删除时,或者当 Web
会话超时或被删除时,进程或 Web
会话使用的应用程序许可证与进程或会话使用的 IRIS
许可证一起自动释放。
应用程序许可证只是标准 .ini
格式的文件或此类文件的一部分,包含标识应用程序的部分标题和一些keyword=value
对,在许可证中是唯一的,代表许可的功能。任何格式正确的应用程序许可证都可以在运行时由应用程序加载到 IRIS
。
应用程序许可 API
包括使应用程序能够代表用户使用和返回许可证的方法和查询,以及使程序能够获取有关应用程序和功能许可的信息,包括正在使用和仍然可用的许可证数量。
IRIS
实例可以在应用程序运行时使用 $SYSTEM.License.LoadAppLicenseFile
方法加载和激活任何应用程序许可,该方法记录在 %SYSTEM.License
的类参考中(请参阅应用程序许可 API)。以这种方式加载的应用程序许可证与活动的 IRIS
许可证无关,但由 IRIS
实例独立跟踪。
每个应用程序许可证都包含在以 [AppName]
开头的部分中;应用程序名称 (AppName)
不能包含句点 (.
)。许可证的其余部分由一系列不重复的keyword=value
对组成,表示已获得许可的功能。
在以下示例应用程序许可证中,客户使用关键字=值对来限制多个应用程序功能的许可用户数量,并为所有用户启用扩展实验室报告功能。
[BestLabApplication]
Lab Users=50
Lab Administrators=2
Lab Devices=5
Extended Lab Reports=Enabled
应用程序许可证不受 IRIS
篡改保护,但可以通过自定义应用程序代码进行保护。例如,校验和可以嵌入关键字部分并在激活之前由应用程序验证。
API
类中的 %SYSTEM.License
提供了以下管理应用程序许可证的方法:
%SYSTEM.License Method | Description |
---|---|
LoadAppLicenseFile | 从文件加载应用程序许可证。 |
GetAppLicense | 将当前加载的应用程序许可证的内容作为关键字=值对的字符串返回。 |
GetAppLicenseMaxUsed | 检索自加载许可证以来与应用程序许可证关键字关联的已用许可证单元的最大数量。 |
GetAppNames | 返回当前由应用程序合作伙伴或两者授权的应用程序的名称。 |
IsAppLicensed | 指示应用程序或功能是否已获得许可。 |
TakeApplicationLicense | 使用应用程序和功能的许可证单元。当前进程的许可证用户 ID (或者在 CSP 的情况下,会话许可证 ID )是与使用的应用程序许可证相关联的用户标识符。 |
ReturnApplicationLicense | 发布应用程序许可证和功能的许可证单元,包括与当前进程的许可证用户 ID 关联的许可证资源,或者在 CSP 的情况下为会话许可证 ID 。 |
SetConnectionLimit | 设置此实例上每个用户允许的最大连接数。这使系统管理员能够阻止用户使用所有可用的许可证单元 |
ApplicationServerLogin | 指示使用当前加载的应用程序许可证的实例数是否超过密钥中指定的限制。 |
GetAppLicenseValue | 检索与应用程序许可证功能关键字关联的值。 |
GetAppLicenseMinimum | 检索与应用程序许可证功能关键字关联的最小免费许可证单元数,其中与关键字关联的值为数字。 |
GetAppLicenseFree | 检索与应用程序许可证功能关键字关联的免费许可证单元数,其中与关键字关联的值为数字。 |
GetProcessAppsTaken | 检索为进程 PID 使用的应用程序许可证类型的 $List 或“”为无 |
ApplicationUserList | 返回用户 ID 使用的许可证和应用程序许可证。 |