Systems and Methods for Auditing Computing Device Counts
Methods, systems, and products count computing devices for software licenses. A numerical count of the computing devices is adjusted to remove double-counts of replacement devices.
Latest AT&T Patents:
- METHOD AND SYSTEM FOR DYNAMIC LINK AGGREGATION
- DUAL SUBSCRIBER IDENTITY MODULE RADIO DEVICE AND SERVICE RECOVERY METHOD
- CARRIER AGGREGATION - HANDOVER SYNERGISM
- APPARATUSES AND METHODS FOR FACILITATING AN INDEPENDENT SCELL TOPOLOGY IN RESPECT OF COMMUNICATIONS AND SIGNALING
- Protection Against Relay Attack for Keyless Entry Systems in Vehicles and Systems
This application is a continuation of U.S. application Ser. No. 11/832,289, filed Aug. 1, 2007, now issued as U.S. Pat. No. ______, and incorporated herein by reference in its entirety.
TECHNICAL FIELDThis application relates generally to the field of computing devices. More specifically, this application relates to systems and methods for providing counts of computing devices.
BACKGROUNDHaving an accurate count of computing devices in an entity is useful for computer system fitness, software billing, and security compliance reporting purposes. There are numerous data sources indicating computing device counts in an entity as well as different uses for such counts. Increasing demands for accurate computing device counts have spotlighted significant variations in computing device counts and computing device count methodology within a company. There is often no clear explanation that is readily available to account for these variations. Often, requests for verification and reconciliation of computing device counts can be very time consuming. Furthermore, confusion and uncertainty is created when different computing device counts are provided by different persons or departments within a company. In the past, certain computing device count data has been accepted over other computing device count data based solely on which employee or department provided the data. Furthermore, computing device counts are often published or included in reports without an understanding how the computing device counts were obtained.
SUMMARYExemplary embodiments of systems, methods, and computer program products for providing computing device counts are described. One such method includes providing a count of computing devices corresponding to an organization, the count of computing devices being responsive to data corresponding to the computing devices, providing a time period for which the count is valid, and providing information on how the computing device count was determined.
A system for providing computing device counts includes a processor and memory having instructions stored in the memory. The instructions are configured to enable the processor to provide a count of computing devices corresponding to an organization, a time period for which the count is valid, and information on how the computing device count was determined.
A computer-readable storage medium includes computer-readable instructions configured to enable a computer to provide a count of computing devices corresponding to an organization, a time period for which the count is valid, and information on how the computing device count was determined.
Other systems, methods, and/or computer program products according to embodiments will be or become apparent to one with skill in the art upon review of the following drawings and detailed description. It is intended that all such additional systems, methods, and/or computer program products be included within this description, be within the scope of the present invention, and be protected by the accompanying claims.
The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. In the figures, like reference numerals designate corresponding parts throughout the different views.
The following detailed description is directed to methods, systems, and computer-readable media for providing computing device counts. In the following detailed description, references are made to the accompanying drawings that form a part hereof, and which are shown by way of exemplary embodiments and implementations.
Exemplary embodiments utilize data sources, data gathering tools, and data manipulation processes for providing accurate counts of computing devices for an organization. Note that the systems and methods disclosed herein may also be used to provide accurate counts for other devices or elements for which counts are desired. By properly defining the data sources, data gathering tools, and data manipulation processes, the computing device counts can be easily audited and verified. Each computing device count may have one or more specified uses including, for example, for billing and/or software compliance purposes. As used herein, a computing device may be, for example, a desktop computer, a notebook computer, a server, a network router, a network switch, a specialized computing device, a mobile computing device, or any other device that uses a processor capable of executing instructions. Illustrative examples of computing device counts include:
-
- A count of active servers and/or user-computing devices corresponding to a company or a particular division of the company.
- A count of servers and/or user-computing devices that are serviced by a certain software program and/or software provider.
- A count of servers and/or user-computing devices that include a certain software program.
- A count of active servers and/or user-computing devices relevant to compliance reporting in connection with a particular software.
According to exemplary embodiments, a computing device counting process can be certified to assure a reader of computing device count data that a certain corresponding counting process was used to arrive at the computing device count. Approved uses of computing device counts can be specified as part of a computing device count certification process. A given computing device count can then be used in various reports, as appropriate. The various uses or reports may have differing tolerances for the age of a given computing device count.
According to exemplary embodiments, a report may indicate which computing device counts in the report are certified. Noting that a computing device count is certified may result in a report reader being confident in the accuracy of the computing device count. Furthermore, inclusion of the date and/or age tolerances of the computing device count can help a reader determine if the computing device count is still valid and/or reliable. The reader may also be provided with information to help the reader understand the scope of the computing device count and the methodology that generated such count. This information may be provided in the report or via another source such as, for example, a company web-site. Such a web-site may also provide other information related to various certified computing device counts including approved uses for respective counts. For example, the web-site may list reports in which each certified computing device count may be used. A query-based interface may be used to retrieve information regarding various certified computing device counts and the reports in which such counts may be used.
Note that although only one data source, the data source 102, is shown in
The computing device records 104 provided by the data sources 102 may be in the form of databases, spreadsheets, and/or some other type of data structures. Information provided by the computing device records 104 regarding a particular computing device may include, for example, among others, the type of computing device (e.g., desktop vs. notebook and/or server vs. user-computing device), one or more performance characteristics of the computing device (e.g., processor speed and/or memory capacity), operating system type and/or version installed on the computing device, other software types and/or versions installed on the computing device, when the computing device has been active, whether the computing device is being replaced, a date and/or time the computing device was logged into a particular system, whether and how the computing device is compliant with security requirements, whether and/or when certain software upgrades and/or patches were implemented regarding particular computing device software, a date and/or time the computing device was scanned by a particular software (e.g., computer management or computer security software), a business unit to which the computing device is assigned, and/or a company that is performing one or more billable services in connection with the computing device.
Illustrative non-limiting examples of software that may be used to provide the computing device records 104 include: Active Directory™ (AD), Microsoft Systems Management Server™ (SMS), Eracent™, Nessus™, REM™, Excel™, and MSM™.
Illustrative non-limiting examples, among others, of tools for retrieving data from the data source 102 include: SMS Web Reporting™, Eracent Reporting™, Structured Query Language (SQL) Server database™(DB), SQL Server Reporting Services™, Oracle DB™, SQL™ queries, and application programming interface (API) calls.
In accordance with exemplary embodiments, the computing device counting application 106 may determine a count of computing devices using any or a combination of a variety of approaches. For example, the computing device counting application 106 may filter out computing device record entries not meeting each of the predetermined criteria 105 and then count the remaining computing device record entries. Alternatively, the computing device counting application may flag computing device record entries that meet the predetermined criteria 105 and then count them. As another example, the computing device counting application 106 may flag computing device record entries that do not meet the predetermined criteria 105 and then count the non-flagged computing device record entries. As yet another example, the computing device counting application may use a combination of filtering and flagging to help determine a computing device count.
One or more time periods are then determined for which the computing device count is deemed to be valid and/or reliable in connection with corresponding disclosure objectives, as indicated in box 203. The time period determination may be performed by a user of the computing device counting system 101, by the computing device counting application 106, or by the report generating application 107. An actual number of computing devices being counted can be very dynamic due to computing devices being added to a system, computing devices being removed from a system, client reporting schedules, and record processing schedules. Therefore, a time period for which a computing device count is deemed valid and/or reliable depends on an intended use of the computing device count. The time period may be based on a requirement in a software licensing contract, on a computer security requirement, on a software billing schedule and/or on how fixed or dynamic a particular computing device count is expected to be. Non-limiting examples of time periods for which a computing device count is determined to be reliable include, among others, a day, a week, a month, or a year.
The date and time period associated with a computing device count can help a reader determine when or whether a computing device count is valid and/or reliable. Furthermore, an “as of” date corresponding to a date the computing device count was calculated can be associated with the computing device count. The “as of” date enables a reader of the computing device count to better determine whether a corresponding computing device count is still valid and/or reliable in connection with a certain context within which the computing device count is being used.
The computing device records 104 are then processed to identify the records 104 for computing devices managed via a predetermined software, as indicated in box 404. The computing device records 104 are further processed to identify records for computing devices for which a certain billing requirement exists, as indicated in box 405. Identifying records based on billing requirements can be performed when a computing device count is to be used for billing purposes.
The computing device records 104 are then processed to account for duplicate listings in the computing device records 104, as indicated in box 406. Accounting for duplicate listings helps to prevent computing device counts from being inaccurate due to double-counting. A computing device count is then determined based on the computing device record processing, as indicated in box 407. For example, certain of the computing device records 104 not meeting certain criteria are eliminated or flagged such that the records are excluded from a computing device count.
The computing device count is then adjusted based on data identifying computing devices being replaced, as indicated in box 408. For example, when a computing device is being replaced, the computing device and the computing device's replacement may both be active even though the computing device being replaced may soon be deactivated and may no longer be relevant to various computing device counts. Therefore, accounting for computing device replacements can help provide a more accurate count of computing devices for various purposes including, for example, software licensing. A computing device being replaced and a corresponding replacement computing device may be identified as such in the computing device records 104.
Note that methods depicted in the exemplary flow charts described above may be modified to include fewer, additional, and/or different steps within the scope of this disclosure. Furthermore, steps depicted in the flow charts may be performed out of the order shown including substantially concurrently, in reverse order, or in a substantially different order.
The mass storage device 610 is connected to the CPU 602 through a mass storage controller (not shown) connected to the bus 604. The mass storage device 610 and its associated computer-readable media provide non-volatile storage for the server 101. Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or CD-ROM drive, it should be appreciated by those skilled in the art that computer-readable media can be any available media that can be accessed by the server 101.
By way of example, and not limitation, computer-readable media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. For example, computer-readable media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, digital versatile disks (DVD), HD-DVD, BLU-RAY, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the server 101.
According to various embodiments, the system 101 may operate in a networked environment using logical connections to remote computers and data sources 102, through a network, such as the communications network 103. The system 101 may connect to the network 103 through a network interface unit 606 connected to the bus 604. It should be appreciated that the network interface unit 606 may also be utilized to connect to other types of networks and remote computer systems. The system 101 may also include an input/output controller 612 for receiving and processing input from a number of other devices, including a keyboard, mouse, or electronic stylus (not shown in
As mentioned briefly above, a number of program modules and data files may be stored in the mass storage device 610 and RAM 614 of the system 101, including the operating system 620 suitable for controlling the operation of the system 101. The mass storage device 610 and RAM 614 may also store one or more program modules. In particular, the mass storage device 610 and the RAM 614 may store a computing device counting application 106. Functionality provided by the computing device counting application 106 includes, for example, retrieving computing device records, such as the computing device records 104, and analyzing such records to determine counts of computing devices that meet certain criteria. The computing device counting application 106 may also be configured to store and provide information on how various computing device counts were determined and during what time periods such computing device counts are deemed to be valid. Other program modules may also be stored in the mass storage device 610 and utilized by the system 101.
Although the subject matter presented herein has been described in conjunction with one or more particular embodiments and implementations, it is to be understood that the embodiments defined in the appended claims are not necessarily limited to the specific structure, configuration, or functionality described herein. Rather, the specific structure, configuration, and functionality are disclosed as example forms of implementing the claims. 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 embodiments, which is set forth in the following claims.
Claims
1. A method, comprising:
- retrieving, from memory, a numerical count of computing devices executing a software program under license from a software provider to an organization;
- determining, by a processor, a replacement of one of the computing devices in the numerical count;
- identifying, by the processor, a replacement device that replaces the one of the computing devices;
- identifying, by the processor, a double-count between the one of the computing devices and the replacement device in the numerical count of the computing devices; and
- removing, by the processor, the double-count from the numerical count of computing devices.
2. The method of claim 1, further comprising associating the numerical count of the computing devices to a period of time.
3. The method of claim 1, further comprising counting servers executing the software program.
4. The method of claim 1, further comprising counting mobile devices executing the software program.
5. The method of claim 1, further comprising determining an age of the one of the computing devices.
6. The method of claim 1, further comprising reporting the numerical count of the computing devices to a web-site.
7. The method of claim 1, further comprising storing the numerical count of the computing devices.
8. A system, comprising:
- a processor; and
- memory storing instructions that when executed causes the processor to perform operations, the operations comprising:
- storing a numerical count of computing devices executing a software program under license from a software provider to an organization;
- determining a replacement of one of the computing devices executing the software program;
- identifying a replacement device that replaces the one of the computing devices;
- identifying a double-count between the one of the computing devices and the replacement device in the numerical count of the computing devices; and
- removing the double-count from the numerical count of the computing devices.
9. The system of claim 8, wherein the operations further comprise associating the numerical count of the computing devices to a period of time.
10. The system of claim 8, wherein the operations further comprise counting servers executing the software program.
11. The system of claim 8, wherein the operations further comprise counting mobile devices executing the software program.
12. The system of claim 8, wherein the operations further comprise determining an age of the one of the computing devices.
13. The system of claim 8, wherein the operations further comprise reporting the numerical count of the computing devices to a web-site.
14. The system of claim 8, wherein the operations further comprise retrieving the numerical count of the computing devices.
15. A memory storing instructions that when executed cause a processor to perform operations, the operations comprising:
- storing a numerical count of computing devices executing a software program under license from a software provider to an organization;
- determining a replacement of one of the computing devices executing the software program;
- identifying a replacement device that replaces the one of the computing devices;
- identifying a double-count between the one of the computing devices and the replacement device in the numerical count of the computing devices; and
- removing the double-count from the numerical count of the computing devices.
16. The memory of claim 15, wherein the operations further comprise associating the numerical count of the computing devices to a period of time.
17. The memory of claim 15, wherein the operations further comprise counting servers executing the software program.
18. The memory of claim 15, wherein the operations further comprise counting mobile devices executing the software program.
19. The memory of claim 15, wherein the operations further comprise determining an age of the one of the computing devices.
20. The memory of claim 15, wherein the operations further comprise reporting the numerical count of the computing devices to a web-site.
Type: Application
Filed: Oct 22, 2013
Publication Date: Feb 13, 2014
Applicant: AT&T Intellectual Property I, L.P. (Atlanta, GA)
Inventors: Michael Hardy (Lawrenceville, GA), John DeCastra (Birmingham, AL)
Application Number: 14/059,479
International Classification: G06Q 10/08 (20060101);