WO2006110111A1 - Data storage system and method of providing access to data - Google Patents

Data storage system and method of providing access to data Download PDF

Info

Publication number
WO2006110111A1
WO2006110111A1 PCT/SG2006/000094 SG2006000094W WO2006110111A1 WO 2006110111 A1 WO2006110111 A1 WO 2006110111A1 SG 2006000094 W SG2006000094 W SG 2006000094W WO 2006110111 A1 WO2006110111 A1 WO 2006110111A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
database
external
data storage
storage device
Prior art date
Application number
PCT/SG2006/000094
Other languages
French (fr)
Inventor
Jhingan Nikhil
Udharam Vasnani Vinod
Original Assignee
Accellion Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Accellion Pte Ltd filed Critical Accellion Pte Ltd
Publication of WO2006110111A1 publication Critical patent/WO2006110111A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers

Definitions

  • the present invention relates broadly to a data storage system, to a method of providing access to data, and to a data storage medium having stored thereon computer code means for instructing a computer device to execute a method of providing access to data.
  • data may not be stored securely.
  • an unauthorized user getting access to the appropriate device can make a copy of the data with the proliferation of such devices that allow for transfer between different storage types.
  • Off site or external remote storage such as Internet Backup websites aim at providing a backup of files from one particular device typically a PC, laptop, PDA, mobile phones and the like.
  • Internet Backup websites allow for each device to backup files on to off-site remote storage and to recover them.
  • As the function suggests such websites provide a backup copy of the files i.e. a snapshot of the files that exist on the device at a particular time.
  • the functionality provided by such internet backup website is typically limited, and requires a "manual" tracking of what data, and from which particular device is stored at which of-side remote storage.
  • a user will typically maintain all of the original data on the respective devices for convenience of access speed, at the cost of data storage consumption and the above mentioned "manual" management of where and on which device a particular data file is stored.
  • a data storage system comprising a first database for storing data locally in the data storage system; a communication module for downloading data from at least one external data storage device; a cache database for caching data downloaded from the external data storage device based on caching rules for managing a content of the cache data base; and a user interface module for providing access to data stored in the first database and to data stored in the external data storage device; wherein the user interface module checks availability of data requested by the user from the external data storage device in the cache database for providing the data from the cache database.
  • the data storage system may be implemented in a portable device.
  • the user interface module may comprise a processor for executing an application program to instruct an external display to display a graphic user interface.
  • the external display may be coupled to an external computer device, and the data storage system comprises an interface for coupling to the external computer-device.
  • the user interface module may execute, instruct execution, or both of an authentication program for user authentication.
  • the user authentication may include identifying access rights of the user.
  • the system may further comprise an index database for storing an index of information associated with data stored in the first database and the external database.
  • the system may further comprise an uploading module for uploading data to the first database, the external database, or both.
  • the uploading module may check for existence of data substantially similar to said data for which an upload is requested in the first database and the external database prior to uploading said data.
  • the uploading module may upload said data based on version rules for storing one or more versions of substantially similar data.
  • the system may further comprise an application module at a server associated with the external data storage device.
  • a method of providing access to data comprising the steps of providing a first database for storing data locally in a data storage system; downloading data from at least one external data storage device; caching data downloaded from the external data storage device based on caching rules for managing a content of the cache data base; and providing access to data stored in the first database and to data stored in the external data storage device; wherein availability of data requested by the user from the external data storage device in the cache database is checked for providing the data from the cache database.
  • the data storage system may be implemented in a portable device.
  • the method may further comprise executing an authentication program for user authentication.
  • the user authentication may include identifying access rights of the user.
  • the method may further comprise storing an index of information associated with data stored in the first database and the external database.
  • the method may further comprise uploading data to the first database, the external database, or both.
  • the uploading may include checking for existence of data substantially similar to said data for which an upload is requested in the first database and the external database prior to uploading said data.
  • the uploading may based on version rules for storing one or more versions of substantially similar data.
  • a data storage medium having stored thereon computer code means for instructing a
  • a computer device to execute a method of providing access to data, the method comprising the steps of providing a first database for storing data locally in a data storage system; downloading data from at least one external data storage device; caching data downloaded from the external data storage device based on caching rules for managing a content of the cache data base; and providing access to data stored in the first database and to data stored in the external data storage device; wherein availability of data requested by the user from the external data storage device in the cache database is checked for providing the data from the cache database.
  • Fig. 1 illustrates a detailed block diagram of an universal hierarchical storage (UHS) system.
  • UHS universal hierarchical storage
  • Fig. 2 illustrates an implementation environment of the UHS system of Fig. 1.
  • Fig. 3 illustrates a flow diagram of a method of connecting to the UHS system.
  • Fig. 4 illustrates a flow diagram of a method of processing a request for a file from a UHS system.
  • Fig. 5 illustrates a flow diagram of processing a file index view, performing a search, requesting for file details and requesting version information of files stored on a UHS system.
  • Fig. 6 illustrates a flow diagram of a method of processing a request to store a file on a UHS system.
  • Fig. 7 illustrates a flow diagram of a method of providing temporary access to files stored on a UHS system to recipients.
  • Fig. 8 shows a flowchart illustrating a method of providing access to data.
  • the present specification also discloses apparatus for performing the operations of the methods.
  • Such apparatus may be specially constructed for the required purposes, or may comprise a general purpose computer or other device selectively activated or reconfigured by a computer program stored in the computer.
  • the algorithms and displays presented herein are not inherently related to any particular computer or other apparatus.
  • Various general purpose machines may be used with programs in accordance with the teachings herein.
  • the construction of more specialized apparatus to perform the required method steps may be appropriate.
  • the structure of a conventional general purpose computer is known to a person skilled in the art.
  • the present specification also implicitly discloses a computer program, in that it would be apparent to the person skilled in the art that the individual steps of the method described herein may be put into effect by computer code.
  • the computer program is not intended to be limited to any particular programming language and implementation thereof. It will be appreciated that a variety of programming languages and coding thereof may be used to implement the teachings of the disclosure contained herein. Moreover, the computer program is not intended to be limited to any particular control flow. There are many other variants of the computer program, which can use different control flows without departing from the spirit or scope of the invention.
  • FIG. 1 illustrates a detailed block diagram of a data storage system in the form of a portable storage device 100.
  • the functionality of the device 100 is implemented as a UHS application on the portable storage device 100.
  • UHS 100 containing the UHS Application 101 connects to a computing device 114 needing to use UHS utilizing a communication module 106 via one or more of various communications standards such as but not limited to USB, Firewire, Ethernet, Wifi and Bluetooth.
  • various communications standards such as but not limited to USB, Firewire, Ethernet, Wifi and Bluetooth.
  • the UHS application 101 communicates with external data storage sites 112, 113 via a suitable arranged communication network or system such as the Internet, LAN or WAN 108 utilising a remote communication module 109.
  • a suitable arranged communication network or system such as the Internet, LAN or WAN 108 utilising a remote communication module 109.
  • the communication can be encrypted using SSL or with any commercially available technologies known to those familiar with the art
  • UHS Application 101 is coupled to a database 103 containing Configuration & Settings, to a database 104 containing an Index of files, Meta- Information and keywords, and to a Local Cache 105.
  • the UHS application 101 provides a number of services.
  • Authentication service module 110 can be turned on to prevent unauthorized access to the files.
  • the Authentication service module 110 accepts as an input a password and/or a bio- metrics based identification such as a fingerprint. It will be appreciated by a person skilled in the art that other known authentication methodologies may be applied.
  • File processing services module 107 provides fingerprinting, file versioning, compression, encryption, keyword extraction and lifecycle rules etc., as will be described in more detail below.
  • the communication module 106 provides the capability to communicate with the computing devices to which the portable storage device 100 is connected, which include but are not limited to computers, PDA, phones, digicams and the like 114.
  • the communication methods include but are not limited to USB, Firewire, Bluetooth, Ethernet, WiFi.
  • Remote communication module 109 provides the means for the portable storage device 100 to communicate with the external storage sites 112, 113 over a suitably arranged communication network or system such as the internet or the internal network 108.
  • the traffic can optionally be encrypted over SSL or any other commercially available means known to those familiar with the art.
  • Remote communication can occur via a network communication arranged and established via the connected computing device 114 or via a network communication arranged and established via the portable storage device 100.
  • the UHS application 101 maintains an index of information associated with data stored in the portable storage device and at the external storage sites 112, 113, such as an index of files as well as meta information about the files such as size, date and the like in the database 104, as well as a searchable index of keywords associated with the files.
  • Local Cache 105 keeps a local copy of recently and frequently accessed files for quick access. This component is managed by the File Processing component 107 which is part of the UHS Application 101. A requested file is provided from the local cache 105 via the UHS Application 101. If a file does not exist in the local cache 105, the file is fetched from the external storage sites 112, 113 via Remote Communications 109 and a copy is stored in the Local Cache 105 for future use. When the lifecycle of the file ends as determined by Lifecycle rules of the File Processing component 107, the file is removed from the Local Cache 105.
  • Database 103 stores the values of various configuration and settings for the UHS Application 101, including configuration and settings for Compression, Encryption, File Lifecycle rules, as well as configuration for file versioning such as the number of versions to be kept.
  • database 103 stores the value for the configuration and settings of the local cache 105 such as file retention periods.
  • Database 105 also houses the rules for creating Universal Resource Locators (URLs) to provide temporary access to particular files. These include URL expiry and file access rules such as requiring authentication and identification before download.
  • URLs Universal Resource Locators
  • External sites 112, 113 comprise distributed servers and associated storage.
  • Storage for purposes hereof can be defined broadly as any suitably arranged memory/storage device, including hard disk drives, solid state drives, a redundant array of inexpensive disks (“RAID”), random access memory (“RAM”) or the like.
  • Distributed servers for purposes hereof, can be broadly defined as any number of physical servers and associated servers on different networks being able to communicate with each other. It will be appreciated by those of ordinary skill in the art, although shown as respective single servers 112a, 113a and associated storage 112b, 113b, several servers and associated storage configured in a load balanced fashion may be utilised. Such multiple servers and/or the distributed servers provide a means for redundant copies of uploaded files to be stored on different servers and/or locations.
  • Servers 112a, 113a execute appropriate software to provide for upload and download of files familiar to those ordinarily skilled in the art.
  • dedicated UHS remote application module(s) 112c, 113c may be implemented at the servers 112a, 113a to provide UHS specific functionality.
  • UHS user specific information such as the configuration and settings stored in database 103, and the index of files, Meta- information and keywords stored in database 104 may be duplicated at the UHS remote application module 112c, 113c at one or more of the servers 112a, 113a. This can be useful for providing a user with a "fresh" customized UHS local application 101 in case of loss of a device on which a user had installed their UHS local application 101, or to "transfer" the information where different portable devices are used etc.
  • the UHS remote application modules at the servers 112a, 113a can provide UHS access capability to user data if the user directly accesses the servers 112a, 113a, i.e. without going through the UHS local application 101, e.g. for file accessing or uploading.
  • Fig. 2 illustrates a general overview of an implementation environment for the data storage device of Fig. 1.
  • the portable storage device illustratively shown as a USB flash memory device 200, running the UHS application 101 (Fig. 1), can be connected to various computing devices such as Desktop PC 201, phone 202, camera 203, Laptop 204, PDA 205, Portable Music devices 206 or any computing device.
  • the USB flash memory device 200 allows a user to have access to all digital files belonging to the user stored either locally on the USB flash memory device 200, running the UHS application 101 (Fig.
  • Files can be stored in encrypted form on the remote storage site 208.
  • the data transfer between the USB flash memory device 200 and the remote storage site 208 can be optionally secure by encrypting over SSL 207 or any other commercially available means known to those familiar with the art.
  • the UHS application 101 may alternatively or additionally be implemented on any one or more of the various computing devices 201 to 206.
  • each of the devices 201 to 206 if the UHS application 101 (Fig. 1) is implemented thereon, can function to interact with the remote storage 208 and each of the other computing devices in the same fashion as described above for the scenario where the UHS application 101 (Fig. 1) is implemented on the USB flash memory device 200 in managing a user's data from various computing devices, utilizing data storage capabilities locally available at each of the computing devices 201 to 206.
  • Fig. 3 illustrates a flow diagram 300 of a method of connecting to a UHS system.
  • the UHS system if running on the computing device itself 301, would either be started when the computing device itself is started or launched manually like any application today which is familiar to those ordinarily skilled in the art 306. If installed on a portable storage device, the UHS system is launched when the portable storage device establishes communication to the computing device 302 via one or more of various communications standards that are known to those skill in the art and these include but are not limited to USB, Firewire, Ethernet, Wifi and Bluetooth.
  • the UHS application running as part of the UHS system presents the UHS system to the computing devices as a storage device similar to a network drive known to those skilled in the art.
  • authentication may be required 304 before proceeding to gaining access to retrieve or store files via the UHS system. If no authentication is required, the user has access to retrieve and store his/her files immediately. If authentication is required, a password prompt appears 307 and the user can authenticate using his/her password or use a fingerprint reader if equipped to authenticate. It will be appreciated by a person skilled in the art that other known authentication methodologies may be applied. Once authenticated successfully, the user gains access to retrieve and store his/her files 305.
  • Fig. 4 illustrates a flow diagram 400 of a method of processing a request for a file from a UHS system.
  • the file is obtained from the local cache if available 402, and if necessary decompressed and decrypted 405 before the file is served to the user 406.
  • the requested file can be advantageously provided to the user without the need to download the file from the external storage site on which the corresponding "original" file is stored.
  • this can significantly increase the excess speed for the requested file and furthermore avoid any interruptions or unavailability of the requested data due to external events such as interruptions on a communication network to which the external storage site is connected.
  • the UHS system fetches the file from the remote storage site 403 and a copy is kept in the local cache for a period of time for frequent/repeat access 404. If required, the file is decompressed and decrypted 405 before serving the file to the user 406.
  • the file is kept in the local cache stored in the original stored state that is compressed and possibly encrypted depending on the configuration and settings at the time the file was originally stored using the UHS system.
  • the file is removed from the local cache if there is no further access for a certain period of time and/or the allocated cache storage space has run out.
  • Various other methodologies for managing the local cache may be implemented and such methodologies can be applied here as well.
  • Fig. 5 illustrates a flow diagram 500 of methods of processing a file index view, performing a search, requesting for file details and requesting version information of files stored on an UHS system.
  • a user requests a file index to view and browse 501.
  • This file index view is presented as a folder hierarchy corresponding to an originally stored hierarchy in the UHS system 502. By default all files and folders are presented in the view.
  • a user may view a subset of the list of files by searching against keywords within the file 503. Details of each file on the list are also provided 502, 504. Exemplary details of each file include but are not limited to size, date and time it was last accessed, date and time it was last modified.
  • Users are also able to view additional details 505 for selected files such as details of email addresses, if any, to whom the URL of the files was sent as well as any download/delivery reports of the recipients of the URL 506.
  • the view can be sorted against such meta information such as size, access and modified times 502.
  • For each file several versions may be kept. When requested ordinarily, the latest version is served.
  • the user can request to have version information available for selected files 507.
  • For each version of the file similar details of the file as listed above are also provided 508.
  • the number of file versions that are kept is as determined in the configuration and settings of the UHS system.
  • Various other file versioning methodologies exist in terms of how versions are kept and the number of copies to keep and are familiar to those who are ordinarily skilled in the art and such methodologies can be applied here as well.
  • Fig. 6 illustrates a flow diagram 600 of a method of processing a request to store a file on an UHS system.
  • a file that is placed in the UHS system 601 undergoes several processing steps as the file is added to the system.
  • the file is scanned to extract meta information such as size, access and last modified time as well as keywords extracted for future searches 602.
  • a fingerprint of the file is then computed using one way hash functions such as for example SHA1 or MD5 603.
  • One way hash functions are known to those ordinarily skilled in the art.
  • the version information is updated to indicate this as the latest version of the file 610. If the filename and path i.e. the file handle exists 604, and the file content has not changed as indicated by the fingerprint, the meta information such as last access time is updated 608. If the file has a new filename and path 604, and the one copy storage option is on and the fingerprint matches an existing file 605, then a new entry is added to the file index for this file and the meta information updated to point this entry in the file index to this existing file 611.
  • the one copy option when turned on, allows for storage optimization by storing only one copy of a file based on the file content fingerprint. Only the meta information is updated such that now multiple filenames and paths on the file index point to the same physical file as the file contents are identical. A copy may also be kept in the cache if one does not exist currently 612.
  • the file is then compressed and encrypted if required 606 as indicated by the UHS system's configuration and settings. Once that processing is done, the file is kept in the local cache and a copy is also transferred to a remote storage site 608.
  • the meta information i.e. file details for that file such as file name, path, size, last access and modified time, file fingerprint etc is updated and stored at the UHS system's store for file meta information 608.
  • Fig. 7 illustrates a flow diagram 700 of a method of providing temporary access to files stored on a UHS system to recipients.
  • a user first selects the files that they would like to give access to a set of recipients 701.
  • the user is then presented with a form 702 to enter the list of recipients, a subject and a text message associated with the files that are to be shared and the user clicks a send button once the details are entered 703.
  • the UHS system then generates URLs for the selected files 704.
  • the URL to the file may typically contain an encoded set of rules and security policies associated with the download of the file such an expiry time for the URL as well as requiring identification and authentication of the recipient before downloading the file. These rules for creating the temporary URLs are stored and retrieved from the UHS systems configuration and settings.
  • the URLs are then appended to the email message and the system sends the message to the recipients 705.
  • the recipient receives the email message and downloads the files by clicking on the respective URLs 706. Authentication may be required before download proceeds as encoded in the URL.
  • a return receipt can be also be configured to be send to the user/sender once the recipient has downloaded the file 707, using the UHS remote storage site form which the download was provided. These rules and polices are as indicated by the configuration and settings of the UHS system.
  • the URL can be securely protected to prevent tempering using various authentication methods to encode the information presented with the URL 1 for example using hashed message authentication codes (HMACs) such as those described in "HMAC: Keyed-Hashing for Message Authentication" Request for Comments No: 2104 by Krawczyk et al, Network Working Group, Feb., 1997.
  • HMACs hashed message authentication codes
  • the UHS system takes the necessary steps to transfer the file to the UHS remote storage site if the file is not already present at the remote storage site. The recipient would download the file via the URL received.
  • Fig. 8 shows a flowchart 800 illustrating a method of providing access to data.
  • a first database for storing data locally in a data storage system is provided.
  • data is downloaded from at least one external data storage device.
  • data downloaded from the external data storage device is cached based on caching rules for managing a content of the cache data base.
  • access to data stored in the first database and to data stored in the external data storage device is provided, wherein availability of data requested by the user from the external data storage device in the cache database is checked for providing the data from the cache database.
  • the described systems and methods can provide a universal hierarchical storage system accessible by a user which uniquely combines portable storage with off-site remote storage to provide practically infinite expandable storage.
  • the described systems and methods by incorporating a cache database in the universal hierarchal storage system for storing files based on cache management rules, can provide high access speed to files stored at external storage devices.
  • the described systems and method can eliminate the need for keeping original data permanently duplicated on local devices for reasons of access convenience and speed as is typically required for existing of-site remote storage systems.

Abstract

A data storage system and method of providing access to data. The data storage system comprises a first database for storing data locally in the data storage system; a communication module for downloading data from at least one external data storage device; a cache database for caching data downloaded from the external data storage device based on caching rules for managing a content of the cache data base; and a user interface module for providing access to data stored in the first database and to data stored in the external data storage device; wherein the user interface module checks availability of data requested by the user from the external data storage device in the cache database for providing the data from the cache database.

Description

Data Storage System and Method of Providing Access to Data
FIELD OF INVENTION
The present invention relates broadly to a data storage system, to a method of providing access to data, and to a data storage medium having stored thereon computer code means for instructing a computer device to execute a method of providing access to data.
BACKGROUND
The commercial availability of flash based memory as well as the reduction in the physical size of hard disks have enabled business and individuals to rely ever increasingly upon the same, to meet their need for information storage when using portable devices. Such portable storage devices come in various form factors which include USB thumb drives, PDAs, portable hard drives, laptops, cameras, phones, portable music players, desktop PCs.
In addition, the availability of communication standards which include USB, Bluetooth, Ethernet and Wifi have made it easier for these portable devices to communicate with each other as well as with other devices. Many of these devices today have the built in capability to access the internet either wirelessly and/or via a cable.
It is not uncommon today for users to have more than one such portable device and would have data stored across these devices as well as file transfers between these devices are also not uncommon. For example a user with a digital camera, either standalone or combined with other devices such as PDA and phones, would commonly offload pictures on to a laptop or PC for storage as the capacity reaches it's limit or to make it easier for sharing, processing and printing. It is common for some copies of those pictures to exist on the camera. Similarly with music data files, have them in the portable music player, phone as well as on the laptop or PC, as electronic documents which are likely spread across, duplicated or have different versions in USB thumb drive, portable hard drives and in laptops. Such ubiquitous storage devices create an issue with tracking where the files are stored as well as which versions of data are stored. As such, gaining access to the appropriate file or a particular file version stored on one of them can be a time consuming task.
In addition, data may not be stored securely. As such an unauthorized user getting access to the appropriate device can make a copy of the data with the proliferation of such devices that allow for transfer between different storage types.
Off site or external remote storage such as Internet Backup websites aim at providing a backup of files from one particular device typically a PC, laptop, PDA, mobile phones and the like. Internet Backup websites allow for each device to backup files on to off-site remote storage and to recover them. As the function suggests such websites provide a backup copy of the files i.e. a snapshot of the files that exist on the device at a particular time. However, the functionality provided by such internet backup website is typically limited, and requires a "manual" tracking of what data, and from which particular device is stored at which of-side remote storage. Furthermore, a user will typically maintain all of the original data on the respective devices for convenience of access speed, at the cost of data storage consumption and the above mentioned "manual" management of where and on which device a particular data file is stored.
A need therefore exists to provide a data storage system that seeks to address at least one of the above mentioned disadvantages.
SUMMARY
In accordance with a first aspect of the present invention there is provided a data storage system comprising a first database for storing data locally in the data storage system; a communication module for downloading data from at least one external data storage device; a cache database for caching data downloaded from the external data storage device based on caching rules for managing a content of the cache data base; and a user interface module for providing access to data stored in the first database and to data stored in the external data storage device; wherein the user interface module checks availability of data requested by the user from the external data storage device in the cache database for providing the data from the cache database.
The data storage system may be implemented in a portable device.
The user interface module may comprise a processor for executing an application program to instruct an external display to display a graphic user interface.
The external display may be coupled to an external computer device, and the data storage system comprises an interface for coupling to the external computer-device.
The user interface module may execute, instruct execution, or both of an authentication program for user authentication.
The user authentication may include identifying access rights of the user.
The system may further comprise an index database for storing an index of information associated with data stored in the first database and the external database.
The system may further comprise an uploading module for uploading data to the first database, the external database, or both.
The uploading module may check for existence of data substantially similar to said data for which an upload is requested in the first database and the external database prior to uploading said data.
The uploading module may upload said data based on version rules for storing one or more versions of substantially similar data. The system may further comprise an application module at a server associated with the external data storage device.
In accordance with a second aspect of the present invention there is provided a method of providing access to data, the method comprising the steps of providing a first database for storing data locally in a data storage system; downloading data from at least one external data storage device; caching data downloaded from the external data storage device based on caching rules for managing a content of the cache data base; and providing access to data stored in the first database and to data stored in the external data storage device; wherein availability of data requested by the user from the external data storage device in the cache database is checked for providing the data from the cache database.
The data storage system may be implemented in a portable device.
The method may further comprise executing an authentication program for user authentication.
The user authentication may include identifying access rights of the user.
The method may further comprise storing an index of information associated with data stored in the first database and the external database.
The method may further comprise uploading data to the first database, the external database, or both.
The uploading may include checking for existence of data substantially similar to said data for which an upload is requested in the first database and the external database prior to uploading said data.
The uploading may based on version rules for storing one or more versions of substantially similar data. In accordance with a third aspect of the present invention there is provided a data storage medium having stored thereon computer code means for instructing a
computer device to execute a method of providing access to data, the method comprising the steps of providing a first database for storing data locally in a data storage system; downloading data from at least one external data storage device; caching data downloaded from the external data storage device based on caching rules for managing a content of the cache data base; and providing access to data stored in the first database and to data stored in the external data storage device; wherein availability of data requested by the user from the external data storage device in the cache database is checked for providing the data from the cache database.
BRIEF DESCRIPTION OF THE DRAWINGS
For a more complete understanding of the present invention, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which like numbers designate like object and in which
Fig. 1 illustrates a detailed block diagram of an universal hierarchical storage (UHS) system.
Fig. 2 illustrates an implementation environment of the UHS system of Fig. 1.
Fig. 3 illustrates a flow diagram of a method of connecting to the UHS system.
Fig. 4 illustrates a flow diagram of a method of processing a request for a file from a UHS system.
Fig. 5 illustrates a flow diagram of processing a file index view, performing a search, requesting for file details and requesting version information of files stored on a UHS system. Fig. 6 illustrates a flow diagram of a method of processing a request to store a file on a UHS system.
Fig. 7 illustrates a flow diagram of a method of providing temporary access to files stored on a UHS system to recipients.
Fig. 8 shows a flowchart illustrating a method of providing access to data.
DETAILED DESCRIPTION
Unless specifically stated otherwise, and as apparent from the following, it will be appreciated that throughout the present specification, discussions utilizing terms such as "downloading", "uploading", "determining", "checking", "generating", "authenticating", "encrypting", or the like, refer to the action and processes of a computer system, or similar electronic device, that manipulates and transforms data represented as physical quantities within the the computer system into other data similarly represented as physical quantities within the computer system or other information storage, transmission or display devices.
The present specification also discloses apparatus for performing the operations of the methods. Such apparatus may be specially constructed for the required purposes, or may comprise a general purpose computer or other device selectively activated or reconfigured by a computer program stored in the computer. The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose machines may be used with programs in accordance with the teachings herein. Alternatively, the construction of more specialized apparatus to perform the required method steps may be appropriate. The structure of a conventional general purpose computer is known to a person skilled in the art. In addition, the present specification also implicitly discloses a computer program, in that it would be apparent to the person skilled in the art that the individual steps of the method described herein may be put into effect by computer code. The computer program is not intended to be limited to any particular programming language and implementation thereof. It will be appreciated that a variety of programming languages and coding thereof may be used to implement the teachings of the disclosure contained herein. Moreover, the computer program is not intended to be limited to any particular control flow. There are many other variants of the computer program, which can use different control flows without departing from the spirit or scope of the invention.
FIG. 1 illustrates a detailed block diagram of a data storage system in the form of a portable storage device 100. The functionality of the device 100 is implemented as a UHS application on the portable storage device 100. The portable storage device
100 containing the UHS Application 101 connects to a computing device 114 needing to use UHS utilizing a communication module 106 via one or more of various communications standards such as but not limited to USB, Firewire, Ethernet, Wifi and Bluetooth.
The UHS application 101 communicates with external data storage sites 112, 113 via a suitable arranged communication network or system such as the Internet, LAN or WAN 108 utilising a remote communication module 109. Optionally the communication can be encrypted using SSL or with any commercially available technologies known to those familiar with the art
UHS Application 101 is coupled to a database 103 containing Configuration & Settings, to a database 104 containing an Index of files, Meta- Information and keywords, and to a Local Cache 105.
The UHS application 101 provides a number of services. Authentication service module 110 can be turned on to prevent unauthorized access to the files. The Authentication service module 110 accepts as an input a password and/or a bio- metrics based identification such as a fingerprint. It will be appreciated by a person skilled in the art that other known authentication methodologies may be applied. File processing services module 107 provides fingerprinting, file versioning, compression, encryption, keyword extraction and lifecycle rules etc., as will be described in more detail below.
The communication module 106 provides the capability to communicate with the computing devices to which the portable storage device 100 is connected, which include but are not limited to computers, PDA, phones, digicams and the like 114. The communication methods include but are not limited to USB, Firewire, Bluetooth, Ethernet, WiFi. Once the portable storage device 100 is connected or plugged in and communications are established, the communications module 106 provides the means for the UHS application 101 to communicate with the computing device 114.
Remote communication module 109 provides the means for the portable storage device 100 to communicate with the external storage sites 112, 113 over a suitably arranged communication network or system such as the internet or the internal network 108. The traffic can optionally be encrypted over SSL or any other commercially available means known to those familiar with the art. Remote communication can occur via a network communication arranged and established via the connected computing device 114 or via a network communication arranged and established via the portable storage device 100.
The UHS application 101 maintains an index of information associated with data stored in the portable storage device and at the external storage sites 112, 113, such as an index of files as well as meta information about the files such as size, date and the like in the database 104, as well as a searchable index of keywords associated with the files.
Local Cache 105 keeps a local copy of recently and frequently accessed files for quick access. This component is managed by the File Processing component 107 which is part of the UHS Application 101. A requested file is provided from the local cache 105 via the UHS Application 101. If a file does not exist in the local cache 105, the file is fetched from the external storage sites 112, 113 via Remote Communications 109 and a copy is stored in the Local Cache 105 for future use. When the lifecycle of the file ends as determined by Lifecycle rules of the File Processing component 107, the file is removed from the Local Cache 105.
Database 103 stores the values of various configuration and settings for the UHS Application 101, including configuration and settings for Compression, Encryption, File Lifecycle rules, as well as configuration for file versioning such as the number of versions to be kept. In addition, database 103 stores the value for the configuration and settings of the local cache 105 such as file retention periods. Database 105 also houses the rules for creating Universal Resource Locators (URLs) to provide temporary access to particular files. These include URL expiry and file access rules such as requiring authentication and identification before download.
External sites 112, 113 comprise distributed servers and associated storage. "Storage" for purposes hereof can be defined broadly as any suitably arranged memory/storage device, including hard disk drives, solid state drives, a redundant array of inexpensive disks ("RAID"), random access memory ("RAM") or the like. "Distributed servers" for purposes hereof, can be broadly defined as any number of physical servers and associated servers on different networks being able to communicate with each other. It will be appreciated by those of ordinary skill in the art, although shown as respective single servers 112a, 113a and associated storage 112b, 113b, several servers and associated storage configured in a load balanced fashion may be utilised. Such multiple servers and/or the distributed servers provide a means for redundant copies of uploaded files to be stored on different servers and/or locations. Additional storage may be added to these servers and/or locations as needed or desired. Appropriate warning systems, familiar to those ordinarily skilled in the art, can be put into place to warn system administrators as the storage approaches it's limit. Servers 112a, 113a execute appropriate software to provide for upload and download of files familiar to those ordinarily skilled in the art.
In an extension of the UHS application 101, dedicated UHS remote application module(s) 112c, 113c may be implemented at the servers 112a, 113a to provide UHS specific functionality. For example, UHS user specific information such as the configuration and settings stored in database 103, and the index of files, Meta- information and keywords stored in database 104 may be duplicated at the UHS remote application module 112c, 113c at one or more of the servers 112a, 113a. This can be useful for providing a user with a "fresh" customized UHS local application 101 in case of loss of a device on which a user had installed their UHS local application 101, or to "transfer" the information where different portable devices are used etc.
Furthermore, the UHS remote application modules at the servers 112a, 113a can provide UHS access capability to user data if the user directly accesses the servers 112a, 113a, i.e. without going through the UHS local application 101, e.g. for file accessing or uploading.
Fig. 2 illustrates a general overview of an implementation environment for the data storage device of Fig. 1. The portable storage device, illustratively shown as a USB flash memory device 200, running the UHS application 101 (Fig. 1), can be connected to various computing devices such as Desktop PC 201, phone 202, camera 203, Laptop 204, PDA 205, Portable Music devices 206 or any computing device. Once connected, the USB flash memory device 200, allows a user to have access to all digital files belonging to the user stored either locally on the USB flash memory device 200, running the UHS application 101 (Fig. 1), as a "universal gateway" to the remote storage site 208 (or a plurality of remote storage sites), all of the digital files of the user from any of his computing devices can be managed in a centralized manner. Each computing device 201-206, once connected to the USB flash memory device 200 for this user is connected to the same UHS user storage space and has access to the same set of files. As files are stored on or through the USB flash memory device 200 via one computing device by this user, it is available for retrieval by any other computing device connected to the UHS by this user. The user accesses the digital files seamlessly utilizing the UHS application 101 (Fig. 1) regardless of whether the files are cached locally on the USB flash memory device 200 or stored at remote storage site 208. Files can be stored in encrypted form on the remote storage site 208. Furthermore, the data transfer between the USB flash memory device 200 and the remote storage site 208 can be optionally secure by encrypting over SSL 207 or any other commercially available means known to those familiar with the art.
It is noted here that the UHS application 101 (Fig. 1) may alternatively or additionally be implemented on any one or more of the various computing devices 201 to 206. In other words, each of the devices 201 to 206, if the UHS application 101 (Fig. 1) is implemented thereon, can function to interact with the remote storage 208 and each of the other computing devices in the same fashion as described above for the scenario where the UHS application 101 (Fig. 1) is implemented on the USB flash memory device 200 in managing a user's data from various computing devices, utilizing data storage capabilities locally available at each of the computing devices 201 to 206.
Fig. 3 illustrates a flow diagram 300 of a method of connecting to a UHS system. The UHS system, if running on the computing device itself 301, would either be started when the computing device itself is started or launched manually like any application today which is familiar to those ordinarily skilled in the art 306. If installed on a portable storage device, the UHS system is launched when the portable storage device establishes communication to the computing device 302 via one or more of various communications standards that are known to those skill in the art and these include but are not limited to USB, Firewire, Ethernet, Wifi and Bluetooth.
The UHS application running as part of the UHS system presents the UHS system to the computing devices as a storage device similar to a network drive known to those skilled in the art. At this stage, once connection is made, authentication may be required 304 before proceeding to gaining access to retrieve or store files via the UHS system. If no authentication is required, the user has access to retrieve and store his/her files immediately. If authentication is required, a password prompt appears 307 and the user can authenticate using his/her password or use a fingerprint reader if equipped to authenticate. It will be appreciated by a person skilled in the art that other known authentication methodologies may be applied. Once authenticated successfully, the user gains access to retrieve and store his/her files 305.
Fig. 4 illustrates a flow diagram 400 of a method of processing a request for a file from a UHS system. When a user selects to view a file 401 , the file is obtained from the local cache if available 402, and if necessary decompressed and decrypted 405 before the file is served to the user 406. Thus, the requested file can be advantageously provided to the user without the need to download the file from the external storage site on which the corresponding "original" file is stored. As will be appreciated, this can significantly increase the excess speed for the requested file and furthermore avoid any interruptions or unavailability of the requested data due to external events such as interruptions on a communication network to which the external storage site is connected.
If the requested file is not in the local cache, the UHS system fetches the file from the remote storage site 403 and a copy is kept in the local cache for a period of time for frequent/repeat access 404. If required, the file is decompressed and decrypted 405 before serving the file to the user 406. The file is kept in the local cache stored in the original stored state that is compressed and possibly encrypted depending on the configuration and settings at the time the file was originally stored using the UHS system. The file is removed from the local cache if there is no further access for a certain period of time and/or the allocated cache storage space has run out. Various other methodologies for managing the local cache may be implemented and such methodologies can be applied here as well.
Fig. 5 illustrates a flow diagram 500 of methods of processing a file index view, performing a search, requesting for file details and requesting version information of files stored on an UHS system. A user requests a file index to view and browse 501. This file index view is presented as a folder hierarchy corresponding to an originally stored hierarchy in the UHS system 502. By default all files and folders are presented in the view. A user may view a subset of the list of files by searching against keywords within the file 503. Details of each file on the list are also provided 502, 504. Exemplary details of each file include but are not limited to size, date and time it was last accessed, date and time it was last modified.
Users are also able to view additional details 505 for selected files such as details of email addresses, if any, to whom the URL of the files was sent as well as any download/delivery reports of the recipients of the URL 506. The view can be sorted against such meta information such as size, access and modified times 502. For each file, several versions may be kept. When requested ordinarily, the latest version is served. The user can request to have version information available for selected files 507. For each version of the file, similar details of the file as listed above are also provided 508. The number of file versions that are kept is as determined in the configuration and settings of the UHS system. Various other file versioning methodologies exist in terms of how versions are kept and the number of copies to keep and are familiar to those who are ordinarily skilled in the art and such methodologies can be applied here as well.
Fig. 6 illustrates a flow diagram 600 of a method of processing a request to store a file on an UHS system. A file that is placed in the UHS system 601 undergoes several processing steps as the file is added to the system. The file is scanned to extract meta information such as size, access and last modified time as well as keywords extracted for future searches 602. A fingerprint of the file is then computed using one way hash functions such as for example SHA1 or MD5 603. Such one way hash functions are known to those ordinarily skilled in the art.
If the filename and path i.e. the file handle exists 604, and the file content has changed 609 as indicated by the fingerprint, the version information is updated to indicate this as the latest version of the file 610. If the filename and path i.e. the file handle exists 604, and the file content has not changed as indicated by the fingerprint, the meta information such as last access time is updated 608. If the file has a new filename and path 604, and the one copy storage option is on and the fingerprint matches an existing file 605, then a new entry is added to the file index for this file and the meta information updated to point this entry in the file index to this existing file 611. The one copy option, when turned on, allows for storage optimization by storing only one copy of a file based on the file content fingerprint. Only the meta information is updated such that now multiple filenames and paths on the file index point to the same physical file as the file contents are identical. A copy may also be kept in the cache if one does not exist currently 612.
If the file has a new filename and path 604, and the one copy storage option is not turned on or the fingerprint does not match an existing file, the file is then compressed and encrypted if required 606 as indicated by the UHS system's configuration and settings. Once that processing is done, the file is kept in the local cache and a copy is also transferred to a remote storage site 608. The meta information i.e. file details for that file such as file name, path, size, last access and modified time, file fingerprint etc is updated and stored at the UHS system's store for file meta information 608.
Fig. 7 illustrates a flow diagram 700 of a method of providing temporary access to files stored on a UHS system to recipients. A user first selects the files that they would like to give access to a set of recipients 701. The user is then presented with a form 702 to enter the list of recipients, a subject and a text message associated with the files that are to be shared and the user clicks a send button once the details are entered 703. The UHS system then generates URLs for the selected files 704. The URL to the file may typically contain an encoded set of rules and security policies associated with the download of the file such an expiry time for the URL as well as requiring identification and authentication of the recipient before downloading the file. These rules for creating the temporary URLs are stored and retrieved from the UHS systems configuration and settings.
The URLs are then appended to the email message and the system sends the message to the recipients 705. The recipient receives the email message and downloads the files by clicking on the respective URLs 706. Authentication may be required before download proceeds as encoded in the URL. A return receipt can be also be configured to be send to the user/sender once the recipient has downloaded the file 707, using the UHS remote storage site form which the download was provided. These rules and polices are as indicated by the configuration and settings of the UHS system. The URL can be securely protected to prevent tempering using various authentication methods to encode the information presented with the URL1 for example using hashed message authentication codes (HMACs) such as those described in "HMAC: Keyed-Hashing for Message Authentication" Request for Comments No: 2104 by Krawczyk et al, Network Working Group, Feb., 1997.
When a user sends out such a URL 703, the UHS system takes the necessary steps to transfer the file to the UHS remote storage site if the file is not already present at the remote storage site. The recipient would download the file via the URL received.
Fig. 8 shows a flowchart 800 illustrating a method of providing access to data. At step 802, a first database for storing data locally in a data storage system is provided. At step 804, data is downloaded from at least one external data storage device. At step 806, data downloaded from the external data storage device is cached based on caching rules for managing a content of the cache data base. At step 808, access to data stored in the first database and to data stored in the external data storage device is provided, wherein availability of data requested by the user from the external data storage device in the cache database is checked for providing the data from the cache database.
The described systems and methods can provide a universal hierarchical storage system accessible by a user which uniquely combines portable storage with off-site remote storage to provide practically infinite expandable storage.
Furthermore, the described systems and methods by incorporating a cache database in the universal hierarchal storage system for storing files based on cache management rules, can provide high access speed to files stored at external storage devices. As such, the described systems and method can eliminate the need for keeping original data permanently duplicated on local devices for reasons of access convenience and speed as is typically required for existing of-site remote storage systems. Although the present invention has been described in detail, those skilled in the art should understand that they can make various changes, substitutions and alterations herein without departing from the spirit and scope of the invention in its broadest form.

Claims

Claims
1. A data storage system comprising: a first database for storing data locally in the data storage system; a communication module for downloading data from at least one external data storage device; a cache database for caching data downloaded from the external data storage device based on caching rules for managing a content of the cache data base; and a user interface module for providing access to data stored in the first database and to data stored in the external data storage device; wherein the user interface module checks availability of data requested by the user from the external data storage device in the cache database for providing the data from the cache database.
2. The system as claimed in claim 1, wherein the data storage system is implemented in a portable device.
3. The system as claimed claim 2, wherein the user interface module comprises a processor for executing an application program to instruct an external display to display a graphic user interface.
4. The system as claimed in claim 3, wherein the external display is coupled to an external computer device, and the data storage system comprises an interface for coupling to the external computer device.
5. The system as claimed in any one of the preceding claims, wherein the user interface module executes, instructs execution, or both of an authentication program for user authentication.
6. The system as claimed in claim 5, wherein the user authentication includes identifying access rights of the user.
7. The system as claimed in any one of the preceding claims, further comprising an index database for storing an index of information associated with data stored in the first database and the external database.
8. The system as claimed in any one of the preceding claims, further comprising an uploading module for uploading data to the first database, the external database, or both.
9. The system as claimed in claim 8, wherein the uploading module checks for existence of data substantially similar to said data for which an upload is requested in the first database and the external database prior to uploading said data.
10. The system as claimed in claim 9, wherein the uploading module uploads said data based on version rules for storing one or more versions of substantially similar data.
11. The system as claimed in any one of the preceding claims, further comprising an application module at a server associated with the external data storage device.
12. A method of providing access to data, the method comprising the steps of: providing a first database for storing data locally in a data storage system; downloading data from at least one external data storage device; caching data downloaded from the external data storage device based on caching rules for managing a content of the cache data base; and providing access to data stored in the first database and to data stored in the external data storage device; wherein availability of data requested by the user from the external data storage device in the cache database is checked for providing the data from the cache database.
13. The method as claimed in claim 12, wherein the data storage system is implemented in a portable device.
14. The method as claimed in claims 12 or 13, further comprising executing an authentication program for user authentication.
15. The method as claimed in claim 14, wherein the user authentication includes identifying access rights of the user.
16. The method as claimed in any one of claims 12 to 15, further comprising storing an index of information associated with data stored in the first database and the external database.
17. The method as claimed in any one of claims 12 to 16, further comprising uploading data to the first database, the external database, or both.
18. The method as claimed in claim 17, wherein the uploading includes checking for existence of data substantially similar to said data for which an upload is requested in the first database and the external database prior to uploading said data.
19. The method as claimed in claim 18, wherein the uploading is based on version rules for storing one or more versions of substantially similar data.
20. A data storage medium having stored thereon computer code means for instructing a computer device to execute a method of providing access to data, the method comprising the steps of: providing a first database for storing data locally in a data storage system; downloading data from at least one external data storage device; caching data downloaded from the external data storage device based on caching rules for managing a content of the cache data base; and providing access to data stored in the first database and to data stored in the external data storage device; wherein availability of data requested by the user from the external data storage device in the cache database is checked for providing the data from the cache database.
PCT/SG2006/000094 2005-04-11 2006-04-11 Data storage system and method of providing access to data WO2006110111A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US67037605P 2005-04-11 2005-04-11
US60/670,376 2005-04-11

Publications (1)

Publication Number Publication Date
WO2006110111A1 true WO2006110111A1 (en) 2006-10-19

Family

ID=37087310

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SG2006/000094 WO2006110111A1 (en) 2005-04-11 2006-04-11 Data storage system and method of providing access to data

Country Status (1)

Country Link
WO (1) WO2006110111A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012131400A1 (en) * 2011-04-01 2012-10-04 Omnifone Ltd A microprocessor based system for providing a media player with access to remotely-stored digital media content
EP2627066A1 (en) * 2012-02-10 2013-08-14 Gemalto SA Method, apparatus and system for providing data to a data disclosing device
US20130326020A1 (en) * 2012-05-30 2013-12-05 International Business Machines Corporation Preventing personal information from being posted to an internet

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233606B1 (en) * 1998-12-01 2001-05-15 Microsoft Corporation Automatic cache synchronization
US20020174189A1 (en) * 2001-04-23 2002-11-21 Luosheng Peng Apparatus and methods for intelligently caching applications and data on a mobile device
WO2003030026A2 (en) * 2001-10-02 2003-04-10 Symbian Limited Mobile web browsing device
WO2004051504A2 (en) * 2002-12-03 2004-06-17 Raja Tuli Page cache for portable internet access device
US20050210119A1 (en) * 2004-03-18 2005-09-22 Sony Corporation Networked local media cache engine

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233606B1 (en) * 1998-12-01 2001-05-15 Microsoft Corporation Automatic cache synchronization
US20020174189A1 (en) * 2001-04-23 2002-11-21 Luosheng Peng Apparatus and methods for intelligently caching applications and data on a mobile device
WO2003030026A2 (en) * 2001-10-02 2003-04-10 Symbian Limited Mobile web browsing device
WO2004051504A2 (en) * 2002-12-03 2004-06-17 Raja Tuli Page cache for portable internet access device
US20050210119A1 (en) * 2004-03-18 2005-09-22 Sony Corporation Networked local media cache engine

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012131400A1 (en) * 2011-04-01 2012-10-04 Omnifone Ltd A microprocessor based system for providing a media player with access to remotely-stored digital media content
EP2627066A1 (en) * 2012-02-10 2013-08-14 Gemalto SA Method, apparatus and system for providing data to a data disclosing device
WO2013117638A1 (en) * 2012-02-10 2013-08-15 Gemalto Sa Method, device and system for providing data to a data disclosing device
US20130326020A1 (en) * 2012-05-30 2013-12-05 International Business Machines Corporation Preventing personal information from being posted to an internet
US9401886B2 (en) * 2012-05-30 2016-07-26 International Business Machines Corporation Preventing personal information from being posted to an internet

Similar Documents

Publication Publication Date Title
US11789723B2 (en) Software container registry service
US10762229B2 (en) Secure searchable and shareable remote storage system and method
US8756247B2 (en) System and method for sharing online storage services among multiple users
CN108369622B (en) Software container registry service
US9807135B1 (en) Methods and computing systems for sharing cloud files using a social network
GB2559835A (en) Systems and methods for providing access to a data file stored at a data storage system
US20170126800A1 (en) Content item block replication protocol for multi-premises hosting of digital content items
US9552369B2 (en) Document management systems and methods
US20070038680A1 (en) Management of mobile-device data
CN103931156A (en) Cloud file system with server-side deduplication of user-agnostic encrypted files
US20080189294A1 (en) Method and apparatus for sharing content
CN102597947B (en) The content under mathematic for business rights management is browsed without the need to client-access assembly
US20120296871A1 (en) File managing apparatus for processing an online storage service
US11063922B2 (en) Virtual content repository
US11520750B2 (en) Global file system for data-intensive applications
US8949984B2 (en) Personal information protection system for providing specialized function for host terminal based on Unix and Linux
US20220321639A1 (en) Cloud file transfers using cloud file descriptors
US20200153889A1 (en) Method for uploading and downloading file, and server for executing the same
KR101666064B1 (en) Apparatus for managing data by using url information in a distributed file system and method thereof
WO2006110111A1 (en) Data storage system and method of providing access to data
EP2237170A1 (en) Data sorage system
US8510505B1 (en) Method and apparatus for a virtual storage device
EP2237144A1 (en) Method of remotely storing data and related data storage system
US9596183B2 (en) NAS off-loading of network traffic for shared files
Shaik et al. Backups on the Cloud

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

122 Ep: pct application non-entry in european phase

Ref document number: 06733537

Country of ref document: EP

Kind code of ref document: A1