Pergunta

Eu ouvi este conceito usado com frequência, mas eu não tenho realmente uma boa noção do que é.

Foi útil?

Solução

A conversão de um objeto na memória em um formato que pode ser gravado no disco, ou enviados através do fio, etc.

da Wikipedia descrição .

Outras dicas

Eu imploro para diferir, a Wikipedia é bastante claro sobre isso.

ciência da computação In, triagem (Semelhantes a serialização) é a processo de transformação da memória representação de um objecto para um dos dados formato adequado para armazenamento ou transmissão. É tipicamente utilizada quando os dados devem ser movidos entre diferentes partes de um programa de computador ou a partir de um programa para outro.

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

As pessoas têm definido triagem muito claramente já, então eu vou pular a definição e salto para um exemplo.

procedimento remoto usa a chamada de triagem. Ao invocar funções remotas você terá que marshall os argumentos para algum tipo de formato padrão para que ele possa ser o transporte em toda a rede.

Eu esclareci uma pesquisa no Google para "marshalling de dados" e o primeiro hit foi em algum lugar chamado Webopedia que é muito bom. A essência é que você transformar os dados para trás e para um formulário para coisas como a transmissão através de uma rede. O problema que resolve é que você realmente não pode transmitir dados através de uma rede de uma forma que é utilizável por um programa. Você tem que resolver uma série de questões, incluindo coisas como endianness de dados, como você armazenar tipos de dados complexos, como cordas, etc.

Marshalling não é apenas para resolver problemas de transmissão rede, mas outros problemas, como ir de uma arquitetura para outro, talvez diferentes línguas especialmente aquelas que podem usar coisas como máquinas virtuais, e outros problemas "tradução".

Marshalling é o processo de transformar a representação da memória de um objeto para um formato de dados que podem ser armazenados ou transmitidos. É também chamado serialização (embora possa ser diferente em certos contextos). A representação de memória do objeto pode ser armazenado como binário ou XML ou qualquer formato adequado para o armazenamento e / ou transmissão de uma forma que permite que você desempacotar-lo e obter o objeto de volta originais.

Para um exemplo de uso, se você tem algum jogo online com componentes de cliente e servidor e você quiser enviar o objeto jogador contendo as estatísticas dos jogadores e coordenadas mundiais a partir do cliente para o servidor (ou o outro em torno de forma), você poderia simplesmente empacotá-lo no cliente, enviá-lo através da rede, e unmarshal-lo na outra extremidade e que iria aparecer para o servidor como se o objeto foi criado no próprio servidor. Aqui está um exemplo de rubi:

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

Marshalling é o processo de transferência de dados através de fronteiras de aplicativos ou entre diferentes formatos de dados. Marshalling é muito comum, por exemplo, a gravação de dados no disco ou em um banco de dados é tecnicamente triagem, no entanto, o termo tende a ser usado para descrever a conversão de dados para APIs "estrangeiros" ou para comunicação entre processos.

Por exemplo, em .NET, comunicando entre código gerenciado e não gerenciado (como acessar certas APIs Win32) provavelmente vai exigir triagem, a fim de converter e para trás entre objetos C # gerenciados e C / C ++ objetos de estilo (estruturas, canetas, buffers de saída, etc.) a ajuda para a estática Marechal classe pode ser útil.

Basicamente, é uma expressão para genericamente transformando um objecto (ou semelhante) para outra representação que (por exemplo) pode ser enviado sobre o fio ou armazenado em disco (tipicamente corda ou corrente binária. O oposto, unmarshalling, descreve o sentido oposto de lendo a representação marshalled e re-criação de um objeto ou o que in-memory-estrutura existia anteriormente.

Outro exemplo cotidiana atual é JSON

Em um sentido muito genérico na programação significa simplesmente tomar os dados em um formato e transformando-o em um formato que seja aceitável por algum outro sub-sistema.

Isso significa transformar os dados em outro tipo de dados para transferir para outro sistema.

por exemplo., Mobilizar um struct em um documento XML para enviar para o webservice, ou mobilizar um ponteiro para enviar a um apartamento segmento diferente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top