Penso che il concetto sia simile a quello che viene chiesto, perché il cibo solido deve essere masticato prima di essere deglutito per la digestione. Ma ovviamente, la differenza è che il bene digerito non può essere in alcun modo deserializzato.
Ricordo di aver usato Sun RPC (attualmente chiamato ONC RPC) che esegue la codifica XDR perché le piattaforme/sistemi informatici rappresentano i loro dati nelle rispettive forme. Ad esempio, big endian vs small endian.
Ma la JVM, indipendentemente dalla macchina, è big-endian, quindi l'endianità non dovrebbe essere un motivo.
La struttura dei dati nella memoria del computer ha puntatori e tutti gli elementi di un oggetto potrebbero non essere collocati su un blocco di memoria contiguo. Tuttavia, quando si passa un oggetto tramite i/o ad un altro sistema, non è possibile passare la distribuzione della memoria di quell'oggetto.
Un oggetto deve essere serializzato prima di essere archiviato in un database perché non si desidera e non si desidera riprodurre la disposizione di modifica dinamica della memoria di sistema.
Il nostro livello di rappresentazione dei dati sulle reti sono tutti basati su flusso di bit. Pertanto, quando si desidera trasferire dati da un sistema a un altro, è necessario convertire i dati dimensionali rappresentati in memoria in uno che può essere trasmesso attraverso le reti byte per byte. In realtà, a poco a poco, e che spesso passa attraverso la compressione e la crittografia di sicurezza. Le routine di compressione e crittografia sono oo-struttura-cieche e si presumono flussi di bit. Gli switch di rete sono oo-struttura-ciechi. La trasmissione di rete non vede nemmeno i bit. I bit sono codificati in un segnale di trasmissione che è spesso sinusoide analogica e quindi modulato. Questi processi non funzionano su schemi multidimensionali/gerarchici di dati strutturati oo.
Immagino che sia possibile eseguire l'offuscamento e la crittografia a livello di oggetto, tuttavia è ancora necessario consentire al sistema di convertirli in flussi di bit, convertendoli prima in flussi di caratteri.
Il marshalling è quando il pastore ha un gregge di pecore e le fa attraversare un ponte di pecore singole su acque agitate.Pertanto, un marshaller deve marcare i nostri oggetti in schemi seriali con riferimenti scritti, in modo che quando lo stormo di informazioni pecore emerga dall'altra parte del ponte, siamo in grado di riassemblarli nuovamente nei suoi schemi gerarchici dal coniugato-demarshaller . Nel nostro caso, la nostra pecora non è guidata da un ponte, ma da avvolgimenti stretti e precari e frane in cui le apparecchiature di trasmissione di rete ad ogni turno memorizzano una copia delle pecore marshalled per garantire che siano in grado di inviare nuovamente la copia in caso le pecore sono cadute in un burrone.
Grazie. Ha senso. Quindi, qualsiasi oggetto con ambito di sessione che non implementava Serializable non manteneva lo stesso stato o funzionava su server con bilanciamento del carico che non condividevano lo stato? – sma
Un oggetto non riuscirà a serializzare a prescindere da qualsiasi stato manterrà, a patto che non implementa Serializable, quindi se capisco correttamente la tua domanda, la risposta è che tutti gli oggetti inseriti nella sessione che non implementavano Serializable erano in fatto non serializzato dal contenitore, quindi non hai visto un problema. – Yishai