Protection status determinations for computing devices

Information

  • Patent Grant
  • 9998344
  • Patent Number
    9,998,344
  • Date Filed
    Tuesday, February 9, 2016
    8 years ago
  • Date Issued
    Tuesday, June 12, 2018
    6 years ago
Abstract
Systems, methods, and media that provide backup protection statuses for computing devices are provided herein. Some methods may include determining a backup status for a first computing device, assigning a protection status for the first computing device based upon a comparison of the backup status and a compliance schema for the first computing device, and transmitting the protection status to a monitoring device utilized by an end user.
Description

The present technology may be generally described as providing systems and methods that allow for assessment and display of protection statuses for computing devices using graphical user interfaces or other notification methods.


BACKGROUND

Physical devices such as hard drives are often backed up to remote storage systems, which may also comprise cloud-based storage media. Common methods for backing up physical devices over time include the capturing of mirrors (e.g., snapshots) as well as incremental files that represent changes to files of a physical device that occur between mirror captures. Regardless of backup methodology, it is often difficult for system administrators to effectively monitor the protection statuses of various computing devices within a network.


SUMMARY OF THE PRESENT TECHNOLOGY

According to some embodiments, the present technology may be directed to methods that comprise: (a) obtaining a backup status for a first computing device; (b) assigning a protection status for the first computing device based upon a comparison of the backup status and a compliance schema for the first computing device; and (c) transmitting the protection status to a monitoring device utilized by an end user.


According to various embodiments, the present technology may be directed to methods that comprise: (a) assigning a compliance schema to a computing device; (b) obtaining backup information for the computing device; (c) comparing the backup information to the compliance schema; (d) generating a compliance message based upon the comparison; and (e) transmitting the compliance message to a monitoring device.


According to exemplary embodiments, the present technology may be directed to systems that may comprise: (a) one or more processors; and (b) logic encoded in one or more tangible media for execution by the one or more processors and when executed operable to perform operations comprising: (i) obtaining a backup status for a first computing device; (ii) assigning a protection status for the first computing device based upon a comparison of the backup status and a compliance schema for the first computing device; and (iii) generating a graphical user interface that includes the protection status.


According to other embodiments, the present technology may be directed to a non-transitory machine-readable storage medium having embodied thereon a program. In some embodiments the program may be executed by a machine to perform a method for determining a protection status for a computing device. The method may comprise: (a) obtaining a backup status for a first computing device; (b) assigning a protection status for the first computing device based upon a comparison of the backup status and a compliance schema for the first computing device; and (c) transmitting the protection status to a monitoring device utilized by an end user.





BRIEF DESCRIPTION OF THE DRAWINGS

Certain embodiments of the present technology are illustrated by the accompanying figures. It will be understood that the figures are not necessarily to scale and that details not necessary for an understanding of the technology or that render other details difficult to perceive may be omitted. It will be understood that the technology is not necessarily limited to the particular embodiments illustrated herein.



FIG. 1 is a block diagram of an exemplary architecture in which embodiments according to the present technology may be practiced;



FIG. 2 is an exemplary graphical user interface in the form of a compliance schema interface;



FIG. 3 is an exemplary graphical user interface in the form of an alert configuration editing interface;



FIGS. 4A and 4B collectively illustrate exemplary graphical user interfaces that allow end users to create custom compliance schemas;



FIG. 5 is an exemplary device protection status interface;



FIGS. 6A-D each illustrate an exemplary graphical user interface that include listings of computing devices which have been categorized according to their protection statuses;



FIG. 7 is a flowchart of an exemplary method for determining and displaying a protection status for a computing device; and



FIG. 8 illustrates an exemplary computing device that may be used to implement embodiments according to the present technology.





DESCRIPTION OF EXEMPLARY EMBODIMENTS

While this technology is susceptible of embodiment in many different forms, there is shown in the drawings and will herein be described in detail several specific embodiments with the understanding that the present disclosure is to be considered as an exemplification of the principles of the technology and is not intended to limit the technology to the embodiments illustrated.


It will be understood that like or analogous elements and/or components, referred to herein, may be identified throughout the drawings with like reference characters. It will be further understood that several of the figures are merely schematic representations of the present technology. As such, some of the components may have been distorted from their actual scale for pictorial clarity.


Generally speaking, the present technology may be directed to systems and methods for analyzing and displaying a protection status for one or more end user computing devices. Broadly, a protection status may represent whether backup services for a computing device are being executed in accordance with a compliance schema established for the computing device. A compliance schema may include, for example, a backup schedule which delineates how often a backup (e.g., a snapshot or incrementals) is executed (e.g., obtained) for or from the computing device.


In some embodiments, a compliance schema may be applied to a plurality of computing devices. Alternatively, a custom compliance schema may be applied to one or more computing devices out of the plurality of computing devices. According to some embodiments, a compliance schema may be stored as a template.


The present technology may monitor or obtain a backup status for a computing device and compare the backup status to the compliance schema which is associated with the computing device. This comparison may be referred to as a protection status. As will be described in greater detail below, the protection status may include not only the comparison of the backup status with the compliance schema, but also related information such as network connectivity information, and entitlement capacity information. If the protection status indicates that the computing device has not been backed up in accordance with the compliance schema, these and other types of related information may be utilized to locate or determine an explanation for why the computing device has not been backed up properly. The protection status may be utilized to generate alert messages that are transmitted to system administrators or other responsible parties. Additionally, the present technology may generate graphical user interfaces (GUI) that allow end users to view a protection status(es) of one or more computing devices. A GUI may also be generated that allows the end user to input compliance schema preferences. For example, the end user may be allowed to define a time bounded threshold that represents a maximum period of time in which a backup must be successfully executed before the compliance schema is considered violated.


In some instances, end users may be allowed to set network connectivity thresholds and/or entitlement capacity thresholds. These and other advantages of the present technology will be discussed in greater detail herein.


Referring now to FIG. 1, there is depicted a schematic diagram of an exemplary architecture 100 for practicing the present technology. Architecture 100 may include a plurality of computing devices that may include an end user computing device 105. It will be understood that any of the end user computing device, hereinafter “computing device 105” may be operatively connected to a replication receiver system 110, which may comprise a local or remote replication receiver system. The end user computing device 105 and the replication receiver system 110 may be communicatively coupled with each another via a network connection 115, such as the Internet etc.


According to some embodiments, the end user computing device 105 and the replication receiver system 110 may reside on the same machine. Thus, in some instances, the network connection 115 may not be required to communicatively couple the end user computing device 105 and the replication receiver system 110.


In some instances, the replication receiver system 110 may communicatively couple with a plurality of end user computing devices.


Generally speaking, the replication receiver system 110 provides file replication services for files that reside on the end user computing device 105. In some instances, the end user computing device 105 may connect to multiple replication receiver systems. In some instances, the replication receiver system 110 may connect to multiple end user computing devices. In some instances, the replication receiver system 110 may be implemented within a cloud-based computing environment. In general, a cloud-based computing environment is a resource that typically combines the computational power of a large model of processors and/or that combines the storage capacity of a large model of computer memories or storage devices. For example, systems that provide a cloud resource may be utilized exclusively by their owners. In some instances, these systems may be accessible to outside users who deploy applications within the computing infrastructure to obtain the benefit of large computational or storage resources.


The cloud may be formed, for example, by a network of web servers, with each web server (or at least a plurality thereof) providing processor and/or storage resources. These servers may manage workloads provided by multiple users (e.g., cloud resource consumers or other users). Typically, each user places workload demands upon the cloud that vary in real time, sometimes dramatically. The nature and extent of these variations typically depend on the type of business associated with the user.


In greater detail, the replication receiver system 110 may include one or more VPN devices adapted to receive information from the gateway router of the end user computing device 105. In some embodiments, the network connection 115 may include an Ethernet switch operatively coupling the VPN devices to a remote replication receiver system 110 adapted to execute at least a portion of methods for replicating files. The replication receiver system 110 may also include disaster recovery servers, physical media input servers, and one or more virus scanning servers.


It will be understood that the primary storage devices for the replication receiver system 110 may include, for example, RAID redundant storage servers, although other types of servers that would be known to one of ordinary skill in the art with the present disclosure before them are likewise contemplated for use in accordance with the present technology.


In some embodiments, the replication receiver system 110 may comprise one or more processors and logic encoded in one or more tangible media for execution by the one or more processors. Generally described, the replication receiver system 110 may be constructed similarly to the computing device 800 described in greater detail herein relative to FIG. 8.


According to some embodiments, the logic may include instructions that when executed by the processor(s) of the replication receiver system 110 perform operations including establishing a compliance schema for one or more computing devices. Again, a compliance schema may be generally described as comprising a time bounded threshold that defines a maximum period of time in which a backup must be successfully executed before the compliance schema is considered violated. For example, a backup threshold of an hour may be established for a computing device, although one of ordinary skill in the art will appreciate that other time frames may also be utilized. Furthermore, the backup threshold may be specific to the day of the week or may be generally applied to each day. For example, an hour threshold may be established for business days (e.g., Monday-Friday), while a second threshold of every eight hours may be established for weekend days (e.g., Saturday and Sunday). It will be understood that the backup threshold may be selectively varied as desired. Thus, a compliance schema may include a single static threshold, a set of static thresholds, or alternatively a dynamic threshold. An exemplary dynamic threshold may be used to selectively modify the compliance schema depending on a variety of factors such as computing device workload and network bandwidth availability, which are both dynamic properties. For example, an increase in workload of a computing device, as detected by the replication receiver system 110 or filter driver may indicate that more frequent changes are occurring to the file system of the computing device. Thus, an increase in workload may be utilized as the basis for selectively decreasing the backup interval for the computing device. That is, backups of the computing device may be obtained more frequently because the file system may be undergoing rapid modifications. Exemplary filter drivers and methods of use that detect changes to the file system of a computing device are described in co-pending U.S. patent application Ser. No. 13/671,498, filed on Nov. 7, 2012, entitled “Efficient File Replication,” which is hereby incorporated by reference herein in its entirety.


Again, it is noteworthy that a compliance schema may include not only the time bounded interval that defines the maximum time between backup executions, but also network connectivity thresholds and entitlement capacity thresholds, or any combinations or permutations thereof. Each of these features will be described in greater detail below with reference to FIGS. 2-4B.


In some instances, the features of the present technology may be implemented via graphical user interfaces (GUI) that are generated by the replication receiver system 110. Thus, in some instances, the logic may include instructions that when executed by the processor(s) of the replication receiver system 110 perform operations including generating graphical user interfaces that allow an end user to specific compliance schema parameters for a compliance schema.



FIGS. 2 and 3 illustrate exemplary graphical user interfaces that may be utilized to establish a compliance schema that may be applied to one or more computing devices. With reference to FIG. 2, an exemplary compliance schema interface 200 is shown as comprising a scheduling section 205, which allows an end user to edit a time schedule, such as a weekly business schedule. The schedule may provide automated compliance scheduling features which are associated with default time intervals. These default time intervals may correspond to hours of operation for a business or an individual.


An alert configuration section 210 is shown as providing indicators 210A-C which represent current levels for the compliance schema in place. For example, level 210A indicates that a maximum time interval for obtaining a backup is eight hours. Stated otherwise, when backup attempts have been at least partially unsuccessful for at least eight hours, the computing device is no longer in compliance with the compliance schema. As illustrated, a red box indicator is shown when the computing device is non-compliant.


Similarly, a network connectivity threshold feature 210B may be set to eight hours. Thus, if network connectivity between the computing device and the replication receiver system 110 is lost for more than eight hours, a yellow diamond indicator may be displayed. In addition, an entitlement capacity feature 210C is set to eighty percent. As reference, if the computing device is allowed to consume a set amount of storage space on the replication receiver system 110, the entitlement capacity threshold relates to the total amount of space available. Thus, a yellow diamond indicator may be displayed when eighty percent of the entitled space available to the computing system has been consumed.


Turning briefly to FIG. 3, an alert configuration editing interface 300 is illustrated. Generally the interface 300 resembles the interface 200 of FIG. 2. When an end user selects an edit button 220 (see FIG. 2), a series of sliders 305A-C that allow the end user to selectively modify the various features of the alert configuration section 210 are displayed. Slider 305A allows the end user to selectively adjust the backup threshold. Slider 305B allows the end user to selectively adjust the network connectivity threshold and slider 305C allows the end user to selectively adjust the entitlement capacity threshold. Once the end user has selectively adjusted the parameters of the compliance schema, the end user may save the schema. Alternatively, the end user may reset the compliance schema to default settings via reset button 310.


Once saved, the compliance schema may be applied to a single computing device, or may be applied to a plurality of computing devices. For example, a compliance schema may be utilized in a corporate setting where the same compliance schema is applied to multiple computing devices within the enterprise. As will be described in greater detail below, in some instances, a compliance schedule may be applied to a plurality of computing devices and one or more custom compliance schedules may be applied to one or more of the plurality of computing devices. Thus, a computing device may be subject to a plurality of compliance schemas.



FIGS. 2 and 3 both illustrate a notification configuration section 215 which allows end users to define not only the type of notifications that are transmitted, but the triggering events associated with the notifications. In general, the notifications may comprise outgoing messages that inform the end user that a computing device or multiple computing devices that are subject to the same compliance schema are not compliant.


In some instances, short message service (SMS) or email alerts may be transmitted to an end user, such as a system administrator, a device owner, or another responsible party. Notifications associated with both red and yellow indicators may be transmitted, logged, and displayed in the notification configuration section 215. As with the alert configuration section, the features of the notification configuration section 215 may be selectively adjusted by the end user when notification edit button 220 is selected.



FIGS. 4A and 4B illustrate exemplary GUIs that allow end users to create custom compliance schemas. FIG. 4A shows a custom alert configuration interface which shows that for “My Macbook” a backup attempt threshold is set to eight hours, via slider 405. FIG. 4B shows that the slider 405 has been selectively adjusted such that the backup attempt threshold is set to two hours.


Once the compliance schedule has been applied to the computing device, the logic may include instructions that when executed by the processor(s) of the replication receiver system 110 perform operations including monitoring the backup services or backup status of the computing device and comparing the same to the compliance schema to determine a protection status for the computing device. In some instances, determining a protection status may include interrogating the replication receiver system 110 to determine a backup status for each of the plurality of computing devices. In other instances, determining a protection status may include interrogating a local replication appliance which is communicatively coupled with the replication receiver system 110.


For example, the replication receiver system 110 may determine previous successful or unsuccessful attempts by the replication receiver system 110 to obtain a backup (e.g., snapshot and/or incrementals) from the computing device. In other instances, such as when the computing device (or a local backup appliance) transmits the backup to the replication receiver system 110 according to a backup schedule, the replication receiver system 110 may compare a backup interval (e.g., expected backup data for a given time period) for the computing device to backup data which is actually received by the replication receiver system 110. If an insufficient amount of backup data is received by the replication receiver system 110 when compared to the backup interval, the computing device may be assigned a protection status of non-compliant. Stated otherwise, if a successful backup has not been received within the defined backup interval (see alert configuration section 210, level 210A of FIG. 2), the computing device may be assigned a protection status of non-compliant. If a computing device is non-compliant due to a failure to backup the computing device within the guidelines included in the backup interval, the protection status may include a red indicator.


Similarly, if network connectivity has been lost between the computing device and the replication receiver system 110 for a period of time that exceeds the established network connectivity threshold, the protection status for the computing device may be categorized as non-compliant. If a computing device is non-compliant due to network connectivity issues, the protection status may include a yellow indicator associated with network connectivity.


According to some embodiments, if a computing device is non-compliant due to entitlement capacity issues, the protection status may include a yellow indicator associated with entitlement capacity.


Thus, as the compliance schema may be multi-faceted, including backup, connectivity, and/or capacity features, the protection status for a computing device may also be multi-faceted. For example, the protection status for the computing device may indicate that the computing device is compliant with regard to backup data, but is non-compliant as to either (or both) network connectivity and entitlement capacity.



FIG. 5 illustrates an exemplary device protection status interface 500. The interface 500 includes a large protection status indicator 505, which in this case includes a red indicator, which indicates that the computing device is non-compliant as to the backup interval associated with the compliance schedule which is applied to the computing device. A device summary pane 510 includes various identifying information regarding the computing device, such as a device type, operating system, appliance name, and IP address. A capacity indicator 515 indicates the total amount of backup storage space available to the device, as well as an incremental indicator that illustrates storage space consumed.


Jobs list 520 includes each backup which has occurred for the computing device. In this instance, the computing device is subject to two backup jobs 520A and 520B, also referred to as compliance schemas. Backup job 520A is shown as being non-compliant, while backup job 520B is shown as compliant. This discrepancy may be due to various issues which prevent backup job 520A from occurring. For example, the replication receiver system associated with backup job 520A may be offline. As mentioned previously, backup job 520A may include a custom compliance schedule, whereas backup job 520B may include a generic compliance schema. Therefore, the computing device is compliant as to the general compliance schema but not the custom compliance schema.


Based upon the non-compliance with backup job 520A, an alert may be transmitted to a system administrator. The system administrator may utilize the alert message to determine that at least a generic backup of the computing device has occurred. Protection status information may be used by the system administrator to quickly and easily identify replication issues within their network, as well as network connectivity and capacity issues.



FIGS. 6A-D collectively illustrate exemplary graphical user interfaces that include listings of computing devices which have been categorized according to their protection statuses. FIG. 6A and 6B includes a list of all protected computing systems subject to at least on compliance schema. When an “All Protected” column is selected, a list of computing devices is shown that includes all computing devices which are covered by one or more compliance schemas.


Selecting the “Troubled” column causes the system to display only computing devices which are non-compliant with at least one compliance schema which has been applied to thereto, as shown in FIG. 6C. Selecting the “Unprotected” column causes the system to display only computing devices which are not currently covered by a compliance schema or subject to replication. Although not shown, the “Troubled” column may include computing devices which are compliant with the compliance schema, but have indications that non-compliance of the computing device is forthcoming. For example, if a backup threshold for a computing device is set to eight hours the device may be compliant, but an examination of the backup status of the computing device indicates that the computing device has not been successfully backed up in over six hours, and a backup schedule that is applied to this computing device requires that the device execute a backup at least every three hours.


Thus, it is noteworthy to mention that the backup schedule that applies to the computing device, which indicates how often replication of the computing device should occur, may or may not correspond to the backup interval established for the compliance schema. For example, the end user may desire to backup the computing device more frequently than required by the system administrator, who establishes the compliance schema.


According to some embodiments, the compliance schema may be stored as a template that may be exported for use with various other applications such as a project planning application or other suitable application. Thus, various default compliance schema templates may be provided to an end user and the end user may select an appropriate template. In some instances, the system may provide a template to a second client for use with a second computing device, the second client being different from a first client that owns a first computing device that utilized the same compliance schema.


It is noteworthy that while the preceding described embodiments referred to the replication receiver system 110 as being used to implement various features of the present technology, a separate or standalone compliance and monitoring system which performs the above-described features may also likewise be utilize in accordance with the present technology.



FIG. 7 is a flowchart of an exemplary method 700 for determining and displaying a protection status for a computing device. In some instances, the method 700 may include a step 705 of defining a compliance schema for the computing device. As described above, the compliance schema may include threshold levels for backup, network connectivity, and/or entitlement capacity. The compliance schema features may be defined using the graphical user interfaces described above with regard to FIGS. 3-5.


Next, the method 700 may comprise a step 710 of assigning (e.g., associating or applying) a compliance schema to a computing device, as well as a step 715 of obtaining backup information for the computing device. In some instances, backup information may include reviewing a log of successful or unsuccessful backup attempts associated with the computing device over a given period of time. For example, the period of time may include the most recent interval of time that corresponds to the backup threshold interval.


In some instances, the method 700 may comprise a step 720 of comparing the backup information to the compliance schema to determine a protection status for the computing device. Again, the protection status may indicate compliance or non-compliance with the various facets of the compliance schema such as backups, network connectivity, and/or entitlement capacity.


When a computing device is determined to be non-compliant with the compliance schema applied thereto the method 700 may comprise a step 725 of generating a compliance message or “alert message” based upon the comparison. The method may include a step 730 of transmitting the compliance message to a monitoring device. In some instances, the method may include a step 735 of generating a graphical user interface that includes a visual indicator that represents the protection status of the computing device.


It will be understood that the foregoing description contemplates displaying the protection status of a particular computing device; the method may also extend to generating GUIs that allow users to define a compliance schema for each device, as well as a compliance schema against a parent entity, or against all client devices for a user, or even a Site Location.


When the compliance schema is defined against a parent entity, the parent's compliance entity applies to all “child” devices that don't have a compliance schema defined specifically for them.



FIG. 8 illustrates an exemplary computing device 800 that may be used to implement an embodiment of the present technology. The computing device 800 of FIG. 8 includes one or more processors 810 and memory 820. Main memory 820 stores, in part, instructions and data for execution by processor 810. Main memory 820 can store the executable code when the computing device 800 is in operation. The computing 800 of FIG. 8 may further include a mass storage device 830, portable storage medium drive(s) 840, output devices 850, user input devices 860, a graphics display 870, and other peripheral devices 880.


The components shown in FIG. 8 are depicted as being connected via a single bus 890. The components may be connected through one or more data transport means. Processor unit 810 and main memory 820 may be connected via a local microprocessor bus, and the mass storage device 830, peripheral device(s) 880, portable storage device 840, and graphics display 870 may be connected via one or more input/output (I/O) buses.


Mass storage device 830, which may be implemented with a magnetic disk drive, an optical disk drive, and/or a solid-state drive is a non-volatile storage device for storing data and instructions for use by processor unit 810. Mass storage device 830 can store the system software for implementing embodiments of the present technology for purposes of loading that software into main memory 820.


Portable storage device 840 operates in conjunction with a portable non-volatile storage medium, such as a floppy disk, compact disk or digital video disc, to input and output data and code to and from the computing device 800 of FIG. 8. The system software for implementing embodiments of the present technology may be stored on such a portable medium and input to the computing device 800 via the portable storage device 840.


Input devices 860 provide a portion of a user interface. Input devices 860 may include an alphanumeric keypad, such as a keyboard, for inputting alphanumeric and other information, or a pointing device, such as a mouse, a trackball, stylus, or cursor direction keys. Additionally, the computing 800 as shown in FIG. 8 includes output devices 850. Suitable output devices include speakers, printers, network interfaces, and monitors.


Graphics display 870 may include a liquid crystal display (LCD) or other suitable display device. Graphics display 870 receives textual and graphical information, and processes the information for output to the display device.


Peripherals 880 may include any type of computer support device to add additional functionality to the computing device. Peripheral device(s) 880 may include a modem or a router.


The components contained in the computing device 800 of FIG. 8 are those typically found in computing devices that may be suitable for use with embodiments of the present technology and are intended to represent a broad category of such computer components that are well known in the art. Thus, the computing device 800 of FIG. 8 can be a personal computer, hand held computing device, telephone, mobile computing device, workstation, server, minicomputer, mainframe computer, or any other computing device. The computer can also include different bus configurations, networked platforms, multi-processor platforms, etc. Various operating systems can be used including UNIX, Linux, Windows, Macintosh OS, Palm OS, and other suitable operating systems.


Some of the above-described functions may be composed of instructions that are stored on storage media (e.g., computer-readable medium). The instructions may be retrieved and executed by the processor. Some examples of storage media are memory devices, tapes, disks, and the like. The instructions are operational when executed by the processor to direct the processor to operate in accord with the technology. Those skilled in the art are familiar with instructions, processor(s), and storage media.


It is noteworthy that any hardware platform suitable for performing the processing described herein is suitable for use with the systems and methods provided herein. Computer-readable storage media refer to any medium or media that participate in providing instructions to a central processing unit (CPU), a processor, a microcontroller, or the like. Such media may take forms including, but not limited to, non-volatile and volatile media such as optical or magnetic disks and dynamic memory, respectively. Common forms of computer-readable storage media include a floppy disk, a flexible disk, a hard disk, magnetic tape, any other magnetic storage medium, a CD-ROM disk, digital video disk (DVD), any other optical storage medium, RAM, PROM, EPROM, a FLASHEPROM, any other memory chip or cartridge.


Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be coupled with the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).


The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. Exemplary embodiments were chosen and described in order to best explain the principles of the present technology and its practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.


Aspects of the present invention are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.


These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.


The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.


The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.


While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. The descriptions are not intended to limit the scope of the technology to the particular forms set forth herein. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments. It should be understood that the above description is illustrative and not restrictive. To the contrary, the present descriptions are intended to cover such alternatives, modifications, and equivalents as may be included within the spirit and scope of the technology as defined by the appended claims and otherwise appreciated by one of ordinary skill in the art. The scope of the technology should, therefore, be determined not with reference to the above description, but instead should be determined with reference to the appended claims along with their full scope of equivalents.

Claims
  • 1. A method, comprising: interrogating a replication receiver system to determine a backup status for a first computing device;assigning a protection status to the first computing device based upon a comparison of the backup status and a compliance schema for the first computing device, wherein the compliance schema comprises a backup interval for the first computing device based upon at least one of a time-bounded interval between backups,a network connectivity threshold, an entitlement capacity, and a computing device workload;monitoring a first computing device workload of the first computing device using a filter driver agent installed on the first computing device;dynamically adjusting the backup interval when the first computing device workload is increasing or decreasing as detected by the filter driver agent; andgenerating a graphical user interface that illustrates the protection status.
  • 2. The method according to claim 1, wherein the protection status indicating whether backup services for the first computing device are being executed in accordance with the compliance schema.
  • 3. The method according to claim 2, wherein the time-bounded threshold defines a maximum period of time in which a backup must be successfully executed before the compliance schema is considered violated.
  • 4. The method according to claim 3, further comprising generating the compliance schema from user-defined thresholds.
  • 5. The method according to claim 4, further comprising storing the compliance schema as a template.
  • 6. The method according to claim 5, further comprising providing the template to a second client for use with a second computing device, the second client being different from a first client that owns the first computing device.
  • 7. The method according to claim 1, further comprising transmitting the protection status to a monitoring device utilized by an end user to locate and determine an explanation for why the first computing device has not been backed up properly.
  • 8. The method according to claim 1, wherein the backup status comprises any of network connectivity information, backup attempt information, entitlement capacity information, and any combination thereof.
  • 9. A system, comprising: one or more processors; andlogic encoded in one or more tangible media for execution by the one or more processors and when executed operable to perform operations comprising:interrogating a replication receiver system to determine a backup status for a first computing device;assigning a protection status to the first computing device based upon a comparison of the backup status and a compliance schema for the first computing device, wherein the compliance schema comprises a backup interval for the first computing device based upon at least one of a time-bounded interval between backups, a network-connectivity threshold, an entitlement capacity, and a computing device workload;monitoring a first computing device workload of the first computing device using a filter driver agent on the first computing device, the filter driver agent being installed in a layer of the operating system of the first computing device and detecting write operations occurring in the operating system;dynamically adjusting the backup interval when the first computing device workload is increasing or decreasing based on changes in the computing device workload measured by the filter driver agent; andgenerating a graphical user interface that illustrates the protection status.
  • 10. The system according to claim 9, wherein the logic when executed is further operable to perform operations comprising applying a compliance schema to the first computing device.
  • 11. The system according to claim 10, wherein the logic when executed is further operable to perform operations comprising applying a custom compliance schema to the first computing device.
  • 12. The system according to claim 11, wherein the logic when executed is further operable to perform operations comprising transmitting an alert message when the protection status indicates that the first computing device has not been backed up according to the compliance schema.
  • 13. The system according to claim 12, wherein the time-bounded threshold defines a maximum period of time in which a backup must be successfully executed before the compliance schema is considered violated.
  • 14. The system according to claim 13, wherein the logic when executed is further operable to perform operations comprising selectively modifying the compliance schema using dynamic thresholds.
  • 15. The system according to claim 14, wherein the logic when executed is further operable to perform operations comprising storing the compliance schema as a template.
  • 16. The system according to claim 15, further comprising providing the template to a second client for use with a second computing device, the second client being different from a first client that owns the first computing device.
  • 17. A method, comprising: interrogating a replication receiver system to determine a backup status for each of a plurality of computing devices;assigning a protection status to each of the plurality of computing devices based upon a comparison of the backup status for each of the plurality of computing devices and a compliance schema for each of the plurality of computing devices, wherein the compliance schema comprises a backup interval for each of the plurality of computing devices based upon at least one of a time-bounded interval between backups, a network-connectivity threshold, an entitlement capacity, and a computing device workload, andwherein if an insufficient amount of backup data is received by the replication receiver system when compared to a backup interval in a compliance schema, a computing device of the plurality of computing devices associated with the insufficient amount of backup data is assigned a protection status of non-compliant;sorting the plurality of computing devices into groups according to their protection statuses;generating a graphical user interface that includes one or more lists that comprise the plurality of computing devices which have been sorted according to their protection statuses; andautomatically taking a predetermined action with respect to at least one of the plurality of computing devices in the one or more lists based upon the protection statuses.
  • 18. The method according to claim 17, wherein the predetermined action comprises: determining whether or not backup services for the plurality of computing devices are being executed in accordance with the assigned compliance schema established for the plurality of computing devices; and transmitting alert messages to a monitoring device when the backup services are not being executed in accordance with the assigned compliance schema.
  • 19. The method according to claim 17, further comprising transmitting the alert message to the monitoring device via at least one of an SMS message and an email.
FIELD OF THE INVENTION

This utility patent application is a continuation of U.S. patent application Ser. No. 13/789,565, filed on Mar. 7, 2013 titled “Protection Status Determinations for Computing Devices”, which is hereby incorporated by reference herein in its entirety, including all references and appendices cited therein.

US Referenced Citations (225)
Number Name Date Kind
5379412 Eastridge et al. Jan 1995 A
5574905 deCarmo Nov 1996 A
5860107 Patel Jan 1999 A
6122629 Walker et al. Sep 2000 A
6205527 Goshey et al. Mar 2001 B1
6233589 Balcha et al. May 2001 B1
6272492 Kay Aug 2001 B1
6411985 Fujita et al. Jun 2002 B1
6604236 Draper et al. Aug 2003 B1
6629110 Cane et al. Sep 2003 B2
6651075 Kusters et al. Nov 2003 B1
6971018 Witt et al. Nov 2005 B1
7024581 Wang et al. Apr 2006 B1
7085904 Mizuno et al. Aug 2006 B2
7266655 Escabi, II et al. Sep 2007 B1
7401192 Stakutis et al. Jul 2008 B2
7406488 Stager et al. Jul 2008 B2
7546323 Timmins Jun 2009 B1
7620765 Ohr et al. Nov 2009 B1
7631155 Bono et al. Dec 2009 B1
7647338 Lazier et al. Jan 2010 B2
7676763 Rummel Mar 2010 B2
7730425 de los Reyes et al. Jun 2010 B2
7743038 Goldick Jun 2010 B1
7752487 Feeser et al. Jul 2010 B1
7769731 O'Brien Aug 2010 B2
7797582 Stager et al. Sep 2010 B1
7809688 Cisler et al. Oct 2010 B2
7832008 Kraemer Nov 2010 B1
7844850 Yasuzato Nov 2010 B2
7873601 Kushwah Jan 2011 B1
7930275 Chen et al. Apr 2011 B2
7966293 Owara et al. Jun 2011 B1
8037345 Iyer et al. Oct 2011 B1
8046632 Miwa et al. Oct 2011 B2
8060476 Afonso et al. Nov 2011 B1
8099391 Monckton Jan 2012 B1
8099572 Arora et al. Jan 2012 B1
8117163 Brown et al. Feb 2012 B2
8200926 Stringham Jun 2012 B1
8224935 Bandopadhyay et al. Jul 2012 B1
8244678 Hartland et al. Aug 2012 B1
8244914 Nagarkar Aug 2012 B1
8245156 Mouilleseaux et al. Aug 2012 B2
8260742 Cognigni et al. Sep 2012 B2
8279174 Jee et al. Oct 2012 B2
8296410 Myhill et al. Oct 2012 B1
8321688 Auradkar et al. Nov 2012 B2
8332442 Greene Dec 2012 B1
8352717 Campbell et al. Jan 2013 B2
8381133 Iwema et al. Feb 2013 B2
8402087 O'Shea et al. Mar 2013 B2
8407190 Prahlad et al. Mar 2013 B2
8412680 Gokhale et al. Apr 2013 B1
8417674 Provenzano Apr 2013 B2
8504785 Clifford et al. Aug 2013 B1
8549432 Warner Oct 2013 B2
8554918 Douglis Oct 2013 B1
8572337 Gokhale et al. Oct 2013 B1
8589350 Lalonde et al. Nov 2013 B1
8589913 Jelvis et al. Nov 2013 B2
8600947 Freiheit et al. Dec 2013 B1
8601389 Schulz et al. Dec 2013 B2
8606752 Beatty et al. Dec 2013 B1
8639917 Ben-Shaul et al. Jan 2014 B1
8676273 Fujisaki Mar 2014 B1
8745003 Patterson Jun 2014 B1
8886611 Caputo Nov 2014 B2
8924360 Caputo Dec 2014 B1
8954544 Edwards Feb 2015 B2
9104621 Caputo Aug 2015 B1
9110964 Shilane et al. Aug 2015 B1
9213607 Lalonde et al. Dec 2015 B2
9235474 Petri et al. Jan 2016 B1
9292153 Edwards et al. Mar 2016 B1
9397907 Edwards et al. Jul 2016 B1
9559903 Edwards Jan 2017 B2
20010034737 Cane et al. Oct 2001 A1
20010056503 Hibbard Dec 2001 A1
20020124124 Matsumoto Sep 2002 A1
20020169740 Korn Nov 2002 A1
20030011638 Chung Jan 2003 A1
20030158873 Sawdon et al. Aug 2003 A1
20030177293 Bilak et al. Sep 2003 A1
20030208492 Winiger et al. Nov 2003 A1
20040030852 Coombs Feb 2004 A1
20040044707 Richard Mar 2004 A1
20040073560 Edwards Apr 2004 A1
20040073677 Honma Apr 2004 A1
20040093474 Lin et al. May 2004 A1
20040098423 Chigusa May 2004 A1
20040233924 Bilak et al. Nov 2004 A1
20040260973 Michelman Dec 2004 A1
20050010835 Childs et al. Jan 2005 A1
20050027748 Kisley Feb 2005 A1
20050114290 Borthakur et al. May 2005 A1
20050154937 Achiwa Jul 2005 A1
20050171979 Stager et al. Aug 2005 A1
20050223043 Randal et al. Oct 2005 A1
20050273654 Chen et al. Dec 2005 A1
20050278583 Lennert et al. Dec 2005 A1
20050278647 Leavitt et al. Dec 2005 A1
20060013462 Sadikali Jan 2006 A1
20060047720 Kulkarni et al. Mar 2006 A1
20060064416 Sim-Tang Mar 2006 A1
20060224636 Kathuria et al. Oct 2006 A1
20070033301 Aloni et al. Feb 2007 A1
20070038884 Campbell Feb 2007 A1
20070061385 Clark et al. Mar 2007 A1
20070112895 Ahrens et al. May 2007 A1
20070113032 Kameyama May 2007 A1
20070143497 Kottomtharayil Jun 2007 A1
20070176898 Suh Aug 2007 A1
20070179995 Prahlad Aug 2007 A1
20070180207 Garfinkle Aug 2007 A1
20070198789 Clark et al. Aug 2007 A1
20070204166 Tome et al. Aug 2007 A1
20070208918 Harbin et al. Sep 2007 A1
20070220029 Jones et al. Sep 2007 A1
20070226400 Tsukazaki Sep 2007 A1
20070233699 Taniguchi et al. Oct 2007 A1
20070250302 Xu et al. Oct 2007 A1
20070260842 Faibish et al. Nov 2007 A1
20070276916 McLoughlin et al. Nov 2007 A1
20070283017 Anand et al. Dec 2007 A1
20070283343 Aridor et al. Dec 2007 A1
20070288525 Stakutis et al. Dec 2007 A1
20070288533 Srivastava et al. Dec 2007 A1
20070294321 Midgley et al. Dec 2007 A1
20080005468 Faibish et al. Jan 2008 A1
20080010422 Suzuki et al. Jan 2008 A1
20080027998 Hara Jan 2008 A1
20080036743 Westerman et al. Feb 2008 A1
20080082310 Sandorti et al. Apr 2008 A1
20080133622 Brown et al. Jun 2008 A1
20080141018 Tanaka et al. Jun 2008 A1
20080154979 Saitoh Jun 2008 A1
20080162590 Kundu et al. Jul 2008 A1
20080162607 Torii et al. Jul 2008 A1
20080201315 Lazier et al. Aug 2008 A1
20080229050 Tillgren Sep 2008 A1
20080307345 Hart et al. Dec 2008 A1
20080307527 Kaczmarski et al. Dec 2008 A1
20090089253 Huang et al. Apr 2009 A1
20090094427 Sano Apr 2009 A1
20090164527 Spektor et al. Jun 2009 A1
20090185500 Mower et al. Jul 2009 A1
20090216973 Nakajima et al. Aug 2009 A1
20090248755 Watanabe Oct 2009 A1
20090309849 Iwema et al. Dec 2009 A1
20090319653 Lorenz et al. Dec 2009 A1
20090327964 Mouilleseaux et al. Dec 2009 A1
20100077165 Lu et al. Mar 2010 A1
20100095077 Lockwood Apr 2010 A1
20100104105 Schmidt et al. Apr 2010 A1
20100107155 Banerjee et al. Apr 2010 A1
20100114832 Lillibridge et al. May 2010 A1
20100165947 Taniuchi et al. Jul 2010 A1
20100179941 Agrawal Jul 2010 A1
20100179973 Carruzzo Jul 2010 A1
20100192103 Cragun et al. Jul 2010 A1
20100205152 Ansari Aug 2010 A1
20100228999 Maheshwari et al. Sep 2010 A1
20100235831 Dittmer Sep 2010 A1
20100262637 Akagawa et al. Oct 2010 A1
20100268689 Gates et al. Oct 2010 A1
20100318748 Ko et al. Dec 2010 A1
20100325377 Lango et al. Dec 2010 A1
20100332454 Prahlad et al. Dec 2010 A1
20110041004 Miwa et al. Feb 2011 A1
20110047405 Marowsky-Bree et al. Feb 2011 A1
20110055399 Tung et al. Mar 2011 A1
20110055471 Thatcher et al. Mar 2011 A1
20110055500 Sasson et al. Mar 2011 A1
20110082998 Boldy et al. Apr 2011 A1
20110106768 Khanzode et al. May 2011 A1
20110154268 Trent, Jr. et al. Jun 2011 A1
20110218966 Barnes et al. Sep 2011 A1
20110238937 Murotani et al. Sep 2011 A1
20110264785 Newman et al. Oct 2011 A1
20110265143 Grube et al. Oct 2011 A1
20110295811 Cherkasova Dec 2011 A1
20110302502 Hart et al. Dec 2011 A1
20120013540 Hogan Jan 2012 A1
20120065802 Seeber et al. Mar 2012 A1
20120084501 Watanabe et al. Apr 2012 A1
20120124307 Ashutosh et al. May 2012 A1
20120130956 Caputo May 2012 A1
20120131235 Nageshappa et al. May 2012 A1
20120179655 Beatty et al. Jul 2012 A1
20120204060 Swift et al. Aug 2012 A1
20120210398 Triantafillos et al. Aug 2012 A1
20120215743 Triantafillos Aug 2012 A1
20130018946 Brown et al. Jan 2013 A1
20130024426 Flowers et al. Jan 2013 A1
20130036095 Titchener et al. Feb 2013 A1
20130091183 Edwards et al. Apr 2013 A1
20130091471 Gutt et al. Apr 2013 A1
20130166511 Ghatty et al. Jun 2013 A1
20130234402 Fietz Sep 2013 A1
20130238562 Kumarasamy Sep 2013 A1
20130238752 Park et al. Sep 2013 A1
20130318046 Clifford et al. Nov 2013 A1
20140006858 Helfman et al. Jan 2014 A1
20140032498 Lalonde et al. Jan 2014 A1
20140040580 Kripalani Feb 2014 A1
20140047081 Edwards Feb 2014 A1
20140052694 Dasari et al. Feb 2014 A1
20140053022 Forgette et al. Feb 2014 A1
20140089619 Khanna et al. Mar 2014 A1
20140101113 Zhang et al. Apr 2014 A1
20140149358 Aphale et al. May 2014 A1
20140189680 Kripalani Jul 2014 A1
20140201137 Vibhor Jul 2014 A1
20140201144 Vibhor Jul 2014 A1
20140244599 Zhang et al. Aug 2014 A1
20140303961 Leydon et al. Oct 2014 A1
20150046404 Caputo Feb 2015 A1
20150095691 Edwards Apr 2015 A1
20160054911 Edwards et al. Feb 2016 A1
20160055062 Petri et al. Feb 2016 A1
20160105312 Edwards Apr 2016 A1
20160110261 Parab et al. Apr 2016 A1
20170075719 Scallan et al. Mar 2017 A1
20170090786 Parab et al. Mar 2017 A1
Non-Patent Literature Citations (8)
Entry
Li et al., “Efficient File Replication,” U.S. Appl. No. 13/671,498, filed Nov. 7, 2012.
Advisory Action, dated Feb. 7, 2017, U.S. Appl. No. 14/977,581, filed Dec. 21, 2015.
Final Office Action, dated Feb. 9, 2017, U.S. Appl. No. 14/522,527, filed Oct. 23, 2014.
Final Office Action, dated Mar. 6, 2017, U.S. Appl. No. 13/633,695, filed Oct. 2, 2012.
Non-Final Office Action, dated Mar. 22, 2017, U.S. Appl. No. 14/864,850, filed Sep. 24, 2015.
Advisory Action, dated Mar. 30, 2017, U.S. Appl. No. 14/977,581, filed Dec. 21, 2015.
Notice of Allowance, dated Apr. 6, 2017, U.S. Appl. No. 13/889,164, filed May 7, 2013.
Petri, Robert et al., “Cloud Storage Using Merkle Trees,” U.S. Appl. No. 13/889,164, 33 pages.
Related Publications (1)
Number Date Country
20160162349 A1 Jun 2016 US
Continuations (1)
Number Date Country
Parent 13789565 Mar 2013 US
Child 15019951 US