シリアル化とは何ですか?

コンピュータープログラミングでは、シリアル化とは、ローカルメモリに保存されたデータ構造を取得し、ネットワーク上に送信したり、ディスクに保存されたりするバイトのストリームに変換して、別のプログラムで使用して使用するプロセスです。ネットワークを介した別のコンピューターで。このメカニズムは、大規模なネットワーク化されたシステム上でデータオブジェクトを配布することもできます。

ほぼすべての最新のコンピューター言語には、シリアル化またはこの機能を追加できるライブラリを利用できるライブラリがあります。オブジェクトがシリアル化されている場合、オブジェクトのすべてのフィールドが平らになります。ストリーム。出力ストリームのタイプは重要ではなく、ファイルまたはネットワークソケットになる可能性があります。

データがシリアル化され、最終的な場所に送信されると、脱派化のプロセスが開始されます。バイトストリームを読み取るプログラムは、すべての情報を復元し、元のオブジェクトの新しいインスタンスに配置し、正確なコピーを作成します。オブジェクトとそのメソッドおよびその他の実装データはそうではありません。これは、データを脱退するプログラムが、元々シリアル化されたクラスのインスタンスを作成できる必要があることを意味します。

データ構造シリアル化はさまざまな目的に使用できます。オブジェクト情報は物理メディアに保存できるため、すべてのオブジェクトの正確な状態をプログラムの実行が停止した時点まで復元できます。リモート手順を実行する別のコンピューターへのメッセージ。シリアル化を使用して、リアルタイムアプリケーションの状態の変更を効率的に比較することもできます。

オブジェクトのシリアル化を使用する前に、それが課す制限のいくつかを理解することが重要です。最も重要なのは、オブジェクトをバイトストリームに変換するプロセスを通じて、プライベートとして宣言されるフィールドが公開されることです。ストリームの送信中に、このデータをキャプチャおよび解読し、セキュリティホールを提示することができます。リスク。

留意するもう1つの要因は、シリアル化が一般に、シリアル化されたオブジェクトとまったく同じオブジェクトでのみ機能することです。新しいフィールドまたはメソッドがオブジェクトに追加されると、オブジェクトの署名が変更されます。e例外では、元の未修飾オブジェクトのインスタンスがそれを復元しようとするまで、データは回復できなくなります。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?