Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
WEB APPLICATION SERVER FACILITATING DATA ACCESS IN A NETWORK ENVIRONMENT
Document Type and Number:
WIPO Patent Application WO/2010/043234
Kind Code:
A1
Abstract:
The invention provides a system facilitating data access in a computer network environment, where the system includes a web application server (110) providing a device management service, a computing device (140) adapted to connect to the web application server, and at least one storage device (150,160) being remote from the web application server and being associated with a particular user. Each storage device is equipped with a software storage manager adapted to establish a permanent connection to the web application server. The web application server can then identify the storage device within the network and can access and retrieve data from said storage device on request by a user of the computing device through the device management service. The web application server and the software storage manager may have a keep-alive mechanism to avoid disconnections.

Inventors:
KLITSCHER CHRISTIAN (DE)
Application Number:
PCT/EP2008/008652
Publication Date:
April 22, 2010
Filing Date:
October 13, 2008
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
PLYKE GMBH (DE)
KLITSCHER CHRISTIAN (DE)
International Classes:
H04L29/08; H04L12/24
Domestic Patent References:
WO2003048994A22003-06-12
Foreign References:
US20080201342A12008-08-21
EP1589411A22005-10-26
JP2005352530A2005-12-22
Other References:
ANONYMOUS: "PLYKE bietet neue Web Storage Lösung", PRESSEINFORMATION, 3 June 2008 (2008-06-03), XP002564370, Retrieved from the Internet [retrieved on 20100120]
Attorney, Agent or Firm:
EICKELKAMP, Thomas (Kindeldey Stockmair & Schwanhäusse, Leopoldstrasse 4 München, DE)
Download PDF:
Claims:
CLAIMS

1. A system facilitating data access in a computer network environment, the system comprising: a web application server (110) providing a device management service (310) for computing devices coupled with the web application server via a computer network (100, 180); a first computing device (140) adapted to connect to the web application server via the computer network; and at least one storage device (150, 160) being remote from the web application server; wherein said at least one storage device is associated with a user of the first computing device; wherein said at least one storage device is equipped with a software storage manager (240) adapted to send storage device information to the web application server; and wherein said storage device information enables the web application server to uniquely identify the storage device within the computer network, and in connection with said software storage manager enables the web application server to access and retrieve data from said storage device on request by the user of the first computing device through the device management service provided by the web application server.

2. The system of claim 1 , wherein said software storage manager is adapted to establish a connection to the web application server to send the storage device information.

3. The system of claim 2, wherein the device management service is adapted to repeatedly send data via the connection to said software storage manager, and wherein the software storage manager is further adapted to send response data back to said web application server in order to keep the connection alive.

4. The system of one of claims 1 to 3, wherein the software storage manager is further adapted to persistently store a network address of the server computing device.

5. The system of one of claims 1 to 4, wherein said at least one storage device is included in the first computing device (150) or in a second computing device (160) associated with the user, the second computing device being remote from the web application server.

6. The system of claim 5, wherein each of the first and second computing devices comprises a service adapted to maintain the connection between the software storage manager and the web application server, wherein the service to maintain the connection is adapted to automatically start the software storage manager when the corresponding computing device is booting, to test the functions of the software storage manager and/or to restart the software storage manager.

7. The system of claim 6, wherein the network is a wide area network (100), and wherein the second computing device is a network attached storage, NAS, device (160) operating in a local area network (180) and connected to the computer network.

8. The system of one of claims 1 to 7, wherein said device management service provides at least one of an application programming interface and an internet portal service providing a user interface presented to the user of the first computing device, and wherein the application programming interface or the user interface facilitate requesting to perform functionality exposed by said software storage manager.

9. The system of claim 8, wherein said software storage manager comprises means adapted to add functionality, modify functionality or remove functions of said exposed functionality.

10. A web application server (110) facilitating data access to a storage device (150, 160) associated with a user, the web application server comprising: a device management service (310) for computing devices (120, 140) coupled with the web application server via a computer network (100, 180); means adapted to accept a connection from a computing device to the web application server; and a storage device association service (330) adapted to associating a storage device with a user of the computing device; wherein said device management service is further adapted to receive storage device information (320) from a software storage manager (240) running on the storage device; and wherein said storage device information enables the web application server to identify the storage device within the computer network, and in connection with said software storage manager running at the storage device, enables the web application server to access and retrieve data from said storage device on request by the user of the computing device through the device management service provided by the web application server.

11. A computer-implemented method for facilitating data access in a computer network environment, the method comprising: connecting (440) a computing device (120, 140) to a web application server (110) via a computer network; running a software storage manager (240) on each of at least one storage device (150, 160) being remote from the web application server; sending (410), by the software storage manager, storage device information to the web application server, wherein said storage device information enables the web application server to identify the storage device within the computer network; and exposing (425), by the software storage manager, functionality to the web application server enabling the web application server in connection with said software storage manager to access and retrieve data from said storage device on request by the user of the computing device through a device management service provided by the web application server.

12. The method of claim 11 , further comprising: establishing, by said software storage manager, a connection to the web application server to send the storage device information; and maintaining the connection between the software storage manager and the web application server; wherein maintaining the connection comprises automatically sending (430) data from the web application server to the software storage manager via the connection, the software storage manager being adapted to send (435) response data to the web application server after reception of data from the web application server.

13. The method of claim 11 or 12, wherein sending storage device information comprises sending the storage device information to the web application server each time when establishing or re-esteblishing the connection between the computing device and the web application server.

14. The method of one of claims 11 to 13, further comprising: sending (465), by the web application server, a request to the software storage manager running on a particular storage device to perform a certain function of the exposed functionality on the storage device.

15. The method of one of claims 11 to 14, further comprising: providing (450), by the web application server, a user interface or an application programming interface, wherein said user interface is configured for receiving user interaction (455) requesting the exposed functionality, and wherein said application programming interface is configured for receiving programmatic interaction requesting the exposed functionality.

16. The method of claim 15, further comprising: providing (485) results of the requested functionality through the user interface and/or application programming interface.

17. The method of one of claims 11 to 16, further comprising: storing, by the software storage manager, a network address of the web application server in a persistent memory; and retrieving (405) the network address of the web application server from the persistent memory before the storage device information is sent.

18. A computer-readable medium storing computer-executable instructions, that, when executed by a processor of a computing device (120, 130) hosting a storage device, implement a software storage manager (240) that performs a method for facilitating data access via a computer network, the method comprising: managing data on the storage device of the computing device; retrieving (405) a network address of a web application server; establishing (410), a connection with the web application server at the retrieved network address, wherein establishing the connection comprises sending storage device information uniquely identifying the storage device within the computer network; receiving (465) a request from the web application server to perform an action on the managed data; performing (470) the action identified in the request; and sending (475) a response to the server, wherein the response includes information regarding the result of the performed action.

19. The computer-readable medium of claim 18, further storing computer- executable instructions, that implement method steps performed by the software storage manager, the method steps comprising: receiving (430) data from the web application server via the established connection to keep the connection alive; and responding (435) to the received data by sending a response data packet to the web application server.

Description:
WEB APPLICATION SERVER FACILITATING DATA ACCESS IN

A NETWORK ENVIRONMENT

BACKGROUND OF THE INVENTION

1. Field of the invention

The present invention generally relates to data access and, in particular, relates to facilitating access to user associated storage devices.

2. Related Art

In recent years, more and more services have been provided via a wide area network, such as the internet. These services are based on a client-server technique where the client usually connects to the server and establishes a user session. Once identified, the user has access to a plurality of services to which the user may have subscribed. One such service is, for example, an email program to manage an email account online. Accessing such an email program may only require a small program on the user's client computer, such as a browser for displaying and browsing through HTML or similar coded pages.

This technique allows a user to access his/her emails from anywhere, as long as the user has access to the internet. There is no necessity to install any programs for each service required by the user. The only program necessary is an internet browser, which is generally available at no cost to the user.

The service providers have extended portfolios of services. For example, the traveling user is able to upload digital images from anywhere in the world to a media center, provided on a server as described above. In addition, the user may also gain access to a particular amount of storage on a service provider's computer which is not limited to digital images. Thus, a worker may store spreadsheets, presentations or text files on such a server. If the worker is not in his office, such an internet storage service allows access to the worker's files from any point in the world, as long as internet access is available.

Due to the increased availability of internet access from a plurality of places, such as hotel computers, internet cafes, etc, any subscriber of an internet storage service is able to access his/her data. However, some of these services still have disadvantages. For example, the amount of storage available for each user is limited and often requires a monthly payment. On the other hand, some services do not allow for sharing data with others or allow full read/write access to the data.

In order not to rely on remote storage hosted by a provider, a user may connect his/her client computer to a local storage device such as a network attached storage (NAS) device. When working at home, the user can, for instance, work on files stored on his/her computer, since the user requires fast access and fast write functionality while working with his/her computer. After the user has finished, he/she may wish to store a backup copy on the NAS device.

Some of the conventional NAS systems provide a server, such as an FTP server, which allows clients to gain access to the stored data. In the typical environment of a private household, the NAS device may be attached to a local area network, and connected to the internet via a DSL modem/router.

If the user wants to gain access to his/her data on the NAS device from a place outside the local area network, for example from his/her workplace, the user needs to access the data via a client which connects to the server on the NAS device. However, the NAS device may run behind the DSL modem/router and/or behind a firewall operating in the local area network. Thus, for a typical computer user, the configuration of the modem, router and/or firewall may be difficult, so that an unexperienced user will be unable to gain access to the data stored on the NAS device.

A further problem with typical solutions is that the network address, through which the local area network may be accessed, typically changes. For example, broadband connections may be disconnected by the user due to costs involved with the connection. The connection may also be disconnected by the provider, for example once a day. When reconnecting, a DSL modem will be assigned a different IP address than the address assigned before the disconnection. Thus, the user may have the further problem of identifying his/her local area network from a wide area network, such as the internet.

To overcome the IP address changing problem, particular services have established particular solutions. For example, the user may register with a service providing a unique internet address which can be associated with dynamically changing network addresses. Such a service may be, for example, the service provided by DYNDNS.org. However, such conventional techniques require that the correct address needs to be distributed to a plurality of DNS servers throughout the world. Thus, in the case that a user travels a lot, it may happen that the DNS servers at the location of the user have not been provided with the correct network address, so that the user cannot access his/her local area network.

The present invention provides systems and methods to overcome these disadvantages.

SUMMARY OF THE INVENTION

It is the object of the present invention to provide an improved storage management service that is more user friendly, that can be easily used even by unexperienced users, and that has a higher degree of connection reliability.

This object is solved by the present invention as claimed in the independent claims. Preferred embodiments are defined by the dependent claims.

In general, the present invention may be implemented in a variety of scenarios involving at least one computing device and a local storage device. In an exemplary embodiment of the invention, the implementation further includes a server computing device to facilitate accessing one or more storage devices connected to multiple different computing devices. The server computing device may further provide a web user interface in order to allow a user to initiate a user session when connected to the server and to provide a portal service to provide storage device management functions to the user.

In detail, in one scenario of the present invention, a small piece of software is installed at a storage device such as an NAS device. While the device normally acts as a storage server, it becomes a client to a web application server due to the installed software. The software acts as client since it establishes the connection to the web application server. The connection is further a permanent or quasi-permanent connection so as to avoid multiple reconnections. The web application server may then request at any time and substantially without any delay functions and data from the client service at the storage device.

In an embodiment, the installed software implements a service, referred to herein as a storage manager or storage manager service, that initially establishes the connection to the web application server. The typical configuration of routers, firewalls or other intermediate network nodes can therefore be avoided and the user is not required to make any modifications to the router and/or firewall. For example, when the storage manager service initiates a connection to the web application server from inside a firewall local to the storage device, the firewall need not be configured for the reception of external requests as long as this connection is kept alive. Not even port forwarding has to be configured at a corresponding router. In addition, this also improves the security of the storage system as the storage device cannot be detected from outside the firewall.

While this technique is advantageous where the web application server is located at a portal server, the same technique may be used in direct communication between a computer and a storage device via a local or wide area network. In this case, the storage device has the software program installed that lets the storage device act as client, even though it is usually configured to operate as server. A web application server software running on the computer may then be in communication with the storage device and access the data stored thereon in the same way as it is done in the scenario with a portal server. This allows to benefit from the invention even without any user interaction.

Accordingly, a computer implemented technique is provided which facilitates data access in a computer network environment including a web application server. The server provides a device management service for computing devices coupled with the web application server via a computer network. A computing device connects to the server via the computer network. Further, at least one storage device being remote from the web application server is associated with, and preferably located at or nearby, the client computing device and is equipped with a storage manager to send storage device information to the web application server. The storage device information enables the web application server to uniquely identify the storage device within the computer network, and in connection with the storage manager enables the web application server to access and retrieve data from the storage device on request by the computing device through the device management service.

In another embodiment, a web application server includes a device management service for computing devices coupled with the web application server via a computer network. The server further includes means adapted to accept a connection from a computing device to the web application server, and includes a storage device association service to associate a storage device with a user of the computing device. The device management service receives storage device information from a storage manager software which enables the web application server to identify the storage device within the computer network. Further, in connection with the storage manager software running at the storage device, the storage device information enables the web application server to access and retrieve data from the storage device on request by the user of the computing device through the device management service provided by the web application server.

According to an embodiment, there is provided a computer implemented method for facilitating data access in a computer network environment.

According to the method, a computing device connects to a web application server via a computer network. Further, a software storage manager runs on each of at least one storage device being remote from the web application server. The software storage manager sends storage device information to the web application server. The storage device information enables the web application server to identify the storage device within the computer network, and to expose functionality to the web application server enabling the web application server in connection with the software storage manager to access and retrieve data from the storage device on request by the user of the computing device through a device management service provided by the web application server.

In a further embodiment, computer readable media are provided which store computer executable instructions. The computer executable instructions implement a software storage manager that performs, when executed, a method which comprises the managing of data on a storage device of a computing device. A network address of a web application server is retrieved to establish a connection with the web application server. Further, storage device information uniquely identifying the storage device within a computer network is sent to web application server. The method further comprises receiving data from the web application server via the established connection and responding to the received data by sending a response data packet to the web application server. Further, a request is retrieved from the web application server to perform an action on the managed data. After performing the action identified in the request, a response is sent to the server including information regarding the result of the performed action.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings are incorporated into and form a part of the specification of the purpose of explaining the principles of the invention. The drawings are not to be construed as limiting the invention to only the illustrated and described examples of how the invention can be made and used. Further features and advantages will become apparent from the following and more particular description of the invention, as illustrated in the accompanying drawings, wherein:

FIG. 1 is a block diagram illustrating a system environment according to an embodiment;

FIG. 2A is a block diagram illustrating a computing device including a storage device according to an embodiment;

FIG. 2B is a block diagram illustrating a computing device for remote data access according to another embodiment;

FIG. 3 is a block diagram illustrating a web application server in more detail according to an embodiment; and

FIGs. 4A and 4B are a flow charts illustrating steps performed by the entities of the present invention according to an embodiment.

DETAILED DESCRIPTION OF THE INVENTION

The illustrative embodiments of the present invention will be described with reference to the figure drawings wherein like elements and structures are indicated by like reference numbers.

Storage device access via a portal service

This embodiment provides functionality for a user to access a storage device via an internet portal. For this purpose, a dedicated software program which is in communication with the internet portal server manages the storage device.

This dedicated software program is in permanent connection to the internet portal server and allows the server to access data stored at the storage device.

The storage device itself may be local to the user's computer or even built in.

Alternatively, the storage device may be located at any other place but it is a device which stands under the control of the user. According to the invention, even though the storage device is under the control of the user, or even locally connected, the user establishes a connection to the internet portal to access the stored data.

An example of a scenario for this embodiment includes a web application server, a computing device in the office of a user and operated by the user, and a computer and a storage device at the user's home. The user may connect from the computing device to the web application server. The computing device runs a web browser program through which the internet portal is provided. After successful login to the internet portal service, the user has access to all storage devices previously registered for. The storage devices may be a hard disc drive on the computer operating at the user's home or a storage device of a further private computing entity. For example, the computing entity may be another computer or a network attached storage (NAS) device. In addition, the storage devices may even comprise a hard disk drive of the computing device in the office from which the user logged into the internet portal service. Common to all storage devices is a storage manager service implemented with and running on each computing device hosting one of the storage devices.

Describing now the various components depicted in FIG. 1 , this illustration shows three computing devices in addition to one server computing device. As will become apparent from the following description, some of the computing devices and components shown may be omitted. It is to be noted that for simplicity of the figure, only three computing devices are depicted in FIG. 1. A person skilled in the art, however, will understand that a plurality of different computing devices may be connected to the network, be it a wide area network (WAN) 100 or a local area network LAN 180. An example of a wide area network is the internet. Examples of local area networks are home networks or enterprise networks.

In addition to computing device 140 which is connected to the wide area network (WAN) 100, FIG. 1 shows computing devices 120 and 130, which are connected to the local area network (LAN) 180. The local area network 180 may be accomplished by a switch or router to which the computing devices 120 and 130 are coupled using a wireless or wired connection. The local area network 180 may further include a modem or similar device adapted to connect to the wide area network (WAN) 100. The modem may also be integrated with the router, while any of theses network entities may further implement a firewall to protect the LAN 180.

With respect to an embodiment of the present invention, access from a computing device 120, 140 to a web application server 110 via a computer network 100, 180 is established. The web application server 110 may be implemented as hardware, software, or a combination thereof.

The web application server 110 is provided by, for example, an internet service provider, and is connected to the network 100, 180 to allow access to the web application server from any computing device also connected to the network.

Further, in an embodiment of the present invention, the web application server

110 includes a web application service 115. This service may comprise an internet portal service and a device management service which facilitate data access from a computing device through the network. The web application server and its services are described in more detail below with respect to

FIG. 3.

As will become apparent from the following description, the web application service 115 allows a user to gain access to particular storage devices, such as storage devices 150 and 160 included in computing devices 120 and 130, respectively. The access is accomplished through a proprietary protocol between the web application server 110 and the computing devices hosting the storage devices. A piece of software runs on each computing device that hosts a storage device. This software, in the following referred to as a storage manager 240, opens a connection to the web application server through which the user can access his/her storage devices. The storage manager does not only connect to the web application server, but may also manage data stored on its associated storage device. As will be described in more detail below with respect to FIG. 4, once the connection has been opened, the web application service 115 may optionally include a mechanism to maintain the connection according to the proprietary protocol. Continuing with FIG. 1 , it is to be noted that computing devices are depicted with and without input/output components, such as a display 125 or 145. In this embodiment, at least one computing device having a component to present a user interface and to receive user input will be required. This device allows the user to connect to the internet portal. To the contrary, computing device 130 solely provides a storage device and some data processing unit and has the storage manager installed thereon. For example, such a device may be a home server computer or network attached storage (NAS) device. This device without visual input/output components will be described in further detail below with respect to FIG. 2A, while FIG. 2B depicts an embodiment of computing device 140.

Turning now to the service functionality provided by the web application server 110, according to an embodiment of the present invention, a user can access the internet portal and the web application service 115 from computing device 140 or other computers. For example, the user may open a browser program and input an address of the web application server 110, such as its internet address.

Once the user has established a connection to the web application server, the web application service 115 provides an internet portal to the computing device 140 to set up a user session. In an embodiment of the present invention, the user is provided with a user interface on display 145 depicting at least two fields for entering a user name and password. The user will then input an appropriate user name and password to start the session. In case the user has not been previously registered with the web application service 115, functions may be provided to create a new user account according to an embodiment of the present invention. The user would then need to provide personal information, such as a name, email address, user name and password, before gaining access to the web application service.

After a successful login and hence the initiation of a user session, a different user interface may be presented to the user, which provides functionality to which the user has subscribed. For example, the functionality may include a virtual disk drive provided by the web application server provider.

According to an embodiment of the present invention, the web application service 115 presents functions to the user through which the user can access the storage devices 150, 160 which are owned by or otherwise associated with the user, and which are not provided by the web application server provider. The web application service 115 has previously gathered information from the storage manager 240 with respect to any available storage device that can be accessed. The user interface may display links to drives corresponding to the user associated storage devices 150, 160. Further, after following such a link, a directory of folders and files comprising directories of the respective storage device will be presented.

Further control elements of the user interface provide functions for creating a file or folder, deleting a file or folder, copying or moving a file or folder, and/or renaming a file or folder. If the computing device hosting the accessed storage device has enough processing capabilities, the user may also have the options of compressing/decompressing a file or folder and/or searching for a name, contents or metadata in a file or folder.

Turning now to FIG. 2A depicting a computing device 130 such as an NAS device or any other device not having a graphical user interface. This device includes a network interface 250 for connecting the device to a network such as

LAN 180. The components of computing device 130 are typically connected via a bus 220 allowing data exchange and control of the components via processor

210. These components may include a memory 230 and/or a storage device 160. The storage device 160 may be any of a hard disk drive, solid state disk, magnetic tape, optical storage drive and media, or any other storage device to which data can be written or retrieved from. Such data access or retrieval may be performed by the processor 210 using an appropriate device driver. The storage device 160 may comprise a file system to manage the storage of a plurality of files in a structured directory, for example, including a plurality of folders. According to the present invention, the storage manager 240 may additionally manage the stored data. Such a storage manager 240 needs to be installed on computing device 130. The installed storage manager 240 may be initiated when the computing device 130 boots. Thus, when computing device 130 runs, the storage manager 240 will reside in memory 230, such as a random access memory (RAM), and will also be operated by processor 210.

It is to be noted that the implementation of the present invention is based on the functions provided by the storage manager 240. As mentioned above and described in more detail below, it is the storage manager 240 which connects to the web application server 110.

It is now referred to FIG. 2B illustrating another type of employed computing device 140 which includes similar components as device 130 depicted in FIG. 2A. For example, computing device 140 comprises a processor 215, a memory 235, a network interface 255, and a bus 225 connecting these components. In addition, computing device 140 may be operated by a user through input components and output components, such as a pointing device and a display 145, respectively. Thus, computing device 140 may also comprise a video adaptor 260 or similar video component to which the display 145 is connected. Via the adaptor 260 and display 145 a graphical user interface can be presented to the user, such as a web page interpreted and rendered by a browser program 270.

Turning now to FIG. 3, this figure illustrates the web application server 110 in more detail. As mentioned above, the web application server 110 may be implemented as hardware, software, or a combination thereof. Thus, if any hardware is employed to implement the web application server 110, it includes, for example, a processor, memory, storage device, and/or network interface. For simplicity of the drawing, FIG. 3 only shows a plurality of services and modules which are stored in a memory operated by a processing unit (not shown). In detail, the web application server comprises web application service 115 as mentioned above. The web application service 115 consists of a variety of services, each performing a particular task of web application server 110. It is noted that the depicted services may be combined into a single service and/or software module. On the other hand, some of the services may be omitted in an embodiment of the invention. For example, the storage device association service 330 may not exist at all in one embodiment of the invention, while in a different embodiment parts thereof may be integrated into other services.

Returning to FIG. 3, a device management service 310 is responsible for managing all connections from storage devices to web application server 110. For example, device management service 310 may store a unique identification number (ID) for each opened connection and/or for each connected storage device. Since the connections have been opened by the storage managers 240, device management service 310 may, for example, receive a connection ID with the connection initiation. In a different embodiment, the connection ID may be generated by the device management service 310. The identifying information can then be stored in a data structure, referred to herein as storage device information 320.

In addition to a connection ID, the storage device information 320 may further contain functions which can be performed on or in association with each storage device. As will be explained further below, each storage device and each associated storage manager 240 may provide and/or allow different functions to be performed.

Further, the device management service 310 may optionally be configured for keeping the connection alive. This allows a permanent connection between each storage device and the web application service 115, until the network connection is interrupted due to time out or unforeseen circumstances. This process and the functionality of the device management service 310 will be described in more detail with respect to FIG. 4. Continuing with the description of FIG. 3, device management service 310 may also include a storage device association service 330. This storage device association service 330 retrieves and manages any data regarding storage devices and regarding users who want to gain access to the storage devices. As mentioned above, the web application server allows a plurality of users to connect to the server and to create user profiles. Thus, storage device information for a plurality of storage devices is grouped by user in the storage device association service 330. If a computing device operated by a user connects with web application service 115, the storage device association service 330 can be requested for the storage devices of this particular user.

Web application service 115 also provides the above described user interface through which a user may log on to the web application server 110. The web application service 115 therefore includes an internet portal 340 that is in any format which can be interpreted by a program to generate a user interface.

Thus, web application service 115 can provide the user interface including controls, links, etc. so that a user can select the functions provided with a storage devices, which are then performed via the web application server. These functions may further include sharing of particular data with other users which have also registered. For example, a user may define a shared folder on one of his/her storage devices 150 or 160 to which other users may have access. Such a folder may be used to store digital images. Thus, users are allowed to view data in this particular folder and can browse through digital images or the like via the internet portal and device management service. Another example would be a word processing, spreadsheet or presentation document, on which collaboration by a plurality of users is desired. In this case, a first user may create the document and store it in a particular folder of his/her storage device 150. Other users may then gain access through the internet portal 340 and device management service 310 to the particular folder, open the document, modify it and store it back in the folder on the storage device 150. The advantage of the present invention is that a plurality of users only need to gain access to an internet portal provided by server 110, e.g. via the internet, and will then have access to data stored on the user's local storage device. For every user having at least a guest account on the web application service, the device management service 310 and/or the storage device association service 330 manages the comprehensive access to one particular file or folder requested by a plurality of users.

Implementing remote access on client devices

Turning now to a different embodiment of the present invention, where a central server computing device is not necessary, computing devices 120 and 130 may be connect directly to each other, for example employing a cable connection, or may be connected via local area network 180.

In this particular embodiment of the invention, the services described above as running on the server computing device 110 are installed on, for example, computing device 120. Thus, computing device 120 then runs web application service 115, and an internet portal does not need to be provided. The device management service, also on computing device 120, then receives storage device information from computing device 130, as described in more detail below.

As an example, the user of computing device 120 may be provided with storage device management functionality via a menu in a file explorer. These functions may be provided in a context menu in the file explorer, e.g. after a right mouse click. However, other context menus may be provided in different embodiments. Further, if computing devices 120 and 130 are directly connected or connected via the LAN 180, the user of device 120 may perform storage device and data management functions on the storage device 160 of computer 130. This is possible due to the storage manager 240 running on device 130 and connecting to device 120 instead of server 110.

It is to be noted that the following description of the storage manager 240 may refer to the web application server 110. As will be appreciated by those skilled in the art, the provided examples and implementations can easily be adapted to the embodiment where the web application service 115 runs on client 120. As mentioned above, the web application server 110 may be implemented as software. Thus, any reference to web application server 110 may therefore be understood to refer to either the server as depicted in FIG. 1 or to a software implemented server running on computing device 120.

Storage manager operating at each storage device

Having described the involved computing devices and their respective operational capabilities, the functionality of storage manager 240 will now be described in more detail. It is to be noted that instead of a user, an application program or service running on a computing device can request operations performed at the storage device. For example, the storage manager 240 manages data on a storage device, such as reading/writing data or creating/deleting files or folders. These data managing functions are requested by a web application service 115 to which the storage manager 240 has previously connected. For instance, web application service 115 sends a data packet including a request to storage manager 240 via the open connection between them, while the storage manager 240 responses accordingly after the request has been fulfilled. Further, the managing of data may depend on the user rights assigned to the user currently accessing the storage device via storage manager 240.

Another functionality associated with storage manager 240 may be the compression of data into a compressed format, such as ZIP-format. The user may simply select at least one file and then start the compressing function. Further, the storage manager 240 may also provide for preparing and sending of an email which includes a particular file or plurality of files attached to the email. In addition, searching through the files stored on storage device 150 by name, metadata and/or text is also provided by storage manager 240.

In addition to the data managing functionality, the storage manager 240 further provides functions facilitating the remote data access from a computing device through the network 100, 180. With respect to the components illustrated in FIG. 1 , the storage manager 240 allows the web application server 110 to request functions to be performed on storage device 160 operating on computing device 130. To accomplish the access from web application server to the storage device, the storage manager 240 sends data to the web application service 115 to identify itself. This identification may include a unique storage device identification, which would be globally unique to storage device 160 running on computing device 130.

Further, the provision of storage device information from the storage manager 240 may be performed via any network protocol, for example TCP/IP. The server module 240 may send a small data packet via network interface 250 and the network 100, 180 to the web application server 110. The storage manager only needs to be aware of a network address associated with the web application server. This network address may, in one embodiment of the present invention, be a domain name or a particular IP address associated with the web application server 110. The network address can be hard coded into the storage manager or may be loaded from a variable persistently stored on the computing device hosting the storage manager. The latter allows for updating the address without replacing the entire storage manager.

When the storage manager 240 initiates the sending of the small data packet, due to the network protocol employed by the network interface 250, a network address associated with the computing device 130 will be added to the data packet. As will be appreciated, the network address of the computing device 130 may not be provided by the network interface 250 but by an intermediate network node operating between the computing device and the network. An example of such an intermediate network node may be a modem or broadband router, which are widely used in offices and private households with a broadband connection to a wide area network, such as the internet.

Further, and again with respect to FIG. 1 , once storage manager 240 has sent storage device information to the web application server 110, a connection will be opened between a storage device, i.e. the corresponding storage manager 240, and the web application service 115. It is to be noted that this connection is initiated by the storage manager 240 and not by the server. The device management service 310 is now able to collect storage device information for each registered user, i.e. for each storage manager 240 running on a plurality of computing devices and posting their information to the server. Thus, if a user initiates a user session with the internet portal 340, the device management service 310 and storage device association service 330 are aware of all storage devices associated with the particular user logged in. In addition to the number of storage devices, the device management service 310 may also collect information about functionalities available at each device.

Referring now to the network 100, 180 to which all devices can connect. As with all network environments, a network connection may be interrupted due to certain circumstances. For example, one of the involved devices has been shut down or a power failure has occurred, resulting in a rebooting of the device.

Another failure may be a broken or removed network cable. Further, most of the network protocols involve time outs to disconnect unused network connections.

Thus, to address these interruptions of network connections on the web application server, the present invention provides an optional mechanism to maintain the connection between a storage manager 240 and the web application service 115 nearly permanently. For example, as further discussed with respect to FIG. 4 below, the device management service 310 provides a "keep-alive" mechanism which avoids disconnection due to time outs. This mechanism uses the connection established between the web application service 115 and the storage manager 240 to send a particular data packet, similar to a "ping" command, to the storage manager 240. When receiving such a command from the device management service 310, the storage manager 240 will immediately respond with another data packet (herein referred to as a "pong" command). Data identifying the open connection will typically be included in the "ping" data packet sent by the server, so that the storage manager 240 may identify itself in the "pong" response. Further, to adapt this mechanism to different network protocols, a time interval may be defined after which the device management service 310 will repeat the sending of a "ping" to keep the connection alive.

In another embodiment of the invention, it is the storage manager 240 which repeats sending storage device information to the server 110. In this manner, the server continuously receives information of each storage device currently running. The establishing and maintaining of connections between the server and the storage devices may then be omitted, which saves memory and processing resources at the server. For example, if the device management service 140 needs to address a particular storage device, e.g. to request a data management operation, the device management service can then assume that a storage manager 240 operating with this storage device 160 will send the necessary storage device information shortly. This may lead to delays when performing user requests directed to a storage device, however, network traffic and necessary memory capacities at the web application service 115 may be reduced.

Exemplary method for remote data access

It is now referred to FIG. 4 which depicts a particular embodiment of the present invention where a storage manager 240 is installed with any storage device the user wants to access. In particular, the storage manager 240 will be installed on the computing device including and operating the storage device, for example storage device 160. Since the storage manager 240 is small in size, it can be installed on any device, such as personal computers, notebooks, sub- notebooks, netbooks and/or network attached storage (NAS) devices.

With respect now to FIG. 4A, a storage manager 240 already running on computing device 130 may retrieve, at step 405, a network address associated with the web application server 110. The address may be an IP address or a domain name. In any case, storage device information is sent to the web application server 110 at step 410. This information includes a unique device identification. After receiving the storage device information, the web application server 110 processes the received information associated with the storage device at step 415. In particular, it is the device management service 310 running on web application server 110 which performs step 415.

As depicted in FIG. 4A, a further step 420 may be performed where a response is sent to the storage manager 240. This response may include a session identification for the established connection between the web application server and the storage manager, i.e. the computing device hosting the storage device and storage manager.

Further, the storage manager 240 sends at step 430 information to the server indicating which functionality is available at the storage device and/or which functionality the storage manager 240 is able to perform on the storage device. It is noted that the available functionality may already have been provided to the web application server with step 410, where the storage device information is sent to the web application server. Thus, steps 420 and 430 may be omitted to accelerate the process and to reduce the amount of data sent between the storage manager 240 and the web application service 115.

In addition, a situation may occur where the network address associated with the computing device 130 comprising the storage device 160 has changed. To avoid working with obsolete network connection data, steps 405 and 410 are repeated by storage manager 240 whenever it is initiated. For example, the steps may be repeated every time the computing device hosting the storage device boots. Moreover, the storage manager 240 may also comprise functionality to determine a change of the associated network address.

It is to be noted that the connection between the storage manager 240 and the web application service 115 may be established even where no user interaction occurs. To provide instant access to the user's storage devices, the connection may be maintained as follows. Once the connection between the storage manager 240 and the web application service 115 has been established, the web application service 115 sends in step 430 a "ping" data packet to the storage manager 240 to keep the connection or session between these two entities alive. For example, the "ping" command may be sent every five minutes. It will be appreciated that any time interval may be implemented according to the employed network protocol and/or network connection. To reduce network traffic, the device management service 310 may provide information in its response to storage manager 240, so that subsequent data packets from storage manager 240 to web application service 115 may be reduced in size. For example, a particular unique number may be sent to storage manager 240, which can then be included in any data packet sent from the storage manager.

In response to the "ping" command, the storage manager 240 immediately sends information in step 435 to the web application service 115, this data packet being referred to herein as "pong". It is advantageous if this data packet includes the above described unique storage device identification. Further, the "pong" response may also be seen as a re-establishing of the connection to the server, since it may include similar information as step 410.

It is further to be noted that steps 430 and 435 have been depicted in FIG. 4A only, although the process continues in FIG. 4B. It is, however, noted that sending the "ping" command from server 110 is independent from the reception of a user command at server 110, as outlined below with respect to FIG. 4B. In other words, the web application service 115 is responsible for keeping the connection alive independent of a logged-in user or a user initiated request. As will be appreciated, steps 430 and 435 may be repeatedly performed at any time within the entire process shown in FIGs. 4A and 4B.

With reference to FIG. 4B, the process involves steps employing a computing device, such as device 140. The method may start at (or continue with) step 440, where the computing device 140 connects to the web application server and begins a user session with the internet portal 340. For example, the user may provide login information to web application service 115. Once connected, the web application service 115 provides a user interface, at step 445, which includes information regarding the available functionality of storage devices associated with the user. For example, such a user interface may be implemented as an HTML file, where each function may be displayed as an executable link. In another embodiment, the user interface may be implemented using a different language which can be interpreted by a program on computing device 140, and which allows the user to select each of the available functions. The user interface is then presented to the computing device 140 at steps 450 and 455.

Further, at step 455, the user may interact with the user interface by selecting a particular functionality. For example, the computing device 140 may present on a display 145 the HTML page generated at step 445. The user may then select a link or button provided on the user interface to perform a particular function. For instance, the user may create a file or folder, may copy a file, move/rename a file or folder or delete a folder and file. Other functions which may be provided by storage manager 240 as well.

At step 458, the computing device 140 sends the user interaction to the web application service 115. For example, an HTTP-GET or HTTP-POST may be sent to the internet portal 340 provided by web application server 110. The user interaction received is then processed by the web application service 115 and a request is generated at step 460. This request for a particular action or functionality is then sent at step 465 to the storage manager 240. Again, this request may be implemented as HTTP commands or any other suitable protocol command.

Thus, using the permanent connection to the storage manager 240 the service 140 will be able to forward in step 465 the user request to the intended storage device at storage manager 240. Further, the storage manager 240 performs the requested action on storage device 150, see step 470. Any result of this performed action is sent back to web application service 115 at step 475. Further, the response data, i.e. the result, may then be internally forwarded (not shown) to internet portal 340 and to device management service 310.

At step 480, the method continues with processing the result received from step 475 and by updating the user interface. The updated user interface is then provided to the computing device 140 at step 485. It is noted that steps 455 to 485 may be repeated until the user session is terminated at step 490. For example, the user at computing device 140 may terminate the session by selecting a log-out function in the user interface. Further, the internet portal 340 and/or storage device association service 330 may also terminate the user session, if it is determined that the user session is open, but no user interaction has occurred for a particular amount of time. For instance, the internet portal 340 and/or storage device association service 330 may compare a current time with data stored in user session data 320 (see FIG. 3) to determine whether the user session is to be terminated.

Finally, as described above, the web application server 110 may also run on computing device 120 that directly communicates with storage manager 240. In this case, steps 440 through 450, as well as steps 480 and 485 are omitted, while steps 415 and 460 are performed by computing device 120.

It is to be noted that the present invention can be implemented using any programming technology. In an embodiment of the present invention, the storage manager 240 running on the device hosting a storage device may be implemented as a script. For example, a PHP interpreter may be employed to interpret the script. Further embodiments may include a compiled version where the storage manager is an executable program adapted to the platform of the hosting computer device.

It is further to be noted that the any of the above discussed embodiments may be automated in such a manner that a software program performs all the steps described to be done by the user.

While the invention has been described with respect to the physical embodiments constructed in accordance therewith, it will be apparent to those skilled in the art that various modifications, variations and improvements of the present invention may be made in light of the above teachings and within the purview of the appended claims without departing from the spirit and intended scope of the invention. In addition, those areas in which it is believed that those of ordinary skill in the art are familiar have not been described herein in order to not unnecessarily obscure the invention described herein. Accordingly, it is to be understood that the invention is not to be limited by the specific illustrative embodiments, but only by the scope of the appended claims.

What is claimed is: