Apple has been granted a patent (number 20120042174) for a remote container. Apparently, it involves the company's iCloud service.
Methods, program products, and systems implementing remote container techniques are disclosed. A relational database can include a container data field, which can be a data field for storing multimedia data. In one aspect, when the multimedia data are inserted into the container field, the multimedia data can be stored in one or more remote database files. The remote database files can be located separately from other data of the relational database and remotely from a client computer accessing the relational database. Corresponding data structures, or remote containers, can be configured to store metadata of the database files.
References to the remote containers can be stored as values of the container data field. Using various encryption techniques, the remote database files can be given same access restrictions as access restrictions of the container data field, even when the remote database files are stored as flat files. The inventors are Oleg Zaydman, Clay Maeckel and Lyndley Crumly.
Here's Apple's summary of the invention: "Methods, program products, and systems implementing remote container techniques are disclosed. A relational database can include a container data field, which can be a data field for storing multimedia data. In one aspect, when the multimedia data are inserted into the container field, the multimedia data can be stored in one or more remote database files. The remote database files can be located separately from other data of the relational database and remotely from a client computer accessing the relational database.
"Corresponding data structures, or remote containers, can be configured to store metadata of the database files. References to the remote containers can be stored as values of the container data field. Using various encryption techniques, the remote database files can be given the same access restrictions as access restrictions of the container data field, even when the remote database files are stored as flat files.
"In some implementations, a method implementing a remote container can include receiving data to be inserted into a container data field of a relational database; storing the data in a database file at a location specified for the container data field, the database file being external to other database files storing data of other data fields of the relational database; storing a reference to the database file in a first portion of a remote container; and associating the remote container with the container data field.
"The container data field can be configured to store content of at least one of a data stream, a binary object, or a file. The remote container can include a data structure configured to store information, including access restrictions information, of the database file. Associating the remote container with the container data field can include storing a reference to the remote container in the container data field.
"These and other implementations can be utilized to achieve one or more of the following advantages. Remote container techniques can make incremental backup more efficient. Large database files (e.g., those contain multimedia data) can be referenced by remote containers and stored separately from other data. Small changes in the other data need not cause the large database files to be marked as dirty and backed up in an incremental backup.
"Remote container techniques can make it possible to manage a database file, even when stored as flat file, using access restrictions specified for a data field in a relational database. A user can access content of a database file if the user's access privileges of the database file satisfy the access restrictions of the container field. For example, when user A shares content of a multimedia file with user B using a remote container, user B need not have access privilege to the multimedia file itself.
"User A can insert content of the multimedia file into a container data field in a relational database. The inserted content can be stored in a database file, the access to which can be restricted by the access restrictions of the container data field. User B can access the content according to user B's access privileges to the container data field as defined in the relational database."