The present disclosure relates generally to analysis of software licenses.
This section is intended to introduce the reader to various aspects of art that may be related to various aspects of the present disclosure, which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
Organizations, regardless of size, rely upon access to information technology (IT) and data and services for their continued operation and success. A respective organization's IT infrastructure may have associated hardware resources (e.g. computing devices, load balancers, firewalls, switches, etc.) and software resources (e.g. productivity software, database applications, custom applications, and so forth). Over time, more and more organizations have turned to cloud computing approaches to supplement or enhance their IT infrastructure solutions.
Cloud computing relates to the sharing of computing resources that are generally accessed via the Internet. In particular, a cloud computing infrastructure allows users, such as individuals and/or enterprises, to access a shared pool of computing resources, such as servers, storage devices, networks, applications, and/or other computing based services. By doing so, users are able to access computing resources on demand that are located at remote locations, which resources may be used to perform a variety of computing functions (e.g., storing and/or processing large quantities of computing data). For enterprise and other organization users, cloud computing provides flexibility in accessing cloud computing resources without accruing large up-front costs, such as purchasing expensive network equipment or investing large amounts of time in establishing a private network infrastructure. Instead, by utilizing cloud computing resources, users are able redirect their resources to focus on their enterprise's core functions.
As part of performing these core functions, certain enterprise and other organization users may purchase software licenses from software publishers to gain permission to use proprietary software applications on their end-user or client devices. For organizations having a large number of personnel, managing the maintenance of appropriate software licenses for even a few software applications may represent a significant undertaking. Indeed, because many software applications are available in multiple editions each having varying functionalities and corresponding costs, providing users with appropriate editions of the software applications that suit their respective roles within the enterprise may be difficult to realize in practice.
A summary of certain embodiments disclosed herein is set forth below. It should be understood that these aspects are presented merely to provide the reader with a brief summary of these certain embodiments and that these aspects are not intended to limit the scope of this disclosure. Indeed, this disclosure may encompass a variety of aspects that may not be set forth below.
The present approach relates generally to a license analysis system for evaluating software usage to identify an ideal license type for each user of an enterprise. For example, a software application may be available in a number of different license types or Named Users, including developer, professional, limited professional, employee self-service, and so forth. Because some users may not utilize a full functionality of the license types they are provided, the enterprise may desire to redistribute licenses or reduce costs associated with the software application by downgrading a license type of these users.
Accordingly, the license analysis system may receive user activity data from the enterprise or client, including a client-specific association between license types and the roles assigned to each license type. The license analysis system may analyze the user activity data to generate a 1:m relationship or mapping of each license type to a number of roles within the enterprise. For example, the license analysis system may create a role map that indicates users having a professional license type are associated with a first role and a second role, while users having a limited professional license type are associated with the second role and a third role. The license analysis system may then compare the role map to the user activity data to identify an optimum license type assignment for each user that provides the appropriate authorizations according to their historic software usage. For example, if a user according to the example above has the professional license type but only performs functions associated with the second role, the license analysis system may suggest downgrading the user to the limited professional license type. Instead of or in addition to consideration of the roles of each user, analogous determinations may be based on a profile of each user and/or authorization objects for each user. The license analysis system therefore enables the enterprise to improve or optimize its license distribution by closely matching users with appropriate license types.
Various refinements of the features noted above may exist in relation to various aspects of the present disclosure. Further features may also be incorporated in these various aspects as well. These refinements and additional features may exist individually or in any combination. For instance, various features discussed below in relation to one or more of the illustrated embodiments may be incorporated into any of the above-described aspects of the present disclosure alone or in any combination. The brief summary presented above is intended only to familiarize the reader with certain aspects and contexts of embodiments of the present disclosure without limitation to the claimed subject matter.
Various aspects of this disclosure may be better understood upon reading the following detailed description and upon reference to the drawings in which:
One or more specific embodiments will be described below. In an effort to provide a concise description of these embodiments, not all features of an actual implementation are described in the specification. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and enterprise-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure.
As used herein, the term “computing system” refers to an electronic computing device such as, but not limited to, a single computer, virtual machine, virtual container, host, server, laptop, and/or mobile device, or to a plurality of electronic computing devices working together to perform the function described as being performed on or by the computing system. As used herein, the term “medium” refers to one or more non-transitory, computer-readable physical media that together store the contents described as being stored thereon. Embodiments may include non-volatile secondary storage, read-only memory (ROM), and/or random-access memory (RAM). As used herein, the term “application” refers to one or more computing modules, programs, processes, workloads, threads and/or a set of computing instructions executed by a computing system. Example embodiments of an application include software modules, software objects, software instances and/or other types of executable code.
Furthermore, as used herein, the term “license type” or “edition” refers to the bundling, packaging, or selling of a respective software program for different experiences or degrees of completeness. As such, it is to be understood that a software program may be available in multiple license types that each are targeted to a different segments of end-users. Some examples of license types include developer, professional, limited professional, employee self-service, standard, home, education, enterprise, and so forth. Moreover, respective software licenses that accompany various software programs may differ in pricing for different license types, such that higher-end or more complete license types of a respective software program are more expensive than lower-end or less complete license types of the same software program. In some cases, license types are associated with a “named user,” such that the license type is provided as a named user license assigned to a particular user.
As discussed herein, an enterprise or other client may use certain software programs that are installed on client devices directly and/or accessible through cloud-provided services. In either case, to provide users with a desired set of features, the software programs may be provided to each user in a particular license type or each user may be assigned a suitable named user license. As such, across the enterprise, a significant variance in installed license types of software programs, which are each to be paired with a corresponding software license, may exist. However, some users may be provided with software programs, or particular license types thereof, that the users are underutilizing. As such, should additional users desire to use the software program, the enterprise generally purchases software licenses for the additional users, adding to an operating cost for provisioning the users with software programs for performing enterprise tasks. In other cases, to make a software license available for a user requesting to use the software program, the enterprise may erroneously uninstall the software program from a client device of a user who was utilizing the software application. Accordingly, it is now appreciated that there is a need for improved license analysis to enable an enterprise to efficiently distribute software licenses to users of particular software programs. Such desired management is facilitated by a license analysis program that identifies an optimum or acceptable license type or named user assignment for each user, as discussed herein.
With the preceding in mind, the following figures relate to various types of generalized system architectures or configurations that may be employed to provide services to an organization in a multi-instance framework and on which the present approaches may be employed. Correspondingly, these system and platform examples may also relate to systems and platforms on which the techniques discussed herein may be implemented or otherwise utilized. Turning now to
For the illustrated embodiment,
In
To utilize computing resources within the platform 16, network operators may choose to configure the data centers 18 using a variety of computing infrastructures. In one embodiment, one or more of the data centers 18 are configured using a multi-tenant cloud architecture, such that one of the server instances 26 handles requests from and serves multiple customers. Data centers 18 with multi-tenant cloud architecture commingle and store data from multiple customers, where multiple customer instances are assigned to one of the virtual servers 26. In a multi-tenant cloud architecture, the particular virtual server 26 distinguishes between and segregates data and other information of the various customers. For example, a multi-tenant cloud architecture could assign a particular identifier for each customer in order to identify and segregate the data from each customer. Generally, implementing a multi-tenant cloud architecture may suffer from various drawbacks, such as a failure of a particular one of the server instances 26 causing outages for all customers allocated to the particular server instance.
In another embodiment, one or more of the data centers 18 are configured using a multi-instance cloud architecture to provide every customer its own unique customer instance or instances. For example, a multi-instance cloud architecture could provide each customer instance with its own dedicated application server and dedicated database server. In other examples, the multi-instance cloud architecture could deploy a single physical or virtual server 26 and/or other combinations of physical and/or virtual servers 26, such as one or more dedicated web servers, one or more dedicated application servers, and one or more database servers, for each customer instance. In a multi-instance cloud architecture, multiple customer instances could be installed on one or more respective hardware servers, where each customer instance is allocated certain portions of the physical server resources, such as computing memory, storage, and processing power. By doing so, each customer instance has its own unique software stack that provides the benefit of data isolation, relatively less downtime for customers to access the platform 16, and customer-driven upgrade schedules. An example of implementing a customer instance within a multi-instance cloud architecture will be discussed in more detail below with reference to
Although
As may be appreciated, the respective architectures and frameworks discussed with respect to
With this in mind, and by way of background, it may be appreciated that the present approach may be implemented using one or more processor-based systems such as shown in
With this in mind, an example computer system may include some or all of the computer components depicted in
The one or more processors 202 may include one or more microprocessors capable of performing instructions stored in the memory 206. Additionally or alternatively, the one or more processors 202 may include application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), and/or other devices designed to perform some or all of the functions discussed herein without calling instructions from the memory 206.
With respect to other components, the one or more busses 204 include suitable electrical channels to provide data and/or power between the various components of the computing system 200. The memory 206 may include any tangible, non-transitory, and computer-readable storage media. Although shown as a single block in
With the preceding in mind,
As mentioned above, present embodiments are directed to a license analysis system or license analysis software application. Such license management functionality may be supported and enhanced by deployment on a cloud-based infrastructure as described herein, such as in an multi-instance or multi-tenant architecture as described above. Thus, the license analysis system may be implemented on the cloud-based platform 16 and accessed by the agent through the client instance 102 to view an output indicating optimum or acceptable license type assignments for each user, as discussed in more detail below. However, it is to be understood that the license analysis system may alternatively be implemented locally on the client devices 20 or on any other suitable computing devices for generating acceptable license type assignments for users. Indeed, with respect to the techniques discussed herein, these techniques may be implemented in a multi-instance architecture as described herein, a multi-tenant architecture, a client-server or public network (i.e., Internet) context, or, in some instances, on a single computer or server suitably configured.
As used herein, a “software program” is a collection or grouping of files that enables end-users to perform certain enterprise tasks on their client devices 20. These software programs may be installed directly on the client devices 20 and/or accessible through the cloud-based platform 16. By way of non-limiting example, the software programs may include enterprise resource planning (ERP) software programs, such as SAP ERP™ provided by SAP SE™ Inc., of Walldorf, Germany. The software programs may additionally or alternatively include word-processing software programs, report-generating software programs, modeling software programs, communication software programs, web-browsing software programs, and/or any other software programs by which the end-users may perform work. To ensure an appropriate license type is provided for each user of the enterprise, the present techniques include the license analysis system that may collect user activity data from the enterprise, identify which functions are performed by users having each license type, and output suggested license type downgrades for users who may be downgraded to a different, lower license type without affecting their job functions.
With the preceding context in mind,
The user record system 306 may be provided by any suitable ERP software program, such as SAP ERP™ provided by SAP SE™ Inc., of Walldorf, Germany. The user record system 306 of the present embodiment includes a user record database 314 and the license analysis system 304. The user record database 314 may store data indicative of user permissions and activities within the user record system 306, such as those performed within the ERP software program via a client computing system 316. Moreover, although illustrated with the license analysis system 304 included within the user record system 306, it should be understood that the license analysis system 304 may alternatively be employed within the client computing system 316 or remotely via the network 14.
With the above context of the license analysis system 304 in mind,
To start (block 342) the process 340, the processor 310 of the license analysis system 304 receives (block 344) user activity data 346 or client data from the client computing system 316. The user activity data 346 may be received directly from a storage component of the client computing system 316 or received indirectly from the user record database 314 of the user record system 306 communicatively coupled to the client computing system 316. As noted herein, the user activity data 346 includes data indicative of client-defined assignments of license types and user assignments to each user of the enterprise.
In some embodiments, the user assignments include roles, profiles, and/or authorization objects assigned to each user. As discussed in more detail with reference to
Turning briefly to
Returning to
Returning again to
By way of an example, the user activity data 346 may specify that a first license type assignment is associated with a first role and a second role, and that a second license type assignment is associated with the second role and a third role. Then, when analyzing data related to a user having the first license type assignment, the license analysis system 304 may determine that the user performs actions associated with the second role and does not perform actions associated with the first role. As such, the license analysis system 304 determines that a best-fit or acceptable license type assignment for the user is the second license type assignment.
Then, the processor 310 of the license analysis system 304 generates (block 382) a composite license type chart 384 or composite license type output based on an actual license type assignment for each user and the acceptable license type assignment for each user. As illustrated in
Although represented as a chart, it should be understood that the composite license type chart 384 may be generated as any suitable output, including a list or data indicative of suggested changes to license types, either with or without the actual license type assignment 390 and/or the potential savings 394. Moreover, for users having a respective acceptable license type assignment 392 that differs from their actual license type assignment, the license analysis system 304 may emphasize, highlight, bold, recolor, or otherwise indicate that modifying the license type assignment of these users may provide non-zero license cost savings.
In some embodiments, the composite license type chart 384 is generated and provided to a viewer who accesses the license analysis system 304. Indeed, the composite license type chart 384 may be generated and output on a scheduled or periodic basis, such as at a specified time or day of the week. In other embodiments, the composite license type chart 384 is generated based on a demand by a requester, who is then provided with the composite license type chart 384. The viewer or the requester may therefore manually update the license type assignments of the users to their acceptable license type assignments when the next re-licensing period arrives. Enabling manual updating of the license type assignments may enable an administrator to verify the changes suggested by the license analysis system 304, thus blocking or preventing license type downgrades for users who may not fully utilize the software program at all times, but periodically require greater functionalities from the software program.
Alternatively, and again referring back to
By way of another example,
As discussed with reference to
With the illustrated embodiment of the user activity data 346, the license analysis system 304 may determine an acceptable license types for each user. Indeed, as discussed above with reference to
In more detail, and by way of example, the license analysis system 304 may determine whether each user has accessed the software program within a first threshold time period, determine whether each user has performed a threshold number of actions via the software program within a second threshold time period, or both. Then, in response to one or more users not accessing the software program within the first threshold time period, not performing the threshold number of actions within the second threshold time period, or both, the license analysis system 304 may downgrade the acceptable license type assignment for these users. Alternatively, if a user has both a high activity level and/or has logged into the software program within a suitable time threshold, the license analysis system 304 may maintain the acceptable license type assignment for the user.
With the above understanding of the license analysis system 304 in mind, more details are provide below with respect to the hierarchy between profiles, roles, and authorization objects, collectively referred to as the user assignments, that may be analyzed by the license analysis system 304. Indeed,
Moreover,
In more detail,
As discussed herein, software license management for an enterprise may be facilitated by multiple techniques and features. A license analysis system 304 may be implemented on client devices or a local server to receive user activity data 346 from the enterprise or client, including a client-defined association between license types and user assignments associated with each license type. The license analysis system 304 may analyze the user activity data 346 to generate a 1:m relationship or map of each license type to a number of profiles, roles, and authorization objects within the enterprise. The license analysis system 304 may then compare the 1:m relationship or the appropriate maps to the user activity data to identify an optimum license type assignment for each user that provides the appropriate authorizations according to their historic software usage. Moreover, the license analysis system 304 may consider specific user activity, such as whether each user has recently logged in or has a high activity status within the software program, when determining acceptable license type assignments for each user. Accordingly, the license analysis system 304 provides efficient license management based on actual work performed by the users to enable license redistribution and/or licensing cost reductions to the enterprise.
The specific embodiments described above have been shown by way of example, and it should be understood that these embodiments may be susceptible to various modifications and alternative forms. It should be further understood that the claims are not intended to be limited to the particular forms disclosed, but rather to cover all modifications, equivalents, and alternatives falling within the spirit and scope of this disclosure.
The techniques presented and claimed herein are referenced and applied to material objects and concrete examples of a practical nature that demonstrably improve the present technical field and, as such, are not abstract, intangible or purely theoretical. Further, if any claims appended to the end of this specification contain one or more elements designated as “means for [perform]ing [a function] . . . ” or “step for [perform]ing [a function] . . . ”, it is intended that such elements are to be interpreted under 35 U.S.C. 112(f). However, for any claims containing elements designated in any other manner, it is intended that such elements are not to be interpreted under 35 U.S.C. 112(f).
Number | Name | Date | Kind |
---|---|---|---|
5845281 | Benson | Dec 1998 | A |
6189146 | Misra | Feb 2001 | B1 |
6321229 | Goldman et al. | Nov 2001 | B1 |
6609122 | Ensor | Aug 2003 | B1 |
6799189 | Huxoll | Sep 2004 | B2 |
6813640 | Benson | Nov 2004 | B1 |
6816898 | Scarpelli | Nov 2004 | B1 |
6895586 | Brasher | May 2005 | B1 |
7020706 | Cates | Mar 2006 | B2 |
7027411 | Pulsipher | Apr 2006 | B1 |
7028301 | Ding | Apr 2006 | B2 |
7062683 | Warpenburg | Jun 2006 | B2 |
7131037 | LeFaive | Oct 2006 | B1 |
7170864 | Matharu | Jan 2007 | B2 |
7350209 | Shum | Mar 2008 | B2 |
7392300 | Anantharangachar | Jun 2008 | B2 |
7457781 | Weaver | Nov 2008 | B1 |
7610512 | Gerber | Oct 2009 | B2 |
7617073 | Non | Nov 2009 | B2 |
7685167 | Mueller | Mar 2010 | B2 |
7689628 | Garg | Mar 2010 | B2 |
7716353 | Golovinsky | May 2010 | B2 |
7769718 | Murley | Aug 2010 | B2 |
7783744 | Garg | Aug 2010 | B2 |
7890802 | Gerber | Feb 2011 | B2 |
7925981 | Pourheidar | Apr 2011 | B2 |
7930396 | Trinon | Apr 2011 | B2 |
7933927 | Dee | Apr 2011 | B2 |
7945860 | Vambenepe | May 2011 | B2 |
7966398 | Wiles | Jun 2011 | B2 |
8051164 | Peuter | Nov 2011 | B2 |
8082222 | Rangarajan | Dec 2011 | B2 |
8151261 | Sirota | Apr 2012 | B2 |
8224683 | Manos | Jul 2012 | B2 |
8380645 | Kowalski | Feb 2013 | B2 |
8402127 | Solin | Mar 2013 | B2 |
8457928 | Dang | Jun 2013 | B2 |
8478569 | Scarpelli | Jul 2013 | B2 |
8554750 | Rangaranjan | Oct 2013 | B2 |
8612408 | Trinon | Dec 2013 | B2 |
8646093 | Myers et al. | Feb 2014 | B2 |
8674992 | Poston | Mar 2014 | B2 |
8689241 | Naik | Apr 2014 | B2 |
8743121 | De Peuter | Jun 2014 | B2 |
8745040 | Kowalski | Jun 2014 | B2 |
8812539 | Milousheff | Aug 2014 | B2 |
8818994 | Kowalski | Aug 2014 | B2 |
8832652 | Mueller | Sep 2014 | B2 |
8839360 | Orr | Sep 2014 | B1 |
8887133 | Behnia | Nov 2014 | B2 |
9015188 | Behne | Apr 2015 | B2 |
9037536 | Vos | May 2015 | B2 |
9065783 | Ding | Jun 2015 | B2 |
9098322 | Apte | Aug 2015 | B2 |
9122552 | Whitney | Sep 2015 | B2 |
9137115 | Mayfield | Sep 2015 | B2 |
9239857 | Trinon | Jan 2016 | B2 |
9317327 | Apte | Apr 2016 | B2 |
9323801 | Morozov | Apr 2016 | B2 |
9363252 | Mueller | Jun 2016 | B2 |
9412084 | Kowalski | Sep 2016 | B2 |
9457344 | Gere | Oct 2016 | B2 |
9535737 | Joy | Jan 2017 | B2 |
9557969 | Sharma | Jan 2017 | B2 |
9613070 | Kumar | Apr 2017 | B2 |
9645833 | Mueller | May 2017 | B2 |
9654473 | Miller | May 2017 | B2 |
9659051 | Hutchins | May 2017 | B2 |
9766935 | Kelkar | Sep 2017 | B2 |
9792387 | George | Oct 2017 | B2 |
9805322 | Kelkar | Oct 2017 | B2 |
9852165 | Morozov | Dec 2017 | B2 |
10002203 | George | Jun 2018 | B2 |
20030066048 | Kumhyr | Apr 2003 | A1 |
20030083892 | Ramachandran | May 2003 | A1 |
20030083994 | Ramachandran | May 2003 | A1 |
20030083995 | Ramachandran | May 2003 | A1 |
20030083998 | Ramachandran | May 2003 | A1 |
20030083999 | Ramachandran | May 2003 | A1 |
20030084060 | Ramachandran | May 2003 | A1 |
20030084145 | Ramachandran | May 2003 | A1 |
20030084341 | Ramachandran | May 2003 | A1 |
20030084343 | Ramachandran | May 2003 | A1 |
20030220880 | Lao | Nov 2003 | A1 |
20040039916 | Aldis | Feb 2004 | A1 |
20040044631 | Walker | Mar 2004 | A1 |
20040054930 | Walker | Mar 2004 | A1 |
20040193545 | Shlasky | Sep 2004 | A1 |
20040220878 | Lao | Nov 2004 | A1 |
20050044396 | Vogel | Feb 2005 | A1 |
20050044426 | Vogel | Feb 2005 | A1 |
20050102240 | Misra | May 2005 | A1 |
20050114661 | Cheng | May 2005 | A1 |
20060156020 | Minium | Jul 2006 | A1 |
20060156021 | Minium | Jul 2006 | A1 |
20060156384 | Minium | Jul 2006 | A1 |
20060190408 | Cook | Aug 2006 | A1 |
20060200419 | Cook | Sep 2006 | A1 |
20070011748 | Tiwari | Jan 2007 | A1 |
20070130068 | Kitazato | Jun 2007 | A1 |
20070198422 | Prahlad | Aug 2007 | A1 |
20070288386 | Adachi | Dec 2007 | A1 |
20080083040 | Dani | Apr 2008 | A1 |
20080243699 | Hilerio | Oct 2008 | A1 |
20080244754 | Curren | Oct 2008 | A1 |
20100319067 | Mohanty | Dec 2010 | A1 |
20110047540 | Williams | Feb 2011 | A1 |
20120084393 | Williams | Apr 2012 | A1 |
20120089485 | Williams | Apr 2012 | A1 |
20120089971 | Williams | Apr 2012 | A1 |
20120198559 | Venkata Naga Ravi | Aug 2012 | A1 |
20120204270 | Paulino | Aug 2012 | A1 |
20120317621 | Mihara | Dec 2012 | A1 |
20130144742 | Thakur | Jun 2013 | A1 |
20140013440 | Thakur | Jan 2014 | A1 |
20150135333 | Biswas | May 2015 | A1 |
20160057151 | Brock | Feb 2016 | A1 |
20160092887 | Jagad | Mar 2016 | A1 |
20160105409 | Torman | Apr 2016 | A1 |
20160294881 | Hua | Oct 2016 | A1 |
20170063615 | Yang | Mar 2017 | A1 |
20170214632 | Ravi | Jul 2017 | A1 |
20170300668 | Bawa | Oct 2017 | A1 |
20170300672 | Kauerauf | Oct 2017 | A1 |
20170308685 | Terry | Oct 2017 | A1 |
20170308687 | Marnell | Oct 2017 | A1 |
20180144150 | Aakolk | May 2018 | A1 |
20180268124 | Ohzaki | Sep 2018 | A1 |
20180322260 | Adam | Nov 2018 | A1 |
20190026484 | Aakolk | Jan 2019 | A1 |
20190253430 | Gamache | Aug 2019 | A1 |
20190297085 | De Wijs | Sep 2019 | A1 |
20190318064 | Paladino | Oct 2019 | A1 |
20190340271 | Faulhaber | Nov 2019 | A1 |
20190340337 | Faulhaber | Nov 2019 | A1 |
20190340557 | Faulhaber | Nov 2019 | A1 |
20210176638 | Heldt-Sheller | Jun 2021 | A1 |
Entry |
---|
International Search Report and Written Opinion for PCT Application No. PCT/US2020/023198 dated Jun. 9, 2020; 14 pgs. |
Number | Date | Country | |
---|---|---|---|
20200302032 A1 | Sep 2020 | US |