マーシャリング【marshalling】marshaling

概要

マーシャリングとは異なる技術基盤で実装されたコンピュータプログラム間で、データの交換や機能の呼び出しができるようデータ形式の変換などを行うこと。プログラミング言語や実行環境、CPUアーキテクチャが異なるプログラム間では、そのままでは連携して動作できないため、双方の間を取り持つ仕組みが必要となる。
マーシャリングのイメージ画像

プログラムはそれぞれ独自のデータ表現やメモリ構造、関数の呼び出し規約を持っている。このため、異なる技術基盤で開発されたプログラム同士は、そのままではデータを交換したり処理を依頼したりできない場合が多い。マーシャリングでは双方の間を仲介するソフトウェアや実行環境が、データ形式やデータ型の変換、呼び出し規約の統一などを行い、異種のプログラム間でも相互運用できるようにする。

整数や文字列のような基本的なデータ型に加え、構造体配列オブジェクトなど複雑なデータ構造を対象に含む場合がある。CPUアーキテクチャが異なる場合はバイトオーダーエンディアン)やデータ型のサイズにも差異が生じるため、それらを吸収する変換も行う。こうした処理は主にRPC遠隔手続き呼び出し)や分散オブジェクト技術などに伴って行われる。

また、オブジェクトデータ構造を保存・転送のために共通の表現形式へ変換する操作をマーシャリングと呼ぶこともある。例えば、メモリ上に展開されたデータ集合をJSONXMLProtocol Buffersなど一定の形式に変換して送信・保存し、受け取った側で元の形式に戻す処理がこれに当たる。逆方向の復元操作は「アンマーシャリング」(unmarshalling)と呼ばれる。

この意味でのマーシャリングとアンマーシャリングは、「シリアライズ」(serialize)および「デシリアライズ」(deserialize)とほぼ同義に扱われることが多い。Go言語Rustなどの言語では標準ライブラリの関数名に「marshal」「unmarshal」という語が採用されており、この用法が定着している。厳密には、単純なシリアライズデータの表記法の変換を指すのに対し、マーシャリングはRPCスタブが関与するような、より複雑な環境間でのデータ変換やメタデータの付与を伴う処理を指す場合もある。ただし、両者の境界は技術分野や文脈によって異なり、明確に区別されないことも多い。

(2026.6.8更新)
 

他の辞典等による「マーシャリング」の解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。