This application claims priority under 35 U.S.C. §119 from Chinese Patent Application No. 200810169787.9 filed Oct. 28, 2008, the entire contents of which are incorporated by reference herein.
1. Field of the Invention
This invention relates to virtual appliances and remote applications. More particularly, the present invention relates to a system and method for processing local files remotely using virtual appliances and remote applications.
2. Description of the Related Art
In the information technology (IT) field, virtualization is bringing real and fresh experiences for people. In the long term, the usage of virtualization will bring ultimate transformation for IT operation. More specifically, virtualization can help to simplify the reconfiguration of hardware appliances. It is possible to transfer a virtual appliance from one hardware platform to another hardware platform without disturbing its application environment because virtualization isolates virtual appliances (also referred to as virtual machines) from the details of the servers on which they are hosted. Then it is possible to provide a way of consolidating isolated individual applications in small servers into a large hardware platform by using virtualization to facilitate centralized management of these applications and more effectively use the system resources. Thereby, it reduces the owners' management cost on these applications and improves the system's reliability and flexibility.
On the other hand, current desktop applications are installed in the operating system on the client side with their setting and configuration integrated in the operating system. For non-professional users, the installing, configuring and removing process of these applications may cause many troubles and inconvenience in this mode. Sometimes, the configuration of one application may even overwrite the setting or configuration of other applications or the operating system, which causes system malfunctions or crashing.
Compared to the current desktop applications on the client side, the web-based applications are more convenient to distribute, access, and manage. However, for current web-based applications, the application server suppliers usually need to develop a web based version again for an application. For example, the supplier of a web Office application needs to develop a new version for web use which is different from the local desktop Office version. For users of these web-based applications, they have to upload the file to be processed to the application server when using these applications to process local files and download the processed file from the server to the local file after processing. During this process, the risk on system security and user's privacy prevent the approach from the wide adoption.
Based on the above solutions, the virtualization of the applications or the virtual application makes each application have its own configurations and execute in an independent environment. This enables virtual applications to be provisioned dynamically from the server side and ensures other settings of the host operating system unaltered. However, this approach still needs to download the virtualized application to the local machine on the client side, which is a time-consuming process and even not applicable for small clients.
In view of the above-mentioned problems, it is a desired approach to consolidate various desktop applications on the server side making use of characteristic of virtualization and provide them to the client side, so that users on the client side are allowed to process local files conveniently using remote applications on the server side.
The present invention provides an apparatus and method for processing local files using remote applications. The present invention further provides a method and a server for managing the remote applications.
An apparatus for processing local files using remote applications is provided, including: an operation capturing unit configured to capture user operations on local files, and send operation requests to the server; a file sharing unit configured to share the local files in the network and send the sharing path to the server; and a remote desktop unit configured to connect to the target processing appliance using remote desktop in response to the information of the target processing appliance associated with the remote application received from the server.
A remote application management server for managing the remote applications in the processing appliances is provided, the server including: a file type matching unit configured to match the local file to a particular remote application in response to the received file information of the local file in the client side; a processing appliance choosing unit configured to determine the target processing appliance associated with the particular remote application and send the information of the target processing appliance to the client; and an instruction file generating unit configured to generate the instruction file for the above processing appliances in response to the received file sharing path, wherein the instruction file contains the file sharing path.
A system for processing local files using remote applications is provided, including the apparatus according to the first aspect of the invention and the server according to the second aspect of the invention.
A method for processing local files using remote applications is provided, including: capturing user operations on local files and sending operation requests to the server; sharing the local files in the network and sending the sharing path to the server; and connecting to the target processing appliance using remote desktop in response to the information of the target processing appliance associated with the remote application received from the server.
A method of managing remote applications in the processing appliances is provided, including: matching the local file to a particular remote application in response to the received file information of the local file in the client side; determining the target processing appliance associated with the particular remote application and sending the information of the target processing appliance to the client; and generating the instruction file for the above processing appliances in response to the received file sharing path, wherein the instruction file contains the file sharing path.
With the remote processing solution in the present invention, a user can process local files simply by using remote applications without downloading and installing remote applications, or uploading the file to be processed to the server and downloading it to the local file, which makes the remote processing of local files more safe and convenient. Moreover, the remote processing system in this invention provides seamless processing experiences for users, which makes the remote processing easier to operate.
The following is a detailed description of the preferred embodiments of the invention in connection with the drawings.
Specifically, operation capturing unit 102 is configured to capture user operations on local files and send operation requests to a server side. The operations on local files include a processing request operation, such as double clicking a file icon, choosing ‘open’ a file in a right click menu, and other operations indicating users want to process the file, or a closing request operation, such as clicking ‘close’. Once users perform the above operations on local files, capturing unit 102 captures users' operation events and analyzes them to generate and send operation requests accordingly. When users make a processing request operation, operation capturing unit 102 will correspondingly generate a processing request and send it to the server. In case users make closing request operations, the operation capturing unit 102 will correspondingly generate closing requests.
In one embodiment, operation capturing unit 102 only captures operations related to remote processing. That is, if some proper desktop application for processing the file has been installed in users' local machine, users can use the local desktop application as a default to process the file. For this kind of operation, operation capturing unit 102 does not generate an operation request, therefore avoiding interruptions to users' ordinary operations. Alternatively, users can also choose using remote applications to process the file through particular operations. For example, apparatus 100 can add options like “use remote application to open” to the menu when users right click a file. When users choose this option, operation capturing unit 102 is activated to capture and analyze users' operations. For the files that there is no proper desktop application to process, operation capturing unit 102 can capture the operations on these files in default and generate corresponding operation request.
In one embodiment, operation capturing unit 102 further analyzes the captured operation events and extracts the related local file information. This information can include: the file name, the file type, and the file path. Based on extracting this information, operation capturing unit 102 encloses a part or all of this information in the processing request and sends it to the server. In accordance with this processing request, the server can judge whether there is proper remote application on the server side to process the local file referred in the request. If there is a plurality of proper remote applications for choosing on the server side, then operation capturing unit 102 can further capture users' choice of these remote applications and send the choosing information to the server.
Based on requesting the server to process the local file, it needs to share the local file in the network to allow the server access the local file. Therefore, file sharing unit 104 is configured to share the local file in the network and send the file sharing path to the server side. In one embodiment, after a proper remote application is chosen on the server side, a confirming message is returned to apparatus 100 to confirm that a remote application will be started to process the local file. Once receiving this confirming message, file sharing unit 104 starts sharing the local file. In another embodiment, apparatus 100 records on the client side the file type list that the server can process. By comparing this list and the file information captured by operation capturing unit 102, it can be determined whether the file to be processed can be processed remotely. When confirming the local file can be processed remotely, file sharing unit 104 then makes the file shared. There are various solutions for sharing files in the existing techniques, and file sharing unit 104 can use any existing sharing solution to share said local file in the network.
In one embodiment, file sharing unit 104 uses a NFS (network file system) to realize the file sharing. NFS is a disk file sharing method among UNIX systems and also a file system protocol, which supports applications on the client side accessing data in the server disk through a network. In NFS, the file to be shared is stored in the server of the system. To share the stored files, the server sends the file sharing path to the client, which makes the client side able to access the file through a network and therefore realizes file sharing. In this embodiment, file sharing unit 104 functions as the server in NFS and shares the local files to be processed by remote applications. Specifically, file sharing unit 104 provides the sharing path of the local file and sends the path to the server side corresponding to apparatus 100, that is, the remote application side used to process the local files. Thus, the remote application side acts as the client side in NFS, which can access the shared local file in the server (that is, file sharing unit 104) and further process it.
Other common file sharing solutions include systems such as Andrew File System (AFS), NetWare Core Protocol (NCP), and Common Internet File System (CIFS). For different operating systems and protocols, sometimes software like Samba is needed to connect them. It is understood that those skilled in the art can adopt any method (including but not limited to the above listed methods) based on the existing technologies to realize local file sharing according to one's needs.
Based on realizing file sharing and sending the file sharing path, the local file can be accessed by proper remote application. However, for users, they also hope to view the processing interface and control the remote processing. It is thus needed using remote desktop function to connect the client to the target processing appliance where the above remote application hosts, wherein the target processing appliance is designated by the server side according to the configuration of the managed processing appliances. After designating the target processing appliance, the server will send the information of the target processing appliance to apparatus 100.
Correspondingly, remote desktop unit 106 in apparatus 100 responds to the information of the target processing appliance associated with the remote application received from the server side and connects to the target processing appliance using remote desktop to provide the remote application interface in the processing appliance to users. Specifically, the target processing appliance information contains the physical address of the target processing appliance. After obtaining the address, remote desktop unit 106 can connect to the target processing appliance using a remote desktop function. Some existent operating systems have already provided remote desktop functions for users. There is special remote terminal software for realizing remote desktop functions such as Virtual Network Computing (VNC). Using these functions, remote desktop unit 106 can access the target processing appliance appointed by the server. It is understood that those skilled in the art can adopt any remote desktop approach to meet the use of apparatus 100 and unit 106 according to different operating systems and needs. Thus, using remote desktop functions, users on the client side can view the interface of processing local files by the remote application executed in the remote processing appliance and control the processing process. In addition, for users, the viewed process and interface using remote applications in the processing appliance on the server side to process local files are identical with those using desktop applications in the local machine. Therefore, the process using apparatus 100 to process local files remotely is entirely seamless for users.
When users finish processing local files using remote applications and hope to close the remote applications, as described above, operation capturing unit 102 can capture users' closing operation and send a closing request. In one embodiment, the closing request can contain the address of the target processing appliance in which the remote application runs in order to inform the server to close the target processing appliance. Once receiving the confirming information from the server that the target processing appliance has been closed, file sharing unit 104 stops sharing local files and remote desktop unit 106 disconnects the target processing appliance to end the remote processing process.
In one embodiment, apparatus 100 can further include a communication unit 108, which is configured to interact and communicate with the server side. The data sending and receiving between each unit in apparatus 100 and the server can all be executed via communication unit 108. Specifically, operation capturing unit 102 can send operation requests to the server via the communication unit 108; file sharing unit 104 can receive the confirming message from the server and send the sharing path to the server via the communication unit 108; and, remote desktop unit 106 can receive the information of target processing appliances via communication unit 108.
In apparatus 100, by using a file sharing approach, file sharing unit 104 enables the server to access and process local files, which allows users to process local files using remote applications without uploading local files to the server and downloading them to the local file after the finishing process, and therefore avoid troubles and security risks. The provision of remote desktop unit 106 allows users to use and control remote applications like using local desktop applications, which increases the maneuverability of apparatus 100.
Corresponding with apparatus 100, to realize processing local files remotely, it is needed to accordingly manage the remote applications in processing appliances on the server side.
Virtual appliance platform 202 is a hardware platform where virtual appliances reside. On this hardware platform, a plurality of virtual appliances (VA) can be provided, each of which runs in an independent environment. A plurality of desktop applications can be installed in each virtual appliance. These desktop applications are local desktop applications for the virtual appliance platform but are remote applications relative to apparatus 100 and the client side of the system. To avoid confusion, in this context, the desktop applications installed in virtual appliance platforms are still called remote applications. Although in
Virtual appliance deployment tool 204 is configured to automatically deploy and manage the virtual appliances in virtual appliance platform 202 according to deployment instructions. Virtual appliance deployment tool 204 can start up, shut down, configure, set and manage particular virtual appliances on particular hardware platforms designated in deployment instructions. In one embodiment, virtual appliance deployment tool 204 realizes direct deployment and management of virtual appliances using a Tivoli Provisioning Manager (TPM) server.
Remote application management server 206 connects to virtual appliance deployment tool 204 and directly communicates with apparatus 100 on the client side. It is configured to generate deployment instructions applicable for virtual appliance deployment tool 204 according to the request message from the client and realize management of remote applications in virtual appliance platform 202 via deployment tool 204. To achieve the above functions, the detailed structure of remote application management server 206 is shown as
In one embodiment, when remote application server 206 receives the processing request from the client, file type matching unit 302 first deals with the request. As described above, the processing request from the client contains the file information of the local files to be processed. The file information may contain the file name, the file type, and the file path. In the case that the file information contains the file type, file type matching unit 302 analyzes the file type and judges whether there is remote application matching with the type installed in virtual appliances. If it is determined that there is no matching remote application in virtual appliances, file type matching unit 302 then returns a negative message to the client and ends the processing. If there are multiple remote applications suitable for processing the files of this type, file type matching unit 302 can provide these remote applications to the client for users to choose. In another embodiment, file type matching unit 302 sets matching priority for a plurality of remote applications suitable for processing the files of one type, or sets a default application for each file type. Based on the priority setting or default setting, file type matching unit 302 can match or associate the file type contained in the processing request with a particular remote application. In the case that the above file information does not contain the file type directly, file type matching unit 302 is further configured to analyze and identify the file type to be processed according to other contained information. For example, file type matching unit 302 can recognize the file type according to the extended file name or the head information. After obtaining the file type to be processed, matching unit 302 matches the file type with a remote application according to the above method. Optionally, after determining the matching remote application, file type matching unit 302 can send a confirming message to the client to inform the client that the file can be processed by the remote applications on the server side.
Based on the determined remote application for processing the local file on the client, virtual appliance choosing unit 304 is configured to determine the target virtual appliance associated with the remote application, and send the information of the target virtual appliance to the client. Specifically, in one embodiment, virtual appliance choosing unit 304 determines the target virtual appliance via looking up in virtual appliance repository 308. Virtual appliance repository 308 is configured to store the information of each virtual appliance on virtual appliance platform 202 of
Based on obtaining the file sharing path from the client and the above virtual appliance information, instruction file generating unit 306 generates the instruction file used for the above virtual appliance. The instruction file contains the file sharing path and the deployment information of the target virtual appliance to indicate the deployment and configuration to be achieved for the virtual appliance. Specifically, the instruction file is transferred to virtual appliance deployment tool 204, which is made to deploy the virtual appliances on virtual appliance platform 202 according to the information included in the instruction file. In one embodiment, the instruction file instructs virtual appliance deployment tool 204 to deploy and startup a particular virtual appliance and run a particular remote application therein, and further instructs the particular remote application to access and process the local files in the client side via the sharing path. When remote application management server 206 receives the closing request from the client, instruction file generating unit 306 extracts the virtual appliance address contained in the closing request and generates a new instruction file, which instructs virtual appliance deployment tool 204 to close the corresponding virtual appliance.
In one implementation, remote application management server 206 further includes a virtual appliance deployment tool driving unit 308, which is configured to encapsulate the instruction file into the format matching with the virtual appliance deployment tool and send it to the virtual appliance deployment tool. That is, driving unit 308 is configured to translate the instruction file into the deployment instructions, which can be directly accepted by virtual appliance deployment tool 204, thereby driving virtual appliance deployment tool 204 to deploy the virtual appliance according to the instructions.
Thus, remote application management server 206 can indirectly manage the remote applications in virtual appliances via virtual appliance deployment tool 204, which makes the remote applications on the server side to process local files on the client side according to operations from the client. Meanwhile, because remote application management server 206 can instruct virtual appliance deployment tool 204 to startup the needed virtual appliances and remote applications, and to close or sleep unnecessary virtual appliances according to needs, the utilization of virtual appliances makes the most use of the server resources and manages remote applications more flexibly. Moreover, remote application management server 206 is provided to deploy, configure and manage remote applications according to user operations, so that users on the client side can use the remote applications without downloading them to the local machine and installing the same, which further optimizes the remote processing process of local files.
In another implementation, a plurality of real processing appliances is provided on the server side to process local files in the client side that is to remotely process the local files in the conventional running environment of the server. The server in this implementation is shown in
The structure and function of remote application management server 406 are similar to those of server 206 shown in
Joining client side apparatus 100 shown in
Based on the same conception, this invention also provides the method for processing local files using remote applications and the method for managing remote applications in processing appliances.
Then the local files are shared in the network and the file sharing path is sent to the server side at step 504. In one embodiment, step 504 is executed in response to the confirming message from the server. The confirming message is the returned message when the server confirms it can process the local files using remote applications after checking and judgment. Once confirming the local files can be processed remotely, the method executes the step of sharing the local files. As described above, there are various file sharing solutions in existent techniques, like NFS, AFS, NCP, CIFS, etc. Based on these existent file sharing solutions, proper approaches can be adopted to realize the local files sharing according to needs at step 504.
In virtue of realizing file sharing and sending the sharing path, the local files can be accessed by proper remote applications. Thus at step 506, responding to the received target processing appliance information associated with the remote application from the server, the client connects to the target processing appliance via remote desktop, and thereby provides the interface of the remote application in the processing appliance to users. Specifically, the target processing appliance information contains the physical address of the target processing appliance. After obtaining the address, the client is able to connect to the target processing appliance using remote desktop function. The remote desktop function has already been provided for users in some existing operating systems and applications. Therefore, at step 506 the designated target processing appliance in the server side can be directly accessed using these functions. Then users on the client side can view the processing interface of the remote application running in the processing appliance on the server side and control the processing process.
Moreover, in the case that users perform closing operations, the closing request is sent to the server at step 502. In one embodiment, the closing request can contain the address of the target processing appliance hosting the remote application which processes the local files in order to notify the server to close the target appliance. In this embodiment, the above method also includes the following steps (not shown): responding to the confirming message from the server indicating the target processing appliance has been closed, stopping sharing of the local files, and disconnecting from the target processing appliance to end the remote processing process.
Corresponding to this method, to realize processing local files remotely, the method for managing remote applications in processing appliances is needed for the server side.
Based on determining the remote application for processing the local file in the client, at step 604, the target processing appliance associated with the remote application is determined and the information of the target processing appliance is sent to the client. In one embodiment, the target processing appliance is determined by looking up a processing appliance repository. Specifically, based on the remote application determined at step 602, step 604 looks up the processing appliance repository and chooses the proper processing appliance and image file corresponding to the remote application, and obtains the information of the processing appliance, including its address. It further sends the determined processing appliance address to the client side to enable the client to connect with the target processing appliance according to the address.
To finally manage the processing appliance and the corresponding remote application, at step 606, the instruction file used for the above processing appliance is generated in response to the received file sharing path from the client. In the case that the processing appliance is physical appliance, the instruction file contains the above file sharing path in order to instruct particular physical appliance to access and process the local files according to the path. In the case that the processing appliance is a virtual appliance, the instruction file further contains the target virtual appliance information in order to indicate the deployment of the target virtual appliance. In one embodiment, the instruction file can instruct the virtual appliance deployment tool to deploy and startup a particular virtual appliance and run a particular remote application therein, and further instruct the remote application to access and process the local files in the client side using the sharing path.
When the client requests ending the processing process by sending a closing request, the above method further includes the following steps of (not shown): extracting the contained processing appliance address from the closing request, and thereby generating a new instruction file which instructs the virtual appliance deployment tool to close the corresponding virtual appliance.
It is understood that in
Through the above description of the embodiments, those skilled in the art will recognize that the above-mentioned method and apparatus can be practiced by executable instructions and/or controlling codes in the processors, for example, codes provided in mediums like disc, CD or DVD-ROM; memories like ROM or EPROM; and carriers like optical or electronic signal carrier. The apparatus and its modules in above embodiments can be realized using hardware like VLSI or Gates and Arrays, like semiconductors, for example, Logic Chip, transistors, or similar programmable hardware equipments, such as FPGA and programmable logic equipment, or using software executed by different kinds of processors, or using the integration of the hardware and software.
The above-described exemplary embodiments are intended to be illustrative in all respects of the method and apparatus for processing local files using remote applications, rather than restrictive, of the present invention. Those skilled in the art should recognize that the present invention is capable of many variations and modifications within the scope and spirit of the present invention. The scope of the present invention is defined only by the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
200810169787.9 | Oct 2008 | CN | national |