Within some corporate enterprises, administrators or other users may typically acquire software (whether delivered on CD or other media, or downloaded), and then physically install the software on various machines within the enterprise. In this environment, tracking how many licenses a given enterprise may have acquired may become difficult. It may also become challenging to identify to whom enterprise personnel have allocated licenses, to determine how many licenses are made available for allocation, and whether the enterprise as a whole is currently complying with applicable licenses. In some cases, once software is installed on a given machine, an end-user accessing that machine may also access the software, whether or not the enterprise is complying with any applicable license for the software.
This description provides tools for providing integrated user experiences while allocating licenses within volume licensing systems. These tools may provide methods that include sending information for presenting licensing portals at recipient organizations. The licensing portals may include representations of properties licensed by the organizations, and may include indications of how many licenses remain available for allocation. The methods may include receiving and validating licensing requests. The tools may provide other methods that include requesting and receiving information for presenting the licensing portals, as well as requesting and receiving licensing-related actions from the licensing systems. The tools may provide still other methods that include receiving requests for information to present launch portals, with these requests incorporating user identifiers for particular end-users. These methods may also populate the launch portals with representations of properties for which the end-users are licensed, and may send the information for the launch portals to licensee organizations.
The above-described subject matter may also be implemented as a method, computer-controlled apparatus, a computer process, a computing system, or as an article of manufacture such as a computer-readable medium. These and various other features will be apparent from a reading of the following Detailed Description and a review of the associated drawings.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended that this Summary be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
The following detailed description is directed to technologies for integrated user experiences while allocating licenses within volume licensing systems. While the subject matter described herein is presented in the general context of program modules that execute in conjunction with the execution of an operating system and application programs on a computer system, those skilled in the art will recognize that other implementations may be performed in combination with other types of program modules. Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the subject matter described herein may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like.
In the following detailed description, references are made to the accompanying drawings that form a part hereof, and which are shown by way of illustration specific embodiments or examples. Referring now to the drawings, in which like numerals represent like elements through the several figures, aspects of tools and techniques for integrated user experiences while allocating licenses within volume licensing systems will be described.
The graphical elements used in
Turning to the servers 102 in more detail, the servers may include one or more processors 112, which may have a particular type or architecture, chosen as appropriate for particular implementations. The processors 112 may couple to one or more bus systems 114 chosen for compatibility with the processors 112.
The servers 102 may also include one or more instances of computer-readable storage media 116, which couple to the bus systems 114. The bus systems may enable the processors 112 to read code and/or data to/from the computer-readable storage media 116. The media 116 may represent storage elements implemented using any suitable technology, including but not limited to semiconductors, magnetic materials, optics, or the like. The media 116 may include memory components, whether classified as RAM, ROM, flash, or other types, and may also represent hard disk drives.
The storage media 116 may include one or more modules of instructions that, when loaded into the processor 112 and executed, cause the server 102 to perform various techniques for integrated user experiences while allocating licenses within volume licensing systems. In the example shown in
The licensing management service 118 may communicate via respective communication links 122a and 122n (collectively, communication links 122).
As shown in
Turning to the licensor organization 104 in more detail, this organization may license one or more applications or services 128 to a variety of different licensee organizations 106. The licensor and licensee organizations may establish one or more software licenses 126 under which the licensor provides the applications and/or services 128 to the licensees. The arrow 126 in
It is noted that the systems 100 described herein may support any number of licensor organizations and licensee organizations, with the example provided in
Turning to the licensee organization in more detail, this organization may operate one or more administrative consoles, shown collectively at 130. As described in further detail below, the licensee organization 106 may obtain any number of licenses as appropriate to operate a variety of processor-based machines. The admin consoles 130 may communicate with the licensing management service 118 over the communication link 122n. In this manner, the consoles 130 may enable the licensing management service 118 to communicate with the licensee organization 106. Administrative personnel 108 may use the admin consoles 130 to allocate these licenses to a variety of end users 110 and/or corresponding workstations 132a and 132n (collectively, workstations 132).
Having described the overall systems and operating environments 100 for integrated user experiences while allocating licenses within volume licensing systems, the discussion now proceeds to a description of process flows for allocating and managing the licenses. This description is now presented with
Turning to the admin console, block 202 generally represents software running on the console requesting information for a licensing portal from the volume licensing system. More specifically, block 202 may include requesting information used to populate, provide, and/or present the licensing portal on the admin console. In the example shown, the admin console and the volume licensing system may interact within a web-based rouser system, with the licensing portal being presented on the admin console to enable personnel associated with the licensee organization to interact with the licensor organization through the volume licensing system.
Block 206 generally represents receiving the request 204 for the licensing portal information, and block 208 generally represents sending the information for the licensing portal to the admin console in response to this request. Block 208 may include creating and sending appropriate HTML code that, when rendered on the admin console, presents a licensing portal 210 to administrative personnel using the admin console.
Block 212 generally represents rendering the licensing portal on the admin console. More specifically, block 212 may arrange certain aspects of the licensing portal on the admin console via one or more user interfaces (UI), denoted generally at 214. Subsequent drawing figures provide various non-limiting examples of such UIs 214.
The admin personnel may interact with such UIs to request that the admin console and/or the volume licensing system perform various processing associated with managing and allocating licenses obtained by the licensee organization. Generally, block 216 represents receiving requests related to various licensing functions, and block 218 represents sending these licensing requests 220 to the volume licensing system.
At the volume licensing system, block 222 generally represents receiving various licensing requests 220, and block 224 generally represents validating these licensing requests.
Decision block 226 generally represents testing whether the requested action is valid. If the action requested by the licensee organization is valid and permissible, the processes 200 may take Yes branch 228 to block 230, which generally represents executing or performing the requested action. On the other hand, returning to decision block 226, if the requested action is invalid or otherwise impermissible, then the process flows 200 may take No branch 232 to block 234, which represents reporting an error condition. Block 234 may include sending an error notification 236 to the admin console.
At the admin console, block 238 represents receiving the error notification 236. Block 238 may include forwarding the error notification (denoted at 240) to the admin console, for presentation on the UI 214.
It is noted that various software components may perform the various processing shown in
Having described the processes 200 as shown in
Turning to the examples of licensing requests that may be sent in block 218, licensee organizations may request to obtain new licenses, as denoted generally at 302. Block 302 may include sending this request for new licenses, as noted by the dashed line 304, and new licenses may be obtained by purchase, lease, or any other suitable financial transaction.
At the volume licensing system, block 224 may include responding to the request for new licenses by first checking whether the licensee organization has any remaining unallocated or unused licenses, as denoted generally at block 306. If so, block 306 may include allocating these unused licenses and communicating the same back to the admin console 130, as also represented by the dashed line 304. However, if the licensee organization does not have any remaining unallocated licenses, block 306 may include accepting the request to purchase new licenses, and updating records associated with the licensee organization accordingly.
Returning to the admin console, block 308 represents requesting to allocate or deallocate existing licenses as were previously assigned to particular end users (e.g., 110) and/or workstations (e.g., 132).
At the volume licensing system, block 312 may include checking the request 310 to see whether granting a request to allocate additional licenses (or, “seats”) would result in an overage situation, in which the number of licenses allocated to the licensee organization exceeds the maximum number of licenses paid for or permitted under the applicable license. The volume licensing system may associate an overage percentage with the assignment of the license package. The system may enforce licenses based on the number of seats allocated and the percentage of overage allowed. Additional seats may be requested and administered via the volume licensing system. If the request to allocate additional licenses would result in overage, block 312 may include granting this request and noting the overage for billing and administrative purposes. In these cases, the licensor may bill a licensee at some predefined rate for such overage.
In other cases, if the request to allocate additional licenses would result in overage (i.e., the number of seats available and allocated, plus the percentage of allowed overage), block 312 may deny this request. In such cases, block 312 may include notifying the admin console that granting the request would exceed the maximum number of licenses permitted under the applicable agreement. In such circumstances, block 312 may also offer the admin console corrections on how to purchase additional licenses (e.g., as represented in block 302). In
In some instances, block 308 may include requests to deallocate existing licenses. In such cases, block 312 may include checking whether such requests may result in an underage situation, in which a number of allocate licenses falls beneath a minimum level specified in the applicable license agreement. If so, block 312 may include so notifying the admin console.
Returning to the admin console, block 314 generally represents requests to modify settings or configurations related to existing license allocations. For example, admin personnel may adjust various parameters associated with licenses allocated to particular end users and/or workstations.
At the volume licensing system, block 318 generally represents checking for any conflicts that may result from granting the modification request 316. For example, block 318 may include checking that any changes to parameters requested in block 314 do not exceed permissible ranges as established in the applicable licensing agreement.
In general, the volume licensing system may perform block 318 to check for any conflicts that may result in connection with blocks 306 and 312.
Having described the additional examples of the process flows 300 in
Turning to the licensing database 120 in more detail, it may define one or more master records 402, under which sub-records for particular licensee organizations are organized. For example, a given licensee organization may be organized into one or more sub-organizations or departments for licensing purposes. In such scenarios, the licensing database 120 may include corresponding sub-records 404 associated with these different organizations or departments. Assuming a corporate enterprise implementation, for example, a master record 402 may correspond to a licensee company as a whole, with sub-records 404 corresponding to different departments within the company (e.g., executive, sales, legal, marketing, or the like).
In some scenarios, particular organizations or departments within an enterprise may have licensed services and/or applications from a licensor organization. Records 406 may indicate particular services and/or applications that the licensee organization as licensed. In the example shown, these licenses are associated with particular department records 404. However, in instances where the enterprise as a whole license some service or application, the license records 406 may be associated directly with the master licensee record 402.
Turning to the licensed application records 406 in more detail, sub-records 408 associated with this record may indicate maximums and/or minimums of permitted license allocations under the applicable agreement. The maximum and/or minimum parameters may enable the volume licensing system, operating in connection with the licensing database, to identify overage and/or underage scenarios, as discussed above in
The licensed application records 406 may also include allocation records 410 corresponding to particular allocations of licenses or seats under a given licensing agreement. For example, the allocation records 410 may indicate particular end users (e.g., 110) and/or particular workstations (e.g., 132) to which the licensee organization has allocated licenses.
Turning to the allocated license sub-records 410 in more detail, these records may include various sub-records that contain particulars relating to specific allocations. For example, an end-user/workstation record 412 may identify a particular end-user and/or workstation to which a license is allocated.
Access control sub-records 414 may identify any controls or restrictions applicable to a given allocate a license. For example, different users may receive different levels of access within a given service or application, may access such services or applications with different levels of privilege, or the like.
Settings sub-records 416 may indicate particular parameters or configuration settings established when allocating a particular license to a particular end-user and/or workstation. For example, administrative personnel and/or automated processes may define these printers or settings when initially allocating licenses to particular end users and/or workstations, but may also modify these parameters and settings afterwards.
The licensing database 140, and related structures illustrated in
Having described the example records and structures of the licensing database 120, the discussion now turns to descriptions of various UI elements that may facilitate operation of the volume licensing systems described herein. These descriptions are now provided with
Turning first to
In the example shown in
The UI 500 may include instances of checkboxes or other similar tools responsive to user input to either allocate or deallocate the various licensed applications to the given end-user.
Turning to the subcomponent 506a—entitled “Exchange Online”—in more detail,
The UI 500 may also indicate how many licenses remain available for allocation, for any properties (e.g., applications, services, or the like) depicted in the UI. In the example shown, the licensed application 502a has eight licenses remaining, as indicated at 512. Similarly, the application 502b has fifty licenses remaining, as indicated at 514, and the application 502n as twenty licenses remaining, as indicated at 516.
Over time, as operations proceed and licenses to various properties are allocated and/or deallocated to/from various end-users, the UI 500 may appropriately update entries in the licensing database (e.g., 120) for these various properties. In turn, the UI 500 may update the areas (e.g., 512, 514, and 516) that indicate how many licenses to these properties are available for allocation to be end-users.
In some implementations, the UI 500 may include representations of properties offered under trial licenses. For example, a licensor organization (e.g., 104 in
In scenarios that include unlicensed properties offered on a trial basis, the UI 500 may include representations of such trial properties.
In an example scenario, when an admin is allocating licenses to a given end-user, the UI 500 may expose or surface appropriate trial licenses for other services to that end-user. For example, if the end-user is already licensed for an e-mail service, the UI 500 would not typically offer another e-mail service, but may instead offer some other type or category of service. If the trial property is deemed acceptable after a trial, the trial license may transition to a more permanent license.
To facilitate transfers from trial licenses to permanent licenses, the volume licensing system may associate unique identifiers with particular licensees (e.g., a given company), and may allocate licenses that reference these unique identifiers. More generally, this unique identifier scheme may allow licensees to change name or change domain, yet still be tracked by the unique identifier from the licensor's perspective. The licensees may also change contacts without impacting their licenses, because the licenses track based on the unique identifier. This capability also allows the volume licensing system to transition the licensee seamlessly from a trial license to a permanent license.
In some implementations, the volume licensing system may present trial licenses only to admins, who may determine whether to allocate these trial licenses to particular end-users. The end-users may or may not be aware that a given property is licensed permanently or on a trial basis. However, other implementations could indicate to the end-users which items are offered under trial license, or could give end users the choice of whether to receive the trial license. In addition, some implementations may support advertising or other messages targeting particular end-users within a given licensee organization.
As indicated in
Regarding outputs from the UI 500, the UI may also update the record 416 in the database, in response to configuration settings entered through the UI elements 510. The UI 500 may also update the records 410 for any properties allocated to a particular user, as may be indicated by the selection tools 504. In addition, the UI 500 may also update these records for any sub-components (e.g., 506) allocated to the end-user, as indicated by the selection tools 508.
Having described the UI 500 for allocating licenses to new users in
Turning to the UI 600 more detail, the UI 600 may include representations of various properties available for allocation or deallocation to a given end-user.
Admin personnel may use the UI 600 to modify various aspects of a license allocation to a particular end-user. For example, in response to admin input, the UI 600 may deallocate the property 502a if the admin deselects or deactivates the checkbox 504 corresponding to that property 502a. The UI 600 may allocate the properties 502b and/or 502n, in response to admin input that selects or activates the checkboxes 504 corresponding to these properties. Similarly, the UI 600 may alter configuration parameters in response to admin input directed to any of the configuration tools 510.
The licensing database 120 may provide initial or pre-existing values used to populate the UI 600. The UI 600 may also update the appropriate records in a licensing database 120, as the various parameters and values shown in
Having described the UI 604 editing existing user configurations, the discussion now proceeds to a description of UI is that indicate how many licenses are available and unallocated for different properties within a given licensee organization. This description is now provided with
Turning to the property labeled for example only as “Microsoft Online Suite”, the UI 700 indicates that fifty licenses remain available for allocation, as indicated by the bar graph device 704a. Likewise, for the property 702b, the UI 700 indicates that ten licenses remain available for allocation, as indicated by the device 704b. Finally, for the property 702n, the UI 700 indicates that thirty licenses remain available for allocation, as indicated by the device 704n.
It is noted that
The tools and techniques described herein may allow for multiple administrators at a given licensee organization, and may abide any of these administrators with an integrated view of all licenses and allocated licensees across that given licensee organization. Taking advantage of this visibility, different administrators may see what licenses the organization has already obtained before attempting to obtain more. In some cases, for example, one administrator might be able to allocate seats under licenses that were previously obtained by another administrator, but not yet allocated by that other administrator.
Within a given licensee organization, the volume licensing system may aggregate not only across licenses, but also across the users within the organization. Thus, a given administrator within the licensee organization may view not only the licenses, but also the users within the organization. Thus, the tool described herein may allocate licenses from a pool of unallocated licenses associated with the licensee organization.
Having described the various UIs shown in
Turning to the processes 800 in more detail, block 802 generally represents receiving an end-user login. In the interest of conciseness, this description assumes that the end-user possesses proper login credentials.
Block 804 generally represents the workstation requesting a launch UI in behalf of the end-user who logged in.
On the system end, block 810 represents receiving the request for the launch UI. In turn, block 812 represents searching appropriate database (e.g., the licensing database 120) using the user ID 808. If block 812 does not locate any records for the user ID 808, then block 812 may report an appropriate error, or return an empty launch portal to the user.
Assuming that the licensing database 120 contains records for the input user ID 808, block 814 represents populating the launch UI to include representations of properties allocated to the end-user. Recalling the previous discussion, the UIs shown in
Block 816 generally represents sending the launch UI to the requesting workstation. More specifically, block 816 may include sending appropriate script or code (e.g., HTML) to the requesting workstation, so that when the requesting workstation renders the script or code, it presents the launch UI to the end-user.
Returning to the requesting workstation (e.g., 132), block 820 generally represents receiving the launch UI, and block 822 generally represents rendering the launch UI on the workstation. Once the launch UI is rendered on the workstation, the end-user may interact with it to execute one or more of the properties included in the UI. Generally, block 824 represents receiving user input selecting one or more of these properties, and launching or executing the selected property in response.
Having described the process flows 800 for requesting in populating a launch UI, the discussion now turns to a description of an example launch UI. This description is now presented with
Turning to the launch UI 900 in more detail, the licensing database 120 may populate the UI based on previous license allocations stored in the database. When a given end-user logs into the workstation 132, processes running on the workstation and/or the volume licensing system (e.g., those shown in
Turning to the property 902b in more detail, this property may include subcomponents relating to different aspects of the corporate intranet. In the example shown, a subcomponent 904a may correspond to an internal collaboration site, and a subcomponent 904n may correspond to a portal specialized for a particular department within the corporate enterprise. Recalling briefly the discussion of
As described above in connection with
In this manner, the volume licensing system 102 and the related subcomponents and processes described herein, may provide an integrated, centralized system for managing licenses across a given enterprise. This centralized system may thus enforce compliance with end-user licenses, by presenting end-users only with properties for which they have licenses.
Although the subject matter presented herein has been described in language specific to computer structural features, methodological acts, and computer readable media, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features, acts, or media described herein. Rather, the specific features, acts and mediums are disclosed as example forms of implementing the claims.
To facilitate the present description, some of the foregoing drawing figures may include unidirectional arrows representing certain process and/or data flows. However, these arrows are chosen only for convenience of illustration and description, and do not limit possible implementations of this description. More specifically, any unidirectional arrows shown herein do not exclude or disclaim bidirectional data or process flows.
The subject matter described above is provided by way of illustration only and should not be construed as limiting. Various modifications and changes may be made to the subject matter described herein without following the example embodiments and applications illustrated and described, and without departing from the true spirit and scope of the present invention, which is set forth in the following claims.