Serializer là gì

Một serializer / deserializer (SerDes) là một mạch tích hợp hoặc thiết bị được sử dụng trong truyền thông tốc độ cao để chuyển đổi giữa dữ liệu nối tiếp và giao diện song song theo cả hai hướng. Một SerDes được sử dụng trong một loạt các ứng dụng và công nghệ, nơi mà mục đích chính của nó là cung cấp truyền dữ liệu qua một dòng đơn hoặc khác biệt bằng cách giảm thiểu số lượng I / O pins và các kết nối. Nói tóm lại, nó chuyển đổi dữ liệu song song thành nối tiếp dữ liệu để họ có thể đi du lịch trên phương tiện truyền thông mà không hỗ trợ dữ liệu song song hoặc nó được sử dụng để tiết kiệm băng thông.

Xem thêm: Thuật ngữ công nghệ A-Z

Giải thích ý nghĩa

Một SerDes con chip tạo điều kiện cho việc truyền tải giữa hai điểm có sử dụng dữ liệu song song trên suối nối tiếp, giảm số lượng các đường dẫn dữ liệu cần thiết cho việc truyền tải. Điều này làm giảm số lượng yêu cầu chân kết nối, vì vậy dây và kết nối có thể được giữ nhỏ và mỏng. Về phía truyền, dữ liệu song song được chuyển đổi thành dữ liệu nối tiếp, trong khi đó ở phía bên nhận điều ngược lại sẽ xảy ra. Hầu hết các thiết bị SerDes có đủ năng lực hoạt động full-duplex, vì vậy chuyển đổi dữ liệu diễn ra trong cả hai hướng cùng một lúc. SerDes chip được sử dụng trong các bộ định tuyến không dây, hệ thống gigabit Ethernet, ứng dụng lưu trữ và hệ thống thông tin sợi quang.

What is the Serializer/Deserializer (SerDes)? - Definition

A serializer/deserializer (SerDes) is an integrated circuit or device used in high-speed communications for converting between serial data and parallel interfaces in both directions. A SerDes is used in a variety of applications and technologies, where its primary purpose is to provide data transmission over a single or differential line by minimizing the number of I/O pins and connections. In short, it converts parallel data into serial data so that they can travel over media that does not support parallel data or it is used in order to save bandwidth.

Understanding the Serializer/Deserializer (SerDes)

A SerDes chip facilitates the transmission between two points that use parallel data over serial streams, reducing the number of data paths required for the transmission. This lowers the number of required connecting pins, so wires and connectors can be kept small and thin. On the transmitter side, parallel data are converted to serial data, whereas on the receiver side the opposite happens. Most SerDes devices are fully capable of full-duplex operation, so conversion of data takes place in both directions simultaneously. SerDes chips are used in wireless routers, gigabit Ethernet systems, storage applications and fiber optic communication systems.

Thuật ngữ liên quan

  • Serialization
  • Modem
  • Modulation
  • Hacking Tool
  • Geotagging
  • Mosaic
  • InfiniBand
  • Snooping Protocol
  • Botnet
  • Net Send

Source: Serializer/Deserializer (SerDes) là gì? Technology Dictionary - Filegi - Techtopedia - Techterm

Tuần tự hoá trong java hay serialization trong java là một cơ chế để ghi trạng thái của một đối tượng vào một byte stream.

Nó chủ yếu được sử dụng trong các công nghệ Hibernate, RMI, JPA, EJB và JMS.

Hoạt động ngược lại của serialization được gọi là deserialization.

Ưu điểm của Serialization trong java

Nó chủ yếu được sử dụng để truyền trạng thái của đối tượng qua mạng (được biết đến như marshaling).

Serializer là gì
Serializer là gì

java.io.Serializable interface

Serializable là một interface (giao diện) đánh dấu, không có thuộc tính và phương thức bên trong. Nó được sử dụng để “đánh dấu” các lớp java để các đối tượng của các lớp này có thể nhận được khả năng nhất định. Cloneable và Remote cũng là những interface đánh dấu.

Nó phải được implements bởi lớp mà đối tượng của nó bạn muốn persist.

Lớp String và tất cả các lớp wrapper mặc định implements interface java.io.Serializable.

Hãy xem ví dụ dưới đây:

package com.gpcoder.bytestream;

import java.io.Serializable;

public class Student implements Serializable {

	private static final long serialVersionUID = 1427461703707854023L;

	private int id;
	private String name;

	public Student(int id, String name) {
		this.id = id;
		this.name = name;
	}
}

Trong ví dụ trên, lớp Student implements giao tiếp Serializable. Bây giờ các đối tượng của nó có thể được chuyển đổi thành stream.

Xem thêm bài viết trong java để hiểu rõ hơn về Serialization trong java.

Deserialization trong java

Deserialization là quá trình tái thiết lại các đối tượng từ trạng thái serialized. Đây là hoạt động ngược lại của serialization.

Xem thêm bài viết trong java để hiểu rõ hơn về Deserialization trong java.

Trong ví dụ đó, các bạn sẽ thấy được một Object có thể được lưu trực tiếp vào một file và có thể đọc từ file để có được một Object hoàn chỉnh như ban đầu chỉ với 2 phương thức đơn giản writeObject() và readObject(). Nếu không có serialization, chúng ta phải lưu từng field của đối tượng vào file như một plain text, sau đó để khôi phục lại giá trị ban đầu của đối tượng, chúng ta phải đọc dữ liệu từ file và tạo một object mới sau đó set giá trị cho từng field của object.

Java Serialization với thừa kế (Mối quan hệ IS-A)

Nếu một lớp implements giao tiếp Serializable thì tất cả các lớp con của nó cũng sẽ được serializable. Hãy xem ví dụ dưới đây:

Person.java

package com.gpcoder.serialize;

import java.io.Serializable;

class Person implements Serializable {

	private static final long serialVersionUID = -5917089857953402554L;

	private int id;
	private String name;

	Person(int id, String name) {
		this.id = id;
		this.name = name;
	}

	@Override
	public String toString() {
		return "Person [id=" + id + ", name=" + name + "]";
	}
}

Engineer.java

package com.gpcoder.serialize;

public class Engineer extends Person {

	private String certificate;

	public Engineer(int id, String name, String certificate) {
		super(id, name);
		this.certificate = certificate;
	}

	@Override
	public String toString() {
		return "Engineer [certificate=" + certificate + ", " + super.toString() + "]";
	}

}

Ví dụ sử dụng ObjectOutputStream để ghi đối tượng engineer vào file

package com.gpcoder.serialize;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

public class SerializationISExample {
	public static void main(String args[]) throws Exception {
		ObjectOutputStream oos = null;
		try {
			oos = new ObjectOutputStream(new FileOutputStream("data/engineer.txt"));
			Engineer engineer = new Engineer(1, "Gp Coder", "Java");
			oos.writeObject(engineer);
			oos.flush();
		} catch (IOException ex) {
			ex.printStackTrace();
		} finally {
			oos.close();
		}
		System.out.println("success...");
	}
}

Ví dụ sử dụng ObjectInputStream để đọc đối tượng engineer từ file

package com.gpcoder.serialize;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

public class DeserializationISExample {
	public static void main(String args[]) throws Exception {
		ObjectInputStream ois = null;
		try {
			ois = new ObjectInputStream(new FileInputStream("data/engineer.txt"));
			Engineer engineer = (Engineer) ois.readObject();
			System.out.println(engineer);
		} catch (IOException ex) {
			ex.printStackTrace();
		} finally {
			ois.close();
		}
	}
}

Thực thi chương tình SerializationTransientExample, sau đó thực thi chương trình DeserializationTransientExample. Ta có kết quả như sau:

Serializable dùng để làm gì?

Serializable là một Interface (giao diện) đánh dấu không có các dữ liệu và phương thức. Thông thường, Serializable được sử dụng để đánh dấu các class trong Java để các Object trong class có thể nhận được những khả năng kế thừa nhất định.

Deserialization trong Java là gì?

Deserialization trong Java Đây quá trình đảo ngược của Serialization mà có thể chuyển đổi luồng byte lại trạng thái của đối tượng. Phương thức được sử dụng để deserialize một luồng byte thành một đối tượng phương thức readObject() của lớp ObjectInputStream.

serialVersionUID in Java là gì?

Serial Version UID Nói một cách đơn giản, chúng ta sử dụng thuộc tính serialVersionUID để ghi nhớ các phiên bản của một Serializable class (class implement Serializable interface) để xác minh một object được tuần tự hoá trước đó có tương thích với Serializable class ở phiên bản hiện tại hay không.

Serializable trong C# là gì?

Serialization trong C# là loại kỹ thuật chuyển đổi object về dạng trung gian (text, mảng byte) phục vụ lưu trữ (trong file) hoặc truyền qua mạng (lập trình socket). Serialization là loại kỹ thuật nền tảng cho các công nghệ phát triển ứng dụng mạng trên .