US 12,175,548 B2
Mobile application licensing tool
Matthew B. Trevathan, Roswell, GA (US); Matthew A. Terry, Celebration, FL (US); and Bjorn Hildahl, Orlando, FL (US)
Assigned to KONY, INC., Orlando, FL (US)
Filed by Kony Inc., Orlando, FL (US)
Filed on Jun. 1, 2016, as Appl. No. 15/170,377.
Prior Publication US 2017/0352115 A1, Dec. 7, 2017
Int. Cl. G06Q 20/18 (2012.01); G06Q 50/18 (2012.01)
CPC G06Q 50/184 (2013.01) [G06Q 2220/18 (2013.01)] 19 Claims
OG exemplary drawing
 
1. A method, comprising: receiving calls at a licensing server from a computing device having a computer application, including a licensing file related to a license provided by the licensing server, to determine whether usage of the computer application complies with licensing enforcement policies in the licensing file;
injecting, by the licensing server, licensing logic of the licensing file into binary code of the computer application through a wrapping procedure after compilation of the computer application;
compressing the licensing file by the licensing server to prevent access to the licensing file;
enforcing the license enforcement policies by the licensing server, which affect at least one of services and functionality associated with the computer application, including access to backend services, based on a state of compliance of the computer application with the licensing enforcement policies in the licensing file, wherein the enforcing is performed in an escalating manner following a predetermined number of operational sessions of the computer application, after initial notification by the licensing server to a user of the computer application that the license is about to expire, and wherein the escalation includes at least one step, following the initial notification, of degrading performance of, or disabling, at least one of the services and functionality associated with computer application, without making the computer application unusable to the user of the computer application, prior to complete disabling of the services and functionality associated with the computer application following the at least one step;
generating, by the licensing server, a time check function with a “time bomb” set for a same expiration date and/or time of access to the services;
automatically disabling, by the licensing server, predetermined functionality associated with the computer application by automatically removing code needed to run the predetermined functionality associated with the computer application and publishing renewal application which includes an updated license file and updated enforcement policies to the computer application in response to the time bomb reaching the same expiration date and/or time of access to the services;
in response to automatically disabling, allowing, by the licensing server, only login functions after an expiration of the license and after an initial predetermined period of time;
preventing servicing requests, by the licensing server, to the computer application occurs in response to the license expiring;
redirecting, by the licensing server, the computer application to another URL for updates on an application store hosted by the backend services;
automatically downloading and installing the removed code, by the licensing server, in an application container associated with the computer application in response to the predetermined functionality associated with the computer application being re-enabled and a determination that the active license is available;
automatically release, by a mobile device, the active license to be available in response to a predetermined period of inactivity for the active license;
determining, by the mobile device, whether the licensing sever is able to communicate with the computer application;
in response to a determination that the computer application is unable to communicate with the licensing server-using a cached local policy, determining, by the mobile device, what a last known license is and how long the last known license can operate on;
notifying, by the licensing server, a developer that the last known license is about to expire; and
canceling, by the licensing server, the services in response to the last known license not being renewed after a predetermined time after notifying the developer, wherein enforcing in the escalating manner is performed within the computer application, after expiration of the license, without a need to further access the licensing server following the expiration of the license, wherein the licensing enforcement policies are configured to allow the user of the computer application to log into the licensing server to renew a license to use the computer application after the licensing server has disabled the services and functionality associated with the computer application, wherein enforcing the license enforcement policies automatically begins at login of the computer application to the licensing server before receiving backend authentication of the backend services, and wherein the licensing server comprises a pointer to an application store for supporting mandatory application updates.