문제

나는이 개념이 자주 사용되는 것을 들었지만 그것이 무엇인지 잘 이해하지 못한다.

도움이 되었습니까?

해결책

메모리의 객체를 디스크에 기록하거나 와이어 위로 전송 할 수있는 형식으로 변환합니다.

Wikipedia의 설명.

다른 팁

나는 차이를 간청합니다. 위키 백과는 이것에 대해 매우 분명합니다.

컴퓨터 과학에서 마샬링 (직렬화와 유사)은 객체의 메모리 표현을 저장 또는 전송에 적합한 데이터 형식으로 변환하는 프로세스입니다. 일반적으로 데이터가 컴퓨터 프로그램의 다른 부분 간 또는 한 프로그램에서 다른 프로그램으로 이동해야 할 때 사용됩니다.

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

사람들은 이미 마샬링을 이미 명확하게 정의 했으므로 정의를 건너 뛰고 예제로 점프 할 것입니다.

원격 절차 통화는 마샬링을 사용합니다. 원격 기능을 호출 할 때는 네트워크를 가로 질러 전송할 수 있도록 인수를 일종의 표준 형식으로 마샬링해야합니다.

"Data Marshalling"에 대한 Google 검색을 명확히했는데 첫 번째 히트는 WebOpedia라는 곳에서 꽤 좋습니다. 요점은 네트워크를 통한 전송과 같은 것들을 위해 데이터를 앞뒤로 변환한다는 것입니다. 그것이 해결하는 문제는 프로그램에서 사용할 수있는 양식으로 네트워크를 통해 데이터를 전송할 수 없다는 것입니다. 데이터의 엔지니어와 같은 것, 문자열과 같은 복잡한 데이터 유형을 저장하는 방법 등 여러 가지 문제를 해결해야합니다.

마샬링은 네트워크 전송 문제를 해결하는 것뿐만 아니라 한 아키텍처에서 다른 아키텍처에서 다른 언어로가는 것과 같은 다른 문제, 특히 가상 머신과 같은 것들 및 기타 "번역"문제를 사용할 수있는 언어와 같은 다른 문제입니다.

마샬링 객체의 메모리 표현을 저장 또는 전송할 수있는 데이터 형식으로 변환하는 프로세스입니다. 또한 호출됩니다 직렬화 (특정 상황에서는 다를 수 있지만). 물체의 메모리 표현은 바이너리 또는 XML로 저장하거나 저장 및/또는 전송에 적합한 형식으로 저장 될 수 있으며, 원래 객체를 다시 얻지 못하고 원래 객체를 다시 얻을 수 있습니다.

사용법의 예를 들어, 클라이언트 및 서버 구성 요소와 함께 온라인 게임이 있고 플레이어 통계 및 월드 코디네이트가 포함 된 플레이어 객체를 클라이언트에서 서버 (또는 주변)로 보내려면 간단히 마샬링 할 수 있습니다. 클라이언트에서 네트워크를 통해 보내고 다른 쪽 끝에서 unmarshal을 보내지 않으면 서버가 서버 자체에서 생성 된 것처럼 서버에 나타납니다. 루비 예는 다음과 같습니다.

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

마샬링은 응용 프로그램 경계 또는 다른 데이터 형식간에 데이터를 전송하는 프로세스입니다. 마샬링은 예를 들어 디스크 또는 데이터베이스에 데이터를 쓰는 것과 같이 매우 일반적이지만 기술적으로 마샬링되지만이 용어는 "외래"API 또는 간공적인 통신에 대한 데이터 변환을 설명하는 데 사용되는 경향이 있습니다.

예를 들어, .NET에서 관리되는 C# 객체와 C/C ++ 스타일 객체 (스트러크, 핸들, 출력 버퍼, 출력 버퍼, C/C ++ 스타일 객체 사이를 앞뒤로 변환하기 위해서는 관리되지 않은 코드와 관리되지 않는 코드 사이의 통신이 필요할 수 있습니다. 등) 정적에 대한 도움 마샬 클래스 도움이 될 수 있습니다.

기본적으로 객체 (또는 이와 유사한)를 일반적인 다른 표현으로 전환하거나 와이어 위로 전송하거나 디스크에 저장할 수있는 다른 표현으로 변환하는 표현입니다 (일반적으로 문자열 또는 이진 스트림. 반대편, 비 안정된 것은 마샬을 읽는 반대 방향을 설명합니다. 표현 및 개체 또는 메모리 내 구조가 이전에 존재했던 모든 것의 표현 및 재창조.

또 다른 현재 일상적인 예는 JSON입니다

프로그래밍의 매우 일반적인 의미에서 단순히 데이터를 한 형식으로 가져 와서 다른 하위 시스템이 허용 할 수있는 형식으로 변환하는 것을 의미합니다.

이는 다른 데이터를 다른 데이터 유형으로 전환하여 다른 시스템으로 전송하는 것을 의미합니다.

예를 들어, 구조물을 XML 문서로 마샬링하여 웹 서비스로 보내거나 다른 스레드 아파트로 보내기 위해 포인터를 마샬링합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top