Question

J'ai souvent entendu parler de ce concept, mais je ne comprends pas vraiment ce que c'est.

Était-ce utile?

La solution

Conversion d'un objet en mémoire dans un format pouvant être écrit sur le disque, envoyé sur le fil, etc.

Description de Wikipedia .

Autres conseils

Je vous prie de différer, Wikipedia est assez clair à ce sujet.

  

En informatique, rassemblement   (similaire à la sérialisation) est le   processus de transformation de la mémoire   représentation d'un objet à une donnée   format adapté pour le stockage ou   transmission. Il est généralement utilisé   quand les données doivent être déplacées entre   différentes parties d'un programme informatique   ou d'un programme à un autre.

http://fr.wikipedia.org/wiki/Marshalling_(computer_science)

Les gens ont déjà clairement défini le marshalling, je vais donc sauter la définition et passer à un exemple.

L'appel de procédure à distance utilise le marshalling. Lorsque vous appelez des fonctions distantes, vous devez regrouper les arguments dans un format quelconque afin qu’ils puissent être transportés sur le réseau.

J'ai clarifié une recherche Google sur "Data marshalling". et le premier succès a été à un endroit appelé Webopedia , ce qui est très bien. L'essentiel est que vous transformiez les données dans un sens puis dans un autre, comme la transmission sur un réseau. Le problème que cela résout est que vous ne pouvez pas vraiment transmettre de données sur un réseau sous une forme utilisable par un programme. Vous devez résoudre un certain nombre de problèmes, tels que la finalité des données, la manière dont vous stockez des types de données complexes tels que des chaînes, etc.

Le marshalling ne consiste pas uniquement à résoudre des problèmes de transmission sur le réseau, mais également à passer d’une architecture à l’autre, peut-être de différentes langues, en particulier de celles utilisant des machines telles que des machines virtuelles, ainsi que d’autres "traductions". problèmes.

Marshalling est le processus de transformation de la représentation en mémoire d'un objet en un format de données pouvant être stocké ou transmis. On l'appelle aussi la sérialisation (bien que cela puisse être différent dans certains contextes). La représentation en mémoire de l’objet peut être stockée sous forme binaire ou XML, ou sous n’importe quel format adapté au stockage et / ou à la transmission, de manière à ce qu’il soit possible de le disséminer et de récupérer l’objet original.

Pour un exemple d'utilisation, si vous avez un jeu en ligne avec des composants client et serveur et que vous voulez envoyer l'objet joueur contenant les statistiques du joueur et les coordonnées mondiales du client au serveur (ou inversement), vous pourrait simplement le rassembler chez le client, l’envoyer sur le réseau et le disséminer à l’autre extrémité et il apparaîtrait pour le serveur comme si l’objet avait été créé sur le serveur lui-même. Voici un exemple de rubis:

srcplayer = Player.new
# marshal (store it as string)
str = Marshal.dump(srcplayer)
#unmarshal (get it back)
destplayer = Marshal.load(str)

Le Marshalling est le processus de transfert de données entre les applications ou entre différents formats de données. Le marshage est très courant, par exemple, écrire des données sur un disque ou dans une base de données est techniquement un ordre, mais le terme a tendance à être utilisé pour décrire la conversion de données pour des mots "étrangers". API ou pour la communication interprocessus.

Par exemple, dans .NET, la communication entre le code géré et le code non géré (telle que l’accès à certaines API Win32) nécessitera probablement une mise en ordre afin de procéder à la conversion entre objets C # gérés et objets de style C / C ++ (structs, handles, etc.). (tampons de sortie, etc.) Aide pour la statique Marshal classe pourrait être utile.

En gros, il s’agit d’une expression permettant de transformer de manière générique un objet (ou un objet similaire) en une autre représentation (pouvant par exemple être envoyée sur le fil ou stockée sur un disque (généralement une chaîne ou un flux binaire). L’inverse, unmarshalling, décrit le sens opposé de en lisant la représentation organisée et en recréant un objet ou une structure quelconque en mémoire existante.

Un autre exemple quotidien courant est JSON

Au sens générique de la programmation, cela signifie simplement prendre des données dans un format et les transformer en un format acceptable par un autre sous-système.

Il s’agit de transformer toute donnée en un autre type de données pour le transférer sur un autre système.

Exemple: organiser une structure dans un document XML à envoyer au service Web, ou organiser un pointeur à envoyer à un autre appartement de thread.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top