61

この概念はよく使われると聞いたことがありますが、それが何であるかはよくわかりません。

4

10 に答える 10

41

メモリ内のオブジェクトを、ディスクに書き込んだり、ネットワーク経由で送信したりできる形式に変換します。

ウィキペディアの説明

于 2008-09-30T17:52:43.520 に答える
37

私は異議を唱えますが、ウィキペディアはこれについてかなり明確です。

コンピューター サイエンスでは、マーシャリング (シリアル化に似ています) は、オブジェクトのメモリ表現を、保存または転送に適したデータ形式に変換するプロセスです。これは通常、コンピューター プログラムの異なる部分間、またはあるプログラムから別のプログラムにデータを移動する必要がある場合に使用されます。

http://en.wikipedia.org/wiki/Marshalling_(コンピュータ科学)

于 2008-09-30T17:51:38.170 に答える
13

人々はすでにマーシャリングを非常に明確に定義しているので、定義をスキップして例にジャンプします。

リモートプロシージャコールはマーシャリングを使用します。リモート関数を呼び出すときは、引数をある種の標準形式にマーシャリングして、ネットワークを介して転送できるようにする必要があります。

于 2008-09-30T18:59:04.513 に答える
6

マーシャリングとは、オブジェクトのメモリ表現を、格納または送信できるデータ形式に変換するプロセスです。これはシリアル化とも呼ばれます (ただし、特定のコンテキストでは異なる場合があります)。オブジェクトのメモリ表現は、バイナリ、XML、または格納や転送に適した任意の形式として格納でき、非整列化して元のオブジェクトを取り戻すことができます。

使用例として、クライアント コンポーネントとサーバー コンポーネントを備えたオンライン ゲームがあり、プレーヤーの統計情報とワールド座標を含むプレーヤー オブジェクトをクライアントからサーバーに送信する (またはその逆) 場合、単純にマーシャリングできます。クライアントでそれをネットワーク経由で送信し、反対側で非整列化すると、オブジェクトがサーバー自体で作成されたかのようにサーバーに表示されます。ルビーの例を次に示します。

srcplayer = Player.new
# marshal (store it as string)
str = Marshal.dump(srcplayer)
#unmarshal (get it back)
destplayer = Marshal.load(str)
于 2008-09-30T17:57:06.737 に答える
4

私は「データマーシャリング」へのグーグル検索を明確にし、最初のヒットはかなり良いウェブペディアと呼ばれる場所にありました. 要点は、データをネットワークを介した送信などの形式に変換することです。それが解決する問題は、プログラムが使用できる形式でネットワーク経由でデータを実際に送信できないことです。データのエンディアン、文字列などの複雑なデータ型の格納方法など、多くの問題を解決する必要があります。

マーシャリングは、ネットワーク伝送の問題を解決するだけでなく、あるアーキテクチャから別のアーキテクチャへの移行、特に仮想マシンなどを使用する可能性のある異なる言語、およびその他の「翻訳」の問題など、他の問題を解決するためのものです。

于 2008-09-30T17:55:26.977 に答える
4

マーシャリングは、アプリケーションの境界を越えて、または異なるデータ形式間でデータを転送するプロセスです。マーシャリングは非常に一般的です。たとえば、データをディスクやデータベースに書き込むことは技術的にはマーシャリングですが、この用語は「外部」API またはプロセス間通信のデータ変換を表すために使用される傾向があります。

たとえば、.NET では、マネージ コードとアンマネージ コードの間の通信 (特定の win32 API へのアクセスなど) には、マネージ C# オブジェクトと C/C++ スタイル オブジェクト (構造体、ハンドル、出力バッファー、など) 静的Marshal クラスのヘルプが役立つ場合があります。

于 2008-09-30T18:20:28.570 に答える
2

基本的には、オブジェクト (または類似のもの) を別の表現に一般的に変換するための式です。たとえば、ネットワーク経由で送信したり、ディスク (通常は文字列またはバイナリ ストリーム) に保存したりできます。反対のアンマーシャリングは、マーシャリングされたものを読み取る反対方向を表します。オブジェクトまたは以前に存在したメモリ内構造の表現と再作成。

もう 1 つの現在の日常的な例は JSON です

于 2008-09-30T17:57:16.580 に答える
2

これは、データを別のデータ型に変換して別のシステムに転送することを意味します。

たとえば、構造体を XML ドキュメントにマーシャリングして Web サービスに送信したり、ポインタをマーシャリングして別のスレッド アパートメントに送信したりします。

于 2008-09-30T17:52:23.050 に答える
1

プログラミングにおける非常に一般的な意味では、データをある形式で取得し、それを他のサブシステムで受け入れられる形式に変換することを意味します。

于 2008-09-30T17:52:36.577 に答える