5

シリアライゼーションとは何かは知っていますが、私にとって、これはその意味を説明していない 1 つの用語です。

シリアライゼーションシリアライゼーションと呼ぶのはなぜですか? オブジェクトを生データに変換すること (さらに言えば、インフレート/デシリアライズすること) は、「シリアル」という用語に関連するものに向いていますか? 誰が、なぜこの用語を作ったのですか?

4

6 に答える 6

10

これはおそらく、データを 1 と 0 のシリアル ストリームに変換する必要があるネットワークと通信によるものです。

ウィキペディアは次のように述べています。

コンピューター サイエンスでは、データの保存と送信の文脈で、シリアル化とは、オブジェクトを一連のビットに変換して、ストレージ メディア (ファイルやメモリ バッファーなど) に保持したり、さまざまな場所に送信したりできるようにするプロセスです。ネットワーク接続リンク。結果の一連のビットがシリアライゼーション形式に従って再読み取りされると、元のオブジェクトの意味的に同一のクローンを作成するために使用できます。参照を多用するオブジェクトなど、多くの複雑なオブジェクトの場合、このプロセスは簡単ではありません。


また昨夜、私が最初に取り組んだネットワーク プロジェクト (1983 年) では、メッセージを C の構造体からネットワーク トランスポートに書き出される一連のバイトに変換するコードの一部に「シリアライザー」という用語を使用していたことを思い出しました。メッセージを論理的に表す構造体を取得し、次のバイトに続く各バイトをワイヤに出力する必要がありました。

このコードの作成者は BB&N に属しているため、履歴を探す方向がわかります。

于 2009-07-13T03:58:10.960 に答える
4

シリアル化は、データ構造とポインターを使用してメモリ内のデータを一連のバイトに変換し、ハードディスクなどの順次メディアに保存するか、シリアル接続などを介して転送するように設計されています。

于 2009-07-13T03:59:34.483 に答える
4

John Saunders は正しい方向に進んでいると思います。データが「ストリーム」としてディスクまたはネットワーク経由で送信されるという事実が、この用語の由来であることはほぼ間違いありません。

ただし、これを別の方法で考えると、次のようになります。プログラムの状態はメモリ全体に広がり、ポインター/リンクはあらゆる場所を指しています。配列、リスト、ツリー、コール スタック、割り当てられたメモリのヒープなどがありますが、順不同です。

状態を保存したい場合、プログラム内の多くの情報を使用できません。たとえば、ポインター値またはスタック オフセット (直接使用されるか、言語ランタイムによって内部的に使用されるかなど) は、プログラムが次に実行されるときに有効ではない可能性があります。これは、ヒープが使用されて、わずかに異なる一連のメモリ ブロックが割り当てられるためです。 . これらのポインター値を保存しても意味がありません。

状態を保存するには、保存される情報が後で関連する部分だけになるように、「業務を整理」する必要があります。

于 2009-07-13T04:44:44.220 に答える
3

シリアルとは、次から次へとという意味です。したがって、1 つの長いバイト ストリームになります。

于 2009-07-13T03:59:01.923 に答える
1

基本的には、注文された一連のアイテムを意味します。シリアル化という言葉は、文学でも使用されることがあります。

于 2009-07-13T04:02:52.573 に答える