成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

跟著小白一起學鴻蒙—簡析OpenHarmony軟總線能力

系統 OpenHarmony
在OpenHarmony的源碼里和系統功能相關的部分大多都放在foundation這個文件夾里,而通訊相關的部分則是在communication這個文件夾內。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

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

分布式軟總線是OpenHarmony的重要能力,設計目標是實現多設備間的通信方式。分布式軟總線是分布式硬件和分布式軟總線的重要基礎,分布式軟總線提供一種不區分鏈路的設備間發現、組網和傳輸的能力:

  • 發現:應用WiFi,藍牙相關協議實現設備發現能力。
  • 組網:提供統一的設備組網和拓撲管理能力。
  • 傳輸:提供數據傳輸能力,支持消息、字節、流,文件的數據傳輸能力。

概述

在OpenHarmony的源碼里和系統功能相關的部分大多都放在foundation這個文件夾里,而通訊相關的部分則是在communication這個文件夾內。我們本篇要分析的軟總線功能就是在foundation/communication/dsoftbus路徑下,具體目錄結構如下:

.
├── adapter //適配層
├── BUILD.gn
├── common //適配層管理,網絡適配,協議適配等
└── default_config //適配層配置
├── BUILD.gn
├── bundle.json
├── check_sub_module.py
├── components //依賴組件
├── mbedtls //開源ssl庫,在三方庫里
└── nstackx //tcp/ip協議管理模塊
├── config.py
├── core //核心層
├── adapter //適配接口
├── authentication //認證接口
├── BUILD.gn
├── bus_center //組網代碼
├── common //通用代碼
├── connection //連接代碼
├── discovery //發現代碼
├── frame //框架代碼
└── transmission //傳輸代碼
├── dsoftbus.gni
├── figures
├── dsoftbus-architecture.png
└── dsoftbus-architecture_zh.png
├── hisysevent.yaml
├── interfaces //對外頭文件
├── inner_kits
└── kits
├── Kconfig
├── LICENSE
├── OAT.xml
├── README.md
├── README_zh.md
├── sdk //對外應用sdk
├── BUILD.gn
├── bus_center //組網
├── discovery //發現
├── frame //框架
└── transmission //傳輸
├── tests
├── adapter
├── BUILD.gn
├── core
├── include
└── sdk
└── tools //工具
├── BUILD.gn
└── device_info
  • 約束:
  • 設備發現需要在同二層網絡中(即同交換機,同WiFi路由或者近場通信范圍內)
  • 組網前需要有設備認證過程(綁定)

架構簡析

  • 根據目錄結構和內部文件及編譯框架總結架構如下:
  • SDK:為其他業務提供軟總線的能力接口,如發現設備,發布服務,設備連接,遠端設備信息獲取,時間同步,注冊回調接收設備上下線消息,設備信息變更消息;SDK對外提供softbus_client.so,頭文件均在interfaces/kits目錄里;
  • Tools:提供SoftBusDumpDeviceInfo工具,可以查看本地的設備信息和所有發現的設備信息。
  • Core:軟總線的核心實現部分,提供softbus_server庫,實現system ability框架提供系統能力。
  • discovery:提供對網絡設備和藍牙設備的發布,發現,連接的能力。
  • authentication:設備認證模塊,對不同類型的連接方式提供不同的認證實現和統一的認證能力,并為分布式設備業務提供DeviceAuthCallback;設備認證模塊依。賴//base/security/device_auth/services:deviceauth_sdk庫。認證模塊提供認證連接對應的處理,如連接處理(OnConnectResult),數據處理(OnDataReceived),斷開處理(OnDisconnected)三個基礎入口,提供設備的連接認證能力。
  • connection:提供ble,br,tcp,p2p連接方式。連接模塊會啟動一個后臺連接服務,此連接服務提供默認的tcp,ble,br,p2p的連接處理接口,服務內部通過一個線程池處理連接的任務;認證模塊通過連接模塊進行認證連接,同時連接模塊也提供回調接口,為業務模塊提供數據返回。連接模塊就是通過具體的連接業務實現代碼為業務模塊提供設備連接和信息傳輸通道;目前主要提供的連接方式為socket或者藍牙兩種;其中接口聲明在interface目錄下。
  • transmission:提供消息發送接口,可以發送加密信息或者不加密信息,加密方式根據認證的信息確認,使用認證會話的key作為key值,加密方式為aes加密。
  • bus_center:提供核心的LNN本地網絡服務接口,包括網絡服務發現,連接,服務發布等核心能力,以及設備管理能力。bus_center作為軟總線的管理節點提供本地網絡拓撲賬本(NetLedger),消息處理回環(BusLooper),事件處理對象(Netlink,Product,Lwip,Wifi,BtState,Driver,ScreenState,DeviceName),網絡發現服務(Coap),網絡接口(Netif, softbus_feature_config.c里寫死),消息網絡構造(NetBuilder),本地網絡路由管理(LaneHub),節點地址分配(NodeAddrAllocator)。軟總線設計目標為無感的設備互聯互通,所以每個標準設備都可以作為一個網絡節點也可以作為一個網關,而bus_center就是作為網關實現的部分。軟總線服務通過收聽系統的事件,包括設備事件,網絡事件以感知本設備的每一處變化,然后根據變化來決定是否可以感知到周圍新的節點設備加入網絡,并提供設備認證,連接,傳輸數據的服務。
  • common:核心部分的基礎代碼,如bitmap(位圖),dfx(DesignForX,未來設計),json,messagehandler(軟總線信令),network(網絡頻率參數),queue(隊列),security(權限認證),property(軟總線配置),utils(工具集,timeout,hextobytes,random,等等)。
  • frame:框架層,不同類型的系統(小型系統L0,輕量系統L1,標準系統L2)提供不同的對外接口實現;
  • adapter:適配層,目前適配不同的設備類型,如WiFi,藍牙等。
  • Adapter:軟總線適配層,對不同系統進行裁剪和能力配置,對外部依賴進行包裝和調用。
  • Component:組件,mbedtls(SSL算法庫),nstackx(網絡協議庫,為coap提供網絡協議服務)。

功能簡析

distributedhardwaretools -->> softbus_client(sdk): so庫引用,接口調用
softbus_client(sdk) --> bus_center_sdk_deps: 鏈接對應服務soc++調用
softbus_client(sdk) --> trans_session_manager_sdk_deps: 鏈接對應服務soc++調用
softbus_client(sdk) --> softbus_adapter: 鏈接對應服務soc++調用
softbus_client(sdk) --> softbus_utils: 鏈接對應服務soc++調用
bus_center_sdk_deps-->ipc_single: 鏈接對應的idlsoc接口調用
bus_center_sdk_deps-->samgr: 應用SystemAbility服務框架
trans_session_manager_sdk_deps-->nstackx(FillpSo/congestion/dfile/util): 鏈接對應服務soc調用
  1. distributedhardware(分布式硬件管理),由以下幾個部分組成:
  • devicemanager:DeviceManager組件在OpenHarmony上提供賬號無關的分布式設備的認證組網能力,并為開發者提供了一套用于分布式設備間監聽、發現和認證的接口。
  • distributedcamera:分布式相機是多個設備的相機同時協同使用的能力。分布式相機部件是為分布式硬件子系統提供這一能力的部件。本部件不直接對接應用,只向分布式硬件框架子系統提供C++接口。應用可以通過相機框架的接口使用分布式相機部件操作其他設備的Camera,使用方式與本地相機一致。
  • distributedhardwarefwk:分布式硬件管理框架是為分布式硬件子系統提供信息管理能力的部件。分布式硬件管理框架為分布式硬件子系統提供統一的硬件接入、查詢和使能等能力。
  • distributedscreen:分布式屏幕是一種屏幕虛擬化能力,支持用戶指定組網認證過的其他OpenHarmony設備的屏幕作為Display的顯示區域。在分布式硬件子系統中,分布式屏幕組件提供跨設備屏幕能力調用,為OpenHarmony操作系統提供系統投屏、屏幕鏡像、屏幕分割等能力的實現。
  1. tools(分布式軟總線工具),提供打印本地設備信息和分布式軟總線上發現的遠程節點信息。
  2. softbus_client(sdk),分布式軟總線的框架層接口,利用ipc通信同softbus_server交互實現具體功能,包括以下部分:
  • bus_center_sdk_src:包括bus_center_service_sdk_src和bus_center_manager_sdk_src,軟總線管理層接口。
  • disc_sdk_src:網絡節點發現接口。
  • softbus_client_frame_src:框架層接口實現。
  • trans_session_manager_sdk_src:傳輸層接口實現,包括(trans_ipc_proxy_sdk_src,trans_session_sdk_src,trans_channel_sdk_src)。
  • trans_ipc_proxy_sdk_src:提供傳輸通道,通過systemability獲取服務并進行交互的能力。
  • trans_session_sdk_src:應用ipc傳輸代理提供傳輸會話建立,配置的接口。
  • trans_channel_sdk_src:應用ipc傳輸代理提供傳輸channel建立,配置,管理的接口。
  1. softbus_server(core):分布式軟總線的核心服務庫,以system ability為框架,支持ipc通信。
  • auth_server_src:認證服務。
  • bus_center_server_src:主服務。
  • conn_manager_src:連接服務。
  • disc_server_src:發現服務。
  • trans_session_src:會話服務。
  • softbus_permission_src:軟總線的權限配置。
  1. softbus_adapter,軟總線適配層,對接底層系統接口(kernel),對接ssl加密通道(mbedtls或openssl),并為核心服務提供功能實現。
  2. softbus_utils,軟總線的通用庫,核心層里的公共庫,提供基礎方法的實現,包括:
  • bitmap:位圖,目前是用于藍牙設備Capability標識。
  • dfx:面向未來設計,實現hidumper(信息打印)和hisystemevent(OpenHarmony的事件埋點,通過在關鍵路徑埋點記錄系統在運行過程中的重要信息,輔助開發者定位問題)。
  • json_utils:提供cjson的功能適配,軟總線的信令均使用json數據傳輸,此功能為信令的收發服務。
  • message_handler:提供軟總線報文處理機制,包括報文處理Looper,報文同步發送、異步發送接口等,所有待處理的報文在Looper的隊列里管理,到期后調用具體模塊的handler處理,處理報文的handler包括(auth,lnnlane,lnntimesync,lnnnetbuilder,buscenternotify,lnnasync,lnnstatemachine,hisysevent,bleconnnect,blegattclient,blegattserver,p2plink,bledisc,trans)。

總結

  1. 軟總線服務依賴于監聽系統事件和網絡掃描(coap,br,ble)進行設備發現和認證后的設備連接。
  2. 軟總線服務不對應用層直接提供調用接口,通過分布式設備管理提供NAPI接口供應用層調用。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??。

責任編輯:jianghua 來源: 51CTO開源基礎軟件社區
相關推薦

2022-11-22 15:15:46

Wi-Fi鴻蒙

2022-12-05 15:02:14

鴻蒙用戶鑒權

2023-03-30 09:19:54

SELinux安全子系統

2022-11-08 15:43:45

開源鴻蒙藍牙協議棧

2022-08-19 19:02:20

開源鴻蒙操作系統

2023-01-03 15:09:10

鴻蒙常用工具

2022-12-06 15:39:16

鴻蒙主干代碼

2022-12-02 14:20:09

Tetris鴻蒙

2022-11-29 16:35:02

Tetris鴻蒙

2023-03-30 09:32:27

2022-11-14 17:01:34

游戲開發畫布功能

2023-04-04 09:24:11

鴻蒙HiDumper

2022-10-10 14:47:04

藍牙應用鴻蒙

2023-02-27 16:30:32

鴻蒙開源協議分析

2022-08-29 17:25:19

鴻蒙應用開發

2022-11-24 14:34:41

Hap程序鴻蒙

2023-03-15 16:19:03

BinderIPC工具

2022-10-09 15:05:50

NAPI框架鴻蒙

2022-10-20 16:40:16

JS應用控制LED鴻蒙

2022-10-17 14:29:24

鴻蒙應用開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产91精品久久久久久久网曝门 | 欧美日韩美女 | 日本亚洲精品成人欧美一区 | 人人干人人干人人 | 中文字幕不卡在线观看 | 亚洲福利av| 在线欧美激情 | 欧美一级片在线播放 | 男人的天堂视频网站 | 亚洲视频一区在线播放 | 国产亚洲精品成人av久久ww | 日韩精品在线看 | 国产日韩欧美另类 | 在线视频中文字幕 | 午夜精品一区二区三区在线 | 精品在线一区二区三区 | 日韩在线成人 | 91久久久www播放日本观看 | 亚洲综合色视频在线观看 | 久久精品免费看 | 国产精品久久视频 | 天天干,夜夜操 | 久久精品在线免费视频 | 国产91在线视频 | 午夜天堂精品久久久久 | 四虎影院一区二区 | 国产 日韩 欧美 中文 在线播放 | 欧美高清视频在线观看 | 欧美人妇做爰xxxⅹ性高电影 | 精品一二 | 亚洲精品一区二区三区中文字幕 | 欧美性网| 国产精品久久久久久福利一牛影视 | 精品视频久久久久久 | 高清成人av| 日韩国产精品一区二区三区 | 在线播放亚洲 | 亚洲在线 | 国产欧美一区二区三区在线看 | 日日射夜夜骑 | 欧美美女爱爱视频 |