add SDi/IOT_Technologies/serialisation

This commit is contained in:
Klagarge committed 2024-01-31 15:23:12 +01:00
1 parent 5da923e68b
commit 295a0844be
1 file changed
+84 -6
+84 -6
View File
@@ -2,7 +2,7 @@
IOT Technologies
</h1></header>
## Serialisattion
# Serialisattion
Sérialiser est nécessaire pour deux principales raisons :
1. **Communication entre systèmes :** Lorsque des objets résident en mémoire vive (RAM) et doivent être échangés avec
@@ -13,7 +13,7 @@ transmises efficacement.
les stockant dans une mémoire persistante (comme le stockage de masse). La sérialisation permet de traduire ces objets
en un format pouvant être stocké et récupéré ultérieurement.
## Basé texte ou binaire
# Basé texte ou binaire
- **Encodage des données :**
- **Texte :** Les données sont encodées sous forme de flux de caractères imprimables (comme dans XML ou JSON).
- **Binaire :** Les données sont encodées sous forme de flux d'octets, sans nécessiter de représenter les caractères imprimables.
@@ -22,12 +22,12 @@ en un format pouvant être stocké et récupéré ultérieurement.
- **Texte :** Lisible par les humains, facilite le débogage. Cependant, peut être moins compact, nécessitant plus de bande passante.
- **Binaire :** Plus compact, nécessite moins de bande passante. Cependant, illisible pour les humains, compliquant le débogage.
### Sérialisation basée texte
## Sérialisation basée texte
La sérialisation basée texte est généralement utilisée pour les données structurées, comme les documents XML ou JSON.
Ces formats sont lisibles par les humains, ce qui facilite le débogage. Cependant, ils sont moins compacts que les
formats binaires, nécessitant plus de bande passante.
#### XML (eXtensible Markup Language)
### XML (eXtensible Markup Language)
XML est un langage de balisage qui définit un ensemble de règles pour l'encodage de documents dans un format qui est
à la fois humain et machine lisible. Il est largement utilisé pour représenter des données structurées et pour échanger
des informations sur Internet. XML est un format de données ouvert et indépendant du logiciel et du matériel.
@@ -78,7 +78,7 @@ La validité d'un document XML peut être vérifiée en le comparant à un sché
```
<details>
<summary>Exemple</summary>
<summary><b><u>Exemple</u></b></summary>
```xml
<?xml version="1.0" encoding="ASCII"?>
@@ -111,13 +111,91 @@ En résumé, XML offre une syntaxe flexible pour décrire des données structur
interprétable par les machines, facilitant l'échange d'informations entre systèmes hétérogènes.
#### JSON (JavaScript Object Notation)
### JSON (JavaScript Object Notation)
JSON est un format de données léger et facile à lire et à écrire. Il est basé sur un sous-ensemble du langage de
programmation JavaScript, Standard ECMA-262 3ème édition - Décembre 1999. JSON est un format de données texte qui
est complètement indépendant du langage mais utilise des conventions familières aux programmeurs de la famille de
langages C, y compris C, C++, C#, Java, JavaScript, Perl, Python et bien d'autres. Ces propriétés font de JSON un
langage d'échange de données idéal.
1. **Objets et Tableaux :**
JSON utilise des objets (encadrés par `{}`) et des tableaux (encadrés par `[]`) pour organiser les données.
Les objets contiennent des paires clé-valeur, tandis que les tableaux sont des listes ordonnées de valeurs.
2. **Paires Clé-Valeur :**
Les données sont représentées par des paires clé-valeur à l'intérieur des objets. Les clés sont des chaînes de caractères,
et les valeurs peuvent être des nombres, des chaînes, des booléens, des objets, des tableaux ou null.
3. **Imbrication :**
Les objets et les tableaux peuvent être imbriqués pour créer une structure hiérarchique et représenter des données complexes.
4. **Caractères d'Échappement :**
Certains caractères spéciaux, comme les guillemets doubles (`"`) et les barres obliques inverses (`\`), peuvent
nécessiter un échappement dans les chaînes de caractères.
5. **Lecture et Écriture :**
Les langages de programmation fournissent des fonctions pour convertir des objets ou des chaînes JSON en structures de
données utilisables et vice versa.
6. **Interopérabilité :**
JSON est largement utilisé pour l'échange de données entre serveurs et clients, car il est facilement compréhensible
et traitable dans de nombreux langages de programmation.
<details>
<summary><b><u>Exemple</u></b></summary>
```json
{
"disco": [
{
"cd": {
"style": "Classic",
"title": "For ever",
"artist": "Pavarotti",
"songs": [
{
"song": {
"appreciation": "preferred",
"title": "No, la morte",
"length": "3:50"
}
},
{
"song": {
"title": "Che voi m'amate",
"length": "2:55"
}
}
],
"price": 30
}
}
]
}
```
![xml_example.png](xml_example.png)
</details>
***Syntaxe***
![json_syntaxe.png](json_syntaxe.png)
En résumé, JSON offre une syntaxe simple et lisible pour représenter des données structurées, favorisant
l'interopérabilité entre différentes plates-formes et langages.
## Sérialisation Binaire
Les Protocol Buffers, ou Protobuf, sont une méthode de sérialisation binaire développée par Google. Voici une explication simple :
1. **Sérialisation Binaire :**
Protobuf permet de convertir des données structurées, comme des objets, en une séquence binaire. Cela facilite la
transmission ou le stockage de ces données.
2. **Schéma :**
Les données sérialisées sont définies par un schéma, qui agit comme un contrat décrivant la structure des données.
Ce schéma est écrit dans un langage dédié.
3. **Compacité et Efficacité :**
Les données sérialisées avec Protobuf sont plus compactes que d'autres formats textuels comme JSON. Cela les rend plus