diff --git a/README.md b/README.md index 8f74e869..3eb5d41b 100755 --- a/README.md +++ b/README.md @@ -1,32 +1,105 @@ -# dmsfwk +# Distributed Scheduler - [Introduction](#section11660541593) +- [System Architecture](#section13587185873516) - [Directory Structure](#section161941989596) +- [Constraints](#section119744591305) +- [Usage](#section10729231131110) - [Repositories Involved](#section1371113476307) ## Introduction -The **dmsfwk** module provides URI capabilities for other OpenHarmony subsystems such as the application development framework \(including the ability framework and application framework\). +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 + +![](figures/dms-architecture.png) + +**Figure 1** Distributed Scheduler architecture ## Directory Structure +The main code directory structure of Distributed Scheduler is as follows: + ``` -/foundation/distributedschedule/dmsfwk/interfaces/innerkits/uri +/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 subsystem - -**distributedschedule\_dms\_fwk** - -distributedschedule\_safwk - -distributedschedule\_samgr - -distributedschedule\_safwk\_lite - -hdistributedschedule\_samgr\_lite - -distributedschedule\_dms\_fwk\_lite +Distributed Scheduler +[distributedschedule\_dms\_fwk](https://https://gitee.com/openharmony/distributedschedule_dms_fwk) diff --git a/figures/dms-architecture.png b/figures/dms-architecture.png new file mode 100644 index 00000000..1b7001cc Binary files /dev/null and b/figures/dms-architecture.png differ