Originally, to marshall was to tend horses or to arrange things in preparation for a feast. In heraldry, marshalling is the arrangement of several coats of arms to form a single composition. In the military, marshalling is the gathering and ordering of military forces in preparation for battle.

In computer programming, marshalling is the process of gathering data from one or more application s or non-contiguous sources in computer storage, putting the data pieces into a message buffer , and organizing or converting the data into a format that is prescribed for a particular receiver or programming interface.

Marshalling is usually required when passing the output parameters of a program written in one language as input to a program written in another language.,,sid9_gci212529,00.html

컴퓨터 사이언스에서는 동일한 의미로 사용되는 marshalling 과 serialization 이
자바세계에서는 약간 다른 의미로 사용된다.
자세한 내용은 아래의 RFC 문서를 참조하라.


marshalling 은 serialization 과 다르게 java.rmi.Remote 객체를 구현한 원격 객체를 다룰 수 있다.
marshalling 은 serialization 과 다르게 상태값뿐만 아니라 codebase도 기록한다.

반드시 아래의 문서를 꼭 읽어보라..
궁금했던 여러가지 문제들이 해결될 것이다.
Marshaling and serialization are loosely synonymous in the context of remote procedure call, but semantically different as a matter of intent.

In particular, marshaling is about getting parameters from here to there, while serialization is about copying structured data to or from a primitive form such as a byte stream. In this sense, serialization is one means to perform marshaling, usually implementing pass-by-value semantics.

It is also possible for an object to be marshaled by reference, in which case the data “on the wire” is simply location information for the original object. However, such an object may still be amenable to value serialization.

As @Bill mentions, there may be additional metadata such as code base location or even object implementation code.



하나 이상의 프로그램 또는 연속되어 있지 않은 저장 공간으로부터 데이터를 모은 다음,
데이터들을 메시지 버퍼에 집어넣고,
특정 수신기나 프로그래밍 인터페이스에 맞도록 그 데이터를 조직화하거나,
미리 정해진 다른 형식으로 변환하는 과정을 말한다.

마샬링은 대체로, 어떤 한 언어로 작성된 프로그램의 출력 매개변수들을,
다른 언어로 작성된 프로그램의 입력으로 전달해야 하는 경우에 필요하다.

클라이언트에서 원격 객체를 호출하기 위해서 필요한 모든 정보를 묶어서 클라이언트에게 전송한다.
이러한 정보를 묶는 작업을마샬링(Marshaling)이라고 부른다.
Interacting with WebSphere Process Server via the Web service API and JAXB marshalling

Leave a Reply

Your email address will not be published. Required fields are marked *