0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RPC的基本原理和主要特點(diǎn)

嵌入式應(yīng)用研究院 ? 來源:嵌入式大雜燴 ? 2024-11-05 09:12 ? 次閱讀

以下文章來源于嵌入式大雜燴

一、RPC簡(jiǎn)介

RPC(Remote Procedure Call,遠(yuǎn)程過程調(diào)用)機(jī)制是一種常用的通信機(jī)制。實(shí)際上就是要像調(diào)用本地的函數(shù)一樣去調(diào)遠(yuǎn)程函數(shù)。

RPC機(jī)制,在互聯(lián)網(wǎng)中應(yīng)用得比較廣泛。在我們嵌入式中,把傳輸層拓展到IPC、TPC/IP、UART、USB等,很多場(chǎng)景下也都可以用得上。

如:

? 需要發(fā)送確認(rèn)的場(chǎng)景,比如發(fā)送某個(gè)數(shù)據(jù),需要對(duì)端回復(fù)一個(gè)數(shù)據(jù)進(jìn)行確認(rèn),這種場(chǎng)景,我們可以在應(yīng)用上進(jìn)行實(shí)現(xiàn),隨著協(xié)議越加越多,對(duì)應(yīng)的回復(fù)的代碼也越來越多,但基本都是很相似的代碼。這種下使用RPC機(jī)制就比較優(yōu)雅了,本地發(fā)起遠(yuǎn)端調(diào)用請(qǐng)求,遠(yuǎn)端執(zhí)行完后會(huì)將結(jié)果返回。

? 應(yīng)用于進(jìn)程間的交互:你寫了一段代碼,這段代碼可以調(diào)用你電腦上某個(gè)服務(wù)提供的功能,而不需要關(guān)心這個(gè)服務(wù)運(yùn)行在你的電腦上還是在網(wǎng)絡(luò)的另一端。

? 應(yīng)用于板間的交互:多個(gè)控制板之間需要通信和協(xié)作來協(xié)調(diào)生產(chǎn)過程。使用RPC可以簡(jiǎn)化這些控制單元之間的調(diào)用和數(shù)據(jù)共享。

? 應(yīng)用于端云的交互:IoT設(shè)備通常需要和云端服務(wù)器或其他設(shè)備交互。通過RPC,設(shè)備可以遠(yuǎn)程調(diào)用云服務(wù),實(shí)現(xiàn)數(shù)據(jù)同步、功能升級(jí)等操作。

二、RPC的基本原理

8648b71e-998a-11ef-a511-92fbcf53809c.jpg

嵌入式RPC機(jī)制主要由客戶端和服務(wù)器兩部分組成:

1、客戶端:發(fā)起調(diào)用請(qǐng)求,將參數(shù)傳遞給遠(yuǎn)程方法,并接收服務(wù)端返回的結(jié)果。在嵌入式系統(tǒng)中,客戶端通常作為非安全環(huán)境中的應(yīng)用程序。

2、服務(wù)器:執(zhí)行客戶端調(diào)用的遠(yuǎn)程過程,并將結(jié)果返回給客戶端。在嵌入式系統(tǒng)中,服務(wù)器通常位于安全環(huán)境中的可信執(zhí)行環(huán)境(TEE)中,如OP-TEE框架。

這張圖里的network傳輸鏈路,在我們嵌入式中,對(duì)于不同的應(yīng)用場(chǎng)景可以是UART、USB等。

RPC的基本工作原理如下:

1、定義遠(yuǎn)程方法接口(服務(wù)契約),包括方法名稱、參數(shù)類型、返回值類型等信息

2、生成客戶端和服務(wù)端的stub(樁)和skeleton(骨架)代碼。

3、客戶端通過stub調(diào)用遠(yuǎn)程方法,stub將請(qǐng)求序列化為網(wǎng)絡(luò)傳輸格式,然后通過網(wǎng)絡(luò)發(fā)送給服務(wù)端。

4、服務(wù)端接收到請(qǐng)求后,通過skeleton進(jìn)行反序列化,根據(jù)接口定義執(zhí)行遠(yuǎn)程方法,并將返回值序列化為網(wǎng)絡(luò)傳輸格式,發(fā)送給客戶端。

5、客戶端接收到服務(wù)端的響應(yīng)后,通過stub進(jìn)行反序列化,獲取返回值。

三、RPC的主要特點(diǎn)

跨平臺(tái)性:RPC框架可以在不同的操作系統(tǒng)和平臺(tái)上運(yùn)行,實(shí)現(xiàn)跨平臺(tái)的遠(yuǎn)程調(diào)用。這一特點(diǎn)使得RPC框架能夠廣泛應(yīng)用于各種異構(gòu)環(huán)境中,提高了系統(tǒng)的靈活性和適應(yīng)性。

透明性:RPC框架隱藏了底層的通信細(xì)節(jié),使得客戶端能夠像調(diào)用本地函數(shù)一樣調(diào)用遠(yuǎn)程函數(shù),無需關(guān)注網(wǎng)絡(luò)通信的具體實(shí)現(xiàn)。這一特點(diǎn)簡(jiǎn)化了開發(fā)者編程模型,降低了開發(fā)難度。

高效性:RPC框架通常采用二進(jìn)制數(shù)據(jù)傳輸和壓縮等技術(shù),使得網(wǎng)絡(luò)通信效率更高,比如使用protobuf進(jìn)行序列化與反序列化。

四、嵌入式RPC框架推薦:erpc

eRPC(嵌入式RPC)是NXP開源的、用于多芯片嵌入式系統(tǒng)和異構(gòu)多核SoC的開源遠(yuǎn)程過程調(diào)用(RPC)系統(tǒng)。與其他現(xiàn)代RPC系統(tǒng)(如出色的Apache Thrift)不同,eRPC的與眾不同之處在于它是為緊密耦合的系統(tǒng)設(shè)計(jì)的,使用純C實(shí)現(xiàn)遠(yuǎn)程功能,并且代碼大小較小(<5kB)。它不適用于網(wǎng)絡(luò)上的高性能分布式系統(tǒng)。

864fba3c-998a-11ef-a511-92fbcf53809c.png

erpc源碼:

https://github.com/EmbeddedRPC/erpc

86673964-998a-11ef-a511-92fbcf53809c.png

? 函數(shù)的參數(shù)和標(biāo)識(shí)符(用于被調(diào)用的例程)被序列化成字節(jié)流。

? 該字節(jié)流通過通信通道(IPC、TPC/IP、UART等)傳輸?shù)椒?wù)器。

? 服務(wù)器對(duì)參數(shù)進(jìn)行反序列化,確定調(diào)用了哪個(gè)函數(shù),然后調(diào)用它。

? 如果函數(shù)返回一個(gè)值,那么該值將被序列化并通過通信通道發(fā)送回客戶端。

erpc主要特點(diǎn)

? 輕量級(jí)但可擴(kuò)展

? 生成的代碼較小

? 抽象傳輸接口

? 序列化數(shù)據(jù)的大小較小

? 非常適合C語言的環(huán)境,也足夠靈活,可以支持面向?qū)ο蟮恼Z言,如c++

? 從服務(wù)器到客戶機(jī)的異步通知

? 最小化延遲影響

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5058

    文章

    18972

    瀏覽量

    301905
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8954

    瀏覽量

    85069
  • RPC
    RPC
    +關(guān)注

    關(guān)注

    0

    文章

    111

    瀏覽量

    11493
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4276

    瀏覽量

    62317

原文標(biāo)題:推薦一個(gè)嵌入式 RPC 通信框架-eRPC

文章出處:【微信號(hào):嵌入式應(yīng)用研究院,微信公眾號(hào):嵌入式應(yīng)用研究院】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    光儲(chǔ)存的基本原理主要特點(diǎn)

    信息資料迅速增長是當(dāng)今社會(huì)的一大特點(diǎn)。有人統(tǒng)計(jì),科技文獻(xiàn)數(shù)量大約每7年增加1倍,而一般的情報(bào)資料則以每2年~3年翻一番的速度增加。大量資料的存儲(chǔ)、分析、檢索和傳播,迫切需要高密度、大容量的存儲(chǔ)介質(zhì)和管理系統(tǒng)。
    發(fā)表于 08-30 09:06 ?2100次閱讀

    DDS基本原理及性能特點(diǎn)

    本帖最后由 mr.pengyongche 于 2013-4-30 02:21 編輯 DDS基本原理及性能特點(diǎn)DDS的基本大批量是利用采樣定量,通過查表法產(chǎn)生波形。DDS的結(jié)構(gòu)有很多種,其基本的電路原理可用
    發(fā)表于 07-13 14:12

    Linux的主要特點(diǎn) 發(fā)展 安裝

    Linux的主要特點(diǎn) 發(fā)展 安裝
    發(fā)表于 08-13 16:20

    貼片頭的分類和主要特點(diǎn)

      從技術(shù)發(fā)展來看,貼片頭已經(jīng)由機(jī)械對(duì)中發(fā)展到光學(xué)對(duì)中校正。目前,從主流貼片頭結(jié)構(gòu)形式來看,主要有平動(dòng)式、轉(zhuǎn)動(dòng)式和組合式3種,轉(zhuǎn)動(dòng)式中細(xì)分為轉(zhuǎn)塔式、旋轉(zhuǎn)式和小轉(zhuǎn)塔式3種。本節(jié)詳細(xì)介紹平動(dòng)式、旋轉(zhuǎn)式和轉(zhuǎn)塔式3種主要的貼片頭?! 「鞣N貼片頭
    發(fā)表于 09-03 10:46

    檢波器的基本原理是什么?主要有哪些分類?

    檢波器的基本原理是什么?微波檢波器主要功能是什么?對(duì)數(shù)檢波器是由哪些器件組成的?
    發(fā)表于 06-25 08:15

    什么是Lora?LoRa的主要特點(diǎn)?

    什么是Lora?LoRa的主要特點(diǎn)?LoRa的系統(tǒng)架構(gòu)?LoRa的協(xié)議棧?
    發(fā)表于 07-26 06:15

    無線充電的基本原理是什么

    狀態(tài),接收端線圈也是如此下圖就是實(shí)際電路應(yīng)用無線充電工作基本原理圖發(fā)射板主要有控制ic,驅(qū)動(dòng)ic,發(fā)射線圈,諧振電容組成這個(gè)是接收線圈,扎數(shù)比發(fā)射線圈多所以諧振電容可以小一些,方便安裝...
    發(fā)表于 09-15 06:01

    模數(shù)轉(zhuǎn)換器(ADC)的基本原理是什么?

    模數(shù)轉(zhuǎn)換器(ADC)的基本原理是什么?常用的幾種ADC類型的基本原理特點(diǎn)是什么?
    發(fā)表于 09-28 08:21

    STM32CubeIDE的主要特點(diǎn)有哪些

    STM32CubeIDE是什么?STM32CubeIDE的主要特點(diǎn)有哪些?
    發(fā)表于 09-28 08:16

    串口通信基本原理是什么?

    串口通信基本原理是什么?UART異步通信方式特點(diǎn)是什么?常用的串口相關(guān)寄存器有哪些?
    發(fā)表于 02-18 08:00

    RISC的主要特點(diǎn)和優(yōu)點(diǎn)講解

    RISC的主要特點(diǎn)和優(yōu)點(diǎn)講解
    發(fā)表于 02-27 14:59

    變壓器基本原理、分類和主要參數(shù)

    變壓器基本原理、分類和主要參數(shù)
    發(fā)表于 06-30 19:28 ?1532次閱讀

    變頻空調(diào)的控制原理及主要特點(diǎn)

    變頻空調(diào)的控制原理及主要特點(diǎn) 一、變頻空調(diào)的控制原理及主要特點(diǎn) 變頻空調(diào)器與普通空調(diào)器或稱定轉(zhuǎn)速空調(diào)器的主
    發(fā)表于 08-21 22:37 ?2491次閱讀

    SSL_VPN架構(gòu)組成及主要特點(diǎn)

    學(xué)習(xí)完本課程,您應(yīng)該能夠:了解SSL協(xié)議基本原理,敘述SSL VPN架構(gòu)組成及主要特點(diǎn)。掌握SSL VPN主要功能及實(shí)現(xiàn)方式,掌握SSL VPN主要部署模式。
    發(fā)表于 04-13 18:12 ?22次下載

    微波檢測(cè)的基本原理 微波檢測(cè)的主要特點(diǎn)

    微波檢測(cè)技術(shù)是一種利用微波信號(hào)對(duì)物體進(jìn)行檢測(cè)的技術(shù),它在許多領(lǐng)域都有廣泛的應(yīng)用,如通信、雷達(dá)、遙感、醫(yī)學(xué)成像等。本文將詳細(xì)介紹微波檢測(cè)的基本原理主要特點(diǎn)以及應(yīng)用領(lǐng)域。 一、微波檢測(cè)的基本原理 微波
    的頭像 發(fā)表于 05-28 15:24 ?2111次閱讀