IT201800005409A1 - SYSTEM, EQUIPMENT AND METHOD FOR EFFICIENTLY MANAGING THE MEMORY OF ELECTRONIC DEVICES - Google Patents

SYSTEM, EQUIPMENT AND METHOD FOR EFFICIENTLY MANAGING THE MEMORY OF ELECTRONIC DEVICES Download PDF

Info

Publication number
IT201800005409A1
IT201800005409A1 IT102018000005409A IT201800005409A IT201800005409A1 IT 201800005409 A1 IT201800005409 A1 IT 201800005409A1 IT 102018000005409 A IT102018000005409 A IT 102018000005409A IT 201800005409 A IT201800005409 A IT 201800005409A IT 201800005409 A1 IT201800005409 A1 IT 201800005409A1
Authority
IT
Italy
Prior art keywords
child
data
modified
dataset
file
Prior art date
Application number
IT102018000005409A
Other languages
Italian (it)
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 filed Critical
Priority to IT102018000005409A priority Critical patent/IT201800005409A1/en
Publication of IT201800005409A1 publication Critical patent/IT201800005409A1/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
    • G06F16/18File system types
    • G06F16/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks

Description

Descrizione del trovato avente per titolo: Description of the invention having as title:

"SISTEMA, APPARECCHIATURA E METODO PER GESTIRE IN MODO EFFICIENTE LA MEMORIA DI DISPOSITIVI ELETTRONICI" "SYSTEM, EQUIPMENT AND METHOD FOR EFFICIENTLY MANAGING THE MEMORY OF ELECTRONIC DEVICES"

CAMPO DI APPLICAZIONE FIELD OF APPLICATION

Le forme di realizzazione della presente divulgazione in generale riguardano un sistema, un’apparecchiatura e un metodo per gestire in modo efficiente la memoria di dispositivi elettronici. Più in particolare, le forme di realizzazione della presente divulgazione permettono a un dispositivo elettronico di ridurre la ridondanza dei dati. The embodiments of the present disclosure generally relate to a system, an equipment and a method for efficiently managing the memory of electronic devices. More particularly, the embodiments of the present disclosure allow an electronic device to reduce data redundancy.

STATO DELLA TECNICA STATE OF THE TECHNIQUE

Con i progressi nel campo digitale della tecnologia, la richiesta di immagazzinamento di dati è aumentata rapidamente. With advances in the digital field of technology, the demand for data storage has increased rapidly.

Tradizionalmente, i possessori di computer, computer portatili, telefono, ecc. erano soliti immagazzinare i dati in supporti di memorizzazione locali o su supporti portatili quali hard disk, compact disk, dispositivi di memorizzazione USB, ecc. Traditionally, owners of computers, laptops, phones, etc. they used to store data on local storage media or on portable media such as hard disks, compact disks, USB storage devices, etc.

Ad ogni modo, tali dispositivi non sono ideali nel proteggere i dati in quanto sono soggetti a malfunzionamento (“crash”) e a furto. Inoltre, le loro capacità di immagazzinare i dati sono limitate. However, such devices are not ideal in protecting data as they are prone to malfunction (“crash”) and theft. Furthermore, their data storage capabilities are limited.

Pertanto, i server remoti si sono affermati come soluzione ideale per immagazzinare dati importanti in piena sicurezza. Therefore, remote servers have established themselves as the ideal solution for storing important data in complete safety.

Tuttavia, l’uso di server remoti è diventato così popolare che si è rivelato molto difficile per le società continuare a espandere i propri server per far fronte alla domanda. However, the use of remote servers has become so popular that it has proved very difficult for companies to continue expanding their servers to meet demand.

Inoltre, la manutenzione dei server remoti è costosa. Also, remote server maintenance is expensive.

E’ ben noto che se si può ottimizzare la ridondanza di dati allora si può risparmiare molto spazio di immagazzinamento e il costo per mantenere dati non-ridondanti risulterà molto economico a confronto. Pertanto, esiste la necessità di un sistema e di un metodo in grado di ridurre la ridondanza di dati in dispositivi di memorizzazione come server di dati remoti. It is well known that if you can optimize data redundancy then you can save a lot of storage space and the cost of maintaining non-redundant data will be very economical in comparison. Therefore, there is a need for a system and method that can reduce data redundancy in storage devices such as remote data servers.

Per ovviare agli inconvenienti della tecnica nota e per ottenere questi e ulteriori scopi e vantaggi, la Richiedente ha studiato, sperimentato e realizzato la presente divulgazione. In order to obviate the drawbacks of the known art and to obtain these and further objects and advantages, the Applicant has studied, tested and implemented the present disclosure.

ESPOSIZIONE DEL TROVATO EXPOSURE OF THE FOUND

Le forme di realizzazione secondo la presente divulgazione divulgano un metodo per gestire una memoria locale di un dispositivo elettronico che immagazzina una pluralità di file di dati genitore, in cui i file di dati genitore sono costituiti da una pluralità di set di dati figlio. Embodiments according to the present disclosure disclose a method for managing a local memory of an electronic device that stores a plurality of parent data files, wherein the parent data files consist of a plurality of child data sets.

Il metodo permette al dispositivo elettronico di modificare un set di dati figlio di un file di dati genitore, immagazzinare il set di dati figlio modificato separatamente nella memoria locale come versione del set di dati figlio e permettere l accesso al file di dati genitore con e senza il set di dati figlio modificato. The method allows the electronic device to modify a child dataset of a parent data file, store the modified child dataset separately in local storage as a version of the child dataset, and allow access to the parent data file with and without the modified child dataset.

Il metodo inoltre permette al dispositivo elettronico di determinare se almeno un parametro del set di dati figlio modificato ha attraversato un limite di soglia, dividere il set di dati figlio modificato in due o più nuovi set di dati sulla base del limite di soglia, immagazzinare i set di dati figlio nuovi separatamente come versione del set di dati figlio modificato e permettere l’accesso al file di dati genitore con il set di dati figlio modificato e con i set di dati figlio nuovi. The method also allows the electronic device to determine if at least one parameter of the modified child dataset has crossed a threshold limit, split the modified child dataset into two or more new datasets based on the threshold limit, store the new child datasets separately as a version of the modified child dataset and allow access to the parent dataset with the modified child dataset and the new child datasets.

Il metodo inoltre permette al dispositivo elettronico di determinare se almeno un parametro del set di dati figlio modificato è al di sotto di un limite di soglia, unire il set di dati figlio modificato con il suo set di dati figlio sequenziale a formare un set di dati figlio nuovo, immagazzinare il set di dati figlio nuovo separatamente come versione del set di dati figlio modificato e permettere l’accesso al file di dati genitore con il set di dati figlio modificato e con il set di dati figlio nuovo. The method also allows the electronic device to determine if at least one parameter of the modified child dataset is below a threshold limit, merge the modified child dataset with its sequential child dataset to form a dataset new child, store the new child dataset separately as a version of the modified child dataset, and allow access to the parent dataset with the modified child dataset and the new child dataset.

Il metodo inoltre può prevedere di recuperare informazioni arbitrarie relative a un file di dati genitore e/o a un file di dati figlio e/o un sottofile di dati figlio allo scopo di calcolare e fornire la proprietà dei diritti per ciascun autore che ha lavorato sullo specifico file di dati, detta proprietà dei diritti essendo espressa in percentuali. The method may also involve retrieving arbitrary information relating to a parent data file and / or a child data file and / or a child data subfile in order to calculate and provide ownership of rights for each author who worked on the specific data file, called ownership of rights being expressed in percentages.

Similmente, il metodo inoltre permette al dispositivo elettronico di modificare l’uno o più sotto-set di dati figlio, immagazzinare i sotto-set di dati figlio modificati separatamente nella memoria locale come versione dell’uno o più sotto-set di dati figlio e permettere l’accesso al file di dati genitore con e senza i sotto-set di dati figlio modificati. Similarly, the method also allows the electronic device to modify the one or more child data sub-sets, store the separately modified child data sub-sets in local storage as a version of the one or more child data sub-sets and allow access to the parent data file with and without the modified child data sub-sets.

Le forme di realizzazione secondo la presente divulgazione divulgano un’apparecchiatura collegata a una rete che comprende uno o più processori, un modulo di interfaccia di rete per collegare l’apparecchiatura con la rete e una memoria comprendente una base di dati e un set di istruzioni. Embodiments according to the present disclosure disclose an apparatus connected to a network which comprises one or more processors, a network interface module for connecting the apparatus with the network and a memory comprising a database and an instruction set. .

La base di dati comprende una pluralità di file di dati genitore, in cui i file di dati genitore sono costituiti da una pluralità di set di dati figlio. Il set di istruzioni comprende istruzioni che quando vengono eseguite dall’uno o più processori fanno sì che l’apparecchiatura modifichi un set di dati figlio di un file di dati genitore, immagazzini il set di dati figlio modificato separatamente nella memoria locale come versione del set di dati figlio e permetta l’accesso al file di dati genitore con e senza il set di dati figlio modificato. The database comprises a plurality of parent data files, wherein the parent data files consist of a plurality of child data sets. The instruction set includes instructions that when executed by one or more processors cause the equipment to modify a child dataset of a parent dataset, store the modified child dataset separately in local storage as a version of the set of child data and allow access to the parent data file with and without the modified child data set.

Il set di istruzioni inoltre comprende istruzioni per modificare l’uno o più sotto-set di dati figlio, immagazzini i sotto-set di dati figlio modificati separatamente nella memoria locale come versione dell’uno o più sotto-set di dati figlio e permettere l’accesso al file di dati genitore con e senza i sotto-set di dati figlio modificati. Può anche essere previsto l’accesso al set di dati figlio con e senza i sotto-set di dati figlio modificati. The instruction set also includes instructions to modify the one or more child datasets, store the modified child datasets separately in local storage as a version of the one or more child datasets, and allow the 'access to the parent data file with and without the modified child data sub-sets. Access to the child data set can also be provided with and without the modified child data sub-sets.

Il set di istruzioni inoltre comprende istruzioni per determinare se almeno un parametro del set di dati figlio modificato ha attraversato un limite di soglia. Se ciò viene determinato, allora dividere il set di dati figlio modificato in due o più nuovi set di dati sulla base del limite di soglia. Quindi, immagazzinare i set di dati figlio nuovi separatamente come versione del set di dati figlio modificato e permettere l’accesso al file di dati genitore con il set di dati figlio modificato e con i set di dati figlio nuovi. The instruction set also includes instructions for determining whether at least one parameter of the modified child dataset has crossed a threshold limit. If this is determined, then split the modified child dataset into two or more new datasets based on the threshold limit. Then, store the new child datasets separately as a version of the modified child dataset and allow access to the parent dataset with the modified child dataset and the new child datasets.

Il set di istruzioni inoltre comprende istruzioni per determinare se almeno un parametro del set di dati figlio modificato è al di sotto di un limite di soglia. Se ciò viene determinato, allora unire il set di dati figlio modificato con il suo set di dati figlio sequenziale a formare un set di dati figlio nuovo. The instruction set also includes instructions for determining whether at least one parameter of the modified child dataset is below a threshold limit. If this is determined, then merge the modified child dataset with its sequential child dataset to form a new child dataset.

Successivamente, immagazzinare il set di dati figlio nuovo come versione del set di dati figlio modificato e permettere l’accesso al file di dati genitore con il set di dati figlio modificato e con il set di dati figlio nuovo. Next, store the new child dataset as a version of the modified child dataset and allow access to the parent dataset with the modified child dataset and the new child dataset.

In aggiunta alle predette forme di realizzazione, la presente invenzione presenta i seguenti vantaggi. In addition to the aforementioned embodiments, the present invention has the following advantages.

La presente invenzione riduce la ridondanza di dati e risparmia le esigenze di spazio di immagazzinamento, il che comporta costi ridotti nell’ acquisto e nella manutenzione di costosi dispositivi di memorizzazione . The present invention reduces data redundancy and saves storage space requirements, which leads to reduced costs in the purchase and maintenance of expensive storage devices.

La presente invenzione inoltre risparmia tempo nell’elaborazione di dati che devono venire immagazzinati su un dispositivo di memorizzazione. The present invention also saves time in processing data that must be stored on a storage device.

La presente invenzione inoltre risparmia larghezza di banda che è richiesta per trasferire i dati via rete. Ciò inoltre riduce il tempo che è richiesto nel trasferimento di dati via rete. The present invention also saves bandwidth that is required to transfer data over the network. This also reduces the time that is required in transferring data over the network.

La presente invenzione aumenta la sicurezza dei dati e protegge dagli eventi di perdite di dati o furti di dati. The present invention increases data security and protects against data loss or data theft events.

La presente invenzione supporta l’accesso multi-utente a un file di dati senza entrare in conflitto nelle operazioni di lettura o scrittura. Questo permette agli utenti di collaborare allo stesso progetto senza contrastarsi tra loro. The present invention supports multi-user access to a data file without conflicting in read or write operations. This allows users to collaborate on the same project without clashing with each other.

Questi e altri aspetti, caratteristiche e vantaggi della presente divulgazione verranno meglio compresi facendo riferimento alla seguente descrizione, disegni e annesse rivendicazioni. I disegni, che sono integrati e formano parte della presente descrizione, mostrano alcune forme di realizzazione della presente divulgazione, e, assieme alla descrizione, hanno lo scopo di descrivere i principi della divulgazione. These and other aspects, features and advantages of the present disclosure will be better understood with reference to the following description, drawings and appended claims. The drawings, which are integrated and form part of the present description, show some embodiments of the present disclosure, and, together with the description, are intended to describe the principles of the disclosure.

ILLUSTRAZIONE DEI DISEGNI ILLUSTRATION OF DRAWINGS

Le suddette e ulteriori caratteristiche e vantaggi ancora della presente divulgazione appariranno evidenti considerando la seguente descrizione dettagliata di forme di realizzazione della stessa, in special modo se prese in combinazione con i disegni a corredo, e in cui: The aforementioned and further characteristics and advantages of the present disclosure will become evident considering the following detailed description of embodiments thereof, especially if taken in combination with the accompanying drawings, and in which:

la FIG. 1 illustra un ambiente esemplificativo in cui sono implementate varie forme di realizzazione della presente divulgazione. La FIG. 2 illustra un diagramma a blocchi che raffigura una struttura gerarchica in cui molteplici versioni di molteplici file sono immagazzinate in una memoria per l’accesso attraverso una rete, secondo una forma di realizzazione della presente divulgazione. FIG. 1 illustrates an exemplary environment in which various embodiments of the present disclosure are implemented. FIG. 2 illustrates a block diagram that depicts a hierarchical structure in which multiple versions of multiple files are stored in a memory for access through a network, according to an embodiment of the present disclosure.

La FIG. 3 illustra un diagramma di flusso di un metodo per editare un particolare file da una base di dati di una pluralità di file immagazzinati nel server di dati, secondo una forma di realizzazione della presente divulgazione. FIG. 3 illustrates a flow diagram of a method for editing a particular file from a database of a plurality of files stored in the data server, according to an embodiment of the present disclosure.

La FIG. 4 illustra un diagramma di flusso di un metodo per modificare un particolare chunk (blocco) di una particolare fork (biforcazione) di un file audio, secondo una forma di realizzazione della presente divulgazione. FIG. 4 illustrates a flow diagram of a method for modifying a particular chunk of a particular fork of an audio file, according to an embodiment of the present disclosure.

La FIG. 5 illustra un diagramma di flusso di un metodo per immagazzinare la versione originale di una fork con o senza chunk modificato, secondo una forma di realizzazione della presente divulgazione. FIG. 5 illustrates a flow diagram of a method for storing the original version of a fork with or without a modified chunk, according to an embodiment of the present disclosure.

La FIG. 6 illustra un diagramma di flusso di un metodo per modificare due o più chunk sequenziali da un file audio, secondo una forma di realizzazione della presente divulgazione. FIG. 6 illustrates a flowchart of a method for modifying two or more sequential chunks from an audio file, according to an embodiment of the present disclosure.

La FIG. 7 illustra un diagramma di flusso di un metodo per suddividere la versione modificata da un utente di un chunk in due o più chunk, secondo una forma di realizzazione della presente divulgazione. La FIG. 8 illustra un diagramma di flusso di un metodo per suddividere automaticamente la versione modificata di un chunk in due o più chunk, secondo una forma di realizzazione della presente divulgazione. FIG. 7 illustrates a flowchart of a method for splitting a user-modified version of a chunk into two or more chunks, according to an embodiment of the present disclosure. FIG. 8 illustrates a flow diagram of a method for automatically splitting the modified version of a chunk into two or more chunks, according to an embodiment of the present disclosure.

La FIG. 9 illustra un diagramma di flusso di un metodo per modificare un set di dati figlio di un file di dati genitore, secondo una forma di realizzazione della presente divulgazione. FIG. 9 illustrates a flowchart of a method for modifying a child data set of a parent data file, according to an embodiment of the present disclosure.

La FIG. 10 illustra un diagramma di flusso di un metodo per dividere un set di dati figlio modificato in due o più set di dati nuovi sulla base di un limite di soglia, secondo una forma di realizzazione della presente divulgazione. FIG. 10 illustrates a flowchart of a method for dividing a modified child data set into two or more new data sets based on a threshold boundary, according to an embodiment of the present disclosure.

La FIG. 11 illustra un diagramma di flusso di un metodo per unire un set di dati figlio modificato con il suo set di dati figlio sequenziale a formare un set di dati figlio nuovo, secondo una forma di realizzazione della presente divulgazione. FIG. 11 illustrates a flowchart of a method for merging a modified child dataset with its sequential child dataset to form a new child dataset, according to an embodiment of the present disclosure.

La FIG. 12 illustra un diagramma a blocchi di un’apparecchiatura di comunicazione, secondo una forma di realizzazione della presente divulgazione. FIG. 12 illustrates a block diagram of a communication equipment, according to an embodiment of the present disclosure.

La FIG. 13 illustra un diagramma a blocchi che raffigura diverse operazioni che possono venire eseguite su sotto-set di dati figlio modificati, secondo una forma di realizzazione della presente divulgazione. FIG. 13 illustrates a block diagram depicting various operations that can be performed on sub-sets of modified child data, according to an embodiment of the present disclosure.

DESCRIZIONE DI FORME DI REALIZZAZIONE DESCRIPTION OF EMBODIMENTS

La descrizione farà ora riferimento nel dettaglio alle varie forme di realizzazione della presente divulgazione, delle quali uno o più esempi sono illustrati nei disegni allegati. Ciascun esempio è fornito a titolo di illustrazione dell’invenzione e non è inteso come una limitazione della stessa. Ad esempio, le caratteristiche mostrate o descritte in quanto facenti parte di una forma di realizzazione potranno essere adottate su, o in associazione con, altre forme di realizzazione per produrre un’ulteriore forma di realizzazione. Resta inteso che la presente divulgazione includerà tutte tali modifiche e varianti. The description will now refer in detail to the various embodiments of the present disclosure, of which one or more examples are illustrated in the accompanying drawings. Each example is provided by way of illustration of the invention and is not intended as a limitation thereof. For example, the features shown or described as being part of an embodiment may be adopted on, or in association with, other embodiments to produce a further embodiment. It is understood that this disclosure will include all such modifications and variations.

La FIG. 1 illustra un ambiente esemplificativo 100 dove sono implementate varie forme di realizzazione della presente divulgazione. L’ambiente 100 include un server di dati 102 collegato a una pluralità di dispositivi elettronici 104a-n attraverso una rete 108, in cui il numero n è un numero arbitrario che rappresenta lo stesso o un diverso numero di dispositivi. Qui di seguito, i dispositivi 104a-n possono venire collettivamente designati come “dispositivi utente 104”. FIG. 1 illustrates an exemplary environment 100 where various embodiments of the present disclosure are implemented. The environment 100 includes a data server 102 connected to a plurality of electronic devices 104a-n through a network 108, in which the number n is an arbitrary number representing the same or a different number of devices. Hereinafter, devices 104a-n may be collectively referred to as "user devices 104".

Inoltre, i dispositivi utente 104 possono riferirsi a dispositivi elettronici che possono venire utilizzati da utenti per accedere al e comunicare col server di dati 102. Esempi dei dispositivi utente 104 possono includere, ma non si limitano a, dispositivi di comunicazione quali telefoni cellulari, tablet, computer portatili, computer da tavolo, ecc. che sono in grado di collegarsi alla rete 108. Further, user devices 104 may refer to electronic devices that can be used by users to access and communicate with the data server 102. Examples of user devices 104 may include, but are not limited to, communication devices such as cell phones, tablets , laptops, desktop computers, etc. that are able to connect to the 108 network.

La rete 108 può includere, ma non si limita a, una rete di comunicazione come internet, intranet, rete telefonica pubblica commutata (PSTN - Public Switched Telephone Network), rete locale (LAN - Locai Area Network), rete geografica (WAN - Wide Locai Area Network), rete per area metropolitana (MAN - Metropolitan Area Network) e via dicendo. La rete 108 può venire usata per collegare i dispositivi utente 104 al server di dati 102 con l’aiuto dell’applicazione di servizio o del sito web. Network 108 may include, but is not limited to, a communication network such as internet, intranet, public switched telephone network (PSTN - Public Switched Telephone Network), local area network (LAN - Local Area Network), WAN - Wide Locai Area Network), metropolitan area network (MAN - Metropolitan Area Network) and so on. The network 108 can be used to connect user devices 104 to the data server 102 with the help of the service application or the website.

In una forma di realizzazione della presente divulgazione, i dispositivi utente 104 sono installati con un’applicazione di servizio (facoltativa e non mostrata). L’applicazione di servizio può essere implementata come un’applicazione software (o combinazione di software e hardware). Inoltre, l’applicazione di servizio installata nei dispositivi utente 104 è configurata per collegare i dispositivi utente 104 a molteplici servizi offerti dal server di dati 102. In an embodiment of the present disclosure, the user devices 104 are installed with a service application (optional and not shown). The service application can be implemented as a software application (or a combination of software and hardware). In addition, the service application installed in the user devices 104 is configured to connect the user devices 104 to multiple services offered by the data server 102.

In un’altra forma di realizzazione della presente divulgazione, i dispositivi utente 104 possono venire usati per accedere al server di dati 102 attraverso una piattaforma web (ad esempio: un sito web). Il sito web può includere qualsiasi piattaforma online che fornisce accesso al server di dati 102. Inoltre, il sito web può essere configurato per permettere ai dispositivi utente 104 di accedere a vari servizi offerti dal server di dati 102. Esempi del server di dati 102 possono includere, ma non si limitano a, un server cloud, server web, server locale, ecc. In another embodiment of the present disclosure, the user devices 104 can be used to access the data server 102 through a web platform (for example: a website). The website may include any online platform that provides access to the data server 102. In addition, the website may be configured to allow user devices 104 to access various services offered by the data server 102. Examples of the data server 102 may include, but are not limited to, a cloud server, web server, local server, etc.

In una forma di realizzazione esemplificativa della presente divulgazione, il server di dati 102 è configurato con un sistema di versioning (non mostrato). Il sistema di versioning può essere costituito da hardware, software o da una combinazione degli stessi. Inoltre, il sistema di versioning (qui di seguito indicato saltuariamente come ‘il sistema’) è configurato per far collaborare file di musica e dati correlati sulla base di una piattaforma cloud. Il sistema di versioning è inoltre configurato per creare e gestire molteplici versioni dei file di musica e dati correlati assicurando le minori esigenze di memoria possibili nell’immagazzinare tutte le versioni dei file di musica e dei dati correlati nel server di dati 102. In an exemplary embodiment of the present disclosure, the data server 102 is configured with a versioning system (not shown). The versioning system can consist of hardware, software or a combination of the same. Furthermore, the versioning system (hereinafter referred to occasionally as 'the system') is configured to collaborate music files and related data on the basis of a cloud platform. The versioning system is also configured to create and manage multiple versions of music files and related data ensuring the lowest possible memory requirements in storing all versions of music files and related data in the data server 102.

Una persona esperta del ramo comprenderà che l’esempio dei file di musica viene usato solo per comodità di descrizione della presente divulgazione. Ad ogni modo, l’estensione della presente divulgazione non si limita ai soli file di musica. La presente divulgazione è in grado di gestire qualsiasi formato di file e qualsiasi tipo di file su una piattaforma di memorizzazione locale o cloud. A person skilled in the art will understand that the example of music files is used only for the convenience of description of this disclosure. However, the extension of this disclosure is not limited to music files only. This disclosure is capable of handling any file format and any type of file on a local or cloud storage platform.

Inoltre, il sistema di versioning del server di dati 102 assicura che i file siano immagazzinati efficientemente nel server di dati 102 e possano venire recuperati per editing o modifiche. Qualsiasi modifica o cambiamento nei file o nei loro attributi sono salvati nel server di dati 102 come nuova versione del file. Le versioni nuova e originale sono anche rese disponibili per l’accesso immediato a utenti locali o remoti. La nuova versione può comprendere dati modificati quali, ma non limitati a, data, numero di versione, nome dell’editor e molti altri metadati che possono venire definiti in maniera flessibile. Il sistema pertanto immagazzina la storia di tutte le diverse versioni di un file per permettere l’accesso a qualsiasi versione specifica del file. Furthermore, the versioning system of the data server 102 ensures that the files are efficiently stored in the data server 102 and can be retrieved for editing or modification. Any modifications or changes in the files or their attributes are saved in the data server 102 as a new version of the file. The new and original versions are also made available for immediate access to local or remote users. The new version may include modified data such as, but not limited to, date, version number, editor name and many other metadata that can be flexibly defined. The system therefore stores the history of all the different versions of a file to allow access to any specific version of the file.

Maggiori dettagli corrispondenti alla funzionalità del server di dati 102 e al suo sistema di versioning vengono ulteriormente definiti in correlazione con le FIGG. 2-13 della presente divulgazione. More details corresponding to the functionality of the data server 102 and its versioning system are further defined in correlation with FIGS. 2-13 of this disclosure.

La FIG. 2 illustra un diagramma a blocchi 200 che illustra una struttura gerarchica in cui molteplici versioni di molteplici file di musica sono immagazzinate in una memoria di un server di dati (ad esempio: server di dati 102) per l’accesso attraverso una rete (ad esempio: rete 108). Come rappresentato dal diagramma a blocchi 200, molteplici versioni dei molteplici file di musica (204a-n) sono immagazzinate in molteplici cartelle (202a-n) nel server di dati. FIG. 2 illustrates a block diagram 200 illustrating a hierarchical structure in which multiple versions of multiple music files are stored in a memory of a data server (e.g., data server 102) for access across a network (e.g. : network 108). As represented by the block diagram 200, multiple versions of the multiple music files (204a-n) are stored in multiple folders (202a-n) in the data server.

Le molteplici cartelle (202a-n) possono immagazzinare molteplici versioni dei molteplici file (204a-n) immagazzinati nel server di dati. I molteplici file (204a-n) immagazzinati nelle molteplici cartelle (202a-n) possono includere, ma non si limitano a, file audio, file grafici, file video, file di testo o una combinazione degli stessi. Ad ogni modo, come parte di una forma di realizzazione della presente divulgazione, la FIG. 2 viene illustrata con uno scenario esemplificativo in cui la cartella 2 (202b) comprende molteplici file di musica (file audio) 204a-n. The multiple folders (202a-n) can store multiple versions of the multiple files (204a-n) stored in the data server. The multiple files (204a-n) stored in the multiple folders (202a-n) can include, but are not limited to, audio files, graphic files, video files, text files, or a combination thereof. However, as part of an embodiment of the present disclosure, FIG. 2 is illustrated with an exemplary scenario in which folder 2 (202b) comprises multiple music files (audio files) 204a-n.

I molteplici file di musica 204a-n possono essere costituiti da molteplici fork (biforcazioni) (fork 206a-n del file di musica 204b). Le molteplici fork 206a-n possono inoltre essere costituite da molteplici chunk (blocchi) 208a-n, in cui ‘n’ rappresenta qualsiasi numero arbitrario che rappresenta lo stesso o un diverso numero di cartelle, file, fork o chunk. Il numero di chunk e fork disponibile in un file di musica non è correlato o proporzionale gli uni rispetto agli altri e può essere diverso nel conteggio. Multiple music files 204a-n can consist of multiple forks (fork 206a-n of music file 204b). The multiple forks 206a-n can also consist of multiple chunks (blocks) 208a-n, where 'n' represents any arbitrary number that represents the same or a different number of folders, files, forks or chunks. The number of chunks and forks available in a music file is not related or proportional to each other and can be different in count.

Ogni file di musica è costituito da un set di “fork” indipendenti che immagazzinano un componente individuale del file di musica. Per esempio, una traccia musicale o metadati relativi a un file. Ogni fork è composta da una lista di uno o più “chunk” (blocchi) di dati che sono ottenuti suddividendo la fork seguendo specifici criteri (ad esempio, per chunk di uguale dimensione). Questa struttura gerarchica fornisce flessibilità ed efficienza per le operazioni di versioning su file, fork e chunk. Each music file consists of a set of independent “forks” that store an individual component of the music file. For example, a music track or metadata related to a file. Each fork is composed of a list of one or more “chunks” (blocks) of data that are obtained by dividing the fork following specific criteria (for example, for chunks of equal size). This hierarchical structure provides flexibility and efficiency for file, fork and chunk versioning operations.

Le fork contenute in un file musicale possono essere rappresentate in diversi formati digitali quali, ma non limitati a, dati grezzi, notazione musicale standard, midi (interfaccia digitale per strumenti musicali), ecc. Per esempio, i file di musica possono venire ‘biforcati’ da diversi utenti al fine di avere percorsi di editing diversi che possono venire ulteriormente uniti. Il server di dati è configurato specificamente per creare, immagazzinare e gestire diverse versioni di file divise per ‘chunk’ gestendo efficientemente lo spazio di memoria. Forks contained in a music file can be represented in different digital formats such as, but not limited to, raw data, standard music notation, midi (digital interface for musical instruments), etc. For example, music files can be 'bifurcated' by different users in order to have different editing paths that can be further merged. The data server is configured specifically to create, store and manage different versions of files divided by 'chunk', efficiently managing the memory space.

Inoltre, un set di attributi può venire associato a ciascun file, fork e chunk. Additionally, a set of attributes can be associated with each file, fork and chunk.

Ciascun attributo può essere costituito da una chiave e da una tupla di valori arbitrari. Each attribute can consist of a key and a tuple of arbitrary values.

Gli attributi arricchiscono singoli elementi di progetto con informazioni arbitrarie quali autore, data dell'ultima modifica, data di creazione, formato di file, compressione, collocazione, strumento musicale, ecc. Attributes enrich individual project elements with arbitrary information such as author, last modified date, creation date, file format, compression, location, musical instrument, etc.

Un’altra informazione arbitraria può riferire quale autore ha lavorato su un file di dati genitore e/o su un file di dati figlio e/o su un sotto-file di dati figlio. Per esempio, l’informazione arbitraria può riferire quale autore o quali autori ha/hanno lavorato su uno specifico file di musica. Queste informazioni possono venire usate da un meccanismo automatico per calcolare e fornire la proprietà dei diritti, espressa per esempio in una percentuale, per ciascun autore che ha lavorato sullo specifico file di dati. Il meccanismo automatico è in grado di calcolare anche la quantità di denaro per ciascun autore che ha lavorato sullo specifico file. Other arbitrary information may report which author worked on a parent data file and / or a child data file and / or a child data sub-file. For example, arbitrary information can report which author or which authors have / have worked on a specific music file. This information can be used by an automatic mechanism to calculate and provide ownership of rights, expressed as a percentage for example, for each author who worked on the specific data file. The automatic mechanism is also able to calculate the amount of money for each author who worked on the specific file.

Secondo una variante, le informazioni arbitrarie possono anche venire usate come tali da un utente, per esempio per calcolare manualmente la quantità di denaro per ciascun autore che ha lavorato sullo specifico file. According to a variant, arbitrary information can also be used as such by a user, for example to manually calculate the amount of money for each author who worked on the specific file.

L’apparecchiatura può comprendere anche il meccanismo automatico. Un ulteriore meccanismo di indicizzazione viene applicato ad attributi e contenuti di un chunk per eseguire una classificazione accurata di quegli attributi, di modo tale che le task di ricerca e recupero possono venire eseguite in maniera più efficiente. The equipment may also include the automatic mechanism. An additional indexing mechanism is applied to the attributes and contents of a chunk to perform an accurate classification of those attributes, so that search and retrieval tasks can be performed more efficiently.

In una forma di realizzazione esemplificativa della presente divulgazione, il server di dati è configurato per fornire una capacità di gestire versioni diverse di un’unica fork o intero file (e cioè: tutte le fork). Per esempio, dopo aver eseguito un certo editing a una fork individuale di un file di musica, un utente può decidere di salvare la nuova versione della fork editata separatamente con un nome particolare. I chunk non modificati rimangono gli stessi per la nuova versione e i chunk editati vengono inoltre suddivisi o riuniti secondo specifici criteri di suddivisione e unione (split and join) dei chunk impostati per un progetto musicale. L’utente può anche scegliere di salvare l’intero file musicale come versione raggruppando le attuali versioni di tutte le fork nel file. Va inteso che due qualsiasi versioni di file sono diverse se contengono almeno una fork i cui contenuti/ i cui chunk/ i cui attributi sono diversi. In an exemplary embodiment of the present disclosure, the data server is configured to provide an ability to manage different versions of a single fork or entire file (namely: all forks). For example, after performing some editing to an individual fork of a music file, a user may decide to save the new separately edited version of the fork with a particular name. The unmodified chunks remain the same for the new version and the edited chunks are also divided or joined according to specific criteria for splitting and joining the chunks set for a music project. The user can also choose to save the entire music file as a version by grouping the current versions of all forks in the file. It should be understood that any two file versions are different if they contain at least one fork whose contents / chunks / attributes are different.

Inoltre, a prescindere dal formato di dati contenuto in una fork, i chunk di dati sono i componenti atomici che la compongono. Dopo aver caricato una nuova fork al server di dati, il server di dati automaticamente suddivide i dati della fork in una lista collegata di chunk. Furthermore, regardless of the data format contained in a fork, data chunks are the atomic components that make it up. After uploading a new fork to the data server, the data server automatically splits the fork data into a linked list of chunks.

Il numero dei chunk dipende dalla dimensione dell’array di byte che rappresenta la fork e ciascun chunk è al massimo di una dimensione di N byte, dove N è un parametro che può venire configurato dall’utente. The number of chunks depends on the size of the byte array representing the fork and each chunk has a maximum size of N bytes, where N is a parameter that can be configured by the user.

Un altro criterio di suddivisione è basato sull’estrazione di pezzi specifici della struttura della traccia dopo l’analisi dei formati dei dati di file. Ogni volta che un chunk viene editato, il server di dati lo contrassegna come modificato. Una volta che l’utente decide di salvare la fork come nuova versione, il server di dati trasforma i chunk editati e mantiene i chunk invariati aggiungendo un collegamento alla nuova versione senza essere duplicati. In questo modo il server di dati conserva efficientemente la storia di tutte le versioni risparmiando una quantità considerevole di spazio di memorizzazione, in special modo quando il numero di chunk modificati è piccolo. Another subdivision criterion is based on the extraction of specific pieces of the track structure after analyzing the file data formats. Whenever a chunk is edited, the data server marks it as modified. Once the user decides to save the fork as a new version, the data server transforms the edited chunks and keeps the chunks unchanged by adding a link to the new version without being duplicated. In this way the data server efficiently preserves the history of all versions saving a considerable amount of storage space, especially when the number of modified chunks is small.

Inoltre, il server di dati permette di recuperare qualsiasi versione specifica della fork attuale solo seguendo i collegamenti tra chunk etichettati con tale versione. Questo riduce le esigenze di memoria nell’ immagazzinamento di molteplici versioni in quanto solo i dati modificati sono immagazzinati separatamente e sono collegati ai dati originali senza mantenere una copia dei dati originali. Furthermore, the data server allows you to retrieve any specific version of the current fork only by following the links between chunks labeled with that version. This reduces the memory requirements in the storage of multiple versions as only the modified data are stored separately and are linked to the original data without keeping a copy of the original data.

La FIG. 3 illustra un diagramma di flusso 300 di un metodo per editare un file particolare immagazzinato in una base di dati di un server di dati (come il server di dati 102), secondo una forma di realizzazione della presente divulgazione. Al file può avere accesso, ed esso può venire editato da, un utente locale o un utente remoto attraverso una rete (come la rete 108). Il file può comprendere qualsiasi tipo di dati, ma non è limitato ad, audio, video, grafica, testo o una combinazione degli stessi. L’editing/ la modifica di un file comprende, ma non si limita a, modificare i dati immagazzinati nel file, aggiungere dati nel file, cancellare dati dal file, sostituire il file o parte del file, cancellare il file o parte del file, modificare metadati del file, modificare proprietà del file, modificare attributi del file, ecc. Complessivamente, qualsiasi cambiamento nel file originale corrisponde all’editing o alla modifica del file. FIG. 3 illustrates a flowchart 300 of a method for editing a particular file stored in a database of a data server (such as data server 102), according to an embodiment of the present disclosure. The file can be accessed, and edited by, a local user or a remote user over a network (such as network 108). The file can include any type of data, but is not limited to, audio, video, graphics, text or a combination thereof. Editing / modifying a file includes, but is not limited to, modifying the data stored in the file, adding data to the file, deleting data from the file, replacing the file or part of the file, deleting the file or part of the file, modify file metadata, modify file properties, modify file attributes, etc. Overall, any change in the original file corresponds to editing or modifying the file.

Facendo ora riferimento alla fase 302 del diagramma di flusso 300, dal server di dati viene ricevuta una richiesta da un utente (locale o remoto) di editare un file particolare (preso da una pluralità di file) che è immagazzinato in una base di dati del server di dati. Per esempio, se un utente (musicista) ha immagazzinato le sue creazioni musicali (come file) nella base di dati del server di dati, l’utente può voler editare un particolare file musicale per creare una nuova versione dello stesso. Referring now to step 302 of flowchart 300, a request is received from the data server from a user (local or remote) to edit a particular file (taken from a plurality of files) which is stored in a database of the data server. For example, if a user (musician) has stored his musical creations (as a file) in the database of the data server, the user may want to edit a particular music file to create a new version of it.

Alla fase 304, viene ricevuta un’altra richiesta dall’utente di selezionare una particolare fork del file selezionato a scopo di editing. Per esempio, nel caso in cui l’utente ha una pluralità di file audio immagazzinati nella base di dati del server di dati 102. L’utente può voler editare una specifica fork (componente) del particolare file audio. Alla fase 306, vengono ricevute istruzioni di editing dall’utente per editare la particolare fork. L’utente può usare le capacità di elaborazione del server di dati per editare la fork che è immagazzinata nella base di dati del server di dati. At step 304, another request is received from the user to select a particular fork of the selected file for editing purposes. For example, in the case where the user has a plurality of audio files stored in the database of the data server 102. The user may want to edit a specific fork (component) of the particular audio file. At step 306, editing instructions are received from the user to edit the particular fork. The user can use the processing capabilities of the data server to edit the fork that is stored in the database of the data server.

Alla fase 308, le istruzioni di editing ricevute dall’utente vengono elaborate dal server di dati per modificare la particolare fork secondo le istruzioni di editing. Per esempio, se l’utente desidera editare la fork selezionata (melodia) aggiungendo una tonalità alla melodia. Le istruzioni di editing per editare la fork selezionata (melodia) vengono elaborate per modificare la fork selezionata in tal senso. At step 308, the editing instructions received from the user are processed by the data server to modify the particular fork according to the editing instructions. For example, if the user wants to edit the selected fork (melody) by adding a key to the melody. The editing instructions for editing the selected fork (melody) are processed to change the selected fork to that effect.

Alla fase 310, la fork modificata viene immagazzinata separatamente come nuova versione della fork. Per esempio, la melodia modificata (fork) con tonalità aggiunta viene immagazzinata come nuova versione della melodia (fork). Ad ogni modo, si deve notare che la nuova versione della fork comprende solo dati che sono modificati. I dati non modificati vengono ripresi dalla fork originale collegando i dati originali con i dati modificati. In questo modo viene risparmiato molto spazio di memoria, evitando la ridondanza nell’ immagazzinaggio di dati. At step 310, the modified fork is stored separately as a new version of the fork. For example, the modified melody (fork) with added key is stored as a new version of the melody (fork). However, it should be noted that the new version of the fork only includes data that is changed. The unmodified data is taken from the original fork by linking the original data with the changed data. In this way a lot of memory space is saved, avoiding redundancy in data storage.

Alla fase 312, il server di dati fornisce accesso alle versioni sia originale sia modificata della fork a utenti locali o remoti. La versione modificata della fork viene immagazzinata come nuova versione aggiungendo un collegamento alla versione originale della fork. Pertanto, l’utente può avere accesso sia alla versione originale sia a quella modificata della fork seguendo i collegamenti tra le versioni originale e modificata della fork. Il processo di collegamento permette di abbinare dati modificati con i dati che non sono stati modificati. In questo modo un utente può avere accesso alla fork originale con e senza i dati modificati. At step 312, the data server provides access to both the original and modified versions of the fork to local or remote users. The modified version of the fork is stored as a new version by adding a link to the original version of the fork. Therefore, the user can have access to both the original and the modified version of the fork by following the links between the original and modified versions of the fork. The linking process allows you to match changed data with data that has not been changed. This way a user can have access to the original fork with and without the modified data.

Per esempio, la fork modificata con tonalità aggiunta viene immagazzinata come la versione modificata della fork aggiungendo un collegamento alla fork originale del particolare file audio, e cioè la melodia originale senza tonalità aggiunta. Pertanto, l’utente può avere accesso alle versioni sia originale sia modificata della fork seguendo i collegamenti tra le versioni modificate della fork. For example, the modified fork with added key is stored as the modified version of the fork by adding a link to the original fork of the particular audio file, i.e. the original melody with no added key. Therefore, the user can have access to both the original and modified versions of the fork by following the links between the modified versions of the fork.

Similmente, alla fase 314, il server di dati può permettere l’accesso al file originale (con molteplici fork) con fork originale nonché con fork modificata. Si deve notare che mentre si accede al file con fork modificata, il server di dati avrà accesso solo ai dati modificati nella fork e si collegherà alle porzioni rimanenti della fork dalla copia originale della fork. Maggiori dettagli sul collegamento di dati modificati con dati non modificati vengono divulgati ulteriormente in combinazione con la FIG. 13 della presente divulgazione. Similarly, in phase 314, the data server can allow access to the original file (with multiple forks) with the original fork as well as with a modified fork. It should be noted that while accessing the modified fork file, the data server will have access only to the modified data in the fork and will connect to the remaining portions of the fork from the original copy of the fork. More details on linking modified data with unmodified data are disclosed further in conjunction with FIG. 13 of this disclosure.

La FIG. 4 illustra un diagramma di flusso 400 di un metodo per modificare un particolare chunk di una particolare fork di un file audio, secondo una forma di realizzazione della presente divulgazione. Alla fase 402, vengono ricevute istruzioni di editing da un utente da parte di un server di dati di modificare un particolare chunk di una particolare fork di un file audio. Il server di dati esegue l’istruzione dell’utente di modificare il chunk alla fase 404 usando le sue capacità di elaborazione. Successivamente, alla fase 406, il server di dati può immagazzinare il chunk modificato separatamente come versione modificata del chunk e può permettere l’accesso alle versioni sia originale sia modificata della fork a un utente locale o remoto. Similmente, alla fase 410, l’accesso al file viene fornito all’utente con o senza la versione modificata della fork, sulla base delle esigenze dell’utente. FIG. 4 illustrates a flowchart 400 of a method for modifying a particular chunk of a particular fork of an audio file, according to an embodiment of the present disclosure. At step 402, editing instructions are received from a user by a data server to modify a particular chunk of a particular fork of an audio file. The data server executes the user's instruction to modify the chunk at step 404 using its processing capabilities. Subsequently, in step 406, the data server can store the modified chunk separately as a modified version of the chunk and can allow access to both the original and modified versions of the fork to a local or remote user. Similarly, in step 410, access to the file is provided to the user with or without the modified version of the fork, based on the user's needs.

La FIG. 5 illustra un diagramma di flusso 500 di un metodo per immagazzinare la versione originale di una fork con o senza chunk modificato, secondo una forma di realizzazione della presente divulgazione. Alla fase 502, vengono ricevute istruzioni di editing da parte di un server di dati da un utente di modificare un chunk di una particolare fork di un file audio che è immagazzinato in una base di dati del server di dati. FIG. 5 illustrates a flowchart 500 of a method for storing the original version of a fork with or without a modified chunk, according to an embodiment of the present disclosure. At step 502, editing instructions are received from a data server from a user to modify a chunk of a particular fork of an audio file that is stored in a data server database.

Alla fase 504, le istruzioni dell’utente di modificare il chunk vengono eseguite dal server di dati. Per esempio, l’utente può richiedere di editare il particolare chunk (ad esempio: una parte specifica di una melodia di chitarra). La parte specifica/completa del chunk quindi viene modificata dal server di dati come da istruzioni dell’utente. Il server di dati può essere configurato per gestire richieste di editing dagli utenti con l’aiuto di correlati algoritmi, programmi o software pre- installati nel server di dati. At step 504, the user's instructions to change the chunk are executed by the data server. For example, the user can request to edit the particular chunk (for example: a specific part of a guitar melody). The specific / complete part of the chunk is then modified by the data server as per user instructions. The data server can be configured to handle editing requests from users with the help of related algorithms, programs or software pre-installed in the data server.

Alla fase 506, il server di dati immagazzina il chunk modificato come versione separata del chunk nella sua base di dati. La versione modificata del chunk è collegabile alla parte restante della sua fork per permettere a qualsiasi utente di accedere alla fork completa con o senza il chunk modificato, alla fase 508. Similmente, alla fase 510, il server di dati permette a qualsiasi utente di accedere al file di musica con o senza il chunk modificato. Immagazzinando copia solo dei dati modificati e poi collegando i dati modificati con il resto del file non modificato, il server di dati risponde alla necessità di gestire efficientemente lo spazio di memorizzazione tenendo sotto controllo la ridondanza di dati. Maggiori dettagli sul collegamento di dati modificati con dati non modificati vengono divulgati ulteriormente in combinazione con la FIG. 13 della presente divulgazione. At step 506, the data server stores the modified chunk as a separate version of the chunk in its database. The modified version of the chunk is linkable to the remainder of its fork to allow any user to access the full fork with or without the modified chunk, at step 508. Similarly, at step 510, the data server allows any user to log in. to the music file with or without the modified chunk. By storing a copy of only the changed data and then linking the changed data with the rest of the unmodified file, the data server responds to the need to efficiently manage storage space while keeping data redundancy under control. More details on linking modified data with unmodified data are disclosed further in conjunction with FIG. 13 of this disclosure.

La FIG. 6 illustra un diagramma di flusso 600 di un metodo per unire due o più chunk sequenziali da un file audio, secondo una forma di realizzazione della presente divulgazione. Alla fase 602, un server di dati analizza la sua base di dati immagazzinando una pluralità di file audio per identificare un file, in cui parametri di certi chunk sono al di sotto di un limite di soglia. Successivamente, alla fase 604, il server di dati raggruppa (abbina o unisce) i chunk determinati con i loro chunk sequenziali. FIG. 6 illustrates a flowchart 600 of a method for joining two or more sequential chunks from an audio file, according to an embodiment of the present disclosure. At step 602, a data server scans its database by storing a plurality of audio files to identify a file, in which parameters of certain chunks are below a threshold limit. Next, in step 604, the data server groups (matches or merges) the determined chunks with their sequential chunks.

Per esempio, i chunk del file potrebbero richiedere di essere di una particolare dimensione e i chunk con una dimensione minore potrebbero richiedere di venire raggruppati con i loro chunk sequenziali per soddisfare il limite di dimensione di soglia. Se dopo il raggruppamento la dimensione dei chunk viene superata al di sopra di un limite di soglia, allora il chunk raggruppato può richiedere la suddivisione per soddisfare i livelli di soglia della dimensione. Questo processo di suddivisione viene definito ulteriormente in combinazione con la FIG. 7 della presente divulgazione. For example, chunks in the file might need to be a particular size and chunks with a smaller size might need to be grouped with their sequential chunks to meet the threshold size limit. If after grouping the size of the chunks is exceeded above a threshold limit, then the grouped chunk may require splitting to meet the threshold levels of the size. This splitting process is further defined in conjunction with FIG. 7 of this disclosure.

Alla fase 606, le versioni raggruppate dei chunk sequenziali sono immagazzinate separatamente come copia dei chunk originali. Va inteso che i chunk originali non sono modificati ma una copia degli stessi viene modificata e immagazzinata separatamente come versione dei chunk originali. Successivamente, alla fase 608, il server di dati permette l’accesso ai chunk originali nonché ai chunk modificati o raggruppati a un utente locale o remoto. L’utente può avere accesso ai chunk soli oppure può avere accesso ai chunk con il resto della sua fork o come file di musica completo. At step 606, the grouped versions of the sequential chunks are stored separately as copies of the original chunks. It should be understood that the original chunks are not modified but a copy of them is modified and stored separately as a version of the original chunks. Subsequently, in step 608, the data server allows access to the original chunks as well as to the modified or grouped chunks to a local or remote user. The user can have access to the chunks alone or can have access to the chunks with the rest of his fork or as a complete music file.

La FIG. 7 illustra un diagramma di flusso 700 di un metodo per suddividere un chunk, secondo una forma di realizzazione della presente divulgazione. Alla fase 702, un server di dati riceve istruzioni da un utente di modificare un particolare chunk di una particolare fork di un file di musica. Il server di dati modifica il chunk secondo le istruzioni dell’utente alla fase 704. Inoltre, la copia modificata del chunk è immagazzinata separatamente nella base di dati del server di dati di modo da conservare anche la copia originale del chunk. FIG. 7 illustrates a flowchart 700 of a method for splitting a chunk, according to an embodiment of the present disclosure. At step 702, a data server receives instructions from a user to modify a particular chunk of a particular fork of a music file. The data server modifies the chunk according to the user's instructions in step 704. In addition, the modified copy of the chunk is stored separately in the database of the data server so that the original copy of the chunk is also preserved.

Successivamente, alla fase 706, il server di dati può rilevare che uno dei parametri della versione modificata (copia) del chunk ha superato un parametro di soglia. Il parametro di soglia può venire impostato da un utente. Per esempio, il parametro potrebbe essere la dimensione del chunk. Successivamente, il server di dati può suddividere il chunk in due o più chunk per soddisfare il parametro di soglia. Le copie suddivise dei chunk sono immagazzinate separatamente nella base di dati conservando anche la copia originale del chunk suddiviso, alla fase 708. Inoltre, il server di dati permette l’accesso per l’utente sia ai chunk originali sia a quelli suddivisi. In questo modo l’utente può seguire tutte le modifiche eseguite su qualsiasi chunk particolare dalla storia delle modifiche salvata dal server di dati. Subsequently, at step 706, the data server can detect that one of the parameters of the modified version (copy) of the chunk has exceeded a threshold parameter. The threshold parameter can be set by a user. For example, the parameter could be the size of the chunk. Subsequently, the data server can split the chunk into two or more chunks to satisfy the threshold parameter. The split copies of the chunks are stored separately in the database while also retaining the original copy of the split chunk, at step 708. In addition, the data server allows user access to both the original and split chunks. In this way, the user can follow all the changes made on any particular chunk from the change history saved by the data server.

La FIG. 8 illustra un diagramma di flusso 800 di un metodo per suddividere automaticamente un chunk di un file audio, secondo una forma di realizzazione della presente divulgazione. Alla fase 802, un server di dati analizza i file immagazzinati nella sua base di dati per determinare un file di musica, in cui uno o più chunk del file sono al di sopra di un livello di soglia. I chunk possono avere diversi parametri come dimensione, tempo, tipo, ecc. Questi parametri possono avere livelli di soglia predefiniti che possono venire impostati dagli utenti. Se uno qualsiasi dei livelli di soglia viene superato, il server di dati può venire configurato per innescare delle azioni. FIG. 8 illustrates a flowchart 800 of a method for automatically splitting a chunk of an audio file, according to an embodiment of the present disclosure. At step 802, a data server scans the files stored in its database to determine a music file, in which one or more chunks of the file are above a threshold level. Chunks can have different parameters such as size, time, type, etc. These parameters can have predefined threshold levels that can be set by users. If any of the threshold levels are exceeded, the data server can be configured to trigger actions.

Alla fase 804, il server di dati innesca un’azione di creare una copia di un chunk determinato per la suddivisione. Successivamente, il server di dati divide la copia del determinato chunk in due o più chunk separati secondo i livelli di soglia di parametri pre-defìniti. La copia divisa del chunk determinato viene immagazzinata separatamente nella base di dati del server di dati, alla fase 806. Successivamente, la copia originale e la copia divisa del chunk sono rese disponibili per l’accesso a un utente locale o remoto, alla fase 808. At step 804, the data server triggers an action to create a copy of a given chunk for splitting. Subsequently, the data server divides the copy of the given chunk into two or more separate chunks according to the threshold levels of pre-defined parameters. The split copy of the determined chunk is stored separately in the database of the data server, at step 806. Thereafter, the original copy and the split copy of the chunk are made available for access to a local or remote user, at step 808 .

Per esempio, se il server di dati ha determinato che la dimensione di un particolare chunk viene superata rispetto a un limite di soglia, allora il server di dati può dividere una copia di quel chunk in molteplici chunk più piccoli di uguali dimensioni, secondo il limite di soglia della dimensione. Inoltre, se dopo la suddivisione dei chunk, la dimensione di qualsiasi chunk suddiviso viene ridotta al di sotto di un livello di soglia, allora il server di dati può unire il chunk più piccolo con il suo chunk sequenziale per mantenere una dimensione di soglia, lo stesso processo viene descritto nel dettaglio in combinazione con la FIG. 7 della presente divulgazione. For example, if the data server has determined that the size of a particular chunk is exceeding a threshold limit, then the data server can split a copy of that chunk into multiple smaller chunks of equal size, according to the limit. size threshold. Also, if after splitting the chunks, the size of any split chunk is reduced below a threshold level, then the data server can join the smaller chunk with its sequential chunk to maintain a threshold size. same process is described in detail in combination with FIG. 7 of this disclosure.

La FIG. 9 illustra un diagramma di flusso 900 per modificare in remoto un file di dati immagazzinato su un server di dati, secondo una forma di realizzazione della presente divulgazione. Il server di dati può avere una base di dati che immagazzina una pluralità di file comprendenti vari tipi di dati quali testo, audio, video, grafica o una combinazione degli stessi. Il server di dati può inoltre essere configurato per permettere a un utente locale o a un utente remoto di accedere ai file immagazzinati nella base di dati e di eseguire azioni come, ma non limitate ad, aggiunta, cancellazione, modifica, ecc. FIG. 9 illustrates a flowchart 900 for remotely modifying a data file stored on a data server, according to an embodiment of the present disclosure. The data server may have a database that stores a plurality of files comprising various types of data such as text, audio, video, graphics or a combination thereof. The data server can also be configured to allow a local user or a remote user to access the files stored in the database and to perform actions such as, but not limited to, adding, deleting, modifying, etc.

Ciascun file immagazzinato nella base di dati può inoltre essere costituito da varie parti che possono ulteriormente venire suddivise. Per un riferimento comodo, qualsiasi file immagazzinato nella base di dati del server di dati può venire designato qui di seguito come ‘file genitore’. Inoltre, il file genitore viene ritenuto essere in grado di dividersi in set di dati figlio. Va inteso che se tutti i set di dati figlio sono combinati in forma gerarchica, può venire ottenuto il file genitore. In modo simile, i set di dati figlio sono anche in grado di venire divisi in sotto-set di dati figlio. Per esempio, un file di musica può venire diviso in molteplici fork e ciascuna fork può venire suddivisa in molteplici chunk. Each file stored in the database can also consist of various parts which can be further subdivided. For convenient reference, any file stored in the data server's database may be referred to below as a 'parent file'. Additionally, the parent file is deemed to be capable of splitting into child datasets. It should be understood that if all child datasets are combined in a hierarchical form, the parent file can be obtained. Similarly, child datasets are also capable of being split into child datasets. For example, a music file can be split into multiple forks and each fork can be split into multiple chunks.

In un altro esempio, un file di testo con grafica può venire diviso in un set di dati di testo e in un set di dati grafici. Il file di testo può anche essere diviso in molteplici capitoli o in un set di pagine ecc. Similmente, un file video può venire diviso in dati video, dati audio, dati di testo separati (intestazioni). Una persona esperta del ramo comprenderà che sebbene la descrizione sia redatta con un esempio primario di file di musica costituiti da fork e chunk, lo stesso non deve venire ritenuto limitare l’estensione della divulgazione. Tutti i tipi di file di dati sono inclusi nella presente entro l’estensione della presente divulgazione. In another example, a text file with graphics can be split into a text dataset and a graphics dataset. The text file can also be divided into multiple chapters or a set of pages etc. Similarly, a video file can be divided into video data, audio data, separate text data (headers). A person skilled in the art will understand that although the description is written with a primary example of music files consisting of forks and chunks, the same should not be considered to limit the extent of the disclosure. All types of data files are included herein within the scope of this disclosure.

Più specificamente, il metodo è relativo alla gestione di una memoria locale di un dispositivo elettronico (come il server di dati 102) che immagazzina una pluralità di file di dati genitore, in cui i file di dati genitore sono costituiti da una pluralità di set di dati figlio. More specifically, the method relates to the management of a local memory of an electronic device (such as the data server 102) which stores a plurality of parent data files, in which the parent data files consist of a plurality of sets of child data.

Il metodo permette al dispositivo elettronico di modificare un set di dati figlio di un file di dati genitore e quindi di immagazzinare il set di dati figlio modificato separatamente nella memoria locale come versione del set di dati figlio. Questo permette al dispositivo elettronico di consentire l’accesso al file di dati genitore con e senza il set di dati figlio modificato, a qualsiasi utente locale o remoto. Il metodo è descritto sotto nel dettaglio con un esempio di file di musica che sono i file di dati genitore, le fork che sono il set di dati figlio, e i chunk che sono i sottoset di dati figlio. The method allows the electronic device to modify a child dataset of a parent data file and then store the modified child dataset separately in local storage as a version of the child dataset. This allows the electronic device to allow access to the parent data file with and without the modified child data set, to any local or remote user. The method is described in detail below with an example of music files which are the parent data files, forks which are the child data set, and chunks which are the child data subsets.

Facendo ora riferimento al diagramma di flusso 900, alla fase 902 il server di dati riceve una richiesta da un utente remoto (attraverso una rete) di modificare un file di dati genitore. Più specificamente, la richiesta dell’utente comprende uno specifico set di dati figlio del file genitore che deve venire modificato secondo l’istruzione dell’utente. Il server di dati successivamente elabora le istruzioni dell’utente e per modificare il particolare set di dati figlio del file genitore. Il processo di modificare in remoto qualsiasi file attraverso una rete è noto nella tecnica e pertanto non viene descritto nel dettaglio. Qualsiasi persona esperta nella tecnica deve avere la conoscenza di base della stessa. Referring now to flowchart 900, at step 902 the data server receives a request from a remote user (across a network) to modify a parent data file. More specifically, the user's request includes a specific child data set of the parent file that must be modified according to the user's instructions. The data server subsequently processes the user's instructions and to modify the particular child data set of the parent file. The process of remotely modifying any file across a network is known in the art and therefore is not described in detail. Anyone skilled in the art must have basic knowledge of the art.

Alla fase 904, il set di dati figlio modificato viene immagazzinato in una memoria locale del server di dati come versione del set di dati figlio. Nella presente, le modifiche sono fatte su una copia del set di dati figlio e non sul set di dati figlio stesso. Inoltre, il set di dati figlio originale viene mantenuto in memoria assieme alla copia modificata e viene designato nella presente come versione del set di dati figlio originale. La copia del set di dati figlio modificato è immagazzinata nella memoria locale come la versione del set di dati figlio aggiungendo un collegamento al set di dati figlio originale. Il collegamento permette al server di dati di accedere al file di dati genitore con o senza il set di dati figlio modificato. At step 904, the modified child dataset is stored in local storage of the data server as a version of the child dataset. Here, changes are made to a copy of the child dataset and not to the child dataset itself. In addition, the original child dataset is kept in memory along with the modified copy and is referred to herein as the version of the original child dataset. The copy of the modified child dataset is stored in local memory as the version of the child dataset by adding a link to the original child dataset. The link allows the data server to access the parent data file with or without the modified child data set.

Più specificamente, altri set di dati figlio del file di dati genitore possono venire collegati alla copia originale del set di dati modificato e possono anche venire collegati con la copia modificata stessa. Sulla base dell’esigenza, si può accedere al file di dati genitore con o senza set di dati figlio modificato, alla fase 906. Va inteso che il set di dati figlio del file di dati genitore è inoltre divisibile in uno o più sotto-set di dati figlio. More specifically, other child datasets of the parent dataset can be linked to the original copy of the modified dataset and can also be linked with the modified copy itself. Based on the need, the parent data file can be accessed with or without modified child data set, at step 906. It should be understood that the child data set of the parent data file is also divisible into one or more sub-sets of child data.

Il server di dati è anche in grado di modificare uno o più sotto-set di dati figlio del file di dati genitore su richiesta dell’utente. Dopo le modifiche richieste dall’utente, il server di dati può immagazzinare il sotto- set di dati figlio modificato separatamente nella memoria locale come versione dell’uno o più sotto-set di dati figlio, per permettere l’accesso al file di dati genitore con e senza il sotto-set di dati figlio modificato. Il server di dati può inoltre permettere l’accesso al set di dati figlio con e senza il sotto-set di dati figlio modificato. The data server is also able to modify one or more child data sub-sets of the parent data file at the request of the user. After the modifications requested by the user, the data server can store the modified child data sub-set separately in local storage as a version of the one or more child data sub-sets, to allow access to the parent data file. with and without the modified child sub-dataset. The data server can also allow access to the child data set with and without the modified child data sub-set.

La FIG. 10 illustra un diagramma di flusso 1000 per dividere un set di dati figlio modificato in due o più set di dati nuovi sulla base di un limite di soglia, secondo una forma di realizzazione della presente divulgazione. Il diagramma di flusso 1000 è una continuazione del diagramma di flusso 900 e tutte le terminologie sono ereditate nella presente dalla descrizione del diagramma di flusso 900. Facendo ora riferimento alla fase 1002 del diagramma di flusso 1000, viene determinato dal server di dati se almeno un parametro di un set di dati figlio modificato ha attraversato un limite di soglia per innescare un’azione. In una forma di realizzazione, l’utente può avere un’opzione di impostare il limite di soglia per i set di dati figlio sulla base di diversi parametri come dimensione del file, tipo di file ecc. FIG. 10 illustrates a flowchart 1000 for dividing a modified child data set into two or more new data sets based on a threshold boundary, according to an embodiment of the present disclosure. Flowchart 1000 is a continuation of flowchart 900 and all terminologies are inherited herein from the description of flowchart 900. Referring now to step 1002 of flowchart 1000, it is determined by the data server whether at least one parameter of a modified child dataset crossed a threshold limit to trigger an action. In one embodiment, the user may have an option to set the threshold limit for child data sets based on various parameters such as file size, file type, etc.

Alla fase 1004, se viene determinato che il set di dati figlio modificato ha attraversato una soglia, allora il server di dati divide il set di dati figlio modificato in due o più set di dati, sulla base del limite di soglia definito dall’utente. Alla fase 1006, i set di dati figlio nuovi (copia divisa dell’originale) sono immagazzinati separatamente come versione del set di dati figlio modificato. I set di dati figlio nuovi sono immagazzinati separatamente aggiungendo un collegamento al set di dati modificato per la determinazione di molteplici versioni del set di dati modificato. At step 1004, if it is determined that the modified child dataset has crossed a threshold, then the data server divides the modified child dataset into two or more data sets, based on the user-defined threshold limit. At step 1006, the new child datasets (split copy of the original) are stored separately as a version of the modified child dataset. New child datasets are stored separately by adding a link to the modified dataset for determining multiple versions of the modified dataset.

Alla fase 1008, l’utente può essere in grado di accedere al file di dati genitore con il sotto-set di dati figlio modificato nonché con il set di dati figlio nuovo. I set di dati figlio nuovi sono immagazzinati con il set di dati figlio modificato aggiungendo il collegamento ai set di dati figlio nuovi. Pertanto, l’utente può accedere al file genitore con il set di dati figlio modificato e con i set di dati figlio nuovi seguendo i collegamenti tra il set di dati modificato e i set di dati figlio nuovi. In una forma di realizzazione alternativa, lo stesso processo può anche essere valido con sotto-set di dati figlio di un set di dati figlio. Per esempio, se almeno un parametro di un sotto-set di dati figlio ha attraversato un limite di soglia, il sotto-set di dati figlio può venire diviso in due o più sotto-set di dati figlio sulla base del limite di soglia. At step 1008, the user may be able to access the parent data file with the modified child data sub-set as well as with the new child data set. The new child datasets are stored with the modified child dataset by adding the link to the new child datasets. Therefore, the user can access the parent file with the modified child dataset and with the new child datasets by following the links between the modified dataset and the new child datasets. In an alternate embodiment, the same process can also be valid with child data sub-sets of a child data set. For example, if at least one parameter of a child dataset has crossed a threshold limit, the child dataset can be split into two or more child datasets based on the threshold limit.

La FIG. 11 illustra un diagramma di flusso 1100 di un metodo per unire un set di dati figlio modificato con il suo set sequenziale di dati figlio per formare un set di dati figlio nuovo, secondo una forma di realizzazione della presente divulgazione. Il diagramma di flusso 1100 è una continuazione del diagramma di flusso 900 e tutte le terminologie sono ereditate nella presente dalla descrizione del diagramma di flusso 900 e 1000. FIG. 11 illustrates a flowchart 1100 of a method for merging a modified child data set with its sequential child data set to form a new child data set, according to an embodiment of the present disclosure. Flowchart 1100 is a continuation of flowchart 900 and all terminologies are inherited herein from the flowchart description 900 and 1000.

Facendo ora riferimento alla fase 1 102 del diagramma di flusso 1100, viene determinato se almeno un parametro di un set di dati figlio modificato è al di sotto di un limite di soglia. Alla fase 1 104, se il set di dati figlio modificato viene determinato al di sotto del limite di soglia, allora il server di dati può automaticamente unire il set di dati figlio modificato con il(i) suo(i) set di dati figlio sequenziale(i) a formare un set di dati figlio nuovo che soddisfa il limite di soglia. Alla fase 1106, il set di dati figlio nuovo viene immagazzinato separatamente come versione del set di dati figlio modificato. Inoltre, il set di dati figlio nuovo è immagazzinato separatamente aggiungendo un collegamento al set di dati modificato. Referring now to step 102 of flowchart 1100, it is determined whether at least one parameter of a modified child dataset is below a threshold limit. At step 1 104, if the modified child dataset is determined to be below the threshold limit, then the data server can automatically merge the modified child dataset with its sequential child dataset (s) (i) to form a new child dataset that meets the threshold limit. At step 1106, the new child dataset is stored separately as a version of the changed child dataset. Also, the new child dataset is stored separately by adding a link to the modified dataset.

Alla fase 1108, il server di dati può permettere all’utente di accedere al file di dati genitore con il set di dati figlio modificato nonché con il set di dati figlio nuovo. I set di dati figlio nuovi sono immagazzinati con il set di dati figlio modificato aggiungendo il collegamento al set di dati figlio nuovo. Pertanto, l’utente può accedere al file genitore con il set di dati figlio modificato e con il set di dati figlio nuovo seguendo i collegamenti tra il set di dati modificato e i set di dati figlio nuovi. In uno scenario alternativo, lo stesso processo può essere valido con sotto-set di dati figlio dei set di dati figlio. At step 1108, the data server can allow the user to access the parent data file with the modified child data set as well as with the new child data set. The new child datasets are stored with the modified child dataset by adding the link to the new child dataset. Therefore, the user can access the parent file with the modified child dataset and with the new child dataset by following the links between the modified dataset and the new child datasets. In an alternate scenario, the same process can be valid with child datasets of the child datasets.

La FIG. 12 illustra un diagramma a blocchi di un dispositivo elettronico 1200 (come il server di dati 102), secondo una forma di realizzazione della presente divulgazione. Il dispositivo elettronico può essere qualsiasi dispositivo elettronico come, ma non limitato a, computer portatile, computer da tavolo, telefono mobile, tablet, server, ecc. Come rappresentato dalla figura, il dispositivo elettronico 1200 comprende un processore 1202, un modulo di interfaccia di rete 1204 e una memoria 1206 per l’immagazzinamento dei dati. Il modulo di interfaccia di rete 1204 viene usato per collegare il dispositivo elettronico 1200 con una rete (come la rete 108). Il processore 1202 può comprendere uno o più di un processore. Il modulo di interfaccia di rete 1204 può essere un hardware, un software o una combinazione degli stessi. FIG. 12 illustrates a block diagram of an electronic device 1200 (such as data server 102), according to an embodiment of the present disclosure. The electronic device can be any electronic device such as, but not limited to, laptop, desktop computer, mobile phone, tablet, server, etc. As shown in the figure, the electronic device 1200 comprises a processor 1202, a network interface module 1204 and a memory 1206 for data storage. The network interface module 1204 is used to connect the electronic device 1200 with a network (such as network 108). Processor 1202 may comprise one or more than one processor. The 1204 network interface module can be hardware, software, or a combination thereof.

La memoria 1206 inoltre comprende un set di istruzioni 1208 e una base di dati 1210. Il set di istruzioni 1208 immagazzinato nella memoria 1206 usa il processore 1202 per eseguire delle azioni, ad esempio ricevere, immagazzinare, elaborare e trasmettere dati immagazzinati nella memoria 1206. In una forma di realizzazione della presente divulgazione, la memoria 1206 può essere una memoria volatile nontransitoria o una memoria non-volatile. Per esempio, ma non limitatamente a, memoria ad accesso casuale (RAM - Random Acess Memory), memoria cache, disco rigido (HDD - Hard Disk Drive), unità a stato solido (SSD - Solid State Drive), compact disk (CD), memorie portatili e simili. The memory 1206 further comprises an instruction set 1208 and a database 1210. The instruction set 1208 stored in the memory 1206 uses the processor 1202 to perform actions, such as receiving, storing, processing and transmitting data stored in the memory 1206. In one embodiment of the present disclosure, memory 1206 may be a non-transient volatile memory or a non-volatile memory. For example, but not limited to, random access memory (RAM - Random Acess Memory), cache memory, hard disk (HDD - Hard Disk Drive), solid state drive (SSD - Solid State Drive), compact disk (CD) , portable memories and the like.

La base di dati 1210 comprende una pluralità di file di dati genitore che sono costituiti da una pluralità di set di dati figlio. Il set di istruzioni 1208 comprende istruzioni che quando eseguite dall’uno o più processori fanno sì che il dispositivo elettronico 1200 modifichi un set di dati figlio di un file di dati genitore, immagazzini il set di dati figlio modificato separatamente nella memoria locale come versione del set di dati figlio e permetta l’accesso al file di dati genitore con e senza il set di dati figlio modificato. Il set di dati figlio del file di dati genitore è inoltre divisibile in uno o più sotto-set di dati figlio. The database 1210 comprises a plurality of parent data files which consist of a plurality of child data sets. Instruction set 1208 includes instructions that when executed by one or more processors cause the electronic device 1200 to modify a child dataset of a parent data file, store the modified child dataset separately in local storage as a version of the child dataset and allow access to the parent dataset with and without the modified child dataset. The child dataset of the parent dataset is also divisible into one or more child datasets.

Il set di istruzioni 1208 inoltre comprende istruzioni per modificare l’uno o più sotto-set di dati figlio, immagazzinare i sotto-set di dati figlio modificati separatamente nella memoria locale come versione dell’uno o più sotto-set di dati figlio e permettere l’accesso al file di dati genitore con e senza i sotto-set di dati figlio modificati. Può anche essere previsto l’accesso al set di dati figlio con e senza i sotto-set di dati figlio modificati. Instruction set 1208 also includes instructions for modifying the one or more child datasets, storing the modified child datasets separately in local storage as a version of the one or more child datasets, and allowing access to the parent data file with and without the modified child data sub-sets. Access to the child data set can also be provided with and without the modified child data sub-sets.

Il set di istruzioni 1208 inoltre comprende istruzioni per determinare se almeno un parametro del set di dati figlio modificato ha attraversato un limite di soglia. Se ciò viene determinato, allora dividere il set di dati figlio modificato in due o più set di dati nuovi sulla base del limite di soglia. Successivamente, immagazzinare i set di dati figlio nuovi separatamente come versione del set di dati figlio modificato e permettere l’accesso al file di dati genitore con il set di dati figlio modificato e con i set di dati figlio nuovi. Instruction set 1208 also includes instructions for determining whether at least one parameter of the modified child dataset has crossed a threshold limit. If this is determined, then split the changed child dataset into two or more new datasets based on the threshold limit. Next, store the new child datasets separately as a version of the modified child dataset and allow access to the parent dataset with the modified child dataset and the new child datasets.

Il set di istruzioni 1208 inoltre comprende istruzioni per determinare se almeno un parametro del set di dati figlio modificato è al di sotto di un limite di soglia. Se ciò viene determinato, allora unire il set di dati figlio modificato con il suo set di dati figlio sequenziale a formare un set di dati figlio nuovo. Successivamente, immagazzinare il set di dati figlio nuovo separatamente come versione del set di dati figlio modificato e permettere l’accesso al file di dati genitore con il set di dati figlio modificato e con il set di dati figlio nuovo. Instruction set 1208 also includes instructions for determining if at least one parameter of the modified child dataset is below a threshold limit. If this is determined, then merge the modified child dataset with its sequential child dataset to form a new child dataset. Next, store the new child dataset separately as a version of the modified child dataset and allow access to the parent dataset with the modified child dataset and the new child dataset.

Maggiori dettagli corrispondenti all’unione e alla divisione dei set di dati figlio sono spiegati più oltre in connessione con la FIG. 13 della presente divulgazione, in cui il file genitore viene indicato con un esempio di un file di musica, il set di dati figlio viene indicato come una fork e i sotto-set di dati figlio sono indicati come chunk. More details corresponding to the union and division of the child data sets are explained later in connection with FIG. 13 of this disclosure, where the parent file is referred to as an example of a music file, the child data set is referred to as a fork, and the child data sub-sets are referred to as a chunk.

Facendo ora riferimento alla FIG. 13, viene illustrata una struttura rappresentativa di immagazzinaggio di memoria per definire un modo in cui un server di dati può immagazzinare la storia delle versioni di file di musica. Viene illustrata un’unica fork 1302 di un file musicale (non mostrato). La singola fork 1302 è inoltre illustrata come formata da una pluralità di chunk 1304a-n. La pluralità di chunk originali 1304a-n vengono designati qui come parte della versione 1 della fork 1302. Qualsiasi modifica nei chunk può essere immagazzinata separatamente e si può accedere alla fork 1302 con i chunk modificati come versione 2 della fork 1302. Qualsiasi ulteriore modifica nella fork creerà la versione 3 e via dicendo. Referring now to FIG. 13, a representative memory storage structure is illustrated for defining a way in which a data server can store the history of music file versions. A single 1302 fork of a music file is shown (not shown). The single fork 1302 is further illustrated as formed by a plurality of chunks 1304a-n. The plurality of original chunks 1304a-n are designated here as part of version 1 of fork 1302. Any changes in the chunks can be stored separately and fork 1302 can be accessed with chunks modified as version 2 of fork 1302. Any further changes in the chunks can be accessed separately. fork will create version 3 and so on.

Va inteso che, sebbene qualsiasi modifica in una fork sia considerata una nuova versione della fork, purtuttavia tutti i chunk della fork non sono immagazzinati nelle nuove versioni e solo il chunk modificato è immagazzinato separatamente. Il server di dati collega i dati modificati con dati non modificati e pertanto consente l’accesso a molteplici versioni della stessa fork senza dover creare ridondanza nell’ immagazzinamento di dati. It should be understood that although any modification in a fork is considered a new version of the fork, however all the chunks of the fork are not stored in the new versions and only the modified chunk is stored separately. The data server connects modified data with unmodified data and therefore allows access to multiple versions of the same fork without having to create redundancy in data storage.

Inoltre, come illustrato, i chunk 1304b e 1304c vengono uniti a formare un singolo chunk 1304bc. Si può accedere facilmente alla fork 1302 con il chunk modificato 1304 facendo riferimento alla versione 2 della fork 1302. Similmente, il chunk 1304d viene suddiviso in due nuovi chunk 1304dl e 1304d2 e forma la versione 3 della fork 1302. Qualsiasi ulteriore modifica nei chunk può avere come risultato ulteriori versioni della fork 1302. Also, as illustrated, chunks 1304b and 1304c are joined to form a single chunk 1304bc. Fork 1302 can be easily accessed with the modified chunk 1304 by referring to version 2 of fork 1302. Similarly, chunk 1304d is split into two new chunks 1304dl and 1304d2 and forms version 3 of fork 1302. Any further changes in the chunks can result in further versions of fork 1302.

Nonostante la presente divulgazione sia stata descritta in termini di alcune forme di realizzazione preferenziali, varie caratteristiche di forme di realizzazione separate possono venire combinate a formare forme di realizzazione aggiuntive non descritte espressamente. Inoltre, altre forme di realizzazione evidenti per le persone con ordinarie competenze nella tecnica dopo aver letto questa divulgazione rientrano anch’esse nell’estensione di questa invenzione. Inoltre, non sono necessariamente richieste tutte le caratteristiche, gli aspetti e i vantaggi per mettere in pratica la presente divulgazione. Pertanto, mentre la descrizione dettagliata di cui sopra ha mostrato, descritto ed evidenziato nuove caratteristiche dell’invenzione così come applicate a varie forme di realizzazione, si comprenderà che varie omissioni, sostituzioni e cambiamenti nella forma e nei dettagli dell’ apparecchiatura o processo illustrati possono venire apportate dalle persone con ordinarie competenze nella tecnologia senza allontanarsi dallo spirito dell’invenzione. Although the present disclosure has been described in terms of some preferential embodiments, various features of separate embodiments can be combined to form additional embodiments not expressly described. Furthermore, other embodiments evident for people with ordinary skills in the art after reading this disclosure also fall within the scope of this invention. Furthermore, not all features, aspects and advantages are necessarily required to put this disclosure into practice. Therefore, while the above detailed description has shown, described and highlighted new features of the invention as applied to various embodiments, it will be understood that various omissions, substitutions and changes in the form and details of the illustrated apparatus or process may be brought in by people with ordinary skills in technology without departing from the spirit of the invention.

Le invenzioni possono venire realizzate in altre forme specifiche non descritte esplicitamente nella presente. Le forme di realizzazione descritte sopra devono venire considerate sotto tutti gli aspetti solo a titolo illustrativo e in nessun modo limitativo. Pertanto, l’estensione dell’invenzione viene individuata dalle rivendicazioni che seguono, piuttosto che dalla descrizione che precede. Inventions may be made in other specific forms not explicitly described herein. The embodiments described above are to be considered in all respects for illustrative purposes only and in no limiting way. Therefore, the scope of the invention is identified by the following claims, rather than by the description above.

La presente divulgazione è espressa e caratterizzata nelle rivendicazioni indipendenti, mentre le rivendicazioni dipendenti descrivono altre caratteristiche dell’invenzione o varianti dell’idea inventiva principale. This disclosure is expressed and characterized in the independent claims, while the dependent claims describe other features of the invention or variants of the main inventive idea.

Claims (17)

RIVENDICAZIONI 1. Metodo per gestire una memoria locale di un dispositivo elettronico che immagazzina una pluralità di file di dati genitore, in cui i file di dati genitore sono costituiti da una pluralità di set di dati figlio, caratterizzato dal fatto che il metodo permette al dispositivo elettronico di: - modificare (902) un set di dati figlio di un file di dati genitore; - immagazzinare (904) il set di dati figlio modificato separatamente nella memoria locale come versione del set di dati figlio; e - permettere (906) l’accesso al file di dati genitore con e senza il set di dati figlio modificato. CLAIMS 1. Method for managing a local memory of an electronic device that stores a plurality of parent data files, in which the parent data files consist of a plurality of child data sets, characterized in that the method allows the electronic device from: - modify (902) a child dataset of a parent dataset; - store (904) the modified child dataset separately in local storage as a version of the child dataset; And - allow (906) access to the parent data file with and without the modified child data set. 2. Metodo secondo la rivendicazione 1, in cui il metodo inoltre permette al dispositivo elettronico di: - determinare (1002) se almeno un parametro del set di dati figlio modificato ha attraversato un limite di soglia; - dividere (1004) il set di dati figlio modificato in due o più nuovi set di dati sulla base del limite di soglia; - immagazzinare (1006) i set di dati figlio nuovi separatamente come versione del set di dati figlio modificato; e - permettere (1008) l’accesso al file di dati genitore con il set di dati figlio modificato e con i set di dati figlio nuovi. Method according to claim 1, wherein the method further allows the electronic device to: - determine (1002) whether at least one parameter of the modified child data set has crossed a threshold limit; - split (1004) the modified child dataset into two or more new datasets based on the threshold limit; - store (1006) the new child datasets separately as a version of the modified child dataset; And - allow (1008) access to the parent data file with the modified child data set and with the new child data sets. 3. Metodo secondo la rivendicazione 1, in cui il metodo inoltre permette al dispositivo elettronico di: - determinare (1102) se almeno un parametro del set di dati figlio modificato è al di sotto di un limite di soglia; - unire (1104) il set di dati figlio modificato con il suo set di dati figlio sequenziale a formare un set di dati figlio nuovo; - immagazzinare (1106) il set di dati figlio nuovo separatamente come versione del set di dati figlio modificato; e - permettere (1108) l’accesso al file di dati genitore con il set di dati figlio modificato e con il set di dati figlio nuovo. Method according to claim 1, wherein the method further allows the electronic device to: - determining (1102) whether at least one parameter of the modified child data set is below a threshold limit; - merge (1104) the modified child dataset with its sequential child dataset to form a new child dataset; - store (1106) the new child dataset separately as a version of the modified child dataset; And - allow (1108) access to the parent data file with the modified child data set and with the new child data set. 4. Metodo secondo la rivendicazione 1, in cui il set di dati figlio del file di dati genitore è inoltre diviso in uno o più sotto-set di dati figlio. The method according to claim 1, wherein the child data set of the parent data file is further divided into one or more child data sub-sets. 5. Metodo secondo la rivendicazione 4, in cui il metodo inoltre permette al dispositivo elettronico di: - modificare l’uno o più sotto-set di dati figlio; - immagazzinare i sotto-set di dati figlio modificati separatamente nella memoria locale come versione dell’uno o più sotto-set di dati figlio; e - permettere l’accesso al file di dati genitore con e senza i sotto-set di dati figlio modificati. The method according to claim 4, wherein the method further allows the electronic device to: - modify one or more child data sub-sets; - store the modified child data sub-sets separately in local memory as a version of one or more child data sub-sets; and - allow access to the parent data file with and without the modified child data sub-sets. 6. Metodo secondo la rivendicazione 5, in cui il metodo inoltre permette l’accesso al set di dati figlio con e senza i sotto-set di dati figlio modificati. 6. Method according to claim 5, wherein the method also allows access to the child data set with and without the modified child data sub-sets. 7. Metodo secondo la rivendicazione 5, in cui prevede di recuperare informazioni arbitrarie relative a un file di dati genitore e/o a un file di dati figlio e/o un sotto-file di dati figlio allo scopo di calcolare e fornire la proprietà dei diritti per ciascun autore che ha lavorato sullo specifico file di dati, detta proprietà dei diritti essendo espressa in percentuali. Method according to claim 5, wherein it provides to retrieve arbitrary information relating to a parent data file and / or a child data file and / or a child data subfile for the purpose of calculating and providing ownership of rights for each author who has worked on the specific data file, said ownership of the rights being expressed in percentages. 8. Metodo secondo la rivendicazione 5, in cui il file di dati genitore è un file audio. The method according to claim 5, wherein the parent data file is an audio file. 9. Metodo secondo la rivendicazione 5, in cui il set di dati figlio comprende almeno una fork audio. The method according to claim 5, wherein the child data set comprises at least one audio fork. 10. Metodo secondo la rivendicazione 5, in cui i sotto-set di dati figlio comprendono almeno un chunk audio. The method according to claim 5, wherein the child data sub-sets comprise at least one audio chunk. 11. Apparecchiatura (1200) collegata a una rete, l’apparecchiatura comprendendo: - uno o più processori (1202); - un modulo di interfaccia di rete (1204) per collegare l’apparecchiatura alla rete; - una memoria (1206) comprendente: - una base di dati (1210) comprendente una pluralità di file di dati genitore, in cui i file di dati genitore sono costituiti da una pluralità di set di dati figlio; - un set di istruzioni (1208) comprendente istruzioni che quando vengono eseguite dall’uno o più processori fanno sì che l’apparecchiatura compia una pluralità di operazioni, caratterizzata dal fatto che l’apparecchiatura è inoltre configurata per: - modificare un set di dati figlio di un file di dati genitore; - immagazzinare il set di dati figlio modificato separatamente nella memoria locale come versione del set di dati figlio; e - permettere l’accesso al file di dati genitore con e senza il set di dati figlio modificato. 11. Equipment (1200) connected to a network, the equipment including: - one or more processors (1202); - a network interface module (1204) to connect the equipment to the network; - a memory (1206) comprising: - a data base (1210) comprising a plurality of parent data files, wherein the parent data files consist of a plurality of child data sets; - a set of instructions (1208) including instructions that when executed by one or more processors cause the equipment to perform a plurality of operations, characterized by the fact that the equipment is also configured for: - modify a child dataset of a parent dataset; - store the modified child dataset separately in local storage as a version of the child dataset; And - allow access to the parent data file with and without the modified child data set. 12. Apparecchiatura secondo la rivendicazione 11, in cui l’apparecchiatura è inoltre configurata per: - determinare se almeno un parametro del set di dati figlio modificato ha attraversato un limite di soglia; e - dividere il set di dati figlio modificato in due o più nuovi set di dati sulla base del limite di soglia; - immagazzinare i set di dati figlio nuovi separatamente come versione del set di dati figlio modificato; e - permettere l’accesso al file di dati genitore con il set di dati figlio modificato e con i set di dati figlio nuovi. 12. Equipment according to claim 11, wherein the equipment is also configured for: - determine if at least one parameter of the modified child data set has crossed a threshold limit; And - split the modified child dataset into two or more new datasets based on the threshold limit; - store the new child datasets separately as a version of the modified child dataset; And - allow access to the parent data file with the modified child data set and with the new child data sets. 13. Apparecchiatura secondo la rivendicazione 11, in cui l’apparecchiatura è inoltre configurata per: - determinare se almeno un parametro del set di dati figlio modificato è al di sotto di un limite di soglia; e - unire il set di dati figlio modificato con il suo set di dati figlio sequenziale a formare un set di dati figlio nuovo; - immagazzinare il set di dati figlio nuovo separatamente come versione del set di dati figlio modificato; e - permettere l’accesso al file di dati genitore con il set di dati figlio modificato e con il set di dati figlio nuovo. 13. Equipment according to claim 11, wherein the equipment is also configured for: - determine if at least one parameter of the modified child data set is below a threshold limit; And - merge the modified child dataset with its sequential child dataset to form a new child dataset; - store the new child dataset separately as a version of the modified child dataset; And - allow access to the parent data file with the modified child data set and with the new child data set. 14. Apparecchiatura secondo la rivendicazione 11, in cui il set di dati figlio del file di dati genitore è inoltre diviso in uno o più sotto-set di dati figlio. Apparatus according to claim 11, wherein the child data set of the parent data file is further divided into one or more child data sub-sets. 15. L’apparecchiatura secondo la rivendicazione 14 è inoltre configurata per: - modificare l’uno o più sotto-set di dati figlio; - immagazzinare i sotto-set di dati figlio modificati separatamente nella memoria locale come versione dell’uno o più sotto-set di dati figlio; e - permettere l’accesso al file di dati genitore con e senza i sotto-set di dati figlio modificati. 15. The equipment according to claim 14 is also configured for: - modify one or more child data sub-sets; - store the modified child data sub-sets separately in local memory as a version of one or more child data sub-sets; and - allow access to the parent data file with and without the modified child data sub-sets. 16. L’apparecchiatura secondo la rivendicazione 14 inoltre permette l’accesso al set di dati figlio con e senza i sotto-set di dati figlio modificati. 16. The equipment according to claim 14 also allows access to the child data set with and without the modified child data sub-sets. 17. Apparecchiatura secondo la rivendicazione 15, in cui comprende un meccanismo automatico configurato per recuperare informazioni arbitrarie relative a un file di dati genitore e/o a un file di dati figlio e/o a un sotto-file di dati figlio al fine di calcolare e fornire la proprietà dei diritti per ciascun autore che ha lavorato sullo specifico file di dati, detta proprietà di diritti essendo espressa in percentuali. 17. Apparatus according to claim 15, wherein it comprises an automatic mechanism configured to retrieve arbitrary information relating to a parent data file and / or a child data file and / or a child data subfile in order to calculate and provide ownership of rights for each author who worked on the specific data file, said ownership of rights being expressed in percentages.
IT102018000005409A 2018-05-16 2018-05-16 SYSTEM, EQUIPMENT AND METHOD FOR EFFICIENTLY MANAGING THE MEMORY OF ELECTRONIC DEVICES IT201800005409A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
IT102018000005409A IT201800005409A1 (en) 2018-05-16 2018-05-16 SYSTEM, EQUIPMENT AND METHOD FOR EFFICIENTLY MANAGING THE MEMORY OF ELECTRONIC DEVICES

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102018000005409A IT201800005409A1 (en) 2018-05-16 2018-05-16 SYSTEM, EQUIPMENT AND METHOD FOR EFFICIENTLY MANAGING THE MEMORY OF ELECTRONIC DEVICES

Publications (1)

Publication Number Publication Date
IT201800005409A1 true IT201800005409A1 (en) 2019-11-16

Family

ID=63449519

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102018000005409A IT201800005409A1 (en) 2018-05-16 2018-05-16 SYSTEM, EQUIPMENT AND METHOD FOR EFFICIENTLY MANAGING THE MEMORY OF ELECTRONIC DEVICES

Country Status (1)

Country Link
IT (1) IT201800005409A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0541281A2 (en) * 1991-11-04 1993-05-12 AT&T Corp. Incremental-computer-file backup using signatures
US20100161575A1 (en) * 2008-12-23 2010-06-24 At&T Intellectual Property I, L.P. System and method for representing media assets
US20120185448A1 (en) * 2011-01-14 2012-07-19 Mensch James L Content based file chunking
US20160328425A1 (en) * 2015-05-08 2016-11-10 Adp, Llc Information System with Versioning

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0541281A2 (en) * 1991-11-04 1993-05-12 AT&T Corp. Incremental-computer-file backup using signatures
US20100161575A1 (en) * 2008-12-23 2010-06-24 At&T Intellectual Property I, L.P. System and method for representing media assets
US20120185448A1 (en) * 2011-01-14 2012-07-19 Mensch James L Content based file chunking
US20160328425A1 (en) * 2015-05-08 2016-11-10 Adp, Llc Information System with Versioning

Similar Documents

Publication Publication Date Title
US9645787B1 (en) Tag-based electronic media playlist processing
JP5058495B2 (en) Synchronization by ghosting
TWI420328B (en) Device specific content indexing for optimized device operation
US7949938B2 (en) Comparing and merging multiple documents
US7440975B2 (en) Unified media collection system
CN100452029C (en) Method and system for managing media file database
US8655840B2 (en) Method, apparatus and computer program product for sub-file level synchronization
US7302437B2 (en) Methods, systems, and computer-readable media for a global video format schema defining metadata relating to video media
US20110125755A1 (en) Systems and methods for thumbnail management
TWI307472B (en) Computer-readable medium and storage medium storing audio-visual data including metadata, reproducing apparatus, and method of searching for audio-visual data using the metadata
US9626456B2 (en) Crowd sourcing for file recognition
US10628385B2 (en) Virtual collection of entities in sync process
JP2008547153A (en) Create standardized playlists and maintain unity
US11711375B2 (en) Team member transfer tool
US20060007820A1 (en) Digital audio recorder for CD collections
EP2325760A2 (en) Representation of media types
US20190354612A1 (en) System, apparatus, and method for efficiently managing memory of electronic devices
CN101506890A (en) Operating system shell management of video files
US20120284267A1 (en) Item Randomization with Item Relational Dependencies
IT201800005409A1 (en) SYSTEM, EQUIPMENT AND METHOD FOR EFFICIENTLY MANAGING THE MEMORY OF ELECTRONIC DEVICES
JP2009151746A (en) Collaborative tagging system and method for information resources
CN102033903A (en) Method for analyzing file name
US20080270453A1 (en) Keyword-based content management
CN109508324B (en) Oversized file management method and system based on object storage component
US11910073B1 (en) Automated preview generation for video entertainment content