Orkas Orkas
Pagina iniziale Blog Architettura
Architettura

La sincronizzazione cloud in pratica: come Orkas sincronizza i dati tra dispositivi

Come Orkas sincronizza i dati degli utenti tra dispositivi con trasferimento cifrato, archiviazione dei contenuti, commit gestiti dal server, blocchi dell’account, regole di sincronizzazione, gestione dei conflitti assistita dal modello, conferma dell’eliminazione e un cestino.

La sincronizzazione cloud dei dati degli utenti non si limita a caricarli e scaricarli. Deve proteggere i contenuti privati durante il trasferimento, contenere i costi di archiviazione, serializzare le scritture provenienti da più dispositivi, comprendere strutture di dati diverse, chiedere conferma prima delle eliminazioni pericolose e conservare una possibilità di ripristino quando una decisione si rivela sbagliata.

Orkas considera la sincronizzazione cloud un confine di responsabilità del prodotto, non un'utilità in background. Conversazioni, agenti, abilità, stato delle attività, file di conoscenza e impostazioni devono poter passare da un dispositivo all'altro mantenendo una chiara catena di responsabilità: il dispositivo prepara i contenuti, l'archiviazione a oggetti conserva i byte e il server gestisce l'indice autorevole.

Il quadro descritto di seguito è quello che usiamo per ragionare sul sistema: flusso dei contenuti crittografati, archiviazione basata sull'identità dei contenuti, blocco della sincronizzazione a livello di account, commit gestito dal server, regole di sincronizzazione deterministiche, gestione dei conflitti assistita dal modello, conferma delle eliminazioni, cestino e marcatori di ripristino.

La sincronizzazione cloud a colpo d'occhio
Dati del dispositivoEsamina i dati di proprietà dell'utente e li confronta con l'ultimo stato di riferimento consolidato.
Livello di sicurezzaCrittografa, calcola gli hash, verifica e firma l'intento di ogni ciclo di sincronizzazione.
Archiviazione cloudConserva gli oggetti contenenti i dati e un indice compatto di ciò che dovrebbe esistere.
Livello di ripristinoConserva i marcatori di eliminazione, gli archivi dei conflitti, le richieste di conferma delle eliminazioni e le voci del cestino.
Il sistema è costruito come un insieme di controlli attorno al flusso dei dati, non come una copia speculare indiscriminata dei file.
In breve Priorità ai dati locali, disponibili anche sull'altro computer La sincronizzazione si attiva solo su tua scelta; per impostazione predefinita, l'area di lavoro rimane sul tuo computer. Maggiori dettagli su questo confine nella pagina dedicata all'agente IA che dà priorità ai dati locali.
Scarica Orkas — gratis

Il contratto della sincronizzazione

Ogni ciclo di sincronizzazione risponde a quattro domande sul prodotto: quali contenuti possono essere trasferiti, come vengono protetti, chi è autorizzato a pubblicare un nuovo indice cloud e come può l'utente recuperare i dati se la sincronizzazione ha preso la decisione sbagliata?

Il contratto di ogni ciclo
AmbitoVengono considerati solo i dati dell'utente.
CrittografiaI dati da trasferire vengono protetti prima di lasciare il dispositivo.
ArchiviazioneGli oggetti sono indirizzati in base all'identità del contenuto.
BloccoPer ogni account, un solo ciclo di sincronizzazione alla volta pubblica gli aggiornamenti.
CommitIl server convalida e scrive l'indice successivo.
RipristinoEliminazioni e conflitti mantengono una possibilità di recupero.
La sincronizzazione è affidabile perché ogni fase ha una responsabilità ben delimitata.

Il percorso dei contenuti crittografati

I dati dell'utente vengono preparati sul dispositivo prima di raggiungere l'archiviazione. Il motore di sincronizzazione normalizza l'insieme dei dati candidati, calcola l'identità dei contenuti, crittografa i dati da trasferire, li carica utilizzando credenziali di breve durata e verifica i byte scaricati prima di riscriverli sul dispositivo.

Dai dati dell'utente a un oggetto cloud protetto
SelezioneScegli i dati creati dall'utente.
HashCalcola l'identità del contenuto e i metadati relativi alle dimensioni.
CrittografiaProteggi i dati prima del caricamento.
CaricamentoInvia i byte dell'oggetto con credenziali temporanee.
VerificaControlla l'hash e i metadati attesi durante il download.
ApplicazioneScrivi sul dispositivo solo contenuti verificati.
L'archiviazione a oggetti vede dati crittografati; il motore di sincronizzazione verifica l'identità dei contenuti prima di fidarsi di un download.

Archiviazione e indice

Orkas separa i byte archiviati dall'indice cloud. Gli oggetti contenenti i dati conservano i dati crittografati. L'indice registra quali elementi logici dovrebbero esistere, l'identità dei loro contenuti, i contatori di versione, le dimensioni archiviate, la revisione cloud e lo stato dei marcatori di eliminazione. Il dispositivo conserva anche uno stato di riferimento dell'ultimo ciclo riuscito, così da poter distinguere lo stato precedente dalle nuove modifiche.

Tre registri, tre compiti
Stato di riferimento del dispositivoLa memoria del dispositivo dell'ultima sincronizzazione completata.
Indice cloudL'elenco gestito dal server degli elementi correnti, delle versioni e dei marcatori di eliminazione.
Oggetti contenenti i datiByte crittografati indirizzati in base all'identità del contenuto.
Perché separarli? I dati voluminosi possono risiedere nell'archiviazione a oggetti, mentre il piccolo indice rimane l'unica fonte per le decisioni di sincronizzazione.
L'indice indica ai dispositivi ciò che dovrebbe esistere; gli oggetti contenenti i dati forniscono i byte.

Un ciclo di sincronizzazione

Un ciclo inizia con operazioni poco costose e diventa rigoroso solo quando c'è lavoro effettivo da svolgere. Orkas verifica prima se è cambiato qualcosa, poi acquisisce il blocco di sincronizzazione dell'account, ricalcola le modifiche mantenendo quel blocco, trasferisce i contenuti, chiede al server di eseguire il commit delle operazioni sull'indice e infine aggiorna lo stato di riferimento del dispositivo.

Le fasi di un ciclo
Controlli preliminariEsamina i dati e recupera i metadati più recenti dell'indice cloud.
Blocco di sincronizzazioneRiserva a questo dispositivo il canale di sincronizzazione dell'account.
Nuovo controlloRicalcola le modifiche dopo aver acquisito il blocco.
TrasferimentoCarica, scarica, unisci o prepara le eliminazioni.
CommitIl server convalida la revisione cloud, la quota e lo schema.
Stato di riferimentoRegistra il nuovo stato consolidato al completamento riuscito.
Il secondo confronto è importante: la situazione rilevata dai controlli preliminari potrebbe essere già obsoleta quando inizia il lavoro.

Blocco di sincronizzazione e commit

Il blocco di sincronizzazione e il controllo del commit risolvono problemi diversi. Il blocco di sincronizzazione riduce il lavoro concorrente sprecato tra i dispositivi. Il blocco lato server serializza le scritture dell'indice. Il controllo della revisione cloud attesa impedisce che una lettura precedente diventi il nuovo stato autorevole. I controlli della quota e dello schema vengono eseguiti nello stesso percorso di commit gestito dal server.

Il punto di controllo del commit
Il dispositivo chiedeIl canale di sincronizzazione dell'account è disponibile?
Blocco concessoIl ciclo ottiene una breve finestra temporale per i segnali periodici di attività.
Oggetti prontiI byte dei contenuti sono già stati caricati o recuperati.
Blocco del serverLa scrittura dell'indice viene serializzata per account.
Controllo della versioneRifiuta se la revisione cloud è cambiata.
PubblicazioneScrivi l'indice successivo e aggiorna l'utilizzo.
I dispositivi trasferiscono i byte; il server pubblica lo stato autorevole.

Le regole prima dei conflitti

La maggior parte delle decisioni di sincronizzazione non riguarda conflitti. Il dispositivo confronta lo stato di riferimento, i dati attuali del dispositivo e l'indice cloud. Se è cambiato solo il cloud, scarica. Se è cambiato solo il dispositivo, carica. Se sono cambiati entrambi, procede in base al tipo di contenuto. Se qualcosa è scomparso, avvia il percorso di eliminazione sicura invece di rimuovere immediatamente i dati.

Motore decisionale
Stato di riferimentoCiò che questo dispositivo ha confermato l'ultima volta.
Dati attuali del dispositivoCiò che questo dispositivo contiene attualmente.
Cloud attualeCiò che dichiara l'indice del server.
AzioneScarica, carica, unisci, contrassegna come eliminato, conferma o ripristina.
Lo stato di riferimento rende possibile una regola semplice: i lati che non sono cambiati non richiedono un'unione.

Gestione dei conflitti

Quando entrambi i lati sono effettivamente cambiati, Orkas non riduce tutto alla regola «vince l'ultima scrittura». I registri aggiornati per aggiunta possono essere uniti integrando i record mancanti. Gli elenchi possono essere uniti in base all'identità stabile dei record. I dati JSON strutturati possono usare contatori di versione e marcature temporali. Per i file Markdown e binari l'approccio è prudente: se il sistema non può dimostrare che l'unione non comporta perdite, conserva una copia completa della versione scartata.

Per i conflitti ambigui relativi a testo o contenuti strutturati, il prodotto può raccogliere le versioni pertinenti per una gestione assistita dal modello. Il modello può spiegare il conflitto, preparare una bozza di versione unificata o aiutare l'utente a scegliere. Non è l'unica protezione: la convalida deterministica, gli originali archiviati e le possibilità di ripristino visibili all'utente rimangono parte del percorso.

Flusso di risoluzione dei conflitti
ClassificazioneRileva la struttura del file e i metadati di versione disponibili.
Unione basata su regoleUsa un'unione deterministica quando è sicura.
Assistenza del modelloSpiega i conflitti testuali ambigui o prepara una bozza per risolverli.
ArchiviazioneConserva gli originali quando la sicurezza è incerta.
ConvalidaControlla lo schema, l'identità e la struttura attesa.
PubblicazioneEsegui il commit solo del risultato accettato.
L'assistenza del modello migliora la qualità della risoluzione, mentre i controlli deterministici la mantengono entro limiti definiti.

Conferma delle eliminazioni

Le eliminazioni vengono trattate come transizioni di stato. Un'eliminazione remota diventa un marcatore di eliminazione. Un'eliminazione sul dispositivo diventa un'operazione candidata. Orkas controlla le scritture recenti, rileva le ondate di eliminazioni estese e sospende il ciclo per chiedere conferma quando la quantità di dati dell'utente che sta scomparendo appare rischiosa.

Percorso di conferma delle eliminazioni
Eliminazione rilevataUn elemento di dati manca o è contrassegnato come eliminato.
Scrittura recenteControlla se è stato ricreato o modificato.
Controllo delle ondateRileva gruppi di eliminazioni insolitamente numerosi.
RichiestaChiedi conferma quando il rischio è elevato.
ConfermaEsegui il commit dei marcatori di eliminazione dopo l'approvazione.
AnnullamentoScarica nuovamente le copie dal cloud quando l'eliminazione è stata accidentale.
Un'eliminazione rischiosa può essere interrotta; l'utente può scegliere prima che diventi uno stato persistente nel cloud.

Cestino e ripristino

Prima che un'eliminazione valida rimuova una copia dal dispositivo, Orkas la sposta nel cestino della sincronizzazione. Le versioni scartate nei conflitti vengono archiviate per consentirne l'esame. I caricamenti in sospeso vengono conservati anche se il commit fallisce, così il ciclo successivo può riutilizzarne i byte. Se un utente cancella deliberatamente i dati cloud, gli altri dispositivi rilevano un marcatore di pulizia e smettono di ricaricare contenuti obsoleti.

Possibilità di ripristino
CestinoLe copie eliminate dal dispositivo rimangono recuperabili.
Archivio dei conflittiLe versioni scartate vengono conservate quando l'unione è incerta.
Caricamenti in sospesoGli oggetti caricati correttamente possono essere riutilizzati dopo un commit non riuscito.
Marcatore di puliziaGli account i cui dati cloud sono stati cancellati non ripristinano silenziosamente i vecchi dati.
Il ripristino della sincronizzazione non è una singola funzionalità: è un insieme di piccole vie d'uscita collocate nei punti in cui possono verificarsi errori.

I vantaggi di questo approccio

Il risultato è un sistema di sincronizzazione con confini chiari. I dispositivi preparano e verificano i contenuti. L'archiviazione a oggetti conserva i byte crittografati. Il server pubblica l'indice. Il blocco di sincronizzazione dell'account e il blocco del server mantengono ordinati i cicli. Le regole gestiscono i casi comuni. L'assistenza del modello aiuta con i conflitti ambigui. La conferma delle eliminazioni e il cestino proteggono gli utenti dagli errori più costosi.

È questo lo standard di cui Orkas ha bisogno per la sincronizzazione cloud: non magia, non una copia speculare indiscriminata, ma un meccanismo attento che permette ai dati dell'utente di passare da un dispositivo all'altro mantenendo un'esperienza coerente.