那曲檬骨新材料有限公司

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

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

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

RPC的基本原理和主要特點

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

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

一、RPC簡介

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

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

如:

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

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

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

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

二、RPC的基本原理

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

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

1、客戶端:發(fā)起調(diào)用請求,將參數(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傳輸鏈路,在我們嵌入式中,對于不同的應(yīng)用場景可以是UART、USB等。

RPC的基本工作原理如下:

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

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

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

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

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

三、RPC的主要特點

跨平臺性:RPC框架可以在不同的操作系統(tǒng)和平臺上運(yùn)行,實現(xiàn)跨平臺的遠(yuǎn)程調(diào)用。這一特點使得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ò)通信的具體實現(xià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è)計的,使用純C實現(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)識符(用于被調(diào)用的例程)被序列化成字節(jié)流。

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

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

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

erpc主要特點

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

? 生成的代碼較小

? 抽象傳輸接口

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

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

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

? 最小化延遲影響

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

    關(guān)注

    5092

    文章

    19177

    瀏覽量

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

    關(guān)注

    12

    文章

    9303

    瀏覽量

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

    關(guān)注

    0

    文章

    111

    瀏覽量

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

    關(guān)注

    3

    文章

    4346

    瀏覽量

    62968

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    光儲存的基本原理主要特點

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

    DDS基本原理及性能特點

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

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

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

    貼片頭的分類和主要特點

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

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

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

    什么是Lora?LoRa的主要特點

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

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

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

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

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

    STM32CubeIDE的主要特點有哪些

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

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

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

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

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

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

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

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

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

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

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

    微波檢測的基本原理 微波檢測的主要特點

    微波檢測技術(shù)是一種利用微波信號對物體進(jìn)行檢測的技術(shù),它在許多領(lǐng)域都有廣泛的應(yīng)用,如通信、雷達(dá)、遙感、醫(yī)學(xué)成像等。本文將詳細(xì)介紹微波檢測的基本原理主要特點以及應(yīng)用領(lǐng)域。 一、微波檢測的基本原理 微波
    的頭像 發(fā)表于 05-28 15:24 ?2982次閱讀
    大发888真人网址的微博| 平凉市| 波浪百家乐官网测试| 百家乐网上投注系统| 博彩投注网| 真百家乐官网游戏| 模拟百家乐的玩法技巧和规则| 永德县| 百家乐赔率技巧| 88娱乐城2官方网站| 百家乐官网皇室百家乐官网| 大佬百家乐的玩法技巧和规则| 百家乐官网招商用语| 大亨百家乐娱乐城| 真钱轮盘游戏| 百家乐官网正负计算| 大发888合作伙伴| 百家乐官网台布哪里有卖| 尊龙百家乐娱乐城| 百家乐官网学院教学视频| 百家乐网站建设| 百家乐官网所有技巧| 真人百家乐攻略| 百家乐官网试玩平台| 赌场百家乐台| 旌德县| 百家乐庄闲筹码| 古浪县| 太阳城百家乐作弊| 泰宁县| 百家乐赌博策略论坛| 百家乐官网视频游戏帐号| 怎样赢百家乐的玩法技巧和规则| 怎么玩百家乐官网能赢钱| 多台百家乐官网的玩法技巧和规则 | 新葡京网上娱乐| 百家乐官网具体怎么收费的| 球探网足球比分| 百家乐二代皇冠博彩| 百家乐官网长路投注法| 澳门百家乐心|