Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Serialization và deserialization

    SERIALIZATION VÀ DESERIALIZATION

    Hai thuật ngữ này ban đầu nghe có vẻ không quen thuộc, nhưng thật ra bạn đang làm hai hành động này trong đời sống hàng ngày. Lấy ví dụ về một cuộc gọi điện thoại giữa hai người. Khi bạn nói chuyện với một người khác trên đường dây điện thoại, những lời nói của bạn phải được chuyển thành một chuỗi bit được gửi trên một phương tiện truyền hay trên tín hiệu không dây. Giọng nói của bạn phải chuyển sang một định dạng có thể hiểu được bởi các thiết bị truyền, phương tiện truyền dẫn. Tiến trình này gọi là tuần tự hóa (serialization).
    Ở đầu bên kia của cuộc gọi, người nghe phải làm một tiến trình ngược lại để chuyển những dòng bit nhận được thành những thông điệp có ý nghĩa, chính là những từ mà bạn đã nói. Quá trình này được gọi là deserialization.


    Tuần tự hóa trong ngành khoa học máy tính chỉ ra việc chuyển đổi một cấu trúc dữ liệu hay một đối tượng sang dạng nhị phân hay một dạng văn bản mà các định dạng này có thể được lưu trữ hay tái tạo lại về sau.


    Bạn có thể muốn lưu trữ các đối tượng này trong một file và với cách này, bạn cho các đối tượng một nơi lưu trữ thường trực. Bạn đang lưu giữ trạng thái của một đối tượng. Các file dùng để lưu trữ này có thể ở định dạng YAML, JSON và XML hoặc bất cứ file văn bản hay file nhị phân nào. Chúng ta sẽ tập trung vào các định dạng văn bản do tính tiện lợi của nó.
    Các file này sau đó có thể được truyền đến bất kỳ hệ thống nào khác trên mạng. Bên hệ thống nhận có khả năng mở file đó và tái tạo nó thành dạng nguyên thủy ban đầu với tất cả các đối tượng được định nghĩa bên trong. Tiến trình này ngược với tiến trình tuần tự hóa, và được gọi là deserialization (tái tạo)

    Click image for larger version

Name:	dataurl486901.png
Views:	14
Size:	23.1 KB
ID:	437510

    Cũng giống như việc lưu trữ các dữ liệu vào các files, các APIs cũng cần các tiến trình tuần tự hóa và tái tạo một cách tin cậy. Phần lớn các ngôn ngữ lập trình như Python đều có các công cụ để làm việc với các định dạng dữ liệu khác nhau.
    Sau đây là một ví dụ thực tế mà bạn có thể gặp như là một kỹ sư mạng làm việc với lập trình mạng. Bạn đã viết vài đoạn mã bằng Python để cấu hình các switches. Bạn muốn gửi cho các đoạn code đó những dữ liệu ở định dạng mà API của switch có thể hiểu và API sẽ dùng để cấu hình trên các switch này. Các API sẽ xử lý chính xác những gì mà bạn mong muốn. Bạn phải chuyển đổi các cấu trúc dữ liệu có sẵn của Python sang các cấu trúc dữ liệu hợp lệ như YAML, JSON hay XML. Để làm được việc đó, bạn sẽ cần tiến trình tuần tự hóa. Có những lúc khác, bạn cần truy cập thông tin về một vài cổng của switch từ API ở định dạng YAML, JSON hay XML. Để dịch các file đó sao cho các đoạn code Python hiểu được, bạn sẽ dùng tiến trình tái tạo. Một cách cơ bản, bạn trích xuất các chi tiết có ý nghĩa từ những file văn bản và chuyển nó sang các đối tượng Python hợp lệ. Tiến trình này cũng còn được gọi là phân giải file hay phân giải dữ liệu.
Working...
X