Marshaling (från engelska marshal - att arrangera) inom datavetenskap är processen att omvandla information (data, en binär representation av ett objekt) lagrad i RAM till ett format som är lämpligt för lagring eller överföring. Processen liknar serialisering (se nedan för skillnader ). Det används vanligtvis när information (data, objekt) behöver överföras mellan olika delar av ett program eller från ett program till ett annat.
Den motsatta processen kallas unmarshaling (liknande deserialisering).
Marshaling används när data överförs mellan processer och/eller trådar , till exempel:
I Python Standard Library liknar termen "marshaling" i betydelsen termen "serialisering" [1] , men termerna är inte synonyma i RFC 2713 ("Schema for Representing Java(tm) Objects in an LDAP Directory"; oktober 1999), som Java- :
Att "marskalera" ett objekt betyder att registrera dess tillstånd och kodbas(er) [2] (URI:n som pekar på platsen för objektets klasskod som ska laddas) på ett sådant sätt att den omvända operationen ger en kopia av originalet, förmodligen genom att automatiskt ladda klassdefinitionsobjektet. Du kan samla alla objekt som är serialiserbara eller fjärranslutna (...). Marshaling liknar serialisering, förutom att marshaling anger platsen för den körbara koden. Marshaling skiljer sig från serialisering genom att den appliceras på ett speciellt sätt på avlägsna objekt, för vilka en kopia av själva objektet inte skapas, utan endast en fjärradress anges där arbete ska utföras med det.
Originaltext (engelska)[ visaDölj] Att "marshalera" ett objekt betyder att registrera dess tillstånd och kodbas(er) på ett sådant sätt att när det rangordnade objektet är "unmarshalled", erhålls en kopia av det ursprungliga objektet, möjligen genom att automatiskt ladda klassdefinitionerna för objektet. Du kan samla alla objekt som är serialiserbara eller fjärranslutna (...). Marshalling är som serialisering, förutom att rangering också registrerar kodbaser. Marshalling skiljer sig från serialisering genom att rangering behandlar avlägsna föremål speciellt. (…) rangering registrerar fjärrobjektets "stub", istället för själva fjärrobjektet. — RFC 2713
Att "serialisera" ett objekt innebär att omvandla dess tillstånd till en ström av bytes på ett sådant sätt att nämnda ström kan omvandlas tillbaka till en kopia av det ursprungliga objektet.
Originaltext (engelska)[ visaDölj] Att "serialisera" ett objekt innebär att konvertera dess tillstånd till en byteström på ett sådant sätt att byteströmmen kan konverteras tillbaka till en kopia av objektet. — RFC 2713När den tillämpas på datornätverk hänvisar marshaling till processen att konvertera data till ett format där data kan överföras över nätverket och kan passera genom nätverksbegränsningar. Data omvandlas till en ström av bytes, packas, delas upp i delar, överförs över nätverket med hjälp av ett nätverksprotokoll . Den mottagna datan konverteras tillbaka till sitt ursprungliga format.