Từ tài liệu boost.serialization : Ở đây, chúng tôi sử dụng thuật ngữ "tuần tự hóa" để có nghĩa là giải cấu trúc đảo ngược của một tập hợp các cấu trúc dữ liệu C ++ tùy ý thành một chuỗi byte. Một hệ thống như vậy có thể được sử dụng để khôi phục cấu trúc tương đương trong bối cảnh chương trình khác. Tùy thuộc vào ngữ cảnh, điều này có thể được sử dụng kiên trì thực hiện đối tượng, truyền tham số từ xa hoặc cơ sở khác. Trong hệ thống này, chúng tôi sử dụng thuật ngữ "kho lưu trữ" để chỉ một kết xuất cụ thể của luồng byte này. Đây có thể là một tệp dữ liệu nhị phân, dữ liệu văn bản, XML hoặc một số khác được tạo bởi người dùng của thư viện này.
Nói cách khác, serialization là bất kỳ quá trình biến đổi đó đối tượng trong bộ nhớ vào một số loại bytestream, và deserialization làm điều ngược lại, tham gia một bytestream và biến nó trở thành các đối tượng trong bộ nhớ.
Thuật ngữ "tuần tự hóa" không ngụ ý bất cứ điều gì về định dạng của bytestream. Nó có thể là một định dạng nhị phân được đóng gói hiệu quả hoặc mô tả XML hoặc YAML lỏng lẻo. Nó thậm chí có thể là mã nguồn trong chính ngôn ngữ gốc hoặc trong ngôn ngữ lập trình khác, chẳng hạn như JSON , là một tập hợp con của JavaScript. Định dạng chính xác của luồng được tuần tự hóa nên được chọn dựa trên cách bạn định sử dụng nó.
Tuần tự hóa là một tính năng tích hợp của nhiều ngôn ngữ và môi trường - ví dụ Java và Python . Trong các ngôn ngữ cấp thấp hơn như C và C ++, người ta phải sử dụng (hoặc viết) các thư viện tuần tự hóa , vì cơ chế được cung cấp bởi ngôn ngữ thường không đủ tốt - nó không thể theo dõi hoặc tuần tự hóa các con trỏ và tham chiếu, và phải chịu các vấn đề về thời gian thí dụ.
Wikipedia có một bài viết khá về serialization.
Tuần tự hóa được sử dụng rộng rãi trong các trò chơi (và tất cả phần mềm) cho nhiều mục đích:
- Tải danh sách tất cả các phép thuật trong trò chơi từ các tệp tài nguyên.
- Lưu và tải trò chơi.
- Ghi lại trạng thái của sự vật (ví dụ: vị trí và hàng tồn kho của người chơi) vào cơ sở dữ liệu SQL hoặc đối tượng.
- Gọi các cuộc gọi chức năng từ xa qua mạng hoặc liên kết IPC khác.