This disclosure relates to a method and apparatus of accessing and dynamically provisioning a storage server, and more specifically, configuring and/or provisioning the storage server responsive to a client request for data backup or similar storage server operations.
Clients and client machines operating on a local area network (LAN), wide area network (WAN) and/or enterprise network are often seeking access to a centralized data backup server or cloud server device. Like many server functions, operations and services, data backup operations are generally not performed continuously on the communication network. In fact, server backup operations may be referred to as intermittently conducted server operations that are performed on an ‘as needed’ basis.
One embodiment of the present application may include a method of performing a data backup operation across a network, the method may include receiving a request to perform a data backup operation at a server, identifying at least one agent application operating on a remote network device, transmitting at least one setup file to the remote network device to be installed via the agent application, and performing the data backup operation responsive to installing the at least one setup file on the remote network device.
Another example embodiment may provide an apparatus configured to perform a data backup operation across a network. The apparatus may include a receiver configured to receive a request to perform a data backup operation at a server. The apparatus may also include a processor configured to identify at least one agent application operating on a remote network device, and a transmitter configured to transmit at least one setup file to the remote network device to be installed via the agent application. The processor is further configured to perform the data backup operation responsive to the at least one setup file being installed on the remote network device.
It will be readily understood that the components of the present application, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following detailed description of the embodiments of a method, apparatus, and system, as represented in the attached figures, is not intended to limit the scope of the application as claimed, but is merely representative of selected embodiments of the application.
The features, structures, or characteristics of the application described throughout this specification may be combined in any suitable manner in one or more embodiments. For example, the usage of the phrases “example embodiments”, “some embodiments”, or other similar language, throughout this specification refers to the fact that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment of the present application. Thus, appearances of the phrases “example embodiments”, “in some embodiments”, “in other embodiments”, or other similar language, throughout this specification do not necessarily all refer to the same group of embodiments, and the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
In addition, while the term “message” has been used in the description of embodiments of the present application, the application may be applied to many types of network data, such as, packet, frame, datagram, etc. For purposes of this application, the term “message” also includes packet, frame, datagram, and any equivalents thereof. Furthermore, while certain types of messages and signaling are depicted in exemplary embodiments of the application, the application is not limited to a certain type of message, and the application is not limited to a certain type of signaling.
According to example embodiments of the present application, a server may be a local or a remote computer, a server and/or a related computing device. A client may be any computer, machine or related computing device that is connected directly to the server or over a remote network connection to the server. The client or client device may be a computer, laptop, mobile, wireless or cellular phone, a PDA, a tablet, a client, a server or any device that contains a processor and/or memory, whether that processor or memory performs a function related to an embodiment of the application.
A server agent may be a server application that is a web-based application that permits the server to manage and/or communicate with one or more client machines. A secure network channel may be setup and established between the server machine and the client machine via the agent application. The secure network channel may provide connections over which data packets may be exchanged. The network channel may pass through a wide area network (WAN) (e.g. the Internet) or through a private local area network (LAN). A client agent application may be an application that includes a process running on the client machine. The client agent application accepts connections from the server agent application and assists with setting up a channel and transmitting and receiving commands and data.
One example method of communicating between the server machine 102 and the client machine 103 is illustrated in detail below with reference to
In operation, the server 102 browses for a particular client machine 103 viewable from the server agent application 121. The server plug-in initiates a connection via a secure channel to an client agent application 131 of the remote client machine 103. The client agent application 131 operating on the client machine 103 accepts and acknowledges the connection establishment by transferring an acceptance message back to the server agent application 121. After session establishment, the server 102 may receive a notification or web browser-based indicator that commands may now be received by the client machine 103. The server 102 may then launch a process to be executed on the client machine 103.
Other network configurations may include a wide area network (WAN), such as the Internet, that is used to connect one or more communications devices. The VSA browser 210 may be a network portal, browser or other communication medium or device that is used to establish a connection from the server machine 102 to the remotely client machine 103. The virtual system server (VSA) 340 may be an interface-based website that is accessible via a user terminal computer or other user interface device. The VSA browser interface 210 is a functional interface that may be used to perform operations and/or functions and control program execution.
According to one example embodiment with reference to
According to one example embodiment, a storage server or virtual storage server may be setup, provisioned, operated and executed on-the-fly responsive to a received command or other trigger operation. The dynamically provisioned storage server may be setup, provisioned and configured to begin storing data, backing-up data, retrieving data and processing requests to perform one or more of the above-noted operations. The dynamically provisioned storage server may be a virtual server, one server device, multiple server devices, multiple computing devices, etc. The storage server may not exist within a particular network operated by clients requesting such storage functions. The storage server may be a provisional server that is accessible from a third party service network (i.e., cloud computing services). The storage server may be identified, setup and used to perform a data backup operation responsive to receiving and processing the client request.
The backup server function may not operate except when a client request is received. The authentication of the client seeking access to the storage server may be performed at the time of performing a backup operation. For example, a storage location may be unknown prior to a backup or storage server related operation. As a result of receiving the data backup operation request, the server may be identified among a list of available devices that can provide such a service either within the same network as the client computing device that sent the request or via a third party service network. The request for data backup operations may be a message that invokes a device selection, an estimated data backup size, an authentication operation to authenticate the client requesting device, and/or a target storage location being defined. The message may include any or more of the above-noted information parameters.
In operation, during a storage device setup operation, there may not be any port listening or any dedicated ports assigned to receive data backup requests. The VSA browser 210 may be used to setup or schedule a backup operation by notifying a server 220 to launch a set of script operations. For example, the VSA browser 210 may receive the client request for a backup and notify a server 220 to launch one or more script files and/or dynamic linked library files (DLLs) to the agents of corresponding devices configured to provide backup functions.
One agent 230 may be operating as a backup device that receives a backup DLL file from the server 232 responsive to the received request for backup services. The backup DLL 232 may be received and executed to launch a backup operator. Another agent 240 may be part of a server device that receives a storage server DLL 242 from the server 220 responsive to the backup request being received. Once the DLLs are installed, the backup DLL 232 may authenticate the storage server DLL 242 and identify the client request and authenticate the requesting client device. Then, the backup operation may be signaled to begin via the storage server DLL 242. Both the DLLs 232 and 242 may exchange a session key for authentication. As a result, the storage server DLL 242 may transmit a request to begin to the remote storage server 250, database or other device located at a remote or internal location.
According to example, embodiments, there are a number of ways a backup operation may be initiated. For example, a one-time backup operation may be triggered by the customer via a web user interface. The backup(s) may be scheduled to begin at regular intervals. These backups are then triggered by a separate service operating on the server. Backups can also be triggered by file changes detected on the agent (e.g., continuous data protection measures). In this example, the agent is backed up by having a process for detecting changes to certain files, and this corresponding process transmits requests to the server to initiate a backup on the agent application.
The client device and the agent host may be the same application/device. The backup DLL and the optional continuous data protection DLL may also be part of the same client device. The dedicated server is not normally used for storage but may delegate the responsibility of setting up the storage server. This server may operate as an agent in conjunction with the server. The server downloads the necessary objects to the agent machine, and the agent runs them as needed. In general, the agent is separate from the server. However, the agent and the server may be the same machine. The storage server can be either in the cloud but could be any provider or even on the customer's local machines and network.
The request for data backup may be received from a client device operating on the network. The client may be setup to communicate with the server via a client/server network system model. The request for data backup may include a backup schedule that includes at least one time to perform the data backup operation. The system 300 may identify at least one agent application operating on a remote network device by identifying a first agent application and a second agent application. Also, the setup file may include one or more DLLs including a backup dynamic linked library (DLL) sent to the first agent and a storage server DLL sent to the second agent application.
An authentication operation may be performed between the first agent application and the second agent application, and assuming the authentication was successful, the data backup operation may be created as a task to be assigned to a storage server. The data backup task may be sent to a remote database which is configured to receive and store the backup data. The remote database may be a cloud server or database that is initiated to store backup data via a data feed provided in response to the data backup task being created. The remote database or information storage 340 is configured to perform backup data operations only responsive to the request to perform the data backup operation being received. Also, the authentication operation may be performed responsive to the data backup operation being performed via the authentication module 320.
The operations of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a computer program executed by a processor, or in a combination of the two. A computer program may be embodied on a computer readable medium, such as a storage medium. For example, a computer program may reside in random access memory (“RAM”), flash memory, read-only memory (“ROM”), erasable programmable read-only memory (“EPROM”), electrically erasable programmable read-only memory (“EEPROM”), registers, hard disk, a removable disk, a compact disk read-only memory (“CD-ROM”), or any other form of storage medium known in the art.
An exemplary storage medium may be coupled to the processor such that the processor may read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an application specific integrated circuit (“ASIC”). In the alternative, the processor and the storage medium may reside as discrete components. For example
As illustrated in
While preferred embodiments of the present application have been described, it is to be understood that the embodiments described are illustrative only and the scope of the application is to be defined solely by the appended claims when considered with a full range of equivalents and modifications (e.g., protocols, hardware devices, software platforms etc.) thereto.