Thiết kế ngoại vi và kỹ thuật ghép nối đề tài tìm hiểu về chuẩn đóng gói protocal bufter

26 0 0
Thiết kế ngoại vi và kỹ thuật ghép nối đề tài tìm hiểu về  chuẩn đóng gói protocal bufter

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THƠNG BÁO CÁO Tìm hiểu chuẩn đóng gói Protocol Buffer Giảng viên hướng dẫn: Dương Quang Duy Nhóm sinh viên thực hiện: ● Nguyễn Viết Thắng - B19DCDT233 ● Lê Duy Hưng - B19DCDT109 ● Lê Ngọc Nam - B19DCDT148 ● Nguyễn Sơn Tùng - B19DCDT208 Hà Nội – 2023 LỜI CẢM ƠN Trước tiên với tình cảm sâu sắc chân thành nhất, cho phép chúng em bày tỏ lòng biết ơn đến cá nhân tổ chức tạo điều kiện hỗ trợ, giúp đỡ chúng em suốt trình học tập giảng đường đại học Từ bắt đầu học tập Học viện nay, chúng em nhận nhiều quan tâm từ Thầy Cơ, anh chị, bạn bè Với lịng biết ơn sâu sắc nhất, em xin gửi lời cảm ơn đến quý thầy cô Khoa Kỹ thuật Điện tử I truyền đạt vốn kiến thức quý báu cho chúng em suốt thời nhóm đã, học tập trường Nhờ có lời dạy bảo Thầy Cơ mà chúng em hồn thiện đề tài Một lần nữa, chúng em xin chân thành cảm ơn Thầy Dương Quang Duy - người trực tiếp giúp đỡ, quan tâm, hướng dẫn nhóm hoàn thành đề tài khoảng thời gian vừa qua Do kiến thức cịn hạn hẹp, q trình tìm hiểu, nghiên cứu khơng thể tránh khỏi thiếu sót Nhóm mong nhận đóng góp quý báu Thầy để bổ sung, cải thiện kiến thức nâng cao ý thức Chúng em xin chân thành cảm ơn! Mục lục LỜI CẢM ƠN…………………………………………………………………………………………………………………2 Google protocol buffer ?……………………………………………………………………………………4 Protocol buffer dùng vào việc gì?……………………………………………………………………………….5 Cách thức hoạt động…………………………………………………………………………………………………8 3.1 Giao tiếp RPC ứng dụng gì?…………………………………………………………………….8 3.2 Làm việc với Protocol Buffers………………………………………………………………………………… Lợi ích việc sử dụng Protocol buffer gì?………………………………………………………….12 Khi Protocol buffer không phù hợp?………………………………………………………………….13 Protobuf so sánh số định dạng kiểu liệu khác………………………………………………13 6.1 Sự khác biệt định dạng Protobuf JSON gì?…………………………………………… 14 Protobuf có ứng dụng vi điều khiển khơng?……………………………………………………18 Khuyến nghị……………………………………………………………………………………………………………19 Kết luận………………………………………………………………………………………………………………… 20 10 Sử dụng mơ hình MVC để truyền liệu server client………………………………21 Tài liệu tham khảo………………………………………………………………………………………………………25 Google protocol buffer ? Protocol buffer cịn biết protobuf language-neutral, platformneutral google phiên nội công bố vào năm 2001 phiên công khai giới thiệu vào năm 2008 ( Repository ), mục tiêu để giảm số lượng byte cần thiết để biểu diễn gói tin, từ tăng tốc độ gửi nhận qua network chậm chạp Và thời điểm này, protobuf giao thức nhẹ nhàng tiết kiệm nhiều byte Nó thiết kế để trở thành language/platform neutral mở rộng Hiện tại, protobuf có hỗ trợ cho C ++, C, Go, Java Python Protobuf open source dùng để encode liệu có cấu trúc phát triển google Nó hữu ích việc phát triển chương trình để giao tiếp với qua wire để lưu trữ liệu Tất bạn phải làm định thông báo cho cấu trúc liệu mà bạn muốn Serialize (theo định dạng giống lớp Java) cách sử dụng file đặc tả proto Từ file proto compiler protobuf ( protoc ) tạo code thực encode tự động phân tích cú pháp liệu protobuf với định dạng Binary hiệu quả, tùy thuộc vào ngơn ngữ tạo mã tương ứng [1] Protocol buffer dùng vào việc gì? Protocol buffers cung cấp định dạng hóa cho gói liệu nhập, có cấu trúc có kích thước lên tới vài megabyte Định dạng phù hợp cho lưu lượng mạng tạm thời lưu trữ liệu dài hạn Bộ đệm giao thức mở rộng với thơng tin mà không làm hiệu lực liệu có yêu cầu cập nhật mã Protocol buffers định dạng liệu sử dụng phổ biến Google Chúng sử dụng rộng rãi giao tiếp máy chủ để lưu trữ liệu lưu trữ đĩa. Protocol buffer messages and services được mô tả bưởi file proto  Ví dụ message: Trình biên dịch proto gọi thời điểm xây dựng tệp proto để tạo mã ngơn ngữ lập trình khác (được đề cập Khả tương thích đa ngôn ngữ phần sau chủ đề này) để thao tác với protocol buffer tương ứng Mỗi lớp tạo chứa truy cập đơn giản cho trường phương thức để hóa phân tích cú pháp tồn cấu trúc đến từ byte thô Phần sau cho bạn thấy ví dụ sử dụng phương thức tạo đó: Bởi đệm giao thức sử dụng rộng rãi tất loại dịch vụ Google liệu protocol buffer tồn thời gian, nên việc trì khả tương thích ngược quan trọng Protocol buffer cho phép hỗ trợ liền mạch thay đổi, bao gồm thêm trường xóa trường có, vào đệm giao thức mà khơng phá vỡ dịch vụ có Protocol Buffers ( Protobuf) chế mở rộng, trung lập ngôn ngữ, trung lập với tảng, mở rộng để hóa liệu có cấu trúc để sử dụng giao thức truyền thông, lưu trữ liệu, v.v Đây dự án nguồn mở Google phát triển nhằm cung cấp phương tiện hiệu đáng tin cậy để trao đổi thông tin ứng dụng Bạn định cách mã nguồn tạo đặc biệt đọc liệu Protobuf lưu trữ liệu có cấu trúc dạng nhị phân cách hiệu nhỏ gọn, cho phép truyền nhanh qua kết nối mạng. Protobuf hỗ trợ nhiều loại ngôn ngữ lập trình chọn khơng phụ thuộc vào tảng, nghĩa chương trình viết ngơn ngữ dễ dàng chuyển sang tảng khác Ngoài ra, cách hiệu mạnh mẽ để tạo liệu có cấu trúc sử dụng ứng dụng khác nhau, chẳng hạn dịch vụ web, sở liệu, hệ thống RPC và định dạng tệp Nó hỗ trợ nhiều loại liệu, bao gồm chuỗi, số nguyên, số float, booleans, enums (liệt kê), đồ (mảng kết hợp), v.v Cú pháp độc lập với ngôn ngữ cho phép chương trình viết ngơn ngữ lập trình chọn khác giao tiếp với cách đáng tin cậy Hơn nữa, định dạng Protobuf cung cấp số lợi so với định dạng khác, chẳng hạn XML hoặc JSON Do liệu có cấu trúc lưu trữ định dạng nhị phân nên liệu nhỏ nhiều so với định dạng dựa văn định dạng XML hoặc JSON, giúp truyền qua mạng nhanh Ngoài ra, Protobuf được thiết kế để dễ dàng mở rộng, khiến trở nên lý tưởng để xử lý cấu trúc liệu thay đổi nhanh chóng tính Cuối cùng, mã nguồn tạo đặc biệt từ Protobuf có thể tối ưu hóa tốc độ, dẫn đến ứng dụng nhanh sử dụng nhớ Protobuf có thể sử dụng để tạo các API hiệu sử dụng làm luồng liệu hệ thống Bộ đệm giao thức cách tuyệt vời để giúp trao đổi liệu hiệu hơn, chúng u cầu băng thơng có kích thước thơng báo nhỏ so với giải pháp XML hoặc JSON tiêu chuẩn Nó lưu trữ liệu có cấu trúc cách có tổ chức Nó cho phép nhà phát triển xác định cấu trúc liệu sau hóa thành định dạng nhị phân, làm cho liệu di chuyển hệ thống Điều giúp dễ dàng lưu trữ liệu sở liệu hệ thống phân tán khác Nó đảm bảo khả tương thích ngược thay đổi cấu trúc liệu Hơn nữa, sử dụng để giao tiếp RPC giữa ứng dụng Ví dụ: bạn sử dụng định dạng Protobuf để xác định thông báo gửi hai ứng dụng Điều giúp ứng dụng dễ dàng giao tiếp với cách hiệu quả, chúng đơn giản hóa giải hóa liệu cách sử dụng cấu trúc thông báo [2] Vi dụ Compile and run Protobuf on Ubuntu use C++: Nguồn: How to Install, Compile and run Protobuf on Ubuntu https://www.youtube.com/watch?v=KPoBaBpr2XI Cách thức hoạt động Sơ đồ sau cho thấy cách bạn sử dụng Protocol bufer để làm việc với liệu Ví dụ luồng Java Như hiển thị trước đó, định nghĩa proto Biên dịch tệp proto tạo lớp Builder mà bạn sử dụng để tạo phiên mới, mã Java sau: [3] 3.1 Giao tiếp RPC ứng dụng gì? ● RPC (Cuộc gọi thủ tục từ xa) loại giao tiếp cho phép ứng dụng giao tiếp với qua mạng Nó cho phép chức thủ tục từ ứng dụng gọi từ ứng dụng khác, cho phép tính tốn phân tán khả mở rộng lớn ● RPC hoạt động cách gửi yêu cầu từ ứng dụng gọi điện (còn gọi máy khách) đến ứng dụng khác (được gọi máy chủ) nhận phản hồi Yêu cầu thường gửi dạng gói liệu chứa thơng tin thủ tục cần thực thi, chẳng hạn tham số giá trị trả ● Sau máy chủ nhận gói, xử lý gói trả phản hồi với liệu kết có liên quan Protobuf cũng cho phép nhà phát triển tạo ứng dụng máy khách/máy chủ tương tác với mà lo lắng sắc thái giao thức truyền thơng khác Nó giúp dễ dàng viết ứng dụng đa tảng giao tiếp với định dạng thông báo Nhìn chung, Protocol Buffers là cách mạnh mẽ hiệu để trao đổi thông tin hệ thống ● Nó cho phép nhà phát triển tạo API hiệu để truyền liệu có cấu trúc ● Lưu trữ liệu cách có tổ chức ● Và tạo ứng dụng máy khách/máy chủ giao tiếp với [2] 3.2 Làm việc với Protocol Buffers Theo mặc định, gRPC sử dụng Protocol Buffer, chế nguồn mở hoàn thiện Google để hóa (serializing) liệu có cấu trúc (mặc dù sử dụng với định dạng liệu khác JSON) Dưới phần giới thiệu nhanh cách hoạt động Bước làm việc với protocol bufffer (bộ đệm giao thức) xác định cấu trúc cho liệu muốn hóa proto file: file văn thơng thường có phần mở rộng proto Dữ liệu protocol buffer cấu trúc message, message ghi (record) logic nhỏ chứa loạt cặp key-value gọi fields Đây ví dụ đơn giản: Sau đó, định cấu trúc liệu mình, ta sử dụng trình biên dịch protocol buffer (protoc) để sinh lớp truy cập liệu (data access classes) ngơn ngữ ưa thích từ định nghĩa proto Chúng cung cấp accessor đơn giản cho trường, name() set_name(), phương thức (method) để hóa/phân tích cú pháp tồn cấu trúc đến/từ byte thơ Vì vậy, chẳng hạn, ngơn ngữ chọn C++ việc chạy trình biên dịch ví dụ tạo lớp (class) có tên Person Sau đó, ta sử dụng class ứng dụng để điền (populate), hóa lấy Person protocol buffer message Ta định nghĩa gRPC service file proto thông thường, với tham số phương thức RPC kiểu trả định làm protocol buffer message: GRPC sử dụng protoc với plugin gRPC đặc biệt để sinh mã (code) từ proto file: ta nhận mã sinh từ gRPC client server mã protocol buffer thơng thường để điền (populate), hóa truy xuất loại message [3] *Bài toán thực tế Chúng ta cần gửi số int: 300 qua socket, thật đơn giản cần gửi bytes: Như không? Nhưng nhìn lại chút, có khơng ổn đây? thừa số đầu? Đúng vậy, không cần thiết phải dùng đến bytes để mô tả số 300, cần dùng tối đa bytes là 1 44 là đủ Ồ, thực tế chẳng lại gửi số 300 vô nghĩa qua socket cả, thường gửi message kiểu: Ý nghĩa là: trừ 100đ tài khoản user có id 300 Vậy phải mơ tả message kiểu giờ? Nếu mà để kiểu Lúc đọc hiểu nhầm số 76900, phải cần thể phân tách thành số 300 100 Lúc kỹ sư có ý tưởng Protobuf đời 10 ● Bước 1: khởi tạo đối tượng UpdateUserMoney obj = new UpdateUserMoney() ● Bước 2: đọc byte là 2 chúng ta thấy biểu diễn dạng bit là 00000010 vậy khơng có thêm byte tiếp theo, giá trị nhận 2, đối tượng có trường ● Bước 3: đọc byte 172 dưới dạng bit 10101100 chúng ta thấy có bit đầu, cần phải đọc tiếp, trước đọc tiếp bỏ số đi, lưu lại bit 0101100 ● Bước 4: đọc bye 2 dưới dạng bit 00000010 chúng khơng thấy có bit đầu, dừng lại việc đọc ● Bước 5: ghép dãy bít ta được 00000010 0101100, đọc thành số ta 300 ● Bước 6: gán 300 vào userId: `obj.setUserId(300) ● Bước 7: Đọc 100 thành bit có 01100100, khơng có bit đầu có giá trị 100 ● Bước 8: set 100 vào balance: obj.setBalance(100) ● Bước 9: khơng cịn byte kết thục trả về obj Protobuf cho phép chưa cần thiết phải parse kiểu cụ thể, đọc giá trị runtime, cách thêm optional khi khai báo trường liệu: [4] Lợi ích việc sử dụng Protocol buffer gì? Protocol buffer thức lý tưởng cho tình mà bạn cần hóa liệu nhập, có cấu trúc, giống ghi theo cách trung lập ngôn ngữ, trung lập với tảng mở rộng Chúng thường sử dụng để xác định giao thức truyền thông (cùng với gRPC) để lưu trữ liệu Một số ưu điểm việc sử dụng Protocol buffer bao gồm: -Lưu trữ liệu nhỏ gọn 12 -phân tích cú pháp nhanh -Có sẵn nhiều ngơn ngữ lập trình -Chức tối ưu hóa thơng qua lớp tạo tự động Khi Protocol buffer không phù hợp? Protocol buffer có xu hướng giả định tồn thơng báo tải vào nhớ lúc không lớn biểu đồ đối tượng Đối với liệu vượt vài megabyte, xem xét giải pháp khác; làm việc với liệu lớn hơn, bạn kết thúc với số liệu đánh số thứ tự, điều gây mức tăng đột biến đáng ngạc nhiên việc sử dụng nhớ Khi Protocol bufferc hóa, liệu có nhiều hóa nhị phân khác Bạn khơng thể so sánh hai thông báo mà không phân tích cú pháp đầy đủ chúng Messages khơng nén Mặc dù thư nén gzip giống tệp khác, thuật tốn nén có mục đích đặc biệt thuật tốn sử dụng JPEG PNG tạo tệp nhỏ nhiều cho liệu thuộc loại thích hợp Thơng báo Protocol buffer hiệu tối đa kích thước tốc độ nhiều mục đích sử dụng khoa học kỹ thuật liên quan đến mảng số dấu phẩy động lớn, đa chiều Đối với ứng dụng này, FITS định dạng tương tự có chi phí Protocol buffer không hỗ trợ tốt ngôn ngữ khơng hướng đối tượng phổ biến điện tốn khoa học, chẳng hạn Fortran IDL Protocol buffer messages vốn không tự mô tả liệu chúng, chúng có lược đồ phản ánh đầy đủ mà bạn sử dụng để triển khai tự mơ tả Nghĩa là, bạn khơng thể giải thích đầy đủ mà khơng có quyền truy cập vào tệp proto tương ứng Protocol buffer khơng phải tiêu chuẩn thức tổ chức Điều làm cho chúng không phù hợp để sử dụng mơi trường có u cầu pháp lý yêu cầu khác để xây dựng dựa tiêu chuẩn Protobuf so sánh số định dạng kiểu liệu khác Dưới đề cập đến ưu nhược điểm Protocol buffer số kiểu khác PROTOBUF JSON XML 13 – Dữ liệu dày đặc, đầu nhỏ – Khó giải mã lược đồ, định dạng liệu không rõ ràng cần biết rõ lược đồ – Xử lý nhanh, nhỏ – 10 lần so với XML JSON – Không dành cho người Binary – Tạo mã truy cập liệu dễ sử – Con người đọc chỉnh sửa dễ dàng – Có thể phân tích cú pháp mà khơng cần biết lược đồ – Các trình duyệt hỗ trợ tốt – Ít dài dịng XML – Con người đọc chỉnh sửa dễ dàng – Có thể phân tích cú pháp mà không cần biết lược đồ – Tiêu chuẩn cho SOAP… – Hỗ trợ tốt công cụ xsd, xslt, sax, dom … dụng theo chương trình Protobuf nhanh nhưng có những tình khơng nên sử dụng Ví dụ tình Khi bạn cần muốn liệu người đọc dễ dàng Dữ liệu từ Service sử dụng trực tiếp Browser Server bạn viết ngôn ngư khác Javascript Gánh nặng hoạt động việc vận hành loại dịch vụ mạng khác lớn [1] 6.1 Sự khác biệt định dạng Protobuf JSON gì? 14 – Protobuf định dạng trao đổi liệu nhị phân Google phát triển, JSON định dạng trao đổi liệu mà người đọc JSON có nguồn gốc từ JavaScript tên gợi ý, khơng giới hạn JavaScript Nó thiết kế theo cách sử dụng nhiều ngơn ngữ – Protobuf hỗ trợ định dạng hóa nhị phân, JSON dành cho định dạng hóa văn đơn giản – JSON hữu ích cho tác vụ thông thường giới hạn số loại liệu định Điều có nghĩa JSON khơng thể hóa hủy hóa đối tượng python Trong Protobuf bao gồm nhiều loại liệu so sánh với JSON Ngay bảng liệt kê phương thức xếp theo thứ tự với Protobuf – Cả đệm Giao thức JSON ngơn ngữ tương tác với nhau, Protobuf bị giới hạn tập hợp ngơn ngữ lập trình, JSON chấp nhận rộng rãi – JSON chứa thông báo khơng phải lược đồ, Protobuf khơng có thơng báo mà cịn bao gồm quy tắc lược đồ để xác định thông báo – Protobuf chủ yếu hữu ích cho dịch vụ nội JSON chủ yếu hữu ích cho ứng dụng web – Kiến thức trước lược đồ điều cần thiết việc giải mã thơng báo Protobuf, liệu dễ dàng giải mã phân tích cú pháp JSON biết trước lược đồ Ví dụ Protobuf Dữ liệu JSON: 15 Protobuf JSON Protobuf cách hiệu để mã hóa liệu Google phát triển để hóa hủy hóa liệu có cấu trúc JSON viết tắt Ký hiệu đối tượng JavaScript JSON định dạng trao đổi liệu nhẹ bắt nguồn từ JavaScript Bộ đệm giao thức chế mã hóa khơng phụ thuộc vào ngơn ngữ tảng Mặc dù có nguồn gốc từ JavaScript, JSON ngơn ngữ tương tác JSON cách khác để lưu trữ đối tượng python vào đĩa để sau này, tải mà khơng cần phải tạo lại liệu Protobuf không định dạng tin nhắn, cịn kết hợp quy tắc để xác định trao đổi tin nhắn JSON đơn giản định dạng thông báo mà khơng có lược đồ Tin nhắn protobuf định dạng nhị phân. Các thông báo không bao gồm thơng báo mà cịn có quy tắc công cụ để xác định trao đổi thông báo Các tin nhắn JSON trao đổi định dạng văn mà người đọc Protobuf ngôn ngữ trung lập giới hạn số ngơn ngữ lập trình. Ví dụ, hỗ trợ JAVA, C, C++, Python, GO, ruby, khơng hỗ trợ R JSON hầu hết ngôn ngữ lập trình hỗ trợ. JSON ngơn ngữ độc lập. Vì vậy, lập trình viên khơng phải Python sử dụng điều để trao đổi liệu Các lược đồ protobuf liên kết với liệu JSON lưu trữ liệu định dạng văn khơng có lược đồ liên kết với Bộ đệm protobuf chủ yếu hữu ích để gửi liệu dịch vụ nội JSON chủ yếu sử dụng ứng dụng web nơi diễn trình trao đổi liệu trình duyệt máy chủ Protobuf hỗ trợ nhiều loại liệu JSON JSON bị giới hạn số đối tượng python định khơng thể hóa đối tượng python Protobuf hỗ trợ nhiều loại liệu so sánh với JSON. Ví dụ: bảng liệt kê phương thức hỗ trợ Protobuf không hỗ trợ JSON JSON hỗ trợ tập hợp kiểu liệu python kiểu liệu sau: • Dây • Số • Đối tượng JSON • Một mảng • Giá trị Boolean • Vơ giá trị Các loại liệu không JSON hỗ trợ: • Các lớp học • Chức Bộ đệm giao thức nhanh nhiều so với JSON nhẹ nhanh kỹ thuật hóa 16 JSON khác tẩy Thuận lợi: • Các lược đồ protobuf mã hóa với liệu; đảm bảo tín hiệu khơng bị ứng dụng • Khả tương tác ngôn ngữ • Xử lý nhanh • Hỗ trợ khả tương thích tiến lùi Nhược điểm: • Tin nhắn định dạng nhị phân người khơng thể đọc • Nếu khơng biết lược đồ, thật khó để giải mã đệm giao thức liệu bên khơng rõ ràng • Bộ đệm giao thức khơng tốt cho việc lưu trữ liệu, chẳng hạn tài liệu văn liệu DB Hỗ trợ cộng đồng nhỏ thiếu tài nguyên khiến protobuf phổ biến Thuận lợi: • JSON nhẹ nhanh • Hỗ trợ định dạng văn người đọc • Khả tương tác ngơn ngữ • Dữ liệu giải mã phân tích cú pháp mà khơng cần phải biết sơ đồ trước • Hữu ích cho việc lưu trữ liệu sở liệu hệ thống tệp • Hỗ trợ cộng đồng lớn tài nguyên rộng lớn làm cho JSON trở nên phổ biến Nhược điểm: • JSON khơng thiết kế cho số • Khơng hỗ trợ lược đồ Khơng hỗ trợ khơng gian tên Do đó, bạn chia nhỏ khác biệt giữa Protobuf và JSON thành bốn lĩnh vực chính: tốc độ, kích thước, loại liệu khả tương thích tảng ● Tốc độ : Protobuf nhanh nhiều so với JSON về hóa giải hóa liệu Vì định dạng nhị phân, nên thời gian để đọc ghi liệu có cấu trúc trong Protobuf so với JSON ● Kích thước : Protobuf nhỏ nhiều so với JSON, điều hữu ích băng thơng mạng bị hạn chế Do tính chất nhỏ gọn luồng liệu nhị phân, nên việc lưu trữ truyền thông báo Protobuf sẽ chiếm không gian so với thông báo JSON ● Các loại liệu : Mặc dù hai định dạng hỗ trợ loại liệu chuỗi, số booleans, nhưng Protobuf hỗ trợ loại liệu phức tạp enums đồ khơng có sẵn trong JSON Điều cho phép nhà phát triển tạo ứng dụng phức tạp đòi hỏi cấu trúc liệu phong phú ● Khả tương thích tảng : Vì Protobuf là định dạng mã nguồn mở nên có khả tương thích tảng tốt hơn JSON Nó sử dụng 17 nhiều tảng mà khơng gặp khó khăn vấn đề tương thích độc lập với ngơn ngữ tảng Tóm lại, JSON Protobuf hai cơng nghệ sử dụng để trao đổi liệu khách hàng máy chủ JSON (Ký hiệu đối tượng JavaScript) biến định dạng liệu phổ biến sử dụng ứng dụng web di động Nó dựa cú pháp JavaScript cho phép mã hóa giá trị liệu dạng chuỗi văn JSON định dạng liệu phổ biến cú pháp đơn giản định dạng dễ dàng đọc người ứng dụng khác Protobuf (Bộ đệm giao thức) định dạng liệu nhị phân phát triển Google Protobuf cho phép trao đổi liệu ứng dụng với tốc độ nhanh nhờ JSON nhờ cú pháp định dạng thú vị hiệu Protobuf cung cấp công cụ để xác định cấu trúc liệu cấu trúc tạo mã cho lớp liệu tương ứng ngôn ngữ lập trình khác Cả hai cơng nghệ sử dụng rộng rãi trình trao đổi liệu ứng dụng web di động nhờ tính đơn giản, tốc độ truyền tải nhanh tính linh hoạt Tuy nhiên, với ứng dụng yêu cầu tốc độ tải xử lý liệu cao, Protobuf lựa chọn tốt Protobuf cịn có tùy chọn Ba tùy chọn của Protobuf là 1) proto2, 2) proto3 3) g RPC  ● Proto2 ngôn ngữ đệm giao thức ban đầu sử dụng để mã hóa liệu có cấu trúc Nó hỗ trợ tạo mã nhiều ngôn ngữ, chẳng hạn Java, C++ và Python  ● Proto3 phiên của Protobuf, phát triển proto2 Nó bổ sung số tính đơn giản hóa việc sử dụng Protobuf trong tình cụ thể ● Cuối cùng, g RPC là khung RPC (Gọi thủ tục từ xa) hiệu suất cao dựa trên Protobuf giúp việc kết nối tương tác dịch vụ trở nên dễ dàng Nó hỗ trợ nhiều ngơn ngữ, chẳng hạn Java, Python, C++ Node.js Ba tùy chọn giúp mã hóa liệu có cấu trúc bằng Protobuf nhưng nhiều người thích g RPC hơn lợi hiệu suất so với hai tùy chọn cịn lại [2] Protobuf có ứng dụng vi điều khiển không? Protobuf (hoặc Protocol Buffers) sử dụng vi điều khiển Nó giao thức truyền thơng liệu nhị phân thiết kế để tối ưu hóa định dạng liệu cho ứng dụng truyền thông liệu Vì Protobuf định dạng liệu nhị phân nhẹ 18 hiệu quả, sử dụng rộng rãi ứng dụng IoT, nơi thiết bị vi điều khiển cần giao tiếp với với hệ thống máy tính phức tạp khác Các tài liệu thư viện Protobuf có sẵn cho nhiều hệ điều hành ngơn ngữ lập trình, bao gồm hệ điều hành nhúng Microcontroller Operating Systems (RTOS) Protobuf thư viện giao tiếp liệu, khơng thực tiễn sử dụng trực tiếp cho thiết bị hay vi điều khiển mà thường sử dụng ứng dụng máy chủ máy khách để truyền xử lý liệu Tuy nhiên, thiết bị vi điều khiển lập trình để sử dụng protobuf phương tiện để truyền thông tin chúng thiết bị khác Ví dụ, Google sử dụng protobuf cho ứng dụng IoT mình, nơi số thiết bị lập trình để sử dụng protobuf để truyền tải liệu chúng Protobuf sử dụng ứng dụng vi điều khiển truyền thông hệ thống tự động hóa để giao tiếp thiết bị Nó sử dụng để lưu trữ liệu truyền tải qua mạng thiết bị đầu cuối cảm biến điều khiển Việc sử dụng protobuf vi điều khiển giúp tối ưu hóa kích thước liệu tăng tốc độ truyền tải Các vi điều khiển lập trình để sử dụng protobuf bao gồm: ● Arduino ● Raspberry Pi ● BeagleBone ● STM32F4 / STM32F7 ● ESP32 / ESP8266 ● loại vi điều khiển ARM Cortex-M ● nhiều hệ thống nhúng khác Khuyến nghị Có số lý bạn nên sử dụng Protocol Buffers ngôn ngữ trung lập Google thay định dạng liệu khác JSON XML Đối với điều, Protobuf nhỏ gọn nhiều so với JSON XML, đó, sử dụng băng thơng hơn, làm cho trở nên lý tưởng để sử dụng ứng dụng web nơi lưu lượng mạng mối quan tâm Hơn nữa, Protobuf an tồn kiểu so với JSON XML nên xảy lỗi đọc ghi liệu Hơn nữa, việc sử dụng Protobuf giúp ứng dụng chia sẻ luồng liệu giao tiếp với dễ dàng nhiều Nó đơn giản hóa q trình tích hợp thành phần khác từ nhà cung cấp khác ngơn ngữ lập trình chọn khác Định dạng liệu Protobuf ngôn ngữ trung lập; thật dễ dàng để phát triển ứng dụng ngơn ngữ lập trình chọn khác giao tiếp với Protobuf Vì định dạng không phụ thuộc vào ngôn ngữ 19 không phụ thuộc vào tảng nên ứng dụng dịch vụ sử dụng cơng nghệ sử dụng Protobuf trung lập với ngôn ngữ Google thiết kế để có hiệu cao u cầu chi phí tối thiểu cho liệu hóa giải hóa Nó hỗ trợ tiến hóa lược đồ, cho phép nhà phát triển nhanh chóng thay đổi giao thức có mà khơng cần viết mã từ đầu Điều giúp dễ dàng trì ứng dụng theo thời gian Ngồi ra, mang lại hiệu suất tốt so với phương thức khác, chẳng hạn JSON XML, định dạng nhị phân nó, giúp giảm lưu lượng mạng giảm độ trễ gửi đối tượng tin nhắn hệ thống khác Cuối cùng, Protobuf hỗ trợ nhiều phiên loại thông báo để tương thích ngược, cho phép nhà phát triển nhanh chóng điều chỉnh ứng dụng họ mà khơng cần viết lại hồn tồn mã Nói tóm lại, Protocol Buffers cung cấp cách trao đổi liệu hiệu quả, đáng tin cậy tiết kiệm chi phí ứng dụng hệ thống Nó làm giảm phức tạp việc tích hợp đồng thời cung cấp cách giao tiếp hiệu với thành phần khác Protobuf giúp nhà phát triển dễ dàng trì ứng dụng có theo thời gian giúp tạo ứng dụng dễ dàng Vì lý này, ngày trở thành phương pháp ưa thích để trao đổi liệu hệ thống phân tán [2] Kết luận Protocol Buffer cung cấp số lợi hấp dẫn so với JSON, XML để gửi liệu qua mạng internal service Mặc dù khơng phải thay hồn tồn cho JSON, XML, đặc biệt dịch vụ sử dụng trực tiếp trình duyệt web, Protocol Buffer cung cấp lợi thực tế không cách nêu trên, mà tốc độ mã hóa giải mã, kích thước liệu dây, nhiều 20

Ngày đăng: 18/04/2023, 22:57

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan