自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

【FFH】OpenHarmony啃論文成長計劃---JSON-RPC

原創(chuàng)
系統(tǒng) OpenHarmony
RPC : Remote Procedure Call ,其實是一個很寬泛的概念名稱,翻譯過來就是遠程過程調(diào)用,說白了就是一個機器遠程調(diào)用并執(zhí)行另一個機器上的函數(shù)。

??想了解更多內(nèi)容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

??https://harmonyos.51cto.com??

大家好! 我是來自深圳技術(shù)大學(xué)FSR實驗室的同學(xué),標(biāo)題FFH就是FSRlab For Harmony!并且我也正在參加OpenHarmony成長計劃從論文到開源提交研究,以后我們也會陸續(xù)在這個社區(qū)記錄學(xué)習(xí)心得和體會。

參考文獻

JSON-RPC協(xié)議分析、擴展及其應(yīng)用–《中國科技論文在線》2008年02期 (cnki.com.cn)

Web-Based Service Optimization with JSON-RPC Platform in Java and PHP | Haji | International Conference on Engineering and Technology Development (ICETD) (ubl.ac.id)

引言

最近在看JSON相關(guān)的文獻和資料,前面我也寫了兩篇JSON相關(guān)的文章(有興趣的同學(xué)可以去看看):

  • OpenHarmony啃論文成長計劃—為什么JSON將逐漸取代XML?
  • OpenHarmony啃論文成長計劃—幾種常見的JSON解析器比較

像我這種有一點小程序或者web開發(fā)經(jīng)驗的會對JSON很熟悉,因為我們前端經(jīng)常把信息格式化為JSON,再調(diào)用后端的API進行數(shù)據(jù)傳遞,我們也清楚的知道web服務(wù)那一套基本都是基于HTTP協(xié)議的,偶爾使用的是socket進行通信。但是最近在學(xué)習(xí)手機APP的開發(fā),并且接觸到了一些分布式的系統(tǒng),發(fā)現(xiàn)JSON也可以通過RPC作為分布式系統(tǒng)的數(shù)據(jù)交換格式,也是這篇文章將要敘述的,稱為JSON-RPC.

RPC

先來了解一下什么是RPC,相信大家會混淆RPC和HTTP,其實他們兩個并不是同一層級的概念,RPC : Remote Procedure Call ,其實是一個很寬泛的概念名稱,翻譯過來就是遠程過程調(diào)用,說白了就是一個機器遠程調(diào)用并執(zhí)行另一個機器上的函數(shù)。而HTTP是一種協(xié)議,HTTP是屬于一種RPC的實現(xiàn)方式。

在HarmonyOS有很多地方都用到了RPC方式通信,比如跨設(shè)備調(diào)用,遠程拉起FA,F(xiàn)A的遷移流轉(zhuǎn)等等。

JSON-RPC

摘要

一般應(yīng)用程序需要本地以外的其他方提供信息。但是這些應(yīng)用程序可能使用的是不同的系統(tǒng)或者平臺上。web開發(fā)上有一種技術(shù)可以使用,通常稱為web service。而在應(yīng)用程序中,JSON-RPC是web service的替代方案之一。比如有兩個信息互通的應(yīng)用程序,在信息傳遞過程中,應(yīng)用程序可以執(zhí)行來自遠程后端服務(wù)器的業(yè)務(wù),以實現(xiàn)兩個程序直接的通信,即通過使用JSON-RPC來實現(xiàn)web服務(wù)。原理如圖:

什么是JSON-RPC?

RPC是一個簡單的協(xié)議框架,所以可以用來構(gòu)建一個基于web的服務(wù)的新協(xié)議。RPC允許一個應(yīng)用程序調(diào)用遠程另外一個處于不同系統(tǒng)的程序的子進程,RPC在傳遞數(shù)據(jù)過程中使用一種特定的數(shù)據(jù)交換格式,如XML或JSON,作為系統(tǒng)之間的粘合劑。傳輸中數(shù)據(jù)交換格式為JSON格式的RPC 協(xié)議就稱為JSON-RPC。

官方的定義是:JSON-RPC 是一個無狀態(tài)的輕量級的 RPC 協(xié)議。就是說JSON-RPC 是一種遠程過程調(diào)用協(xié)議。通常的處理機制是在兩個通信實體之間建立點對點的數(shù)據(jù)連接,在連接的生命周期內(nèi),一方可能調(diào)用另一方提供的方法,客戶端發(fā)送一個請求,而服務(wù)器端給出與之相對應(yīng)的響應(yīng)。其原理如圖所示:

JSON-RPC的數(shù)據(jù)結(jié)構(gòu)

比如現(xiàn)在我們需要實現(xiàn)一個減法的功能,服務(wù)器和本地相互傳遞的數(shù)據(jù)結(jié)構(gòu)很簡單,如下:

從本質(zhì)上講,請求是通過方法名、參數(shù)和唯一id發(fā)送的。id很重要,尤其是當(dāng)分布式系統(tǒng)處理來自多個源的多個請求時,因為它告訴被請求系統(tǒng)請求來自何處,這樣才能使響應(yīng)結(jié)果給到正確的請求者。

JSON-RPC與HTTP的區(qū)別

先看HTTP,http服務(wù)你需要給出對應(yīng)的接口地址,需要定義http method等等

但是JSON-RPC不需要,因為在調(diào)用JSON-RPC的時候客戶端已經(jīng)傳遞了方法名字,還有請求者的id,還是上面的例子:

所以rpc更像是熟人之間的日常交流,而http像是的陌生人之間的約定,RPC(包括JSON-RPC)調(diào)用時,已經(jīng)知道你是誰,長什么樣,東西放在哪,也知道你允許他使用上面東西,你直接用就完事了。而http就是你需要事先跟陌生人溝通,商量好怎么借和使用別人的東西,才可以使用上。

??想了解更多內(nèi)容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

??https://harmonyos.51cto.com??

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2022-03-31 16:13:27

Avro數(shù)據(jù)序列化系統(tǒng)Harmony

2022-03-22 15:04:20

中間件分布式軟件鴻蒙

2022-03-08 15:23:20

序列化反序列化鴻蒙

2022-02-24 16:32:26

OpenHarmon壓縮編碼鴻蒙

2022-03-15 15:17:03

開源技術(shù)HarmonyMQTT協(xié)議

2022-03-28 15:17:12

JSONXMLHarmony

2022-03-28 15:28:42

分布式軟總線通訊Harmony

2022-03-30 14:43:00

Harmony分布式軟總線通訊

2022-08-05 19:55:20

學(xué)術(shù)科研鴻蒙

2022-02-10 14:57:46

OpenHarmon鴻蒙操作系統(tǒng)

2022-02-10 15:33:05

OpenHarmon應(yīng)用開發(fā)操作系統(tǒng)

2022-09-19 14:25:35

JSON壓縮算法

2022-08-22 17:36:13

啃論文方法啃論文俱樂部

2022-04-20 20:37:58

鴻蒙操作系統(tǒng)

2011-01-15 12:34:37

紅旗IVI

2016-08-18 10:34:40

云存儲

2022-05-20 14:21:50

物聯(lián)網(wǎng)通信協(xié)議

2022-05-13 23:03:25

大數(shù)據(jù)Big Data巨量資料

2022-05-13 22:44:35

物聯(lián)網(wǎng)算法鴻蒙

2022-04-07 15:03:07

Harmony計算機鴻蒙
點贊
收藏

51CTO技術(shù)棧公眾號