An application programming interface protocol is provided for making
requests to registered applications regarding applications' dependency
information so that a table of dependency information relating to a
target object can be recursively generated. When all of the applications'
dependencies are captured at the same time for given volume(s) or
object(s), the entire volume's or object's program and data dependency
information may be maintained for the given time. With this dependency
information, the computer system advantageously knows not only which
files and in which order to freeze or flush files in connection with a
backup, such as a snapshot, or restore of given volume(s) or object(s),
but also knows which volume(s) or object(s) can be excluded from the
freezing process. After a request by a service for application dependency
information, the computer system can translate or process dependency
information, thereby ordering recovery events over a given set of volumes
or objects.