Go to file
openharmony_ci 6e3f6ce848
!146 fix dms crash bug when db crashed
Merge pull request !146 from zhangmingxiang/0222
2022-02-23 06:48:42 +00:00
etc modify: cfg adapt parallel start 2022-02-09 17:40:33 +08:00
figures updated English readme 2021-11-24 11:17:51 +08:00
interfaces/innerkits/uri mission management interface modification 2022-01-08 00:14:04 -08:00
sa_profile add dms 2021-06-17 13:10:47 +08:00
services/dtbschedmgr fix dms crash bug when db crashed 2022-02-22 16:52:22 +08:00
utils/native fix code style warnings 2021-09-24 16:28:15 +08:00
.gitattributes update OpenHarmony 2.0 Canary 2021-06-02 02:21:10 +08:00
bundle.json Fix atomic ability bundle.json change 2022-02-14 14:00:43 +00:00
LICENSE update OpenHarmony 2.0 Canary 2021-06-02 02:21:10 +08:00
OAT.xml sync code to master 2021-12-21 23:26:50 -08:00
README_zh.md update README.md and fix codestyle warnings 2021-09-13 17:33:27 +08:00
README.md updated English readme 2021-11-24 11:17:51 +08:00

Distributed Scheduler

Introduction

Distributed Scheduler is used for cross-device component management. It allows the local device to access or control remote components, and enables app collaboration in distributed scenarios. Its main functions are as follows:

  • Remote FA startup: Starts a Feature Ability (FA) on a remote device.
  • Remote FA migration: Migrates an FA to a remote device.
  • Remote AA binding: Binds an AA on a remote device.

System Architecture

Figure 1 Distributed Scheduler architecture

Directory Structure

The main code directory structure of Distributed Scheduler is as follows:

/foundation/distributedschedule/dmsfwk
├── interfaces                              # API definition
├── services                                # Core functions
│   └── dtbschedmgr
│       ├── include
│       │   ├── ability_connection_wrapper_stub.h  # Connection callback wrapper class
│       │   ├── adapter
│       │   │   └── dnetwork_adapter.h             # DSoftBus adaptation layer
│       │   ├── bundle
│       │   │   └── bundle_manager_internal.h      # BMS function wrapper class
│       │   ├── caller_info.h                      # Basic information about the caller
│       │   ├── connect_death_recipient.h          # APIs that listen for connection callback death events
│       │   ├── continuation_callback_death_recipient.h # APIs that listen for continuation callback death events
│       │   ├── deviceManager
│       │   │   └── dms_device_info.h              # APIs for defining and obtaining device information
│       │   ├── distributed_device_node_listener.h # APIs for listening for device online/offline events
│       │   ├── distributed_sched_ability_shell.h  # Continuation callback management APIs
│       │   ├── distributed_sched_adapter.h        # DMS adaptation layer
│       │   ├── distributed_sched_continuation.h   # Continuation token management APIs
│       │   ├── distributed_sched_dumper.h         # Dump APIs
│       │   ├── distributed_sched_interface.h      # External APIs
│       │   ├── distributed_sched_permission.h     # Permission verification APIs
│       │   ├── distributed_sched_proxy.h          # Proxy APIs
│       │   ├── distributed_sched_service.h        # Service APIs
│       │   ├── distributed_sched_stub.h           # Stub APIs
│       │   ├── dtbschedmgr_device_info_storage.h  # Device information storage management
│       │   ├── dtbschedmgr_log.h                  # Log module
│       │   ├── parcel_helper.h                    # Definition of auxiliary macros for serialization/deserialization
│       │   └── uri.h
│       ├── src
│       │   ├── ability_connection_wrapper_stub.cpp  # Implementation of the connection callback wrapper class
│       │   ├── adapter
│       │   │   └── dnetwork_adapter.cpp             # DSoftBus adaptation layer
│       │   ├── bundle
│       │   │   └── bundle_manager_internal.cpp      # Implementation of the BMS function wrapper class
│       │   ├── connect_death_recipient.cpp          # Implementation of the listening for connection callback death events
│       │   ├── continuation_callback_death_recipient.cpp # Implementation of the continuation callback death events
│       │   ├── deviceManager
│       │   │   └── dms_device_info.cpp              # Implementation of the APIs for obtaining device information
│       │   ├── distributed_device_node_listener.cpp # Implementation of the APIs for device online/offline event listening
│       │   ├── distributed_sched_ability_shell.cpp  # Implementation of continuation callback management
│       │   ├── distributed_sched_adapter.cpp        # Implementation of the DMS adaptation layer
│       │   ├── distributed_sched_continuation.cpp   # Implementation of continuation token management 
│       │   ├── distributed_sched_dumper.cpp         # Dump Implementation
│       │   ├── distributed_sched_permission.cpp     # Permission verification implementation
│       │   ├── distributed_sched_proxy.cpp          # Proxy implementation
│       │   ├── distributed_sched_service.cpp        # Server implementation
│       │   ├── distributed_sched_stub.cpp           # Stub implementation
│       │   └── dtbschedmgr_device_info_storage.cpp  # Implementation of device information storage management
│       └──── BUILD.gn
├── sa_profile
├── utils
├── LICENSE

Constraints

  • The devices between which you want to set up a connection must be in the same LAN.
  • Before setting up a connection between two devices, you must bind the devices. For details about the binding process, see relevant descriptions in the Security subsystem readme file.

Usage

  • Compiling and Building Distributed Scheduler

The code of Distributed Scheduler is stored in the following directory:

foundation/distributedschedule/dmsfwk

Repositories Involved

Distributed Scheduler

distributedschedule_dms_fwk