Skip to main content

Qu'est-ce que la sérialisation?

Dans la programmation informatique, la sérialisation est le processus de prise d'une structure de données stockée dans la mémoire locale et de la transformer en un flux d'octets qui peut être transmis sur un réseau ou stocké sur un disque pour être réassemblé et utilisé par un autre programme. La sérialisation peut également être utilisée pour enregistrer l'état d'un objet afin qu'il puisse être rechargé plus tard par le même programme. Une utilisation plus complexe de cette fonction consiste à invoquer un appel de procédure distant (RPC), exécuter efficacement une procédure sur un autre ordinateur via un réseau. Ce mécanisme permet également la distribution d'objets de données sur un grand système en réseau.

Presque chaque langage informatique moderne a soit une prise en charge native pour la sérialisation ou unBibliothèque disponible pour ajouter cette fonctionnalité. Lorsqu'un objet est sérialisé, tous les champs de l'objet sont aplatis. Ce processus est également connu sous le nom de dégonflage ou de réduction. Les données sont transformées enUne ligne d'octets unidimensionnelle qui peut être écrite à n'importe quel flux de sortie.Le type de flux de sortie n'a pas d'importance et pourrait être un fichier ou une prise de réseau.

Une fois que les données ont été sérialisées et envoyées à son emplacement final, le processus de désérialisation commence. Le programme qui se litLe flux d'octet restaure toutes les informations et le place dans une nouvelle instance de l'objet d'origine, créant une copie exacte. Il est important de comprendre que seules les données que l'objet maintenait est marécatrice;L'objet et ses méthodes et autres données de mise en œuvre ne l'est pas. Cela signifie que le programme qui désérialise les données doit être en mesure de créer une instance de la classe qui a été initialement sérialisée.à diverses fins.provoquera une procédure à distance.Il est important que, grâce à la conversion d'un objet en flux d'octets, les champs déclarés privés seront exposés. Pendant la transmission du flux, ces données peuvent être capturées et décodées, présentant unTrou de sécurité. La plupart des languesLes âges permettent l'externalisation des formats de sérialisation des données, donc un codage propriétaire est possible pour aider à atténuer ce risque.

Un autre facteur à garder à l'esprit est que la sérialisation ne fonctionnera en général qu'avec des objets quisont exactement les mêmes que l'objet sérialisé. Si de nouveaux champs ou méthodes sont ajoutés à un objet, la signature de l'objet changera. Cela signifiera que l'objet stocképrovoquer une exception et les données deviendront irréalisables jusqu'à ce qu'une instance de l'objet non modifié d'origine tente de le restaurer.