《深入理解Linux遠程過程調用(RPC)》在線視頻課程

課程簡介

現實中的很多項目都會涉及到遠程過程調用(RPC)的問題,這些RPC也許跨進程,也許跨物理主機。如何靈活高效地實現RPC,是很多項目都會面臨的挑戰。

1. 本課程首先通過對遠程過程調用一般性原理的解釋和基本框架的介紹,使大家理解RPC的整體結構和主要流程。

2. 之後會對RPC發展過程中的部分重要方案進行介紹,包括Linux RPC、Corba、Web services、D-Bus等,使大家瞭解這些不同方案的設計思想、主要特點和適用範圍,在不同的項目中能夠根據需求進行合理抉擇。

3. 接着,會將Android Binder作爲典型案例進行解剖,對其整體架構、運作機制等進行全面、深入、詳盡的學習,使大家深入瞭解其實現細節。在牢固掌握其實現的基礎上,可以對類似技術做到觸類旁通,快速掌握。

4. 最後,設計了一組Linux RPC、D-Bus、Binder、Web services的練習題來進行實戰。

課程共4節課,全長約4小時,課程已全部上線,無需等候

上課形式:


  • 視頻課程(可無限次數回看)

  • 課後實戰,練習和解答(在自己的電腦上進行實際操作)

  • 加入課程討論答疑羣。

老師簡介

曾昭毅:武漢理工大學計算機應用技術碩士畢業

曾在羣碩軟件、深圳仙苗科技有限公司擔任軟件開發經理、軟件研發總監等職,是在實戰中成長起來的從單板嵌入式到大型企業級應用系統集成的全棧式工程師。

具有豐富的Arm體系Linux及Android系統移植經驗,對基於I2C、SPI、USB、AC97、I2S、SDIO/EMMC、UART等總線的各種設備如LCD、觸摸屏、3G/4G模塊、Wifi、GPS、攝像頭、HDMI、CODEC等驅動移植有深厚的掌握。

 

遠程過程調用


  • 什麼是RPC

  • 什麼是IPC

  • 本課程RPC的定義——跨進程過程調用

  • Linux RPC實例

  • RPC整體架構

  • RPC各組成部分功能及運作原理

    • IDL/Interface

    • Client/Server

    • Proxy/Stub

    • Server register

    • 其他

 

部分遠程過程調用方案 


  • RPC模式

    • 支持語言

    • 主要結構

    • 關鍵特性

    • ONC RPC

    • Corba

    • EJB

    • Web service

    • Dubbo

    • Json-RPC

  • IPC模式

    • Android Binder

    • D-Bus

  • 各方案主要特性對比

 

實例分析——Android Binder詳解


  • Binder主要特點

  • 整體結構

  • Native層(C++/C)

    • Service註冊

    • 隱含ServiceManager接口獲取過程

    • ServiceManager啓動流程

    • App/Zygote啓動時Binder相關初始化

    • ServiceManager類結構

    • 掌控全局的IInterface.h

    • 關鍵類結構

    • 系統啓動準備工作

    • Binder調用流程

  • Native層(C++/C)

    • Service註冊流程

    • Service接口獲取流程

    • Service調用過程

    • Binder調用流程(續前)

    • Binder線程管理

    • Binder一次數據拷貝機制

  • Java層

    • 關鍵類結構

    • Java service獲取流程 - ServiceManager

    • Service註冊流程

    • Java service獲取流程 - ActivityManager

  • AIDL

 

實驗、練習和解答


  1. 用Linux RPC實現加法和greet函數,greet函數接收一個字符串格式的名字如“Mike”,返回字符串“Hello Mike”。(提示:Linux RPC只支持單參數,傳遞多參數可利用struct實現)

  2. a. 用D-Bus實現加法和greet函數;b. 參照Linux RPC格式,根據自己對RPC機制的理解,手動實現對2.a.中所完成接口的RPC封裝。

  3. 利用WebService實現上述加法和greet函數。

  4. 分析Binder在進程間通過一次拷貝機制傳遞數據時,發送方是否需要將待發送數據放入自己與binder驅動進行mmap的內存區域?放與不放有什麼影響?

  5. 創建一個Android應用,利用AIDL生成對應的Java類,畫出生成類的類圖。

報名方法

點擊左下角“閱讀原文”試聽與報名!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章