1# 轻量级分布式组件管理部件<a name="ZH-CN_TOPIC_0000001128264105"></a> 2 3- [简介](#section11660541593) 4- [目录](#section1464106163817) 5- [约束](#section1718733212019) 6- [使用](#section10729231131110) 7- [相关仓](#section176111311166) 8 9## 简介<a name="section11660541593"></a> 10 11轻量级分布式组件管理模块负责跨设备启动FA的能力,支持分布式场景下的应用协同。轻量级分布式调度模块组成如下图所示: 12 13 14 15## 目录<a name="section1464106163817"></a> 16 17轻量级分布式组件管理源代码目录结构如下表所示: 18 19**表1**主要源代码目录结构 20 21<a name="table43531856201716"></a> 22<table><thead align="left"><tr id="row20416556201718"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p10416456121716"><a name="p10416456121716"></a><a name="p10416456121716"></a>名称</p> 23</th> 24<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1841645631717"><a name="p1841645631717"></a><a name="p1841645631717"></a>描述</p> 25</th> 26</tr> 27</thead> 28<tbody><tr id="row64161056151718"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p4160914132218"><a name="p4160914132218"></a><a name="p4160914132218"></a>dmsfwk_lite</p> 29</td> 30<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p541645611177"><a name="p541645611177"></a><a name="p541645611177"></a>轻量级分布式组件管理</p> 31</td> 32</tr> 33</tbody> 34</table> 35 36其中轻量级分布式组件管理的源代码目录结构如下: 37 38``` 39├── BUILD.gn 40├── include 41│ ├── dmslite.h # 轻量级分布式组件管理对外接口 42│ ├── dmslite_check_remote_permission.h # 轻量级分布式组件管理权限管理模块 43│ ├── dmslite_famgr.h # 轻量级分布式组件管理FA管理模块 44│ ├── dmslite_inner_common.h # 轻量级分布式组件管理内部通用文件 45│ ├── dmslite.h # 轻量级分布式组件管理服务实现 46│ ├── dmslite_log.h # 日志模块 47│ ├── dmslite_parser.h # 分布式消息解析模块 48│ ├── dmslite_tlv_common.h # TLV格式数据解析模块 49│ └── dmslite_session.h # 跨设备通信收发模块 50├── readme.md 51├── LICENSE 52├── source 53 ├── distributed_schedule_service.c 54 ├── dmslite.c 55 ├── dmslite_check_remote_permission.c 56 ├── dmslite_famgr.c 57 ├── dmslite_msg_parser.c 58 ├── dmslite_tlv_common.c 59 └── dmslite_session.c 60``` 61 62## 约束<a name="section1718733212019"></a> 63 64**语言限制**:C/C++语言 65 66**组网环境**:必须确保设备在同一个局域网中,主从设备能互相ping通 67 68**操作系统限制**:OpenHarmony操作系统 69 70**远程启动的约束与限制:** 71 72- 支持远程启动FA 73- 远程启动前必须确保主设备与从设备间分布式组网成功,否则无法远程启动 74 75## 使用<a name="section10729231131110"></a> 76 77- **轻量级分布式组件管理模块编译** 78 79轻量级分布式组件管理模块,其代码所在目录如下: 80 81``` 82foundation/ability/dmsfwk_lite 83``` 84 85在针对不同平台进行编译时,需要提前指定目标平台: 86 87``` 88hb build 89``` 90 91- **主设备程序开发**(以拉起FA为例) 92 93构造意图参数want,设置需要启动的远端设备ID,包名,元能力类名信息,以及分布式标志位Want.FLAG\_ABILITYSLICE\_MULTI\_DEVICE以使能分布式启动 94 95``` 96import ohos.aafwk.ability.Ability; 97import ohos.aafwk.content.Want; 98import ohos.bundle.ElementName; 99 100// 构造want参数 101Want want = new Want(); 102ElementName name = new ElementName(remote_device_id, "ohos.dms.remote_bundle_name", "remote_ability_name"); 103want.setElement(name); // 将待启动的FA信息添加到Want中 104want.setFlags(Want.FLAG_ABILITYSLICE_MULTI_DEVICE); // 设置分布式标记,若不设置将无法使用分布式能力 105 106// 启动远程设备FA 107startAbility(want); // 按照Want启动指定FA,want参数命名以实际开发平台API为准 108``` 109 110- **预置条件** 111 112从设备侧需安装对应包名的FA 113 114- **运行**(以拉起FA为例) 115 116执行主设备侧的startAbility即可拉起从设备FA 117 118## 相关仓<a name="section176111311166"></a> 119 120轻量级分布式组件管理 121 122[**dmsfwk\_lite**](https://gitee.com/openharmony/ability_dmsfwk_lite) 123 124