Tải bản đầy đủ (.pptx) (15 trang)

Thiết kế ngoại vi và kỹ thuật ghép nối

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (365.06 KB, 15 trang )

Thiết kế
ngoại vi và
kỹ thuật
ghép nối


Giảng viên
: Trần Thị
Thu Hà

Đề tài 13:
Tìm hiểu về chuẩn đóng
gói Protocol Buffer
Nhóm 15:
Trần Đức Hồng Long – B18DCDT147
Nguyễn Đình Lợi – B18DCDT141
Cấn Ngọc Đức – B18DCDT053
Nguyễn Tiến Đức – B18DCDT057
Đoàn Duy Khánh – B18DCDT109
2


Hello!

Phụ lục
Phần 1. Tổng quan về
Protocol Buffer
Phần 2. Cách thức hoạt động
của Protocol Buffer
Phần 3. Demo
3




1
Tổng quan về
Protocol Buffer

4



Protocol Buffer là gì?
Protocol Buffer (Bộ đệm giao thức)
gọi tắt là protobuf là một open
source dùng để encode dữ liệu có
cấu trúc được phát triển bởi Google

5


Protobuf
được tạo ra
để làm gì?

▹ Nhằm tạo buffer truyền và nhận
giao tiếp một cách linh hoạt, hiệu
quả.
▹ Cung cấp định dạng tuần tự hóa
cho các gói dữ liệu có cấu trúc,
kích thước lên đến vài megabyte.
▹ Tăng tốc độ gửi/nhận qua network

mà vốn dĩ vẫn chậm chạp.
6


Lợi ích
của việc
sử dụng
Protobu
f là gì?

Lợi ích
- Lưu trữ dữ liệu nhỏ
gọn
- Phân tích cú pháp
nhanh
- Có sẵn trong nhiều
ngơn ngữ lập trình
- Chức năng được tối
ưu hóa

Nhược điểm
Nhược điểm lớn nhất
là khơng phù hợp với
thiệt bị có RAM nhỏ
do việc encode mất
thêm RAM lưu data
encode

7



So sánh
Protobuf với
một số định
dạng dữ
liệu khác

Protobuf

JSON

1. Dữ liệu dày đặc,
đầu ra nhỏ

1. Con người có
thể đọc và
chỉnh sửa

2. Khó decode,
định dạng dữ
liệu không rõ
ràng và cần
schema để biết
rõ.
3. Xử lý rất nhanh,
nhỏ hơn 3-10
lần so với XML
và JSON
4. Không dành cho
con người vì là

Binary

2. Có thể phân
tích cú pháp
mà khơng cần
biết schema
3. Các browser
hỗ trợ rất tốt
4. Ít dài dịng
hơn XML

XML
1. Con người có
thể đọc và
chỉnh sửa
2. Có thể phân
tích cú pháp
mà khơng cần
schema
3. Tiêu chuẩn
cho SOAP…
4. Hỗ trợ tốt các
công cụ như
xsd, sax,
dom….
8


2
Cách thức hoạt

động của
Protocol Buffer
9


Cách thức hoạt
động
Để sử dụng Bộ đệm
giao thức, cần phải
tạo mã cho mỗi
thơng báo cần được
mã hóa và sử dụng
mã đã tạo để mã hóa
/ giải mã thơng báo.

10


Giả sử có một
ứng dụng IOT
truyền data bao
gồm: dữ liệu
cảm biến, lệnh
bật/tắt, tin
nhắn, trạng
thái,… Tạo file
định dạng
.proto(bắt buộc)
ví dụ:
messages.proto

với cấu trúc dữ
liệu giao tiếp
như sau:

syntax = "proto2";
message Sensor
{
repeated uint32 data = 1;
liệu cảm biến mảng 32bit
optional bool command = 2;
//Command on/off
optional string message = 3;
nhắn thông báo dữ liệu
optional bytes status = 4;
//Mảng char
}

//Dữ

//Tin

Trong đó:

repeated: Sử dụng mảng 32bit,
optional: Khơng bắt buộc có data hay khơng
require: Bắt buộc khi sử field Sensor phải chứa data.

11



Mỗi file messages.proto cần một file messages.options
để định nghĩa kiểu dữ liệu biến trong file
messages.proto.
Ví dụ trong file messages.options

Sensor.data
max 8 phần tử
Sensor.message
Sensor.status

max_count:8

//Mảng data uint32_t

max_size:30
//Chuỗi max 30 kí tự
max_size:10
//Mảng 10 kí tự
12


Khi nào thì
khơng phù
hợp sử
dụng
Protocol
Buffer

- Đối với dữ liệu
vượt q một vài

megabyte
- Protobuf không
được hỗ trợ tốt
trong các ngôn
ngữ không
hướng đối tượng
phổ biến trong
máy tính khoa
học, chẳng hạn
như Fortran và
IDL.

- Thông báo
Protobuf vốn dĩ
không tự mô tả dữ
liệu của chúng
- Protobuf
khơng phù hợp
để sử dụng
trong các mơi
trường có u
cầu pháp lý
hoặc các yêu
cầu khác để xây
dựng dựa trên
các tiêu chuẩn
hàng đầu.
13



3.
Demo
14


Thanks!
Any questions?

15



×