Patent Publication Number: US-8997244-B2

Title: Automatic software audit system and associated method

Description:
This application claims the benefit of Taiwan application Serial No. 101141142, filed Nov. 6, 2012, the subject matter of which is incorporated herein by reference. 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The invention relates in general to an audit system and associated method, and more particularly to an automatic software audit system and associated method. 
     2. Description of the Related Art 
     Accompanied with fast advancements of computer technologies, various kinds of applications are developed. As computers carrying all kinds of application software further promote the prevalence of computers in implementations of many aspects, computers are involved in almost all commercial activities. Application software utilized by common enterprises is extremely diversified. In common enterprises, on top of official document management systems, application software utilized may also include statistical software for statistical staff, accounting systems for accounting staff and graphics software for graphics staff. It is a common occurrence that application software of different functions is provided within a same company or even within a same department. 
     With a growing number of company staff, it is difficult for a conventional manual audit approach to ensure that everyone utilizes legal software. In the current world where intellectual properties are valued with great importance, illegal use of piracy software may be devastating to company reputations. Therefore there is a need for a solution that effectively audits software utilized in a company. 
     SUMMARY OF THE INVENTION 
     The disclosure is directed to an automatic software audit system and associated method. 
     According to the disclosure, an automatic software audit system is provided. The automatic software audit system includes a client and a server. The server includes a network interface, a software installation record database, a software audit rule database, a software release database, and a central processing unit (CPU). The network interface is coupled to the client. The software installation record database stores a software installation record of the client. The software audit rule database stores a software audit rule. The software release database stores a software release record of the client. The CPU installs an agent program to the client to collect the software installation record, and generates a software audit result of the client according to the software installation record, the software audit rule and the software release record. 
     According to the disclosure, an automatic software audit method is further provided. The automatic software audit method includes steps of: storing a software release record of a client to a software release database of a server; storing a software audit rule to a software audit rule database of the server; installing an agent program to the client to collect a software installation record of the client, and storing the software installation record to a software installation record database of the server; and generating a software audit result of the client according to the software installation record, the software audit rule and the software release record. 
     The above and other aspects of the invention will become better understood with regard to the following detailed description of the preferred but non-limiting embodiments. The following description is made with reference to the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a schematic diagram of an automatic audit system according to a first embodiment. 
         FIG. 2  is a block diagram of a server according to a first embodiment. 
         FIG. 3  is a flowchart of an automatic software audit method according to a first embodiment. 
         FIG. 4  is a block diagram of a server according to a second embodiment. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     First Embodiment 
       FIG. 1  shows a schematic diagram of an automatic audit system according to a first embodiment;  FIG. 2  shows a block diagram of a server according to the first embodiment;  FIG. 3  shows a flowchart of an automatic software audit method according to the first embodiment. Referring to  FIGS. 1 to 3 , an automatic software audit system  1  includes a client  11  and a server  12 . The server  12  communicates with the client  11  via a network  13 . For illustration purposes, only one client  11  is depicted in  FIG. 1 . In an alternative embodiment, multiple clients  11  may be included. 
     In  FIG. 2 , a server  12   a  is taken as an example of the server  12 . The server  12   a  includes a network interface  121 , a central processing unit (CPU)  122 , a software installation record database  123 , a software audit rule database  124 , a software release database  125 . The network interface  121  is coupled to the client  11  via the network  13 . The automatic software audit method, applicable to the foregoing automatic software audit system  1 , includes the following steps. In step  31 , a software release record R 3  of the client  11  is stored to the software release database  125  of the server  12   a . The software release record R 3  chiefly includes a software code, a user name, a start time and an end time. 
     In step  32 , the CPU  122  stores a software audit rule R 2  to the software audit rule database  124  of the server  12   a . The software audit rule R 2  chiefly includes a main file name, a main file description and a main file message-digest algorithm 5 (MD5). The software audit rule R 2  may further include a software code, an installation path, a file size and a license method. 
     In step  33 , the CPU  122  installs an agent program to the client  11  to collect a software installation record R 1  of the client  11 , and stores the software installation record R 1  to the software installation record database  123 . The software installation record R 1  chiefly includes a software name, a path name and a main file MD5, and a license method. The license method may be a registry key, a license file, a license server or free software. The software installation record R 1  may further include a software version, a software developer, a user name, a main file name, a main file size, and a main file description. 
     In step  34 , the CPU  122  generates a software audit result R 4  according to the software release record R 3 , the software audit rule R 2  and the software installation record R 1 . The software audit result R 4  chiefly includes a software code, a user name, a computer name and an audit time. 
     Second Embodiment 
       FIG. 4  shows a block diagram of a server according to a second embodiment. Referring to  FIGS. 2 and 4 , a main difference of the second embodiment from the first embodiment is that, a server  12   b  further includes an audit record database  126 , a software basic information database  127  and a whitelist database  128 . The CPU  122  stores a software audit result R 4  to the audit record database  126 . The audit record database  126  records and files the software audit result R 4  for future issue retrospection and inquiry. 
     The CPU  122  stores software basic information R 5  of software to be audited to the software basic information database  127 . The software basic information R 5  chiefly includes a software type, a software name, a software version, a software developer and a software code. Thus, the CPU  122  is allowed to establish the software audit rule R 2  further according to the software basic information R 5 . 
     The CPU  122  stores a whitelist R 6  to the whitelist database  128 . The whitelist R 6  chiefly includes a user code, a user name, a start time and an end time. The CPU  122  determines whether to audit the client  11  according to the whitelist R 6 . When a user from the client  11  matches a user name recorded in the whitelist R 6 , the CPU  122  does not audit the client  11 . For example, trial-version software and test software may be recorded into the whitelist R 6 , and a user carrying out the trial or a user of a project application may also be included into the whitelist R 6 . The CPU  122  is allowed to more accurately generate the software audit result R 4  through the whitelist R 6 . 
     Further, the CPU  122  may also inspect whether the software audit rule R 2  is complete according to user feedback information. When the software audit rule R 2  is incomplete, the CPU  122  modifies the software audit rule R 2  according to the feedback information. For example, when the software audit result R 4  indicates that a large number of users utilize piracy software, it implies that the software check rule R 2  is incomplete. 
     As the software audit rule R 2  and the software installation record R 1  both include a license method, the CPU  122  may further perform in-depth comparison. For example, a user applies for certain software and receives the software released from the server  12   b , and installs an illegal license file to a native at the client  11 . Since the license methods are different, the CPU  122  is capable of concluding the illegal use at the client  11  through comparison. 
     Therefore, the automatic software audit system  1  and the automatic software audit method are capable of safeguarding against illegal use of software and precluding piracy software. Further, the automatic software audit system  1  and the automatic software audit method offer centralized management on internal software properties and utilization conditions in an enterprise to promote management convenience. 
     While the invention has been described by way of example and in terms of the preferred embodiments, it is to be understood that the invention is not limited thereto. On the contrary, it is intended to cover various modifications and similar arrangements and procedures, and the scope of the appended claims therefore should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements and procedures.