ability_dmsfwk/README_zh.md
wangdongdong 2377847b3c add continuation implementation
Signed-off-by: wangdongdong <wangdd_zju@126.com>
Change-Id: I7253fb92d87e94749dd539ed30708eff5bec44cb
2021-09-09 18:17:48 +08:00

3.7 KiB
Executable File
Raw Blame History

分布式调度组件

简介

分布式任务调度模块负责跨设备组件管理,提供访问和控制远程组件的能力,支持分布式场景下的应用协同。主要功能如下:

  • 远程启动FA跨设备拉起远端设备上指定FA。
  • 远程迁移FA将FA跨设备迁移到远端。

系统架构

图 1 分布式调度组件架构图

目录

分布式调度组件主要代码目录结构如下:

/foundation/distributedschedule/dmsfwk
├── interfaces                              # 接口代码
├── service                                 # 核心代码
|   ├── include
|   |   ├── caller_info.h                   # 调用方信息
|   |   ├── continuation_callback_death_recipient.h # 迁移回调死亡监听接口
|   |   ├── distributed_sched_ability_shell.h       # 迁移回调管理接口
|   |   ├── distributed_sched_continuation.h        # 迁移token管理接口
|   |   ├── distributed_sched_interface.h   # 对外接口
|   |   ├── distributed_sched_proxy.h       # 客户端接口
|   |   ├── distributed_sched_service.h     # 服务端接口
|   |   ├── distributed_sched_stub.h        # 服务端接口父类
|   |   ├── dtbschedmgr_log.h               # 日志模块
|   |   ├── parcel_helper.h                 # 分布式消息解析模块
|   |   ├── uri.h                           # uri接口头文件
|   ├── src
|   |   ├── continuation_callback_death_recipient.cpp # 迁移回调死亡监听实现
|   |   ├── distributed_sched_ability_shell.cpp       # 迁移回调管理实现
|   |   ├── distributed_sched_continuation.h          # 迁移token管理实现
|   |   ├── distributed_sched_proxy.cpp     # 客户端实现
|   |   ├── distributed_sched_service.cpp   # 服务端实现
|   |   ├── distributed_sched_stub.cpp      # 服务端父类实现
|   ├── BUILD.gn
├── sa_profile
├── utils
├── LICENSE

约束

  • 组网设备需在同一局域网中。
  • 组网之前,需先完成设备绑定,绑定流程参见安全子系统中说明。

使用

  • 分布式任务调度模块编译

分布式任务调度模块,其代码所在目录如下:

foundation/distributedschedule/dmsfwk
  • 主设备程序开发以拉起FA为例

构造意图参数want设置需要启动的远端设备ID包名元能力类名信息

import ohos.aafwk.ability.Ability;
import ohos.aafwk.content.Want;
import ohos.bundle.ElementName;

// 构造want参数
Want want = new Want();
ElementName name = new ElementName(remote_device_id, "ohos.dms.remote_bundle_name", "remote_ability_name"); 
want.setElement(name); // 将待启动的FA信息添加到Want中

// 启动远程设备FA
startAbility(want); // 按照Want启动指定FAwant参数命名以实际开发平台API为准
  • 预置条件

从设备侧需安装对应包名的FA

  • 运行以拉起FA为例

执行主设备侧的startAbility即可拉起从设备FA

相关仓

分布式任务调度子系统

dms_fwk